-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathAuto-Farm.js
More file actions
306 lines (300 loc) · 296 KB
/
Copy pathAuto-Farm.js
File metadata and controls
306 lines (300 loc) · 296 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
/* WPlace AutoBOT — uso bajo tu responsabilidad. Compilado 2025-10-01T15:35:16.647Z */
/* eslint-env browser */
/* eslint-disable no-empty */
(()=>{var qt=Object.defineProperty;var O=(a,e)=>()=>(a&&(e=a(a=0)),e);var ot=(a,e)=>{for(var t in e)qt(a,t,{get:e[t],enumerable:!0})};var c,F=O(()=>{c=(...a)=>console.log("[WPA-UI]",...a)});async function ue(a,{timeout:e=1e4,...t}={}){let r=new AbortController,n=setTimeout(()=>r.abort("timeout"),e);try{return await fetch(a,{signal:r.signal,...t})}catch(s){if(s.name==="AbortError"||s.message==="timeout"){let o=new Error(`Request timeout after ${e}ms`);throw o.name="TimeoutError",o.timeout=e,o}throw s}finally{clearTimeout(n)}}var Ce=O(()=>{});function ve(a){R.setTurnstileToken(a),oe=a,Ee=R.tokenExpiryTime}function st(){return R.isTokenValid()}function lt(){return R.getCachedToken()}function ct(){R.invalidateToken(),oe=null,Ee=0}async function J(a=!1){let e=await R.ensureToken(a);return oe=e,Ee=R.tokenExpiryTime,jt=R.tokenGenerationInProgress,Ht=R.currentGenerationPromise,e}function N(){let a=R.getProtectionTokens();return pe=a.pawtect,a.pawtect}function D(){let a=R.getProtectionTokens();return Y=a.fp,a.fp}async function Te(a=5e3){return await R.waitForPawtect(a)}var Pe,R,oe,pe,Y,Se,Ee,jt,Ht,Ae=O(()=>{F();Pe=class{constructor(){this.turnstileToken=null,this.tokenExpiryTime=0,this.tokenGenerationInProgress=!1,this.currentGenerationPromise=null,this._resolveToken=null,this.tokenPromise=new Promise(e=>{this._resolveToken=e}),this.TOKEN_LIFETIME=24e4,this.MAX_RETRIES=10,this.INITIAL_TIMEOUT=15e3,this.RETRY_INTERVAL=15e3,this._turnstileWidgetId=null,this._turnstileContainer=null,this._turnstileOverlay=null,this._lastSitekey=null,this._cachedSitekey=null,this.turnstileLoaded=!1,this.widgetPool=[],this.poolQueue=[],this.poolSize=2,this.poolInitialized=!1,this.metrics={tokensGenerated:0,avgGenerationTime:0,failures:0,retries:0,poolHits:0,poolMisses:0,cacheHits:0,cacheMisses:0},this._pawtectToken=window.__WPA_PAWTECT_TOKEN__||null,this._fp=window.__WPA_FINGERPRINT__||null,this._fpCandidate=window.__WPA_FP_CANDIDATE__||null,this._pawtectResolve=null,this._pawtectPromise=new Promise(e=>{this._pawtectResolve=e})}setTurnstileToken(e){this._resolveToken&&(this._resolveToken(e),this._resolveToken=null),this.turnstileToken=e,this.tokenExpiryTime=Date.now()+this.TOKEN_LIFETIME,this.metrics.tokensGenerated++,c("\u2705 Turnstile token set successfully");try{typeof window!="undefined"&&typeof window.dispatchEvent=="function"&&typeof window.CustomEvent=="function"&&window.dispatchEvent(new window.CustomEvent("turnstile:token",{detail:{token:e,expiry:this.tokenExpiryTime}}))}catch{}}isTokenValid(){return this.turnstileToken&&Date.now()<this.tokenExpiryTime}getCachedToken(){return this.isTokenValid()?(this.metrics.cacheHits++,this.turnstileToken):(this.metrics.cacheMisses++,null)}invalidateToken(){this.turnstileToken=null,this.tokenExpiryTime=0,c("\u{1F5D1}\uFE0F Token invalidated, will force fresh generation")}async ensureToken(e=!1){let t=Date.now();if(this.isTokenValid()&&!e)return this.turnstileToken;if(e&&this.invalidateToken(),this.tokenGenerationInProgress&&this.currentGenerationPromise){c("\u{1F504} Token generation already in progress, waiting for existing promise...");try{let r=await this.currentGenerationPromise;return r&&r.length>20?r:this.isTokenValid()?this.turnstileToken:null}catch{}}return this.tokenGenerationInProgress=!0,this.currentGenerationPromise=(async()=>{try{c("\u{1F504} Token expired or missing, generating new one...");let r=await this.handleCaptcha();if(r&&r.length>20){this.setTurnstileToken(r);let s=Date.now()-t;return this.metrics.avgGenerationTime=(this.metrics.avgGenerationTime+s)/2,r}c("\u26A0\uFE0F Invisible Turnstile failed, forcing browser automation...");let n=await this.handleCaptchaFallback();if(n&&n.length>20){this.setTurnstileToken(n);let s=Date.now()-t;return this.metrics.avgGenerationTime=(this.metrics.avgGenerationTime+s)/2,n}return this.metrics.failures++,c("\u274C All token generation methods failed"),null}finally{this.tokenGenerationInProgress=!1,this.currentGenerationPromise=null}})(),this.currentGenerationPromise}async handleCaptcha(){let e=Date.now();try{let t=this.detectSitekey();c("\u{1F511} Generating Turnstile token for sitekey:",t),typeof window!="undefined"&&window.navigator&&c("\u{1F9ED} UA:",window.navigator.userAgent,"Platform:",window.navigator.platform);let r=await this.executeTurnstile(t,"paint");if(r&&r.length>20){let n=Math.round(Date.now()-e);return c(`\u2705 Turnstile token generated successfully in ${n}ms`),r}else throw new Error("Invalid or empty token received")}catch(t){let r=Math.round(Date.now()-e);throw c(`\u274C Turnstile token generation failed after ${r}ms:`,t),t}}async loadTurnstile(){return window.turnstile?(this.turnstileLoaded=!0,Promise.resolve()):new Promise((e,t)=>{if(document.querySelector('script[src^="https://challenges.cloudflare.com/turnstile/v0/api.js"]')){let n=()=>{window.turnstile?(this.turnstileLoaded=!0,e()):setTimeout(n,100)};return n()}let r=document.createElement("script");r.src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit",r.async=!0,r.defer=!0,r.onload=()=>{this.turnstileLoaded=!0,c("\u2705 Turnstile script loaded successfully"),e()},r.onerror=()=>{c("\u274C Failed to load Turnstile script"),t(new Error("Failed to load Turnstile"))},document.head.appendChild(r)})}ensureTurnstileContainer(){return(!this._turnstileContainer||!document.body.contains(this._turnstileContainer))&&(this._turnstileContainer&&this._turnstileContainer.remove(),this._turnstileContainer=document.createElement("div"),this._turnstileContainer.style.cssText=`
position: fixed !important;
left: -9999px !important;
top: -9999px !important;
width: 300px !important;
height: 65px !important;
pointer-events: none !important;
opacity: 0 !important;
z-index: -1 !important;
`,this._turnstileContainer.setAttribute("aria-hidden","true"),this._turnstileContainer.id="turnstile-widget-container",document.body.appendChild(this._turnstileContainer)),this._turnstileContainer}ensureTurnstileOverlayContainer(){if(this._turnstileOverlay&&document.body.contains(this._turnstileOverlay))return this._turnstileOverlay;let e=document.createElement("div");e.id="turnstile-overlay-container",e.style.cssText=`
position: fixed;
right: 16px;
bottom: 16px;
width: 320px;
min-height: 80px;
background: rgba(0,0,0,0.7);
border: 1px solid rgba(255,255,255,0.2);
border-radius: 10px;
padding: 12px;
z-index: 100000;
backdrop-filter: blur(6px);
color: #fff;
box-shadow: 0 8px 24px rgba(0,0,0,0.4);
`;let t=document.createElement("div");t.textContent="Cloudflare Turnstile \u2014 please complete the check if shown",t.style.cssText='font: 600 12px/1.3 "Segoe UI",sans-serif; margin-bottom: 8px; opacity: 0.9;';let r=document.createElement("div");r.id="turnstile-overlay-host",r.style.cssText="width: 100%; min-height: 70px;";let n=document.createElement("button");return n.textContent="Hide",n.style.cssText="position:absolute; top:6px; right:6px; font-size:11px; background:transparent; color:#fff; border:1px solid rgba(255,255,255,0.2); border-radius:6px; padding:2px 6px; cursor:pointer;",n.addEventListener("click",()=>e.remove()),e.appendChild(t),e.appendChild(r),e.appendChild(n),document.body.appendChild(e),this._turnstileOverlay=e,e}async executeTurnstile(e,t="paint"){var o,i,l,g;if(await this.loadTurnstile(),this._turnstileWidgetId&&this._lastSitekey===e&&((o=window.turnstile)!=null&&o.execute))try{c("\u{1F504} Attempting to reuse existing Turnstile widget..."),(i=window.turnstile)!=null&&i.reset&&window.turnstile.reset(this._turnstileWidgetId);let u=await Promise.race([window.turnstile.execute(this._turnstileWidgetId,{action:t}),new Promise((d,p)=>setTimeout(()=>p(new Error("Execute timeout")),15e3))]);if(u&&u.length>20)return this._lastSitekey=e,c("\u2705 Widget reuse successful, token length:",u.length),u}catch(u){if(c("\u{1F504} Widget reuse failed, will create a fresh widget:",u.message),this._turnstileWidgetId&&((l=window.turnstile)!=null&&l.remove)){try{window.turnstile.remove(this._turnstileWidgetId)}catch{}this._turnstileWidgetId=null}}let r=await this.createNewTurnstileWidgetInvisible(e,t);if(r&&r.length>20)return r;c("\u{1F440} Falling back to interactive Turnstile (visible).");try{this.showUserNotificationTopCenter("\u{1F504} Resolviendo CAPTCHA...","info")}catch{}let n=1,s=!1;for(;;){let u=n===1?this.INITIAL_TIMEOUT:this.RETRY_INTERVAL;c(`\u{1F504} Intento ${n} de resoluci\xF3n del CAPTCHA (timeout: ${u/1e3}s)...`),n>1&&!s?(this.showUserNotification(`\u{1F504} CAPTCHA: Reintentando autom\xE1ticamente cada 5 segundos (intento ${n})`,"info"),s=!0):n>2&&this.showUserNotification(`\u{1F504} CAPTCHA: Intento ${n} - Continuando autom\xE1ticamente`,"info");try{if(this._turnstileWidgetId&&((g=window.turnstile)!=null&&g.remove)){try{window.turnstile.remove(this._turnstileWidgetId)}catch{}this._turnstileWidgetId=null}let d=await this.createNewTurnstileWidgetInteractiveWithRetry(e,t,!0,u);if(d&&d.length>20)return c(`\u2705 CAPTCHA resuelto exitosamente en el intento ${n}`),n>1&&this.showUserNotification("\u2705 CAPTCHA resuelto exitosamente","success"),d;c(`\u26A0\uFE0F Intento ${n} fall\xF3, reintentando en 5 segundos...`),n>1&&this.showUserNotification(`\u26A0\uFE0F Intento ${n} fall\xF3, reintentando en 5 segundos...`,"info"),await this.sleep(5e3)}catch(d){c(`\u274C Error en intento ${n}:`,d.message),n>1&&this.showUserNotification(`\u274C Error en intento ${n}, reintentando en 5 segundos`,"error"),await this.sleep(5e3)}n++,this.metrics.retries++}}async createNewTurnstileWidgetInvisible(e,t){return new Promise(r=>{var n;try{this._turnstileWidgetId&&((n=window.turnstile)!=null&&n.remove)&&window.turnstile.remove(this._turnstileWidgetId);let s=this.ensureTurnstileContainer();s.innerHTML="",this._turnstileWidgetId=window.turnstile.render(s,{sitekey:e,action:t,size:"compact",theme:"light",callback:o=>{this._lastSitekey=e,c("\u{1F3AF} Compact Turnstile callback success, token length:",o==null?void 0:o.length),r(o)},"error-callback":()=>{c("\u274C Compact Turnstile error callback"),r(null)},"timeout-callback":()=>{c("\u23F0 Compact Turnstile timeout callback"),r(null)},"expired-callback":()=>{c("\u{1F480} Compact Turnstile expired callback"),r(null)}}),setTimeout(()=>r(null),1e4)}catch(s){c("\u274C Error creating compact Turnstile widget:",s),r(null)}})}async createNewTurnstileWidgetInteractiveWithRetry(e,t,r=!0,n=3e4){return new Promise((s,o)=>{var i;try{this._turnstileWidgetId&&((i=window.turnstile)!=null&&i.remove)&&window.turnstile.remove(this._turnstileWidgetId);let l=this.ensureTurnstileOverlayContainer(),g=l.querySelector("#turnstile-overlay-host");g.innerHTML="",l.style.display="block",l.classList.remove("wplace-overlay-hidden"),this._turnstileWidgetId=window.turnstile.render(g,{sitekey:e,action:t,theme:"auto",callback:u=>{this._lastSitekey=e,c("\u{1F3AF} Interactive Turnstile callback success, token length:",u==null?void 0:u.length),l.style.display="none",s(u)},"error-callback":()=>{c("\u274C Interactive Turnstile error callback"),l.style.display="none",s(null)},"timeout-callback":()=>{c("\u23F0 Interactive Turnstile timeout callback"),l.style.display="none",s(null)},"expired-callback":()=>{c("\u{1F480} Interactive Turnstile expired callback"),l.style.display="none",s(null)}}),setTimeout(()=>{l.style.display="none",s(null)},n)}catch(l){c("\u274C Error creating interactive Turnstile widget:",l),s(null)}})}detectSitekey(e="0x4AAAAAABpqJe8FO0N84q0F"){var t;if(this._cachedSitekey)return this._cachedSitekey;try{let r=document.querySelector("[data-sitekey]");if(r){let o=r.dataset.sitekey||r.getAttribute("data-sitekey");if(o&&o.length>10)return c("\u{1F50D} Sitekey found in data attribute:",o),this._cachedSitekey=o,o}let n=document.querySelector(".cf-turnstile");if((t=n==null?void 0:n.dataset)!=null&&t.sitekey&&n.dataset.sitekey.length>10)return c("\u{1F50D} Sitekey found in turnstile element:",n.dataset.sitekey),this._cachedSitekey=n.dataset.sitekey,n.dataset.sitekey;if(typeof window!="undefined"&&window.__TURNSTILE_SITEKEY&&window.__TURNSTILE_SITEKEY.length>10)return c("\u{1F50D} Sitekey found in global variable:",window.__TURNSTILE_SITEKEY),this._cachedSitekey=window.__TURNSTILE_SITEKEY,window.__TURNSTILE_SITEKEY;let s=document.querySelectorAll("script");for(let o of s){let l=(o.textContent||o.innerHTML).match(/['"](0x4[A-Za-z0-9_-]{20,})['"]/);if(l&&l[1])return c("\u{1F50D} Sitekey found in script:",l[1]),this._cachedSitekey=l[1],l[1]}}catch(r){c("Error detecting sitekey:",r)}return c("\u{1F50D} Using fallback sitekey:",e),this._cachedSitekey=e,e}async handleCaptchaFallback(){return new Promise((e,t)=>{(async()=>{try{c("\u{1F504} Starting fallback automation flow..."),c("\u26A0\uFE0F Fallback automation not implemented in enhanced version"),e(null)}catch(n){c("\u274C Fallback automation failed:",n),e(null)}})()})}sleep(e){return new Promise(t=>setTimeout(t,e))}showUserNotification(e,t="info"){this.showUserNotificationTopCenter(e,t)}showUserNotificationTopCenter(e,t="info",r=3e3){let n=document.getElementById("wplace-toast-container");n||(n=document.createElement("div"),n.id="wplace-toast-container",n.style.cssText=`
position: fixed;
top: 16px;
left: 50%;
transform: translateX(-50%);
z-index: 2147483647;
display: flex;
flex-direction: column;
gap: 8px;
pointer-events: none;
`,document.body.appendChild(n));let s=t==="success"?"#10b981":t==="error"?"#ef4444":"#3b82f6",o=document.createElement("div");o.className="wplace-toast",o.textContent=e,o.style.cssText=`
min-width: 240px;
max-width: 80vw;
margin: 0 auto;
background: ${s};
color: white;
border-radius: 10px;
box-shadow: 0 8px 24px rgba(0,0,0,0.35);
padding: 10px 14px;
font-weight: 600;
letter-spacing: .2px;
transform: translateY(-10px) scale(0.98);
opacity: 0;
transition: transform .25s cubic-bezier(0.2, 0.8, 0.2, 1), opacity .25s ease;
pointer-events: auto;
`,n.appendChild(o),(g=>typeof window!="undefined"&&window.requestAnimationFrame?window.requestAnimationFrame(g):setTimeout(g,16))(()=>{o.style.transform="translateY(0) scale(1)",o.style.opacity="1"});let l=()=>{o.style.transform="translateY(-10px) scale(0.98)",o.style.opacity="0",setTimeout(()=>o.remove(),250)};r>0&&setTimeout(l,r),o.addEventListener("click",l)}getProtectionTokens(){return this._pawtectToken=window.__WPA_PAWTECT_TOKEN__||this._pawtectToken,this._fp=window.__WPA_FINGERPRINT__||this._fp,this._fpCandidate=window.__WPA_FP_CANDIDATE__||this._fpCandidate,{pawtect:this._pawtectToken,fp:this._fp,fpCandidate:this._fpCandidate}}async waitForPawtect(e=5e3){if(this._pawtectToken&&this._fp)return{pawtect:this._pawtectToken,fp:this._fp};let t=setTimeout(()=>{this._pawtectResolve&&this._pawtectResolve({pawtect:this._pawtectToken,fp:this._fp})},e),r=await this._pawtectPromise.catch(()=>({pawtect:this._pawtectToken,fp:this._fp}));return clearTimeout(t),this._pawtectResolve||(this._pawtectPromise=new Promise(n=>{this._pawtectResolve=n})),r}getMetrics(){let e=this.metrics.cacheHits/Math.max(1,this.metrics.cacheHits+this.metrics.cacheMisses),t=this.metrics.poolHits/Math.max(1,this.metrics.poolHits+this.metrics.poolMisses);return{...this.metrics,cacheHitRate:e,poolHitRate:t,failureRate:this.metrics.failures/Math.max(1,this.metrics.tokensGenerated+this.metrics.failures)}}},R=new Pe,oe=null,pe=null,Y=null,Se=null,Ee=0,jt=!1,Ht=null;window.__WPA_SET_TURNSTILE_TOKEN__=function(a){a&&typeof a=="string"&&a.length>20&&(c("\u2705 Turnstile Token Captured:",a),ve(a))};window.addEventListener("message",a=>{var t;let e=a==null?void 0:a.data;if(e){if(e.source==="turnstile-capture"&&e.token){(!st()||oe!==e.token)&&ve(e.token);return}if(e.__wplace===!0&&e.type==="token_found"){e.token&&(!st()||oe!==e.token)&&ve(e.token),e.xpaw&&(!pe||pe!==e.xpaw)&&(pe=e.xpaw,window.__WPA_PAWTECT_TOKEN__=e.xpaw,R._pawtectToken=e.xpaw,c("[turnstile] pawtect token updated:",e.xpaw.substring(0,20)+"...")),e.fp&&(!Y||Y!==e.fp)&&(Y=e.fp,window.__WPA_FINGERPRINT__=e.fp,R._fp=e.fp,c("[turnstile] fingerprint updated:",e.fp.substring(0,20)+"..."));return}try{let r=typeof e=="object"&&typeof e.fp=="string"&&e.fp.length>10?e.fp:null;r&&(!Y||Y!==r)&&(Y=r,window.__WPA_FINGERPRINT__=r,R._fp=r,c("[turnstile] fingerprint from message:",r.substring(0,20)+"..."))}catch{}try{let r=typeof e=="object"&&(e.pi||(t=e.payload)!=null&&t.pi)?e.pi||e.payload.pi:null;if(r&&typeof r=="object"&&(r.xp||r.pfp||r.ffp)){let n=JSON.stringify(r);(!Se||Se!==n)&&(Se=n,window.__WPA_FP_CANDIDATE__=n,R._fpCandidate=n,c("[turnstile] fp candidate from pi:",n.substring(0,50)+"..."))}}catch{}}})});function Vt(){try{let a=document.createElement("canvas"),e=a.getContext("2d");return e?(a.width=200,a.height=40,e.textBaseline="top",e.font='14px "Arial"',e.fillStyle="#f60",e.fillRect(0,0,200,40),e.fillStyle="#069",e.fillText("wplace-fp-canvas",2,2),e.strokeStyle="#ff0",e.beginPath(),e.arc(100,20,18,0,Math.PI*2),e.stroke(),a.toDataURL().slice(0,64)):"nocanvas"}catch{return"nocanvas"}}function Yt(){try{let a=document.createElement("canvas"),e=a.getContext("webgl")||a.getContext("experimental-webgl");if(!e)return"nowebgl";let t=e.getExtension("WEBGL_debug_renderer_info"),r=t?e.getParameter(t.UNMASKED_VENDOR_WEBGL):e.getParameter(e.VENDOR),n=t?e.getParameter(t.UNMASKED_RENDERER_WEBGL):e.getParameter(e.RENDERER);return r+"|"+n}catch{return"nowebgl"}}function Jt(a){let e=2166136261;for(let t=0;t<a.length;t++)e^=a.charCodeAt(t),e=e+((e<<1)+(e<<4)+(e<<7)+(e<<8)+(e<<24))>>>0;return("00000000"+e.toString(16)).slice(-8)}async function Xt(a){var e;if(typeof window!="undefined"&&((e=window.crypto)!=null&&e.subtle))try{let t=typeof window!="undefined"&&window.TextEncoder?window.TextEncoder:null,r=t?new t().encode(a):new Uint8Array([...unescape(encodeURIComponent(a))].map(s=>s.charCodeAt(0))),n=await window.crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(n)).map(s=>s.toString(16).padStart(2,"0")).join("")}catch{}return Jt(a)}function Zt(){let a=typeof window!="undefined"&&window.navigator?window.navigator:{},e=typeof window!="undefined"&&window.screen?window.screen:{},t=typeof Intl!="undefined"&&Intl.DateTimeFormat&&Intl.DateTimeFormat().resolvedOptions().timeZone||"";return{ua:a.userAgent||"",plat:a.platform||"",lang:(a.languages||[]).join(",")||a.language||"",cores:a.hardwareConcurrency||0,mem:a.deviceMemory||0,width:e.width||0,height:e.height||0,depth:e.colorDepth||0,tz:t,canvas:Vt(),webgl:Yt()}}async function Ie({force:a=!1}={}){return Q&&!a?Q:ne||(ne=(async()=>{try{let e=Zt(),t=Object.keys(e).sort().map(n=>n+":"+e[n]).join("|");Q="fp:"+(await Xt(t)).slice(0,64);try{window.__WPA_FINGERPRINT__=Q}catch{}return c("[fp] generado len="+Q.length),Q}finally{ne=null}})(),ne)}var Q,ne,dt=O(()=>{F();Q=null,ne=null});async function ee(a,e={}){return await ut.computePawtect(a,e)}var Le,ut,pt=O(()=>{F();Le=class{constructor(){this._wasmMod=null,this._wasm=null,this._chunkUrl=null,this._initUser=!1,this._busy=!1,this._cache=new Map,this.CACHE_TTL=12e4,this._cacheCleanupInterval=null,this.MAX_RETRIES=3,this.RETRY_DELAY_BASE=1e3,this.CHUNK_DISCOVERY_TIMEOUT=1e4,this.WASM_LOAD_TIMEOUT=15e3,this.metrics={computations:0,cacheHits:0,cacheMisses:0,errors:0,retries:0,avgComputeTime:0,wasmLoadTime:0,chunkDiscoveryTime:0},this.errorHistory=[],this.MAX_ERROR_HISTORY=50,this._initializeCacheCleanup(),c("[pawtect] Enhanced PawtectManager initialized")}_initializeCacheCleanup(){typeof window!="undefined"&&typeof window.setInterval=="function"&&(this._cacheCleanupInterval=window.setInterval(()=>{this._cleanupExpiredCache()},6e4))}_cleanupExpiredCache(){let e=Date.now(),t=0;for(let[r,n]of this._cache.entries())e-n.ts>this.CACHE_TTL&&(this._cache.delete(r),t++);t>0&&c(`[pawtect] Cleaned ${t} expired cache entries`)}_validateAndNormalizeInput(e){if(!e||typeof e!="object")throw new Error("Invalid bodyObj: must be a non-null object");try{return JSON.stringify(e,Object.keys(e).sort())}catch(t){throw c("[pawtect] Error serializing bodyObj:",t),new Error("Failed to serialize bodyObj to JSON")}}async _discoverChunkAdvanced(){if(this._chunkUrl)return this._chunkUrl;let e=Date.now();try{if(typeof document=="undefined")return null;let t=[()=>this._discoverFromScriptTags(),()=>this._discoverFromLinks(),()=>this._discoverFromPerformanceAPI()];for(let r of t)try{let n=await Promise.race([r(),new Promise((s,o)=>setTimeout(()=>o(new Error("Strategy timeout")),3e3))]);if(n)return this._chunkUrl=n,this.metrics.chunkDiscoveryTime=Date.now()-e,c("[pawtect] chunk encontrado con estrategia avanzada:",n),n}catch(n){c("[pawtect] strategy failed:",n.message)}}catch(t){c("[pawtect] chunk discovery failed:",t)}return this.metrics.chunkDiscoveryTime=Date.now()-e,null}async _discoverFromScriptTags(){var t;let e=new Set;try{(t=document.querySelectorAll("script[src]"))==null||t.forEach(r=>{try{typeof window!="undefined"&&window.URL&&window.location&&e.add(new window.URL(r.src,window.location.href).href)}catch{}})}catch{}return this._testUrlCandidates([...e])}async _discoverFromLinks(){var t;let e=new Set;try{(t=document.querySelectorAll('link[rel="modulepreload"][href],link[as="script"][href]'))==null||t.forEach(r=>{try{typeof window!="undefined"&&window.URL&&window.location&&e.add(new window.URL(r.href,window.location.href).href)}catch{}})}catch{}return this._testUrlCandidates([...e])}async _discoverFromPerformanceAPI(){let e=new Set;try{typeof window!="undefined"&&window.performance&&(window.performance.getEntriesByType("resource")||[]).forEach(t=>{t!=null&&t.name&&e.add(t.name)})}catch{}return this._testUrlCandidates([...e])}async _testUrlCandidates(e){let t=e.filter(r=>/\/(_app|assets)\/immutable\/chunks\/.*\.js/i.test(r));for(let r of t)try{let s=await(await Promise.race([fetch(r,{credentials:"omit"}),new Promise((o,i)=>setTimeout(()=>i(new Error("Fetch timeout")),5e3))])).text();if(/get_pawtected_endpoint_payload|pawtect/i.test(s))return r}catch(n){c("[pawtect] failed to test candidate:",r,n.message)}return null}async _loadWasmEnhanced(){if(this._wasm)return this._wasm;let e=Date.now();try{let t=await Promise.race([this._discoverChunkAdvanced(),new Promise((n,s)=>setTimeout(()=>s(new Error("Chunk discovery timeout")),this.CHUNK_DISCOVERY_TIMEOUT))]);if(!t)return c("[pawtect] no se encontr\xF3 chunk despu\xE9s de b\xFAsqueda avanzada"),null;let r=await Promise.race([import(t),new Promise((n,s)=>setTimeout(()=>s(new Error("WASM import timeout")),this.WASM_LOAD_TIMEOUT))]);if(typeof r._=="function")return this._wasmMod=r,this._wasm=await r._(),this.metrics.wasmLoadTime=Date.now()-e,c("[pawtect] wasm cargado exitosamente en",this.metrics.wasmLoadTime,"ms"),this._wasm;throw new Error("WASM module does not have expected interface")}catch(t){return this.metrics.wasmLoadTime=Date.now()-e,this._recordError("WASM load failed",t),c("[pawtect] error cargando wasm:",t.message),null}}_maybeInitUser(e){if(!(!this._wasmMod||this._initUser))try{if(e!=null&&e.id)if(typeof this._wasmMod.i=="function")this._wasmMod.i(e.id),this._initUser=!0,c("[pawtect] user initialized with function:",e.id);else if(typeof this._wasmMod.i=="object"&&this._wasmMod.i.constructor)try{new this._wasmMod.i(e.id),this._initUser=!0,c("[pawtect] user initialized with class:",e.id)}catch(t){c("[pawtect] class instantiation failed, trying alternative methods:",t.message),this._tryAlternativeUserInit(e)}else c("[pawtect] user initialization skipped - no valid method found")}catch(t){c("[pawtect] user initialization failed:",t.message)}}_tryAlternativeUserInit(e){try{this._wasmMod.initUser&&typeof this._wasmMod.initUser=="function"?(this._wasmMod.initUser(e.id),this._initUser=!0,c("[pawtect] user initialized with initUser:",e.id)):this._wasmMod.init&&typeof this._wasmMod.init=="function"?(this._wasmMod.init(e.id),this._initUser=!0,c("[pawtect] user initialized with init:",e.id)):(this._initUser=!0,c("[pawtect] user initialization skipped - marking as done to avoid retries"))}catch(t){this._initUser=!0,c("[pawtect] alternative user initialization failed:",t.message)}}async _getUserWithRetry(){for(let e=0;e<3;e++)try{let t=await Promise.race([fetch("https://backend.wplace.live/me",{credentials:"include"}),new Promise((r,n)=>setTimeout(()=>n(new Error("User fetch timeout")),5e3))]);if(t.ok)return await t.json()}catch(t){c(`[pawtect] user fetch attempt ${e+1} failed:`,t.message),e<2&&await new Promise(r=>setTimeout(r,1e3*(e+1)))}return null}_recordError(e,t){let r={timestamp:Date.now(),context:e,message:t.message,stack:t.stack};this.errorHistory.push(r),this.errorHistory.length>this.MAX_ERROR_HISTORY&&this.errorHistory.shift(),this.metrics.errors++}async computePawtect(e,{force:t=!1}={}){var n;let r=Date.now();try{let s=this._validateAndNormalizeInput(e),o=s,i=Date.now();if(!t&&this._cache.has(o)){let l=this._cache.get(o);if(i-l.ts<this.CACHE_TTL)return this.metrics.cacheHits++,c("[pawtect] cache hit, token length:",((n=l.token)==null?void 0:n.length)||0),l.token;this._cache.delete(o)}if(this.metrics.cacheMisses++,this._busy&&(await new Promise(l=>setTimeout(l,150+Math.random()*100)),!t&&this._cache.has(o))){let l=this._cache.get(o);if(i-l.ts<this.CACHE_TTL)return this.metrics.cacheHits++,l.token}return await this._computeWithRetry(s,o,r)}catch(s){this._recordError("computePawtect",s);let o=Date.now()-r;return c("[pawtect] computation failed after",o,"ms:",s.message),null}}async _computeWithRetry(e,t,r){let n=null;for(let s=0;s<this.MAX_RETRIES;s++){this._busy=!0;try{let o=await this._performComputation(e);if(o){this._cache.set(t,{token:o,ts:Date.now()});try{window.__WPA_PAWTECT_TOKEN__=o}catch{}this.metrics.computations++;let i=Date.now()-r;return this.metrics.avgComputeTime=(this.metrics.avgComputeTime*(this.metrics.computations-1)+i)/this.metrics.computations,c("[pawtect] token calculado exitosamente, len=",o.length,"duration=",i,"ms"),o}throw new Error("No token generated from WASM")}catch(o){if(n=o,this.metrics.retries++,c(`[pawtect] attempt ${s+1} failed:`,o.message),s<this.MAX_RETRIES-1){let i=this.RETRY_DELAY_BASE*Math.pow(2,s);c(`[pawtect] retrying in ${i}ms...`),await new Promise(l=>setTimeout(l,i))}}finally{this._busy=!1}}return this._recordError("All computation attempts failed",n),null}async _performComputation(e){let t=await this._loadWasmEnhanced();if(!t||typeof t.get_pawtected_endpoint_payload!="function")throw new Error("WASM not available or missing function");if(!this._initUser){let l=await this._getUserWithRetry();this._maybeInitUser(l)}let r=typeof window!="undefined"&&window.TextEncoder?new window.TextEncoder:{encode:l=>new Uint8Array([...unescape(encodeURIComponent(l))].map(g=>g.charCodeAt(0)))},n=typeof window!="undefined"&&window.TextDecoder?new window.TextDecoder:{decode:l=>decodeURIComponent(escape(String.fromCharCode(...l)))},s=l=>{if(!l)return null;if(typeof l=="string")return l;if(Array.isArray(l)&&l.length>=2){let[g,u]=l,d=new Uint8Array(t.memory.buffer,g,u),p=n.decode(d);try{t.__wbindgen_free&&(t.__wbindgen_free.length>=2?t.__wbindgen_free(g,u):t.__wbindgen_free(g))}catch{}return p}if(typeof l=="object"&&typeof l.ptr=="number"&&typeof l.len=="number"){let g=new Uint8Array(t.memory.buffer,l.ptr,l.len),u=n.decode(g);try{t.__wbindgen_free&&(t.__wbindgen_free.length>=2?t.__wbindgen_free(l.ptr,l.len):t.__wbindgen_free(l.ptr))}catch{}return u}return null};try{let l=t.get_pawtected_endpoint_payload(e),g=s(l);if(g&&typeof g=="string"&&g.length>0)return g}catch{}let o=r.encode(e),i=null;try{if(typeof t.__wbindgen_malloc=="function")try{i=t.__wbindgen_malloc(o.length)}catch{i=t.__wbindgen_malloc(o.length,1)}if(!i||typeof i!="number"||i<=0)throw new Error("Failed to allocate WASM memory");let l=i+o.length;if(l>t.memory.buffer.byteLength&&typeof t.memory.grow=="function"){let p=l-t.memory.buffer.byteLength,y=Math.ceil(p/65536);if(y>0)try{t.memory.grow(y)}catch{}}new Uint8Array(t.memory.buffer,i,o.length).set(o);let g=t.get_pawtected_endpoint_payload(i,o.length);return s(g)}catch(l){throw new Error(`WASM computation failed: ${l.message}`)}finally{if(i)try{typeof t.__wbindgen_free=="function"&&(t.__wbindgen_free.length>=2?t.__wbindgen_free(i,o.length):t.__wbindgen_free(i))}catch{}}}async seedPawtect(){try{c("[pawtect] seeding computation..."),await this.computePawtect({colors:[0],coords:[1,1],t:"seed",fp:"seed"},{force:!0}),c("[pawtect] seed computation completed")}catch(e){c("[pawtect] seed computation failed:",e)}}getMetrics(){let e=this._cache.size,t=this.metrics.cacheHits/Math.max(1,this.metrics.cacheHits+this.metrics.cacheMisses),r=this.metrics.errors/Math.max(1,this.metrics.computations+this.metrics.errors);return{...this.metrics,cacheSize:e,cacheHitRate:t,errorRate:r,recentErrors:this.errorHistory.slice(-5)}}clearCache(){let e=this._cache.size;this._cache.clear(),c(`[pawtect] cache cleared, removed ${e} entries`)}cleanup(){this._cacheCleanupInterval&&typeof window!="undefined"&&typeof window.clearInterval=="function"&&(window.clearInterval(this._cacheCleanupInterval),this._cacheCleanupInterval=null),this._cache.clear(),this._wasm=null,this._wasmMod=null,this._chunkUrl=null,c("[pawtect] cleanup completed")}},ut=new Le;typeof window!="undefined"&&typeof window.setTimeout=="function"&&window.setTimeout(()=>{ut.seedPawtect()},1e3)});async function te(a){if(!a)return{ok:!1,status:0,json:{},text:"",parseError:"no-response"};let e=a.status,t="";try{t=await a.text()}catch(r){return{ok:a.ok,status:e,json:{},text:"",parseError:r.message}}if(!t)return{ok:a.ok,status:e,json:{},text:""};try{let r=JSON.parse(t);return{ok:a.ok,status:e,json:r,text:t}}catch(r){return{ok:a.ok,status:e,json:{},text:t,parseError:r.message}}}var gt=O(()=>{});var mt={};ot(mt,{checkHealth:()=>_e,downloadAndExecuteBot:()=>Qt,getSession:()=>ie,postPixel:()=>Kt,postPixelBatchImage:()=>Re,purchaseProduct:()=>ke});async function ie(){var a,e,t,r;try{let n=await fetch(`${W}/me`,{credentials:"include"}).then(g=>g.json()),s=n||null,o=(n==null?void 0:n.charges)||{},i=(a=n==null?void 0:n.droplets)!=null?a:0,l={count:(e=o.count)!=null?e:0,max:(t=o.max)!=null?t:0,cooldownMs:(r=o.cooldownMs)!=null?r:3e4};return{success:!0,data:{user:s,charges:l.count,maxCharges:l.max,chargeRegen:l.cooldownMs,droplets:i}}}catch(n){return{success:!1,error:n.message,data:{user:null,charges:0,maxCharges:0,chargeRegen:3e4,droplets:0}}}}async function _e(){try{let a=await fetch(`${W}/health`,{method:"GET",credentials:"include"});return a.ok?{...await a.json(),lastCheck:Date.now(),status:"online"}:{database:!1,up:!1,uptime:"N/A",lastCheck:Date.now(),status:"error",statusCode:a.status}}catch(a){return{database:!1,up:!1,uptime:"N/A",lastCheck:Date.now(),status:"offline",error:a.message}}}async function ke(a=70,e=1){try{let t=JSON.stringify({product:{id:a,amount:e}}),r=await ue(`${W}/purchase`,{method:"POST",headers:{"Content-Type":"text/plain;charset=UTF-8"},body:t,credentials:"include",timeout:15e3}),n={};try{n=await r.json()}catch{n={}}return{success:r.ok,status:r.status,json:n}}catch(t){return{success:!1,status:0,json:{error:t.message}}}}async function Kt(a,e,t,r,n){try{let s=C=>{if(!Array.isArray(C))return[];let I=[];if(C.length>0&&typeof C[0]=="number"){for(let P=0;P<C.length;P+=2){let w=Math.trunc(C[P]),b=Math.trunc(C[P+1]);Number.isFinite(w)&&Number.isFinite(b)&&I.push((w%1e3+1e3)%1e3,(b%1e3+1e3)%1e3)}return I}if(typeof C[0]=="object"&&C[0]&&("x"in C[0]||"y"in C[0])){for(let P of C){let w=Math.trunc(P==null?void 0:P.x),b=Math.trunc(P==null?void 0:P.y);Number.isFinite(w)&&Number.isFinite(b)&&I.push((w%1e3+1e3)%1e3,(b%1e3+1e3)%1e3)}return I}if(Array.isArray(C[0])){for(let P of C){let w=Math.trunc(P==null?void 0:P[0]),b=Math.trunc(P==null?void 0:P[1]);Number.isFinite(w)&&Number.isFinite(b)&&I.push((w%1e3+1e3)%1e3,(b%1e3+1e3)%1e3)}return I}return I},o=C=>Array.isArray(C)?C.map(I=>Math.trunc(Number(I))||0):[],i=s(a),l=o(e);if(i.length===0||l.length===0||i.length/2!==l.length)return{status:400,json:{error:"Invalid coords/colors format"},success:!1};let g=D();if(!g)try{g=await Ie({})}catch{}let u=N();if(!u)try{let C=await ee({colors:l,coords:i,t,...g?{fp:g}:{}});C&&(u=C)}catch{}if(!g||!u){try{await Te(1500)}catch{}if(u||(u=N()),g||(g=D()),!u)try{let C=await ee({colors:l,coords:i,t,...g?{fp:g}:{}});C&&(u=C)}catch{}}let d=JSON.stringify({colors:l,coords:i,t,...g?{fp:g}:{}}),p=new AbortController,y=setTimeout(()=>p.abort(),2e4),f=await fetch(`${W}/s0/pixel/${r}/${n}`,{method:"POST",credentials:"include",headers:{"Content-Type":"text/plain;charset=UTF-8",...u?{"x-pawtect-token":u}:{}},body:d,signal:p.signal});if(clearTimeout(y),f.status===403){try{await f.json()}catch{}console.error("\u274C 403 Forbidden. Turnstile token might be invalid or expired.");try{console.log("\u{1F504} Regenerating Turnstile token after 403...");let C=await J(!0);if(u=N(),g=D(),!u)try{let T=await ee({colors:l,coords:i,t:C,...g?{fp:g}:{}});T&&(u=T)}catch{}let I=JSON.stringify({colors:l,coords:i,t:C,...g?{fp:g}:{}}),P=new AbortController,w=setTimeout(()=>P.abort(),2e4),b=await fetch(`${W}/s0/pixel/${r}/${n}`,{method:"POST",credentials:"include",headers:{"Content-Type":"text/plain;charset=UTF-8",...u?{"x-pawtect-token":u}:{}},body:I,signal:P.signal});if(clearTimeout(w),b.status===403)return{status:403,json:{error:"Fresh token expired or invalid after retry"},success:!1};let S=null;try{let T=await b.text();T&&(S=JSON.parse(T))}catch{S={}}return{status:b.status,json:S,success:b.ok}}catch(C){return console.error("\u274C Token regeneration failed:",C),{status:403,json:{error:"Token regeneration failed"},success:!1}}}if(f.status>=500&&f.status<=504)try{let C=await J(!0);if(u=N(),g=D(),!u)try{let T=await ee({colors:l,coords:i,t:C,...g?{fp:g}:{}});T&&(u=T)}catch{}let I=JSON.stringify({colors:l,coords:i,t:C,...g?{fp:g}:{}}),P=new AbortController,w=setTimeout(()=>P.abort(),2e4),b=await fetch(`${W}/s0/pixel/${r}/${n}`,{method:"POST",credentials:"include",headers:{"Content-Type":"text/plain;charset=UTF-8",...u?{"x-pawtect-token":u}:{}},body:I,signal:P.signal});clearTimeout(w);let S=await te(b);if(b.ok)try{ct()}catch{}return{status:b.status,json:S.json,success:b.ok}}catch{}let E=await te(f);return{status:f.status,json:E.json,success:f.ok}}catch(s){return s.name==="AbortError"||s.name==="TimeoutError"?{status:408,json:{error:"Request timeout"},success:!1}:{status:0,json:{error:s.message},success:!1}}}async function Re(a,e,t,r,n){var s,o,i;try{let l=w=>{if(!Array.isArray(w))return[];let b=[];if(w.length>0&&typeof w[0]=="number"){for(let S=0;S<w.length;S+=2){let T=Math.trunc(w[S]),L=Math.trunc(w[S+1]);Number.isFinite(T)&&Number.isFinite(L)&&b.push((T%1e3+1e3)%1e3,(L%1e3+1e3)%1e3)}return b}if(typeof w[0]=="object"&&w[0]&&("x"in w[0]||"y"in w[0])){for(let S of w){let T=Math.trunc(S==null?void 0:S.x),L=Math.trunc(S==null?void 0:S.y);Number.isFinite(T)&&Number.isFinite(L)&&b.push((T%1e3+1e3)%1e3,(L%1e3+1e3)%1e3)}return b}if(Array.isArray(w[0])){for(let S of w){let T=Math.trunc(S==null?void 0:S[0]),L=Math.trunc(S==null?void 0:S[1]);Number.isFinite(T)&&Number.isFinite(L)&&b.push((T%1e3+1e3)%1e3,(L%1e3+1e3)%1e3)}return b}return b},g=w=>Array.isArray(w)?w.map(b=>Math.trunc(Number(b))||0):[],u=l(t),d=g(r);if(u.length===0||d.length===0||u.length/2!==d.length)return c(`[API] Invalid coords/colors for tile ${a},${e} \u2192 coordsPairs=${u.length/2} colors=${d.length}`),{status:400,json:{error:"Invalid coords/colors format"},success:!1,painted:0};let p=D();if(!p)try{p=await Ie({})}catch{}let y=null;try{let w={colors:r,coords:t,t:n||"seed",...p?{fp:p}:{fp:"seed"}},b=await ee(w);b?y=b:y=N()}catch{y=N()}if(!p){try{await Te(1200)}catch{}p=D()}let f=JSON.stringify({colors:d,coords:u,t:n,...p?{fp:p}:{}}),E="";try{let w=2166136261;for(let b=0;b<f.length;b++)w^=f.charCodeAt(b),w=Math.imul(w,16777619);E=("00000000"+(w>>>0).toString(16)).slice(-8)}catch{}c(`[API] Sending batch to tile ${a},${e} with ${r.length} pixels, token: ${n?n.substring(0,50)+"...":"null"}`),c(`[API] postPixelBatchImage include: pawtect=${!!y} fp=${!!p} bodyHash=${E}`);let C=await fetch(`${W}/s0/pixel/${a}/${e}`,{method:"POST",credentials:"include",headers:{"Content-Type":"text/plain;charset=UTF-8",...y?{"x-pawtect-token":y}:{}},body:f});if(c(`[API] Response: ${C.status} ${C.statusText}`),C.status===403){try{await C.json()}catch{}console.error("\u274C 403 Forbidden. Turnstile token might be invalid or expired.");try{console.log("\u{1F504} Regenerating Turnstile token after 403...");let w=await J(!0);if(y=N(),p=D(),!w)return{status:403,json:{error:"Could not generate new token"},success:!1,painted:0};let b=JSON.stringify({colors:d,coords:u,t:w,...p?{fp:p}:{}});c(`[API] Retrying with fresh token: ${w.substring(0,50)}...`);let S=await fetch(`${W}/s0/pixel/${a}/${e}`,{method:"POST",credentials:"include",headers:{"Content-Type":"text/plain;charset=UTF-8",...y?{"x-pawtect-token":y}:{}},body:b});if(c(`[API] Retry response: ${S.status} ${S.statusText}`),S.status===403)return{status:403,json:{error:"Fresh token still expired or invalid after retry"},success:!1,painted:0};let T=await te(S),L=((s=T.json)==null?void 0:s.painted)||0;return c(`[API] Retry result: ${L} pixels painted`),{status:S.status,json:T.json,success:S.ok,painted:L}}catch(w){return console.error("\u274C Token regeneration failed:",w),{status:403,json:{error:"Token regeneration failed: "+w.message},success:!1,painted:0}}}if(C.status>=500&&C.status<=504)try{let w=await J(!0);y=N(),p=D();let b=JSON.stringify({colors:d,coords:u,t:w,...p?{fp:p}:{}});c(`[API] Retrying after ${C.status} with fresh token: ${w.substring(0,50)}...`);let S=await fetch(`${W}/s0/pixel/${a}/${e}`,{method:"POST",credentials:"include",headers:{"Content-Type":"text/plain;charset=UTF-8",...y?{"x-pawtect-token":y}:{}},body:b}),T=await te(S),L=((o=T.json)==null?void 0:o.painted)||0;return c(`[API] Retry after ${C.status}: ${L} pixels painted`),{status:S.status,json:T.json,success:S.ok,painted:L}}catch{}let I=await te(C),P=((i=I.json)==null?void 0:i.painted)||0;return c(`[API] Success: ${P} pixels painted`),{status:C.status,json:I.json,success:C.ok,painted:P}}catch(l){return l.name==="AbortError"||l.name==="TimeoutError"?(c(`[API] Request timeout for tile ${a},${e}`),{status:408,json:{error:"Request timeout"},success:!1,painted:0}):(c(`[API] Network error: ${l.message}`),{status:0,json:{error:l.message},success:!1,painted:0})}}async function Qt(a,e){c(`\u{1F4E5} Descargando bot: ${a}`);try{let r={farm:"Auto-Farm.js",image:"Auto-Image.js",guard:"Auto-Guard.js"}[a];if(!r)throw new Error(`Tipo de bot desconocido: ${a}`);let n=`${e}/${r}`;c(`\u{1F310} URL: ${n}`);let s=await fetch(n,{cache:"no-cache"});if(!s.ok)throw new Error(`HTTP ${s.status}`);let o=await s.text();c(`\u2705 Bot descargado (${o.length} chars), inyectando...`);let i=`
//# sourceURL=${n}`;return c("\u{1F680} Ejecutando bot en contexto global (para acceso a turnstile.js)..."),(0,eval)(o+i),c("\u2705 Bot ejecutado con acceso completo a turnstile.js"),!0}catch(t){throw c("\u274C Error descargando/ejecutando bot:",t.message),t}}var W,ge=O(()=>{Ce();Ae();dt();pt();F();gt();W="https://backend.wplace.live"});function sa(a){ze=a}function _(a,e=null){ze&&(e?console.log(`[ModalManager] ${a}`,e):console.log(`[ModalManager] ${a}`))}function we(){return document.querySelectorAll("dialog.modal[open], dialog[open], .modal[open], .modal.show").length>0}function ae(){let a=we();_(`Modal state changed. Open: ${a}`),_(`Windows registered: ${H.size}`),_(`Windows currently hidden by modal: ${$.size}`),H.forEach(e=>{if(a){if(!$.has(e)){_("Hiding window due to modal",e),$.add(e),e.style.transition="all 0.3s ease-out",e.style.opacity="0",e.style.pointerEvents="none";let t=e.getRootNode&&e.getRootNode();t&&t.host&&t.host.style&&(_("Also hiding Shadow DOM host",t.host),t.host.style.transition="all 0.3s ease-out",t.host.style.opacity="0",t.host.style.pointerEvents="none")}}else if($.has(e)){_("Showing window, no modals detected",e),$.delete(e),e.style.transition="all 0.3s ease-in",e.style.opacity="1",e.style.pointerEvents="auto";let t=e.getRootNode&&e.getRootNode();t&&t.host&&t.host.style&&(_("Also showing Shadow DOM host",t.host),t.host.style.transition="all 0.3s ease-in",t.host.style.opacity="1",t.host.style.pointerEvents="auto")}})}function la(){if(fe)return;_("Setting up modal observers");let a=new MutationObserver(n=>{_(`Attribute mutations detected: ${n.length}`),n.forEach(s=>{s.type==="attributes"&&(s.attributeName==="open"||s.attributeName==="class")&&(_(`Attribute changed: ${s.attributeName} on`,s.target),_(`Old value: ${s.oldValue}`),_(`New value: ${s.target.getAttribute(s.attributeName)}`),ae())})}),e=new MutationObserver(n=>{_(`DOM mutations detected: ${n.length}`),n.forEach(s=>{s.type==="childList"&&(s.addedNodes.forEach(o=>{if(o.nodeType===Node.ELEMENT_NODE){let i='dialog.modal, dialog, .modal, [role="dialog"], .overlay, .popup';o.matches&&o.matches(i)&&(_("New modal element detected",o),a.observe(o,{attributes:!0,attributeFilter:["open","class","aria-hidden"],attributeOldValue:!0}),ae());let l=o.querySelectorAll?o.querySelectorAll(i):[];l.length>0&&_(`Found ${l.length} nested modals`),l.forEach(g=>{_("Observing nested modal",g),a.observe(g,{attributes:!0,attributeFilter:["open","class","aria-hidden"],attributeOldValue:!0})}),l.length>0&&ae()}}),s.removedNodes.length>0&&(_(`${s.removedNodes.length} nodes removed`),ae()))})}),r=document.querySelectorAll('dialog.modal, dialog, .modal, [role="dialog"], .overlay, .popup');_(`Found ${r.length} existing modals`),r.forEach(n=>{_("Observing existing modal",n),a.observe(n,{attributes:!0,attributeFilter:["open","class","aria-hidden"],attributeOldValue:!0})}),e.observe(document.body,{childList:!0,subtree:!0}),fe=!0,_("Modal observers setup complete")}function le(a){if(!a)return;H.add(a),fe||setTimeout(()=>{la()},100);let e=t=>{(t.target===a||a.contains(t.target))&&Ne(a)};if(a.addEventListener("mousedown",e),a._bringToFrontHandler=e,!a.style.zIndex){a.style.zIndex=se++;let t=a.getRootNode&&a.getRootNode();t&&t.host&&t.host.style&&(t.host.style.zIndex=a.style.zIndex)}ae(),_("Window registered successfully",a)}function Oe(a){a&&(H.delete(a),$.delete(a),a._bringToFrontHandler&&(a.removeEventListener("mousedown",a._bringToFrontHandler),delete a._bringToFrontHandler))}function Ne(a){if(!a||!H.has(a)||we())return;se++,a.style.zIndex=se;let e=a.getRootNode&&a.getRootNode();e&&e.host&&e.host.style&&(e.host.style.zIndex=se)}function ca(){ae()}function da(){console.log("=== MODAL MANAGER DEBUG STATE ==="),console.log("Debug enabled:",ze),console.log("Observers setup:",fe),console.log("Windows registered:",H.size),console.log("Windows hidden by modal:",$.size),console.log("Current max Z-Index:",se),console.log("Any modal open:",we()),console.log(`
--- Registered Windows ---`),H.forEach((e,t)=>{console.log(`Window ${t}:`,{element:e,zIndex:e.style.zIndex,opacity:e.style.opacity,isHidden:$.has(e)})}),console.log(`
--- Current Modals ---`),document.querySelectorAll('dialog.modal[open], dialog[open], .modal[open], .modal.show, [role="dialog"]').forEach((e,t)=>{console.log(`Modal ${t}:`,{element:e,isOpen:e.hasAttribute("open")||e.classList.contains("show"),display:window.getComputedStyle(e).display,visibility:window.getComputedStyle(e).visibility})})}var se,H,fe,$,ze,De=O(()=>{se=1e5,H=new Set,fe=!1,$=new Set,ze=!1;typeof window!="undefined"&&(window.setModalDebug=sa,window.debugModalState=da,window.registerWindow=le,window.unregisterWindow=Oe,window.__modalManagerDebug={windowElements:H,hiddenWindowsByModal:$,isAnyModalOpen:we,refreshWindowsVisibility:ca},console.log("[WindowManager] Funciones expuestas globalmente autom\xE1ticamente"))});function Pt(a){return window.__wplaceLogWindows[a]||(window.__wplaceLogWindows[a]=new ce(a)),window.__wplaceLogWindows[a]}function vt(a){return window.__wplaceLogWindows[a]||null}function We(a){window.__wplaceLogWindows[a]&&(window.__wplaceLogWindows[a].destroy(),delete window.__wplaceLogWindows[a])}function Et(){Object.keys(window.__wplaceLogWindows).forEach(a=>{We(a)})}var ce,Tt=O(()=>{F();De();ce=class{constructor(e="Bot"){this.botName=e,this.isVisible=!1,this.logs=[],this.maxLogs=1e3,this.container=null,this.logContent=null,this.isResizing=!1,this.resizeHandle=null,this.originalConsole={},this.config={width:600,height:400,x:window.innerWidth-620,y:20,visible:!1},this.loadConfig(),this.createWindow(),this.setupLogInterception(),this.setupEventListeners()}loadConfig(){try{let e=localStorage.getItem(`wplace-log-window-${this.botName}`);e&&(this.config={...this.config,...JSON.parse(e)})}catch(e){c("Error cargando configuraci\xF3n de ventana de logs:",e)}}saveConfig(){try{localStorage.setItem(`wplace-log-window-${this.botName}`,JSON.stringify(this.config))}catch(e){c("Error guardando configuraci\xF3n de ventana de logs:",e)}}createWindow(){this.container=document.createElement("div"),this.container.className="wplace-log-window",this.container.style.cssText=`
position: fixed;
left: ${this.config.x}px;
top: ${this.config.y}px;
width: ${this.config.width}px;
height: ${this.config.height}px;
background: rgba(0, 0, 0, 0.9);
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 8px;
z-index: 100001;
display: ${this.config.visible?"flex":"none"};
flex-direction: column;
backdrop-filter: blur(10px);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
color: #fff;
resize: none;
overflow: hidden;
`;let e=document.createElement("div");e.className="log-window-header",e.style.cssText=`
display: flex;
justify-content: space-between;
align-items: center;
padding: 8px 12px;
background: rgba(255, 255, 255, 0.1);
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
cursor: move;
user-select: none;
border-radius: 7px 7px 0 0;
`;let t=document.createElement("div");t.textContent=`\u{1F4CB} Logs - ${this.botName}`,t.style.cssText=`
font-weight: bold;
font-size: 14px;
color: #e2e8f0;
`;let r=document.createElement("div");r.style.cssText=`
display: flex;
gap: 8px;
`;let n=document.createElement("button");n.innerHTML="\u{1F4BE}",n.title="Descargar logs",n.style.cssText=`
background: rgba(34, 197, 94, 0.8);
border: none;
border-radius: 4px;
color: white;
width: 24px;
height: 24px;
cursor: pointer;
font-size: 12px;
display: flex;
align-items: center;
justify-content: center;
transition: background 0.2s;
`,n.addEventListener("mouseenter",()=>{n.style.background="rgba(34, 197, 94, 1)"}),n.addEventListener("mouseleave",()=>{n.style.background="rgba(34, 197, 94, 0.8)"}),n.addEventListener("click",()=>this.downloadLogs());let s=document.createElement("button");s.innerHTML="\u2715",s.title="Cerrar ventana",s.style.cssText=`
background: rgba(239, 68, 68, 0.8);
border: none;
border-radius: 4px;
color: white;
width: 24px;
height: 24px;
cursor: pointer;
font-size: 12px;
display: flex;
align-items: center;
justify-content: center;
transition: background 0.2s;
`,s.addEventListener("mouseenter",()=>{s.style.background="rgba(239, 68, 68, 1)"}),s.addEventListener("mouseleave",()=>{s.style.background="rgba(239, 68, 68, 0.8)"}),s.addEventListener("click",()=>this.hide()),r.appendChild(n),r.appendChild(s),e.appendChild(t),e.appendChild(r),this.logContent=document.createElement("div"),this.logContent.className="log-window-content",this.logContent.style.cssText=`
flex: 1;
padding: 8px;
overflow-y: auto;
font-size: 12px;
line-height: 1.4;
white-space: pre-wrap;
word-break: break-word;
`,this.resizeHandle=document.createElement("div"),this.resizeHandle.className="log-window-resize-handle",this.resizeHandle.style.cssText=`
position: absolute;
bottom: 0;
right: 0;
width: 20px;
height: 20px;
cursor: se-resize;
background: linear-gradient(-45deg, transparent 30%, rgba(255,255,255,0.3) 30%, rgba(255,255,255,0.3) 70%, transparent 70%);
border-radius: 0 0 8px 0;
`,this.container.appendChild(e),this.container.appendChild(this.logContent),this.container.appendChild(this.resizeHandle),document.body.appendChild(this.container),le(this.container),this.setupDragging(e),this.setupResizing(),this.isVisible=this.config.visible}setupDragging(e){let t=!1,r={x:0,y:0};e.addEventListener("mousedown",o=>{o.target.tagName!=="BUTTON"&&(t=!0,r.x=o.clientX-this.container.offsetLeft,r.y=o.clientY-this.container.offsetTop,document.addEventListener("mousemove",n),document.addEventListener("mouseup",s),o.preventDefault())});let n=o=>{if(!t)return;let i=Math.max(0,Math.min(window.innerWidth-this.container.offsetWidth,o.clientX-r.x)),l=Math.max(0,Math.min(window.innerHeight-this.container.offsetHeight,o.clientY-r.y));this.container.style.left=i+"px",this.container.style.top=l+"px",this.config.x=i,this.config.y=l},s=()=>{t=!1,document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",s),this.saveConfig()}}setupResizing(){let e=!1,t,r,n,s;this.resizeHandle.addEventListener("mousedown",l=>{e=!0,t=l.clientX,r=l.clientY,n=parseInt(document.defaultView.getComputedStyle(this.container).width,10),s=parseInt(document.defaultView.getComputedStyle(this.container).height,10),document.addEventListener("mousemove",o),document.addEventListener("mouseup",i),l.preventDefault()});let o=l=>{if(!e)return;let g=Math.max(300,n+l.clientX-t),u=Math.max(200,s+l.clientY-r);this.container.style.width=g+"px",this.container.style.height=u+"px",this.config.width=g,this.config.height=u},i=()=>{e=!1,document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",i),this.saveConfig()}}setupLogInterception(){this.originalConsole={log:console.log,info:console.info,warn:console.warn,error:console.error,debug:console.debug},console.log=(...e)=>{this.originalConsole.log.apply(console,e),this.addLog("log",e)},console.info=(...e)=>{this.originalConsole.info.apply(console,e),this.addLog("info",e)},console.warn=(...e)=>{this.originalConsole.warn.apply(console,e),this.addLog("warn",e)},console.error=(...e)=>{this.originalConsole.error.apply(console,e),this.addLog("error",e)},console.debug=(...e)=>{this.originalConsole.debug.apply(console,e),this.addLog("debug",e)}}addLog(e,t){let r=new Date().toLocaleTimeString(),n=t.map(o=>typeof o=="object"?JSON.stringify(o,null,2):String(o)).join(" "),s={timestamp:r,type:e,message:n,raw:t};this.logs.push(s),this.logs.length>this.maxLogs&&this.logs.shift(),this.isVisible&&this.updateLogDisplay()}updateLogDisplay(){if(!this.logContent)return;let e=this.logs.map(t=>`<div style="color: ${this.getLogColor(t.type)}; margin-bottom: 2px;">[${t.timestamp}] ${t.message}</div>`).join("");this.logContent.innerHTML=e,this.logContent.scrollTop=this.logContent.scrollHeight}getLogColor(e){let t={log:"#e2e8f0",info:"#60a5fa",warn:"#fbbf24",error:"#f87171",debug:"#a78bfa"};return t[e]||t.log}downloadLogs(){let e=new Date,t=e.toISOString().split("T")[0],r=e.toTimeString().split(" ")[0].replace(/:/g,"-"),n=`log_${this.botName}_${t}_${r}.log`,s=this.logs.map(g=>`[${g.timestamp}] [${g.type.toUpperCase()}] ${g.message}`).join(`
`),o=new Blob([s],{type:"text/plain"}),i=URL.createObjectURL(o),l=document.createElement("a");l.href=i,l.download=n,document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(i),c(`\u{1F4E5} Logs descargados como: ${n}`)}show(){this.container&&(this.container.style.display="flex",Ne(this.container),this.isVisible=!0,this.config.visible=!0,this.updateLogDisplay(),this.saveConfig())}hide(){this.container&&(this.container.style.display="none",this.isVisible=!1,this.config.visible=!1,this.saveConfig())}toggle(){this.isVisible?this.hide():this.show()}clear(){this.logs=[],this.logContent&&(this.logContent.innerHTML="")}setupEventListeners(){window.addEventListener("resize",()=>{if(this.container){let e=window.innerWidth-this.container.offsetWidth,t=window.innerHeight-this.container.offsetHeight;this.config.x>e&&(this.config.x=Math.max(0,e),this.container.style.left=this.config.x+"px"),this.config.y>t&&(this.config.y=Math.max(0,t),this.container.style.top=this.config.y+"px"),this.saveConfig()}})}destroy(){this.originalConsole.log&&(console.log=this.originalConsole.log,console.info=this.originalConsole.info,console.warn=this.originalConsole.warn,console.error=this.originalConsole.error,console.debug=this.originalConsole.debug),this.container&&this.container.parentNode&&(Oe(this.container),this.container.parentNode.removeChild(this.container)),this.container=null,this.logContent=null,this.logs=[]}};window.__wplaceLogWindows=window.__wplaceLogWindows||{}});var At={};ot(At,{LogWindow:()=>ce,createLogWindow:()=>Pt,destroyAllLogWindows:()=>Et,destroyLogWindow:()=>We,getLogWindow:()=>vt});var It=O(()=>{Tt()});F();var K={SITEKEY:"0x4AAAAAABpqJe8FO0N84q0F",TILE_X:1086,TILE_Y:1565,TILE_SIZE:3e3,DELAY_MS:15e3,MIN_CHARGES:10,CHARGE_REGEN_MS:3e4,PIXELS_PER_BATCH:20,COLOR_MIN:1,COLOR_MAX:32,COLOR_MODE:"random",COLOR_FIXED:1,CUSTOM_PALETTE:["#FF0000","#00FF00","#0000FF","#FFFF00","#FF00FF","#00FFFF"],BASE_X:null,BASE_Y:null,FARM_RADIUS:500,POSITION_SELECTED:!1,AUTO_BUY_ENABLED:!1,UI_THEME:{primary:"#000000",secondary:"#111111",accent:"#222222",text:"#ffffff",highlight:"#775ce3",success:"#00ff00",error:"#ff0000",running:"#00cc00"}},h={running:!1,painted:0,last:null,charges:{count:0,max:0,cooldownMs:3e4},droplets:0,user:null,panel:null,captureMode:!1,selectingPosition:!1,originalFetch:window.fetch,retryCount:0,inCooldown:!1,nextPaintTime:0,cooldownEndTime:0,health:null};function nt(a){return{...a}}function it(){console.log("[WPA-UI]","Configuraci\xF3n reseteada a valores seguros (localStorage deshabilitado)")}ge();var ht={launcher:{title:"WPlace AutoBOT",autoFarm:"\u{1F33E} Auto-Farm",autoImage:"\u{1F3A8} Auto-Image",autoGuard:"\u{1F6E1}\uFE0F Auto-Guard",autoSlave:"\u{1F517} Slave",selection:"Selecci\xF3n",user:"Usuario",charges:"Cargas",backend:"Backend",database:"Database",uptime:"Uptime",close:"Cerrar",launch:"Lanzar",loading:"Cargando\u2026",executing:"Ejecutando\u2026",downloading:"Descargando script\u2026",chooseBot:"Elige un bot y presiona Lanzar",readyToLaunch:"Listo para lanzar",loadError:"Error al cargar",loadErrorMsg:"No se pudo cargar el bot seleccionado. Revisa tu conexi\xF3n o int\xE9ntalo de nuevo.",checking:"\u{1F504} Verificando...",online:"\u{1F7E2} Online",offline:"\u{1F534} Offline",ok:"\u{1F7E2} OK",error:"\u{1F534} Error",unknown:"-",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"Descargar Logs",clearLogs:"Limpiar Logs",closeLogs:"Cerrar",localExecution:"Ejecuci\xF3n local con acceso completo al sistema de tokens",botStarting:"Bot iniciando..."},image:{title:"WPlace Auto-Image",initBot:"Iniciar Auto-BOT",uploadImage:"Subir Imagen",resizeImage:"Redimensionar Imagen",selectPosition:"Seleccionar Posici\xF3n",startPainting:"Iniciar Pintura",stopPainting:"Detener Pintura",saveProgress:"Guardar Progreso",loadProgress:"Cargar Progreso",checkingColors:"\u{1F50D} Verificando colores disponibles...",noColorsFound:"\u274C \xA1Abre la paleta de colores en el sitio e int\xE9ntalo de nuevo!",colorsFound:"\u2705 {count} colores disponibles encontrados",loadingImage:"\u{1F5BC}\uFE0F Cargando imagen...",imageLoaded:"\u2705 Imagen cargada con {count} p\xEDxeles v\xE1lidos",imageError:"\u274C Error al cargar la imagen",selectPositionAlert:"\xA1Pinta el primer p\xEDxel en la ubicaci\xF3n donde quieres que comience el arte!",waitingPosition:"\u{1F446} Esperando que pintes el p\xEDxel de referencia...",positionSet:"\u2705 \xA1Posici\xF3n establecida con \xE9xito!",positionTimeout:"\u274C Tiempo agotado para seleccionar posici\xF3n",positionDetected:"\u{1F3AF} Posici\xF3n detectada, procesando...",positionError:"\u274C Error detectando posici\xF3n, int\xE9ntalo de nuevo",startPaintingMsg:"\u{1F3A8} Iniciando pintura...",paintingProgress:"\u{1F9F1} Progreso: {painted}/{total} p\xEDxeles...",noCharges:"\u231B Sin cargas. Esperando {time}...",paintingStopped:"\u23F9\uFE0F Pintura detenida por el usuario",paintingComplete:"\u2705 \xA1Pintura completada! {count} p\xEDxeles pintados.",paintingError:"\u274C Error durante la pintura",missingRequirements:"\u274C Carga una imagen y selecciona una posici\xF3n primero",progress:"Progreso",userName:"Usuario",pixels:"P\xEDxeles",charges:"Cargas",estimatedTime:"Tiempo estimado",initMessage:"Haz clic en 'Iniciar Auto-BOT' para comenzar",waitingInit:"Esperando inicializaci\xF3n...",resizeSuccess:"\u2705 Imagen redimensionada a {width}x{height}",paintingPaused:"\u23F8\uFE0F Pintura pausada en la posici\xF3n X: {x}, Y: {y}",pixelsPerBatch:"P\xEDxeles por lote",batchSize:"Tama\xF1o del lote",nextBatchTime:"Siguiente lote en",useAllCharges:"Usar todas las cargas disponibles",showOverlay:"Mostrar overlay",maxCharges:"Cargas m\xE1ximas por lote",waitingForCharges:"\u23F3 Esperando cargas: {current}/{needed}",timeRemaining:"Tiempo restante",cooldownWaiting:"\u23F3 Esperando {time} para continuar...",progressSaved:"\u2705 Progreso guardado como {filename}",progressLoaded:"\u2705 Progreso cargado: {painted}/{total} p\xEDxeles pintados",progressLoadError:"\u274C Error al cargar progreso: {error}",progressSaveError:"\u274C Error al guardar progreso: {error}",confirmSaveProgress:"\xBFDeseas guardar el progreso actual antes de detener?",saveProgressTitle:"Guardar Progreso",discardProgress:"Descartar",cancel:"Cancelar",minimize:"Minimizar",width:"Ancho",height:"Alto",keepAspect:"Mantener proporci\xF3n",apply:"Aplicar",overlayOn:"Overlay: ON",overlayOff:"Overlay: OFF",passCompleted:"\u2705 Pasada completada: {painted} p\xEDxeles pintados | Progreso: {percent}% ({current}/{total})",waitingChargesRegen:"\u23F3 Esperando regeneraci\xF3n de cargas: {current}/{needed} - Tiempo: {time}",waitingChargesCountdown:"\u23F3 Esperando cargas: {current}/{needed} - Quedan: {time}",autoInitializing:"\u{1F916} Inicializando autom\xE1ticamente...",autoInitSuccess:"\u2705 Bot iniciado autom\xE1ticamente",autoInitFailed:"\u26A0\uFE0F No se pudo iniciar autom\xE1ticamente. Usa el bot\xF3n manual.",paletteDetected:"\u{1F3A8} Paleta de colores detectada",paletteNotFound:"\u{1F50D} Buscando paleta de colores...",clickingPaintButton:"\u{1F446} Haciendo clic en el bot\xF3n Paint...",paintButtonNotFound:"\u274C Bot\xF3n Paint no encontrado",manualInitRequired:"\u{1F527} Inicio manual requerido",retryAttempt:"\u{1F504} Reintento {attempt}/{maxAttempts} en {delay}s...",retryError:"\u{1F4A5} Error en intento {attempt}/{maxAttempts}, reintentando en {delay}s...",retryFailed:"\u274C Fall\xF3 despu\xE9s de {maxAttempts} intentos. Continuando con siguiente lote...",networkError:"\u{1F310} Error de red. Reintentando...",serverError:"\u{1F525} Error del servidor. Reintentando...",timeoutError:"\u23F0 Timeout del servidor. Reintentando...",saveProgressBtn:"Guardar progreso",guardJsonBtn:"Guard JSON",resizeWindowTitle:"Redimensionar Imagen",original:"Original",labTolerance:"Tolerancia LAB",maintainProportion:"Mantener proporci\xF3n",skipColor:"Skip Color",skipColorEnabled:"Skip colors that don't match exactly",similarityThreshold:"Similarity threshold",skipColorDescription:"Only exact color matches will be painted (100% similarity).",applyResize:"Aplicar",cancelResize:"Cancelar",patternSnake:"Serpiente (Zigzag)",patternDiagonalSweep:"Barrido diagonal",patternBorders:"Bordes primero",patternCenter:"Centro primero",patternQuadrants:"Cuadrantes",patternBiasedRandom:"Aleatorio sesgado (bordes)",patternClusters:"Clusters",patternProximity:"Proximidad",patternSweep:"Barrido por secciones",patternPriority:"Prioridad (mixto)",patternAnchorPoints:"Puntos de anclaje",patternSpiralCw:"Espiral (horaria)",patternSpiralCcw:"Espiral (antihoraria)",noProgressToSave:"No hay progreso para guardar",progressSaveSuccess:"Progreso guardado como {filename}",progressLoadSuccess:"Progreso cargado: {painted}/{total} p\xEDxeles pintados",invalidProgressFile:"Archivo de progreso inv\xE1lido",missingFields:"Faltan campos requeridos: {fields}",guardDialogTitle:"Generar Guard JSON",guardDialogMessage:"\xBFDeseas generar un archivo Guard JSON con los datos actuales?",guardDialogInfo:`Imagen: {name}
Dimensiones: {width}x{height}
P\xEDxeles: {pixels}`,generateGuard:"Generar Guard",guardJsonInvalidStructure:"\u274C Estructura inv\xE1lida para JSON del Guard. Abortando guardado.",guardJsonInvalidMessage:"Estructura inv\xE1lida del JSON del Guard. Vuelve a intentarlo tras seleccionar la posici\xF3n.",guardJsonSaveSuccess:"\u2705 JSON del Guard guardado: {filename}",guardJsonSaveError:"\u274C Error guardando JSON del Guard: {error}",notificationInfo:"Informaci\xF3n",notificationSuccess:"\xC9xito",notificationWarning:"Advertencia",notificationError:"Error",paintPattern:"\u{1F4D0} Patr\xF3n de pintado",patternLinearStart:"Lineal (Inicio)",patternLinearEnd:"Lineal (Final)",patternRandom:"Aleatorio",patternCenterOut:"Centro hacia afuera",patternCornersFirst:"Esquinas primero",patternSpiral:"Espiral",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"Descargar Logs",clearLogs:"Limpiar Logs",closeLogs:"Cerrar",userInfo:"Informaci\xF3n del Usuario",imageProgress:"Progreso de la Imagen",availableColors:"Colores Disponibles",noImageLoaded:"No hay imagen cargada",cooldown:"Tiempo de espera",totalColors:"Total de Colores",colorPalette:"Paleta de Colores",showAllColors:"Mostrar Todos los Colores (incluyendo no disponibles)",selectAllColors:"Seleccionar Todos",unselectAllColors:"Deseleccionar Todos",noAvailable:"No disponible",colorSelected:"Color seleccionado",statsUpdated:"\u2705 Estad\xEDsticas actualizadas: {count} colores disponibles"},farm:{title:"\u{1F9D1}\u200D\u{1F33E} WPlace Farm",start:"Iniciar",stop:"Detener",stopped:"Bot detenido",calibrate:"Calibrar",paintOnce:"Una vez",checkingStatus:"Verificando estado...",configuration:"Configuraci\xF3n",delay:"Delay (ms)",pixelsPerBatch:"P\xEDxeles/lote",minCharges:"Cargas m\xEDn",colorMode:"Modo color",random:"Aleatorio",fixed:"Fijo",range:"Rango",fixedColor:"Color fijo",advanced:"Avanzado",tileX:"Tile X",tileY:"Tile Y",customPalette:"Paleta personalizada",paletteExample:"ej: #FF0000,#00FF00,#0000FF",capture:"Capturar",painted:"Pintados",charges:"Cargas",retries:"Fallos",position:"Posici\xF3n",tile:"Tile",configSaved:"Configuraci\xF3n guardada",configLoaded:"Configuraci\xF3n cargada",configReset:"Configuraci\xF3n reiniciada",captureInstructions:"Pinta un p\xEDxel manualmente para capturar coordenadas...",backendOnline:"Backend Online",backendOffline:"Backend Offline",startingBot:"Iniciando bot...",stoppingBot:"Deteniendo bot...",calibrating:"Calibrando...",alreadyRunning:"Auto-Farm ya est\xE1 corriendo.",imageRunningWarning:"Auto-Image est\xE1 ejecut\xE1ndose. Ci\xE9rralo antes de iniciar Auto-Farm.",selectPositionAlert:"\u{1F3AF} Pinta un p\xEDxel en una zona DESPOBLADA del mapa para establecer el \xE1rea de farming",waitingPosition:"\u{1F446} Esperando que pintes el p\xEDxel de referencia...",positionSet:"\u2705 \xA1Zona establecida!",positionTimeout:"\u274C Tiempo agotado para seleccionar zona",missingPosition:"\u274C Selecciona una zona primero usando 'Seleccionar Zona'",farmRadius:"Radio farm",positionInfo:"Zona actual",farmingInRadius:"\u{1F33E} Farming en radio {radius}px desde ({x},{y})",selectEmptyArea:"\u26A0\uFE0F IMPORTANTE: Selecciona una zona DESPOBLADA para evitar conflictos",noPosition:"Sin zona",currentZone:"Zona: ({x},{y})",autoSelectPosition:"\u{1F3AF} Selecciona una zona primero. Pinta un p\xEDxel en el mapa para establecer la zona de farming",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"Descargar Logs",clearLogs:"Limpiar Logs",closeLogs:"Cerrar",ready:"Listo",once:"Una vez",recapture:"Re-capturar",selectPosition:"Select",stats:{painted:"Pintados",charges:"Cargas",droplets:"Gotas",user:"Usuario",retries:"Reintentos"},config:{minCharges:"Cargas m\xEDnimas",delay:"Espera (seg)",pixelsPerBatch:"P\xEDxeles por lote"},color:{fixed:"Fijo",range:"Rango",random:"Aleatorio",selected:"Color seleccionado",min:"M\xEDn",max:"M\xE1x"},autobuy:{title:"Auto-compra (+5 cargas)",hint:"Se activar\xE1 autom\xE1ticamente cuando tengas \u2265 500 gotas"},buyCharges:"Comprar +5 cargas",buying:"Comprando...",buyOk:"Compra realizada. Actualiza sesi\xF3n.",buyFail:"No se pudo comprar"},common:{yes:"S\xED",no:"No",ok:"Aceptar",cancel:"Cancelar",close:"Cerrar",save:"Guardar",load:"Cargar",delete:"Eliminar",edit:"Editar",start:"Iniciar",stop:"Detener",pause:"Pausar",resume:"Reanudar",reset:"Reiniciar",settings:"Configuraci\xF3n",help:"Ayuda",about:"Acerca de",language:"Idioma",loading:"Cargando...",error:"Error",success:"\xC9xito",warning:"Advertencia",info:"Informaci\xF3n",languageChanged:"Idioma cambiado a {language}"},guard:{title:"WPlace Auto-Guard",initBot:"Inicializar Guard-BOT",selectArea:"Seleccionar \xC1rea",save:"Guardar",loadFile:"Cargar Archivo",reposition:"Reposicionar",analyzeArea:"Analizar \xC1rea",logs:"Logs",watcher:"Vig\xEDa",configuration:"Configuraci\xF3n",startErase:"Iniciar Borrado",stopWatcher:"Detener Vig\xEDa",minimize:"Minimizar",expand:"Expandir",nextBatchIn:"Pr\xF3ximo lote en: ",captureArea:"Capturar \xC1rea",startProtection:"Iniciar",stopProtection:"Detener",protectedPixels:"P\xEDxeles Protegidos",upperLeft:"Esquina Superior Izquierda",lowerRight:"Esquina Inferior Derecha",detectedChanges:"Cambios Detectados",repairedPixels:"P\xEDxeles Reparados",charges:"Cargas",waitingInit:"Esperando inicializaci\xF3n...",checkingColors:"\u{1F3A8} Verificando colores disponibles...",noColorsFound:"\u274C No se encontraron colores. Abre la paleta de colores en el sitio.",colorsFound:"\u2705 {count} colores disponibles encontrados",initSuccess:"\u2705 Guard-BOT inicializado correctamente",initError:"\u274C Error inicializando Guard-BOT",invalidCoords:"\u274C Coordenadas inv\xE1lidas",invalidArea:"\u274C El \xE1rea debe tener esquina superior izquierda menor que inferior derecha",areaTooLarge:"\u274C \xC1rea demasiado grande: {size} p\xEDxeles (m\xE1ximo: {max})",capturingArea:"\u{1F4F8} Capturando \xE1rea...",areaCaptured:"\u2705 \xC1rea capturada: {count} p\xEDxeles",captureError:"\u274C Error capturando \xE1rea: {error}",captureFirst:"\u274C Primero captura un \xE1rea",noChanges:"\u2705 \xC1rea - sin cambios detectados",changesDetected:"\u{1F6A8} {count} cambios detectados en el \xE1rea",repairing:"\u{1F6E0}\uFE0F Reparando {count} p\xEDxeles alterados...",repairedSuccess:"\u2705 Reparados {count} p\xEDxeles correctamente",repairError:"\u274C Error reparando p\xEDxeles: {error}",noCharges:"\u26A0\uFE0F Sin cargas suficientes para reparar cambios",checkingChanges:"\u{1F50D} Verificando cambios en \xE1rea...",errorChecking:"\u274C Error verificando cambios: {error}",guardActive:"\u{1F6E1}\uFE0F Guardi\xE1n activo - \xE1rea monitoreada",lastCheck:"\xDAltima verificaci\xF3n: {time}",nextCheck:"Pr\xF3xima verificaci\xF3n en: {time}s",autoInitializing:"\u{1F916} Inicializando autom\xE1ticamente...",autoInitSuccess:"\u2705 Guard-BOT iniciado autom\xE1ticamente",autoInitFailed:"\u26A0\uFE0F No se pudo iniciar autom\xE1ticamente. Usa el bot\xF3n manual.",manualInitRequired:"\u{1F527} Inicio manual requerido",paletteDetected:"\u{1F3A8} Paleta de colores detectada",paletteNotFound:"\u{1F50D} Buscando paleta de colores...",clickingPaintButton:"\u{1F446} Haciendo clic en el bot\xF3n Paint...",paintButtonNotFound:"\u274C Bot\xF3n Paint no encontrado",protectionStopped:"\u23F9\uFE0F Protecci\xF3n detenida",selectUpperLeft:"\u{1F3AF} Pinta un p\xEDxel en la esquina SUPERIOR IZQUIERDA del \xE1rea a monitorear",selectLowerRight:"\u{1F3AF} Ahora pinta un p\xEDxel en la esquina INFERIOR DERECHA del \xE1rea",waitingUpperLeft:"\u{1F446} Esperando selecci\xF3n de esquina superior izquierda...",waitingLowerRight:"\u{1F446} Esperando selecci\xF3n de esquina inferior derecha...",upperLeftCaptured:"\u2705 Esquina superior izquierda capturada: ({x}, {y})",lowerRightCaptured:"\u2705 Esquina inferior derecha capturada: ({x}, {y})",selectionTimeout:"\u274C Tiempo agotado para selecci\xF3n",selectionError:"\u274C Error en selecci\xF3n, int\xE9ntalo de nuevo",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"Descargar Logs",clearLogs:"Limpiar Logs",closeLogs:"Cerrar",analysisTitle:"An\xE1lisis de Diferencias - JSON vs Canvas Actual",correctPixels:"P\xEDxeles Correctos",incorrectPixels:"P\xEDxeles Incorrectos",missingPixels:"P\xEDxeles Faltantes",showCorrect:"Mostrar Correctos",showIncorrect:"Mostrar Incorrectos",showMissing:"Mostrar Faltantes",autoRefresh:"Auto-refresco",zoomAdjusted:"Zoom ajustado autom\xE1ticamente a",autoRefreshEnabled:"Auto-refresco activado cada",autoRefreshDisabled:"Auto-refresco desactivado",autoRefreshIntervalUpdated:"Intervalo de auto-refresco actualizado a",visualizationUpdated:"Visualizaci\xF3n actualizada",noAreaOrPixels:"No hay \xE1rea protegida o p\xEDxeles cargados para analizar",noColorsDetected:"No se pueden detectar colores. Aseg\xFArate de que la paleta est\xE9 abierta.",sessionRecordingStarted:"Grabaci\xF3n de sesi\xF3n iniciada con autorefresh activado",sessionRecordingStopped:"Grabaci\xF3n de sesi\xF3n detenida",noSessionData:"No hay datos de sesi\xF3n para descargar",sessionDataDownloaded:"Datos de sesi\xF3n descargados",snapshotCaptureError:"Error al capturar la imagen",recordSession:"Grabar Sesi\xF3n",snapshot:"Snapshot",downloadData:"Descargar Datos",zoom:"Zoom",interval:"Intervalo",seconds:"segundos",updateAnalysis:"Actualizar An\xE1lisis",adjustZoom:"Ajustar Zoom",precision:"Precisi\xF3n",statistics:"Estad\xEDsticas",visualization:"Visualizaci\xF3n",recording:"Grabaci\xF3n",configTitle:"Configuraci\xF3n del Guard",protectionPatterns:"Patrones de Protecci\xF3n",preferSpecificColor:"Priorizar color espec\xEDfico",excludeSpecificColors:"No reparar colores espec\xEDficos",loadManagement:"Gesti\xF3n de Cargas",minLoadsToWait:"M\xEDnimo de cargas:",pixelsPerBatch:"P\xEDxeles por lote",spendAllPixelsOnStart:"Gastar todos los p\xEDxeles al iniciar",waitTimes:"Tiempos de Espera",useRandomTimes:"Usar tiempos aleatorios entre lotes",minTime:"Tiempo m\xEDnimo (s)",maxTime:"Tiempo m\xE1ximo (s)"},slave:{title:"WPlace Slave",masterServer:"Servidor Maestro",ipAddress:"Direcci\xF3n IP",connect:"Conectar",disconnect:"Desconectar",status:"Estado",slaveId:"ID Slave",mode:"Modo",running:"Ejecutando",idle:"Inactivo",connected:"Conectado",connecting:"Conectando...",disconnected:"Desconectado",error:"Error",close:"Cerrar",telemetry:"Telemetr\xEDa",repairedPixels:"P\xEDxeles Reparados",missingPixels:"P\xEDxeles Faltantes",absentPixels:"P\xEDxeles Ausentes",remainingCharges:"Cargas Restantes",connectionError:"Error de conexi\xF3n. Verifica la URL y que el servidor est\xE9 ejecut\xE1ndose.",invalidUrl:"Por favor ingresa una URL v\xE1lida",httpsUpgrade:"P\xE1gina HTTPS: cambiando a wss:// para evitar contenido mixto.",slaveRunning:"Slave ya est\xE1 ejecut\xE1ndose.",slaveInitialized:"Slave inicializado correctamente",slaveError:"Error inicializando Slave",masterConnected:"Conectado al servidor maestro",masterDisconnected:"Desconectado del servidor maestro",reconnecting:"Reintentando conexi\xF3n",maxReconnectAttempts:"M\xE1ximo de intentos de reconexi\xF3n alcanzado",modeSet:"Modo configurado",projectLoaded:"Configuraci\xF3n del proyecto cargada",botStarted:"Bot iniciado",botStopped:"Bot detenido",botPaused:"Bot pausado"}};var ft={launcher:{title:"WPlace AutoBOT",autoFarm:"\u{1F33E} Auto-Farm",autoImage:"\u{1F3A8} Auto-Image",autoGuard:"\u{1F6E1}\uFE0F Auto-Guard",autoSlave:"\u{1F517} Slave",selection:"Selection",user:"User",charges:"Charges",backend:"Backend",database:"Database",uptime:"Uptime",close:"Close",launch:"Launch",loading:"Loading\u2026",executing:"Executing\u2026",downloading:"Downloading script\u2026",chooseBot:"Choose a bot and press Launch",readyToLaunch:"Ready to launch",loadError:"Load error",loadErrorMsg:"Could not load the selected bot. Check your connection or try again.",checking:"\u{1F504} Checking...",online:"\u{1F7E2} Online",offline:"\u{1F534} Offline",ok:"\u{1F7E2} OK",error:"\u{1F534} Error",unknown:"-",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"Download Logs",clearLogs:"Clear Logs",closeLogs:"Close",localExecution:"Local execution with full access to token system",botStarting:"Bot starting..."},image:{title:"WPlace Auto-Image",initBot:"Initialize Auto-BOT",uploadImage:"Upload Image",resizeImage:"Resize Image",selectPosition:"Select Position",startPainting:"Start Painting",stopPainting:"Stop Painting",saveProgress:"Save Progress",loadProgress:"Load Progress",checkingColors:"\u{1F50D} Checking available colors...",noColorsFound:"\u274C Open the color palette on the site and try again!",colorsFound:"\u2705 Found {count} available colors",loadingImage:"\u{1F5BC}\uFE0F Loading image...",imageLoaded:"\u2705 Image loaded with {count} valid pixels",imageError:"\u274C Error loading image",selectPositionAlert:"Paint the first pixel at the location where you want the art to start!",waitingPosition:"\u{1F446} Waiting for you to paint the reference pixel...",positionSet:"\u2705 Position set successfully!",positionTimeout:"\u274C Timeout for position selection",positionDetected:"\u{1F3AF} Position detected, processing...",positionError:"\u274C Error detecting position, please try again",startPaintingMsg:"\u{1F3A8} Starting painting...",paintingProgress:"\u{1F9F1} Progress: {painted}/{total} pixels...",noCharges:"\u231B No charges. Waiting {time}...",paintingStopped:"\u23F9\uFE0F Painting stopped by user",paintingComplete:"\u2705 Painting completed! {count} pixels painted.",paintingError:"\u274C Error during painting",missingRequirements:"\u274C Load an image and select a position first",progress:"Progress",userName:"User",pixels:"Pixels",charges:"Charges",estimatedTime:"Estimated time",initMessage:"Click 'Initialize Auto-BOT' to begin",waitingInit:"Waiting for initialization...",resizeSuccess:"\u2705 Image resized to {width}x{height}",paintingPaused:"\u23F8\uFE0F Painting paused at position X: {x}, Y: {y}",pixelsPerBatch:"Pixels per batch",batchSize:"Batch size",nextBatchTime:"Next batch in",useAllCharges:"Use all available charges",showOverlay:"Show overlay",maxCharges:"Max charges per batch",waitingForCharges:"\u23F3 Waiting for charges: {current}/{needed}",timeRemaining:"Time remaining",cooldownWaiting:"\u23F3 Waiting {time} to continue...",progressSaved:"\u2705 Progress saved as {filename}",progressLoaded:"\u2705 Progress loaded: {painted}/{total} pixels painted",progressLoadError:"\u274C Error loading progress: {error}",progressSaveError:"\u274C Error saving progress: {error}",confirmSaveProgress:"Do you want to save the current progress before stopping?",saveProgressTitle:"Save Progress",discardProgress:"Discard",cancel:"Cancel",minimize:"Minimize",width:"Width",height:"Height",keepAspect:"Keep aspect ratio",apply:"Apply",overlayOn:"Overlay: ON",overlayOff:"Overlay: OFF",passCompleted:"\u2705 Pass completed: {painted} pixels painted | Progress: {percent}% ({current}/{total})",waitingChargesRegen:"\u23F3 Waiting for charge regeneration: {current}/{needed} - Time: {time}",waitingChargesCountdown:"\u23F3 Waiting for charges: {current}/{needed} - Remaining: {time}",autoInitializing:"\u{1F916} Auto-initializing...",autoInitSuccess:"\u2705 Bot auto-started successfully",autoInitFailed:"\u26A0\uFE0F Could not auto-start. Use manual button.",paletteDetected:"\u{1F3A8} Color palette detected",paletteNotFound:"\u{1F50D} Searching for color palette...",clickingPaintButton:"\u{1F446} Clicking Paint button...",paintButtonNotFound:"\u274C Paint button not found",manualInitRequired:"\u{1F527} Manual initialization required",retryAttempt:"\u{1F504} Retry {attempt}/{maxAttempts} in {delay}s...",retryError:"\u{1F4A5} Error in attempt {attempt}/{maxAttempts}, retrying in {delay}s...",retryFailed:"\u274C Failed after {maxAttempts} attempts. Continuing with next batch...",networkError:"\u{1F310} Network error. Retrying...",serverError:"\u{1F525} Server error. Retrying...",timeoutError:"\u23F0 Server timeout, retrying...",saveProgressBtn:"Save progress",guardJsonBtn:"Guard JSON",resizeWindowTitle:"Resize Image",original:"Original",labTolerance:"LAB Tolerance",maintainProportion:"Maintain proportion",skipColor:"Skip Color",skipColorEnabled:"Skip colors that don't match exactly",similarityThreshold:"Similarity threshold",skipColorDescription:"Only exact color matches will be painted (100% similarity).",applyResize:"Apply",cancelResize:"Cancel",patternSnake:"Snake (Zigzag)",patternDiagonalSweep:"Diagonal sweep",patternBorders:"Borders first",patternCenter:"Center first",patternQuadrants:"Quadrants",patternBiasedRandom:"Biased random (edges)",patternClusters:"Clusters",patternProximity:"Proximity",patternSweep:"Sweep by sections",patternPriority:"Priority (mixed)",patternAnchorPoints:"Anchor points",patternSpiralCw:"Spiral (clockwise)",patternSpiralCcw:"Spiral (counter-clockwise)",noProgressToSave:"No progress to save",progressSaveSuccess:"Progress saved as {filename}",progressLoadSuccess:"Progress loaded: {painted}/{total} pixels painted",invalidProgressFile:"Invalid progress file",missingFields:"Missing required fields: {fields}",guardDialogTitle:"Generate Guard JSON",guardDialogMessage:"Do you want to generate a Guard JSON file with current data?",guardDialogInfo:`Image: {name}
Dimensions: {width}x{height}
Pixels: {pixels}`,generateGuard:"Generate Guard",guardJsonInvalidStructure:"\u274C Invalid structure for Guard JSON. Aborting save.",guardJsonInvalidMessage:"Invalid Guard JSON structure. Try again after selecting position.",guardJsonSaveSuccess:"\u2705 Guard JSON saved: {filename}",guardJsonSaveError:"\u274C Error saving Guard JSON: {error}",notificationInfo:"Information",notificationSuccess:"Success",notificationWarning:"Warning",notificationError:"Error",paintPattern:"\uFFFD Paint pattern",patternLinearStart:"Linear (Start)",patternLinearEnd:"Linear (End)",patternRandom:"Random",patternCenterOut:"Center outward",patternCornersFirst:"Corners first",patternSpiral:"Spiral",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"Download Logs",clearLogs:"Clear Logs",closeLogs:"Close",userInfo:"User Information",imageProgress:"Image Progress",availableColors:"Available Colors",noImageLoaded:"No image loaded",cooldown:"Cooldown",totalColors:"Total Colors",colorPalette:"Color Palette",showAllColors:"Show All Colors (including unavailable)",selectAllColors:"Select All",unselectAllColors:"Unselect All",noAvailable:"Not available",colorSelected:"Color selected",statsUpdated:"\u2705 Statistics updated: {count} colors available"},farm:{title:"\u{1F9D1}\u200D\u{1F33E} WPlace Farm",start:"Start",stop:"Stop",stopped:"Bot stopped",calibrate:"Calibrate",paintOnce:"Once",checkingStatus:"Checking status...",configuration:"Configuration",delay:"Delay (ms)",pixelsPerBatch:"Pixels/batch",minCharges:"Min charges",colorMode:"Color mode",random:"Random",fixed:"Fixed",range:"Range",fixedColor:"Fixed color",advanced:"Advanced",tileX:"Tile X",tileY:"Tile Y",customPalette:"Custom palette",paletteExample:"e.g: #FF0000,#00FF00,#0000FF",capture:"Capture",painted:"Painted",charges:"Charges",retries:"Retries",position:"Position",tile:"Tile",configSaved:"Configuration saved",configLoaded:"Configuration loaded",configReset:"Configuration reset",captureInstructions:"Paint a pixel manually to capture coordinates...",backendOnline:"Backend Online",backendOffline:"Backend Offline",startingBot:"Starting bot...",stoppingBot:"Stopping bot...",calibrating:"Calibrating...",alreadyRunning:"Auto-Farm is already running.",imageRunningWarning:"Auto-Image is running. Close it before starting Auto-Farm.",selectPositionAlert:"\u{1F3AF} Paint a pixel in an EMPTY area of the map to set the farming zone",waitingPosition:"\u{1F446} Waiting for you to paint the reference pixel...",positionSet:"\u2705 Zone set!",positionTimeout:"\u274C Timeout for zone selection",missingPosition:"\u274C Select a zone first using 'Select Zone'",farmRadius:"Farm radius",positionInfo:"Current zone",farmingInRadius:"\u{1F33E} Farming in {radius}px radius from ({x},{y})",selectEmptyArea:"\u26A0\uFE0F IMPORTANT: Select an EMPTY area to avoid conflicts",noPosition:"No zone",currentZone:"Zone: ({x},{y})",autoSelectPosition:"\u{1F3AF} Select a zone first. Paint a pixel on the map to set the farming zone",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"Download Logs",clearLogs:"Clear Logs",closeLogs:"Close",ready:"Ready",once:"Once",recapture:"Re-capture",selectPosition:"Select",stats:{painted:"Painted",charges:"Charges",droplets:"Droplets",user:"User",retries:"Retries"},config:{minCharges:"Minimum charges",delay:"Wait (sec)",pixelsPerBatch:"Pixels per batch"},color:{fixed:"Fixed",range:"Range",random:"Random",selected:"Selected color",min:"Min",max:"Max"},autobuy:{title:"Auto-buy (+5 charges)",hint:"Will activate automatically when you have \u2265 500 droplets"},buyCharges:"Buy +5 charges",buying:"Buying...",buyOk:"Purchase completed. Refresh session.",buyFail:"Could not purchase"},common:{yes:"Yes",no:"No",ok:"OK",cancel:"Cancel",close:"Close",save:"Save",load:"Load",delete:"Delete",edit:"Edit",start:"Start",stop:"Stop",pause:"Pause",resume:"Resume",reset:"Reset",settings:"Settings",help:"Help",about:"About",language:"Language",loading:"Loading...",error:"Error",success:"Success",warning:"Warning",info:"Information",languageChanged:"Language changed to {language}"},guard:{title:"WPlace Auto-Guard",initBot:"Initialize Guard-BOT",selectArea:"Select Area",save:"Save",loadFile:"Load File",reposition:"Reposition",analyzeArea:"Analyze Area",logs:"Logs",watcher:"Watcher",configuration:"Configuration",startErase:"Start Erase",stopWatcher:"Stop Watcher",minimize:"Minimize",expand:"Expand",nextBatchIn:"Next batch in: ",captureArea:"Capture Area",startProtection:"Start",stopProtection:"Stop",protectedPixels:"Protected Pixels",upperLeft:"Upper Left Corner",lowerRight:"Lower Right Corner",detectedChanges:"Detected Changes",repairedPixels:"Repaired Pixels",charges:"Charges",waitingInit:"Waiting for initialization...",checkingColors:"\u{1F3A8} Checking available colors...",noColorsFound:"\u274C No colors found. Open the color palette on the site.",colorsFound:"\u2705 Found {count} available colors",initSuccess:"\u2705 Guard-BOT initialized successfully",initError:"\u274C Error initializing Guard-BOT",invalidCoords:"\u274C Invalid coordinates",invalidArea:"\u274C Area must have upper left corner less than lower right corner",areaTooLarge:"\u274C Area too large: {size} pixels (maximum: {max})",capturingArea:"\u{1F4F8} Capturing area...",areaCaptured:"\u2705 Area captured: {count} pixels",captureError:"\u274C Error capturing area: {error}",captureFirst:"\u274C First capture an area",noChanges:"\u2705 Area - no changes detected",changesDetected:"\u{1F6A8} {count} changes detected in area",repairing:"\u{1F6E0}\uFE0F Repairing {count} altered pixels...",repairedSuccess:"\u2705 Successfully repaired {count} pixels",repairError:"\u274C Error repairing pixels: {error}",noCharges:"\u26A0\uFE0F Insufficient charges to repair changes",checkingChanges:"\u{1F50D} Checking changes in area...",errorChecking:"\u274C Error checking changes: {error}",guardActive:"\u{1F6E1}\uFE0F Guardian active - area monitored",lastCheck:"Last check: {time}",nextCheck:"Next check in: {time}s",autoInitializing:"\u{1F916} Auto-initializing...",autoInitSuccess:"\u2705 Guard-BOT auto-started successfully",autoInitFailed:"\u26A0\uFE0F Could not auto-start. Use manual button.",manualInitRequired:"\u{1F527} Manual initialization required",paletteDetected:"\u{1F3A8} Color palette detected",paletteNotFound:"\u{1F50D} Searching for color palette...",clickingPaintButton:"\u{1F446} Clicking Paint button...",paintButtonNotFound:"\u274C Paint button not found",protectionStopped:"\u23F9\uFE0F Protection stopped",selectUpperLeft:"\u{1F3AF} Paint a pixel at the UPPER LEFT corner of the area to monitor",selectLowerRight:"\u{1F3AF} Now paint a pixel at the LOWER RIGHT corner of the area",waitingUpperLeft:"\u{1F446} Waiting for upper left corner selection...",waitingLowerRight:"\u{1F446} Waiting for lower right corner selection...",upperLeftCaptured:"\u2705 Upper left corner captured: ({x}, {y})",lowerRightCaptured:"\u2705 Lower right corner captured: ({x}, {y})",selectionTimeout:"\u274C Selection timeout",selectionError:"\u274C Selection error, please try again",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"Download Logs",clearLogs:"Clear Logs",closeLogs:"Close",analysisTitle:"Difference Analysis - JSON vs Current Canvas",correctPixels:"Correct Pixels",incorrectPixels:"Incorrect Pixels",missingPixels:"Missing Pixels",showCorrect:"Show Correct",showIncorrect:"Show Incorrect",showMissing:"Show Missing",autoRefresh:"Auto-refresh",zoomAdjusted:"Zoom automatically adjusted to",autoRefreshEnabled:"Auto-refresh enabled every",autoRefreshDisabled:"Auto-refresh disabled",autoRefreshIntervalUpdated:"Auto-refresh interval updated to",visualizationUpdated:"Visualization updated",noAreaOrPixels:"No protected area or pixels loaded to analyze",noColorsDetected:"Cannot detect colors. Make sure the palette is open.",sessionRecordingStarted:"Session recording started with autorefresh enabled",sessionRecordingStopped:"Session recording stopped",noSessionData:"No session data to download",sessionDataDownloaded:"Session data downloaded",snapshotCaptureError:"Error capturing image",recordSession:"Record Session",snapshot:"Snapshot",downloadData:"Download Data",zoom:"Zoom",interval:"Interval",seconds:"seconds",updateAnalysis:"Update Analysis",adjustZoom:"Adjust Zoom",precision:"Precision",statistics:"Statistics",visualization:"Visualization",recording:"Recording",configTitle:"Guard Configuration",protectionPatterns:"Protection Patterns",preferSpecificColor:"Prioritize specific color",excludeSpecificColors:"Don't repair specific colors",loadManagement:"Load Management",minLoadsToWait:"Minimum loads:",pixelsPerBatch:"Pixels per batch",spendAllPixelsOnStart:"Spend all pixels on start",waitTimes:"Wait Times",useRandomTimes:"Use random times between batches",minTime:"Minimum time (s)",maxTime:"Maximum time (s)"},slave:{title:"WPlace Slave",masterServer:"Master Server",ipAddress:"IP Address",connect:"Connect",disconnect:"Disconnect",status:"Status",slaveId:"Slave ID",mode:"Mode",running:"Running",idle:"Idle",connected:"Connected",connecting:"Connecting...",disconnected:"Disconnected",error:"Error",close:"Close",telemetry:"Telemetry",repairedPixels:"Repaired Pixels",missingPixels:"Missing Pixels",absentPixels:"Absent Pixels",remainingCharges:"Remaining Charges",connectionError:"Connection error. Check URL and that server is running.",invalidUrl:"Please enter a valid URL",httpsUpgrade:"HTTPS page: switching to wss:// to avoid mixed content.",slaveRunning:"Slave is already running.",slaveInitialized:"Slave initialized successfully",slaveError:"Error initializing Slave",masterConnected:"Connected to master server",masterDisconnected:"Disconnected from master server",reconnecting:"Retrying connection",maxReconnectAttempts:"Maximum reconnection attempts reached",modeSet:"Mode configured",projectLoaded:"Project configuration loaded",botStarted:"Bot started",botStopped:"Bot stopped",botPaused:"Bot paused"}};var wt={launcher:{title:"WPlace AutoBOT",autoFarm:"\u{1F33E} Auto-Farm",autoImage:"\u{1F3A8} Auto-Image",autoGuard:"\u{1F6E1}\uFE0F Auto-Guard",autoSlave:"\u{1F517} Slave",selection:"Auswahl",user:"Benutzer",charges:"Ladungen",backend:"Backend",database:"Datenbank",uptime:"Laufzeit",close:"Schlie\xDFen",launch:"Starten",loading:"L\xE4dt\u2026",executing:"Wird ausgef\xFChrt\u2026",downloading:"Skript wird heruntergeladen\u2026",chooseBot:"W\xE4hle einen Bot und dr\xFCcke Starten",readyToLaunch:"Bereit zum Starten",loadError:"Ladefehler",loadErrorMsg:"Der ausgew\xE4hlte Bot konnte nicht geladen werden. \xDCberpr\xFCfe deine Verbindung oder versuche es erneut.",checking:"\u{1F504} \xDCberpr\xFCfe...",online:"\u{1F7E2} Online",offline:"\u{1F534} Offline",ok:"\u{1F7E2} OK",error:"\u{1F534} Fehler",unknown:"-",logWindow:"Protokolle",logWindowTitle:"Protokolle - {botName}",downloadLogs:"Protokolle herunterladen",clearLogs:"Protokolle l\xF6schen",closeLogs:"Schlie\xDFen",localExecution:"Lokale Ausf\xFChrung mit vollem Zugriff auf das Token-System",botStarting:"Bot startet..."},image:{title:"WPlace Auto-Image",initBot:"Auto-BOT initialisieren",uploadImage:"Bild hochladen",resizeImage:"Bildgr\xF6\xDFe \xE4ndern",selectPosition:"Position ausw\xE4hlen",startPainting:"Malen starten",stopPainting:"Malen stoppen",saveProgress:"Fortschritt speichern",loadProgress:"Fortschritt laden",checkingColors:"\u{1F50D} Verf\xFCgbare Farben werden \xFCberpr\xFCft...",noColorsFound:"\u274C \xD6ffne die Farbpalette auf der Seite und versuche es erneut!",colorsFound:"\u2705 {count} verf\xFCgbare Farben gefunden",loadingImage:"\u{1F5BC}\uFE0F Bild wird geladen...",imageLoaded:"\u2705 Bild mit {count} g\xFCltigen Pixeln geladen",imageError:"\u274C Fehler beim Laden des Bildes",selectPositionAlert:"Male den ersten Pixel an die Stelle, an der das Kunstwerk beginnen soll!",waitingPosition:"\u{1F446} Warte darauf, dass du den Referenzpixel malst...",positionSet:"\u2705 Position erfolgreich gesetzt!",positionTimeout:"\u274C Zeit\xFCberschreitung bei der Positionsauswahl",positionDetected:"\u{1F3AF} Position erkannt, wird verarbeitet...",positionError:"\u274C Fehler bei der Positionserkennung, bitte versuche es erneut",startPaintingMsg:"\u{1F3A8} Malen wird gestartet...",paintingProgress:"\u{1F9F1} Fortschritt: {painted}/{total} Pixel...",noCharges:"\u231B Keine Ladungen. Warte {time}...",paintingStopped:"\u23F9\uFE0F Malen vom Benutzer gestoppt",paintingComplete:"\u2705 Malen abgeschlossen! {count} Pixel gemalt.",paintingError:"\u274C Fehler beim Malen",missingRequirements:"\u274C Lade zuerst ein Bild und w\xE4hle eine Position aus",progress:"Fortschritt",userName:"Benutzer",pixels:"Pixel",charges:"Ladungen",estimatedTime:"Gesch\xE4tzte Zeit",initMessage:"Klicke auf 'Auto-BOT initialisieren', um zu beginnen",waitingInit:"Warte auf Initialisierung...",resizeSuccess:"\u2705 Bildgr\xF6\xDFe ge\xE4ndert auf {width}x{height}",paintingPaused:"\u23F8\uFE0F Malen pausiert bei Position X: {x}, Y: {y}",pixelsPerBatch:"Pixel pro Durchgang",batchSize:"Durchgangsgr\xF6\xDFe",nextBatchTime:"N\xE4chster Durchgang in",useAllCharges:"Alle verf\xFCgbaren Ladungen verwenden",showOverlay:"Overlay anzeigen",maxCharges:"Maximale Ladungen pro Durchgang",waitingForCharges:"\u23F3 Warte auf Ladungen: {current}/{needed}",timeRemaining:"Verbleibende Zeit",cooldownWaiting:"\u23F3 Warte {time} zum Fortfahren...",progressSaved:"\u2705 Fortschritt gespeichert als {filename}",progressLoaded:"\u2705 Fortschritt geladen: {painted}/{total} Pixel gemalt",progressLoadError:"\u274C Fehler beim Laden des Fortschritts: {error}",progressSaveError:"\u274C Fehler beim Speichern des Fortschritts: {error}",confirmSaveProgress:"M\xF6chtest du den aktuellen Fortschritt vor dem Stoppen speichern?",saveProgressTitle:"Fortschritt speichern",discardProgress:"Verwerfen",cancel:"Abbrechen",minimize:"Minimieren",width:"Breite",height:"H\xF6he",keepAspect:"Seitenverh\xE4ltnis beibehalten",apply:"Anwenden",overlayOn:"Overlay: AN",overlayOff:"Overlay: AUS",passCompleted:"\u2705 Durchgang abgeschlossen: {painted} Pixel gemalt | Fortschritt: {percent}% ({current}/{total})",waitingChargesRegen:"\u23F3 Warte auf Ladungsregeneration: {current}/{needed} - Zeit: {time}",waitingChargesCountdown:"\u23F3 Warte auf Ladungen: {current}/{needed} - Verbleibend: {time}",autoInitializing:"\u{1F916} Automatische Initialisierung...",autoInitSuccess:"\u2705 Bot automatisch erfolgreich gestartet",autoInitFailed:"\u26A0\uFE0F Automatischer Start nicht m\xF6glich. Benutze die manuelle Schaltfl\xE4che.",paletteDetected:"\u{1F3A8} Farbpalette erkannt",paletteNotFound:"\u{1F50D} Suche nach Farbpalette...",clickingPaintButton:"\u{1F446} Klicke auf die Malen-Schaltfl\xE4che...",paintButtonNotFound:"\u274C Malen-Schaltfl\xE4che nicht gefunden",manualInitRequired:"\u{1F527} Manuelle Initialisierung erforderlich",retryAttempt:"\u{1F504} Versuch {attempt}/{maxAttempts} in {delay}s...",retryError:"\u{1F4A5} Fehler bei Versuch {attempt}/{maxAttempts}, neuer Versuch in {delay}s...",retryFailed:"\u274C Nach {maxAttempts} Versuchen fehlgeschlagen. Weiter mit dem n\xE4chsten Durchgang...",networkError:"\u{1F310} Netzwerkfehler. Neuer Versuch...",serverError:"\u{1F525} Serverfehler. Neuer Versuch...",timeoutError:"\u23F0 Server-Zeit\xFCberschreitung, neuer Versuch...",saveProgressBtn:"Fortschritt speichern",guardJsonBtn:"Guard JSON",resizeWindowTitle:"Bildgr\xF6\xDFe \xE4ndern",original:"Original",labTolerance:"LAB-Toleranz",maintainProportion:"Proportionen beibehalten",skipColor:"Farbe \xFCberspringen",skipColorEnabled:"Farben \xFCberspringen, die nicht genau passen",similarityThreshold:"\xC4hnlichkeitsschwelle",skipColorDescription:"Nur exakte Farb\xFCbereinstimmungen werden gemalt (100% \xC4hnlichkeit).",applyResize:"Anwenden",cancelResize:"Abbrechen",patternSnake:"Schlange (Zickzack)",patternDiagonalSweep:"Diagonales Wischen",patternBorders:"Zuerst R\xE4nder",patternCenter:"Zuerst Mitte",patternQuadrants:"Quadranten",patternBiasedRandom:"Verzerrtes Zuf\xE4llig (R\xE4nder)",patternClusters:"Cluster",patternProximity:"N\xE4he",patternSweep:"Wischen nach Abschnitten",patternPriority:"Priorit\xE4t (gemischt)",patternAnchorPoints:"Ankerpunkte",patternSpiralCw:"Spirale (im Uhrzeigersinn)",patternSpiralCcw:"Spirale (gegen Uhrzeigersinn)",noProgressToSave:"Kein Fortschritt zum Speichern",progressSaveSuccess:"Fortschritt gespeichert als {filename}",progressLoadSuccess:"Fortschritt geladen: {painted}/{total} Pixel gemalt",invalidProgressFile:"Ung\xFCltige Fortschrittsdatei",missingFields:"Fehlende erforderliche Felder: {fields}",guardDialogTitle:"Guard JSON generieren",guardDialogMessage:"M\xF6chtest du eine Guard JSON-Datei mit den aktuellen Daten generieren?",guardDialogInfo:`Bild: {name}
Abmessungen: {width}x{height}
Pixel: {pixels}`,generateGuard:"Guard generieren",guardJsonInvalidStructure:"\u274C Ung\xFCltige Struktur f\xFCr Guard JSON. Speichern wird abgebrochen.",guardJsonInvalidMessage:"Ung\xFCltige Guard JSON-Struktur. Versuche es erneut nach der Positionsauswahl.",guardJsonSaveSuccess:"\u2705 Guard JSON gespeichert: {filename}",guardJsonSaveError:"\u274C Fehler beim Speichern des Guard JSON: {error}",notificationInfo:"Information",notificationSuccess:"Erfolg",notificationWarning:"Warnung",notificationError:"Fehler",paintPattern:"\uFFFD Malmuster",patternLinearStart:"Linear (Start)",patternLinearEnd:"Linear (Ende)",patternRandom:"Zuf\xE4llig",patternCenterOut:"Von der Mitte nach au\xDFen",patternCornersFirst:"Zuerst Ecken",patternSpiral:"Spirale",logWindow:"Protokolle",logWindowTitle:"Protokolle - {botName}",downloadLogs:"Protokolle herunterladen",clearLogs:"Protokolle l\xF6schen",closeLogs:"Schlie\xDFen",userInfo:"Benutzerinformationen",imageProgress:"Bildfortschritt",availableColors:"Verf\xFCgbare Farben",noImageLoaded:"Kein Bild geladen",cooldown:"Abklingzeit",totalColors:"Gesamte Farben",colorPalette:"Farbpalette",showAllColors:"Alle Farben anzeigen (einschlie\xDFlich nicht verf\xFCgbare)",selectAllColors:"Alle ausw\xE4hlen",unselectAllColors:"Alle abw\xE4hlen",noAvailable:"Nicht verf\xFCgbar",colorSelected:"Farbe ausgew\xE4hlt",statsUpdated:"\u2705 Statistiken aktualisiert: {count} Farben verf\xFCgbar"},farm:{title:"\u{1F9D1}\u200D\u{1F33E} WPlace Farm",start:"Starten",stop:"Stoppen",stopped:"Bot gestoppt",calibrate:"Kalibrieren",paintOnce:"Einmalig",checkingStatus:"Status wird \xFCberpr\xFCft...",configuration:"Konfiguration",delay:"Verz\xF6gerung (ms)",pixelsPerBatch:"Pixel/Durchgang",minCharges:"Min. Ladungen",colorMode:"Farbmodus",random:"Zuf\xE4llig",fixed:"Fest",range:"Bereich",fixedColor:"Feste Farbe",advanced:"Erweitert",tileX:"Kachel X",tileY:"Kachel Y",customPalette:"Benutzerdefinierte Palette",paletteExample:"z.B.: #FF0000,#00FF00,#0000FF",capture:"Erfassen",painted:"Gemalt",charges:"Ladungen",retries:"Wiederholungen",position:"Position",tile:"Kachel",configSaved:"Konfiguration gespeichert",configLoaded:"Konfiguration geladen",configReset:"Konfiguration zur\xFCckgesetzt",captureInstructions:"Male einen Pixel manuell, um Koordinaten zu erfassen...",backendOnline:"Backend Online",backendOffline:"Backend Offline",startingBot:"Bot wird gestartet...",stoppingBot:"Bot wird gestoppt...",calibrating:"Kalibriere...",alreadyRunning:"Auto-Farm l\xE4uft bereits.",imageRunningWarning:"Auto-Image l\xE4uft. Schlie\xDFe es, bevor du Auto-Farm startest.",selectPositionAlert:"\u{1F3AF} Male einen Pixel in einen LEEREN Bereich der Karte, um die Farmzone festzulegen",waitingPosition:"\u{1F446} Warte darauf, dass du den Referenzpixel malst...",positionSet:"\u2705 Zone festgelegt!",positionTimeout:"\u274C Zeit\xFCberschreitung bei der Zonenauswahl",missingPosition:"\u274C W\xE4hle zuerst eine Zone mit 'Zone ausw\xE4hlen'",farmRadius:"Farm-Radius",positionInfo:"Aktuelle Zone",farmingInRadius:"\u{1F33E} Farmen im Radius von {radius}px ab ({x},{y})",selectEmptyArea:"\u26A0\uFE0F WICHTIG: W\xE4hle einen LEEREN Bereich, um Konflikte zu vermeiden",noPosition:"Keine Zone",currentZone:"Zone: ({x},{y})",autoSelectPosition:"\u{1F3AF} W\xE4hle zuerst eine Zone. Male einen Pixel auf die Karte, um die Farmzone festzulegen",logWindow:"Protokolle",logWindowTitle:"Protokolle - {botName}",downloadLogs:"Protokolle herunterladen",clearLogs:"Protokolle l\xF6schen",closeLogs:"Schlie\xDFen",ready:"Bereit",once:"Einmalig",recapture:"Neu erfassen",selectPosition:"Ausw\xE4hlen",stats:{painted:"Gemalt",charges:"Ladungen",droplets:"Tropfen",user:"Benutzer",retries:"Versuche"},config:{minCharges:"Mindestladungen",delay:"Wartezeit (Sek)",pixelsPerBatch:"Pixel pro Durchgang"},color:{fixed:"Fest",range:"Bereich",random:"Zuf\xE4llig",selected:"Ausgew\xE4hlte Farbe",min:"Min",max:"Max"},autobuy:{title:"Auto-Kauf (+5 Ladungen)",hint:"Wird automatisch aktiviert, wenn du \u2265 500 Tropfen hast"},buyCharges:"+5 Ladungen kaufen",buying:"Kaufe...",buyOk:"Kauf abgeschlossen. Session aktualisieren.",buyFail:"Kauf nicht m\xF6glich"},common:{yes:"Ja",no:"Nein",ok:"OK",cancel:"Abbrechen",close:"Schlie\xDFen",save:"Speichern",load:"Laden",delete:"L\xF6schen",edit:"Bearbeiten",start:"Starten",stop:"Stoppen",pause:"Pausieren",resume:"Fortsetzen",reset:"Zur\xFCcksetzen",settings:"Einstellungen",help:"Hilfe",about:"\xDCber",language:"Sprache",loading:"L\xE4dt...",error:"Fehler",success:"Erfolg",warning:"Warnung",info:"Information",languageChanged:"Sprache ge\xE4ndert zu {language}"},guard:{title:"WPlace Auto-Guard",initBot:"Guard-BOT initialisieren",selectArea:"Bereich ausw\xE4hlen",save:"Speichern",loadFile:"Datei laden",reposition:"Neu positionieren",analyzeArea:"Bereich analysieren",logs:"Protokolle",watcher:"W\xE4chter",configuration:"Konfiguration",startErase:"L\xF6schen starten",stopWatcher:"W\xE4chter stoppen",minimize:"Minimieren",expand:"Erweitern",nextBatchIn:"N\xE4chster Durchgang in: ",captureArea:"Bereich erfassen",startProtection:"Starten",stopProtection:"Stoppen",protectedPixels:"Gesch\xFCtzte Pixel",upperLeft:"Obere linke Ecke",lowerRight:"Untere rechte Ecke",detectedChanges:"Erkannte \xC4nderungen",repairedPixels:"Reparierte Pixel",charges:"Ladungen",waitingInit:"Warte auf Initialisierung...",checkingColors:"\u{1F3A8} Verf\xFCgbare Farben werden \xFCberpr\xFCft...",noColorsFound:"\u274C Keine Farben gefunden. \xD6ffne die Farbpalette auf der Seite.",colorsFound:"\u2705 {count} verf\xFCgbare Farben gefunden",initSuccess:"\u2705 Guard-BOT erfolgreich initialisiert",initError:"\u274C Fehler bei der Initialisierung des Guard-BOT",invalidCoords:"\u274C Ung\xFCltige Koordinaten",invalidArea:"\u274C Der Bereich muss oben links kleiner als unten rechts sein",areaTooLarge:"\u274C Bereich zu gro\xDF: {size} Pixel (maximal: {max})",capturingArea:"\u{1F4F8} Bereich wird erfasst...",areaCaptured:"\u2705 Bereich erfasst: {count} Pixel",captureError:"\u274C Fehler beim Erfassen des Bereichs: {error}",captureFirst:"\u274C Erfasse zuerst einen Bereich",noChanges:"\u2705 Bereich - keine \xC4nderungen erkannt",changesDetected:"\u{1F6A8} {count} \xC4nderungen im Bereich erkannt",repairing:"\u{1F6E0}\uFE0F Repariere {count} ver\xE4nderte Pixel...",repairedSuccess:"\u2705 Erfolgreich {count} Pixel repariert",repairError:"\u274C Fehler beim Reparieren der Pixel: {error}",noCharges:"\u26A0\uFE0F Nicht gen\xFCgend Ladungen, um \xC4nderungen zu reparieren",checkingChanges:"\u{1F50D} \xC4nderungen im Bereich werden \xFCberpr\xFCft...",errorChecking:"\u274C Fehler beim \xDCberpr\xFCfen der \xC4nderungen: {error}",guardActive:"\u{1F6E1}\uFE0F W\xE4chter aktiv - Bereich \xFCberwacht",lastCheck:"Letzte \xDCberpr\xFCfung: {time}",nextCheck:"N\xE4chste \xDCberpr\xFCfung in: {time}s",autoInitializing:"\u{1F916} Automatische Initialisierung...",autoInitSuccess:"\u2705 Guard-BOT automatisch erfolgreich gestartet",autoInitFailed:"\u26A0\uFE0F Automatischer Start nicht m\xF6glich. Benutze die manuelle Schaltfl\xE4che.",manualInitRequired:"\u{1F527} Manuelle Initialisierung erforderlich",paletteDetected:"\u{1F3A8} Farbpalette erkannt",paletteNotFound:"\u{1F50D} Suche nach Farbpalette...",clickingPaintButton:"\u{1F446} Klicke auf die Malen-Schaltfl\xE4che...",paintButtonNotFound:"\u274C Malen-Schaltfl\xE4che nicht gefunden",protectionStopped:"\u23F9\uFE0F Schutz gestoppt",selectUpperLeft:"\u{1F3AF} Male einen Pixel an die OBERE LINKE Ecke des zu \xFCberwachenden Bereichs",selectLowerRight:"\u{1F3AF} Male jetzt einen Pixel an die UNTERE RECHTE Ecke des Bereichs",waitingUpperLeft:"\u{1F446} Warte auf Auswahl der oberen linken Ecke...",waitingLowerRight:"\u{1F446} Warte auf Auswahl der unteren rechten Ecke...",upperLeftCaptured:"\u2705 Obere linke Ecke erfasst: ({x}, {y})",lowerRightCaptured:"\u2705 Untere rechte Ecke erfasst: ({x}, {y})",selectionTimeout:"\u274C Zeit\xFCberschreitung bei der Auswahl",selectionError:"\u274C Fehler bei der Auswahl, bitte versuche es erneut",logWindow:"Protokolle",logWindowTitle:"Protokolle - {botName}",downloadLogs:"Protokolle herunterladen",clearLogs:"Protokolle l\xF6schen",closeLogs:"Schlie\xDFen",analysisTitle:"Differenzanalyse - JSON vs Aktuelle Leinwand",correctPixels:"Korrekte Pixel",incorrectPixels:"Falsche Pixel",missingPixels:"Fehlende Pixel",showCorrect:"Korrekte anzeigen",showIncorrect:"Falsche anzeigen",showMissing:"Fehlende anzeigen",autoRefresh:"Automatisch aktualisieren",zoomAdjusted:"Zoom automatisch angepasst auf",autoRefreshEnabled:"Automatische Aktualisierung alle",autoRefreshDisabled:"Automatische Aktualisierung deaktiviert",autoRefreshIntervalUpdated:"Intervall f\xFCr automatische Aktualisierung ge\xE4ndert auf",visualizationUpdated:"Visualisierung aktualisiert",noAreaOrPixels:"Kein gesch\xFCtzter Bereich oder Pixel zum Analysieren geladen",noColorsDetected:"Farben k\xF6nnen nicht erkannt werden. Stelle sicher, dass die Palette ge\xF6ffnet ist.",sessionRecordingStarted:"Session-Aufzeichnung mit aktiviertem Autorefresh gestartet",sessionRecordingStopped:"Session-Aufzeichnung gestoppt",noSessionData:"Keine Session-Daten zum Herunterladen",sessionDataDownloaded:"Session-Daten heruntergeladen",snapshotCaptureError:"Fehler beim Erfassen des Bildes",recordSession:"Session aufzeichnen",snapshot:"Schnappschuss",downloadData:"Daten herunterladen",zoom:"Zoom",interval:"Intervall",seconds:"Sekunden",updateAnalysis:"Analyse aktualisieren",adjustZoom:"Zoom anpassen",precision:"Pr\xE4zision",statistics:"Statistiken",visualization:"Visualisierung",recording:"Aufzeichnung",configTitle:"Guard-Konfiguration",protectionPatterns:"Schutzmuster",preferSpecificColor:"Spezifische Farbe bevorzugen",excludeSpecificColors:"Bestimmte Farben nicht reparieren",loadManagement:"Lademanagement",minLoadsToWait:"Mindestladungen:",pixelsPerBatch:"Pixel pro Durchgang",spendAllPixelsOnStart:"Alle Pixel zu Beginn verwenden",waitTimes:"Wartezeiten",useRandomTimes:"Zuf\xE4llige Zeiten zwischen Durchg\xE4ngen verwenden",minTime:"Minimale Zeit (s)",maxTime:"Maximale Zeit (s)"},slave:{title:"WPlace Slave",masterServer:"Master-Server",ipAddress:"IP-Adresse",connect:"Verbinden",disconnect:"Trennen",status:"Status",slaveId:"Slave-ID",mode:"Modus",running:"L\xE4uft",idle:"Inaktiv",connected:"Verbunden",connecting:"Verbinde...",disconnected:"Getrennt",error:"Fehler",close:"Schlie\xDFen",telemetry:"Telemetrie",repairedPixels:"Reparierte Pixel",missingPixels:"Fehlende Pixel",absentPixels:"Abwesende Pixel",remainingCharges:"Verbleibende Ladungen",connectionError:"Verbindungsfehler. \xDCberpr\xFCfe die URL und dass der Server l\xE4uft.",invalidUrl:"Bitte gib eine g\xFCltige URL ein",httpsUpgrade:"HTTPS-Seite: wechsle zu wss:// um gemischte Inhalte zu vermeiden.",slaveRunning:"Slave l\xE4uft bereits.",slaveInitialized:"Slave erfolgreich initialisiert",slaveError:"Fehler beim Initialisieren des Slave",masterConnected:"Mit Master-Server verbunden",masterDisconnected:"Von Master-Server getrennt",reconnecting:"Verbindungsversuch",maxReconnectAttempts:"Maximale Anzahl von Verbindungsversuchen erreicht",modeSet:"Modus konfiguriert",projectLoaded:"Projektkonfiguration geladen",botStarted:"Bot gestartet",botStopped:"Bot gestoppt",botPaused:"Bot pausiert"}};var xt={launcher:{title:"WPlace AutoBOT",autoFarm:"\u{1F33E} Auto-Farm",autoImage:"\u{1F3A8} Auto-Image",autoGuard:"\u{1F6E1}\uFE0F Auto-Guard",autoSlave:"\u{1F517} Slave",selection:"S\xE9lection",user:"Utilisateur",charges:"Charges",backend:"Backend",database:"Base de donn\xE9es",uptime:"Temps actif",close:"Fermer",launch:"Lancer",loading:"Chargement\u2026",executing:"Ex\xE9cution\u2026",downloading:"T\xE9l\xE9chargement du script\u2026",chooseBot:"Choisissez un bot et appuyez sur Lancer",readyToLaunch:"Pr\xEAt \xE0 lancer",loadError:"Erreur de chargement",loadErrorMsg:"Impossible de charger le bot s\xE9lectionn\xE9. V\xE9rifiez votre connexion ou r\xE9essayez.",checking:"\u{1F504} V\xE9rification...",online:"\u{1F7E2} En ligne",offline:"\u{1F534} Hors ligne",ok:"\u{1F7E2} OK",error:"\u{1F534} Erreur",unknown:"-",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"T\xE9l\xE9charger Logs",clearLogs:"Effacer Logs",closeLogs:"Fermer",localExecution:"Ex\xE9cution locale avec acc\xE8s complet au syst\xE8me de tokens",botStarting:"Bot en d\xE9marrage..."},image:{title:"WPlace Auto-Image",initBot:"Initialiser Auto-BOT",uploadImage:"T\xE9l\xE9charger Image",resizeImage:"Redimensionner Image",selectPosition:"S\xE9lectionner Position",startPainting:"Commencer Peinture",stopPainting:"Arr\xEAter Peinture",saveProgress:"Sauvegarder Progr\xE8s",loadProgress:"Charger Progr\xE8s",checkingColors:"\u{1F50D} V\xE9rification des couleurs disponibles...",noColorsFound:"\u274C Ouvrez la palette de couleurs sur le site et r\xE9essayez!",colorsFound:"\u2705 {count} couleurs disponibles trouv\xE9es",loadingImage:"\u{1F5BC}\uFE0F Chargement de l'image...",imageLoaded:"\u2705 Image charg\xE9e avec {count} pixels valides",imageError:"\u274C Erreur lors du chargement de l'image",selectPositionAlert:"Peignez le premier pixel \xE0 l'emplacement o\xF9 vous voulez que l'art commence!",waitingPosition:"\u{1F446} En attente que vous peigniez le pixel de r\xE9f\xE9rence...",positionSet:"\u2705 Position d\xE9finie avec succ\xE8s!",positionTimeout:"\u274C D\xE9lai d\xE9pass\xE9 pour la s\xE9lection de position",positionDetected:"\u{1F3AF} Position d\xE9tect\xE9e, traitement...",positionError:"\u274C Erreur d\xE9tectant la position, essayez \xE0 nouveau",startPaintingMsg:"\u{1F3A8} D\xE9but de la peinture...",paintingProgress:"\u{1F9F1} Progr\xE8s: {painted}/{total} pixels...",noCharges:"\u231B Aucune charge. Attendre {time}...",paintingStopped:"\u23F9\uFE0F Peinture arr\xEAt\xE9e par l'utilisateur",paintingComplete:"\u2705 Peinture termin\xE9e! {count} pixels peints.",paintingError:"\u274C Erreur pendant la peinture",missingRequirements:"\u274C Chargez une image et s\xE9lectionnez une position d'abord",progress:"Progr\xE8s",userName:"Utilisateur",pixels:"Pixels",charges:"Charges",estimatedTime:"Temps estim\xE9",initMessage:"Cliquez sur 'Initialiser Auto-BOT' pour commencer",waitingInit:"En attente d'initialisation...",resizeSuccess:"\u2705 Image redimensionn\xE9e \xE0 {width}x{height}",paintingPaused:"\u23F8\uFE0F Peinture mise en pause \xE0 la position X: {x}, Y: {y}",pixelsPerBatch:"Pixels par lot",batchSize:"Taille du lot",nextBatchTime:"Prochain lot dans",useAllCharges:"Utiliser toutes les charges disponibles",showOverlay:"Afficher l'overlay",maxCharges:"Charges max par lot",waitingForCharges:"\u23F3 En attente de charges: {current}/{needed}",timeRemaining:"Temps restant",cooldownWaiting:"\u23F3 Attendre {time} pour continuer...",progressSaved:"\u2705 Progr\xE8s sauvegard\xE9 sous {filename}",progressLoaded:"\u2705 Progr\xE8s charg\xE9: {painted}/{total} pixels peints",progressLoadError:"\u274C Erreur lors du chargement du progr\xE8s: {error}",progressSaveError:"\u274C Erreur lors de la sauvegarde du progr\xE8s: {error}",confirmSaveProgress:"Voulez-vous sauvegarder le progr\xE8s actuel avant d'arr\xEAter?",saveProgressTitle:"Sauvegarder Progr\xE8s",discardProgress:"Abandonner",cancel:"Annuler",minimize:"Minimiser",width:"Largeur",height:"Hauteur",keepAspect:"Garder les proportions",apply:"Appliquer",overlayOn:"Overlay : ON",overlayOff:"Overlay : OFF",passCompleted:"\u2705 Passage termin\xE9: {painted} pixels peints | Progr\xE8s: {percent}% ({current}/{total})",waitingChargesRegen:"\u23F3 Attente de r\xE9g\xE9n\xE9ration des charges: {current}/{needed} - Temps: {time}",waitingChargesCountdown:"\u23F3 Attente des charges: {current}/{needed} - Restant: {time}",autoInitializing:"\u{1F916} Initialisation automatique...",autoInitSuccess:"\u2705 Bot d\xE9marr\xE9 automatiquement",autoInitFailed:"\u26A0\uFE0F Impossible de d\xE9marrer automatiquement. Utilisez le bouton manuel.",paletteDetected:"\u{1F3A8} Palette de couleurs d\xE9tect\xE9e",paletteNotFound:"\u{1F50D} Recherche de la palette de couleurs...",clickingPaintButton:"\u{1F446} Clic sur le bouton Paint...",paintButtonNotFound:"\u274C Bouton Paint introuvable",manualInitRequired:"\u{1F527} Initialisation manuelle requise",retryAttempt:"\u{1F504} Tentative {attempt}/{maxAttempts} dans {delay}s...",retryError:"\u{1F4A5} Erreur dans tentative {attempt}/{maxAttempts}, nouvel essai dans {delay}s...",retryFailed:"\u274C \xC9chec apr\xE8s {maxAttempts} tentatives. Continuant avec le lot suivant...",networkError:"\u{1F310} Erreur r\xE9seau. Nouvel essai...",serverError:"\u{1F525} Erreur serveur. Nouvel essai...",timeoutError:"\u23F0 D\xE9lai d'attente du serveur, nouvelle tentative...",saveProgressBtn:"Sauvegarder progr\xE8s",guardJsonBtn:"Guard JSON",resizeWindowTitle:"Redimensionner Image",original:"Original",labTolerance:"Tol\xE9rance LAB",maintainProportion:"Maintenir les proportions",skipColor:"Skip Color",skipColorEnabled:"Skip colors that don't match exactly",similarityThreshold:"Seuil de similarit\xE9",skipColorDescription:"Seules les correspondances de couleur exactes seront peintes (similarit\xE9 100%).",applyResize:"Appliquer",cancelResize:"Annuler",patternSnake:"Serpent (Zigzag)",patternDiagonalSweep:"Balayage diagonal",patternBorders:"Bordures d'abord",patternCenter:"Centre d'abord",patternQuadrants:"Quadrants",patternBiasedRandom:"Al\xE9atoire biais\xE9 (bordures)",patternClusters:"Clusters",patternProximity:"Proximit\xE9",patternSweep:"Balayage par sections",patternPriority:"Priorit\xE9 (mixte)",patternAnchorPoints:"Points d'ancrage",patternSpiralCw:"Spirale (horaire)",patternSpiralCcw:"Spirale (anti-horaire)",noProgressToSave:"Aucun progr\xE8s \xE0 sauvegarder",progressSaveSuccess:"Progr\xE8s sauvegard\xE9 sous {filename}",progressLoadSuccess:"Progr\xE8s charg\xE9: {painted}/{total} pixels peints",invalidProgressFile:"Fichier de progr\xE8s invalide",missingFields:"Champs requis manquants: {fields}",guardDialogTitle:"G\xE9n\xE9rer Guard JSON",guardDialogMessage:"Voulez-vous g\xE9n\xE9rer un fichier Guard JSON avec les donn\xE9es actuelles?",guardDialogInfo:`Image: {name}
Dimensions: {width}x{height}
Pixels: {pixels}`,generateGuard:"G\xE9n\xE9rer Guard",guardJsonInvalidStructure:"\u274C Structure invalide pour le JSON du Guard. Annulation de la sauvegarde.",guardJsonInvalidMessage:"Structure JSON du Guard invalide. R\xE9essayez apr\xE8s avoir s\xE9lectionn\xE9 la position.",guardJsonSaveSuccess:"\u2705 JSON du Guard sauvegard\xE9: {filename}",guardJsonSaveError:"\u274C Erreur lors de la sauvegarde du JSON du Guard: {error}",notificationInfo:"Information",notificationSuccess:"Succ\xE8s",notificationWarning:"Avertissement",notificationError:"Erreur",paintPattern:"\u{1F4D0} Motif de peinture",patternLinearStart:"Lin\xE9aire (D\xE9but)",patternLinearEnd:"Lin\xE9aire (Fin)",patternRandom:"Al\xE9atoire",patternCenterOut:"Centre vers l'ext\xE9rieur",patternCornersFirst:"Coins d'abord",patternSpiral:"Spirale",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"T\xE9l\xE9charger Logs",clearLogs:"Effacer Logs",closeLogs:"Fermer",userInfo:"Informations Utilisateur",imageProgress:"Progr\xE8s de l'Image",availableColors:"Couleurs Disponibles",noImageLoaded:"Aucune image charg\xE9e",cooldown:"Temps d'attente",totalColors:"Total des Couleurs",colorPalette:"Palette de Couleurs",showAllColors:"Afficher Toutes les Couleurs (y compris non disponibles)",selectAllColors:"S\xE9lectionner Toutes",unselectAllColors:"D\xE9s\xE9lectionner Toutes",noAvailable:"Non disponible",colorSelected:"Couleur s\xE9lectionn\xE9e",statsUpdated:"\u2705 Statistiques mises \xE0 jour: {count} couleurs disponibles"},farm:{title:"\u{1F9D1}\u200D\u{1F33E} WPlace Farm",start:"D\xE9marrer",stop:"Arr\xEAter",stopped:"Bot arr\xEAt\xE9",calibrate:"Calibrer",paintOnce:"Une fois",checkingStatus:"V\xE9rification du statut...",configuration:"Configuration",delay:"D\xE9lai (ms)",pixelsPerBatch:"Pixels/lot",minCharges:"Charges min",colorMode:"Mode couleur",random:"Al\xE9atoire",fixed:"Fixe",range:"Plage",fixedColor:"Couleur fixe",advanced:"Avanc\xE9",tileX:"Tuile X",tileY:"Tuile Y",customPalette:"Palette personnalis\xE9e",paletteExample:"ex: #FF0000,#00FF00,#0000FF",capture:"Capturer",painted:"Peints",charges:"Charges",retries:"\xC9checs",position:"Position",tile:"Tuile",configSaved:"Configuration sauvegard\xE9e",configLoaded:"Configuration charg\xE9e",configReset:"Configuration r\xE9initialis\xE9e",captureInstructions:"Peindre un pixel manuellement pour capturer les coordonn\xE9es...",backendOnline:"Backend En ligne",backendOffline:"Backend Hors ligne",startingBot:"D\xE9marrage du bot...",stoppingBot:"Arr\xEAt du bot...",calibrating:"Calibrage...",alreadyRunning:"Auto-Farm est d\xE9j\xE0 en cours d'ex\xE9cution.",imageRunningWarning:"Auto-Image est en cours d'ex\xE9cution. Fermez-le avant de d\xE9marrer Auto-Farm.",selectPositionAlert:"\u{1F3AF} Peignez un pixel dans une zone VIDE de la carte pour d\xE9finir la zone de farming",waitingPosition:"\u{1F446} En attente que vous peigniez le pixel de r\xE9f\xE9rence...",positionSet:"\u2705 Zone d\xE9finie!",positionTimeout:"\u274C D\xE9lai d\xE9pass\xE9 pour la s\xE9lection de zone",missingPosition:"\u274C S\xE9lectionnez une zone d'abord en utilisant 'S\xE9lectionner Zone'",farmRadius:"Rayon farm",positionInfo:"Zone actuelle",farmingInRadius:"\u{1F33E} Farming dans un rayon de {radius}px depuis ({x},{y})",selectEmptyArea:"\u26A0\uFE0F IMPORTANT: S\xE9lectionnez une zone VIDE pour \xE9viter les conflits",noPosition:"Aucune zone",currentZone:"Zone: ({x},{y})",autoSelectPosition:"\u{1F3AF} S\xE9lectionnez une zone d'abord. Peignez un pixel sur la carte pour d\xE9finir la zone de farming",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"T\xE9l\xE9charger Logs",clearLogs:"Effacer Logs",closeLogs:"Fermer",ready:"Pr\xEAt",once:"Une fois",recapture:"Re-capturer",selectPosition:"S\xE9lectionner",stats:{painted:"Peints",charges:"Charges",droplets:"Gouttelettes",user:"Utilisateur",retries:"Tentatives"},config:{minCharges:"Charges minimales",delay:"Attente (sec)",pixelsPerBatch:"Pixels par lot"},color:{fixed:"Fixe",range:"Plage",random:"Al\xE9atoire",selected:"Couleur s\xE9lectionn\xE9e",min:"Min",max:"Max"},autobuy:{title:"Auto-achat (+5 charges)",hint:"S'activera automatiquement quand vous avez \u2265 500 gouttelettes"},buyCharges:"Acheter +5 charges",buying:"Achat en cours...",buyOk:"Achat effectu\xE9. Actualisez la session.",buyFail:"Impossible d'acheter"},common:{yes:"Oui",no:"Non",ok:"OK",cancel:"Annuler",close:"Fermer",save:"Sauvegarder",load:"Charger",delete:"Supprimer",edit:"Modifier",start:"D\xE9marrer",stop:"Arr\xEAter",pause:"Pause",resume:"Reprendre",reset:"R\xE9initialiser",settings:"Param\xE8tres",help:"Aide",about:"\xC0 propos",language:"Langue",loading:"Chargement...",error:"Erreur",success:"Succ\xE8s",warning:"Avertissement",info:"Information",languageChanged:"Langue chang\xE9e en {language}"},guard:{title:"WPlace Auto-Guard",initBot:"Initialiser Guard-BOT",selectArea:"S\xE9lectionner Zone",save:"Sauvegarder",loadFile:"Charger Fichier",reposition:"Repositionner",analyzeArea:"Analyser Zone",logs:"Logs",watcher:"Surveillant",configuration:"Configuration",startErase:"D\xE9marrer Effacement",stopWatcher:"Arr\xEAter Surveillant",minimize:"Minimiser",expand:"\xC9tendre",nextBatchIn:"Prochain lot dans: ",captureArea:"Capturer Zone",startProtection:"D\xE9marrer",stopProtection:"Arr\xEAter",protectedPixels:"Pixels Prot\xE9g\xE9s",upperLeft:"Coin Sup\xE9rieur Gauche",lowerRight:"Coin Inf\xE9rieur Droit",detectedChanges:"Changements D\xE9tect\xE9s",repairedPixels:"Pixels R\xE9par\xE9s",charges:"Charges",waitingInit:"En attente d'initialisation...",checkingColors:"\u{1F3A8} V\xE9rification des couleurs disponibles...",noColorsFound:"\u274C Aucune couleur trouv\xE9e. Ouvrez la palette de couleurs sur le site.",colorsFound:"\u2705 {count} couleurs disponibles trouv\xE9es",initSuccess:"\u2705 Guard-BOT initialis\xE9 avec succ\xE8s",initError:"\u274C Erreur lors de l'initialisation de Guard-BOT",invalidCoords:"\u274C Coordonn\xE9es invalides",invalidArea:"\u274C La zone doit avoir le coin sup\xE9rieur gauche inf\xE9rieur au coin inf\xE9rieur droit",areaTooLarge:"\u274C Zone trop grande: {size} pixels (maximum: {max})",capturingArea:"\u{1F4F8} Capture de la zone...",areaCaptured:"\u2705 Zone captur\xE9e: {count} pixels",captureError:"\u274C Erreur lors de la capture de zone: {error}",captureFirst:"\u274C Capturez d'abord une zone",noChanges:"\u2705 Zone - aucun changement d\xE9tect\xE9",changesDetected:"\u{1F6A8} {count} changements d\xE9tect\xE9s dans la zone",repairing:"\u{1F6E0}\uFE0F R\xE9paration de {count} pixels alt\xE9r\xE9s...",repairedSuccess:"\u2705 {count} pixels r\xE9par\xE9s avec succ\xE8s",repairError:"\u274C Erreur lors de la r\xE9paration des pixels: {error}",noCharges:"\u26A0\uFE0F Charges insuffisantes pour r\xE9parer les changements",checkingChanges:"\u{1F50D} V\xE9rification des changements dans la zone...",errorChecking:"\u274C Erreur lors de la v\xE9rification des changements: {error}",guardActive:"\u{1F6E1}\uFE0F Gardien actif - zone surveill\xE9e",lastCheck:"Derni\xE8re v\xE9rification: {time}",nextCheck:"Prochaine v\xE9rification dans: {time}s",autoInitializing:"\u{1F916} Initialisation automatique...",autoInitSuccess:"\u2705 Guard-BOT d\xE9marr\xE9 automatiquement",autoInitFailed:"\u26A0\uFE0F Impossible de d\xE9marrer automatiquement. Utilisez le bouton manuel.",manualInitRequired:"\u{1F527} Initialisation manuelle requise",paletteDetected:"\u{1F3A8} Palette de couleurs d\xE9tect\xE9e",paletteNotFound:"\u{1F50D} Recherche de la palette de couleurs...",clickingPaintButton:"\u{1F446} Clic sur le bouton Paint...",paintButtonNotFound:"\u274C Bouton Paint introuvable",protectionStopped:"\u23F9\uFE0F Protection arr\xEAt\xE9e",selectUpperLeft:"\u{1F3AF} Peignez un pixel au coin SUP\xC9RIEUR GAUCHE de la zone \xE0 surveiller",selectLowerRight:"\u{1F3AF} Maintenant peignez un pixel au coin INF\xC9RIEUR DROIT de la zone",waitingUpperLeft:"\u{1F446} En attente de la s\xE9lection du coin sup\xE9rieur gauche...",waitingLowerRight:"\u{1F446} En attente de la s\xE9lection du coin inf\xE9rieur droit...",upperLeftCaptured:"\u2705 Coin sup\xE9rieur gauche captur\xE9: ({x}, {y})",lowerRightCaptured:"\u2705 Coin inf\xE9rieur droit captur\xE9: ({x}, {y})",selectionTimeout:"\u274C D\xE9lai de s\xE9lection d\xE9pass\xE9",selectionError:"\u274C Erreur de s\xE9lection, veuillez r\xE9essayer",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"T\xE9l\xE9charger Logs",clearLogs:"Effacer Logs",closeLogs:"Fermer",analysisTitle:"Analyse des Diff\xE9rences - JSON vs Canvas Actuel",correctPixels:"Pixels Corrects",incorrectPixels:"Pixels Incorrects",missingPixels:"Pixels Manquants",showCorrect:"Afficher Corrects",showIncorrect:"Afficher Incorrects",showMissing:"Afficher Manquants",autoRefresh:"Actualisation automatique",zoomAdjusted:"Zoom ajust\xE9 automatiquement \xE0",autoRefreshEnabled:"Actualisation automatique activ\xE9e toutes les",autoRefreshDisabled:"Actualisation automatique d\xE9sactiv\xE9e",autoRefreshIntervalUpdated:"Intervalle d'actualisation automatique mis \xE0 jour \xE0",visualizationUpdated:"Visualisation mise \xE0 jour",noAreaOrPixels:"Aucune zone prot\xE9g\xE9e ou pixels charg\xE9s \xE0 analyser",noColorsDetected:"Impossible de d\xE9tecter les couleurs. Assurez-vous que la palette est ouverte.",sessionRecordingStarted:"Enregistrement de session d\xE9marr\xE9 avec actualisation automatique activ\xE9e",sessionRecordingStopped:"Enregistrement de session arr\xEAt\xE9",noSessionData:"Aucune donn\xE9e de session \xE0 t\xE9l\xE9charger",sessionDataDownloaded:"Donn\xE9es de session t\xE9l\xE9charg\xE9es",snapshotCaptureError:"Erreur lors de la capture de l'image",recordSession:"Enregistrer Session",snapshot:"Instantan\xE9",downloadData:"T\xE9l\xE9charger Donn\xE9es",zoom:"Zoom",interval:"Intervalle",seconds:"secondes",updateAnalysis:"Mettre \xE0 jour l'Analyse",adjustZoom:"Ajuster le Zoom",precision:"Pr\xE9cision",statistics:"Statistiques",visualization:"Visualisation",recording:"Enregistrement",configTitle:"Configuration du Guard",protectionPatterns:"Mod\xE8les de Protection",preferSpecificColor:"Prioriser une couleur sp\xE9cifique",excludeSpecificColors:"Ne pas r\xE9parer les couleurs sp\xE9cifiques",loadManagement:"Gestion des Charges",minLoadsToWait:"Minimum de charges:",pixelsPerBatch:"Pixels par lot",spendAllPixelsOnStart:"D\xE9penser tous les pixels au d\xE9marrage",waitTimes:"Temps d'Attente",useRandomTimes:"Utiliser des temps al\xE9atoires entre les lots",minTime:"Temps minimum (s)",maxTime:"Temps maximum (s)"},slave:{title:"WPlace Slave",initBot:"Initialiser Slave-BOT",startPainting:"Commencer",stopPainting:"Arr\xEAter",logs:"Logs",configuration:"Configuration",minimize:"R\xE9duire",pixelsPerBatch:"Pixels par lot",nextBatchIn:"Prochain lot dans : ",waitingInit:"En attente d'initialisation...",checkingColors:"\u{1F3A8} V\xE9rification des couleurs disponibles...",noColorsFound:"\u274C Couleurs non trouv\xE9es. Ouvrez la palette de couleurs sur le site.",colorsFound:"\u2705 {count} couleurs disponibles trouv\xE9es",initSuccess:"\u2705 Slave-BOT initialis\xE9 avec succ\xE8s",initError:"\u274C Erreur d'initialisation de Slave-BOT",noCoordsSet:"\u274C Coordonn\xE9es non d\xE9finies. Utilisez d'abord WPlace AutoBOT Image.",noCoordsData:"\u274C Donn\xE9es de coordonn\xE9es non disponibles. Configurez d'abord les coordonn\xE9es dans WPlace AutoBOT Image.",coordsLoaded:"\u2705 {count} coordonn\xE9es charg\xE9es depuis WPlace AutoBOT Image",coordsError:"\u274C Erreur de chargement des coordonn\xE9es : {error}",paintingStarted:"\u{1F3A8} Peinture commenc\xE9e",paintingStopped:"\u23F9\uFE0F Peinture arr\xEAt\xE9e",paintingPixel:"\u{1F58C}\uFE0F Peinture du pixel ({x}, {y}) couleur {color}",pixelPainted:"\u2705 Pixel peint avec succ\xE8s",pixelError:"\u274C Erreur de peinture du pixel : {error}",batchComplete:"\u2705 Lot termin\xE9 : {painted} sur {total} pixels peints",batchError:"\u274C Erreur d'ex\xE9cution du lot : {error}",allPixelsComplete:"\u{1F389} Tous les pixels termin\xE9s !",noCharges:"\u26A0\uFE0F Charges insuffisantes pour peindre",waitingForCharges:"\u23F3 En attente de charges...",charges:"Charges",totalPixels:"Total Pixels",paintedPixels:"Pixels Peints",remainingPixels:"Pixels Restants",currentBatch:"Lot Actuel",progress:"Progr\xE8s",estimatedTime:"Temps Estim\xE9 de Fin",autoInitializing:"\u{1F916} Initialisation automatique...",autoInitSuccess:"\u2705 Slave-BOT d\xE9marr\xE9 automatiquement",autoInitFailed:"\u26A0\uFE0F Impossible de d\xE9marrer automatiquement. Utilisez le bouton de d\xE9marrage manuel.",manualInitRequired:"\u{1F527} Initialisation manuelle requise",paletteDetected:"\u{1F3A8} Palette de couleurs d\xE9tect\xE9e",paletteNotFound:"\u{1F50D} Recherche de la palette de couleurs...",clickingPaintButton:"\u{1F446} Clic sur le bouton Paint...",paintButtonNotFound:"\u274C Bouton Paint non trouv\xE9",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"T\xE9l\xE9charger Logs",clearLogs:"Effacer Logs",closeLogs:"Fermer",configTitle:"Configuration Slave",loadManagement:"Gestion des Charges",minLoadsToWait:"Minimum de charges :",pixelsPerBatchConfig:"Pixels par lot",spendAllPixelsOnStart:"D\xE9penser tous les pixels au d\xE9marrage",waitTimes:"Temps d'Attente",useRandomTimes:"Utiliser des temps al\xE9atoires entre les lots",minTime:"Temps minimum (s)",maxTime:"Temps maximum (s)"}};var bt={launcher:{title:"WPlace AutoBOT",autoFarm:"\u{1F33E} \u0410\u0432\u0442\u043E-\u0424\u0430\u0440\u043C",autoImage:"\u{1F3A8} \u0410\u0432\u0442\u043E-\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435",autoGuard:"\u{1F6E1}\uFE0F \u0410\u0432\u0442\u043E-\u0417\u0430\u0449\u0438\u0442\u0430",autoSlave:"\u{1F517} Slave",selection:"\u0412\u044B\u0431\u0440\u0430\u043D\u043E",user:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C",charges:"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",backend:"\u0411\u044D\u043A\u0435\u043D\u0434",database:"\u0411\u0430\u0437\u0430 \u0434\u0430\u043D\u043D\u044B\u0445",uptime:"\u0412\u0440\u0435\u043C\u044F \u0440\u0430\u0431\u043E\u0442\u044B",close:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C",launch:"\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C",loading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430",executing:"\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435",downloading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0441\u043A\u0440\u0438\u043F\u0442\u0430...",chooseBot:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0431\u043E\u0442\u0430 \u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C",readyToLaunch:"\u0413\u043E\u0442\u043E\u0432\u043E \u043A \u0437\u0430\u043F\u0443\u0441\u043A\u0443",loadError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438",loadErrorMsg:"\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0431\u043E\u0442\u0430. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0438\u043B\u0438 \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437.",checking:"\u{1F504} \u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430...",online:"\u{1F7E2} \u041E\u043D\u043B\u0430\u0439\u043D",offline:"\u{1F534} \u041E\u0444\u043B\u0430\u0439\u043D",ok:"\u{1F7E2} \u041E\u041A",error:"\u{1F534} \u041E\u0448\u0438\u0431\u043A\u0430",unknown:"-",logWindow:"\u041B\u043E\u0433\u0438",logWindowTitle:"\u041B\u043E\u0433\u0438 - {botName}",downloadLogs:"\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u041B\u043E\u0433\u0438",clearLogs:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u041B\u043E\u0433\u0438",closeLogs:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C",localExecution:"\u041B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0441 \u043F\u043E\u043B\u043D\u044B\u043C \u0434\u043E\u0441\u0442\u0443\u043F\u043E\u043C \u043A \u0441\u0438\u0441\u0442\u0435\u043C\u0435 \u0442\u043E\u043A\u0435\u043D\u043E\u0432",botStarting:"\u0417\u0430\u043F\u0443\u0441\u043A \u0431\u043E\u0442\u0430..."},image:{title:"WPlace \u0410\u0432\u0442\u043E-\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435",initBot:"\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C Auto-BOT",uploadImage:"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435",resizeImage:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0440 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F",selectPosition:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u043C\u0435\u0441\u0442\u043E \u043D\u0430\u0447\u0430\u043B\u0430",startPainting:"\u041D\u0430\u0447\u0430\u0442\u044C \u0440\u0438\u0441\u043E\u0432\u0430\u0442\u044C",stopPainting:"\u041E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0440\u0438\u0441\u043E\u0432\u0430\u043D\u0438\u0435",saveProgress:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043F\u0440\u043E\u0433\u0440\u0435\u0441\u0441",loadProgress:"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u043F\u0440\u043E\u0433\u0440\u0435\u0441\u0441",checkingColors:"\u{1F50D} \u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0446\u0432\u0435\u0442\u043E\u0432...",noColorsFound:"\u274C \u041E\u0442\u043A\u0440\u043E\u0439\u0442\u0435 \u043F\u0430\u043B\u0438\u0442\u0440\u0443 \u0446\u0432\u0435\u0442\u043E\u0432 \u043D\u0430 \u0441\u0430\u0439\u0442\u0435 \u0438 \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430!",colorsFound:"\u2705 \u041D\u0430\u0439\u0434\u0435\u043D\u043E {count} \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0446\u0432\u0435\u0442\u043E\u0432",loadingImage:"\u{1F5BC}\uFE0F \u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F...",imageLoaded:"\u2705 \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043E \u0441 {count} \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u043C\u0438 \u043F\u0438\u043A\u0441\u0435\u043B\u044F\u043C\u0438",imageError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F",selectPositionAlert:"\u041D\u0430\u0440\u0438\u0441\u0443\u0439\u0442\u0435 \u0441\u0442\u0430\u0440\u0442\u043E\u0432\u044B\u0439 \u043F\u0438\u043A\u0441\u0435\u043B\u044C \u0432 \u0442\u043E\u043C \u043C\u0435\u0441\u0442\u0435, \u0433\u0434\u0435 \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0440\u0438\u0441\u0443\u043D\u043E\u043A \u043D\u0430\u0447\u0438\u043D\u0430\u043B\u0441\u044F!",waitingPosition:"\u{1F446} \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0441\u0442\u0430\u0440\u0442\u043E\u0432\u043E\u0433\u043E \u043F\u0438\u043A\u0441\u0435\u043B\u044F....",positionSet:"\u2705 \u041F\u043E\u0437\u0438\u0446\u0438\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u043E!",positionTimeout:"\u274C \u0422\u0430\u0439\u043C\u0430\u0443\u0442 \u0432\u044B\u0431\u043E\u0440\u0430 \u043F\u043E\u0437\u0438\u0446\u0438\u0438",positionDetected:"\u{1F3AF} \u041F\u043E\u0437\u0438\u0446\u0438\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u0430, \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430...",positionError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0432\u044B\u0431\u043E\u0440\u0430 \u043F\u043E\u0437\u0438\u0446\u0438\u0438, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437",startPaintingMsg:"\u{1F3A8} \u041D\u0430\u0447\u0430\u043B\u043E \u0440\u0438\u0441\u043E\u0432\u0430\u043D\u0438\u044F...",paintingProgress:"\u{1F9F1} \u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441: {painted} \u0438\u0437 {total} \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439...",noCharges:"\u231B \u041D\u0435\u0442 \u0437\u0430\u0440\u044F\u0434\u043E\u0432. \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 {time}...",paintingStopped:"\u23F9\uFE0F \u0420\u0438\u0441\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C",paintingComplete:"\u2705 \u0420\u0438\u0441\u043E\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E! {count} \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439 \u043D\u0430\u0440\u0438\u0441\u043E\u0432\u0430\u043D\u043E.",paintingError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435 \u0440\u0438\u0441\u043E\u0432\u0430\u043D\u0438\u044F",missingRequirements:"\u274C \u0421\u043F\u0435\u0440\u0432\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0438 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043C\u0435\u0441\u0442\u043E \u043D\u0430\u0447\u0430\u043B\u0430",progress:"\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441",userName:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C",pixels:"\u041F\u0438\u043A\u0441\u0435\u043B\u0438",charges:"\u0417\u0430\u0440\u044F\u0434\u044B",estimatedTime:"\u041F\u0440\u0435\u0434\u043F\u043E\u043B\u043E\u0436\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F",initMessage:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \xAB\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C Auto-BOT\xBB, \u0447\u0442\u043E\u0431\u044B \u043D\u0430\u0447\u0430\u0442\u044C",waitingInit:"\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438...",resizeSuccess:"\u2705 \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E \u0434\u043E {width}x{height}",paintingPaused:"\u23F8\uFE0F \u0420\u0438\u0441\u043E\u0432\u0430\u043D\u0438\u0435 \u043F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u043D\u0430 \u043F\u043E\u0437\u0438\u0446\u0438\u0438 X: {x}, Y: {y}",pixelsPerBatch:"\u041F\u0438\u043A\u0441\u0435\u043B\u0435\u0439 \u0432 \u043F\u0440\u043E\u0445\u043E\u0434\u0435",batchSize:"\u0420\u0430\u0437\u043C\u0435\u0440 \u043F\u0440\u043E\u0445\u043E\u0434\u0430",nextBatchTime:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u043F\u0440\u043E\u0445\u043E\u0434 \u0447\u0435\u0440\u0435\u0437",useAllCharges:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0437\u0430\u0440\u044F\u0434\u044B",showOverlay:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0430\u043B\u043E\u0436\u0435\u043D\u0438\u0435",maxCharges:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B-\u0432\u043E \u0437\u0430\u0440\u044F\u0434\u043E\u0432 \u0437\u0430 \u043F\u0440\u043E\u0445\u043E\u0434",waitingForCharges:"\u23F3 \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0437\u0430\u0440\u044F\u0434\u043E\u0432: {current} \u0438\u0437 {needed}",timeRemaining:"\u0412\u0440\u0435\u043C\u0435\u043D\u0438 \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C",cooldownWaiting:"\u23F3 \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 {time} \u0434\u043B\u044F \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0438\u044F...",progressSaved:"\u2705 \u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D \u043A\u0430\u043A {filename}",progressLoaded:"\u2705 \u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D: {painted} \u0438\u0437 {total} \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439 \u043D\u0430\u0440\u0438\u0441\u043E\u0432\u0430\u043D\u043E",progressLoadError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u043F\u0440\u043E\u0433\u0440\u0435\u0441\u0441\u0430: {error}",progressSaveError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0433\u0440\u0435\u0441\u0441\u0430: {error}",confirmSaveProgress:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u043F\u0440\u043E\u0433\u0440\u0435\u0441\u0441 \u043F\u0435\u0440\u0435\u0434 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u043E\u0439?",saveProgressTitle:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043F\u0440\u043E\u0433\u0440\u0435\u0441\u0441",discardProgress:"\u041D\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043F\u0440\u043E\u0433\u0440\u0435\u0441\u0441",cancel:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C",minimize:"\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C",width:"\u0428\u0438\u0440\u0438\u043D\u0430",height:"\u0412\u044B\u0441\u043E\u0442\u0430",keepAspect:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0441\u043E\u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u0441\u0442\u043E\u0440\u043E\u043D",apply:"\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C",overlayOn:"\u041D\u0430\u043B\u043E\u0436\u0435\u043D\u0438\u0435: \u0412\u041A\u041B",overlayOff:"\u041D\u0430\u043B\u043E\u0436\u0435\u043D\u0438\u0435: \u0412\u042B\u041A\u041B",passCompleted:"\u2705 \u041F\u0440\u043E\u0446\u0435\u0441\u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D: {painted} \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439 \u043D\u0430\u0440\u0438\u0441\u043E\u0432\u0430\u043D\u043E | \u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441: {percent}% ({current} \u0438\u0437 {total})",waitingChargesRegen:"\u23F3 \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0432\u043E\u0441\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0437\u0430\u0440\u044F\u0434\u0430: {current} \u0438\u0437 {needed} - \u0412\u0440\u0435\u043C\u044F: {time}",waitingChargesCountdown:"\u23F3 \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0437\u0430\u0440\u044F\u0434\u043E\u0432: {current} \u0438\u0437 {needed} - \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F: {time}",autoInitializing:"\u{1F916} \u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F...",autoInitSuccess:"\u2705 \u0411\u043E\u0442 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u043B\u0441\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438",autoInitFailed:"\u26A0\uFE0F \u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u0437\u0430\u043F\u0443\u0441\u043A. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043A\u043D\u043E\u043F\u043A\u0443 \u0440\u0443\u0447\u043D\u043E\u0433\u043E \u0437\u0430\u043F\u0443\u0441\u043A\u0430.",paletteDetected:"\u{1F3A8} \u0426\u0432\u0435\u0442\u043E\u0432\u0430\u044F \u043F\u0430\u043B\u0438\u0442\u0440\u0430 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u0430",paletteNotFound:"\u{1F50D} \u041F\u043E\u0438\u0441\u043A \u0446\u0432\u0435\u0442\u043E\u0432\u043E\u0439 \u043F\u0430\u043B\u0438\u0442\u0440\u044B...",clickingPaintButton:"\u{1F446} \u041D\u0430\u0436\u0430\u0442\u0438\u0435 \u043A\u043D\u043E\u043F\u043A\u0438 \xABPaint\xBB...",paintButtonNotFound:"\u274C \u041A\u043D\u043E\u043F\u043A\u0430 \xABPaint\xBB \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430",manualInitRequired:"\u{1F527} \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0440\u0443\u0447\u043D\u0430\u044F \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F",retryAttempt:"\u{1F504} \u041F\u043E\u0432\u0442\u043E\u0440\u043D\u0430\u044F \u043F\u043E\u043F\u044B\u0442\u043A\u0430 {attempt} \u0438\u0437 {maxAttempts} \u0447\u0435\u0440\u0435\u0437 {delay}s...",retryError:"\u{1F4A5} \u041E\u0448\u0438\u0431\u043A\u0430 \u0432 \u043F\u043E\u043F\u044B\u0442\u043A\u0435 {attempt} \u0438\u0437 {maxAttempts}, \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 {delay}s...",retryFailed:"\u274C \u041F\u0440\u043E\u0432\u0430\u043B\u0435\u043D\u043E \u0441\u043F\u0443\u0441\u0442\u044F {maxAttempts} \u043F\u043E\u043F\u044B\u0442\u043E\u043A. \u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0438\u0435 \u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C \u043F\u0440\u043E\u0445\u043E\u0434\u0435...",networkError:"\u{1F310} \u041E\u0448\u0438\u0431\u043A\u0430 \u0441\u0435\u0442\u0438. \u041F\u043E\u0432\u0442\u043E\u0440\u043D\u0430\u044F \u043F\u043E\u043F\u044B\u0442\u043A\u0430...",serverError:"\u{1F525} \u041E\u0448\u0438\u0431\u043A\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041F\u043E\u0432\u0442\u043E\u0440\u043D\u0430\u044F \u043F\u043E\u043F\u044B\u0442\u043A\u0430...",timeoutError:"\u23F0 \u0422\u0430\u0439\u043C-\u0430\u0443\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u0430\u044F \u043F\u043E\u043F\u044B\u0442\u043A\u0430...",saveProgressBtn:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043F\u0440\u043E\u0433\u0440\u0435\u0441\u0441",guardJsonBtn:"Guard JSON",resizeWindowTitle:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0440 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F",original:"\u041E\u0440\u0438\u0433\u0438\u043D\u0430\u043B",labTolerance:"\u0414\u043E\u043F\u0443\u0441\u043A LAB",maintainProportion:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043F\u0440\u043E\u043F\u043E\u0440\u0446\u0438\u0438",skipColor:"\u041F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u0446\u0432\u0435\u0442",skipColorEnabled:"\u041F\u0440\u043E\u043F\u0443\u0441\u043A\u0430\u0442\u044C \u0446\u0432\u0435\u0442\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u044E\u0442 \u0442\u043E\u0447\u043D\u043E",similarityThreshold:"\u041F\u043E\u0440\u043E\u0433 \u0441\u0445\u043E\u0436\u0435\u0441\u0442\u0438",skipColorDescription:"\u0411\u0443\u0434\u0443\u0442 \u0437\u0430\u043A\u0440\u0430\u0448\u0435\u043D\u044B \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E\u0447\u043D\u044B\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u044F \u0446\u0432\u0435\u0442\u043E\u0432 (100% \u0441\u0445\u043E\u0436\u0435\u0441\u0442\u044C).",applyResize:"\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C",cancelResize:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C",patternSnake:"\u0417\u043C\u0435\u0439\u043A\u0430 (\u0437\u0438\u0433\u0437\u0430\u0433)",patternDiagonalSweep:"\u0414\u0438\u0430\u0433\u043E\u043D\u0430\u043B\u044C\u043D\u0430\u044F \u043F\u0440\u043E\u0442\u044F\u0436\u043A\u0430",patternBorders:"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0433\u0440\u0430\u043D\u0438\u0446\u044B",patternCenter:"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0446\u0435\u043D\u0442\u0440",patternQuadrants:"\u041A\u0432\u0430\u0434\u0440\u0430\u043D\u0442\u044B",patternBiasedRandom:"\u0421\u043C\u0435\u0449\u0435\u043D\u043D\u044B\u0439 \u0441\u043B\u0443\u0447\u0430\u0439\u043D\u044B\u0439 (\u0433\u0440\u0430\u043D\u0438\u0446\u044B)",patternClusters:"\u041A\u043B\u0430\u0441\u0442\u0435\u0440\u044B",patternProximity:"\u0411\u043B\u0438\u0437\u043E\u0441\u0442\u044C",patternSweep:"\u041F\u0440\u043E\u0442\u044F\u0436\u043A\u0430 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u044F\u043C",patternPriority:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 (\u0441\u043C\u0435\u0448\u0430\u043D\u043D\u044B\u0439)",patternAnchorPoints:"\u041E\u043F\u043E\u0440\u043D\u044B\u0435 \u0442\u043E\u0447\u043A\u0438",patternSpiralCw:"\u0421\u043F\u0438\u0440\u0430\u043B\u044C (\u043F\u043E \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u0435\u043B\u043A\u0435)",patternSpiralCcw:"\u0421\u043F\u0438\u0440\u0430\u043B\u044C (\u043F\u0440\u043E\u0442\u0438\u0432 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u0435\u043B\u043A\u0438)",noProgressToSave:"\u041D\u0435\u0442 \u043F\u0440\u043E\u0433\u0440\u0435\u0441\u0441\u0430 \u0434\u043B\u044F \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F",progressSaveSuccess:"\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D \u043A\u0430\u043A {filename}",progressLoadSuccess:"\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D: {painted}/{total} \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439 \u043D\u0430\u0440\u0438\u0441\u043E\u0432\u0430\u043D\u043E",invalidProgressFile:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u0430\u0439\u043B \u043F\u0440\u043E\u0433\u0440\u0435\u0441\u0441\u0430",missingFields:"\u041E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u043F\u043E\u043B\u044F: {fields}",guardDialogTitle:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C Guard JSON",guardDialogMessage:"\u0425\u043E\u0442\u0438\u0442\u0435 \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0444\u0430\u0439\u043B Guard JSON \u0441 \u0442\u0435\u043A\u0443\u0449\u0438\u043C\u0438 \u0434\u0430\u043D\u043D\u044B\u043C\u0438?",guardDialogInfo:`\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435: {name}
\u0420\u0430\u0437\u043C\u0435\u0440\u044B: {width}x{height}
\u041F\u0438\u043A\u0441\u0435\u043B\u0438: {pixels}`,generateGuard:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C Guard",guardJsonInvalidStructure:"\u274C \u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430 \u0434\u043B\u044F Guard JSON. \u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u043E.",guardJsonInvalidMessage:"\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430 Guard JSON. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430 \u043F\u043E\u0441\u043B\u0435 \u0432\u044B\u0431\u043E\u0440\u0430 \u043F\u043E\u0437\u0438\u0446\u0438\u0438.",guardJsonSaveSuccess:"\u2705 Guard JSON \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D: {filename}",guardJsonSaveError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F Guard JSON: {error}",notificationInfo:"\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F",notificationSuccess:"\u0423\u0441\u043F\u0435\u0445",notificationWarning:"\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435",notificationError:"\u041E\u0448\u0438\u0431\u043A\u0430",paintPattern:"\u{1F4D0} \u0428\u0430\u0431\u043B\u043E\u043D \u0440\u0438\u0441\u043E\u0432\u0430\u043D\u0438\u044F",patternLinearStart:"\u041B\u0438\u043D\u0435\u0439\u043D\u044B\u0439 (\u043D\u0430\u0447\u0430\u043B\u043E)",patternLinearEnd:"\u041B\u0438\u043D\u0435\u0439\u043D\u044B\u0439 (\u043A\u043E\u043D\u0435\u0446)",patternRandom:"\u0421\u043B\u0443\u0447\u0430\u0439\u043D\u044B\u0439",patternCenterOut:"\u0418\u0437 \u0446\u0435\u043D\u0442\u0440\u0430 \u043D\u0430\u0440\u0443\u0436\u0443",patternCornersFirst:"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0443\u0433\u043B\u044B",patternSpiral:"\u0421\u043F\u0438\u0440\u0430\u043B\u044C",logWindow:"\u041B\u043E\u0433\u0438",logWindowTitle:"\u041B\u043E\u0433\u0438 - {botName}",downloadLogs:"\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u041B\u043E\u0433\u0438",clearLogs:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u041B\u043E\u0433\u0438",closeLogs:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C",userInfo:"\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435",imageProgress:"\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F",availableColors:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0446\u0432\u0435\u0442\u0430",noImageLoaded:"\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043E",cooldown:"\u0412\u0440\u0435\u043C\u044F \u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F",totalColors:"\u041E\u0431\u0449\u0435\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0446\u0432\u0435\u0442\u043E\u0432",colorPalette:"\u0426\u0432\u0435\u0442\u043E\u0432\u0430\u044F \u043F\u0430\u043B\u0438\u0442\u0440\u0430",showAllColors:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0441\u0435 \u0446\u0432\u0435\u0442\u0430 (\u0432\u043A\u043B\u044E\u0447\u0430\u044F \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435)",selectAllColors:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435",unselectAllColors:"\u0421\u043D\u044F\u0442\u044C \u0432\u044B\u0431\u043E\u0440 \u0441\u043E \u0432\u0441\u0435\u0445",noAvailable:"\u041D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E",colorSelected:"\u0426\u0432\u0435\u0442 \u0432\u044B\u0431\u0440\u0430\u043D",statsUpdated:"\u2705 \u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430: {count} \u0446\u0432\u0435\u0442\u043E\u0432 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E"},farm:{title:"\u{1F9D1}\u200D\u{1F33E} WPlace Farm",start:"\u041D\u0430\u0447\u0430\u0442\u044C",stop:"\u041E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C",stopped:"\u0411\u043E\u0442 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D",calibrate:"\u041A\u0430\u043B\u0438\u0431\u0440\u043E\u0432\u0430\u0442\u044C",paintOnce:"\u0415\u0434\u0438\u043D\u043E\u0440\u0430\u0437\u043E\u0432\u043E",checkingStatus:"\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0430...",configuration:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F",delay:"\u0417\u0430\u0434\u0435\u0440\u0436\u043A\u0430 (\u043C\u0441)",pixelsPerBatch:"\u041F\u0438\u043A\u0441\u0435\u043B\u0435\u0439 \u0437\u0430 \u043F\u0440\u043E\u0445\u043E\u0434",minCharges:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B-\u0432\u043E",colorMode:"\u0420\u0435\u0436\u0438\u043C \u0446\u0432\u0435\u0442\u043E\u0432",random:"\u0421\u043B\u0443\u0447\u0430\u0439\u043D\u044B\u0439",fixed:"\u0424\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439",range:"\u0414\u0438\u0430\u043F\u0430\u0437\u043E\u043D",fixedColor:"\u0424\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0446\u0432\u0435\u0442",advanced:"\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0435",tileX:"\u041F\u043B\u0438\u0442\u043A\u0430 X",tileY:"\u041F\u043B\u0438\u0442\u043A\u0430 Y",customPalette:"\u0421\u0432\u043E\u044F \u043F\u0430\u043B\u0438\u0442\u0440\u0430",paletteExample:"\u043F\u0440\u0438\u043C\u0435\u0440: #FF0000,#00FF00,#0000FF",capture:"\u0417\u0430\u0445\u0432\u0430\u0442",painted:"\u0417\u0430\u043A\u0440\u0430\u0448\u0435\u043D\u043E",charges:"\u0417\u0430\u0440\u044F\u0434\u044B",retries:"\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u044B\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0438",position:"\u041F\u043E\u0437\u0438\u0446\u0438\u044F",tile:"\u041F\u043B\u0438\u0442\u043A\u0430",configSaved:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0430",configLoaded:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u0430",configReset:"\u0421\u0431\u0440\u043E\u0441 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438",captureInstructions:"\u041D\u0430\u0440\u0438\u0441\u0443\u0439\u0442\u0435 \u043F\u0438\u043A\u0441\u0435\u043B\u044C \u0432\u0440\u0443\u0447\u043D\u0443\u044E \u0434\u043B\u044F \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u043A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442...",backendOnline:"\u0411\u044D\u043A\u044D\u043D\u0434 \u041E\u043D\u043B\u0430\u0439\u043D",backendOffline:"\u0411\u044D\u043A\u044D\u043D\u0434 \u041E\u0444\u043B\u0430\u0439\u043D",startingBot:"\u0417\u0430\u043F\u0443\u0441\u043A \u0431\u043E\u0442\u0430...",stoppingBot:"\u041E\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0430 \u0431\u043E\u0442\u0430...",calibrating:"\u041A\u0430\u043B\u0438\u0431\u0440\u043E\u0432\u043A\u0430...",alreadyRunning:"\u0410\u0432\u0442\u043E-\u0424\u0430\u0440\u043C \u0443\u0436\u0435 \u0437\u0430\u043F\u0443\u0449\u0435\u043D",imageRunningWarning:"\u0410\u0432\u0442\u043E-\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0443\u0449\u0435\u043D\u043E. \u0417\u0430\u043A\u0440\u043E\u0439\u0442\u0435 \u0435\u0433\u043E \u043F\u0435\u0440\u0435\u0434 \u0437\u0430\u043F\u0443\u0441\u043A\u043E\u043C \u0410\u0432\u0442\u043E-\u0424\u0430\u0440\u043C\u0430.",selectPositionAlert:"\u{1F3AF} \u041D\u0430\u0440\u0438\u0441\u0443\u0439\u0442\u0435 \u043F\u0438\u043A\u0441\u0435\u043B\u044C \u0432 \u041F\u0423\u0421\u0422\u041E\u0419 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u043A\u0430\u0440\u0442\u044B, \u0447\u0442\u043E\u0431\u044B \u043E\u0431\u043E\u0437\u043D\u0430\u0447\u0438\u0442\u044C \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u0444\u0430\u0440\u043C\u0430.",waitingPosition:"\u{1F446} \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0441\u0442\u0430\u0440\u0442\u043E\u0432\u043E\u0433\u043E \u043F\u0438\u043A\u0441\u0435\u043B\u044F....",positionSet:"\u2705 \u0417\u043E\u043D\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430!",positionTimeout:"\u274C \u0422\u0430\u0439\u043C\u0430\u0443\u0442 \u0432\u044B\u0431\u043E\u0440\u0430 \u0437\u043E\u043D\u044B",missingPosition:"\u274C \u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u043E\u043D\u0443 \u0441\u043D\u0430\u0447\u0430\u043B\u0430, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F '\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0437\u043E\u043D\u0443'",farmRadius:"\u0420\u0430\u0434\u0438\u0443\u0441 \u0444\u0430\u0440\u043C\u0430",positionInfo:"\u0422\u0435\u043A\u0443\u0449\u0430\u044F \u0437\u043E\u043D\u0430",farmingInRadius:"\u{1F33E} \u0424\u0430\u0440\u043C \u0432 \u0440\u0430\u0434\u0438\u0443\u0441\u0435 {radius}px \u043E\u0442 ({x},{y})",selectEmptyArea:"\u26A0\uFE0F \u0412\u0410\u0416\u041D\u041E: \u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u041F\u0423\u0421\u0422\u0423\u042E \u043E\u0431\u043B\u0430\u0441\u0442\u044C, \u0447\u0442\u043E\u0431\u044B \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044C \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u043E\u0432.",noPosition:"\u041D\u0435\u0442 \u0437\u043E\u043D\u044B",currentZone:"\u0417\u043E\u043D\u0430: ({x},{y})",autoSelectPosition:"\u{1F3AF} \u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u043E\u043D\u0443. \u041D\u0430\u0440\u0438\u0441\u0443\u0439\u0442\u0435 \u043F\u0438\u043A\u0441\u0435\u043B\u044C \u043D\u0430 \u043A\u0430\u0440\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043E\u0431\u043E\u0437\u043D\u0430\u0447\u0438\u0442\u044C \u0437\u043E\u043D\u0443 \u0444\u0430\u0440\u043C\u0430.",logWindow:"\u041B\u043E\u0433\u0438",logWindowTitle:"\u041B\u043E\u0433\u0438 - {botName}",downloadLogs:"\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u041B\u043E\u0433\u0438",clearLogs:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u041B\u043E\u0433\u0438",closeLogs:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C",ready:"\u0413\u043E\u0442\u043E\u0432",once:"\u0415\u0434\u0438\u043D\u043E\u0440\u0430\u0437\u043E\u0432\u043E",recapture:"\u041F\u0435\u0440\u0435\u0437\u0430\u0445\u0432\u0430\u0442",selectPosition:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C",stats:{painted:"\u0417\u0430\u043A\u0440\u0430\u0448\u0435\u043D\u043E",charges:"\u0417\u0430\u0440\u044F\u0434\u044B",droplets:"\u041A\u0430\u043F\u043B\u0438",user:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C",retries:"\u041F\u043E\u043F\u044B\u0442\u043A\u0438"},config:{minCharges:"\u041C\u0438\u043D\u0438\u043C\u0443\u043C \u0437\u0430\u0440\u044F\u0434\u043E\u0432",delay:"\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 (\u0441\u0435\u043A)",pixelsPerBatch:"\u041F\u0438\u043A\u0441\u0435\u043B\u0435\u0439 \u0437\u0430 \u043F\u0440\u043E\u0445\u043E\u0434"},color:{fixed:"\u0424\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439",range:"\u0414\u0438\u0430\u043F\u0430\u0437\u043E\u043D",random:"\u0421\u043B\u0443\u0447\u0430\u0439\u043D\u044B\u0439",selected:"\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439 \u0446\u0432\u0435\u0442",min:"\u041C\u0438\u043D",max:"\u041C\u0430\u043A\u0441"},autobuy:{title:"\u0410\u0432\u0442\u043E\u043F\u043E\u043A\u0443\u043F\u043A\u0430 (+5 \u0437\u0430\u0440\u044F\u0434\u043E\u0432)",hint:"\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u0440\u0438 \u2265 500 \u043A\u0430\u043F\u0435\u043B\u044C"},buyCharges:"\u041A\u0443\u043F\u0438\u0442\u044C +5 \u0437\u0430\u0440\u044F\u0434\u043E\u0432",buying:"\u041F\u043E\u043A\u0443\u043F\u043A\u0430...",buyOk:"\u041F\u043E\u043A\u0443\u043F\u043A\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0441\u0435\u0441\u0441\u0438\u044E.",buyFail:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043A\u0443\u043F\u0438\u0442\u044C"},common:{yes:"\u0414\u0430",no:"\u041D\u0435\u0442",ok:"\u041E\u041A",cancel:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C",close:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C",save:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C",load:"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C",delete:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",edit:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C",start:"\u041D\u0430\u0447\u0430\u0442\u044C",stop:"\u0417\u0430\u043A\u043E\u043D\u0447\u0438\u0442\u044C",pause:"\u041F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C",resume:"\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C",reset:"\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C",settings:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438",help:"\u041F\u043E\u043C\u043E\u0449\u044C",about:"\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F",language:"\u042F\u0437\u044B\u043A",loading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430...",error:"\u041E\u0448\u0438\u0431\u043A\u0430",success:"\u0423\u0441\u043F\u0435\u0445",warning:"\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435",info:"\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F",languageChanged:"\u042F\u0437\u044B\u043A \u0438\u0437\u043C\u0435\u043D\u0435\u043D \u043D\u0430 {language}"},guard:{title:"WPlace \u0410\u0432\u0442\u043E-\u0417\u0430\u0449\u0438\u0442\u0430",initBot:"\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C Guard-BOT",selectArea:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u041E\u0431\u043B\u0430\u0441\u0442\u044C",save:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C",loadFile:"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0444\u0430\u0439\u043B",reposition:"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C",analyzeArea:"\u0410\u043D\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043E\u0431\u043B\u0430\u0441\u0442\u044C",logs:"\u041B\u043E\u0433\u0438",watcher:"\u041D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u044C",configuration:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F",startErase:"\u041D\u0430\u0447\u0430\u0442\u044C \u0441\u0442\u0438\u0440\u0430\u043D\u0438\u0435",stopWatcher:"\u041E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u044F",minimize:"\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C",expand:"\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C",nextBatchIn:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u043F\u0430\u0440\u0442\u0438\u044F \u0447\u0435\u0440\u0435\u0437: ",captureArea:"\u0417\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044C \u041E\u0431\u043B\u0430\u0441\u0442\u044C",startProtection:"\u041D\u0430\u0447\u0430\u0442\u044C",stopProtection:"\u041E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C",protectedPixels:"\u0417\u0430\u0449\u0438\u0449\u0435\u043D\u043D\u044B\u0435 \u041F\u0438\u043A\u0441\u0435\u043B\u0438",upperLeft:"\u0412\u0435\u0440\u0445\u043D\u0438\u0439 \u041B\u0435\u0432\u044B\u0439 \u0423\u0433\u043E\u043B",lowerRight:"\u041D\u0438\u0436\u043D\u0438\u0439 \u041F\u0440\u0430\u0432\u044B\u0439 \u0423\u0433\u043E\u043B",detectedChanges:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0435 \u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",repairedPixels:"\u0412\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u041F\u0438\u043A\u0441\u0435\u043B\u0438",charges:"\u0417\u0430\u0440\u044F\u0434\u044B",waitingInit:"\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438...",checkingColors:"\u{1F3A8} \u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0446\u0432\u0435\u0442\u043E\u0432...",noColorsFound:"\u274C \u0426\u0432\u0435\u0442\u0430 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B. \u041E\u0442\u043A\u0440\u043E\u0439\u0442\u0435 \u043F\u0430\u043B\u0438\u0442\u0440\u0443 \u0446\u0432\u0435\u0442\u043E\u0432 \u043D\u0430 \u0441\u0430\u0439\u0442\u0435.",colorsFound:"\u2705 \u041D\u0430\u0439\u0434\u0435\u043D\u043E {count} \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0446\u0432\u0435\u0442\u043E\u0432",initSuccess:"\u2705 Guard-BOT \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D",initError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 Guard-BOT",invalidCoords:"\u274C \u041D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u043A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442\u044B",invalidArea:"\u274C \u041E\u0431\u043B\u0430\u0441\u0442\u044C \u0434\u043E\u043B\u0436\u043D\u0430 \u0438\u043C\u0435\u0442\u044C \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u043B\u0435\u0432\u044B\u0439 \u0443\u0433\u043E\u043B \u043C\u0435\u043D\u044C\u0448\u0435 \u043D\u0438\u0436\u043D\u0435\u0433\u043E \u043F\u0440\u0430\u0432\u043E\u0433\u043E \u0443\u0433\u043B\u0430",areaTooLarge:"\u274C \u041E\u0431\u043B\u0430\u0441\u0442\u044C \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u0430\u044F: {size} \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439 (\u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C: {max})",capturingArea:"\u{1F4F8} \u0417\u0430\u0445\u0432\u0430\u0442 \u043E\u0431\u043B\u0430\u0441\u0442\u0438...",areaCaptured:"\u2705 \u041E\u0431\u043B\u0430\u0441\u0442\u044C \u0437\u0430\u0445\u0432\u0430\u0447\u0435\u043D\u0430: {count} \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439",captureError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u043E\u0431\u043B\u0430\u0441\u0442\u0438: {error}",captureFirst:"\u274C \u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u0435 \u043E\u0431\u043B\u0430\u0441\u0442\u044C",noChanges:"\u2705 \u041E\u0431\u043B\u0430\u0441\u0442\u044C - \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u043D\u0435 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043E",changesDetected:"\u{1F6A8} {count} \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043E \u0432 \u043E\u0431\u043B\u0430\u0441\u0442\u0438",repairing:"\u{1F6E0}\uFE0F \u0412\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 {count} \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0445 \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439...",repairedSuccess:"\u2705 \u0423\u0441\u043F\u0435\u0448\u043D\u043E \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E {count} \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439",repairError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439: {error}",noCharges:"\u26A0\uFE0F \u041D\u0435\u0434\u043E\u0441\u0442\u0430\u0442\u043E\u0447\u043D\u043E \u0437\u0430\u0440\u044F\u0434\u043E\u0432 \u0434\u043B\u044F \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439",checkingChanges:"\u{1F50D} \u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u0432 \u043E\u0431\u043B\u0430\u0441\u0442\u0438...",errorChecking:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439: {error}",guardActive:"\u{1F6E1}\uFE0F \u0421\u0442\u0440\u0430\u0436 \u0430\u043A\u0442\u0438\u0432\u0435\u043D - \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u043F\u043E\u0434 \u043D\u0430\u0431\u043B\u044E\u0434\u0435\u043D\u0438\u0435\u043C",lastCheck:"\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430: {time}",nextCheck:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0447\u0435\u0440\u0435\u0437: {time}\u0441",autoInitializing:"\u{1F916} \u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F...",autoInitSuccess:"\u2705 Guard-BOT \u0437\u0430\u043F\u0443\u0449\u0435\u043D \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438",autoInitFailed:"\u26A0\uFE0F \u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043A\u043D\u043E\u043F\u043A\u0443 \u0440\u0443\u0447\u043D\u043E\u0433\u043E \u0437\u0430\u043F\u0443\u0441\u043A\u0430.",manualInitRequired:"\u{1F527} \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0440\u0443\u0447\u043D\u0430\u044F \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F",paletteDetected:"\u{1F3A8} \u0426\u0432\u0435\u0442\u043E\u0432\u0430\u044F \u043F\u0430\u043B\u0438\u0442\u0440\u0430 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u0430",paletteNotFound:"\u{1F50D} \u041F\u043E\u0438\u0441\u043A \u0446\u0432\u0435\u0442\u043E\u0432\u043E\u0439 \u043F\u0430\u043B\u0438\u0442\u0440\u044B...",clickingPaintButton:"\u{1F446} \u041D\u0430\u0436\u0430\u0442\u0438\u0435 \u043A\u043D\u043E\u043F\u043A\u0438 \xABPaint\xBB...",paintButtonNotFound:"\u274C \u041A\u043D\u043E\u043F\u043A\u0430 \xABPaint\xBB \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430",protectionStopped:"\u23F9\uFE0F \u0417\u0430\u0449\u0438\u0442\u0430 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430",selectUpperLeft:"\u{1F3AF} \u041D\u0430\u0440\u0438\u0441\u0443\u0439\u0442\u0435 \u043F\u0438\u043A\u0441\u0435\u043B\u044C \u0432 \u0412\u0415\u0420\u0425\u041D\u0415\u041C \u041B\u0415\u0412\u041E\u041C \u0443\u0433\u043B\u0443 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u0434\u043B\u044F \u043D\u0430\u0431\u043B\u044E\u0434\u0435\u043D\u0438\u044F",selectLowerRight:"\u{1F3AF} \u0422\u0435\u043F\u0435\u0440\u044C \u043D\u0430\u0440\u0438\u0441\u0443\u0439\u0442\u0435 \u043F\u0438\u043A\u0441\u0435\u043B\u044C \u0432 \u041D\u0418\u0416\u041D\u0415\u041C \u041F\u0420\u0410\u0412\u041E\u041C \u0443\u0433\u043B\u0443 \u043E\u0431\u043B\u0430\u0441\u0442\u0438",waitingUpperLeft:"\u{1F446} \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0432\u044B\u0431\u043E\u0440\u0430 \u0432\u0435\u0440\u0445\u043D\u0435\u0433\u043E \u043B\u0435\u0432\u043E\u0433\u043E \u0443\u0433\u043B\u0430...",waitingLowerRight:"\u{1F446} \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0432\u044B\u0431\u043E\u0440\u0430 \u043D\u0438\u0436\u043D\u0435\u0433\u043E \u043F\u0440\u0430\u0432\u043E\u0433\u043E \u0443\u0433\u043B\u0430...",upperLeftCaptured:"\u2705 \u0412\u0435\u0440\u0445\u043D\u0438\u0439 \u043B\u0435\u0432\u044B\u0439 \u0443\u0433\u043E\u043B \u0437\u0430\u0445\u0432\u0430\u0447\u0435\u043D: ({x}, {y})",lowerRightCaptured:"\u2705 \u041D\u0438\u0436\u043D\u0438\u0439 \u043F\u0440\u0430\u0432\u044B\u0439 \u0443\u0433\u043E\u043B \u0437\u0430\u0445\u0432\u0430\u0447\u0435\u043D: ({x}, {y})",selectionTimeout:"\u274C \u0422\u0430\u0439\u043C-\u0430\u0443\u0442 \u0432\u044B\u0431\u043E\u0440\u0430",selectionError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0432\u044B\u0431\u043E\u0440\u0430, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430",logWindow:"\u041B\u043E\u0433\u0438",logWindowTitle:"\u041B\u043E\u0433\u0438 - {botName}",downloadLogs:"\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u041B\u043E\u0433\u0438",clearLogs:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u041B\u043E\u0433\u0438",closeLogs:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C",analysisTitle:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0420\u0430\u0437\u043B\u0438\u0447\u0438\u0439 - JSON vs \u0422\u0435\u043A\u0443\u0449\u0438\u0439 Canvas",correctPixels:"\u041F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0435 \u041F\u0438\u043A\u0441\u0435\u043B\u0438",incorrectPixels:"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0435 \u041F\u0438\u043A\u0441\u0435\u043B\u0438",missingPixels:"\u041E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u041F\u0438\u043A\u0441\u0435\u043B\u0438",showCorrect:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u041F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0435",showIncorrect:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0435",showMissing:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u041E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435",autoRefresh:"\u0410\u0432\u0442\u043E-\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435",zoomAdjusted:"\u041C\u0430\u0441\u0448\u0442\u0430\u0431 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D \u043D\u0430",autoRefreshEnabled:"\u0410\u0432\u0442\u043E-\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u043A\u0430\u0436\u0434\u044B\u0435",autoRefreshDisabled:"\u0410\u0432\u0442\u043E-\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u043E",autoRefreshIntervalUpdated:"\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u0430\u0432\u0442\u043E-\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D \u0434\u043E",visualizationUpdated:"\u0412\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430",noAreaOrPixels:"\u041D\u0435\u0442 \u0437\u0430\u0449\u0438\u0449\u0435\u043D\u043D\u043E\u0439 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u0438\u043B\u0438 \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439 \u0434\u043B\u044F \u0430\u043D\u0430\u043B\u0438\u0437\u0430",noColorsDetected:"\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0438\u0442\u044C \u0446\u0432\u0435\u0442\u0430. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u043F\u0430\u043B\u0438\u0442\u0440\u0430 \u043E\u0442\u043A\u0440\u044B\u0442\u0430.",sessionRecordingStarted:"\u0417\u0430\u043F\u0438\u0441\u044C \u0441\u0435\u0441\u0441\u0438\u0438 \u043D\u0430\u0447\u0430\u0442\u0430 \u0441 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u043C \u0430\u0432\u0442\u043E-\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043C",sessionRecordingStopped:"\u0417\u0430\u043F\u0438\u0441\u044C \u0441\u0435\u0441\u0441\u0438\u0438 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430",noSessionData:"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0435\u0441\u0441\u0438\u0438 \u0434\u043B\u044F \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438",sessionDataDownloaded:"\u0414\u0430\u043D\u043D\u044B\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u044B",snapshotCaptureError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F",recordSession:"\u0417\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0441\u0435\u0441\u0441\u0438\u044E",snapshot:"\u0421\u043D\u0438\u043C\u043E\u043A",downloadData:"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0435",zoom:"\u041C\u0430\u0441\u0448\u0442\u0430\u0431",interval:"\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B",seconds:"\u0441\u0435\u043A\u0443\u043D\u0434",updateAnalysis:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0430\u043D\u0430\u043B\u0438\u0437",adjustZoom:"\u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u043C\u0430\u0441\u0448\u0442\u0430\u0431",precision:"\u0422\u043E\u0447\u043D\u043E\u0441\u0442\u044C",statistics:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430",visualization:"\u0412\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F",recording:"\u0417\u0430\u043F\u0438\u0441\u044C",configTitle:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F Guard",protectionPatterns:"\u0428\u0430\u0431\u043B\u043E\u043D\u044B \u0417\u0430\u0449\u0438\u0442\u044B",preferSpecificColor:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u0446\u0432\u0435\u0442\u0430",excludeSpecificColors:"\u041D\u0435 \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0442\u044C \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0446\u0432\u0435\u0442\u0430",loadManagement:"\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u041D\u0430\u0433\u0440\u0443\u0437\u043A\u043E\u0439",minLoadsToWait:"\u041C\u0438\u043D\u0438\u043C\u0443\u043C \u043D\u0430\u0433\u0440\u0443\u0437\u043E\u043A:",pixelsPerBatch:"\u041F\u0438\u043A\u0441\u0435\u043B\u0435\u0439 \u0437\u0430 \u043F\u0430\u0440\u0442\u0438\u044E",spendAllPixelsOnStart:"\u041F\u043E\u0442\u0440\u0430\u0442\u0438\u0442\u044C \u0432\u0441\u0435 \u043F\u0438\u043A\u0441\u0435\u043B\u0438 \u043F\u0440\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0435",waitTimes:"\u0412\u0440\u0435\u043C\u044F \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u044F",useRandomTimes:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0441\u043B\u0443\u0447\u0430\u0439\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u043C\u0435\u0436\u0434\u0443 \u043F\u0430\u0440\u0442\u0438\u044F\u043C\u0438",minTime:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (\u0441)",maxTime:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (\u0441)"},slave:{title:"WPlace \u0410\u0432\u0442\u043E-\u0420\u0430\u0431\u043E\u0447\u0438\u0439",initBot:"\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C Slave-BOT",startPainting:"\u041D\u0430\u0447\u0430\u0442\u044C",stopPainting:"\u041E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C",logs:"\u041B\u043E\u0433\u0438",configuration:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F",minimize:"\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C",pixelsPerBatch:"\u041F\u0438\u043A\u0441\u0435\u043B\u0435\u0439 \u0437\u0430 \u043F\u0430\u0440\u0442\u0438\u044E",nextBatchIn:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u043F\u0430\u0440\u0442\u0438\u044F \u0447\u0435\u0440\u0435\u0437: ",waitingInit:"\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438...",checkingColors:"\u{1F3A8} \u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0446\u0432\u0435\u0442\u043E\u0432...",noColorsFound:"\u274C \u0426\u0432\u0435\u0442\u0430 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B. \u041E\u0442\u043A\u0440\u043E\u0439\u0442\u0435 \u043F\u0430\u043B\u0438\u0442\u0440\u0443 \u0446\u0432\u0435\u0442\u043E\u0432 \u043D\u0430 \u0441\u0430\u0439\u0442\u0435.",colorsFound:"\u2705 \u041D\u0430\u0439\u0434\u0435\u043D\u043E {count} \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0446\u0432\u0435\u0442\u043E\u0432",initSuccess:"\u2705 Slave-BOT \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D",initError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 Slave-BOT",noCoordsSet:"\u274C \u041A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442\u044B \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u044B. \u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 WPlace AutoBOT Image.",noCoordsData:"\u274C \u0414\u0430\u043D\u043D\u044B\u0435 \u043A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B. \u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u043A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442\u044B \u0432 WPlace AutoBOT Image.",coordsLoaded:"\u2705 \u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043E {count} \u043A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442 \u0438\u0437 WPlace AutoBOT Image",coordsError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u043A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442: {error}",paintingStarted:"\u{1F3A8} \u0420\u0438\u0441\u043E\u0432\u0430\u043D\u0438\u0435 \u043D\u0430\u0447\u0430\u043B\u043E\u0441\u044C",paintingStopped:"\u23F9\uFE0F \u0420\u0438\u0441\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E",paintingPixel:"\u{1F58C}\uFE0F \u0420\u0438\u0441\u043E\u0432\u0430\u043D\u0438\u0435 \u043F\u0438\u043A\u0441\u0435\u043B\u044F ({x}, {y}) \u0446\u0432\u0435\u0442\u043E\u043C {color}",pixelPainted:"\u2705 \u041F\u0438\u043A\u0441\u0435\u043B\u044C \u043D\u0430\u0440\u0438\u0441\u043E\u0432\u0430\u043D \u0443\u0441\u043F\u0435\u0448\u043D\u043E",pixelError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0440\u0438\u0441\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u0438\u043A\u0441\u0435\u043B\u044F: {error}",batchComplete:"\u2705 \u041F\u0430\u0440\u0442\u0438\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430: {painted} \u0438\u0437 {total} \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439 \u043D\u0430\u0440\u0438\u0441\u043E\u0432\u0430\u043D\u043E",batchError:"\u274C \u041E\u0448\u0438\u0431\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043F\u0430\u0440\u0442\u0438\u0438: {error}",allPixelsComplete:"\u{1F389} \u0412\u0441\u0435 \u043F\u0438\u043A\u0441\u0435\u043B\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u044B!",noCharges:"\u26A0\uFE0F \u041D\u0435\u0434\u043E\u0441\u0442\u0430\u0442\u043E\u0447\u043D\u043E \u0437\u0430\u0440\u044F\u0434\u043E\u0432 \u0434\u043B\u044F \u0440\u0438\u0441\u043E\u0432\u0430\u043D\u0438\u044F",waitingForCharges:"\u23F3 \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0437\u0430\u0440\u044F\u0434\u043E\u0432...",charges:"\u0417\u0430\u0440\u044F\u0434\u044B",totalPixels:"\u0412\u0441\u0435\u0433\u043E \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439",paintedPixels:"\u041D\u0430\u0440\u0438\u0441\u043E\u0432\u0430\u043D\u043E \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439",remainingPixels:"\u041E\u0441\u0442\u0430\u043B\u043E\u0441\u044C \u043F\u0438\u043A\u0441\u0435\u043B\u0435\u0439",currentBatch:"\u0422\u0435\u043A\u0443\u0449\u0430\u044F \u043F\u0430\u0440\u0442\u0438\u044F",progress:"\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441",estimatedTime:"\u0420\u0430\u0441\u0447\u0435\u0442\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F",autoInitializing:"\u{1F916} \u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F...",autoInitSuccess:"\u2705 Slave-BOT \u0437\u0430\u043F\u0443\u0449\u0435\u043D \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438",autoInitFailed:"\u26A0\uFE0F \u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043A\u043D\u043E\u043F\u043A\u0443 \u0440\u0443\u0447\u043D\u043E\u0433\u043E \u0437\u0430\u043F\u0443\u0441\u043A\u0430.",manualInitRequired:"\u{1F527} \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0440\u0443\u0447\u043D\u0430\u044F \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F",paletteDetected:"\u{1F3A8} \u0426\u0432\u0435\u0442\u043E\u0432\u0430\u044F \u043F\u0430\u043B\u0438\u0442\u0440\u0430 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u0430",paletteNotFound:"\u{1F50D} \u041F\u043E\u0438\u0441\u043A \u0446\u0432\u0435\u0442\u043E\u0432\u043E\u0439 \u043F\u0430\u043B\u0438\u0442\u0440\u044B...",clickingPaintButton:"\u{1F446} \u041D\u0430\u0436\u0430\u0442\u0438\u0435 \u043A\u043D\u043E\u043F\u043A\u0438 \xABPaint\xBB...",paintButtonNotFound:"\u274C \u041A\u043D\u043E\u043F\u043A\u0430 \xABPaint\xBB \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430",logWindow:"\u041B\u043E\u0433\u0438",logWindowTitle:"\u041B\u043E\u0433\u0438 - {botName}",downloadLogs:"\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u041B\u043E\u0433\u0438",clearLogs:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u041B\u043E\u0433\u0438",closeLogs:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C",configTitle:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F Slave",loadManagement:"\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u041D\u0430\u0433\u0440\u0443\u0437\u043A\u043E\u0439",minLoadsToWait:"\u041C\u0438\u043D\u0438\u043C\u0443\u043C \u043D\u0430\u0433\u0440\u0443\u0437\u043E\u043A:",pixelsPerBatchConfig:"\u041F\u0438\u043A\u0441\u0435\u043B\u0435\u0439 \u0437\u0430 \u043F\u0430\u0440\u0442\u0438\u044E",spendAllPixelsOnStart:"\u041F\u043E\u0442\u0440\u0430\u0442\u0438\u0442\u044C \u0432\u0441\u0435 \u043F\u0438\u043A\u0441\u0435\u043B\u0438 \u043F\u0440\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0435",waitTimes:"\u0412\u0440\u0435\u043C\u044F \u041E\u0436\u0438\u0434\u0430\u043D\u0438\u044F",useRandomTimes:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0441\u043B\u0443\u0447\u0430\u0439\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u043C\u0435\u0436\u0434\u0443 \u043F\u0430\u0440\u0442\u0438\u044F\u043C\u0438",minTime:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (\u0441)",maxTime:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F (\u0441)"}};var yt={launcher:{title:"WPlace AutoBOT",autoFarm:"\u{1F33E} Auto-Farm",autoImage:"\u{1F3A8} Auto-Image",autoGuard:"\u{1F6E1}\uFE0F Auto-Guard",autoSlave:"\u{1F517} Slave",selection:"\u9009\u62E9",user:"\u7528\u6237",charges:"\u6B21\u6570",backend:"\u540E\u7AEF",database:"\u6570\u636E\u5E93",uptime:"\u8FD0\u884C\u65F6\u95F4",close:"\u5173\u95ED",launch:"\u542F\u52A8",loading:"\u52A0\u8F7D\u4E2D\u2026",executing:"\u6267\u884C\u4E2D\u2026",downloading:"\u6B63\u5728\u4E0B\u8F7D\u811A\u672C\u2026",chooseBot:"\u9009\u62E9\u4E00\u4E2A\u673A\u5668\u4EBA\u5E76\u70B9\u51FB\u542F\u52A8",readyToLaunch:"\u51C6\u5907\u542F\u52A8",loadError:"\u52A0\u8F7D\u9519\u8BEF",loadErrorMsg:"\u65E0\u6CD5\u52A0\u8F7D\u6240\u9009\u673A\u5668\u4EBA\u3002\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u6216\u91CD\u8BD5\u3002",checking:"\u{1F504} \u68C0\u67E5\u4E2D...",online:"\u{1F7E2} \u5728\u7EBF",offline:"\u{1F534} \u79BB\u7EBF",ok:"\u{1F7E2} \u6B63\u5E38",error:"\u{1F534} \u9519\u8BEF",unknown:"-",logWindow:"Logs",logWindowTitle:"\u65E5\u5FD7\u7A97\u53E3",downloadLogs:"\u4E0B\u8F7D\u65E5\u5FD7",clearLogs:"\u6E05\u9664\u65E5\u5FD7",closeLogs:"\u5173\u95ED",localExecution:"\u672C\u5730\u6267\u884C\uFF0C\u5B8C\u5168\u8BBF\u95EE\u4EE4\u724C\u7CFB\u7EDF",botStarting:"\u673A\u5668\u4EBA\u542F\u52A8\u4E2D..."},image:{title:"WPlace Auto-Image",initBot:"\u521D\u59CB\u5316\u81EA\u52A8\u673A\u5668\u4EBA",uploadImage:"\u4E0A\u4F20\u56FE\u7247",resizeImage:"\u8C03\u6574\u56FE\u7247\u5927\u5C0F",selectPosition:"\u9009\u62E9\u4F4D\u7F6E",startPainting:"\u5F00\u59CB\u7ED8\u5236",stopPainting:"\u505C\u6B62\u7ED8\u5236",saveProgress:"\u4FDD\u5B58\u8FDB\u5EA6",loadProgress:"\u52A0\u8F7D\u8FDB\u5EA6",checkingColors:"\u{1F50D} \u68C0\u67E5\u53EF\u7528\u989C\u8272...",noColorsFound:"\u274C \u8BF7\u5728\u7F51\u7AD9\u4E0A\u6253\u5F00\u8C03\u8272\u677F\u540E\u91CD\u8BD5\uFF01",colorsFound:"\u2705 \u627E\u5230 {count} \u79CD\u53EF\u7528\u989C\u8272",loadingImage:"\u{1F5BC}\uFE0F \u6B63\u5728\u52A0\u8F7D\u56FE\u7247...",imageLoaded:"\u2705 \u56FE\u7247\u5DF2\u52A0\u8F7D\uFF0C\u6709\u6548\u50CF\u7D20 {count} \u4E2A",imageError:"\u274C \u56FE\u7247\u52A0\u8F7D\u5931\u8D25",selectPositionAlert:"\u8BF7\u5728\u4F60\u60F3\u5F00\u59CB\u7ED8\u5236\u7684\u5730\u65B9\u6D82\u7B2C\u4E00\u4E2A\u50CF\u7D20\uFF01",waitingPosition:"\u{1F446} \u7B49\u5F85\u4F60\u6D82\u53C2\u8003\u50CF\u7D20...",positionSet:"\u2705 \u4F4D\u7F6E\u8BBE\u7F6E\u6210\u529F\uFF01",positionTimeout:"\u274C \u4F4D\u7F6E\u9009\u62E9\u8D85\u65F6",positionDetected:"\u{1F3AF} \u5DF2\u68C0\u6D4B\u5230\u4F4D\u7F6E\uFF0C\u5904\u7406\u4E2D...",positionError:"\u274C \u4F4D\u7F6E\u68C0\u6D4B\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5",startPaintingMsg:"\u{1F3A8} \u5F00\u59CB\u7ED8\u5236...",paintingProgress:"\u{1F9F1} \u8FDB\u5EA6: {painted}/{total} \u50CF\u7D20...",noCharges:"\u231B \u6CA1\u6709\u6B21\u6570\u3002\u7B49\u5F85 {time}...",paintingStopped:"\u23F9\uFE0F \u7528\u6237\u5DF2\u505C\u6B62\u7ED8\u5236",paintingComplete:"\u2705 \u7ED8\u5236\u5B8C\u6210\uFF01\u5171\u7ED8\u5236 {count} \u4E2A\u50CF\u7D20\u3002",paintingError:"\u274C \u7ED8\u5236\u8FC7\u7A0B\u4E2D\u51FA\u9519",missingRequirements:"\u274C \u8BF7\u5148\u52A0\u8F7D\u56FE\u7247\u5E76\u9009\u62E9\u4F4D\u7F6E",progress:"\u8FDB\u5EA6",userName:"\u7528\u6237",pixels:"\u50CF\u7D20",charges:"\u6B21\u6570",estimatedTime:"\u9884\u8BA1\u65F6\u95F4",initMessage:"\u70B9\u51FB\u201C\u521D\u59CB\u5316\u81EA\u52A8\u673A\u5668\u4EBA\u201D\u5F00\u59CB",waitingInit:"\u7B49\u5F85\u521D\u59CB\u5316...",resizeSuccess:"\u2705 \u56FE\u7247\u5DF2\u8C03\u6574\u4E3A {width}x{height}",paintingPaused:"\u23F8\uFE0F \u7ED8\u5236\u6682\u505C\u4E8E\u4F4D\u7F6E X: {x}, Y: {y}",pixelsPerBatch:"\u6BCF\u6279\u50CF\u7D20\u6570",batchSize:"\u6279\u6B21\u5927\u5C0F",nextBatchTime:"\u4E0B\u6B21\u6279\u6B21\u65F6\u95F4",useAllCharges:"\u4F7F\u7528\u6240\u6709\u53EF\u7528\u6B21\u6570",showOverlay:"\u663E\u793A\u8986\u76D6\u5C42",maxCharges:"\u6BCF\u6279\u6700\u5927\u6B21\u6570",waitingForCharges:"\u23F3 \u7B49\u5F85\u6B21\u6570: {current}/{needed}",timeRemaining:"\u5269\u4F59\u65F6\u95F4",cooldownWaiting:"\u23F3 \u7B49\u5F85 {time} \u540E\u7EE7\u7EED...",progressSaved:"\u2705 \u8FDB\u5EA6\u5DF2\u4FDD\u5B58\u4E3A {filename}",progressLoaded:"\u2705 \u5DF2\u52A0\u8F7D\u8FDB\u5EA6: {painted}/{total} \u50CF\u7D20\u5DF2\u7ED8\u5236",progressLoadError:"\u274C \u52A0\u8F7D\u8FDB\u5EA6\u5931\u8D25: {error}",progressSaveError:"\u274C \u4FDD\u5B58\u8FDB\u5EA6\u5931\u8D25: {error}",confirmSaveProgress:"\u5728\u505C\u6B62\u4E4B\u524D\u8981\u4FDD\u5B58\u5F53\u524D\u8FDB\u5EA6\u5417\uFF1F",saveProgressTitle:"\u4FDD\u5B58\u8FDB\u5EA6",discardProgress:"\u653E\u5F03",cancel:"\u53D6\u6D88",minimize:"\u6700\u5C0F\u5316",width:"\u5BBD\u5EA6",height:"\u9AD8\u5EA6",keepAspect:"\u4FDD\u6301\u7EB5\u6A2A\u6BD4",apply:"\u5E94\u7528",overlayOn:"\u8986\u76D6\u5C42: \u5F00\u542F",overlayOff:"\u8986\u76D6\u5C42: \u5173\u95ED",passCompleted:"\u2705 \u6279\u6B21\u5B8C\u6210: \u5DF2\u7ED8\u5236 {painted} \u50CF\u7D20 | \u8FDB\u5EA6: {percent}% ({current}/{total})",waitingChargesRegen:"\u23F3 \u7B49\u5F85\u6B21\u6570\u6062\u590D: {current}/{needed} - \u65F6\u95F4: {time}",waitingChargesCountdown:"\u23F3 \u7B49\u5F85\u6B21\u6570: {current}/{needed} - \u5269\u4F59: {time}",autoInitializing:"\u{1F916} \u6B63\u5728\u81EA\u52A8\u521D\u59CB\u5316...",autoInitSuccess:"\u2705 \u81EA\u52A8\u542F\u52A8\u6210\u529F",autoInitFailed:"\u26A0\uFE0F \u65E0\u6CD5\u81EA\u52A8\u542F\u52A8\uFF0C\u8BF7\u624B\u52A8\u64CD\u4F5C\u3002",paletteDetected:"\u{1F3A8} \u5DF2\u68C0\u6D4B\u5230\u8C03\u8272\u677F",paletteNotFound:"\u{1F50D} \u6B63\u5728\u641C\u7D22\u8C03\u8272\u677F...",clickingPaintButton:"\u{1F446} \u6B63\u5728\u70B9\u51FB\u7ED8\u5236\u6309\u94AE...",paintButtonNotFound:"\u274C \u672A\u627E\u5230\u7ED8\u5236\u6309\u94AE",manualInitRequired:"\u{1F527} \u9700\u8981\u624B\u52A8\u521D\u59CB\u5316",retryAttempt:"\u{1F504} \u91CD\u8BD5 {attempt}/{maxAttempts}\uFF0C\u7B49\u5F85 {delay} \u79D2...",retryError:"\u{1F4A5} \u7B2C {attempt}/{maxAttempts} \u6B21\u5C1D\u8BD5\u51FA\u9519\uFF0C\u5C06\u5728 {delay} \u79D2\u540E\u91CD\u8BD5...",retryFailed:"\u274C \u8D85\u8FC7 {maxAttempts} \u6B21\u5C1D\u8BD5\u5931\u8D25\u3002\u7EE7\u7EED\u4E0B\u4E00\u6279...",networkError:"\u{1F310} \u7F51\u7EDC\u9519\u8BEF\uFF0C\u6B63\u5728\u91CD\u8BD5...",serverError:"\u{1F525} \u670D\u52A1\u5668\u9519\u8BEF\uFF0C\u6B63\u5728\u91CD\u8BD5...",timeoutError:"\u23F0 \u670D\u52A1\u5668\u8D85\u65F6\uFF0C\u6B63\u5728\u91CD\u8BD5...",saveProgressBtn:"\u4FDD\u5B58\u8FDB\u5EA6",guardJsonBtn:"Guard JSON",resizeWindowTitle:"\u8C03\u6574\u56FE\u7247\u5927\u5C0F",original:"\u539F\u59CB",labTolerance:"LAB\u5BB9\u9519",maintainProportion:"\u4FDD\u6301\u6BD4\u4F8B",skipColor:"\u8DF3\u8FC7\u989C\u8272",skipColorEnabled:"\u53EA\u7ED8\u5236\u5B8C\u5168\u5339\u914D\u7684\u989C\u8272",similarityThreshold:"\u76F8\u4F3C\u5EA6\u9608\u503C",skipColorDescription:"\u53EA\u4F1A\u7ED8\u5236\u5B8C\u5168\u5339\u914D\u7684\u989C\u8272\uFF08100%\u76F8\u4F3C\u5EA6\uFF09\u3002",applyResize:"\u5E94\u7528",cancelResize:"\u53D6\u6D88",patternSnake:"\u86C7\u5F62\uFF08\u4E4B\u5B57\u5F62\uFF09",patternDiagonalSweep:"\u5BF9\u89D2\u626B\u63CF",patternBorders:"\u8FB9\u6846\u4F18\u5148",patternCenter:"\u4E2D\u5FC3\u4F18\u5148",patternQuadrants:"\u8C61\u9650",patternBiasedRandom:"\u504F\u5411\u968F\u673A\uFF08\u8FB9\u6846\uFF09",patternClusters:"\u96C6\u7FA4",patternProximity:"\u90BB\u8FD1\u6027",patternSweep:"\u5206\u533A\u626B\u63CF",patternPriority:"\u4F18\u5148\u7EA7\uFF08\u6DF7\u5408\uFF09",patternAnchorPoints:"\u951A\u70B9",patternSpiralCw:"\u87BA\u65CB\uFF08\u987A\u65F6\u9488\uFF09",patternSpiralCcw:"\u87BA\u65CB\uFF08\u9006\u65F6\u9488\uFF09",noProgressToSave:"\u6CA1\u6709\u8981\u4FDD\u5B58\u7684\u8FDB\u5EA6",progressSaveSuccess:"\u8FDB\u5EA6\u5DF2\u4FDD\u5B58\u4E3A {filename}",progressLoadSuccess:"\u8FDB\u5EA6\u5DF2\u52A0\u8F7D\uFF1A{painted}/{total} \u50CF\u7D20\u5DF2\u7ED8\u5236",invalidProgressFile:"\u8FDB\u5EA6\u6587\u4EF6\u65E0\u6548",missingFields:"\u7F3A\u5C11\u5FC5\u9700\u5B57\u6BB5\uFF1A{fields}",guardDialogTitle:"\u751F\u6210 Guard JSON",guardDialogMessage:"\u662F\u5426\u8981\u4F7F\u7528\u5F53\u524D\u6570\u636E\u751F\u6210 Guard JSON \u6587\u4EF6\uFF1F",guardDialogInfo:`\u56FE\u7247\uFF1A{name}
\u5C3A\u5BF8\uFF1A{width}x{height}
\u50CF\u7D20\uFF1A{pixels}`,generateGuard:"\u751F\u6210 Guard",guardJsonInvalidStructure:"\u274C Guard JSON \u7ED3\u6784\u65E0\u6548\u3002\u4E2D\u6B62\u4FDD\u5B58\u3002",guardJsonInvalidMessage:"Guard JSON \u7ED3\u6784\u65E0\u6548\u3002\u9009\u62E9\u4F4D\u7F6E\u540E\u91CD\u8BD5\u3002",guardJsonSaveSuccess:"\u2705 Guard JSON \u5DF2\u4FDD\u5B58\uFF1A{filename}",guardJsonSaveError:"\u274C \u4FDD\u5B58 Guard JSON \u9519\u8BEF\uFF1A{error}",notificationInfo:"\u4FE1\u606F",notificationSuccess:"\u6210\u529F",notificationWarning:"\u8B66\u544A",notificationError:"\u9519\u8BEF",paintPattern:"\u{1F4D0} \u7ED8\u5236\u6A21\u5F0F",patternLinearStart:"\u7EBF\u6027\uFF08\u8D77\u70B9\uFF09",patternLinearEnd:"\u7EBF\u6027\uFF08\u7EC8\u70B9\uFF09",patternRandom:"\u968F\u673A",patternCenterOut:"\u4ECE\u4E2D\u5FC3\u5411\u5916",patternCornersFirst:"\u5148\u89D2\u843D",patternSpiral:"\u87BA\u65CB",logWindow:"Logs",logWindowTitle:"\u65E5\u5FD7\u7A97\u53E3",downloadLogs:"\u4E0B\u8F7D\u65E5\u5FD7",clearLogs:"\u6E05\u9664\u65E5\u5FD7",closeLogs:"\u5173\u95ED",userInfo:"\u7528\u6237\u4FE1\u606F",imageProgress:"\u56FE\u7247\u8FDB\u5EA6",availableColors:"\u53EF\u7528\u989C\u8272",noImageLoaded:"\u6CA1\u6709\u52A0\u8F7D\u56FE\u7247",cooldown:"\u51B7\u5374\u65F6\u95F4",totalColors:"\u603B\u989C\u8272\u6570",colorPalette:"\u989C\u8272\u8C03\u8272\u677F",showAllColors:"\u663E\u793A\u6240\u6709\u989C\u8272\uFF08\u5305\u62EC\u4E0D\u53EF\u7528\u7684\uFF09",selectAllColors:"\u9009\u62E9\u5168\u90E8",unselectAllColors:"\u53D6\u6D88\u5168\u9009",noAvailable:"\u4E0D\u53EF\u7528",colorSelected:"\u5DF2\u9009\u62E9\u989C\u8272",statsUpdated:"\u2705 \u7EDF\u8BA1\u5DF2\u66F4\u65B0\uFF1A{count} \u79CD\u53EF\u7528\u989C\u8272"},farm:{title:"\u{1F9D1}\u200D\u{1F33E} WPlace Farm",start:"\u5F00\u59CB",stop:"\u505C\u6B62",stopped:"\u673A\u5668\u4EBA\u5DF2\u505C\u6B62",calibrate:"\u6821\u51C6",paintOnce:"\u4E00\u6B21",checkingStatus:"\u68C0\u67E5\u72B6\u6001\u4E2D...",configuration:"\u914D\u7F6E",delay:"\u5EF6\u8FDF (\u6BEB\u79D2)",pixelsPerBatch:"\u6BCF\u6279\u50CF\u7D20",minCharges:"\u6700\u5C11\u6B21\u6570",colorMode:"\u989C\u8272\u6A21\u5F0F",random:"\u968F\u673A",fixed:"\u56FA\u5B9A",range:"\u8303\u56F4",fixedColor:"\u56FA\u5B9A\u989C\u8272",advanced:"\u9AD8\u7EA7",tileX:"\u74E6\u7247 X",tileY:"\u74E6\u7247 Y",customPalette:"\u81EA\u5B9A\u4E49\u8C03\u8272\u677F",paletteExample:"\u4F8B\u5982: #FF0000,#00FF00,#0000FF",capture:"\u6355\u83B7",painted:"\u5DF2\u7ED8\u5236",charges:"\u6B21\u6570",retries:"\u91CD\u8BD5",tile:"\u74E6\u7247",configSaved:"\u914D\u7F6E\u5DF2\u4FDD\u5B58",configLoaded:"\u914D\u7F6E\u5DF2\u52A0\u8F7D",configReset:"\u914D\u7F6E\u5DF2\u91CD\u7F6E",captureInstructions:"\u8BF7\u624B\u52A8\u7ED8\u5236\u4E00\u4E2A\u50CF\u7D20\u4EE5\u6355\u83B7\u5750\u6807...",backendOnline:"\u540E\u7AEF\u5728\u7EBF",backendOffline:"\u540E\u7AEF\u79BB\u7EBF",startingBot:"\u6B63\u5728\u542F\u52A8\u673A\u5668\u4EBA...",stoppingBot:"\u6B63\u5728\u505C\u6B62\u673A\u5668\u4EBA...",calibrating:"\u6821\u51C6\u4E2D...",alreadyRunning:"\u81EA\u52A8\u519C\u573A\u5DF2\u5728\u8FD0\u884C\u3002",imageRunningWarning:"\u81EA\u52A8\u7ED8\u56FE\u6B63\u5728\u8FD0\u884C\uFF0C\u8BF7\u5148\u5173\u95ED\u518D\u542F\u52A8\u81EA\u52A8\u519C\u573A\u3002",selectPosition:"\u9009\u62E9\u533A\u57DF",selectPositionAlert:"\u{1F3AF} \u5728\u5730\u56FE\u7684\u7A7A\u767D\u533A\u57DF\u6D82\u4E00\u4E2A\u50CF\u7D20\u4EE5\u8BBE\u7F6E\u519C\u573A\u533A\u57DF",waitingPosition:"\u{1F446} \u7B49\u5F85\u4F60\u6D82\u53C2\u8003\u50CF\u7D20...",positionSet:"\u2705 \u533A\u57DF\u8BBE\u7F6E\u6210\u529F\uFF01\u534A\u5F84: 500px",positionTimeout:"\u274C \u533A\u57DF\u9009\u62E9\u8D85\u65F6",missingPosition:"\u274C \u8BF7\u5148\u9009\u62E9\u533A\u57DF\uFF08\u4F7F\u7528\u201C\u9009\u62E9\u533A\u57DF\u201D\u6309\u94AE\uFF09",farmRadius:"\u519C\u573A\u534A\u5F84",positionInfo:"\u5F53\u524D\u533A\u57DF",farmingInRadius:"\u{1F33E} \u6B63\u5728\u4EE5\u534A\u5F84 {radius}px \u5728 ({x},{y}) \u519C\u573A",selectEmptyArea:"\u26A0\uFE0F \u91CD\u8981: \u8BF7\u9009\u62E9\u7A7A\u767D\u533A\u57DF\u4EE5\u907F\u514D\u51B2\u7A81",noPosition:"\u672A\u9009\u62E9\u533A\u57DF",currentZone:"\u533A\u57DF: ({x},{y})",autoSelectPosition:"\u{1F3AF} \u8BF7\u5148\u9009\u62E9\u533A\u57DF\uFF0C\u5728\u5730\u56FE\u4E0A\u6D82\u4E00\u4E2A\u50CF\u7D20\u4EE5\u8BBE\u7F6E\u519C\u573A\u533A\u57DF",logWindow:"Logs",logWindowTitle:"\u65E5\u5FD7\u7A97\u53E3",downloadLogs:"\u4E0B\u8F7D\u65E5\u5FD7",clearLogs:"\u6E05\u9664\u65E5\u5FD7",closeLogs:"\u5173\u95ED",ready:"\u5C31\u7EEA",once:"\u4E00\u6B21",recapture:"\u91CD\u65B0\u6355\u83B7",position:"\u4F4D\u7F6E",stats:{painted:"\u5DF2\u7ED8\u5236",charges:"\u6B21\u6570",droplets:"\u6C34\u6EF4",user:"\u7528\u6237",retries:"\u91CD\u8BD5"},config:{minCharges:"\u6700\u5C11\u6B21\u6570",delay:"\u7B49\u5F85\u65F6\u95F4\uFF08\u79D2\uFF09",pixelsPerBatch:"\u6BCF\u6279\u50CF\u7D20\u6570"},color:{fixed:"\u56FA\u5B9A",range:"\u8303\u56F4",random:"\u968F\u673A",selected:"\u5DF2\u9009\u62E9\u989C\u8272",min:"\u6700\u5C0F",max:"\u6700\u5927"},autobuy:{title:"\u81EA\u52A8\u8D2D\u4E70\uFF08+5\u6B21\u6570\uFF09",hint:"\u5F53\u4F60\u6709\u2265500\u6C34\u6EF4\u65F6\u5C06\u81EA\u52A8\u6FC0\u6D3B"},buyCharges:"\u8D2D\u4E70+5\u6B21\u6570",buying:"\u8D2D\u4E70\u4E2D...",buyOk:"\u8D2D\u4E70\u6210\u529F\u3002\u5237\u65B0\u4F1A\u8BDD\u3002",buyFail:"\u65E0\u6CD5\u8D2D\u4E70"},common:{yes:"\u662F",no:"\u5426",ok:"\u786E\u8BA4",cancel:"\u53D6\u6D88",close:"\u5173\u95ED",save:"\u4FDD\u5B58",load:"\u52A0\u8F7D",delete:"\u5220\u9664",edit:"\u7F16\u8F91",start:"\u5F00\u59CB",stop:"\u505C\u6B62",pause:"\u6682\u505C",resume:"\u7EE7\u7EED",reset:"\u91CD\u7F6E",settings:"\u8BBE\u7F6E",help:"\u5E2E\u52A9",about:"\u5173\u4E8E",language:"\u8BED\u8A00",loading:"\u52A0\u8F7D\u4E2D...",error:"\u9519\u8BEF",success:"\u6210\u529F",warning:"\u8B66\u544A",info:"\u4FE1\u606F",languageChanged:"\u8BED\u8A00\u5DF2\u5207\u6362\u4E3A {language}"},guard:{title:"WPlace Auto-Guard",initBot:"\u521D\u59CB\u5316\u5B88\u62A4\u673A\u5668\u4EBA",selectArea:"\u9009\u62E9\u533A\u57DF",save:"\u4FDD\u5B58",loadFile:"\u52A0\u8F7D\u6587\u4EF6",reposition:"\u91CD\u65B0\u5B9A\u4F4D",analyzeArea:"\u5206\u6790\u533A\u57DF",logs:"\u65E5\u5FD7",watcher:"\u76D1\u89C6\u5668",configuration:"\u914D\u7F6E",startErase:"\u5F00\u59CB\u64E6\u9664",stopWatcher:"\u505C\u6B62\u76D1\u89C6\u5668",minimize:"\u6700\u5C0F\u5316",expand:"\u5C55\u5F00",nextBatchIn:"\u4E0B\u4E00\u6279: ",captureArea:"\u6355\u83B7\u533A\u57DF",startProtection:"\u5F00\u59CB",stopProtection:"\u505C\u6B62",protectedPixels:"\u53D7\u4FDD\u62A4\u50CF\u7D20",upperLeft:"\u5DE6\u4E0A\u89D2",lowerRight:"\u53F3\u4E0B\u89D2",detectedChanges:"\u68C0\u6D4B\u5230\u7684\u53D8\u5316",repairedPixels:"\u4FEE\u590D\u7684\u50CF\u7D20",charges:"\u6B21\u6570",waitingInit:"\u7B49\u5F85\u521D\u59CB\u5316...",checkingColors:"\u{1F3A8} \u68C0\u67E5\u53EF\u7528\u989C\u8272...",noColorsFound:"\u274C \u672A\u627E\u5230\u989C\u8272\uFF0C\u8BF7\u5728\u7F51\u7AD9\u4E0A\u6253\u5F00\u8C03\u8272\u677F\u3002",colorsFound:"\u2705 \u627E\u5230 {count} \u79CD\u53EF\u7528\u989C\u8272",initSuccess:"\u2705 \u5B88\u62A4\u673A\u5668\u4EBA\u521D\u59CB\u5316\u6210\u529F",initError:"\u274C \u5B88\u62A4\u673A\u5668\u4EBA\u521D\u59CB\u5316\u5931\u8D25",invalidCoords:"\u274C \u5750\u6807\u65E0\u6548",invalidArea:"\u274C \u533A\u57DF\u65E0\u6548\uFF0C\u5DE6\u4E0A\u89D2\u5FC5\u987B\u5C0F\u4E8E\u53F3\u4E0B\u89D2",areaTooLarge:"\u274C \u533A\u57DF\u8FC7\u5927: {size} \u50CF\u7D20 (\u6700\u5927: {max})",capturingArea:"\u{1F4F8} \u6355\u83B7\u533A\u57DF\u4E2D...",areaCaptured:"\u2705 \u533A\u57DF\u6355\u83B7\u6210\u529F: {count} \u50CF\u7D20",captureError:"\u274C \u6355\u83B7\u533A\u57DF\u51FA\u9519: {error}",captureFirst:"\u274C \u8BF7\u5148\u6355\u83B7\u4E00\u4E2A\u533A\u57DF",noChanges:"\u2705 \u533A\u57DF - \u672A\u68C0\u6D4B\u5230\u53D8\u5316",changesDetected:"\u{1F6A8} \u68C0\u6D4B\u5230 {count} \u4E2A\u53D8\u5316",repairing:"\u{1F6E0}\uFE0F \u6B63\u5728\u4FEE\u590D {count} \u4E2A\u50CF\u7D20...",repairedSuccess:"\u2705 \u5DF2\u6210\u529F\u4FEE\u590D {count} \u4E2A\u50CF\u7D20",repairError:"\u274C \u4FEE\u590D\u51FA\u9519: {error}",noCharges:"\u26A0\uFE0F \u6B21\u6570\u4E0D\u8DB3\uFF0C\u65E0\u6CD5\u4FEE\u590D",checkingChanges:"\u{1F50D} \u6B63\u5728\u68C0\u67E5\u533A\u57DF\u53D8\u5316...",errorChecking:"\u274C \u68C0\u67E5\u51FA\u9519: {error}",guardActive:"\u{1F6E1}\uFE0F \u5B88\u62A4\u4E2D - \u533A\u57DF\u53D7\u4FDD\u62A4",lastCheck:"\u4E0A\u6B21\u68C0\u67E5: {time}",nextCheck:"\u4E0B\u6B21\u68C0\u67E5: {time} \u79D2\u540E",autoInitializing:"\u{1F916} \u6B63\u5728\u81EA\u52A8\u521D\u59CB\u5316...",autoInitSuccess:"\u2705 \u81EA\u52A8\u542F\u52A8\u6210\u529F",autoInitFailed:"\u26A0\uFE0F \u65E0\u6CD5\u81EA\u52A8\u542F\u52A8\uFF0C\u8BF7\u624B\u52A8\u64CD\u4F5C\u3002",manualInitRequired:"\u{1F527} \u9700\u8981\u624B\u52A8\u521D\u59CB\u5316",paletteDetected:"\u{1F3A8} \u5DF2\u68C0\u6D4B\u5230\u8C03\u8272\u677F",paletteNotFound:"\u{1F50D} \u6B63\u5728\u641C\u7D22\u8C03\u8272\u677F...",clickingPaintButton:"\u{1F446} \u6B63\u5728\u70B9\u51FB\u7ED8\u5236\u6309\u94AE...",paintButtonNotFound:"\u274C \u672A\u627E\u5230\u7ED8\u5236\u6309\u94AE",protectionStopped:"\u23F9\uFE0F \u4FDD\u62A4\u5DF2\u505C\u6B62",selectUpperLeft:"\u{1F3AF} \u5728\u9700\u8981\u4FDD\u62A4\u533A\u57DF\u7684\u5DE6\u4E0A\u89D2\u6D82\u4E00\u4E2A\u50CF\u7D20",selectLowerRight:"\u{1F3AF} \u73B0\u5728\u5728\u53F3\u4E0B\u89D2\u6D82\u4E00\u4E2A\u50CF\u7D20",waitingUpperLeft:"\u{1F446} \u7B49\u5F85\u9009\u62E9\u5DE6\u4E0A\u89D2...",waitingLowerRight:"\u{1F446} \u7B49\u5F85\u9009\u62E9\u53F3\u4E0B\u89D2...",upperLeftCaptured:"\u2705 \u5DF2\u6355\u83B7\u5DE6\u4E0A\u89D2: ({x}, {y})",lowerRightCaptured:"\u2705 \u5DF2\u6355\u83B7\u53F3\u4E0B\u89D2: ({x}, {y})",selectionTimeout:"\u274C \u9009\u62E9\u8D85\u65F6",selectionError:"\u274C \u9009\u62E9\u51FA\u9519\uFF0C\u8BF7\u91CD\u8BD5",logWindow:"Logs",logWindowTitle:"\u65E5\u5FD7\u7A97\u53E3",downloadLogs:"\u4E0B\u8F7D\u65E5\u5FD7",clearLogs:"\u6E05\u9664\u65E5\u5FD7",closeLogs:"\u5173\u95ED",analysisTitle:"\u5DEE\u5F02\u5206\u6790 - JSON vs \u5F53\u524D\u753B\u5E03",correctPixels:"\u6B63\u786E\u50CF\u7D20",incorrectPixels:"\u9519\u8BEF\u50CF\u7D20",missingPixels:"\u7F3A\u5931\u50CF\u7D20",showCorrect:"\u663E\u793A\u6B63\u786E",showIncorrect:"\u663E\u793A\u9519\u8BEF",showMissing:"\u663E\u793A\u7F3A\u5931",autoRefresh:"\u81EA\u52A8\u5237\u65B0",zoomAdjusted:"\u7F29\u653E\u81EA\u52A8\u8C03\u6574\u4E3A",autoRefreshEnabled:"\u81EA\u52A8\u5237\u65B0\u5DF2\u542F\u7528\uFF0C\u95F4\u9694",autoRefreshDisabled:"\u81EA\u52A8\u5237\u65B0\u5DF2\u7981\u7528",autoRefreshIntervalUpdated:"\u81EA\u52A8\u5237\u65B0\u95F4\u9694\u5DF2\u66F4\u65B0\u4E3A",visualizationUpdated:"\u53EF\u89C6\u5316\u5DF2\u66F4\u65B0",noAreaOrPixels:"\u6CA1\u6709\u53D7\u4FDD\u62A4\u533A\u57DF\u6216\u50CF\u7D20\u8FDB\u884C\u5206\u6790",noColorsDetected:"\u65E0\u6CD5\u68C0\u6D4B\u989C\u8272\u3002\u786E\u4FDD\u8C03\u8272\u677F\u5DF2\u6253\u5F00\u3002",sessionRecordingStarted:"\u4F1A\u8BDD\u5F55\u5236\u5DF2\u5F00\u59CB\uFF0C\u81EA\u52A8\u5237\u65B0\u5DF2\u542F\u7528",sessionRecordingStopped:"\u4F1A\u8BDD\u5F55\u5236\u5DF2\u505C\u6B62",noSessionData:"\u6CA1\u6709\u4F1A\u8BDD\u6570\u636E\u53EF\u4E0B\u8F7D",sessionDataDownloaded:"\u4F1A\u8BDD\u6570\u636E\u5DF2\u4E0B\u8F7D",snapshotCaptureError:"\u6355\u83B7\u56FE\u50CF\u65F6\u51FA\u9519",recordSession:"\u5F55\u5236\u4F1A\u8BDD",snapshot:"\u5FEB\u7167",downloadData:"\u4E0B\u8F7D\u6570\u636E",zoom:"\u7F29\u653E",interval:"\u95F4\u9694",seconds:"\u79D2",updateAnalysis:"\u66F4\u65B0\u5206\u6790",adjustZoom:"\u8C03\u6574\u7F29\u653E",precision:"\u7CBE\u5EA6",statistics:"\u7EDF\u8BA1",visualization:"\u53EF\u89C6\u5316",recording:"\u5F55\u5236",configTitle:"Guard\u914D\u7F6E",protectionPatterns:"\u4FDD\u62A4\u6A21\u5F0F",preferSpecificColor:"\u4F18\u5148\u7279\u5B9A\u989C\u8272",excludeSpecificColors:"\u4E0D\u4FEE\u590D\u7279\u5B9A\u989C\u8272",loadManagement:"\u8D1F\u8F7D\u7BA1\u7406",minLoadsToWait:"\u7B49\u5F85\u7684\u6700\u5C0F\u8D1F\u8F7D\u6570",pixelsPerBatch:"\u6BCF\u6279\u50CF\u7D20\u6570",spendAllPixelsOnStart:"\u542F\u52A8\u65F6\u6D88\u8017\u6240\u6709\u50CF\u7D20",waitTimes:"\u7B49\u5F85\u65F6\u95F4",useRandomTimes:"\u6279\u6B21\u95F4\u4F7F\u7528\u968F\u673A\u65F6\u95F4",minTime:"\u6700\u5C0F\u65F6\u95F4 (\u79D2)",maxTime:"\u6700\u5927\u65F6\u95F4 (\u79D2)"},slave:{title:"WPlace Slave",initBot:"\u521D\u59CB\u5316Slave-BOT",startPainting:"\u5F00\u59CB",stopPainting:"\u505C\u6B62",logs:"\u65E5\u5FD7",configuration:"\u914D\u7F6E",minimize:"\u6700\u5C0F\u5316",pixelsPerBatch:"\u6BCF\u6279\u50CF\u7D20\u6570",nextBatchIn:"\u4E0B\u4E00\u6279: ",waitingInit:"\u7B49\u5F85\u521D\u59CB\u5316...",checkingColors:"\u{1F3A8} \u68C0\u67E5\u53EF\u7528\u989C\u8272...",noColorsFound:"\u274C \u672A\u627E\u5230\u989C\u8272\uFF0C\u8BF7\u5728\u7F51\u7AD9\u4E0A\u6253\u5F00\u8C03\u8272\u677F\u3002",colorsFound:"\u2705 \u627E\u5230 {count} \u79CD\u53EF\u7528\u989C\u8272",initSuccess:"\u2705 Slave-BOT\u521D\u59CB\u5316\u6210\u529F",initError:"\u274C Slave-BOT\u521D\u59CB\u5316\u5931\u8D25",noCoordsSet:"\u274C \u672A\u8BBE\u7F6E\u5750\u6807\u3002\u8BF7\u5148\u4F7F\u7528WPlace AutoBOT Image\u3002",noCoordsData:"\u274C \u5750\u6807\u6570\u636E\u4E0D\u53EF\u7528\u3002\u8BF7\u5148\u5728WPlace AutoBOT Image\u4E2D\u8BBE\u7F6E\u5750\u6807\u3002",coordsLoaded:"\u2705 \u4ECEWPlace AutoBOT Image\u52A0\u8F7D\u4E86 {count} \u4E2A\u5750\u6807",coordsError:"\u274C \u52A0\u8F7D\u5750\u6807\u9519\u8BEF: {error}",paintingStarted:"\u{1F3A8} \u7ED8\u5236\u5DF2\u5F00\u59CB",paintingStopped:"\u23F9\uFE0F \u7ED8\u5236\u5DF2\u505C\u6B62",paintingPixel:"\u{1F58C}\uFE0F \u7ED8\u5236\u50CF\u7D20 ({x}, {y}) \u989C\u8272 {color}",pixelPainted:"\u2705 \u50CF\u7D20\u7ED8\u5236\u6210\u529F",pixelError:"\u274C \u7ED8\u5236\u50CF\u7D20\u9519\u8BEF: {error}",batchComplete:"\u2705 \u6279\u6B21\u5B8C\u6210: {painted} / {total} \u50CF\u7D20\u5DF2\u7ED8\u5236",batchError:"\u274C \u6279\u6B21\u6267\u884C\u9519\u8BEF: {error}",allPixelsComplete:"\u{1F389} \u6240\u6709\u50CF\u7D20\u5B8C\u6210\uFF01",noCharges:"\u26A0\uFE0F \u6B21\u6570\u4E0D\u8DB3\uFF0C\u65E0\u6CD5\u7ED8\u5236",waitingForCharges:"\u23F3 \u7B49\u5F85\u6B21\u6570...",charges:"\u6B21\u6570",totalPixels:"\u603B\u50CF\u7D20\u6570",paintedPixels:"\u5DF2\u7ED8\u5236\u50CF\u7D20",remainingPixels:"\u5269\u4F59\u50CF\u7D20",currentBatch:"\u5F53\u524D\u6279\u6B21",progress:"\u8FDB\u5EA6",estimatedTime:"\u9884\u8BA1\u5B8C\u6210\u65F6\u95F4",autoInitializing:"\u{1F916} \u6B63\u5728\u81EA\u52A8\u521D\u59CB\u5316...",autoInitSuccess:"\u2705 Slave-BOT\u81EA\u52A8\u542F\u52A8\u6210\u529F",autoInitFailed:"\u26A0\uFE0F \u65E0\u6CD5\u81EA\u52A8\u542F\u52A8\u3002\u8BF7\u4F7F\u7528\u624B\u52A8\u542F\u52A8\u6309\u94AE\u3002",manualInitRequired:"\u{1F527} \u9700\u8981\u624B\u52A8\u521D\u59CB\u5316",paletteDetected:"\u{1F3A8} \u5DF2\u68C0\u6D4B\u5230\u8C03\u8272\u677F",paletteNotFound:"\u{1F50D} \u6B63\u5728\u641C\u7D22\u8C03\u8272\u677F...",clickingPaintButton:"\u{1F446} \u6B63\u5728\u70B9\u51FB\u7ED8\u5236\u6309\u94AE...",paintButtonNotFound:"\u274C \u672A\u627E\u5230\u7ED8\u5236\u6309\u94AE",logWindow:"\u65E5\u5FD7",logWindowTitle:"\u65E5\u5FD7\u7A97\u53E3",downloadLogs:"\u4E0B\u8F7D\u65E5\u5FD7",clearLogs:"\u6E05\u9664\u65E5\u5FD7",closeLogs:"\u5173\u95ED",configTitle:"Slave\u914D\u7F6E",loadManagement:"\u8D1F\u8F7D\u7BA1\u7406",minLoadsToWait:"\u7B49\u5F85\u7684\u6700\u5C0F\u8D1F\u8F7D\u6570",pixelsPerBatchConfig:"\u6BCF\u6279\u50CF\u7D20\u6570",spendAllPixelsOnStart:"\u542F\u52A8\u65F6\u6D88\u8017\u6240\u6709\u50CF\u7D20",waitTimes:"\u7B49\u5F85\u65F6\u95F4",useRandomTimes:"\u6279\u6B21\u95F4\u4F7F\u7528\u968F\u673A\u65F6\u95F4",minTime:"\u6700\u5C0F\u65F6\u95F4 (\u79D2)",maxTime:"\u6700\u5927\u65F6\u95F4 (\u79D2)"}};var Ct={launcher:{title:"WPlace AutoBOT",autoFarm:"\u{1F33E} Auto-Farm",autoImage:"\u{1F3A8} Auto-Image",autoGuard:"\u{1F6E1}\uFE0F Auto-Guard",autoSlave:"\u{1F517} Slave",selection:"\u9078\u64C7",user:"\u7528\u6237",charges:"\u6B21\u6578",backend:"\u5F8C\u7AEF",database:"\u6578\u64DA\u5EAB",uptime:"\u904B\u884C\u6642\u9593",close:"\u95DC\u9589",launch:"\u5553\u52D5",loading:"\u52A0\u8F09\u4E2D\u2026",executing:"\u57F7\u884C\u4E2D\u2026",downloading:"\u6B63\u5728\u4E0B\u8F09\u8173\u672C\u2026",chooseBot:"\u9078\u64C7\u4E00\u500B\u6A5F\u5668\u4EBA\u4E26\u9EDE\u64CA\u5553\u52D5",readyToLaunch:"\u6E96\u5099\u5553\u52D5",loadError:"\u52A0\u8F09\u932F\u8AA4",loadErrorMsg:"\u7121\u6CD5\u52A0\u8F09\u6240\u9078\u6A5F\u5668\u4EBA\u3002\u8ACB\u6AA2\u67E5\u7DB2\u7D61\u9023\u63A5\u6216\u91CD\u8A66\u3002",checking:"\u{1F504} \u6AA2\u67E5\u4E2D...",online:"\u{1F7E2} \u5728\u7DDA",offline:"\u{1F534} \u96E2\u7DDA",ok:"\u{1F7E2} \u6B63\u5E38",error:"\u{1F534} \u932F\u8AA4",unknown:"-",logWindow:"Logs",logWindowTitle:"\u65E5\u8A8C\u8996\u7A97",downloadLogs:"\u4E0B\u8F09\u65E5\u8A8C",clearLogs:"\u6E05\u9664\u65E5\u8A8C",closeLogs:"\u95DC\u9589",localExecution:"\u672C\u5730\u57F7\u884C\uFF0C\u5B8C\u5168\u8A2A\u554F\u4EE4\u724C\u7CFB\u7D71",botStarting:"\u6A5F\u5668\u4EBA\u5553\u52D5\u4E2D..."},image:{title:"WPlace Auto-Image",initBot:"\u521D\u59CB\u5316\u81EA\u52D5\u6A5F\u5668\u4EBA",uploadImage:"\u4E0A\u50B3\u5716\u7247",resizeImage:"\u8ABF\u6574\u5716\u7247\u5927\u5C0F",selectPosition:"\u9078\u64C7\u4F4D\u7F6E",startPainting:"\u958B\u59CB\u7E6A\u88FD",stopPainting:"\u505C\u6B62\u7E6A\u88FD",saveProgress:"\u4FDD\u5B58\u9032\u5EA6",loadProgress:"\u52A0\u8F09\u9032\u5EA6",checkingColors:"\u{1F50D} \u6AA2\u67E5\u53EF\u7528\u984F\u8272...",noColorsFound:"\u274C \u8ACB\u5728\u7DB2\u7AD9\u4E0A\u6253\u958B\u8ABF\u8272\u677F\u5F8C\u91CD\u8A66\uFF01",colorsFound:"\u2705 \u627E\u5230 {count} \u7A2E\u53EF\u7528\u984F\u8272",loadingImage:"\u{1F5BC}\uFE0F \u6B63\u5728\u52A0\u8F09\u5716\u7247...",imageLoaded:"\u2705 \u5716\u7247\u5DF2\u52A0\u8F09\uFF0C\u6709\u6548\u50CF\u7D20 {count} \u500B",imageError:"\u274C \u5716\u7247\u52A0\u8F09\u5931\u6557",selectPositionAlert:"\u8ACB\u5728\u4F60\u60F3\u958B\u59CB\u7E6A\u88FD\u7684\u5730\u65B9\u5857\u7B2C\u4E00\u500B\u50CF\u7D20\uFF01",waitingPosition:"\u{1F446} \u7B49\u5F85\u4F60\u5857\u53C3\u8003\u50CF\u7D20...",positionSet:"\u2705 \u4F4D\u7F6E\u8A2D\u7F6E\u6210\u529F\uFF01",positionTimeout:"\u274C \u4F4D\u7F6E\u9078\u64C7\u8D85\u6642",positionDetected:"\u{1F3AF} \u5DF2\u6AA2\u6E2C\u5230\u4F4D\u7F6E\uFF0C\u8655\u7406\u4E2D...",positionError:"\u274C \u4F4D\u7F6E\u6AA2\u6E2C\u5931\u6557\uFF0C\u8ACB\u91CD\u8A66",startPaintingMsg:"\u{1F3A8} \u958B\u59CB\u7E6A\u88FD...",paintingProgress:"\u{1F9F1} \u9032\u5EA6: {painted}/{total} \u50CF\u7D20...",noCharges:"\u231B \u6C92\u6709\u6B21\u6578\u3002\u7B49\u5F85 {time}...",paintingStopped:"\u23F9\uFE0F \u7528\u6237\u5DF2\u505C\u6B62\u7E6A\u88FD",paintingComplete:"\u2705 \u7E6A\u88FD\u5B8C\u6210\uFF01\u5171\u7E6A\u88FD {count} \u500B\u50CF\u7D20\u3002",paintingError:"\u274C \u7E6A\u88FD\u904E\u7A0B\u4E2D\u51FA\u932F",missingRequirements:"\u274C \u8ACB\u5148\u52A0\u8F09\u5716\u7247\u4E26\u9078\u64C7\u4F4D\u7F6E",progress:"\u9032\u5EA6",userName:"\u7528\u6237",pixels:"\u50CF\u7D20",charges:"\u6B21\u6578",estimatedTime:"\u9810\u8A08\u6642\u9593",initMessage:"\u9EDE\u64CA\u201C\u521D\u59CB\u5316\u81EA\u52D5\u6A5F\u5668\u4EBA\u201D\u958B\u59CB",waitingInit:"\u7B49\u5F85\u521D\u59CB\u5316...",resizeSuccess:"\u2705 \u5716\u7247\u5DF2\u8ABF\u6574\u70BA {width}x{height}",paintingPaused:"\u23F8\uFE0F \u7E6A\u88FD\u66AB\u505C\u65BC\u4F4D\u7F6E X: {x}, Y: {y}",pixelsPerBatch:"\u6BCF\u6279\u50CF\u7D20\u6578",batchSize:"\u6279\u6B21\u5927\u5C0F",nextBatchTime:"\u4E0B\u6B21\u6279\u6B21\u6642\u9593",useAllCharges:"\u4F7F\u7528\u6240\u6709\u53EF\u7528\u6B21\u6578",showOverlay:"\u986F\u793A\u8986\u84CB\u5C64",maxCharges:"\u6BCF\u6279\u6700\u5927\u6B21\u6578",waitingForCharges:"\u23F3 \u7B49\u5F85\u6B21\u6578: {current}/{needed}",timeRemaining:"\u5269\u9918\u6642\u9593",cooldownWaiting:"\u23F3 \u7B49\u5F85 {time} \u5F8C\u7E7C\u7E8C...",progressSaved:"\u2705 \u9032\u5EA6\u5DF2\u4FDD\u5B58\u70BA {filename}",progressLoaded:"\u2705 \u5DF2\u52A0\u8F09\u9032\u5EA6: {painted}/{total} \u50CF\u7D20\u5DF2\u7E6A\u88FD",progressLoadError:"\u274C \u52A0\u8F09\u9032\u5EA6\u5931\u6557: {error}",progressSaveError:"\u274C \u4FDD\u5B58\u9032\u5EA6\u5931\u6557: {error}",confirmSaveProgress:"\u5728\u505C\u6B62\u4E4B\u524D\u8981\u4FDD\u5B58\u7576\u524D\u9032\u5EA6\u55CE\uFF1F",saveProgressTitle:"\u4FDD\u5B58\u9032\u5EA6",discardProgress:"\u653E\u68C4",cancel:"\u53D6\u6D88",minimize:"\u6700\u5C0F\u5316",width:"\u5BEC\u5EA6",height:"\u9AD8\u5EA6",keepAspect:"\u4FDD\u6301\u7E31\u6A6B\u6BD4",apply:"\u61C9\u7528",overlayOn:"\u8986\u84CB\u5C64: \u958B\u5553",overlayOff:"\u8986\u84CB\u5C64: \u95DC\u9589",passCompleted:"\u2705 \u6279\u6B21\u5B8C\u6210: \u5DF2\u7E6A\u88FD {painted} \u50CF\u7D20 | \u9032\u5EA6: {percent}% ({current}/{total})",waitingChargesRegen:"\u23F3 \u7B49\u5F85\u6B21\u6578\u6062\u5FA9: {current}/{needed} - \u6642\u9593: {time}",waitingChargesCountdown:"\u23F3 \u7B49\u5F85\u6B21\u6578: {current}/{needed} - \u5269\u9918: {time}",autoInitializing:"\u{1F916} \u6B63\u5728\u81EA\u52D5\u521D\u59CB\u5316...",autoInitSuccess:"\u2705 \u81EA\u52D5\u5553\u52D5\u6210\u529F",autoInitFailed:"\u26A0\uFE0F \u7121\u6CD5\u81EA\u52D5\u5553\u52D5\uFF0C\u8ACB\u624B\u52D5\u64CD\u4F5C\u3002",paletteDetected:"\u{1F3A8} \u5DF2\u6AA2\u6E2C\u5230\u8ABF\u8272\u677F",paletteNotFound:"\u{1F50D} \u6B63\u5728\u641C\u7D22\u8ABF\u8272\u677F...",clickingPaintButton:"\u{1F446} \u6B63\u5728\u9EDE\u64CA\u7E6A\u88FD\u6309\u9215...",paintButtonNotFound:"\u274C \u672A\u627E\u5230\u7E6A\u88FD\u6309\u9215",manualInitRequired:"\u{1F527} \u9700\u8981\u624B\u52D5\u521D\u59CB\u5316",retryAttempt:"\u{1F504} \u91CD\u8A66 {attempt}/{maxAttempts}\uFF0C\u7B49\u5F85 {delay} \u79D2...",retryError:"\u{1F4A5} \u7B2C {attempt}/{maxAttempts} \u6B21\u5617\u8A66\u51FA\u932F\uFF0C\u5C07\u5728 {delay} \u79D2\u5F8C\u91CD\u8A66...",retryFailed:"\u274C \u8D85\u904E {maxAttempts} \u6B21\u5617\u8A66\u5931\u6557\u3002\u7E7C\u7E8C\u4E0B\u4E00\u6279...",networkError:"\u{1F310} \u7DB2\u7D61\u932F\u8AA4\uFF0C\u6B63\u5728\u91CD\u8A66...",serverError:"\u{1F525} \u670D\u52D9\u5668\u932F\u8AA4\uFF0C\u6B63\u5728\u91CD\u8A66...",timeoutError:"\u23F0 \u4F3A\u670D\u5668\u903E\u6642\uFF0C\u6B63\u5728\u91CD\u8A66...",saveProgressBtn:"\u4FDD\u5B58\u9032\u5EA6",guardJsonBtn:"Guard JSON",resizeWindowTitle:"\u8ABF\u6574\u5716\u7247\u5927\u5C0F",original:"\u539F\u59CB",labTolerance:"LAB\u5BB9\u932F",maintainProportion:"\u4FDD\u6301\u6BD4\u4F8B",skipColor:"\u8DF3\u904E\u984F\u8272",skipColorEnabled:"\u53EA\u7E6A\u88FD\u5B8C\u5168\u5339\u914D\u7684\u984F\u8272",similarityThreshold:"\u76F8\u4F3C\u5EA6\u95BE\u503C",skipColorDescription:"\u53EA\u6703\u7E6A\u88FD\u5B8C\u5168\u5339\u914D\u7684\u984F\u8272\uFF08100%\u76F8\u4F3C\u5EA6\uFF09\u3002",applyResize:"\u61C9\u7528",cancelResize:"\u53D6\u6D88",patternSnake:"\u86C7\u5F62\uFF08\u4E4B\u5B57\u5F62\uFF09",patternDiagonalSweep:"\u5C0D\u89D2\u6383\u63CF",patternBorders:"\u908A\u6846\u512A\u5148",patternCenter:"\u4E2D\u5FC3\u512A\u5148",patternQuadrants:"\u8C61\u9650",patternBiasedRandom:"\u504F\u5411\u96A8\u6A5F\uFF08\u908A\u6846\uFF09",patternClusters:"\u96C6\u7FA4",patternProximity:"\u9130\u8FD1\u6027",patternSweep:"\u5206\u5340\u6383\u63CF",patternPriority:"\u512A\u5148\u7D1A\uFF08\u6DF7\u5408\uFF09",patternAnchorPoints:"\u9328\u9EDE",patternSpiralCw:"\u87BA\u65CB\uFF08\u9806\u6642\u91DD\uFF09",patternSpiralCcw:"\u87BA\u65CB\uFF08\u9006\u6642\u91DD\uFF09",noProgressToSave:"\u6C92\u6709\u8981\u4FDD\u5B58\u7684\u9032\u5EA6",progressSaveSuccess:"\u9032\u5EA6\u5DF2\u4FDD\u5B58\u70BA {filename}",progressLoadSuccess:"\u9032\u5EA6\u5DF2\u52A0\u8F09\uFF1A{painted}/{total} \u50CF\u7D20\u5DF2\u7E6A\u88FD",invalidProgressFile:"\u9032\u5EA6\u6587\u4EF6\u7121\u6548",missingFields:"\u7F3A\u5C11\u5FC5\u9700\u5B57\u6BB5\uFF1A{fields}",guardDialogTitle:"\u751F\u6210 Guard JSON",guardDialogMessage:"\u662F\u5426\u8981\u4F7F\u7528\u7576\u524D\u6578\u64DA\u751F\u6210 Guard JSON \u6587\u4EF6\uFF1F",guardDialogInfo:`\u5716\u7247\uFF1A{name}
\u5C3A\u5BF8\uFF1A{width}x{height}
\u50CF\u7D20\uFF1A{pixels}`,generateGuard:"\u751F\u6210 Guard",guardJsonInvalidStructure:"\u274C Guard JSON \u7D50\u69CB\u7121\u6548\u3002\u4E2D\u6B62\u4FDD\u5B58\u3002",guardJsonInvalidMessage:"Guard JSON \u7D50\u69CB\u7121\u6548\u3002\u9078\u64C7\u4F4D\u7F6E\u5F8C\u91CD\u8A66\u3002",guardJsonSaveSuccess:"\u2705 Guard JSON \u5DF2\u4FDD\u5B58\uFF1A{filename}",guardJsonSaveError:"\u274C \u4FDD\u5B58 Guard JSON \u932F\u8AA4\uFF1A{error}",notificationInfo:"\u4FE1\u606F",notificationSuccess:"\u6210\u529F",notificationWarning:"\u8B66\u544A",notificationError:"\u932F\u8AA4",paintPattern:"\u{1F4D0} \u7E6A\u88FD\u6A21\u5F0F",patternLinearStart:"\u7DDA\u6027\uFF08\u8D77\u9EDE\uFF09",patternLinearEnd:"\u7DDA\u6027\uFF08\u7D42\u9EDE\uFF09",patternRandom:"\u96A8\u6A5F",patternCenterOut:"\u7531\u4E2D\u5FC3\u5411\u5916",patternCornersFirst:"\u5148\u89D2\u843D",patternSpiral:"\u87BA\u65CB",logWindow:"Logs",logWindowTitle:"\u65E5\u8A8C\u8996\u7A97",downloadLogs:"\u4E0B\u8F09\u65E5\u8A8C",clearLogs:"\u6E05\u9664\u65E5\u8A8C",closeLogs:"\u95DC\u9589",userInfo:"\u7528\u6236\u4FE1\u606F",imageProgress:"\u5716\u7247\u9032\u5EA6",availableColors:"\u53EF\u7528\u984F\u8272",noImageLoaded:"\u6C92\u6709\u52A0\u8F09\u5716\u7247",cooldown:"\u51B7\u537B\u6642\u9593",totalColors:"\u7E3D\u984F\u8272\u6578",colorPalette:"\u984F\u8272\u8ABF\u8272\u677F",showAllColors:"\u986F\u793A\u6240\u6709\u984F\u8272\uFF08\u5305\u62EC\u4E0D\u53EF\u7528\u7684\uFF09",selectAllColors:"\u9078\u64C7\u5168\u90E8",unselectAllColors:"\u53D6\u6D88\u5168\u9078",noAvailable:"\u4E0D\u53EF\u7528",colorSelected:"\u5DF2\u9078\u64C7\u984F\u8272",statsUpdated:"\u2705 \u7D71\u8A08\u5DF2\u66F4\u65B0\uFF1A{count} \u7A2E\u53EF\u7528\u984F\u8272"},farm:{title:"\u{1F9D1}\u200D\u{1F33E} WPlace Farm",start:"\u958B\u59CB",stop:"\u505C\u6B62",stopped:"\u6A5F\u5668\u4EBA\u5DF2\u505C\u6B62",calibrate:"\u6821\u6E96",paintOnce:"\u4E00\u6B21",checkingStatus:"\u6AA2\u67E5\u72C0\u614B\u4E2D...",configuration:"\u914D\u7F6E",delay:"\u5EF6\u9072 (\u6BEB\u79D2)",pixelsPerBatch:"\u6BCF\u6279\u50CF\u7D20",minCharges:"\u6700\u5C11\u6B21\u6578",colorMode:"\u984F\u8272\u6A21\u5F0F",random:"\u96A8\u6A5F",fixed:"\u56FA\u5B9A",range:"\u7BC4\u570D",fixedColor:"\u56FA\u5B9A\u984F\u8272",advanced:"\u9AD8\u7D1A",tileX:"\u74E6\u7247 X",tileY:"\u74E6\u7247 Y",customPalette:"\u81EA\u5B9A\u7FA9\u8ABF\u8272\u677F",paletteExample:"\u4F8B\u5982: #FF0000,#00FF00,#0000FF",capture:"\u6355\u7372",painted:"\u5DF2\u7E6A\u88FD",charges:"\u6B21\u6578",retries:"\u91CD\u8A66",tile:"\u74E6\u7247",configSaved:"\u914D\u7F6E\u5DF2\u4FDD\u5B58",configLoaded:"\u914D\u7F6E\u5DF2\u52A0\u8F09",configReset:"\u914D\u7F6E\u5DF2\u91CD\u7F6E",captureInstructions:"\u8ACB\u624B\u52D5\u7E6A\u88FD\u4E00\u500B\u50CF\u7D20\u4EE5\u6355\u7372\u5EA7\u6A19...",backendOnline:"\u5F8C\u7AEF\u5728\u7DDA",backendOffline:"\u5F8C\u7AEF\u96E2\u7DDA",startingBot:"\u6B63\u5728\u5553\u52D5\u6A5F\u5668\u4EBA...",stoppingBot:"\u6B63\u5728\u505C\u6B62\u6A5F\u5668\u4EBA...",calibrating:"\u6821\u6E96\u4E2D...",alreadyRunning:"\u81EA\u52D5\u8FB2\u5834\u5DF2\u5728\u904B\u884C\u3002",imageRunningWarning:"\u81EA\u52D5\u7E6A\u5716\u6B63\u5728\u904B\u884C\uFF0C\u8ACB\u5148\u95DC\u9589\u518D\u5553\u52D5\u81EA\u52D5\u8FB2\u5834\u3002",selectPosition:"\u9078\u64C7\u5340\u57DF",selectPositionAlert:"\u{1F3AF} \u5728\u5730\u5716\u7684\u7A7A\u767D\u5340\u57DF\u5857\u4E00\u500B\u50CF\u7D20\u4EE5\u8A2D\u7F6E\u8FB2\u5834\u5340\u57DF",waitingPosition:"\u{1F446} \u7B49\u5F85\u4F60\u5857\u53C3\u8003\u50CF\u7D20...",positionSet:"\u2705 \u5340\u57DF\u8A2D\u7F6E\u6210\u529F\uFF01\u534A\u5F91: 500px",positionTimeout:"\u274C \u5340\u57DF\u9078\u64C7\u8D85\u6642",missingPosition:"\u274C \u8ACB\u5148\u9078\u64C7\u5340\u57DF\uFF08\u4F7F\u7528\u201C\u9078\u64C7\u5340\u57DF\u201D\u6309\u9215\uFF09",farmRadius:"\u8FB2\u5834\u534A\u5F91",positionInfo:"\u7576\u524D\u5340\u57DF",farmingInRadius:"\u{1F33E} \u6B63\u5728\u4EE5\u534A\u5F91 {radius}px \u5728 ({x},{y}) \u8FB2\u5834",selectEmptyArea:"\u26A0\uFE0F \u91CD\u8981: \u8ACB\u9078\u64C7\u7A7A\u767D\u5340\u57DF\u4EE5\u907F\u514D\u885D\u7A81",noPosition:"\u672A\u9078\u64C7\u5340\u57DF",currentZone:"\u5340\u57DF: ({x},{y})",autoSelectPosition:"\u{1F3AF} \u8ACB\u5148\u9078\u64C7\u5340\u57DF\uFF0C\u5728\u5730\u5716\u4E0A\u5857\u4E00\u500B\u50CF\u7D20\u4EE5\u8A2D\u7F6E\u8FB2\u5834\u5340\u57DF",logWindow:"Logs",logWindowTitle:"\u65E5\u8A8C\u8996\u7A97",downloadLogs:"\u4E0B\u8F09\u65E5\u8A8C",clearLogs:"\u6E05\u9664\u65E5\u8A8C",closeLogs:"\u95DC\u9589",ready:"\u5C31\u7DD2",once:"\u4E00\u6B21",recapture:"\u91CD\u65B0\u6355\u7372",position:"\u4F4D\u7F6E",stats:{painted:"\u5DF2\u7E6A\u88FD",charges:"\u6B21\u6578",droplets:"\u6C34\u6EF4",user:"\u7528\u6236",retries:"\u91CD\u8A66"},config:{minCharges:"\u6700\u5C11\u6B21\u6578",delay:"\u7B49\u5F85\u6642\u9593\uFF08\u79D2\uFF09",pixelsPerBatch:"\u6BCF\u6279\u50CF\u7D20\u6578"},color:{fixed:"\u56FA\u5B9A",range:"\u7BC4\u570D",random:"\u96A8\u6A5F",selected:"\u5DF2\u9078\u64C7\u984F\u8272",min:"\u6700\u5C0F",max:"\u6700\u5927"},autobuy:{title:"\u81EA\u52D5\u8CFC\u8CB7\uFF08+5\u6B21\u6578\uFF09",hint:"\u7576\u4F60\u6709\u2265500\u6C34\u6EF4\u6642\u5C07\u81EA\u52D5\u6FC0\u6D3B"},buyCharges:"\u8CFC\u8CB7+5\u6B21\u6578",buying:"\u8CFC\u8CB7\u4E2D...",buyOk:"\u8CFC\u8CB7\u6210\u529F\u3002\u5237\u65B0\u6703\u8A71\u3002",buyFail:"\u7121\u6CD5\u8CFC\u8CB7"},common:{yes:"\u662F",no:"\u5426",ok:"\u78BA\u8A8D",cancel:"\u53D6\u6D88",close:"\u95DC\u9589",save:"\u4FDD\u5B58",load:"\u52A0\u8F09",delete:"\u522A\u9664",edit:"\u7DE8\u8F2F",start:"\u958B\u59CB",stop:"\u505C\u6B62",pause:"\u66AB\u505C",resume:"\u7E7C\u7E8C",reset:"\u91CD\u7F6E",settings:"\u8A2D\u7F6E",help:"\u5E6B\u52A9",about:"\u95DC\u65BC",language:"\u8A9E\u8A00",loading:"\u52A0\u8F09\u4E2D...",error:"\u932F\u8AA4",success:"\u6210\u529F",warning:"\u8B66\u544A",info:"\u4FE1\u606F",languageChanged:"\u8A9E\u8A00\u5DF2\u5207\u63DB\u70BA {language}"},guard:{title:"WPlace Auto-Guard",initBot:"\u521D\u59CB\u5316\u5B88\u8B77\u6A5F\u5668\u4EBA",selectArea:"\u9078\u64C7\u5340\u57DF",save:"\u4FDD\u5B58",loadFile:"\u52A0\u8F09\u6587\u4EF6",reposition:"\u91CD\u65B0\u5B9A\u4F4D",analyzeArea:"\u5206\u6790\u5340\u57DF",logs:"\u65E5\u8A8C",watcher:"\u76E3\u8996\u5668",configuration:"\u914D\u7F6E",startErase:"\u958B\u59CB\u64E6\u9664",stopWatcher:"\u505C\u6B62\u76E3\u8996\u5668",minimize:"\u6700\u5C0F\u5316",expand:"\u5C55\u958B",nextBatchIn:"\u4E0B\u4E00\u6279: ",captureArea:"\u6355\u7372\u5340\u57DF",startProtection:"\u958B\u59CB",stopProtection:"\u505C\u6B62",upperLeft:"\u5DE6\u4E0A\u89D2",lowerRight:"\u53F3\u4E0B\u89D2",protectedPixels:"\u53D7\u4FDD\u8B77\u50CF\u7D20",detectedChanges:"\u6AA2\u6E2C\u5230\u7684\u8B8A\u5316",repairedPixels:"\u4FEE\u5FA9\u7684\u50CF\u7D20",charges:"\u6B21\u6578",waitingInit:"\u7B49\u5F85\u521D\u59CB\u5316...",checkingColors:"\u{1F3A8} \u6AA2\u67E5\u53EF\u7528\u984F\u8272...",noColorsFound:"\u274C \u672A\u627E\u5230\u984F\u8272\uFF0C\u8ACB\u5728\u7DB2\u7AD9\u4E0A\u6253\u958B\u8ABF\u8272\u677F\u3002",colorsFound:"\u2705 \u627E\u5230 {count} \u7A2E\u53EF\u7528\u984F\u8272",initSuccess:"\u2705 \u5B88\u8B77\u6A5F\u5668\u4EBA\u521D\u59CB\u5316\u6210\u529F",initError:"\u274C \u5B88\u8B77\u6A5F\u5668\u4EBA\u521D\u59CB\u5316\u5931\u6557",invalidCoords:"\u274C \u5EA7\u6A19\u7121\u6548",invalidArea:"\u274C \u5340\u57DF\u7121\u6548\uFF0C\u5DE6\u4E0A\u89D2\u5FC5\u9808\u5C0F\u65BC\u53F3\u4E0B\u89D2",areaTooLarge:"\u274C \u5340\u57DF\u904E\u5927: {size} \u50CF\u7D20 (\u6700\u5927: {max})",capturingArea:"\u{1F4F8} \u6355\u7372\u5340\u57DF\u4E2D...",areaCaptured:"\u2705 \u5340\u57DF\u6355\u7372\u6210\u529F: {count} \u50CF\u7D20",captureError:"\u274C \u6355\u7372\u5340\u57DF\u51FA\u932F: {error}",captureFirst:"\u274C \u8ACB\u5148\u6355\u7372\u4E00\u500B\u5340\u57DF",noChanges:"\u2705 \u5340\u57DF - \u672A\u6AA2\u6E2C\u5230\u8B8A\u5316",changesDetected:"\u{1F6A8} \u6AA2\u6E2C\u5230 {count} \u500B\u8B8A\u5316",repairing:"\u{1F6E0}\uFE0F \u6B63\u5728\u4FEE\u5FA9 {count} \u500B\u50CF\u7D20...",repairedSuccess:"\u2705 \u5DF2\u6210\u529F\u4FEE\u5FA9 {count} \u500B\u50CF\u7D20",repairError:"\u274C \u4FEE\u5FA9\u51FA\u932F: {error}",noCharges:"\u26A0\uFE0F \u6B21\u6578\u4E0D\u8DB3\uFF0C\u7121\u6CD5\u4FEE\u5FA9",checkingChanges:"\u{1F50D} \u6B63\u5728\u6AA2\u67E5\u5340\u57DF\u8B8A\u5316...",errorChecking:"\u274C \u6AA2\u67E5\u51FA\u932F: {error}",guardActive:"\u{1F6E1}\uFE0F \u5B88\u8B77\u4E2D - \u5340\u57DF\u53D7\u4FDD\u8B77",lastCheck:"\u4E0A\u6B21\u6AA2\u67E5: {time}",nextCheck:"\u4E0B\u6B21\u6AA2\u67E5: {time} \u79D2\u5F8C",autoInitializing:"\u{1F916} \u6B63\u5728\u81EA\u52D5\u521D\u59CB\u5316...",autoInitSuccess:"\u2705 \u81EA\u52D5\u5553\u52D5\u6210\u529F",autoInitFailed:"\u26A0\uFE0F \u7121\u6CD5\u81EA\u52D5\u5553\u52D5\uFF0C\u8ACB\u624B\u52D5\u64CD\u4F5C\u3002",manualInitRequired:"\u{1F527} \u9700\u8981\u624B\u52D5\u521D\u59CB\u5316",paletteDetected:"\u{1F3A8} \u5DF2\u6AA2\u6E2C\u5230\u8ABF\u8272\u677F",paletteNotFound:"\u{1F50D} \u6B63\u5728\u641C\u7D22\u8ABF\u8272\u677F...",clickingPaintButton:"\u{1F446} \u6B63\u5728\u9EDE\u64CA\u7E6A\u88FD\u6309\u9215...",paintButtonNotFound:"\u274C \u672A\u627E\u5230\u7E6A\u88FD\u6309\u9215",protectionStopped:"\u23F9\uFE0F \u4FDD\u8B77\u5DF2\u505C\u6B62",selectUpperLeft:"\u{1F3AF} \u5728\u9700\u8981\u4FDD\u8B77\u5340\u57DF\u7684\u5DE6\u4E0A\u89D2\u5857\u4E00\u500B\u50CF\u7D20",selectLowerRight:"\u{1F3AF} \u73FE\u5728\u5728\u53F3\u4E0B\u89D2\u5857\u4E00\u500B\u50CF\u7D20",waitingUpperLeft:"\u{1F446} \u7B49\u5F85\u9078\u64C7\u5DE6\u4E0A\u89D2...",waitingLowerRight:"\u{1F446} \u7B49\u5F85\u9078\u64C7\u53F3\u4E0B\u89D2...",upperLeftCaptured:"\u2705 \u5DF2\u6355\u7372\u5DE6\u4E0A\u89D2: ({x}, {y})",lowerRightCaptured:"\u2705 \u5DF2\u6355\u7372\u53F3\u4E0B\u89D2: ({x}, {y})",selectionTimeout:"\u274C \u9078\u64C7\u8D85\u6642",selectionError:"\u274C \u9078\u64C7\u51FA\u932F\uFF0C\u8ACB\u91CD\u8A66",logWindow:"Logs",logWindowTitle:"\u65E5\u8A8C\u8996\u7A97",downloadLogs:"\u4E0B\u8F09\u65E5\u8A8C",clearLogs:"\u6E05\u9664\u65E5\u8A8C",closeLogs:"\u95DC\u9589",analysisTitle:"\u5DEE\u7570\u5206\u6790 - JSON vs \u7576\u524D\u756B\u5E03",correctPixels:"\u6B63\u78BA\u50CF\u7D20",incorrectPixels:"\u932F\u8AA4\u50CF\u7D20",missingPixels:"\u7F3A\u5931\u50CF\u7D20",showCorrect:"\u986F\u793A\u6B63\u78BA",showIncorrect:"\u986F\u793A\u932F\u8AA4",showMissing:"\u986F\u793A\u7F3A\u5931",autoRefresh:"\u81EA\u52D5\u5237\u65B0",zoomAdjusted:"\u7E2E\u653E\u81EA\u52D5\u8ABF\u6574\u70BA",autoRefreshEnabled:"\u81EA\u52D5\u5237\u65B0\u5DF2\u555F\u7528\uFF0C\u9593\u9694",autoRefreshDisabled:"\u81EA\u52D5\u5237\u65B0\u5DF2\u7981\u7528",autoRefreshIntervalUpdated:"\u81EA\u52D5\u5237\u65B0\u9593\u9694\u5DF2\u66F4\u65B0\u70BA",visualizationUpdated:"\u8996\u89BA\u5316\u5DF2\u66F4\u65B0",noAreaOrPixels:"\u6C92\u6709\u53D7\u4FDD\u8B77\u5340\u57DF\u6216\u50CF\u7D20\u9032\u884C\u5206\u6790",noColorsDetected:"\u7121\u6CD5\u6AA2\u6E2C\u984F\u8272\u3002\u78BA\u4FDD\u8ABF\u8272\u677F\u5DF2\u6253\u958B\u3002",sessionRecordingStarted:"\u6703\u8A71\u9304\u5236\u5DF2\u958B\u59CB\uFF0C\u81EA\u52D5\u5237\u65B0\u5DF2\u555F\u7528",sessionRecordingStopped:"\u6703\u8A71\u9304\u5236\u5DF2\u505C\u6B62",noSessionData:"\u6C92\u6709\u6703\u8A71\u6578\u64DA\u53EF\u4E0B\u8F09",sessionDataDownloaded:"\u6703\u8A71\u6578\u64DA\u5DF2\u4E0B\u8F09",snapshotCaptureError:"\u6355\u7372\u5716\u50CF\u6642\u51FA\u932F",recordSession:"\u9304\u5236\u6703\u8A71",snapshot:"\u5FEB\u7167",downloadData:"\u4E0B\u8F09\u6578\u64DA",zoom:"\u7E2E\u653E",interval:"\u9593\u9694",seconds:"\u79D2",updateAnalysis:"\u66F4\u65B0\u5206\u6790",adjustZoom:"\u8ABF\u6574\u7E2E\u653E",precision:"\u7CBE\u5EA6",statistics:"\u7D71\u8A08",visualization:"\u8996\u89BA\u5316",recording:"\u9304\u5236",configTitle:"Guard\u914D\u7F6E",protectionPatterns:"\u4FDD\u8B77\u6A21\u5F0F",preferSpecificColor:"\u512A\u5148\u7279\u5B9A\u984F\u8272",excludeSpecificColors:"\u4E0D\u4FEE\u5FA9\u7279\u5B9A\u984F\u8272",loadManagement:"\u8CA0\u8F09\u7BA1\u7406",minLoadsToWait:"\u7B49\u5F85\u7684\u6700\u5C0F\u8CA0\u8F09\u6578",pixelsPerBatch:"\u6BCF\u6279\u50CF\u7D20\u6578",spendAllPixelsOnStart:"\u555F\u52D5\u6642\u6D88\u8017\u6240\u6709\u50CF\u7D20",waitTimes:"\u7B49\u5F85\u6642\u9593",useRandomTimes:"\u6279\u6B21\u9593\u4F7F\u7528\u96A8\u6A5F\u6642\u9593",minTime:"\u6700\u5C0F\u6642\u9593 (\u79D2)",maxTime:"\u6700\u5927\u6642\u9593 (\u79D2)"},slave:{title:"WPlace Slave",initBot:"\u521D\u59CB\u5316Slave-BOT",startPainting:"\u958B\u59CB",stopPainting:"\u505C\u6B62",logs:"\u65E5\u8A8C",configuration:"\u914D\u7F6E",minimize:"\u6700\u5C0F\u5316",pixelsPerBatch:"\u6BCF\u6279\u50CF\u7D20\u6578",nextBatchIn:"\u4E0B\u4E00\u6279: ",waitingInit:"\u7B49\u5F85\u521D\u59CB\u5316...",checkingColors:"\u{1F3A8} \u6AA2\u67E5\u53EF\u7528\u984F\u8272...",noColorsFound:"\u274C \u672A\u627E\u5230\u984F\u8272\uFF0C\u8ACB\u5728\u7DB2\u7AD9\u4E0A\u6253\u958B\u8ABF\u8272\u677F\u3002",colorsFound:"\u2705 \u627E\u5230 {count} \u7A2E\u53EF\u7528\u984F\u8272",initSuccess:"\u2705 Slave-BOT\u521D\u59CB\u5316\u6210\u529F",initError:"\u274C Slave-BOT\u521D\u59CB\u5316\u5931\u6557",noCoordsSet:"\u274C \u672A\u8A2D\u7F6E\u5EA7\u6A19\u3002\u8ACB\u5148\u4F7F\u7528WPlace AutoBOT Image\u3002",noCoordsData:"\u274C \u5EA7\u6A19\u6578\u64DA\u4E0D\u53EF\u7528\u3002\u8ACB\u5148\u5728WPlace AutoBOT Image\u4E2D\u8A2D\u7F6E\u5EA7\u6A19\u3002",coordsLoaded:"\u2705 \u5F9EWPlace AutoBOT Image\u8F09\u5165\u4E86 {count} \u500B\u5EA7\u6A19",coordsError:"\u274C \u8F09\u5165\u5EA7\u6A19\u932F\u8AA4: {error}",paintingStarted:"\u{1F3A8} \u7E6A\u88FD\u5DF2\u958B\u59CB",paintingStopped:"\u23F9\uFE0F \u7E6A\u88FD\u5DF2\u505C\u6B62",paintingPixel:"\u{1F58C}\uFE0F \u7E6A\u88FD\u50CF\u7D20 ({x}, {y}) \u984F\u8272 {color}",pixelPainted:"\u2705 \u50CF\u7D20\u7E6A\u88FD\u6210\u529F",pixelError:"\u274C \u7E6A\u88FD\u50CF\u7D20\u932F\u8AA4: {error}",batchComplete:"\u2705 \u6279\u6B21\u5B8C\u6210: {painted} / {total} \u50CF\u7D20\u5DF2\u7E6A\u88FD",batchError:"\u274C \u6279\u6B21\u57F7\u884C\u932F\u8AA4: {error}",allPixelsComplete:"\u{1F389} \u6240\u6709\u50CF\u7D20\u5B8C\u6210\uFF01",noCharges:"\u26A0\uFE0F \u6B21\u6578\u4E0D\u8DB3\uFF0C\u7121\u6CD5\u7E6A\u88FD",waitingForCharges:"\u23F3 \u7B49\u5F85\u6B21\u6578...",charges:"\u6B21\u6578",totalPixels:"\u7E3D\u50CF\u7D20\u6578",paintedPixels:"\u5DF2\u7E6A\u88FD\u50CF\u7D20",remainingPixels:"\u5269\u9918\u50CF\u7D20",currentBatch:"\u7576\u524D\u6279\u6B21",progress:"\u9032\u5EA6",estimatedTime:"\u9810\u8A08\u5B8C\u6210\u6642\u9593",autoInitializing:"\u{1F916} \u6B63\u5728\u81EA\u52D5\u521D\u59CB\u5316...",autoInitSuccess:"\u2705 Slave-BOT\u81EA\u52D5\u5553\u52D5\u6210\u529F",autoInitFailed:"\u26A0\uFE0F \u7121\u6CD5\u81EA\u52D5\u5553\u52D5\u3002\u8ACB\u4F7F\u7528\u624B\u52D5\u5553\u52D5\u6309\u9215\u3002",manualInitRequired:"\u{1F527} \u9700\u8981\u624B\u52D5\u521D\u59CB\u5316",paletteDetected:"\u{1F3A8} \u5DF2\u6AA2\u6E2C\u5230\u8ABF\u8272\u677F",paletteNotFound:"\u{1F50D} \u6B63\u5728\u641C\u7D22\u8ABF\u8272\u677F...",clickingPaintButton:"\u{1F446} \u6B63\u5728\u9EDE\u64CA\u7E6A\u88FD\u6309\u9215...",paintButtonNotFound:"\u274C \u672A\u627E\u5230\u7E6A\u88FD\u6309\u9215",logWindow:"\u65E5\u8A8C",logWindowTitle:"\u65E5\u8A8C\u8996\u7A97",downloadLogs:"\u4E0B\u8F09\u65E5\u8A8C",clearLogs:"\u6E05\u9664\u65E5\u8A8C",closeLogs:"\u95DC\u9589",configTitle:"Slave\u914D\u7F6E",loadManagement:"\u8CA0\u8F09\u7BA1\u7406",minLoadsToWait:"\u7B49\u5F85\u7684\u6700\u5C0F\u8CA0\u8F09\u6578",pixelsPerBatchConfig:"\u6BCF\u6279\u50CF\u7D20\u6578",spendAllPixelsOnStart:"\u555F\u52D5\u6642\u6D88\u8017\u6240\u6709\u50CF\u7D20",waitTimes:"\u7B49\u5F85\u6642\u9593",useRandomTimes:"\u6279\u6B21\u9593\u4F7F\u7528\u96A8\u6A5F\u6642\u9593",minTime:"\u6700\u5C0F\u6642\u9593 (\u79D2)",maxTime:"\u6700\u5927\u6642\u9593 (\u79D2)"}};var St={launcher:{title:"WPlace AutoBOT",autoFarm:"\u{1F33E} Auto-Farm",autoImage:"\u{1F3A8} Auto-Image",autoGuard:"\u{1F6E1}\uFE0F Auto-Guard",autoSlave:"\u{1F517} Slave",selection:"Sele\xE7\xE3o",user:"Usu\xE1rio",charges:"Cargas",backend:"Backend",database:"Banco de Dados",uptime:"Tempo Ativo",close:"Fechar",launch:"Iniciar",loading:"Carregando\u2026",executing:"Executando\u2026",downloading:"Baixando script\u2026",chooseBot:"Escolha um bot e pressione Iniciar",readyToLaunch:"Pronto para iniciar",loadError:"Erro de carregamento",loadErrorMsg:"N\xE3o foi poss\xEDvel carregar o bot selecionado. Verifique sua conex\xE3o ou tente novamente.",checking:"\u{1F504} Verificando...",online:"\u{1F7E2} Online",offline:"\u{1F534} Offline",ok:"\u{1F7E2} OK",error:"\u{1F534} Erro",unknown:"-",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"Baixar Logs",clearLogs:"Limpar Logs",closeLogs:"Fechar",localExecution:"Execu\xE7\xE3o local com acesso completo ao sistema de tokens",botStarting:"Bot iniciando..."},image:{title:"WPlace Auto-Image",initBot:"Inicializar Auto-BOT",uploadImage:"Carregar Imagem",resizeImage:"Redimensionar Imagem",selectPosition:"Selecionar Posi\xE7\xE3o",startPainting:"Iniciar Pintura",stopPainting:"Parar Pintura",saveProgress:"Salvar Progresso",loadProgress:"Carregar Progresso",checkingColors:"\u{1F50D} Verificando cores dispon\xEDveis...",noColorsFound:"\u274C Abra a paleta de cores no site e tente novamente!",colorsFound:"\u2705 Encontradas {count} cores dispon\xEDveis",loadingImage:"\u{1F5BC}\uFE0F Carregando imagem...",imageLoaded:"\u2705 Imagem carregada com {count} pixels v\xE1lidos",imageError:"\u274C Erro ao carregar imagem",selectPositionAlert:"Pinte o primeiro pixel no local onde voc\xEA quer que a arte comece!",waitingPosition:"\u{1F446} Aguardando voc\xEA pintar o pixel de refer\xEAncia...",positionSet:"\u2705 Posi\xE7\xE3o definida com sucesso!",positionTimeout:"\u274C Tempo esgotado para sele\xE7\xE3o de posi\xE7\xE3o",positionDetected:"\u{1F3AF} Posi\xE7\xE3o detectada, processando...",positionError:"\u274C Erro ao detectar posi\xE7\xE3o, tente novamente",startPaintingMsg:"\u{1F3A8} Iniciando pintura...",paintingProgress:"\u{1F9F1} Progresso: {painted}/{total} pixels...",noCharges:"\u231B Sem cargas. Aguardando {time}...",paintingStopped:"\u23F9\uFE0F Pintura parada pelo usu\xE1rio",paintingComplete:"\u2705 Pintura conclu\xEDda! {count} pixels pintados.",paintingError:"\u274C Erro durante a pintura",missingRequirements:"\u274C Carregue uma imagem e selecione uma posi\xE7\xE3o primeiro",progress:"Progresso",userName:"Usu\xE1rio",pixels:"Pixels",charges:"Cargas",estimatedTime:"Tempo estimado",initMessage:"Clique em 'Inicializar Auto-BOT' para come\xE7ar",waitingInit:"Aguardando inicializa\xE7\xE3o...",resizeSuccess:"\u2705 Imagem redimensionada para {width}x{height}",paintingPaused:"\u23F8\uFE0F Pintura pausada na posi\xE7\xE3o X: {x}, Y: {y}",pixelsPerBatch:"Pixels por lote",batchSize:"Tamanho do lote",nextBatchTime:"Pr\xF3ximo lote em",useAllCharges:"Usar todas as cargas dispon\xEDveis",showOverlay:"Mostrar sobreposi\xE7\xE3o",maxCharges:"M\xE1ximo de cargas por lote",waitingForCharges:"\u23F3 Aguardando cargas: {current}/{needed}",timeRemaining:"Tempo restante",cooldownWaiting:"\u23F3 Aguardando {time} para continuar...",progressSaved:"\u2705 Progresso salvo como {filename}",progressLoaded:"\u2705 Progresso carregado: {painted}/{total} pixels pintados",progressLoadError:"\u274C Erro ao carregar progresso: {error}",progressSaveError:"\u274C Erro ao salvar progresso: {error}",confirmSaveProgress:"Voc\xEA quer salvar o progresso atual antes de parar?",saveProgressTitle:"Salvar Progresso",discardProgress:"Descartar",cancel:"Cancelar",minimize:"Minimizar",width:"Largura",height:"Altura",keepAspect:"Manter propor\xE7\xE3o",apply:"Aplicar",overlayOn:"Sobreposi\xE7\xE3o: LIGADA",overlayOff:"Sobreposi\xE7\xE3o: DESLIGADA",passCompleted:"\u2705 Passagem conclu\xEDda: {painted} pixels pintados | Progresso: {percent}% ({current}/{total})",waitingChargesRegen:"\u23F3 Aguardando regenera\xE7\xE3o de cargas: {current}/{needed} - Tempo: {time}",waitingChargesCountdown:"\u23F3 Aguardando cargas: {current}/{needed} - Restante: {time}",autoInitializing:"\u{1F916} Auto-inicializando...",autoInitSuccess:"\u2705 Bot iniciado automaticamente com sucesso",autoInitFailed:"\u26A0\uFE0F N\xE3o foi poss\xEDvel iniciar automaticamente. Use o bot\xE3o manual.",paletteDetected:"\u{1F3A8} Paleta de cores detectada",paletteNotFound:"\u{1F50D} Procurando paleta de cores...",clickingPaintButton:"\u{1F446} Clicando no bot\xE3o Pintar...",paintButtonNotFound:"\u274C Bot\xE3o Pintar n\xE3o encontrado",manualInitRequired:"\u{1F527} Inicializa\xE7\xE3o manual necess\xE1ria",retryAttempt:"\u{1F504} Tentativa {attempt}/{maxAttempts} em {delay}s...",retryError:"\u{1F4A5} Erro na tentativa {attempt}/{maxAttempts}, tentando novamente em {delay}s...",retryFailed:"\u274C Falhou ap\xF3s {maxAttempts} tentativas. Continuando com o pr\xF3ximo lote...",networkError:"\u{1F310} Erro de rede. Tentando novamente...",serverError:"\u{1F525} Erro do servidor. Tentando novamente...",timeoutError:"\u23F0 Timeout do servidor, tentando novamente...",saveProgressBtn:"Salvar progresso",guardJsonBtn:"Guard JSON",resizeWindowTitle:"Redimensionar Imagem",original:"Original",labTolerance:"Toler\xE2ncia LAB",maintainProportion:"Manter propor\xE7\xE3o",skipColor:"Pular Cor",skipColorEnabled:"Pular cores que n\xE3o correspondem exatamente",similarityThreshold:"Limiar de similaridade",skipColorDescription:"Apenas correspond\xEAncias exatas de cor ser\xE3o pintadas (100% de similaridade).",applyResize:"Aplicar",cancelResize:"Cancelar",patternSnake:"Cobra (Zigzag)",patternDiagonalSweep:"Varredura diagonal",patternBorders:"Bordas primeiro",patternCenter:"Centro primeiro",patternQuadrants:"Quadrantes",patternBiasedRandom:"Aleat\xF3rio tendencioso (bordas)",patternClusters:"Agrupamentos",patternProximity:"Proximidade",patternSweep:"Varredura por se\xE7\xF5es",patternPriority:"Prioridade (misto)",patternAnchorPoints:"Pontos \xE2ncora",patternSpiralCw:"Espiral (sentido hor\xE1rio)",patternSpiralCcw:"Espiral (sentido anti-hor\xE1rio)",noProgressToSave:"Nenhum progresso para salvar",progressSaveSuccess:"Progresso salvo como {filename}",progressLoadSuccess:"Progresso carregado: {painted}/{total} pixels pintados",invalidProgressFile:"Arquivo de progresso inv\xE1lido",missingFields:"Campos obrigat\xF3rios ausentes: {fields}",guardDialogTitle:"Gerar Guard JSON",guardDialogMessage:"Voc\xEA quer gerar um arquivo Guard JSON com os dados atuais?",guardDialogInfo:`Imagem: {name}
Dimens\xF5es: {width}x{height}
Pixels: {pixels}`,generateGuard:"Gerar Guard",guardJsonInvalidStructure:"\u274C Estrutura inv\xE1lida para Guard JSON. Cancelando salvamento.",guardJsonInvalidMessage:"Estrutura de Guard JSON inv\xE1lida. Tente novamente ap\xF3s selecionar posi\xE7\xE3o.",guardJsonSaveSuccess:"\u2705 Guard JSON salvo: {filename}",guardJsonSaveError:"\u274C Erro ao salvar Guard JSON: {error}",notificationInfo:"Informa\xE7\xE3o",notificationSuccess:"Sucesso",notificationWarning:"Aviso",notificationError:"Erro",paintPattern:"\u{1F3A8} Padr\xE3o de pintura",patternLinearStart:"Linear (In\xEDcio)",patternLinearEnd:"Linear (Fim)",patternRandom:"Aleat\xF3rio",patternCenterOut:"Centro para fora",patternCornersFirst:"Cantos primeiro",patternSpiral:"Espiral",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"Baixar Logs",clearLogs:"Limpar Logs",closeLogs:"Fechar",userInfo:"Informa\xE7\xF5es do Usu\xE1rio",imageProgress:"Progresso da Imagem",availableColors:"Cores Dispon\xEDveis",noImageLoaded:"Nenhuma imagem carregada",cooldown:"Cooldown",totalColors:"Total de Cores",colorPalette:"Paleta de Cores",showAllColors:"Mostrar Todas as Cores (incluindo indispon\xEDveis)",selectAllColors:"Selecionar Todas",unselectAllColors:"Desselecionar Todas",noAvailable:"N\xE3o dispon\xEDvel",colorSelected:"Cor selecionada",statsUpdated:"\u2705 Estat\xEDsticas atualizadas: {count} cores dispon\xEDveis"},farm:{title:"\u{1F9D1}\u200D\u{1F33E} WPlace Farm",start:"Iniciar",stop:"Parar",stopped:"Bot parado",calibrate:"Calibrar",paintOnce:"Uma vez",checkingStatus:"Verificando status...",configuration:"Configura\xE7\xE3o",delay:"Atraso (ms)",pixelsPerBatch:"Pixels/lote",minCharges:"Min cargas",colorMode:"Modo de cor",random:"Aleat\xF3rio",fixed:"Fixo",range:"Intervalo",fixedColor:"Cor fixa",advanced:"Avan\xE7ado",tileX:"Tile X",tileY:"Tile Y",customPalette:"Paleta personalizada",paletteExample:"ex: #FF0000,#00FF00,#0000FF",capture:"Capturar",painted:"Pintado",charges:"Cargas",retries:"Tentativas",position:"Posi\xE7\xE3o",tile:"Tile",configSaved:"Configura\xE7\xE3o salva",configLoaded:"Configura\xE7\xE3o carregada",configReset:"Configura\xE7\xE3o resetada",captureInstructions:"Pinte um pixel manualmente para capturar coordenadas...",backendOnline:"Backend Online",backendOffline:"Backend Offline",startingBot:"Iniciando bot...",stoppingBot:"Parando bot...",calibrating:"Calibrando...",alreadyRunning:"Auto-Farm j\xE1 est\xE1 rodando.",imageRunningWarning:"Auto-Image est\xE1 rodando. Feche-o antes de iniciar Auto-Farm.",selectPositionAlert:"\u{1F3AF} Pinte um pixel em uma \xE1rea VAZIA do mapa para definir a zona de farming",waitingPosition:"\u{1F446} Aguardando voc\xEA pintar o pixel de refer\xEAncia...",positionSet:"\u2705 Zona definida!",positionTimeout:"\u274C Tempo esgotado para sele\xE7\xE3o de zona",missingPosition:"\u274C Selecione uma zona primeiro usando 'Selecionar Zona'",farmRadius:"Raio de farming",positionInfo:"Zona atual",farmingInRadius:"\u{1F33E} Fazendo farming em {radius}px de raio de ({x},{y})",selectEmptyArea:"\u26A0\uFE0F IMPORTANTE: Selecione uma \xE1rea VAZIA para evitar conflitos",noPosition:"Nenhuma zona",currentZone:"Zona: ({x},{y})",autoSelectPosition:"\u{1F3AF} Selecione uma zona primeiro. Pinte um pixel no mapa para definir a zona de farming",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"Baixar Logs",clearLogs:"Limpar Logs",closeLogs:"Fechar",ready:"Pronto",once:"Uma vez",recapture:"Recapturar",selectPosition:"Selecionar",stats:{painted:"Pintado",charges:"Cargas",droplets:"Gotas",user:"Usu\xE1rio",retries:"Tentativas"},config:{minCharges:"Cargas m\xEDnimas",delay:"Aguardar (seg)",pixelsPerBatch:"Pixels por lote"},color:{fixed:"Fixo",range:"Intervalo",random:"Aleat\xF3rio",selected:"Cor selecionada",min:"Min",max:"Max"},autobuy:{title:"Compra autom\xE1tica (+5 cargas)",hint:"Ser\xE1 ativado automaticamente quando voc\xEA tiver \u2265 500 gotas"},buyCharges:"Comprar +5 cargas",buying:"Comprando...",buyOk:"Compra conclu\xEDda. Atualize a sess\xE3o.",buyFail:"N\xE3o foi poss\xEDvel comprar"},common:{yes:"Sim",no:"N\xE3o",ok:"OK",cancel:"Cancelar",close:"Fechar",save:"Salvar",load:"Carregar",delete:"Excluir",edit:"Editar",start:"Iniciar",stop:"Parar",pause:"Pausar",resume:"Retomar",reset:"Resetar",settings:"Configura\xE7\xF5es",help:"Ajuda",about:"Sobre",language:"Idioma",loading:"Carregando...",error:"Erro",success:"Sucesso",warning:"Aviso",info:"Informa\xE7\xE3o",languageChanged:"Idioma alterado para {language}"},guard:{title:"WPlace Auto-Guard",initBot:"Inicializar Guard-BOT",selectArea:"Selecionar \xC1rea",save:"Salvar",loadFile:"Carregar Arquivo",reposition:"Reposicionar",analyzeArea:"Analisar \xC1rea",logs:"Logs",watcher:"Observador",configuration:"Configura\xE7\xE3o",startErase:"Iniciar Apagar",stopWatcher:"Parar Observador",minimize:"Minimizar",expand:"Expandir",nextBatchIn:"Pr\xF3ximo lote em: ",captureArea:"Capturar \xC1rea",startProtection:"Iniciar",stopProtection:"Parar",protectedPixels:"Pixels Protegidos",upperLeft:"Canto Superior Esquerdo",lowerRight:"Canto Inferior Direito",detectedChanges:"Mudan\xE7as Detectadas",repairedPixels:"Pixels Reparados",charges:"Cargas",waitingInit:"Aguardando inicializa\xE7\xE3o...",checkingColors:"\u{1F3A8} Verificando cores dispon\xEDveis...",noColorsFound:"\u274C Nenhuma cor encontrada. Abra a paleta de cores no site.",colorsFound:"\u2705 Encontradas {count} cores dispon\xEDveis",initSuccess:"\u2705 Guard-BOT inicializado com sucesso",initError:"\u274C Erro ao inicializar Guard-BOT",invalidCoords:"\u274C Coordenadas inv\xE1lidas",invalidArea:"\u274C A \xE1rea deve ter o canto superior esquerdo menor que o canto inferior direito",areaTooLarge:"\u274C \xC1rea muito grande: {size} pixels (m\xE1ximo: {max})",capturingArea:"\u{1F4F8} Capturando \xE1rea...",areaCaptured:"\u2705 \xC1rea capturada: {count} pixels",captureError:"\u274C Erro ao capturar \xE1rea: {error}",captureFirst:"\u274C Primeiro capture uma \xE1rea",noChanges:"\u2705 \xC1rea - nenhuma mudan\xE7a detectada",changesDetected:"\u{1F6A8} {count} mudan\xE7as detectadas na \xE1rea",repairing:"\u{1F6E0}\uFE0F Reparando {count} pixels alterados...",repairedSuccess:"\u2705 {count} pixels reparados com sucesso",repairError:"\u274C Erro ao reparar pixels: {error}",noCharges:"\u26A0\uFE0F Cargas insuficientes para reparar mudan\xE7as",checkingChanges:"\u{1F50D} Verificando mudan\xE7as na \xE1rea...",errorChecking:"\u274C Erro ao verificar mudan\xE7as: {error}",guardActive:"\u{1F6E1}\uFE0F Guardi\xE3o ativo - \xE1rea monitorada",lastCheck:"\xDAltima verifica\xE7\xE3o: {time}",nextCheck:"Pr\xF3xima verifica\xE7\xE3o em: {time}s",autoInitializing:"\u{1F916} Auto-inicializando...",autoInitSuccess:"\u2705 Guard-BOT iniciado automaticamente com sucesso",autoInitFailed:"\u26A0\uFE0F N\xE3o foi poss\xEDvel iniciar automaticamente. Use o bot\xE3o manual.",manualInitRequired:"\u{1F527} Inicializa\xE7\xE3o manual necess\xE1ria",paletteDetected:"\u{1F3A8} Paleta de cores detectada",paletteNotFound:"\u{1F50D} Procurando paleta de cores...",clickingPaintButton:"\u{1F446} Clicando no bot\xE3o Pintar...",paintButtonNotFound:"\u274C Bot\xE3o Pintar n\xE3o encontrado",protectionStopped:"\u23F9\uFE0F Prote\xE7\xE3o parada",selectUpperLeft:"\u{1F3AF} Pinte um pixel no canto SUPERIOR ESQUERDO da \xE1rea para monitorar",selectLowerRight:"\u{1F3AF} Agora pinte um pixel no canto INFERIOR DIREITO da \xE1rea",waitingUpperLeft:"\u{1F446} Aguardando sele\xE7\xE3o do canto superior esquerdo...",waitingLowerRight:"\u{1F446} Aguardando sele\xE7\xE3o do canto inferior direito...",upperLeftCaptured:"\u2705 Canto superior esquerdo capturado: ({x}, {y})",lowerRightCaptured:"\u2705 Canto inferior direito capturado: ({x}, {y})",selectionTimeout:"\u274C Tempo esgotado para sele\xE7\xE3o",selectionError:"\u274C Erro na sele\xE7\xE3o, tente novamente",logWindow:"Logs",logWindowTitle:"Logs - {botName}",downloadLogs:"Baixar Logs",clearLogs:"Limpar Logs",closeLogs:"Fechar",analysisTitle:"An\xE1lise de Diferen\xE7as - JSON vs Canvas Atual",correctPixels:"Pixels Corretos",incorrectPixels:"Pixels Incorretos",missingPixels:"Pixels Ausentes",showCorrect:"Mostrar Corretos",showIncorrect:"Mostrar Incorretos",showMissing:"Mostrar Ausentes",autoRefresh:"Atualiza\xE7\xE3o autom\xE1tica",zoomAdjusted:"Zoom ajustado automaticamente para",autoRefreshEnabled:"Atualiza\xE7\xE3o autom\xE1tica ativada a cada",autoRefreshDisabled:"Atualiza\xE7\xE3o autom\xE1tica desativada",autoRefreshIntervalUpdated:"Intervalo de atualiza\xE7\xE3o autom\xE1tica atualizado para",visualizationUpdated:"Visualiza\xE7\xE3o atualizada",noAreaOrPixels:"Nenhuma \xE1rea protegida ou pixels carregados para analisar",noColorsDetected:"N\xE3o \xE9 poss\xEDvel detectar cores. Certifique-se de que a paleta est\xE1 aberta.",sessionRecordingStarted:"Grava\xE7\xE3o de sess\xE3o iniciada com atualiza\xE7\xE3o autom\xE1tica ativada",sessionRecordingStopped:"Grava\xE7\xE3o de sess\xE3o parada",noSessionData:"Nenhum dado de sess\xE3o para baixar",sessionDataDownloaded:"Dados de sess\xE3o baixados",snapshotCaptureError:"Erro ao capturar imagem",recordSession:"Gravar Sess\xE3o",snapshot:"Captura",downloadData:"Baixar Dados",zoom:"Zoom",interval:"Intervalo",seconds:"segundos",updateAnalysis:"Atualizar An\xE1lise",adjustZoom:"Ajustar Zoom",precision:"Precis\xE3o",statistics:"Estat\xEDsticas",visualization:"Visualiza\xE7\xE3o",recording:"Grava\xE7\xE3o",configTitle:"Configura\xE7\xE3o do Guard",protectionPatterns:"Padr\xF5es de Prote\xE7\xE3o",preferSpecificColor:"Priorizar cor espec\xEDfica",excludeSpecificColors:"N\xE3o reparar cores espec\xEDficas",loadManagement:"Gerenciamento de Carga",minLoadsToWait:"Cargas m\xEDnimas:",pixelsPerBatch:"Pixels por lote",spendAllPixelsOnStart:"Gastar todos os pixels no in\xEDcio",waitTimes:"Tempos de Espera",useRandomTimes:"Usar tempos aleat\xF3rios entre lotes",minTime:"Tempo m\xEDnimo (s)",maxTime:"Tempo m\xE1ximo (s)"},slave:{title:"WPlace Slave",masterServer:"Servidor Mestre",ipAddress:"Endere\xE7o IP",connect:"Conectar",disconnect:"Desconectar",status:"Status",slaveId:"ID do Slave",mode:"Modo",running:"Rodando",idle:"Ocioso",connected:"Conectado",connecting:"Conectando...",disconnected:"Desconectado",error:"Erro",close:"Fechar",telemetry:"Telemetria",repairedPixels:"Pixels Reparados",missingPixels:"Pixels Ausentes",absentPixels:"Pixels Ausentes",remainingCharges:"Cargas Restantes",connectionError:"Erro de conex\xE3o. Verifique a URL e se o servidor est\xE1 rodando.",invalidUrl:"Por favor, insira uma URL v\xE1lida",httpsUpgrade:"P\xE1gina HTTPS: mudando para wss:// para evitar conte\xFAdo misto.",slaveRunning:"Slave j\xE1 est\xE1 rodando.",slaveInitialized:"Slave inicializado com sucesso",slaveError:"Erro ao inicializar Slave",masterConnected:"Conectado ao servidor mestre",masterDisconnected:"Desconectado do servidor mestre",reconnecting:"Tentando reconectar",maxReconnectAttempts:"M\xE1ximo de tentativas de reconex\xE3o atingido",modeSet:"Modo configurado",projectLoaded:"Configura\xE7\xE3o do projeto carregada",botStarted:"Bot iniciado",botStopped:"Bot parado",botPaused:"Bot pausado"}};var X={es:ht,en:ft,de:wt,fr:xt,ru:bt,zhHans:yt,zhHant:Ct,pt:St},Be="es",Fe=X[Be];function ea(){let e=(window.navigator.language||window.navigator.userLanguage||"es").split("-")[0].toLowerCase();return X[e]?e:"es"}function ta(){return null}function aa(){var a;try{return((a=window.__wplaceBot)==null?void 0:a.globalLanguage)||null}catch{return null}}function ra(a){try{window.__wplaceBot||(window.__wplaceBot={}),window.__wplaceBot.globalLanguage=a}catch{}}function Me(){let a=aa(),e=ta(),t=ea(),r="es";return a&&X[a]?r=a:e&&X[e]?r=e:t&&X[t]&&(r=t),oa(r),r}function oa(a){if(!X[a]){console.warn(`Idioma '${a}' no disponible. Usando '${Be}'`);return}Be=a,Fe=X[a],ra(a),typeof window!="undefined"&&window.CustomEvent&&window.dispatchEvent(new window.CustomEvent("languageChanged",{detail:{language:a,translations:Fe}}))}function x(a,e={}){let t=a.split("."),r=Fe;for(let n of t)if(r&&typeof r=="object"&&n in r)r=r[n];else return console.warn(`Clave de traducci\xF3n no encontrada: '${a}'`),a;return typeof r!="string"?(console.warn(`Clave de traducci\xF3n no es string: '${a}'`),a):na(r,e)}function na(a,e){return!e||Object.keys(e).length===0?a:a.replace(/\{(\w+)\}/g,(t,r)=>e[r]!==void 0?e[r]:t)}Me();var me={0:{id:1,name:"Black",rgb:{r:0,g:0,b:0}},1:{id:2,name:"Dark Gray",rgb:{r:60,g:60,b:60}},2:{id:3,name:"Gray",rgb:{r:120,g:120,b:120}},3:{id:4,name:"Light Gray",rgb:{r:210,g:210,b:210}},4:{id:5,name:"White",rgb:{r:255,g:255,b:255}},5:{id:6,name:"Deep Red",rgb:{r:96,g:0,b:24}},6:{id:7,name:"Red",rgb:{r:237,g:28,b:36}},7:{id:8,name:"Orange",rgb:{r:255,g:127,b:39}},8:{id:9,name:"Gold",rgb:{r:246,g:170,b:9}},9:{id:10,name:"Yellow",rgb:{r:249,g:221,b:59}},10:{id:11,name:"Light Yellow",rgb:{r:255,g:250,b:188}},11:{id:12,name:"Dark Green",rgb:{r:14,g:185,b:104}},12:{id:13,name:"Green",rgb:{r:19,g:230,b:123}},13:{id:14,name:"Light Green",rgb:{r:135,g:255,b:94}},14:{id:15,name:"Dark Teal",rgb:{r:12,g:129,b:110}},15:{id:16,name:"Teal",rgb:{r:16,g:174,b:166}},16:{id:17,name:"Light Teal",rgb:{r:19,g:225,b:190}},17:{id:20,name:"Cyan",rgb:{r:96,g:247,b:242}},18:{id:44,name:"Light Cyan",rgb:{r:187,g:250,b:242}},19:{id:18,name:"Dark Blue",rgb:{r:40,g:80,b:158}},20:{id:19,name:"Blue",rgb:{r:64,g:147,b:228}},21:{id:21,name:"Indigo",rgb:{r:107,g:80,b:246}},22:{id:22,name:"Light Indigo",rgb:{r:153,g:177,b:251}},23:{id:23,name:"Dark Purple",rgb:{r:120,g:12,b:153}},24:{id:24,name:"Purple",rgb:{r:170,g:56,b:185}},25:{id:25,name:"Light Purple",rgb:{r:224,g:159,b:249}},26:{id:26,name:"Dark Pink",rgb:{r:203,g:0,b:122}},27:{id:27,name:"Pink",rgb:{r:236,g:31,b:128}},28:{id:28,name:"Light Pink",rgb:{r:243,g:141,b:169}},29:{id:29,name:"Dark Brown",rgb:{r:104,g:70,b:52}},30:{id:30,name:"Brown",rgb:{r:149,g:104,b:42}},31:{id:31,name:"Beige",rgb:{r:248,g:178,b:119}},32:{id:52,name:"Light Beige",rgb:{r:255,g:197,b:165}},33:{id:32,name:"Medium Gray",rgb:{r:170,g:170,b:170}},34:{id:33,name:"Dark Red",rgb:{r:165,g:14,b:30}},35:{id:34,name:"Light Red",rgb:{r:250,g:128,b:114}},36:{id:35,name:"Dark Orange",rgb:{r:228,g:92,b:26}},37:{id:37,name:"Dark Goldenrod",rgb:{r:156,g:132,b:49}},38:{id:38,name:"Goldenrod",rgb:{r:197,g:173,b:49}},39:{id:39,name:"Light Goldenrod",rgb:{r:232,g:212,b:95}},40:{id:40,name:"Dark Olive",rgb:{r:74,g:107,b:58}},41:{id:41,name:"Olive",rgb:{r:90,g:148,b:74}},42:{id:42,name:"Light Olive",rgb:{r:132,g:197,b:115}},43:{id:43,name:"Dark Cyan",rgb:{r:15,g:121,b:159}},44:{id:45,name:"Light Blue",rgb:{r:125,g:199,b:255}},45:{id:46,name:"Dark Indigo",rgb:{r:77,g:49,b:184}},46:{id:47,name:"Dark Slate Blue",rgb:{r:74,g:66,b:132}},47:{id:48,name:"Slate Blue",rgb:{r:122,g:113,b:196}},48:{id:49,name:"Light Slate Blue",rgb:{r:181,g:174,b:241}},49:{id:53,name:"Dark Peach",rgb:{r:155,g:82,b:73}},50:{id:54,name:"Peach",rgb:{r:209,g:128,b:120}},51:{id:55,name:"Light Peach",rgb:{r:250,g:182,b:164}},52:{id:50,name:"Light Brown",rgb:{r:219,g:164,b:99}},53:{id:56,name:"Dark Tan",rgb:{r:123,g:99,b:82}},54:{id:57,name:"Tan",rgb:{r:156,g:132,b:107}},55:{id:36,name:"Light Tan",rgb:{r:214,g:181,b:148}},56:{id:51,name:"Dark Beige",rgb:{r:209,g:128,b:81}},57:{id:61,name:"Dark Stone",rgb:{r:109,g:100,b:63}},58:{id:62,name:"Stone",rgb:{r:148,g:140,b:107}},59:{id:63,name:"Light Stone",rgb:{r:205,g:197,b:158}},60:{id:58,name:"Dark Slate",rgb:{r:51,g:57,b:65}},61:{id:59,name:"Slate",rgb:{r:109,g:117,b:141}},62:{id:60,name:"Light Slate",rgb:{r:179,g:185,b:209}},63:{id:0,name:"Transparent",rgb:null}};function ia(a){return Object.values(me).find(t=>t.id===a)||null}function he(a){let e=ia(a);return e?e.name:`Color ${a}`}function j(a,e,t){return Math.max(e,Math.min(t,a))}F();De();function Lt(a,e,t){var Ve,Ye,Je,Xe,Ze,Ke;let r=document.createElement("div");r.id="wplace-farm-ui",r.style.cssText='position: fixed; top: 12px; right: 12px; font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial;';let n=r.attachShadow({mode:"open"}),s=document.createElement("style");s.textContent=`
.panel{background:#1f2937;color:#e5e7eb;border:1px solid #374151;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.5);width:320px;overflow:hidden}
.header{display:flex;justify-content:space-between;align-items:center;background:#111827;color:#93c5fd;padding:10px 12px;font-weight:600;cursor:move;user-select:none}
.min-btn{background:transparent;border:1px solid #374151;color:#e5e7eb;border-radius:6px;width:26px;height:22px;line-height:20px;display:flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer;transition:all .2s}
.min-btn:hover{background:#1f2937}
.body{padding:12px;max-height:1000px;transition:max-height .35s ease, opacity .25s ease, padding .25s ease}
.body.collapsed{max-height:0;opacity:.0;overflow:hidden;padding:0}
.row{display:flex;gap:8px;margin:8px 0}
.btn{flex:1;padding:8px 10px;border:none;border-radius:8px;font-weight:700;cursor:pointer;transition:all .2s;font-size:13px}
.btn.primary{background:#2563eb;color:#fff}
.btn.ghost{background:transparent;border:1px solid #374151;color:#e5e7eb}
.btn.ghost.danger{background:#ef4444;color:#fff;border-color:#ef4444}
.btn.primary:disabled,.btn.ghost:disabled{opacity:.5;cursor:not-allowed}
.card{background:#111827;padding:10px;border-radius:8px;margin-top:10px}
.stat{display:flex;justify-content:space-between;margin:4px 0;font-size:12px;opacity:.95}
.status{margin-top:10px;padding:8px;border-radius:6px;text-align:center;font-size:12px;background:rgba(255,255,255,.06)}
.label{font-size:12px;color:#cbd5e1}
select,input{background:#111827;border:1px solid #374151;color:#e5e7eb;border-radius:6px;padding:6px 8px;font-size:12px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.colors{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}
.swatch{width:20px;height:20px;border:1px solid #374151;border-radius:4px;cursor:pointer}
.active{outline:2px solid #93c5fd}
/* Lista texto/valor para la configuraci\xF3n */
.list{display:flex;flex-direction:column;gap:8px}
.list-item{display:flex;align-items:center;justify-content:space-between;gap:8px}
.list-item .label{font-size:12px;color:#cbd5e1}
.list-item input{width:84px;text-align:center}
/* Parpadeo naranja para bot\xF3n Capturar */
@keyframes wpa-blink-orange{0%,100%{background:transparent;border-color:#f59e0b;color:#fde68a}50%{background:#f59e0b33;border-color:#f59e0b;color:#fff}}
.blink-orange{animation:wpa-blink-orange 1s infinite; border-width:2px !important}
`,n.appendChild(s);let o=document.createElement("div");o.className="panel",o.innerHTML=`
<div class="header"><span>${x("farm.title","\u{1F9D1}\u200D\u{1F33E} WPlace Farm")}</span><button id="minBtn" class="min-btn" title="${x("image.minimize","Minimizar")}">\u2013</button></div>
<div class="body">
<div class="row">
<button class="btn primary" id="startBtn">${x("farm.start","Iniciar")}</button>
<button class="btn ghost" id="stopBtn" disabled>${x("farm.stop","Detener")}</button>
<button class="btn ghost" id="logsBtn">${x("farm.logWindow","Logs")}</button>
</div>
<div class="card">
<div class="stat"><span>${x("farm.stats.painted","Pintados")}</span><span id="painted">0</span></div>
<div class="stat"><span>${x("farm.stats.charges","Cargas")}</span><span id="charges">0/0</span></div>
<div class="stat"><span>${x("farm.stats.droplets","Gotas")}</span><span id="droplets">0</span></div>
<div class="stat"><span>${x("farm.stats.user","Usuario")}</span><span id="username">-</span></div>
<div class="stat"><span>${x("farm.stats.retries","Reintentos")}</span><span id="retries">0</span></div>
</div>
<div class="card" id="cfgCard">
<div class="list">
<div class="list-item">
<span class="label">${x("farm.config.minCharges","Cargas m\xEDnimas")}</span>
<input type="number" id="minCharges" min="0" max="100" value="${(Ve=a.MIN_CHARGES)!=null?Ve:10}" />
</div>
<div class="list-item">
<span class="label">${x("farm.config.delay","Espera (seg)")}</span>
<input type="number" id="delaySeconds" min="1" max="120" value="${Math.round((a.DELAY_MS||15e3)/1e3)||15}" />
</div>
<div class="list-item">
<span class="label">${x("farm.pixelsPerBatch","P\xEDxeles por lote")}</span>
<input type="number" id="pixelsPerBatch" min="1" max="50" value="${(Ye=a.PIXELS_PER_BATCH)!=null?Ye:20}" />
</div>
</div>
</div>
<div class="card">
<div class="row">
<label class="label">${x("farm.colorMode","Modo de color")}</label>
<select id="colorMode">
<option value="fixed">${x("farm.color.fixed","Fijo")}</option>
<option value="range">${x("farm.color.range","Rango")}</option>
<option value="random">${x("farm.color.random","Aleatorio")}</option>
</select>
</div>
<div id="fixedPicker" class="row" style="flex-direction:column">
<div class="label" id="selectedColorLabel">${x("farm.color.selected","Color seleccionado")}: -</div>
<div class="colors" id="colorGrid"></div>
</div>
<div id="rangePicker" class="grid2" style="display:none;">
<div><label class="label">${x("farm.color.min","M\xEDn")}</label><select id="colorMin"></select></div>
<div><label class="label">${x("farm.color.max","M\xE1x")}</label><select id="colorMax"></select></div>
</div>
</div>
<div class="row">
<button class="btn ghost" id="capture-btn">${x("farm.capture","Capturar zona")}</button>
<button class="btn ghost" id="once-btn">${x("farm.once","Una vez")}</button>
<button class="btn ghost" id="select-position-btn" style="display:none">${x("farm.selectPosition","Select")}</button>
</div>
<div class="row" id="posInfoRow" style="display:none"></div>
<div class="card" id="purchaseCard">
<div class="row" style="align-items:center; justify-content:space-between;">
<span class="label" style="flex:1;">${x("farm.autobuy.title","Auto-compra (+5 cargas)")}</span>
<label class="toggle-switch" style="position: relative; display: inline-block; width: 50px; height: 26px; margin-left: 10px;">
<input type="checkbox" id="autoBuyCheckbox" style="opacity: 0; width: 0; height: 0;">
<span class="toggle-slider" style="
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ef4444;
transition: all 0.3s ease;
border-radius: 13px;
border: 1px solid #dc2626;
"></span>
<span class="toggle-knob" style="
position: absolute;
height: 20px;
width: 20px;
left: 3px;
top: 3px;
background-color: white;
transition: all 0.3s ease;
border-radius: 50%;
box-shadow: 0 2px 6px rgba(0,0,0,0.3);
"></span>
</label>
</div>
<div class="row" id="manualBuyRow" style="display:none; gap:8px; align-items:center;">
<button class="btn primary" id="manualBuyBtn">${x("farm.buyCharges","Comprar +5 cargas")}</button>
</div>
<div class="row" style="font-size:12px; color:#9ca3af">${x("farm.autobuy.hint","Se activar\xE1 autom\xE1ticamente cuando tengas \u2265 500 gotas")}</div>
</div>
</div>
<div class="status" id="status">${x("farm.ready","Listo")}</div>
`,n.appendChild(o);let i={start:o.querySelector("#startBtn"),stop:o.querySelector("#stopBtn"),logsBtn:o.querySelector("#logsBtn"),status:o.querySelector("#status"),painted:o.querySelector("#painted"),charges:o.querySelector("#charges"),droplets:o.querySelector("#droplets"),username:o.querySelector("#username"),retries:o.querySelector("#retries"),colorMode:o.querySelector("#colorMode"),colorGrid:o.querySelector("#colorGrid"),colorMin:o.querySelector("#colorMin"),colorMax:o.querySelector("#colorMax"),fixedPicker:o.querySelector("#fixedPicker"),rangePicker:o.querySelector("#rangePicker"),selectPositionBtn:o.querySelector("#select-position-btn"),captureBtn:o.querySelector("#capture-btn"),onceBtn:o.querySelector("#once-btn"),posInfoValue:o.querySelector("#posInfoValue"),minCharges:o.querySelector("#minCharges"),delaySeconds:o.querySelector("#delaySeconds"),pixelsPerBatch:o.querySelector("#pixelsPerBatch"),selectedColorLabel:o.querySelector("#selectedColorLabel"),autoBuyCheckbox:o.querySelector("#autoBuyCheckbox"),manualBuyRow:o.querySelector("#manualBuyRow"),manualBuyBtn:o.querySelector("#manualBuyBtn")};i.selectPositionBtn.addEventListener("click",()=>{var m;(m=i.captureBtn)==null||m.click()});function l(m){m.innerHTML="",Object.values(me).forEach(v=>{if(!v.rgb)return;let A=document.createElement("option");A.value=String(v.id),A.textContent=`${v.id} - ${v.name}`,m.appendChild(A)})}l(i.colorMin),l(i.colorMax);function g(m){i.colorGrid.innerHTML="",Object.values(me).forEach(v=>{let A=document.createElement("div");A.className="swatch"+(v.id===m?" active":""),v.rgb?A.style.background=`rgb(${v.rgb.r},${v.rgb.g},${v.rgb.b})`:(A.style.backgroundImage=`linear-gradient(45deg, #bbb 25%, transparent 25%),
linear-gradient(-45deg, #bbb 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, #bbb 75%),
linear-gradient(-45deg, transparent 75%, #bbb 75%)`,A.style.backgroundSize="8px 8px",A.style.backgroundPosition="0 0, 0 4px, 4px -4px, -4px 0px"),A.title=`${v.id} - ${v.name}`,A.addEventListener("click",()=>{a.COLOR_FIXED=v.id,g(a.COLOR_FIXED),G(),z(),i.selectedColorLabel&&(i.selectedColorLabel.textContent=`${x("farm.color.selected","Color seleccionado")}: ${he(a.COLOR_FIXED)}`)}),i.colorGrid.appendChild(A)})}i.colorMode.value=a.COLOR_MODE||"random",i.colorMin.value=String((Je=a.COLOR_MIN)!=null?Je:1),i.colorMax.value=String((Xe=a.COLOR_MAX)!=null?Xe:32),g((Ze=a.COLOR_FIXED)!=null?Ze:1),i.selectedColorLabel&&(i.selectedColorLabel.textContent=`${x("farm.color.selected","Color seleccionado")}: ${he((Ke=a.COLOR_FIXED)!=null?Ke:1)}`),u();try{z()}catch{}i.colorMode.addEventListener("change",()=>{a.COLOR_MODE=i.colorMode.value,u(),G(),z()}),i.colorMin.addEventListener("change",()=>{let m=j(parseInt(i.colorMin.value,10),1,63);a.COLOR_MIN=m,a.COLOR_MAX<m&&(a.COLOR_MAX=m),i.colorMax.value=String(a.COLOR_MAX),G(),z()}),i.colorMax.addEventListener("change",()=>{let m=j(parseInt(i.colorMax.value,10),1,63);a.COLOR_MAX=m,a.COLOR_MIN>m&&(a.COLOR_MIN=m),i.colorMin.value=String(a.COLOR_MIN),G(),z()}),i.minCharges&&i.minCharges.addEventListener("change",()=>{let m=j(parseInt(i.minCharges.value,10)||0,0,1e3);a.MIN_CHARGES=m,G(),z()}),i.delaySeconds&&i.delaySeconds.addEventListener("change",()=>{let m=j(parseInt(i.delaySeconds.value,10)||1,1,3600);a.DELAY_MS=m*1e3,G(),z()}),i.pixelsPerBatch&&i.pixelsPerBatch.addEventListener("change",()=>{let m=j(parseInt(i.pixelsPerBatch.value,10)||1,1,50);a.PIXELS_PER_BATCH=m,G(),z()});function u(){let m=i.colorMode.value;i.fixedPicker.style.display=m==="fixed"?"":"none",i.rangePicker.style.display=m==="range"?"":"none"}if(i.start.addEventListener("click",async()=>{S(!0),i.stop.classList.add("danger");try{e&&await e()}catch{}}),i.stop.addEventListener("click",async()=>{S(!1),i.stop.classList.remove("danger");try{t&&await t()}catch{}}),i.autoBuyCheckbox){let m=i.autoBuyCheckbox.parentElement.querySelector(".toggle-slider"),v=i.autoBuyCheckbox.parentElement.querySelector(".toggle-knob"),A=k=>{!m||!v||(m.style.backgroundColor=k?"#22c55e":"#ef4444",m.style.borderColor=k?"#16a34a":"#dc2626",v.style.left=k?"27px":"3px")};i.autoBuyCheckbox.checked=!!a.AUTO_BUY_ENABLED,A(i.autoBuyCheckbox.checked),i.autoBuyCheckbox.addEventListener("change",k=>{let V=!!k.target.checked;a.AUTO_BUY_ENABLED=V,G(),z(),A(V),i.manualBuyRow&&(i.manualBuyRow.style.display=V?"none":"flex")}),i.manualBuyRow&&(i.manualBuyRow.style.display=i.autoBuyCheckbox.checked?"none":"flex")}i.manualBuyBtn&&i.manualBuyBtn.addEventListener("click",async()=>{try{i.manualBuyBtn.disabled=!0,P(x("farm.buying","Comprando..."),"status");let{purchaseProduct:m}=await Promise.resolve().then(()=>(ge(),mt));if((await m(70,1)).success){q.notify&&q.notify(x("farm.buyOk","Compra realizada. Actualiza sesi\xF3n."),"success"),P(x("farm.buyOk","Compra realizada. Actualiza sesi\xF3n."),"success");try{Number.isFinite(h.droplets)&&(h.droplets=Math.max(0,(h.droplets||0)-500),w(h.painted,h.charges.count,h.retryCount))}catch{}}else q.notify&&q.notify(x("farm.buyFail","No se pudo comprar"),"error"),P(x("farm.buyFail","No se pudo comprar"),"error")}catch{q.notify&&q.notify(x("farm.buyFail","No se pudo comprar"),"error"),P(x("farm.buyFail","No se pudo comprar"),"error")}finally{i.manualBuyBtn.disabled=!1}}),document.body.appendChild(r);try{le(r)}catch{}let d=o.querySelector(".header"),p=o.querySelector(".body"),y=!1,f=0,E=0;d.addEventListener("mousedown",m=>{let v=m.target;if(v&&(v.id==="minBtn"||v.closest("#minBtn")))return;y=!0;let A=r.getBoundingClientRect();f=m.clientX-A.left,E=m.clientY-A.top,m.preventDefault()}),window.addEventListener("mousemove",m=>{if(!y)return;let v=Math.max(0,Math.min(window.innerWidth-o.offsetWidth,m.clientX-f)),A=Math.max(0,Math.min(window.innerHeight-40,m.clientY-E));r.style.left=v+"px",r.style.top=A+"px",r.style.right="auto"}),window.addEventListener("mouseup",()=>{y=!1});let C=o.querySelector("#minBtn"),I=!1;if(C&&p&&(p.addEventListener("transitionend",m=>{m.propertyName==="max-height"&&I&&(p.style.display="none")}),C.addEventListener("click",()=>{I=!I,I||(p.style.display="block",p.offsetHeight),p.classList.toggle("collapsed",I),C.textContent=I?"+":"\u2013"})),i.logsBtn){let m=null;i.logsBtn.addEventListener("click",async()=>{try{let{createLogWindow:v}=await Promise.resolve().then(()=>(It(),At));m=m||v("Auto-Farm"),m.toggle()}catch(v){c("No se pudo abrir la ventana de logs:",v),L("No se pudo abrir Logs","error")}})}function P(m,v="status"){i.status.textContent=m,i.status.style.background=v==="error"?"rgba(245, 101, 101, 0.2)":v==="success"?"rgba(72, 187, 120, 0.2)":"rgba(66, 153, 225, 0.2)"}function w(m,v,A){var ye,Z,re,Qe,et,tt,at,rt;i.painted.textContent=String(m!=null?m:0);let k=Math.floor(v!=null?v:0),V=(Z=(ye=h.charges)==null?void 0:ye.max)!=null?Z:0;i.charges.textContent=`${k}/${V}`,i.retries.textContent=String(A!=null?A:0);let B=(at=(tt=(re=h)==null?void 0:re.droplets)!=null?tt:(et=(Qe=h)==null?void 0:Qe.user)==null?void 0:et.droplets)!=null?at:null;B!=null&&i.droplets&&(i.droplets.textContent=String(B)),(rt=h)!=null&&rt.user&&i.username&&(i.username.textContent=h.user.name||h.user.username||"-")}function b(){return!!a.POSITION_SELECTED&&Number.isFinite(a.BASE_X)&&Number.isFinite(a.BASE_Y)&&Number.isFinite(a.TILE_X)&&Number.isFinite(a.TILE_Y)}function S(m){let v=!b();i.start.disabled=!!m||v,i.stop.disabled=!m,i.onceBtn&&(i.onceBtn.disabled=!!m||v),m?i.stop.classList.add("danger"):i.stop.classList.remove("danger")}function T(m=150){o.style.outline="2px solid #93c5fd",setTimeout(()=>o.style.outline="",m)}function L(m,v="info",A=3e3){let k=document.getElementById("wplace-toast-container");k||(k=document.createElement("div"),k.id="wplace-toast-container",k.style.cssText=`
position: fixed;
top: 16px;
left: 50%;
transform: translateX(-50%);
z-index: 2147483647;
display: flex;
flex-direction: column;
gap: 8px;
pointer-events: none;
`,document.body.appendChild(k));let V=v==="success"?"#10b981":v==="error"?"#ef4444":"#3b82f6",B=document.createElement("div");B.className="wplace-toast",B.textContent=m,B.style.cssText=`
min-width: 240px;
max-width: 80vw;
margin: 0 auto;
background: ${V};
color: white;
border-radius: 10px;
box-shadow: 0 8px 24px rgba(0,0,0,0.35);
padding: 10px 14px;
font-weight: 600;
letter-spacing: .2px;
transform: translateY(-10px) scale(0.98);
opacity: 0;
transition: transform .25s cubic-bezier(0.2, 0.8, 0.2, 1), opacity .25s ease;
pointer-events: auto;
`,k.appendChild(B),(re=>typeof window!="undefined"&&window.requestAnimationFrame?window.requestAnimationFrame(re):setTimeout(re,16))(()=>{B.style.transform="translateY(0) scale(1)",B.style.opacity="1"});let Z=()=>{B.style.transform="translateY(-10px) scale(0.98)",B.style.opacity="0",setTimeout(()=>B.remove(),250)};return A>0&&setTimeout(Z,A),B.addEventListener("click",Z),{close:Z}}function G(){try{localStorage.setItem("wplace_farm_cfg",JSON.stringify(a))}catch{}}function z(){let m=b();m&&i.posInfoValue?(i.posInfoValue.textContent=`tile(${a.TILE_X},${a.TILE_Y}) base(${a.BASE_X},${a.BASE_Y})`,i.captureBtn&&(i.captureBtn.textContent=x("farm.recapture"))):(i.posInfoValue&&(i.posInfoValue.textContent="-"),i.captureBtn&&(i.captureBtn.textContent=x("farm.capture","Capturar zona"))),S(!1),i.captureBtn&&(m?i.captureBtn.classList.remove("blink-orange"):i.captureBtn.classList.add("blink-orange"))}function $t(){return r}function Ut(){r.remove()}function Gt(){var k;let m=o.querySelector(".header span");m&&(m.textContent=x("farm.title","\u{1F9D1}\u200D\u{1F33E} WPlace Farm")),o.querySelector("#startBtn").textContent=x("farm.start","Iniciar"),o.querySelector("#stopBtn").textContent=x("farm.stop","Detener"),o.querySelector("#capture-btn").textContent=x("farm.capture","Capturar zona"),o.querySelector("#once-btn").textContent=x("farm.once","Una vez");let v=o.querySelector("#select-position-btn");v&&(v.textContent=x("farm.selectPosition","Select"));let A=o.querySelector("#logsBtn");A&&(A.textContent=x("farm.logWindow","Logs")),i.selectedColorLabel&&(i.selectedColorLabel.textContent=`${x("farm.color.selected","Color seleccionado")}: ${he((k=a.COLOR_FIXED)!=null?k:1)}`)}let q={setStatus:P,updateStats:w,updateButtonStates:S,flashEffect:T,getElement:$t,destroy:Ut,updateConfig:z,updateTexts:Gt,notify:L};return window.__wplaceBot=window.__wplaceBot||{},window.__wplaceBot.ui=q,q}async function $e(){return{success:!1,error:"not-implemented"}}Ae();ge();F();var ua=a=>Math.floor(Math.random()*a);function _t(a,e){let t=[],r=e.TILE_SIZE-1,n=Math.max(0,Math.min(r,e.BASE_X)),s=Math.max(0,Math.min(r,e.BASE_Y));for(let o=0;o<a;o++)n=Math.max(0,Math.min(r,n)),s=Math.max(0,Math.min(r,s)),t.push(n,s),n++,n>r&&(n=Math.max(0,Math.min(r,e.BASE_X)),s++,s>r&&(s=Math.max(0,Math.min(r,e.BASE_Y))));return t.length>=4&&c(`\u{1F3AF} L\xEDnea recta generada: [${t.slice(0,8).join(",")}...] total: ${t.length/2} p\xEDxeles`),t}function kt(a,e){let t=[];for(let r=0;r<a;r++)t.push(pa(e));return t}function pa(a){if(a.COLOR_MODE==="fixed")return a.COLOR_FIXED;{let e=a.COLOR_MAX-a.COLOR_MIN+1;return a.COLOR_MIN+ua(e)}}var xe=a=>new Promise(e=>setTimeout(e,a));async function de(a,e,t){let n=Date.now()+a;for(;Date.now()<n&&(!t||t.running);){let s=n-Date.now();e&&e(s),await xe(Math.min(1e3,s))}}F();Ce();var Ue=Object.freeze({ENABLED:!0,BASE_URL:"https://metricswplaceapi.alarisco.xyz",API_KEY:"wplace_2c8e4b2b1e0a4f7cb9d3a76f4a1c0b6f",PUBLIC_SALT:"wplace_public_salt_2024",VARIANT:"auto-guard",TIMEOUT_MS:1e4,RETRIES:1,PING_INTERVAL_MS:3e5});function ga(){var a;try{if(typeof window=="undefined"||!globalThis.URLSearchParams)return{};let e=new globalThis.URLSearchParams(((a=globalThis.location)==null?void 0:a.search)||""),t=e.get("metricsEnabled"),r=e.get("metricsUrl"),n=e.get("metricsKey"),s=e.get("metricsSalt"),o=e.get("metricsVariant"),i=e.get("metricsTimeoutMs"),l=e.get("metricsRetries"),g=e.get("metricsPingMs"),u={};return t!=null&&(u.ENABLED=t==="true"||t==="1"),r&&(u.BASE_URL=r),n&&(u.API_KEY=n),s&&(u.PUBLIC_SALT=s),o&&(u.VARIANT=o),i&&!Number.isNaN(Number(i))&&(u.TIMEOUT_MS=Number(i)),l&&!Number.isNaN(Number(l))&&(u.RETRIES=Number(l)),g&&!Number.isNaN(Number(g))&&(u.PING_INTERVAL_MS=Number(g)),u}catch{return{}}}function ma(){var t;let a=typeof window!="undefined"&&(window.__WPLACE_METRICS__||((t=window.__WPLACE_CONFIG__)==null?void 0:t.metrics))||{},e={};return typeof a.ENABLED=="boolean"&&(e.ENABLED=a.ENABLED),typeof a.BASE_URL=="string"&&(e.BASE_URL=a.BASE_URL),typeof a.API_KEY=="string"&&(e.API_KEY=a.API_KEY),typeof a.PUBLIC_SALT=="string"&&(e.PUBLIC_SALT=a.PUBLIC_SALT),typeof a.VARIANT=="string"&&(e.VARIANT=a.VARIANT),Number.isFinite(a.TIMEOUT_MS)&&(e.TIMEOUT_MS=a.TIMEOUT_MS),Number.isFinite(a.RETRIES)&&(e.RETRIES=a.RETRIES),Number.isFinite(a.PING_INTERVAL_MS)&&(e.PING_INTERVAL_MS=a.PING_INTERVAL_MS),e}function ha(a){let e={...a};if(typeof e.BASE_URL=="string"&&(e.BASE_URL=e.BASE_URL.replace(/\/$/,"")),typeof e.VARIANT=="string"){let t=e.VARIANT.trim();e.VARIANT=t||Ue.VARIANT}else e.VARIANT=Ue.VARIANT;return e}var Ge=null;function M(a={}){let e={...Ue,...ma(),...ga(),...a};return Ge=ha(e),Ge}async function fa(a){let e=globalThis.TextEncoder,t=globalThis.crypto;if(!e||!(t!=null&&t.subtle))throw new Error("WebCrypto no disponible");let r=new e,n=await t.subtle.digest("SHA-256",r.encode(a));return Array.from(new Uint8Array(n)).map(s=>s.toString(16).padStart(2,"0")).join("")}async function Rt(a,e){let t=Ge||M(),r=typeof e=="string"?e:t.PUBLIC_SALT;return!r||!a?null:fa(String(r)+String(a))}function Bt(){var a,e,t;try{if(typeof window=="undefined")return null;if((a=window.__WPLACE_METRICS__)!=null&&a.anonId)return String(window.__WPLACE_METRICS__.anonId);let r="wplace_metrics_aid",n=null;try{n=localStorage.getItem(r)}catch{}if(n&&typeof n=="string")return n;let s=new Uint8Array(16);(t=(e=globalThis.crypto||{}).getRandomValues)==null||t.call(e,s);let o=Array.from(s).map(i=>i.toString(16).padStart(2,"0")).join("");try{localStorage.setItem(r,o)}catch{}return window.__WPLACE_METRICS__||(window.__WPLACE_METRICS__={}),window.__WPLACE_METRICS__.anonId=o,o}catch{return null}}F();async function wa(a,e,{timeout:t,apiKey:r}){let n={"Content-Type":"application/json"};return r&&(n["X-API-Key"]=r),await ue(a,{method:"POST",headers:n,body:JSON.stringify(e),timeout:t})}function Ft(a){return a.text().then(e=>{try{return e?JSON.parse(e):{}}catch{return{}}})}async function xa(a,e){let t=M(e);if(!t.ENABLED)return{ok:!1,skipped:!0};let r=`${t.BASE_URL}/v1/events`;try{let o=a==null?void 0:a.event_type,i=a==null?void 0:a.bot_variant;(o==="pixel_painted"||o==="pixel_repaired")&&typeof(a==null?void 0:a.pixel_delta)!="undefined"&&c(`[METRICS] ${o} \u2192 \u0394 ${a.pixel_delta} (${i})`)}catch{}let n=0,s=null;for(;n<=t.RETRIES;)try{let o=await wa(r,a,{timeout:t.TIMEOUT_MS,apiKey:t.API_KEY});if(!o.ok){let l=await Ft(o);return{ok:!1,status:o.status,data:l}}let i=await Ft(o);try{let l=a==null?void 0:a.event_type,g=a==null?void 0:a.bot_variant;l==="session_start"&&c(`[METRICS] session_start (${g})`)}catch{}return{ok:!0,data:i}}catch(o){if(s=o,n++,n>t.RETRIES)break;await new Promise(i=>setTimeout(i,300*n))}return{ok:!1,error:(s==null?void 0:s.message)||String(s)}}async function be({botVariant:a,eventType:e,pixelDelta:t,timestamp:r,metadata:n}={},s){let o=M(s);if(!o.ENABLED)return{ok:!1,skipped:!0};let i={};i.bot_variant=a||o.VARIANT,i.event_type=e,typeof t=="number"&&(i.pixel_delta=t),r&&(i.timestamp=r),n&&typeof n=="object"&&(i.event_metadata=n);let l=Bt();if(l){let g=await Rt(l);g&&(i.user_hash=g)}return xa(i,s)}async function Mt({botVariant:a,metadata:e}={},t){return be({botVariant:a,eventType:"session_start",metadata:e},t)}async function U({botVariant:a,metadata:e}={},t){return be({botVariant:a,eventType:"session_ping",metadata:e},t)}async function zt({botVariant:a,metadata:e}={},t){return be({botVariant:a,eventType:"session_end",metadata:e},t)}async function Ot(a,{botVariant:e,metadata:t}={},r){return!Number.isFinite(a)||a<=0?{ok:!1,skipped:!0}:be({botVariant:e,eventType:"pixel_painted",pixelDelta:Math.trunc(a),metadata:t},r)}async function ba(a,e,t){try{let r=document.querySelectorAll("canvas");for(let n of r){let s=n.getContext("2d");if(s){let o=typeof t=="number"?`#${t.toString(16).padStart(6,"0")}`:t;s.fillStyle=o,s.fillRect(a,e,1,1),typeof window!="undefined"&&window.Event&&n.dispatchEvent(new window.Event("pixel-updated"))}}}catch(r){c("Error actualizando canvas:",r)}}async function ya(a,e){try{let t=`[data-tile="${a}-${e}"], .tile-${a}-${e}, [data-tile-x="${a}"][data-tile-y="${e}"]`,r=document.querySelector(t);r?(r.classList.add("tile-updating"),setTimeout(()=>{r.classList.remove("tile-updating"),r.classList.add("tile-updated"),setTimeout(()=>r.classList.remove("tile-updated"),1e3)},100),c(`Tile (${a},${e}) actualizado visualmente`)):(document.querySelectorAll("canvas").forEach(s=>{let o=s.getContext("2d");if(o){let i=o.getImageData(0,0,1,1);o.putImageData(i,0,0)}}),c(`Actualizaci\xF3n visual gen\xE9rica realizada para tile (${a},${e})`))}catch(t){c("Error en actualizaci\xF3n visual del tile:",t)}}async function Ca(a,e,t,r,n,s){var E,C,I,P;if(!a.POSITION_SELECTED||a.BASE_X===null||a.BASE_Y===null)return t("\u{1F3AF} Selecciona una zona primero usando 'Seleccionar Zona'","error"),c("Pintado cancelado: no se ha seleccionado una posici\xF3n base"),!1;if(!Number.isFinite(a.TILE_X)||!Number.isFinite(a.TILE_Y))return t(`\u{1F6AB} Coordenadas del tile inv\xE1lidas (${a.TILE_X},${a.TILE_Y}). Calibra primero`,"error"),c("Pintado cancelado: coordenadas del tile inv\xE1lidas"),!1;let o=Math.floor(e.charges.count);if(o<1)return t("\u{1F50B} Sin cargas disponibles. Esperando...","error"),!1;let i=Math.min(o,a.PIXELS_PER_BATCH,50),l=Math.max(1,i);l<a.PIXELS_PER_BATCH&&c(`Ajustando p\xEDxeles por cargas completas disponibles: ${l}/${a.PIXELS_PER_BATCH} (${o} cargas completas de ${e.charges.count.toFixed(2)} totales)`);let g=_t(l,a),u=kt(l,a),d=g[0],p=g[1];t(`\u{1F33E} Pintando ${l} p\xEDxeles desde base (${a.BASE_X},${a.BASE_Y}) tile(${a.TILE_X},${a.TILE_Y})...`,"status");let y=lt();y||(y=await J());let f=await Re(a.TILE_X,a.TILE_Y,g,u,y);if(e.last={x:d,y:p,color:u[0],pixelCount:l,availableCharges:o,status:f.status,json:f.json},f.success&&f.painted>0){let w=f.painted||l;e.painted+=w,e.retryCount=0;for(let b=0;b<g.length;b+=2){let S=g[b],T=g[b+1],L=u[Math.floor(b/2)];await ba(S,T,L)}await ya(a.TILE_X,a.TILE_Y),await n(),t(`\u2705 Lote pintado: ${w}/${l} p\xEDxeles en zona (${a.BASE_X},${a.BASE_Y})`,"success");try{let b={details:`Lote pintado: ${w}/${l} px en tile (${a.TILE_X},${a.TILE_Y}) \xB7 base (${a.BASE_X},${a.BASE_Y})`,tile:{x:a.TILE_X,y:a.TILE_Y},base:{x:a.BASE_X,y:a.BASE_Y},painted_count:w,batch_size:l,radius:a.FARM_RADIUS};Ot(w,{botVariant:"auto-farm",metadata:b})}catch{}try{let b=M(),S=Math.max(6e4,b.PING_INTERVAL_MS||12e4),T=Date.now(),L=(window.__wplaceMetrics||{}).farmLastPing||0;T-L>=S&&(U({botVariant:"auto-farm",metadata:{reason:"after-paint"}}),window.__wplaceMetrics=window.__wplaceMetrics||{},window.__wplaceMetrics.farmLastPing=T)}catch{}if(r(),typeof window!="undefined"&&window.CustomEvent){let b=new window.CustomEvent("wplace-batch-painted",{detail:{firstX:d,firstY:p,pixelCount:w,totalPixels:l,colors:u,coords:g,tileX:a.TILE_X,tileY:a.TILE_Y,baseX:a.BASE_X,baseY:a.BASE_Y,radius:a.FARM_RADIUS,timestamp:Date.now()}});window.dispatchEvent(b)}return!0}if(f.status===403)t("\u26A0\uFE0F 403 (token expirado o Cloudflare). Reintentar\xE1...","error");else if(f.status===401)t("\u{1F512} 401 (no autorizado). Verifica tu sesi\xF3n.","error");else if(f.status===429)t("\u23F3 429 (l\xEDmite de tasa). Esperando...","error");else if(f.status===408)t("\u23F0 Timeout del servidor. Coordenadas problem\xE1ticas o servidor sobrecargado","error");else if(f.status===0)t("\u{1F310} Error de red. Verificando conectividad...","error");else if(f.status===500)t("\u{1F525} 500 (error interno del servidor). Reintentar\xE1...","error");else if(f.status===502||f.status===503||f.status===504)t(`\u{1F6AB} ${f.status} (servidor no disponible). Reintentar\xE1...`,"error");else if(f.status===404)t(`\u{1F5FA}\uFE0F 404 (tile no encontrado). Verificando coordenadas tile(${a.TILE_X},${a.TILE_Y})`,"error");else try{let w=await s(),b=w!=null&&w.up?"\u{1F7E2} Online":"\u{1F534} Offline";t(`\u274C Error ${f.status}: ${((E=f.json)==null?void 0:E.message)||((C=f.json)==null?void 0:C.error)||"Fallo al pintar"} (Backend: ${b})`,"error")}catch{t(`\u274C Error ${f.status}: ${((I=f.json)==null?void 0:I.message)||((P=f.json)==null?void 0:P.error)||"Fallo al pintar"} (Health check fall\xF3)`,"error")}return c(`Fallo en pintado: status=${f.status}, error=${f.error}, coords=`,g,"colors=",u),!1}async function qe(a,e,t,r,n,s){for(let l=1;l<=5;l++)try{if(await Ca(a,e,t,r,n,s))return e.retryCount=0,!0;if(e.retryCount=l,l<5){let u=3e3*Math.pow(2,l-1);t(`\u{1F504} Reintento ${l}/5 en ${u/1e3}s...`,"error"),await xe(u)}}catch(g){if(c(`Error en intento ${l}:`,g),e.retryCount=l,l<5){let u=3e3*Math.pow(2,l-1);t(`\u{1F4A5} Error en intento ${l}/5, reintentando en ${u/1e3}s...`,"error"),await xe(u)}}return e.retryCount=5,t("\u274C Fall\xF3 despu\xE9s de 5 intentos. Se requiere intervenci\xF3n manual.","error"),!1}async function Nt(a,e,t,r,n,s,o){for(c("\u{1F680} Loop iniciado"),e.running=!0;e.running;)try{await o();try{let l=M(),g=Math.max(6e4,l.PING_INTERVAL_MS||12e4),u=Date.now(),d=(window.__wplaceMetrics||{}).farmLastPing||0;u-d>=g&&(U({botVariant:"auto-farm",metadata:{reason:"loop"}}),window.__wplaceMetrics=window.__wplaceMetrics||{},window.__wplaceMetrics.farmLastPing=u)}catch{}if(e.charges.count<a.MIN_CHARGES){let l=Math.max(0,(a.MIN_CHARGES-e.charges.count)*a.CHARGE_REGEN_MS);t(`\u23F3 Esperando cargas: ${e.charges.count.toFixed(1)}/${a.MIN_CHARGES} (${Math.round(l/1e3)}s)`,"status");try{let g=M(),u=Math.max(6e4,g.PING_INTERVAL_MS||12e4),d=Date.now(),p=(window.__wplaceMetrics||{}).farmLastPing||0;d-p>=u&&(U({botVariant:"auto-farm",metadata:{reason:"waiting-charges"}}),window.__wplaceMetrics=window.__wplaceMetrics||{},window.__wplaceMetrics.farmLastPing=d)}catch{}await de(Math.min(l,a.DELAY_MS),g=>{t(`\u23F3 Esperando cargas: ${e.charges.count.toFixed(1)}/${a.MIN_CHARGES} (~${Math.round(g/1e3)}s)`,"status")},e);continue}if(!await qe(a,e,t,r,n,s)){t("\u{1F634} Esperando antes del siguiente intento...","error"),await de(a.DELAY_MS*2,l=>{t(`\u{1F634} Cooldown extendido: ${Math.round(l/1e3)}s`,"error")});continue}e.running&&await de(a.DELAY_MS,l=>{t(`\u{1F4A4} Esperando ${Math.round(l/1e3)}s hasta siguiente pintada...`,"status")})}catch(i){c("Error cr\xEDtico en loop:",i),t(`\u{1F4A5} Error cr\xEDtico: ${i.message}`,"error"),e.running&&await de(a.DELAY_MS*3,l=>{t(`\u{1F6A8} Recuper\xE1ndose de error cr\xEDtico: ${Math.round(l/1e3)}s`,"error")})}c("\u23F9\uFE0F Loop detenido"),t("\u23F9\uFE0F Bot detenido","status")}F();var je=class{constructor(){this.active=!1,this.originalFetch=window.fetch,this.callback=null}enable(e){if(this.active){c("\u26A0\uFE0F Captura ya est\xE1 activa");return}this.active=!0,this.callback=e,c("\u{1F575}\uFE0F Captura de coordenadas activada. Pinta un p\xEDxel manualmente..."),window.fetch=async(...t)=>{let r=await this.originalFetch.apply(window,t);return this.active&&this.shouldCapture(t[0],t[1])&&await this.handleCapture(t[0],t[1],r.clone()),r},setTimeout(()=>{this.active&&(this.disable(),c("\u23F0 Captura de coordenadas expirada"))},3e4)}shouldCapture(e,t){if(!e||!t)return!1;let r=e.toString();return!(!r.includes("paint")&&!r.includes("pixel")&&!r.includes("place")||!t.method||t.method.toUpperCase()!=="POST")}async handleCapture(e,t,r){try{let n=null,s=null,o=null,i=(u,d)=>{if(Number.isFinite(u)&&Number.isFinite(d)){if(u>=0&&u<1e3&&d>=0&&d<1e3)return 1e3;if(u>=0&&u<3e3&&d>=0&&d<3e3)return 3e3}return 1e3};if(t.body){let u=t.body,d=null;try{if(typeof u=="string")d=JSON.parse(u);else if(u&&typeof u.text=="function"){let p=await u.text();try{d=JSON.parse(p)}catch{d=null}}else d=u}catch{d=null}if(d){let p=d.coords;Array.isArray(p)?p.length>=2&&typeof p[0]=="number"&&typeof p[1]=="number"?n=[p[0],p[1]]:Array.isArray(p[0])&&p[0].length>=2?n=[p[0][0],p[0][1]]:typeof p[0]=="object"&&p[0]&&Number.isFinite(p[0].x)&&Number.isFinite(p[0].y)&&(n=[p[0].x,p[0].y]):Number.isFinite(d.x)&&Number.isFinite(d.y)?n=[d.x,d.y]:Array.isArray(d.coordinates)&&d.coordinates.length>=2&&(n=[d.coordinates[0],d.coordinates[1]])}}let l=e.toString(),g=l.match(/\/s0\/pixel\/(-?\d+)\/(-?\d+)/);if(g&&(s=parseInt(g[1]),o=parseInt(g[2])),!n){let u=l.match(/[?&](?:x|coords?)=([^&]+)/);if(u){let d=decodeURIComponent(u[1]);try{n=JSON.parse(d)}catch{let p=d.split(",");p.length>=2&&(n=[parseInt(p[0]),parseInt(p[1])])}}}if(n&&n.length>=2){let u,d,p,y;if(Number.isInteger(s)&&Number.isInteger(o)){p=n[0],y=n[1];let f=i(p,y);u=s*f+p,d=o*f+y,c(`\u{1F3AF} Coordenadas capturadas (locales): tile(${s},${o}) local(${p},${y}) -> global(${u},${d})`)}else{u=n[0],d=n[1];let f=1e3;s=Math.floor(u/f),o=Math.floor(d/f),p=(u%f+f)%f,y=(d%f+f)%f,c(`\u{1F3AF} Coordenadas capturadas (globales): global(${u},${d}) -> tile(${s},${o}) local(${p},${y})`)}if(r.ok){this.disable();let f={success:!0,tileX:s,tileY:o,globalX:u,globalY:d,localX:p,localY:y};try{this.callback&&this.callback(f)}catch(E){c("Error en callback de captura:",E)}try{window.__wplaceLastCapture=f;try{let E=document.createEvent("Event");E.initEvent("wplace-capture",!0,!0),E.detail=f,window.dispatchEvent(E)}catch{}}catch{}}else c("\u26A0\uFE0F Captura realizada pero la respuesta no fue exitosa")}}catch(n){c("Error procesando captura:",n)}}disable(){this.active&&(this.active=!1,window.fetch=this.originalFetch,this.callback=null,c("\u{1F512} Captura de coordenadas desactivada"))}},He=new je;function Dt(a=!1){let e=['[data-testid="color-picker"]',".color-picker",".palette",'[class*="color"][class*="picker"]','[class*="palette"]'];for(let n of e){let s=document.querySelector(n);if(s&&s.offsetParent!==null)return a&&console.log(`[WPA-UI] \u{1F3A8} Paleta detectada por selector: ${n}`),!0}let t=document.querySelectorAll('[style*="background-color"], [style*="background:"], .color, [class*="color"]'),r=0;for(let n of t)if(n.offsetParent!==null&&n.offsetWidth>10&&n.offsetHeight>10&&(r++,r>=5))return a&&console.log(`[WPA-UI] \u{1F3A8} Paleta detectada por colores visibles: ${r}`),!0;return a&&console.log(`[WPA-UI] \u{1F50D} Paleta no detectada. Colores visibles: ${r}`),!1}function Sa(a=!1,e=!1){let t=document.querySelector("button.btn.btn-primary.btn-lg, button.btn.btn-primary.sm\\:btn-xl");if(t){let n=t.textContent.toLowerCase(),s=n.includes("paint")||n.includes("pintar"),o=t.querySelector('svg path[d*="240-120"]')||t.querySelector('svg path[d*="M15"]');if(s||o)return a&&console.log(`[WPA-UI] \u{1F3AF} Bot\xF3n Paint encontrado por selector espec\xEDfico: "${n}"`),t.click(),e&&setTimeout(()=>{a&&console.log("[WPA-UI] \u{1F3AF} Segundo clic en bot\xF3n Paint"),t.click()},500),!0}let r=document.querySelectorAll("button");for(let n of r){let s=n.textContent.toLowerCase();if((s.includes("paint")||s.includes("pintar"))&&n.offsetParent!==null&&!n.disabled)return a&&console.log(`[WPA-UI] \u{1F3AF} Bot\xF3n Paint encontrado por texto: "${n.textContent.trim()}"`),n.click(),e&&setTimeout(()=>{a&&console.log("[WPA-UI] \u{1F3AF} Segundo clic en bot\xF3n Paint"),n.click()},500),!0}return a&&console.log("[WPA-UI] \u274C Bot\xF3n Paint no encontrado"),!1}async function Wt(a=3,e=!0){e&&console.log(`[WPA-UI] \u{1F916} Iniciando auto-click del bot\xF3n Paint (m\xE1ximo ${a} intentos)`);for(let t=1;t<=a;t++){if(e&&console.log(`[WPA-UI] \u{1F3AF} Intento ${t}/${a} - Buscando bot\xF3n Paint...`),Dt())return e&&console.log("[WPA-UI] \u2705 Paleta ya est\xE1 abierta, auto-click completado"),!0;if(Sa(e,!1)){if(e&&console.log("[WPA-UI] \u{1F446} Clic en bot\xF3n Paint realizado (sin segundo clic)"),await new Promise(r=>setTimeout(r,1500)),Dt())return e&&console.log(`[WPA-UI] \u2705 Paleta abierta exitosamente despu\xE9s del intento ${t}`),!0;e&&console.log(`[WPA-UI] \u26A0\uFE0F Paleta no detectada tras el clic en intento ${t}. Reintentar\xE1.`)}else e&&console.log(`[WPA-UI] \u274C Bot\xF3n Paint no encontrado para clic en intento ${t}`);t<a&&await new Promise(r=>setTimeout(r,1e3))}return e&&console.log(`[WPA-UI] \u274C Auto-click fall\xF3 despu\xE9s de ${a} intentos`),!1}(async function(){"use strict";var g,u;await Me();try{c("\u{1F916} [FARM] Iniciando auto-click del bot\xF3n Paint..."),await Wt(3,!0)}catch(d){c("\u26A0\uFE0F [FARM] Error en auto-click del bot\xF3n Paint:",d)}if((g=window.__wplaceBot)!=null&&g.farmRunning){alert(x("farm.alreadyRunning","Auto-Farm ya est\xE1 corriendo."));return}if((u=window.__wplaceBot)!=null&&u.imageRunning){alert(x("farm.imageRunningWarning","Auto-Image est\xE1 ejecut\xE1ndose. Ci\xE9rralo antes de iniciar Auto-Farm."));return}window.__wplaceBot||(window.__wplaceBot={}),window.__wplaceBot.farmRunning=!0;try{let d=M({VARIANT:"auto-farm"});if(d.ENABLED){window.__wplaceMetrics||(window.__wplaceMetrics={});let p=Math.max(6e4,d.PING_INTERVAL_MS||3e5);window.__wplaceMetrics.farmSessionActive=!0,Mt({botVariant:"auto-farm"}),setTimeout(()=>{try{U({botVariant:"auto-farm",metadata:{reason:"init"}})}catch{}},3e3),window.__wplaceMetrics.farmPingInterval=window.setInterval(()=>{try{U({botVariant:"auto-farm",metadata:{reason:"interval"}})}catch{}},p);let y=()=>{if(!document.hidden)try{U({botVariant:"auto-farm",metadata:{reason:"visibility"}})}catch{}},f=()=>{try{U({botVariant:"auto-farm",metadata:{reason:"focus"}})}catch{}};document.addEventListener("visibilitychange",y),window.addEventListener("focus",f),window.__wplaceMetrics.farmVisibilityHandler=y,window.__wplaceMetrics.farmFocusHandler=f}}catch{}window.addEventListener("languageChanged",()=>{var d,p;(p=(d=window.__wplaceBot)==null?void 0:d.ui)!=null&&p.updateTexts&&window.__wplaceBot.ui.updateTexts()}),c("\u{1F680} Iniciando WPlace Farm Bot (versi\xF3n modular)");function a(d){let p=!!d.POSITION_SELECTED&&d.BASE_X!=null&&d.BASE_Y!=null,y=d.TILE_X===K.TILE_X&&d.TILE_Y===K.TILE_Y,f=!Number.isFinite(d.TILE_X)||!Number.isFinite(d.TILE_Y),E=!p&&(y||f);return c(`Verificaci\xF3n calibraci\xF3n: defaults=${y}, selected=${p}, invalid=${f}, coords=(${d.TILE_X},${d.TILE_Y})`),E}function e(){c("\u{1F575}\uFE0F Activando captura de coordenadas..."),He.enable(d=>{d.success?(t.TILE_X=d.tileX,t.TILE_Y=d.tileY,Number.isFinite(d.localX)&&Number.isFinite(d.localY)&&(t.BASE_X=d.localX,t.BASE_Y=d.localY,t.POSITION_SELECTED=!0),o.updateConfig(),setTimeout(()=>o.updateConfig(),50),o.setStatus(`\u{1F3AF} Zona lista: tile(${d.tileX},${d.tileY}) base(${t.BASE_X},${t.BASE_Y})`,"success"),c(`\u2705 Coordenadas capturadas: tile(${d.tileX},${d.tileY}) base(${t.BASE_X},${t.BASE_Y})`)):o.setStatus(`\u274C ${x("common.error","No se pudieron capturar coordenadas")}`,"error")}),o.setStatus(`\u{1F4F8} ${x("farm.captureInstructions")}`,"status")}let t={...K,...nt(K)};if(!t.SITEKEY){let d=document.querySelector("*[data-sitekey]");d?(t.SITEKEY=d.getAttribute("data-sitekey"),c(`\u{1F4DD} Sitekey encontrada autom\xE1ticamente: ${t.SITEKEY.substring(0,20)}...`),void 0):c("\u26A0\uFE0F No se pudo encontrar la sitekey autom\xE1ticamente")}async function r(){var d,p,y,f;try{let E=await ie();if(E.success&&E.data){h.charges.count=E.data.charges||0,h.charges.max=E.data.maxCharges||50,h.charges.regen=E.data.chargeRegen||3e4,h.user=E.data.user,h.droplets=(y=E.data.droplets)!=null?y:(p=(d=E.data.user)==null?void 0:d.droplets)!=null?p:0,t.CHARGE_REGEN_MS=h.charges.regen;let C=await n();h.health=C,o.updateStats(h.painted,h.charges.count,h.retryCount,C);try{if(t.AUTO_BUY_ENABLED&&(h.droplets||0)>=500)if(o.setStatus(x("farm.autobuy.buying","Comprando autom\xE1ticamente..."),"status"),(await ke(70,1)).success){o.notify&&o.notify(x("farm.autobuy.bought","Compra OK. Actualizando sesi\xF3n..."),"success"),o.setStatus(x("farm.autobuy.bought","Compra OK. Actualizando sesi\xF3n..."),"success");try{h.droplets=Math.max(0,(h.droplets||0)-500),o.updateStats(h.painted,h.charges.count,h.retryCount,h.health)}catch{}let P=await ie();P.success&&P.data&&(h.charges.count=P.data.charges||h.charges.count,h.charges.max=P.data.maxCharges||h.charges.max,h.droplets=(f=P.data.droplets)!=null?f:h.droplets,h.user=P.data.user||h.user,o.updateStats(h.painted,h.charges.count,h.retryCount,h.health))}else o.notify&&o.notify(x("farm.autobuy.failed","No se pudo comprar autom\xE1ticamente"),"error"),o.setStatus(x("farm.autobuy.failed","No se pudo comprar autom\xE1ticamente"),"error")}catch(I){console.warn("Auto-buy error:",I)}return E.data}return null}catch(E){return c("Error actualizando estad\xEDsticas:",E),null}}async function n(){try{return await _e()}catch(d){return c("Error verificando health:",d),{up:!1,error:d.message}}}async function s(){return await qe(t,h,o.setStatus,o.flashEffect,()=>ie(),n)}let o=Lt(t,async()=>{if(h.running){o.setStatus("\u26A0\uFE0F El bot ya est\xE1 ejecut\xE1ndose","error");return}if(!t.POSITION_SELECTED||t.BASE_X===null||t.BASE_Y===null){o.setStatus(x("farm.autoSelectPosition"),"info");let y=o.getElement().shadowRoot.getElementById("select-position-btn");y&&y.click();return}if(a(t)){o.setStatus("\u{1F3AF} Calibrando autom\xE1ticamente...","status");let y=await $e(t);if(y.success)o.setStatus(`\u2705 Calibrado: tile(${y.tileX},${y.tileY})`,"success"),o.updateConfig();else{o.setStatus("\u274C Error en calibraci\xF3n. Configura manualmente.","error");return}}if(o.setStatus("\u{1F50D} Verificando conectividad...","status"),!(await n()).up){o.setStatus("\u{1F534} Backend no disponible. Verifica tu conexi\xF3n.","error");return}if(o.setStatus("\u{1F504} Obteniendo informaci\xF3n de sesi\xF3n...","status"),!await r()){o.setStatus("\u274C Error obteniendo sesi\xF3n. Verifica tu login.","error");return}o.setStatus("\u{1F680} Iniciando bot...","status"),o.updateButtonStates(!0),Nt(t,h,o.setStatus,o.flashEffect,r,n,r)},()=>{h.running=!1,window.__wplaceBot&&(window.__wplaceBot.farmRunning=!1),o.setStatus("\u23F9\uFE0F Deteniendo bot...","status"),o.updateButtonStates(!1)},async()=>{o.setStatus("\u{1F3AF} Calibrando posici\xF3n...","status");let d=await $e(t);d.success?(o.setStatus(`\u2705 Calibrado: tile(${d.tileX},${d.tileY})`,"success"),o.updateConfig()):o.setStatus(`\u274C Error en calibraci\xF3n: ${d.error||"Desconocido"}`,"error")}),i=o.getElement().shadowRoot.getElementById("capture-btn");i&&i.addEventListener("click",e),window.addEventListener("wplace-capture",d=>{try{let p=(d==null?void 0:d.detail)||window.__wplaceLastCapture;if(!p||!p.success)return;t.TILE_X=p.tileX,t.TILE_Y=p.tileY,Number.isFinite(p.localX)&&Number.isFinite(p.localY)&&(t.BASE_X=p.localX,t.BASE_Y=p.localY,t.POSITION_SELECTED=!0),o.updateConfig(),setTimeout(()=>o.updateConfig(),50),o.setStatus(`\u{1F3AF} Zona lista: tile(${p.tileX},${p.tileY}) base(${t.BASE_X},${t.BASE_Y})`,"success")}catch{}});let l=o.getElement().shadowRoot.getElementById("once-btn");l&&l.addEventListener("click",async()=>{if(h.running){o.setStatus("\u26A0\uFE0F Det\xE9n el bot primero","error");return}await r(),o.setStatus("\u{1F3A8} Pintando una vez...","status"),await s()?o.setStatus("\u2705 P\xEDxel pintado exitosamente","success"):o.setStatus("\u274C Error al pintar p\xEDxel","error")}),await r(),window.addEventListener("wplace-batch-painted",d=>{c(`\u{1F3A8} Lote pintado: ${d.detail.pixelCount} p\xEDxeles en tile(${d.detail.tileX},${d.detail.tileY})`)}),window.WPAUI={once:s,get:()=>({...t}),capture:e,refreshCanvas:()=>{h.last&&c(`Refrescando canvas en posici\xF3n (${h.last.x},${h.last.y})`)},verifyPixel:async(d,p)=>(c(`Verificando p\xEDxel en (${d},${p})...`),{verified:!0,x:d,y:p}),getStats:()=>({painted:h.painted,last:h.last,charges:h.charges,user:h.user,running:h.running,minCharges:t.MIN_CHARGES,delay:t.DELAY_MS,tileInfo:{tileX:t.TILE_X,tileY:t.TILE_Y,tileSize:t.TILE_SIZE,safeMargin:Math.floor(t.TILE_SIZE*.05),safeArea:{minX:Math.floor(t.TILE_SIZE*.05),maxX:t.TILE_SIZE-Math.floor(t.TILE_SIZE*.05)-1,minY:Math.floor(t.TILE_SIZE*.05),maxY:t.TILE_SIZE-Math.floor(t.TILE_SIZE*.05)-1}}}),setPixelsPerBatch:d=>{t.PIXELS_PER_BATCH=j(d,1,50),o.updateConfig(),c(`P\xEDxeles por lote configurado a: ${t.PIXELS_PER_BATCH}`)},setMinCharges:d=>{t.MIN_CHARGES=Math.max(0,d),o.updateConfig(),c(`Cargas m\xEDnimas configuradas a: ${t.MIN_CHARGES}`)},setDelay:d=>{t.DELAY_MS=Math.max(1e3,d*1e3),o.updateConfig(),c(`Delay configurado a: ${t.DELAY_MS}ms`)},diagnose:()=>{var y;let d=window.WPAUI.getStats(),p={configValid:Number.isFinite(t.TILE_X)&&Number.isFinite(t.TILE_Y),hasCharges:h.charges.count>0,backendHealthy:((y=h.health)==null?void 0:y.up)||!1,userLoggedIn:!!h.user,coordinates:`(${t.TILE_X},${t.TILE_Y})`,safeArea:d.tileInfo.safeArea,recommendations:[]};return p.configValid||p.recommendations.push("Calibrar coordenadas del tile"),p.hasCharges||p.recommendations.push("Esperar a que se regeneren las cargas"),p.backendHealthy||p.recommendations.push("Verificar conexi\xF3n al backend"),p.userLoggedIn||p.recommendations.push("Iniciar sesi\xF3n en la plataforma"),console.table(p),p},checkHealth:n,resetConfig:()=>{it(),t={...K},o.updateConfig(),c("Configuraci\xF3n reseteada a valores por defecto")},debugRetries:()=>({currentRetries:h.retryCount,inCooldown:h.inCooldown,nextPaintTime:h.nextPaintTime,cooldownEndTime:h.cooldownEndTime}),forceClearCooldown:()=>{h.inCooldown=!1,h.nextPaintTime=0,h.cooldownEndTime=0,h.retryCount=0,c("Cooldown forzado a limpiar")},simulateError:(d=500)=>{c(`Simulando error ${d} para testing...`),o.setStatus(`\u{1F9EA} Simulando error ${d}`,"error")}},window.addEventListener("beforeunload",()=>{var d,p,y,f;h.running=!1,window.__wplaceBot&&(window.__wplaceBot.farmRunning=!1),He.disable(),o.destroy();try{M().ENABLED&&((d=window.__wplaceMetrics)!=null&&d.farmPingInterval&&(window.clearInterval(window.__wplaceMetrics.farmPingInterval),window.__wplaceMetrics.farmPingInterval=null),(p=window.__wplaceMetrics)!=null&&p.farmVisibilityHandler&&(document.removeEventListener("visibilitychange",window.__wplaceMetrics.farmVisibilityHandler),delete window.__wplaceMetrics.farmVisibilityHandler),(y=window.__wplaceMetrics)!=null&&y.farmFocusHandler&&(window.removeEventListener("focus",window.__wplaceMetrics.farmFocusHandler),delete window.__wplaceMetrics.farmFocusHandler),(f=window.__wplaceMetrics)!=null&&f.farmSessionActive&&(zt({botVariant:"auto-farm"}),window.__wplaceMetrics.farmSessionActive=!1))}catch{}}),c("\u2705 Farm Bot inicializado correctamente"),c("\u{1F4A1} Usa console.log(window.WPAUI) para ver la API disponible")})().catch(a=>{console.error("[BOT] Error en Auto-Farm:",a),window.__wplaceBot&&(window.__wplaceBot.farmRunning=!1),alert("Auto-Farm: error inesperado. Revisa consola.")});})();