maplibre-gl-layers 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -3,12 +3,12 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
4
  /*!
5
5
  * name: maplibre-gl-layers
6
- * version: 0.12.0
6
+ * version: 0.14.0
7
7
  * description: MapLibre's layer extension library enabling the display, movement, and modification of large numbers of dynamic sprite images
8
8
  * author: Kouji Matsui (@kekyo@mi.kekyo.net)
9
9
  * license: MIT
10
10
  * repository.url: https://github.com/kekyo/maplibre-gl-layers.git
11
- * git.commit.hash: e8e2cd81aeec4b10f2898c0ede5880ac56bf748d
11
+ * git.commit.hash: a531802b05777e1f54a8828a247254293df1415d
12
12
  */
13
13
  const UNLIMITED_SPRITE_SCALING_OPTIONS = {
14
14
  metersPerPixel: 1,
@@ -304,6 +304,774 @@ const loadImageBitmap = async (url, options) => {
304
304
  const shouldTreatAsSvg = ((_a = options == null ? void 0 : options.svg) == null ? void 0 : _a.assumeSvg) === true || isSvgMimeType(mimeType);
305
305
  return await internalReadImageBitmap(blob, shouldTreatAsSvg, options);
306
306
  };
307
+ /*!
308
+ * name: async-primitives
309
+ * version: 1.5.0
310
+ * description: A collection of primitive functions for asynchronous operations
311
+ * author: Kouji Matsui (@kekyo@mi.kekyo.net)
312
+ * license: MIT
313
+ * repository.url: https://github.com/kekyo/async-primitives.git
314
+ * git.commit.hash: cd35465b7e9b9945049186e7eaeecc0bfba65766
315
+ */
316
+ const __NOOP_HANDLER = () => {
317
+ };
318
+ const __NOOP_RELEASABLE = {
319
+ release: __NOOP_HANDLER,
320
+ [Symbol.dispose]: __NOOP_HANDLER
321
+ };
322
+ const toAbortError = (reason) => {
323
+ if (reason instanceof Error) {
324
+ return reason;
325
+ }
326
+ if (typeof reason === "string") {
327
+ return new Error(reason);
328
+ }
329
+ return new Error("Operation aborted");
330
+ };
331
+ const onAbort = (signal, callback) => {
332
+ if (!signal) {
333
+ return __NOOP_RELEASABLE;
334
+ }
335
+ if (signal.aborted) {
336
+ try {
337
+ callback(toAbortError(signal.reason));
338
+ } catch (error) {
339
+ console.warn("AbortHook callback error: ", error);
340
+ }
341
+ return __NOOP_RELEASABLE;
342
+ }
343
+ let abortHandler;
344
+ abortHandler = () => {
345
+ if (abortHandler) {
346
+ const reason = signal.reason;
347
+ signal.removeEventListener("abort", abortHandler);
348
+ abortHandler = void 0;
349
+ try {
350
+ callback(toAbortError(reason));
351
+ } catch (error) {
352
+ console.warn("AbortHook callback error: ", error);
353
+ }
354
+ }
355
+ };
356
+ const release = () => {
357
+ if (abortHandler) {
358
+ signal.removeEventListener("abort", abortHandler);
359
+ abortHandler = void 0;
360
+ }
361
+ };
362
+ signal.addEventListener("abort", abortHandler, { once: true });
363
+ const handle = {
364
+ release,
365
+ [Symbol.dispose]: release
366
+ };
367
+ return handle;
368
+ };
369
+ const defer = (fn) => {
370
+ if (typeof setImmediate === "function") {
371
+ setImmediate(fn);
372
+ } else {
373
+ setTimeout(fn, 0);
374
+ }
375
+ };
376
+ const ABORTED_ERROR$2 = () => new Error("Lock acquisition was aborted");
377
+ const createLockHandle = (releaseCallback) => {
378
+ let isActive = true;
379
+ const release = () => {
380
+ if (!isActive) {
381
+ return;
382
+ }
383
+ isActive = false;
384
+ releaseCallback();
385
+ };
386
+ return {
387
+ get isActive() {
388
+ return isActive;
389
+ },
390
+ release,
391
+ [Symbol.dispose]: release
392
+ };
393
+ };
394
+ const createMutex = (maxConsecutiveCalls = 20) => {
395
+ let isLocked = false;
396
+ const queue = [];
397
+ let count = 0;
398
+ const processQueue = () => {
399
+ var _a;
400
+ if (isLocked || queue.length === 0) {
401
+ return;
402
+ }
403
+ const item = queue.shift();
404
+ if ((_a = item.signal) == null ? void 0 : _a.aborted) {
405
+ item.reject(ABORTED_ERROR$2());
406
+ scheduleNextProcess();
407
+ return;
408
+ }
409
+ isLocked = true;
410
+ const lockHandle = createLockHandle(releaseLock);
411
+ item.resolve(lockHandle);
412
+ };
413
+ const scheduleNextProcess = () => {
414
+ count++;
415
+ if (count >= maxConsecutiveCalls) {
416
+ count = 0;
417
+ defer(processQueue);
418
+ } else {
419
+ processQueue();
420
+ }
421
+ };
422
+ const releaseLock = () => {
423
+ if (!isLocked) {
424
+ return;
425
+ }
426
+ isLocked = false;
427
+ scheduleNextProcess();
428
+ };
429
+ const removeFromQueue = (item) => {
430
+ const index = queue.indexOf(item);
431
+ if (index !== -1) {
432
+ queue.splice(index, 1);
433
+ }
434
+ };
435
+ const lock = async (signal) => {
436
+ if (signal) {
437
+ if (signal.aborted) {
438
+ throw ABORTED_ERROR$2();
439
+ }
440
+ return new Promise((resolve, reject) => {
441
+ const queueItem = {
442
+ resolve: void 0,
443
+ reject: void 0,
444
+ signal
445
+ };
446
+ const abortHandle = onAbort(signal, () => {
447
+ removeFromQueue(queueItem);
448
+ reject(ABORTED_ERROR$2());
449
+ });
450
+ queueItem.resolve = (handle) => {
451
+ abortHandle.release();
452
+ resolve(handle);
453
+ };
454
+ queueItem.reject = (error) => {
455
+ abortHandle.release();
456
+ reject(error);
457
+ };
458
+ queue.push(queueItem);
459
+ processQueue();
460
+ });
461
+ } else {
462
+ return new Promise((resolve, reject) => {
463
+ queue.push({
464
+ resolve,
465
+ reject
466
+ });
467
+ processQueue();
468
+ });
469
+ }
470
+ };
471
+ const result = {
472
+ lock,
473
+ waiter: {
474
+ wait: lock
475
+ },
476
+ get isLocked() {
477
+ return isLocked;
478
+ },
479
+ get pendingCount() {
480
+ return queue.length;
481
+ }
482
+ };
483
+ return result;
484
+ };
485
+ const createDeferred = (signal) => {
486
+ let resolve;
487
+ let reject;
488
+ const promise = new Promise((res, rej) => {
489
+ resolve = res;
490
+ reject = rej;
491
+ });
492
+ const disposer = onAbort(signal, () => {
493
+ const _reject = reject;
494
+ if (_reject) {
495
+ resolve = void 0;
496
+ reject = void 0;
497
+ _reject(new Error("Deferred aborted"));
498
+ }
499
+ });
500
+ return {
501
+ // The promise that resolves to the result
502
+ promise,
503
+ // Resolve the promise with a result
504
+ resolve: (value) => {
505
+ const _resolve = resolve;
506
+ if (_resolve) {
507
+ resolve = void 0;
508
+ reject = void 0;
509
+ disposer.release();
510
+ _resolve(value);
511
+ }
512
+ },
513
+ // Reject the promise with an error
514
+ reject: (error) => {
515
+ const _reject = reject;
516
+ if (_reject) {
517
+ resolve = void 0;
518
+ reject = void 0;
519
+ disposer.release();
520
+ _reject(error);
521
+ }
522
+ }
523
+ };
524
+ };
525
+ const __vite_glob_0_0 = "data:application/json;base64,ewogICJwdGhyZWFkUG9vbFNpemUiOiA0Cn0K";
526
+ const __vite_glob_0_1 = "data:application/wasm;base64,AGFzbQEAAAABtAEZYAF/AX9gAX8AYAR/f39/AGABfAF8YAJ/fwF/YAV/f39/fwBgBn9/f39/fwBgAABgBXx8fH9/AX9gA39/fwF/YAZ8fHx/f38Bf2AMfHx8f39/f39/fHx/AX9gA39/fwBgA3x8fwF8YAR8fHx/AX9gBnx8fHx/fwF/YAd8fHx/fH9/AX9gAXwAYAl/f39/f398f38AYAJ/fwBgAnx8AXxgAnx/AX9gAXwBf2ACfH8BfGAAAX8CqwEFFndhc2lfc25hcHNob3RfcHJldmlldzEOYXJnc19zaXplc19nZXQABBZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxCGFyZ3NfZ2V0AAQDZW52EF9fbWFpbl9hcmdjX2FyZ3YABBZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxCXByb2NfZXhpdAABA2Vudh9lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoAAEDQD8HDg8IEBEICAoKCAsLBAkHEgITCQIFDAQHAxQVDQMDAxYXAw0DAAEAAAAAAQEJCQwCAgIFBQYGAAAAAAEAARgEBQFwARkZBQcBAYICgIACBggBfwFBwNsECwe6AhAGbWVtb3J5AgAKZnJvbUxuZ0xhdAAGB3Byb2plY3QABwl1bnByb2plY3QACBljYWxjdWxhdGVQZXJzcGVjdGl2ZVJhdGlvAAkZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAEXNldFRocmVhZFBvb2xTaXplAAoYcHJvamVjdExuZ0xhdFRvQ2xpcFNwYWNlAAsaY2FsY3VsYXRlQmlsbGJvYXJkRGVwdGhLZXkADRhjYWxjdWxhdGVTdXJmYWNlRGVwdGhLZXkAEBdwcmVwYXJlRHJhd1Nwcml0ZUltYWdlcwASBl9zdGFydAAdBm1hbGxvYwAqBGZyZWUAKxlfZW1zY3JpcHRlbl9zdGFja19yZXN0b3JlAEIcZW1zY3JpcHRlbl9zdGFja19nZXRfY3VycmVudABDCR4BAEEBCxgvPwUvMTAwMzs5NTE6ODYxPTE+MTxAQUAMAQgKhNQDPwIAC9sCAQF+IAMEQCADIABEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAAvUL///////////8Ag0KAgICAgICA+P8AVBs5AwAgA0QAAAAAAAAAACACRAAAAAAAAAAAIAK9Qv///////////wCDQoCAgICAgID4/wBUGyABRCS4kbJFQ1VApEQkuJGyRUNVQCABvUL///////////8AgyIEQoCAgICAgID4/wBYG0QkuJGyRUNVwKVEAAAAAAAAAAAgBEKAgICAgICA+P8AVBsiAEQ5nVKiRt+RP6IQIkSTEHxF+BuDQaIiAaMgAUQAAAAAAAAAAGEbOQMQIAMgAEQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gECkQJET4wWMa3KVMwKJEAAAAAACAZkCgRAAAAAAAgHZAozkDCAsgA0EARwvfBAMBfgJ8AX8CQCAERSAFRXINACADvSIGQgF9Qv7///////8HViAGQgBTIAZC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACAEKwMAIQcgAUQkuJGyRUNVQKREJLiRskVDVUAgAb1C////////////AIMiBkKAgICAgICA+P8AWBtEJLiRskVDVcClRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6BEGC1EVPsh6T8gBkKAgICAgICA+P8AVBsQKRAkIQggBCsDYCAEKwNAIAJEAAAAAAAAAAAgAr1C////////////AINCgICAgICAgPj/AFQbIgGiIAcgAEQAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/IAC9Qv///////////wCDQoCAgICAgID4/wBUGyADoiIAoiADIAhE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKOiIgIgBCsDIKKgoKAiA71C////////////AINC//////////f/AFYNACAEKwNoIAQrA0ggAaIgBCsDCCAAoiACIAQrAyiioKCgIge9Qv///////////wCDQv/////////3/wBWDQAgBCsDeCAEKwNYIAGiIAQrAxggAKIgAiAEKwM4oqCgoCIAvSIGQgF9Qv7///////8HViAGQgBTIAZC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACAFIAcgAKM5AwggBSADIACjOQMAQQEhCQsgCQuuCAMMfAF+AX8CQCADRSAERXINACACvSIRQgF9Qv7///////8HViARQgBTIBFC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACADKwN4IgcgAysDWCIIRAAAAAAAAAAAoiADKwMYIABEAAAAAAAAAAAgAL1C////////////AINCgICAgICAgPj/AFQbIgWiIAFEAAAAAAAAAAAgAb1C////////////AINCgICAgICAgPj/AFQbIgYgAysDOKKgIgGgoCIAvUL///////////8Ag0L/////////9/8AVg0AIAcgCCABoKAiAb1C////////////AINC//////////f/AFYgAEQAAAAAAAAAAGFyIAFEAAAAAAAAAABhcg0AIAMrA2AiCSADKwNAIgpEAAAAAAAAAACiIAMrAwAgBaIgBiADKwMgoqAiC6CgIACjIge9Qv///////////wCDQv/////////3/wBWDQAgAysDaCIMIAMrA0giDUQAAAAAAAAAAKIgAysDCCAFoiAGIAMrAyiioCIOoKAgAKMiCL1C////////////AINCgICAgICAgPj/AFoNACADKwNwIg8gAysDUCIQRAAAAAAAAAAAoiADKwMQIAWiIAYgAysDMKKgIgagoCAAoyIFvUL///////////8Ag0KAgICAgICA+P8AWg0AIAkgCiALoKAgAaMiCb1C////////////AINCgICAgICAgPj/AFoNACAMIA0gDqCgIAGjIgq9Qv///////////wCDQoCAgICAgID4/wBaDQAgDyAQIAagoCABoyIBvUL///////////8Ag0KAgICAgICA+P8AWg0ARAAAAAAAAAAAIQAgASAFoSIBRAAAAAAAAAAAYgRARAAAAAAAAAAAIAWhIAGjIQALIAkgB6EgAKIgB6AiAb1C////////////AINC//////////f/AFYNACAKIAihIACiIAigIgC9Qv///////////wCDQoCAgICAgID4/wBaDQAgASACoyIBvUL///////////8Ag0L/////////9/8AVg0AIAAgAqMiAL1C////////////AINCgICAgICAgPj/AFoNAEQAAAAAAIBmQCAARAAAAAAAgHZAoqFEGC1EVPshCUCiRAAAAAAAgGZAoxAjEB5E+MFjGtylXECiRAAAAAAAgFbAoCIARCS4kbJFQ1VApEQkuJGyRUNVQCAAvUL///////////8Ag0KAgICAgICA+P8AWBsgAUQAAAAAAIB2QKJEAAAAAACAZsCgIgG9Qv///////////wCDQv/////////3/wBWDQBEJLiRskVDVcClIgC9Qv///////////wCDQoCAgICAgID4/wBaDQAgBCAAOQMIIAQgATkDAEEBIRILIBILowQCAX4BfwJAIAVFIAZFcg0AAnwgAwRAIAMrAxAhAiADKwMIIQEgAysDAAwBC0QAAAAAAAAAACACRAAAAAAAAAAAIAK9Qv///////////wCDQoCAgICAgID4/wBUGyABRCS4kbJFQ1VApEQkuJGyRUNVQCABvUL///////////8AgyIHQoCAgICAgID4/wBYG0QkuJGyRUNVwKVEAAAAAAAAAAAgB0KAgICAgICA+P8AVBsiAUQ5nVKiRt+RP6IQIkSTEHxF+BuDQaIiAqMgAkQAAAAAAAAAAGEbIQIgAUQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gECkQJET4wWMa3KVMwKJEAAAAAACAZkCgRAAAAAAAgHZAoyEBIABEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAAvUL///////////8Ag0KAgICAgICA+P8AVBsLIQAgBSsDeCAFKwNYIAKiIAUrAxggAKIgASAFKwM4oqCgoCIAvSIHQgF9Qv7///////8HViAHQgBTIAdC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACAEIACjIgC9IgdCAX1C/v///////wdWIAdCAFMgB0L///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0AIAYgADkDAEEBIQgLIAgLAgALHQEBfyADRSAERXIEf0EABSAAIAEgAiADIAQQDAsL/AQDBXwBfgF/IAFEJLiRskVDVUCkRCS4kbJFQ1VAIAG9Qv///////////wCDIgpCgICAgICAgPj/AFgbRCS4kbJFQ1XApUQAAAAAAAAAACAKQoCAgICAgID4/wBUGyIBRDmdUqJG35E/ohAiIQUgAysDWCEHIAMrAxghCCABRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQKRAkIQYCQCADKwNgIAMrA0BEAAAAAAAAAAAgAkQAAAAAAAAAACACvUL///////////8Ag0KAgICAgICA+P8AVBsgBUSTEHxF+BuDQaIiAaMgAUQAAAAAAAAAAGEbIgGiIAMrAwAgAEQAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/IAC9Qv///////////wCDQoCAgICAgID4/wBUGyIAoiAGRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjIgIgAysDIKKgoKAiBb1C////////////AINC//////////f/AFYNACADKwNoIAMrA0ggAaIgAysDCCAAoiACIAMrAyiioKCgIga9Qv///////////wCDQoCAgICAgID4/wBaDQAgAysDcCADKwNQIAGiIAMrAxAgAKIgAiADKwMwoqCgoCIJvUL///////////8Ag0KAgICAgICA+P8AWg0AIAMrA3ggByABoiAIIACiIAIgAysDOKKgoKAiAL1C////////////AINC//////////f/AFYgAESN7bWg98awPmVyDQAgBCAAOQMYIAQgCTkDECAEIAY5AwggBCAFOQMAQQEhCwsgCwsjAQF/IAVFIANFIARFcnIEf0EABSAAIAEgAiADIAQgBRAOCwvpBQMCfwF+A3wjAEEQayIGJAACQCACvSIIQgF9Qv7///////8HViAIQgBTIAhC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACAGQgA3AwggBkIANwMAIAAgASACIAMgBhAPRQ0AIAYrAwgiAEQkuJGyRUNVQKREJLiRskVDVUAgAL1C////////////AIMiCEKAgICAgICA+P8AWBtEJLiRskVDVcClRAAAAAAAAAAAIAhCgICAgICAgPj/AFQbIgBEOZ1SokbfkT+iECIhAiAEKwNYIQogBisDACEBIAQrAxghCyAARCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQKRAkIQkgBCsDYCAEKwNARAAAAAAAAAAARAAAAAAAAAAAIAJEkxB8Rfgbg0GiIgCjIABEAAAAAAAAAABhGyIAoiAEKwMAIAFEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyABvUL///////////8Ag0KAgICAgICA+P8AVBsiAaIgBCsDICAJRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjIgKioKCgvUL///////////8Ag0L/////////9/8AVg0AIAQrA2ggBCsDSCAAoiAEKwMIIAGiIAQrAyggAqKgoKC9Qv///////////wCDQoCAgICAgID4/wBaDQAgBCsDcCAEKwNQIACiIAQrAxAgAaIgBCsDMCACoqCgoCIJvUL///////////8Ag0KAgICAgICA+P8AWg0AIAQrA3ggCiAAoiALIAGiIAIgBCsDOKKgoKAiAL1C////////////AINCgICAgICAgPj/AFoNACAJIABEAAAAAAAA8D8gAEQAAAAAAAAAAGIboyIAvUL///////////8Ag0L/////////9/8AVg0AIAUgAJo5AwBBASEHCyAGQRBqJAAgBwvkBwIMfAF/AkAgAysDeCIHIAMrA1giCEQAAAAAAAAAAKIgAysDGCAARAAAAAAAAAAAIAC9Qv///////////wCDQoCAgICAgID4/wBUGyIFoiABRAAAAAAAAAAAIAG9Qv///////////wCDQoCAgICAgID4/wBUGyIGIAMrAziioCIBoKAiAL1C////////////AINC//////////f/AFYNACAHIAggAaCgIgG9Qv///////////wCDQv/////////3/wBWIABEAAAAAAAAAABhciABRAAAAAAAAAAAYXINACADKwNgIgkgAysDQCIKRAAAAAAAAAAAoiADKwMAIAWiIAYgAysDIKKgIgugoCAAoyIHvUL///////////8Ag0L/////////9/8AVg0AIAMrA2giDCADKwNIIg1EAAAAAAAAAACiIAMrAwggBaIgBiADKwMooqAiDqCgIACjIgi9Qv///////////wCDQoCAgICAgID4/wBaDQAgAysDcCIPIAMrA1AiEEQAAAAAAAAAAKIgAysDECAFoiAGIAMrAzCioCIGoKAgAKMiBb1C////////////AINCgICAgICAgPj/AFoNACAJIAogC6CgIAGjIgm9Qv///////////wCDQoCAgICAgID4/wBaDQAgDCANIA6goCABoyIKvUL///////////8Ag0KAgICAgICA+P8AWg0AIA8gECAGoKAgAaMiAb1C////////////AINCgICAgICAgPj/AFoNAEQAAAAAAAAAACEAIAEgBaEiAUQAAAAAAAAAAGIEQEQAAAAAAAAAACAFoSABoyEACyAJIAehIACiIAegIgG9Qv///////////wCDQv/////////3/wBWDQAgCiAIoSAAoiAIoCIAvUL///////////8Ag0KAgICAgICA+P8AWg0AIAEgAqMiAb1C////////////AINC//////////f/AFYNACAAIAKjIgC9Qv///////////wCDQoCAgICAgID4/wBaDQBEAAAAAACAZkAgAEQAAAAAAIB2QKKhRBgtRFT7IQlAokQAAAAAAIBmQKMQIxAeRPjBYxrcpVxAokQAAAAAAIBWwKAiAEQkuJGyRUNVQKREJLiRskVDVUAgAL1C////////////AINCgICAgICAgPj/AFgbIAFEAAAAAACAdkCiRAAAAAAAgGbAoCIBvUL///////////8Ag0L/////////9/8AVg0ARCS4kbJFQ1XApSIAvUL///////////8Ag0KAgICAgICA+P8AWg0AIAQgADkDCCAEIAE5AwBBASERCyARCzYBAX8gA0UgBUVyIAdFIAtFcnIEf0EABSAAIAEgAiADIAQgBSAGIAcgCEEARyAJIAogCxARCwucBwMIfAJ/AX4CQCAEQQBMIAZBAExyDQAgAkQAAAAAAAAAACACvUL///////////8Ag0KAgICAgICA+P8AVBshECABRDmdUqJG35E/ohAiIgJEje21oPfGsD6lRI3ttaD3xrA+IAK9Qv///////////wCDQoCAgICAgID4/wBYG0QAAABAplRYQaIhEUQAAAAAAADw/yECA0AgBCAFIBVBAnRqKAIAIhRLBEAgASADIBRBBHRqIhQrAwhEAAAAQKZUWEGjRPjBYxrcpUxAoqAiDEQkuJGyRUNVQKREJLiRskVDVUAgDL1C////////////AIMiFkKAgICAgICA+P8AWBtEJLiRskVDVcClRAAAAAAAAAAAIBZCgICAgICAgPj/AFQbIgxEOZ1SokbfkT+iECIhDSAHKwNYIRIgFCsDACEOIAcrAxghEyAMRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQKRAkIQ9BACEUIAcrA2AgBysDQEQAAAAAAAAAACAQIA1EkxB8Rfgbg0GiIgyjIAxEAAAAAAAAAABhGyIMoiAHKwMAIAAgDiARo0T4wWMa3KVMQKKgIg1EAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyANvUL///////////8Ag0KAgICAgICA+P8AVBsiDaIgBysDICAPRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjIg6ioKCgvUL///////////8Ag0L/////////9/8AVg0CIAcrA2ggBysDSCAMoiAHKwMIIA2iIAcrAyggDqKgoKC9Qv///////////wCDQoCAgICAgID4/wBaDQIgBysDcCAHKwNQIAyiIAcrAxAgDaIgBysDMCAOoqCgoCIPvUL///////////8Ag0KAgICAgICA+P8AWg0CIAcrA3ggEiAMoiATIA2iIAcrAzggDqKgoKAiDL1C////////////AINC//////////f/AFYgDESN7bWg98awPmVyDQIgCAR8IAogDKEiDSAJIAyiIA+gIg4gDSAOZBsFIA8LIAyjIgy9Qv///////////wCDQv/////////3/wBWDQIgDJoiDCACIAIgDGMbIQILIBVBAWoiFSAGRw0AC0EAIRQgAr1C////////////AINC//////////f/AFYNACALIAI5AwBBASEUCyAUC4isAQMbf1R8A34jAEGgBGsiAyQAAkAgAEUgAUVyDQAgAUIANwMgIAFCgICAgICAgIjAADcDGCABQoCAgICAgIChwAA3AxAgAUKAgICAgICYsMAANwMIIAFCADcDACABQgA3AyggAUIANwMwIAArAwAiHb0ickL///////////8AgyJxQgF9Qv////////8HVCByQgBTIgJxIHFCgICAgICAgPj/AFFyIHFCgICAgICAgPj/AFZyIHFCgICAgICAgAh9QoCAgICAgIDw/wBUIAJxcg0AIB1EAAAAAAAA4D+gnCIdRAAAAAAAAPB/ZCAdRAAAAAAAAPB/Y3JFDQAgHfwDIgJBD0kgHSACuGJyDQAgACsDCCIdvSJyQv///////////wCDInFCAX1C/////////wdUIHJCAFMiB3EgcUKAgICAgICA+P8AUXIgcUKAgICAgICA+P8AVnIgcUKAgICAgICACH1CgICAgICAgPD/AFQgB3FyDQAgHUQAAAAAAADgP6CcIh1EAAAAAAAA8H9kIB1EAAAAAAAA8H9jckUNACAd/AMiB0EYRyAdIAe4YnINACAAKwMQIh29InJC////////////AIMicUIBfUL/////////B1QgckIAUyIHcSBxQoCAgICAgID4/wBRciBxQoCAgICAgID4/wBWciBxQoCAgICAgIAIfUKAgICAgICA8P8AVCAHcXINACAdRAAAAAAAAOA/oJwiHUQAAAAAAADwf2QgHUQAAAAAAADwf2NyRQ0AIB0gHfwDIge4YiACIAdJciACIAdrQTBJcg0AIAArAxgiHb0ickL///////////8AgyJxQgF9Qv////////8HVCByQgBTIgZxIHFCgICAgICAgPj/AFFyIHFCgICAgICAgPj/AFZyIHFCgICAgICAgAh9QoCAgICAgIDw/wBUIAZxcg0AIB1EAAAAAAAA4D+gnCIdRAAAAAAAAPB/ZCAdRAAAAAAAAPB/Y3JFDQAgHSAd/AMiCLhiDQAgACsDICIdvSJyQv///////////wCDInFCAX1C/////////wdUIHJCAFMiBnEgcUKAgICAgICA+P8AUXIgcUKAgICAgICA+P8AVnIgcUKAgICAgICACH1CgICAgICAgPD/AFQgBnFyDQAgHUQAAAAAAADgP6CcIh1EAAAAAAAA8H9kIB1EAAAAAAAA8H9jckUNACAdIB38AyINuGIgAiANSXIgAiANayAIQQlsSXINACAAKwMoIh29InJC////////////AIMicUIBfUL/////////B1QgckIAUyIGcSBxQoCAgICAgID4/wBRciBxQoCAgICAgID4/wBWciBxQoCAgICAgIAIfUKAgICAgICA8P8AVCAGcXINACAdRAAAAAAAAOA/oJwiHUQAAAAAAADwf2QgHUQAAAAAAADwf2NyRQ0AIB0gHfwDIgq4Yg0AIAArAzAiHb0ickL///////////8AgyJxQgF9Qv////////8HVCByQgBTIgZxIHFCgICAgICAgPj/AFFyIHFCgICAgICAgPj/AFZyIHFCgICAgICAgAh9QoCAgICAgIDw/wBUIAZxcg0AIB1EAAAAAAAA4D+gnCIdRAAAAAAAAPB/ZCAdRAAAAAAAAPB/Y3JFDQAgHSAd/AMiBrhiIAIgBklyIAIgBmsgCkEGbElyDQAgACsDOCIdvSJyQv///////////wCDInFCAX1C/////////wdUIHJCAFMiBnEgcUKAgICAgICA+P8AUXIgcUKAgICAgICA+P8AVnIgcUKAgICAgICACH1CgICAgICAgPD/AFQgBnFyDQAgHUQAAAAAAADgP6CcIh1EAAAAAAAA8H9kIB1EAAAAAAAA8H9jckUNACAdIB38AyITuGINACAAKwNAIh29InJC////////////AIMicUIBfUL/////////B1QgckIAUyIGcSBxQoCAgICAgID4/wBRciBxQoCAgICAgID4/wBWciBxQoCAgICAgIAIfUKAgICAgICA8P8AVCAGcXINACAdRAAAAAAAAOA/oJwiHUQAAAAAAADwf2QgHUQAAAAAAADwf2NyRQ0AIB0gHfwDIgq4YiACIApJciACIAprIBNBG2xJcg0AIANCADcD6AIgA0KAgICAgICA+D83A+ACIANCADcD2AIgA0IANwPwAiADQgA3A/gCIANCADcDiAMgA0KAgICAgICA+D83A4ADIANCADcDkAMgA0IANwOYAyADQgA3A6ADIANCADcDyAMgA0KAgICAgICA+D83A8ADIANCgICAgICAgPg/NwO4AyADQoCAgICAgID4PzcDsAMgA0KAgICAgICA+D83A6gDIANCADcD0AMgA0KAgICAgICA+D83A9gDIANCgICAgICAgPg/NwPgAyADQgA3A/ADIANCADcD6AMgA0EAOgCYBCADQgA3A5AEIANCgICAgICAgPg/NwOIBCADQoCAgICAgID4PzcDgAQgA0LI3vLVqf61vT43A/gDIAMgACsDeCIdOQPYAiADAnwgHb0icUI0iKdB/w9xIgJByQdrQT9PBEAgHUQAAAAAAADwP6AiISACQckHSQ0BGgJAIAJBiQhJDQBEAAAAAAAAAAAgcUKAgICAgICAeFENAhogISACQf8PTw0CGiBxQgBZBEAjAEEQayICRAAAAAAAAABwOQMIIAIrAwhEAAAAAAAAAHCiDAMLIHFCgICAgICAs8hAVA0AIwBBEGsiAkQAAAAAAAAAEDkDCCACKwMIRAAAAAAAAAAQogwCCyACQQAgcUIBhkKAgICAgICAjYF/WBshAgsgHSAdQYAiKwMAIh2gIh4gHaGhIh0gHaIiISAhoiAdQagiKwMAokGgIisDAKCiICEgHUGYIisDAKJBkCIrAwCgoiAdQYgiKwMAoiAevSJyp0EEdEHwD3EiBCsDsCKgoKAhHSAEKQO4IiByQi2GfCFxIAJFBEACfCByQoCAgIAIg1AEQCBxQoCAgICAgIAIfb8iISAdoiAhoCIdIB2gDAELIHFCgICAgICAgPA/fL8iISAdoiIeICGgIh1EAAAAAAAA8D9jBHwjAEEQayICQoCAgICAgIAINwMIIAIgAisDCEQAAAAAAAAQAKI5AwhEAAAAAAAAAAAgHUQAAAAAAADwP6AiIiAeICEgHaGgIB1EAAAAAAAA8D8gIqGgoKBEAAAAAAAA8L+gIh0gHUQAAAAAAAAAAGEbBSAdC0QAAAAAAAAQAKILDAELIHG/IiEgHaIgIaALOQPgAiADIAArA4ABOQPoAiADIAArA4gBOQPwAiADIAArA5ABOQP4AiADIAArA5gBOQOAAyADIAArA6ABOQOIAyADIAArA6gBOQOQAyADIAArA7ABOQOYAyADIAArA7gBOQOgAyADIAArA8ABOQOoAyADIAArA8gBOQOwAyADIAArA9ABOQO4AyADIAArA9gBOQPAAyADIAArA+ABOQPIAyADIAArA+gBOQPQAyADIAArA/ABOQPYAyADIAArA/gBOQPgAyADIAArA4ACOQPoAyADIAArA4gCOQPwAyADIAArA5ACOQP4AyADIAArA5gCOQOABCADIAArA6ACOQOIBCADIAArA6gCOQOQBCADIAArA7ACRAAAAAAAAAAAYjoAmAQgAyADKwPoAiIhOQO4AiADIAMrA/gCOQPAAiADIAAgB0EDdGoiAjYCyAIgAyACQYACajYC0AIgAyACQYABaiIHNgLMAgJAIAMrA5gDRAAAAAAAAAAAZEUNACADKwOgA0QAAAAAAAAAAGRFDQAgAysDqAMiHUQAAAAAAAAAAGENACAdvUL///////////8Ag0KAgICAgICA+P8AVCEFCyADIAU6ALcCIAMgACsDSPwCIgtBAXE6ALYCIAMgC0EBdkEBcToAtQIgAy0AmAQCfyADQagCaiIGQQA2AgggBkIANwIAAkAgCARAIAhB5PG4HE8NASAGIAhByABsIgQQLSICNgIAIAYgAiAEaiIQNgIIIARByABrIglByABuIgRBA3FBA0cEQCAEQQFqQQNxIQ5BACEEA0AgAkIANwMYIAJCADcDECACQgA3AwggAkIANwMAIAJCADcDKCACQoCAgICAgID4v383AyAgAkIANwMwIAJCgICAgICAgPg/NwNAIAJCgICAgICAgPg/NwM4IAJByABqIQIgBEEBaiIEIA5HDQALCyAJQdgBTwRAA0AgAkIANwMYIAJCADcDECACQgA3AwggAkIANwMAIAJCADcDKCACQoCAgICAgID4v383AyAgAkIANwMwIAJCADcDSCACQoCAgICAgID4PzcDQCACQoCAgICAgID4PzcDOCACQgA3A1AgAkIANwNYIAJCADcDYCACQgA3A3AgAkKAgICAgICA+L9/NwNoIAJCADcDeCACQoCAgICAgID4PzcDgAEgAkKAgICAgICA+D83A4gBIAJCADcDqAEgAkIANwOgASACQgA3A5gBIAJCADcDkAEgAkKAgICAgICA+L9/NwOwASACQgA3A7gBIAJCADcDwAEgAkKAgICAgICA+D83A9ABIAJCgICAgICAgPg/NwPIASACQgA3A9gBIAJCADcD4AEgAkIANwPoASACQgA3A/ABIAJCgICAgICAgPi/fzcD+AEgAkIANwOAAiACQgA3A4gCIAJCgICAgICAgPg/NwOQAiACQoCAgICAgID4PzcDmAIgAkGgAmoiAiAQRw0ACwsgBiAQNgIECyAGDAELEBQACyEQIAgEQCAAIA1BA3RqIQ0gECgCACEJQQAhBgNAIA0gBkHIAGwiAmoiBCsDKCEdIAQrAzAhHiAEKwM4ISIgBCsDQCEfIAQrAxghICAEKwMIISQgBCsDECEjIAIgCWoiAiAEKwMgOQMgIAIgIzkDECACICQ5AwggAiAGNgIAIAIgIEQAAAAAAAAAAGI6ABggAiAfRAAAAAAAAPA/IB+9Qv///////////wCDQoCAgICAgID4/wBUGzkDQCACICJEAAAAAAAA8D8gIr1C////////////AINCgICAgICAgPj/AFQbOQM4IAIgHkQAAAAAAAAAACAevUL///////////8Ag0KAgICAgICA+P8AVBs5AzAgAiAdRAAAAAAAAAAAIB29Qv///////////wCDQoCAgICAgID4/wBUGzkDKCAGQQFqIgYgCEcNAAsLAn8gA0GcAmoiBkEANgIIIAZCADcCAAJAIBMEQCATQbKn7AlPDQEgBiATQdABbCIEEC0iAjYCACAGIAIgBGoiCDYCCCAEQdABayINQdABbiIEQQNxQQNHBEAgBEEBakEDcSEJQQAhBANAIAJBAEHQAfwLACACQgA3A4gBIAJCgICAgICAgPg/NwNwIAJCADcDkAEgAkIANwOgASACQoCAgICAgID4PzcDmAEgAkIANwOoASACQQA6ALABIAJCADcDuAEgAkIANwPAASACQQA6AMgBIAJB0AFqIQIgBEEBaiIEIAlHDQALCyANQfAETwRAA0AgAkEAQdAB/AsAIAJCADcDiAEgAkKAgICAgICA+D83A3AgAkIANwOQASACQgA3A6ABIAJCgICAgICAgPg/NwOYASACQgA3A6gBIAJBADoAsAEgAkIANwO4ASACQgA3A8ABIAJBADoAyAEgAkHQAWpBAEHQAfwLACACQgA3A9gCIAJCgICAgICAgPg/NwPAAiACQgA3A+ACIAJCADcD8AIgAkKAgICAgICA+D83A+gCIAJCADcD+AIgAkEAOgCAAyACQgA3A4gDIAJCADcDkAMgAkEAOgCYAyACQaADakEAQdAB/AsAIAJCADcDqAQgAkKAgICAgICA+D83A5AEIAJCADcDsAQgAkIANwPABCACQoCAgICAgID4PzcDuAQgAkIANwPIBCACQQA6ANAEIAJCADcD2AQgAkIANwPgBCACQQA6AOgEIAJB8ARqQQBB0AH8CwAgAkIANwP4BSACQoCAgICAgID4PzcD4AUgAkIANwOABiACQgA3A5AGIAJCgICAgICAgPg/NwOIBiACQgA3A5gGIAJBADoAoAYgAkIANwOoBiACQgA3A7AGIAJBADoAuAYgAkHABmoiAiAIRw0ACwsgBiAINgIECyAGDAELEBQACyENIBMEQCAAIApBA3RqIQggECgCBCAQKAIAIgprQcgAbSEJIA0oAgAhDkEAIQQDQCADQQA6AIgBIANCADcDgAEgA0IANwN4IANCADcDcCADQQA6AKABIANCADcDmAEgA0IANwOQASADQgA3A7ABIANCADcDqAEgA0EAOgDIASADQgA3A8ABIANCgICAgICAgPg/NwO4ASADQgA3A9gBIANCADcD0AEgA0KAgICAgICA+D83A+ABIANBADoA+AEgA0IANwPwASADQgA3A+gBIANBADoAkAIgA0IANwOIAiADQgA3A4ACIAMgBDYCTCADIAggBEHYAWxqIgA2AkggAwJ/QQAgACsDCCIdvSJyQv///////////wCDInFCAX1C/////////wdUIHJCAFMiAnEgcUKAgICAgICA+P8AUXIgcUKAgICAgICA+P8AVnIgcUKAgICAgICACH1CgICAgICAgPD/AFQgAnFyDQAaQQAgHUQAAAAAAADgP6CcIh1EAAAAAAAA8H9kIB1EAAAAAAAA8H9jckUNABpBACAdIB38AyICuGINABogCiACQcgAbGpBACACIAlJGws2AlAgACsDoAEhHSAAKwOoASEeIAMgACsDsAE5A2ggAyAeOQNgIAMgHTkDWEEAIQYCQCAHRSAhRAAAAAAAAAAAZXINACADKwNYIR0gBysDACEiIAMrA2AiHkQkuJGyRUNVQKREJLiRskVDVUAgHr1C////////////AIMicUKAgICAgICA+P8AWBtEJLiRskVDVcClRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6BEGC1EVPsh6T8gcUKAgICAgICA+P8AVBsQKRAkIR8gBysDYCAHKwNAIAMrA2giHkQAAAAAAAAAACAevUL///////////8Ag0KAgICAgICA+P8AVBsiHqIgIiAhIB1EAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAdvUL///////////8Ag0KAgICAgICA+P8AVBuiIh2iIAcrAyAgISAfRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjoiIioqCgoCIfvUL///////////8Ag0L/////////9/8AVg0AIAcrA2ggBysDSCAeoiAHKwMIIB2iICIgBysDKKKgoKAiIL1C////////////AINC//////////f/AFYNACAHKwN4IAcrA1ggHqIgBysDGCAdoiAiIAcrAziioKCgIh29InFCAX1C/v///////wdWIHFCAFMgcUL///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0AIAMgICAdozkDmAEgAyAfIB2jOQOQAUEBIQYLIAMgBjoAoAEgAysDaCEdIAMrA2AhHiADIAMrA1giIkQAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/ICK9Qv///////////wCDQoCAgICAgID4/wBUGzkDcCADRAAAAAAAAAAAIB1EAAAAAAAAAAAgHb1C////////////AINCgICAgICAgPj/AFQbIB5EJLiRskVDVUCkRCS4kbJFQ1VAIB69Qv///////////wCDInFCgICAgICAgPj/AFgbRCS4kbJFQ1XApUQAAAAAAAAAACBxQoCAgICAgID4/wBUGyIdRDmdUqJG35E/ohAiRJMQfEX4G4NBoiIeoyAeRAAAAAAAAAAAYRs5A4ABIAMgHUQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gECkQJET4wWMa3KVMwKJEAAAAAACAZkCgRAAAAAAAgHZAozkDeCADQQE6AIgBAkAgAygCSCIAKwMAIh29Qv///////////wCDQv/////////3/wBYBEAgHZ0iHSAd/AYicblhDQELQgAhcQsgAyBxNwOoAQJAIAArA1giIr1C////////////AINCgICAgICAgPj/AFQNAEQAAAAAAAAAACEiIAArA2AgACsDaKAiHb1C////////////AINC//////////f/AFYNAEQAAAAAAAAAAAJ8IB29InNCNIinQf8PcSIAQf8PRgRAIB1EAAAAAACAdkCiIh0gHaMMAQsgc0IBhiJxQoCAgICAgMD2gH9YBEAgHUQAAAAAAAAAAKIgHSBxQoCAgICAgMD2gH9RGwwBCwJ+IABFBEBBACEAIHNCDIYicUIAWQRAA0AgAEEBayEAIHFCAYYicUIAWQ0ACwsgc0EBIABrrYYMAQsgc0L/////////B4NCgICAgICAgAiECyFxIABBhwhKBEADQAJAIHFCgICAgICAoAt9InJCAFMNACByInFCAFINACAdRAAAAAAAAAAAogwDCyBxQgGGIXEgAEEBayIAQYcISg0AC0GHCCEACwJAIHFCgICAgICAoAt9InJCAFMNACByInFCAFINACAdRAAAAAAAAAAAogwBCyBxQv////////8HWARAA0AgAEEBayEAIHFCgICAgICAgARUIHFCAYYhcQ0ACwsgc0KAgICAgICAgIB/gyBxQoCAgICAgIAIfSAArUI0hoQgcUEBIABrrYggAEEAShuEvwsiHUQAAAAAAIB2QKAgHSAdRAAAAAAAAAAAYxsiHSAdRAAAAAAAAAAAYRshIgsgAyAiOQPQASADICJEOZ1Sokbfkb+iIh0QIjkD4AEgAyAdECc5A9gBIA4gBEHQAWxqIANByABqQckB/AoAACAEQQFqIgQgE0cNAAsLIANBuAJqIQogA0HYAmohBiMAQSBrIgIkACANKAIAIgAgDSgCBCIHRwRAA0ACQCAAKAIARQ0AIAAoAggiCEUNACAALQBYQQFHDQAgBisDCCEeIAooAhAhBCAKKwMIISECQCAALQCAAUEBRgRAIAArA3giHb0icUIBfUL/////////B1QgcUL///////////8Ag0KAgICAgICACH1CgICAgICAgPD/AFQgcUIAWXFyDQELIAArAxgiHUQ5nVKiRt+RP6IQIkSTEHxF+BuDQaIgHkQAAAAAAACAQKKjIh69InFCAX1C/v///////wdWIHFCAFMgcUL///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0BRAAAAAAAAPA/ISICQCAERSAhRAAAAAAAAAAAZXINAAJ8IAAtAEBBAUYEQCAAKwM4IR0gACsDKCEfIAArAzAMAQsgHUQkuJGyRUNVQKREJLiRskVDVUAgHb1C////////////AIMicUKAgICAgICA+P8AWBtEJLiRskVDVcClRAAAAAAAAAAAIHFCgICAgICAgPj/AFQbIiBEOZ1SokbfkT+iECIhHUQAAAAAAAAAACAAKwMgIh9EAAAAAAAAAAAgH71C////////////AINCgICAgICAgPj/AFQbIB1EkxB8Rfgbg0GiIh2jIB1EAAAAAAAAAABhGyEdIAArAxAiH0QAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/IB+9Qv///////////wCDQoCAgICAgID4/wBUGyEfICBEJLiRskVDVUCkRCS4kbJFQ1XApUQ5nVKiRt+RP6JEAAAAAAAA4D+iRBgtRFT7Iek/oBApECRE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKMLISAgBCsDeCAEKwNYIB2iIAQrAxggH6IgICAEKwM4oqCgoCIdvSJxQgF9Qv7///////8HViBxQgBTIHFC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACAhIB2jIh1EAAAAAAAA8D8gHSAdvSJxQgBTG0QAAAAAAADwPyBxQv///////////wCDQoCAgICAgIAIfUKAgICAgICA8P8AVBsgcUIBfUL/////////B1QbISILRAAAAAAAAPA/IB6jICKiIh29InFCAX1C/v///////wdWIHFCAFMgcUL///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0BIABBAToAgAEgACAdOQN4IAAgIjkDcCAAIB45A2gLIAJBEGogAEEBIAogBiAIIB0gDSAFEBUgACACKQMYNwOoASAAIAIpAxA3A6ABIABBAToAsAEgAiAAQQAgCiAGIAAoAgggHSANIAUQFSAAIAIpAwg3A8ABIAAgAikDADcDuAEgAEEBOgDIAQsgAEHQAWoiACAHRw0ACwsgAkEgaiQAIAtBBHFBAnZxIRFBACEFQQAhAEEAIQ4jAEHQAGsiByQAIANBPGoiFyIMQQA2AgggDEIANwIAIA0oAgQiAiANKAIAIgRrQdABbSESAkACQAJAIAIgBEcEQCASQYCAgBBPDQEgEkEHdCIAEC0iBSAAaiEOIAUhAANAAkAgDSgCACAUQdABbGoiBCgCACIIRQ0AIAQoAggiAkUNACACLQAYQQFHDQAgBC0AWEEBRw0AIAYrAwghHiAKKAIQIQsgCisDCCEhAkAgBC0AgAFBAUYEQCAEKwN4Ih29InFCAX1C/////////wdUIHFC////////////AINCgICAgICAgAh9QoCAgICAgIDw/wBUIHFCAFlxcg0BCyAEKwMYIh1EOZ1SokbfkT+iECJEkxB8Rfgbg0GiIB5EAAAAAAAAgECioyIevSJxQgF9Qv7///////8HViBxQgBTIHFC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENAUQAAAAAAADwPyEiAkAgC0UgIUQAAAAAAAAAAGVyDQACfCAELQBAQQFGBEAgBCsDOCEdIAQrAyghIyAEKwMwDAELIB1EJLiRskVDVUCkRCS4kbJFQ1VAIB29Qv///////////wCDInFCgICAgICAgPj/AFgbRCS4kbJFQ1XApUQAAAAAAAAAACBxQoCAgICAgID4/wBUGyIfRDmdUqJG35E/ohAiIR1EAAAAAAAAAAAgBCsDICIgRAAAAAAAAAAAICC9Qv///////////wCDQoCAgICAgID4/wBUGyAdRJMQfEX4G4NBoiIdoyAdRAAAAAAAAAAAYRshHSAEKwMQIiBEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAgvUL///////////8Ag0KAgICAgICA+P8AVBshIyAfRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQKRAkRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjCyEfIAsrA3ggCysDWCAdoiALKwMYICOiIB8gCysDOKKgoKAiHb0icUIBfUL+////////B1YgcUIAUyBxQv///////////wCDQoCAgICAgIAIfUL/////////7/8AVnJxDQAgISAdoyIdRAAAAAAAAPA/IB0gHb0icUIAUxtEAAAAAAAA8D8gcUL///////////8Ag0KAgICAgICACH1CgICAgICAgPD/AFQbIHFCAX1C/////////wdUGyEiC0QAAAAAAADwPyAeoyAioiIdvSJxQgF9Qv7///////8HViBxQgBTIHFC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENASAEQQE6AIABIAQgHTkDeCAEICI5A3AgBCAeOQNoCyAEQaABQcgAIAQtALABIgkbaisDACEhIARBqAFB0AAgCRtqKwMAIR4gB0IANwNIAn8CQAJAIAgrAyAQJUUEQCALRQ0ERAAAAAAAAAAAISFEAAAAAAAA8D8hJCAIKwMoIh5EAAAAAAAA8D8gHkQAAAAAAAAAAGIbISIgCCsDSCElIAhBQGshCSAGKwNYISMgAisDCCIeRAAAAAAAAAAAZQ0BIAIrAxAiH0QAAAAAAAAAAGUNASAGKwMoIiBEAAAAAAAAAABlDQEgHyAiICCiICOiIiCiIh9EAAAAAAAAAAAgH71C////////////AINCgICAgICAgPj/AFQbIR8gHiAgoiIeRAAAAAAAAAAAIB69Qv///////////wCDQoCAgICAgID4/wBUGyEgIB29InFCAX1C/v///////wdWIHFCAFMgcUL///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0CIAYrAzAiHkQAAAAAAAAAAGQiAiAGKwM4IiZEAAAAAAAAAABkIg9yRQ0CIB8gICAfICBkGyIpRAAAAAAAAAAAZEUNAiAdICmiIh29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ASAjIB4gHSAMIABBsAFqEA9FDQAgAEIANwO4CCAAIAArA7gBOQOwCCAAIAArA7ABOQOoCAsgACAAKQO4CDcDmAcgACAAKQOwCDcDkAcgACAAKQOoCDcDiAcgACACKwMIOQOgByAAIAIrAxA5A6gHIAAgBCsDKDkDsAcgACAkOQO4ByAAIAQrA1g5A8AHIAAgJjkDyAcgACAFKwOQATkD0AcgACAFKwOYATkD2AcgACAfOQPoByAAIABBsAtqNgLgByAAIABBoAtqNgLkByAAIAQrAzA5A/AHIAAgBCsDODkD+AcgACARNgKACCAAQQE7AYQIIAAgBCsDQCIsOQOICCAAIAQrA0giLzkDkAggACAEKwNQIiY5A5gIIABBAToAoAggAEHgBWogAEGIB2oQFyAALQDwBUEBRw0CIAotABBBAXFFDQJEAAAAAAAAAAAhIiAWQQFxBEAgBCsDsAFEAAAAAAAA8L+gIR0gBysDeCAEKwOoAaIgBysDcCIevUL///////////8Ag0KAgICAgICA+P8AWAR8IB4gHSAepCAdvUL///////////8Ag0KAgICAgICA+P8AVhsFIB0LoCAEKwO4AZqiISILIApBQGshESAAKwOwBiEuIAArA6gGITEgACsDoAYgCisDGCElIAorAyAhKSAKKwMoISogBSsDkAEhHiAFKwOYASEdIABBsAFqIgJBwAFqQQBBgAH8CwAgAkHYCikDADcD2AIgAkHQCikDADcD0AIgAkHICikDADcDyAIgAkHACikDADcDwAIgAkHgAmpBAEHEAfwLACAAKwOwBiEjIAArA6gGIR8gACsDoAYhICACICg5A0AgAiAhOQM4IAIgKUQAAAAAAADgP6IiJDkDMCACICVEAAAAAAAA4D+iIic5AyggAiAgRAAAAAAAgGZAoEQAAAAAAIB2QKNEAAAAAAAA4D8gIL1C////////////AINCgICAgICAgPj/AFQbIjQ5AwAgAkQAAAAAAAAAACAjRAAAAAAAAAAAICO9Qv///////////wCDQoCAgICAgID4/wBUGyAfRCS4kbJFQ1VApEQkuJGyRUNVQCAfvUL///////////8AgyJxQoCAgICAgID4/wBYG0QkuJGyRUNVwKUiI0QAAAAAAAAAACBxQoCAgICAgID4/wBUIgwbIjVEOZ1SokbfkT+iECJEkxB8Rfgbg0GiIjajIDZEAAAAAAAAAABhGzkDECACICBEAAAAAAAA8D8gH0Q5nVKiRt+RP6IQIiIgRI3ttaD3xrA+pUSN7bWg98awPiAgvUL///////////8Ag0KAgICAgICA+P8AWBtEAAAAQKZUWEGio0T4wWMa3KVMQKKgIiBEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAgvUL///////////8Ag0KAgICAgICA+P8AVBsgNKE5AxggAiA1RCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQKRAkRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjOQMIICNEJLiRskVDVUCkRCS4kbJFQ1XApUQ5nVKiRt+RP6JEAAAAAAAA4D+iRBgtRFT7Iek/oEQYLURU+yHpPyAMGxApECQhICACIB9EHnAYIMvW4j6gIh9EJLiRskVDVUCkRCS4kbJFQ1VAIB+9Qv///////////wCDQoCAgICAgID4/wBYG0QkuJGyRUNVwKVEJLiRskVDVUCkRCS4kbJFQ1XApUQ5nVKiRt+RP6JEAAAAAAAA4D+iRBgtRFT7Iek/oEQYLURU+yHpPyAfvUL///////////8Ag0KAgICAgICA+P8AVBsQKRAkRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjICBE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKOhOQMgIAIgCikDMDcDSCACIAopAzg3A1AgAiAdOQNgIAIgHjkDWCAFKwOIASEfIAIgIjkDcCACIB85A2ggAiAAKQOYBjcDgAEgAiAAKQOQBjcDeCACIABBqAhqIgUpAwA3A4gBIAIgBSkDCDcDkAEgAiAFKQMQNwOYASAAKQOwBiFxIAApA6gGIXIgACkDoAYhcyACICo5A7gBIAIgczcDoAEgAiByNwOoASACIHE3A7ABIAUrAwghICAFKwMAISMCQCAlRAAAAAAAAAAAZSApRAAAAAAAAAAAZXIEQCAKKwMwIh0hKCAKKwM4IiEhJCAdIh4hJSAhIh8hKQwBCyAnICcgIaIiH6EiJSAeoiI0ICSaICQgKKIiKKEiKiAdoiI1oCAKKwM4IiGgISkgJSAdoiI2ICogHpoiN6IiOKAgCisDMCIqoCElICeaIB+hIicgHqIiOSA1oCAhoCEfICcgHaIiJyA4oCAqoCEeIDQgJCAooSIoIB2iIh2gICGgISQgNiAoIDeiIjSgICqgISggOSAdoCAhoCEhICcgNKAgKqAhHQsgAkEANgKgBCACICk5A6gCIAIgJTkDoAIgAiAfOQOIAiACIB45A4ACIAIgJDkD6AEgAiAoOQPgASACICE5A8gBIAIgHTkDwAEgAiAgIClEAAAAQKZUWEGjRPjBYxrcpUxAoqA5A7gCIAIgICAfRAAAAECmVFhBo0T4wWMa3KVMQKKgOQOYAiACICAgJEQAAABAplRYQaNE+MFjGtylTECioDkD+AEgAiAgICFEAAAAQKZUWEGjRPjBYxrcpUxAoqA5A9gBIAIgIyAlRI3ttaD3xrA+ICBEOZ1SokbfkT+iECIiISAhRI3ttaD3xrA+YxtEAAAAQKZUWEGiIiGjRPjBYxrcpUxAoqA5A7ACIAIgIyAeICGjRPjBYxrcpUxAoqA5A5ACIAIgIyAoICGjRPjBYxrcpUxAoqA5A/ABIAIgIyAdICGjRPjBYxrcpUxAoqA5A9ABQQAhDCAAQTBqQQBBgAH8CwAgAEEANgIsIABCADcDICAAQgA3AxggAEIANwMQIABCADcDCCAmvUL///////////8AgyJxUCBxQoCAgICAgID4/wBRciBxQoCAgICAgID4/wBWciEYRAAAAAAAAPA/RAAAAAAAAAAAIBVBAXEiChshHiAxIC4gBiAAQQhqEAwhGSAAKwO4CCIdRAAAAAAAAAAAIB29Qv///////////wCDQoCAgICAgID4/wBUGyElIAArA7AIIilEOZ1SokbfkT+iECIiHUSN7bWg98awPqVEje21oPfGsD4gHb1C////////////AINCgICAgICAgPj/AFgbRAAAAECmVFhBoiEnIAYrA3ghKiAGKwNYISggBisDOCEuIAYrAxghMSAGKwNwITMgBisDUCE0IAYrAzAhNSAGKwMQITYgBisDaCE3IAYrA0ghOCAGKwMoITkgBisDCCE6IAYrA2AhOyAGKwNAITwgBisDICE9IAQrA6ABIT4gAEGACWohBSAAKwOoCCE/A0AgKSARIAwoAqgJIgRBBHQiAmoiFisDCEQAAABAplRYQaNE+MFjGtylTECioCIdRCS4kbJFQ1VApEQkuJGyRUNVQCAdvUL///////////8AgyJxQoCAgICAgID4/wBYG0QkuJGyRUNVwKVEAAAAAAAAAAAgcUKAgICAgICA+P8AVBsiHUQ5nVKiRt+RP6IQIiEhIBYrAwAhHyAdRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQKRAkISAgOyA8RAAAAAAAAAAAICUgIUSTEHxF+BuDQaIiHaMgHUQAAAAAAAAAAGEbIh2iIAYrAwAgPyAfICejRPjBYxrcpUxAoqAiIUQAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/ICG9Qv///////////wCDQoCAgICAgID4/wBUGyIfoiA9ICBE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKMiI6KgoKAiIL1C////////////AINC//////////f/AFYNAyA3IDggHaIgOiAfoiA5ICOioKCgIiS9Qv///////////wCDQoCAgICAgID4/wBaDQMgMyA0IB2iIDYgH6IgNSAjoqCgoCIhvUL///////////8Ag0KAgICAgICA+P8AWg0DICogKCAdoiAxIB+iIC4gI6KgoKAiH71C////////////AINC//////////f/AFYgH0SN7bWg98awPmVyDQMgISEdICJEAAAAAAAAAABiBEAgPiAfoSIjICIgH6IgHaAiHSAdICNjGyEdCyAAQSxqIARqIhYtAABFBEAgAEEwaiAEQQV0aiIEIB85AxggBCAdOQMQIAQgJDkDCCAEICA5AwAgFkEBOgAAIBggLCAgRAAAAAAAAPA/IB+jIh2iRAAAAAAAAPA/oEQAAAAAAADgP6KiIiO9Qv///////////wCDQv/////////3/wBWIC9EAAAAAAAA8D8gJCAdoqFEAAAAAAAA4D+ioiIdvUL///////////8Ag0L/////////9/8AVnJyDQQgAEHACGogAmoiBCAdICajOQMIIAQgIyAmozkDAAsgBSAKBHwgAisDyAkhJCACKwPACSEgRAAAAAAAAAAAISFEAAAAAAAA8D8FIB8LOQMYIAUgITkDECAFICQ5AwggBSAgOQMAIAUgAisDiAogMKIgLaA5AyggBSACKwOACiAyoiAroDkDICAFQTBqIQUgDEEEaiIMQRhH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ACsDgAQhQiAAKwP4AyFBIAArA/ADIUAgACsDsAIhPyAAKwOoAiE+IAArA5gCIT0gACsDkAIhPCAAKwOIAiE7IAArA4ACITogACsD+AEhOSAAKwPwASE4IAArA+gBITcgACsD4AEhNiAAKwPYASE1IAArA9ABITQgACsDyAEhMyAAKwPAASExIAArA7ABIS4gACsDuAELISpEAAAAAAAAAAAhL0QAAAAAAADwPyEsRAAAAAAAAAAAIShEAAAAAAAAAAAhIUQAAAAAAAAAACEmRAAAAAAAAAAAISBEAAAAAAAAAAAhH0QAAAAAAAAAACEdRAAAAAAAAAAADAELRAAAAAAAAAAAISYgBCsDWCEnRAAAAAAAAPA/ISICQCACKwMIIh1EAAAAAAAAAABlBEBEAAAAAAAAAAAhHQwBCyACKwMQIiBEAAAAAAAAAABlBEBEAAAAAAAAAAAhHQwBCyAEKwMoIiVEAAAAAAAAAABlBEBEAAAAAAAAAAAhHQwBCyAgIB8gJCAloiAnoqIiIKIiJkQAAAAAAAAAACAmvUL///////////8Ag0KAgICAgICA+P8AVBsiJiAdICCiIh1EAAAAAAAAAAAgHb1C////////////AINCgICAgICAgPj/AFQbIh0gHSAmYxsiIL0icUIBfUL+////////B1YgcUIAUyBxQv///////////wCDQoCAgICAgIAIfUL/////////7/8AVnJxDQAgBCsDOCElIAQrAzAiKkQAAAAAAAAAAGRFICAgKmNFckUEQCAgICogIKMiIqIhICAmICKiISYgHSAioiEdCyAlRAAAAAAAAAAAZEUgICAlZEVyDQAgIiAlICCjIiCiISIgJiAgoiEmIB0gIKIhHQsgBSsDmAEhLCAFKwOQASEvIC5EOZ1SokbfkT+iIiUQIiEqIB1EAAAAAAAA4D+iISAgIyAlECcgHyApICSiICeioiAioiIioqAiHSEnIB4gKiAioqEiHyEkIB0iIiIjISkgHyIeIiUhKiAmRAAAAAAAAOA/oiImRAAAAAAAAAAAZSAgRAAAAAAAAAAAZXJFBEAgHyAgICEgIKIiHqEiIiAvoiIkICwgJpogKCAmoiInoSIjoiIloKEhKiAdICIgLKIiIiAjIC+aIi6iIiOgoCEpIB8gIJogHqEiHiAvoiIxICWgoSElIB0gHiAsoiIzICOgoCEjIB8gJCAsICYgJ6EiJKIiJ6ChIR4gHSAiICQgLqIiLqCgISIgHyAxICegoSEkIB0gMyAuoKAhJwsgAEKAgICAgICA+D83A4gLIABCADcDgAsgAEKAgICAgICA+D83A9gKIABCADcD0AogAEKAgICAgICA+D83A6gKIABCADcDoAogAEKAgICAgICA+D83A/gJIABCADcD8AkgAEKAgICAgICA+D83A8gJIABCADcDwAkgAEKAgICAgICA+D83A5gJIABCADcDkAkgACAtIDCgIi45A5gLIAAgKyAyoCIxOQOQCyAAIDE5A+AKIAAgLjkDuAogACAuOQOICiAAIDE5A9AJIABEAAAAAAAA8L8gKiAYQQFxIgIbOQP4CiAARAAAAAAAAPA/ICkgAhs5A/AKRAAAAAAAAAAAIS4gACAwRAAAAAAAAAAAoiAtoCItOQPoCiAARAAAAAAAAPA/IB4gAhsiMDkDyAogAEQAAAAAAADwPyAiIAIbIjE5A8AKIAAgMkQAAAAAAAAAAKIgK6AiKzkDsAogAEQAAAAAAADwvyAlIAIbIjI5A5gKIABEAAAAAAAA8L8gIyACGyIzOQOQCiAAICs5A4AKIAAgMjkD6AkgACAzOQPgCSAAIC05A9gJIAAgMDkDuAkgACAxOQOwCSAAIC05A6gJIAAgKzkDoAkgAEQAAAAAAADwPyAkIAIbOQOICSAARAAAAAAAAPC/ICcgAhs5A4AJIAAgKjkD+AggACApOQPwCCAAICU5A+gIIAAgIzkD4AggACAeOQPYCCAAICI5A9AIIAAgJDkDyAggACAnOQPACEEAIQZEAAAAAAAAAAAhKkQAAAAAAAAAACExRAAAAAAAAAAAITNEAAAAAAAAAAAhNEQAAAAAAAAAACE1RAAAAAAAAAAAITZEAAAAAAAAAAAhN0QAAAAAAAAAACE4RAAAAAAAAAAAITlEAAAAAAAAAAAhOkQAAAAAAAAAACE7RAAAAAAAAAAAITxEAAAAAAAAAAAhPUQAAAAAAAAAACEiRAAAAAAAAAAAIT5EAAAAAAAAAAAhP0QAAAAAAAAAACFARAAAAAAAAAAAIUFEAAAAAAAAAAAhQkQAAAAAAAAAACFDRAAAAAAAAAAAIS1EAAAAAAAAAAAhK0QAAAAAAAAAACEnRAAAAAAAAAAAITBEAAAAAAAAAAAhMkQAAAAAAAAAACEkRAAAAAAAAAAAISNEAAAAAAAAAAAhJUQAAAAAAAAAACFERAAAAAAAAAAAIUVEAAAAAAAAAAAhRkQAAAAAAAAAACFHRAAAAAAAAAAAIUhEAAAAAAAAAAAhSUQAAAAAAAAAACFKRAAAAAAAAAAAIUtEAAAAAAAAAAAhTEQAAAAAAAAAACFNRAAAAAAAAAAAIU5EAAAAAAAAAAAhT0QAAAAAAAAAACFQRAAAAAAAAAAAIVFEAAAAAAAAAAAhUkQAAAAAAAAAACFTRAAAAAAAAAAAIVREAAAAAAAAAAAhVUQAAAAAAAAAACFWRAAAAAAAAAAAIVdEAAAAAAAAAAAhWEQAAAAAAAAAACFZRAAAAAAAAAAAIVpEAAAAAAAAAAAhW0QAAAAAAAAAACFcRAAAAAAAAAAAIV1EAAAAAAAAAAAhXkQAAAAAAAAAACFfRAAAAAAAAAAAIWBEAAAAAAAAAAAhYUQAAAAAAAAAACFiRAAAAAAAAAAAIWNEAAAAAAAAAAAhZEQAAAAAAAAAACFlRAAAAAAAAAAAIWZEAAAAAAAAAAAhZ0QAAAAAAAAAACFoRAAAAAAAAAAAIWlEAAAAAAAAAAAhakQAAAAAAAAAACEpRAAAAAAAAAAAIR5EAAAAAAAA8D9EAAAAAAAAAAAgAhsLIXAgBysDACFrIBogC0GYCGxqIgIgHLg5AxAgAiAJuDkDCCACIGs5AwAgBysDMCFrIAIgLDkDkAEgAiAvOQOIASACICg5A4ABIAIgITkDeCACICY5A3AgAiAgOQNoIAIgHzkDYCACIB05A1ggAiBwOQNQIAIgKTkDSCACIB45A0AgAiBsOQM4IAIgbTkDMCACIG45AyggAiBvOQMgIAIgazkDGCACQZgBaiAAQYAJakGgAvwKAAAgAiAAKQP4CDcD8AMgAiAAKQPwCDcD6AMgAiAAKQPoCDcD4AMgAiAAKQPgCDcD2AMgAiAAKQPYCDcD0AMgAiAAKQPQCDcDyAMgAiAAKQPICDcDwAMgAiAAKQPACDcDuAMgAiBqOQOQCCACIGk5A4gIIAIgaDkDgAggAiBnOQP4ByACIGY5A/AHIAIgZTkD6AcgAiBkOQPgByACIGM5A9gHIAIgYjkD0AcgAiBhOQPIByACIGA5A8AHIAIgXzkDuAcgAiBeOQOwByACIF05A6gHIAIgXDkDoAcgAiBbOQOYByACIFo5A5AHIAIgWTkDiAcgAiBYOQOAByACIFc5A/gGIAIgVjkD8AYgAiBVOQPoBiACIFQ5A+AGIAIgUzkD2AYgAiBSOQPQBiACIFE5A8gGIAIgUDkDwAYgAiBPOQO4BiACIE45A7AGIAIgTTkDqAYgAiBMOQOgBiACIEs5A5gGIAIgSjkDkAYgAiBJOQOIBiACIEg5A4AGIAIgRzkD+AUgAiBGOQPwBSACIEU5A+gFIAIgRDkD4AUgAiAlOQPYBSACICM5A9AFIAIgJDkDyAUgAiAyOQPABSACIDA5A7gFIAIgJzkDsAUgAiArOQOoBSACIC05A6AFIAIgQzkDmAUgAiBCOQOQBSACIEE5A4gFIAIgQDkDgAUgAiA/OQP4BCACID45A/AEIAIgIjkD6AQgAiA9OQPgBCACIDw5A9gEIAIgOzkD0AQgAiA6OQPIBCACIDk5A8AEIAIgODkDuAQgAiA3OQOwBCACIDY5A6gEIAIgNTkDoAQgAiA0OQOYBCACIDM5A5AEIAIgMTkDiAQgAiAqOQOABCACIC45A/gDIAgoAiQoAgAgC2pBAToAACAIKAIoKAIAIAtqQQE6AAAgBkUNACAIKAIsKAIAIAtqQQE6AAALIAtBAWoiCyAXRw0ACwsgAEHAC2okACAUKAIAIQdEAAAAAAAAAAAhHSABAnxEAAAAAAAAAAAgAygCOCIIRQ0AGkQAAAAAAAAAACATRQ0AGiABQThqIQogDygCACELIA4oAgAhDCASKAIAIQlBACEAQQAhBkEAIQJBACEEA0ACQCAAIAlqLQAARQ0AIAogBEGYCGxqIAwgAEGYCGxqQZgI/AoAACACQQEhAkUEQCAAIAtqLQAAQQBHIQILIARBAWohBCAGQQFxBEBBASEGDAELIAAgB2otAABBAEchBgsgBCATSSAIIABBAWoiAEtxDQALIAS4IR1BAkEAIAZBAXEbIAJyuAs5AyAgASAdOQMAIAcEQCAUIAc2AgQgFCgCCBogBxArCyAPKAIAIgAEQCAPIAA2AgQgDygCCBogABArCyASKAIAIgAEQCASIAA2AgQgEigCCBogABArCyAOKAIAIgAEQCAOIAA2AgQgDigCCBogABArCyADKAI8IgAEQCADIAA2AkAgAygCRBogABArCyANKAIAIgAEQCANIAA2AgQgDSgCCBogABArCyAQKAIAIgAEQCAQIAA2AgQgECgCCBogABArC0EBIQQLIANBoARqJAAgBAtdAQJ/IABBADYCCCAAQgA3AgACQCABBEAgAUEASA0BIAAgARAtIgM2AgQgACADNgIAIAAgASADaiIENgIIIAEEQCADIAItAAAgAfwLAAsgACAENgIECyAADwsQFAAL3QEBBH9BCBAuIgBB1NUANgIAIAAiA0HE1gA2AgACf0GKCCEBQQBBiggtAABFDQAaAkACQANAIAFBAWoiAUEDcUUNASABLQAADQALDAELA0AgASIAQQRqIQFBgIKECCAAKAIAIgJrIAJyQYCBgoR4cUGAgYKEeEYNAAsDQCAAIgFBAWohACABLQAADQALCyABQYoIawsiAkENahAtIgBBADYCCCAAIAI2AgQgACACNgIAIABBDGohASACQQFqIgAEQCABQYoIIAD8CgAACyADIAE2AgQgA0H01gA2AgAAC9QMAwR/D3wBfiMAQaADayIJJAAgCSABKQNQNwOYAyAJIAEpA0g3A5ADIAErA1AhEyABKwNIIRQCQCABKAIAIgorAxAiDUQAAAAAAADwv2EEQCAKKwO4AUQAAAAAAAAAAGZFDQEgCisDwAFEAAAAAAAAAABmRQ0BCyANvUL///////////8Ag0L/////////9/8AVg0AIA2dIg38BiIcQgBTIA0gHLlicg0AIBynIgsgBygCBCAHKAIAIgxrQdABbU8NACAMIAtB0AFsaiILKAIARQ0AIAspA2AgASkDYFINACALKAIIIgxFDQAgCSALIAorAxhEAAAAAAAAAABiIAMgBCAMIAYgByAIEBUgCSsDCCETIAkrAwAhFCABKAIAIQoLIAkgCisDOCIXOQOAAyAJIAorA0AiGDkDiAMgCSAKKwNIIhk5A/ACIAkgCisDUCIaOQP4AiAKKwMoIRAgASsDiAEhFSAFKwMIIQ0gCisDIBAlIQcCQAJAIA1EAAAAAAAAAABlRQRAIAUrAxAiEUQAAAAAAAAAAGVFDQELIAAgEzkDCCAAIBQ5AwAMAQsgEEQAAAAAAADwPyAQRAAAAAAAAAAAYhshFgJAIAdFBEAgASsDICEQIAErAxghDyABKwMQIQ4CQCAKKwMQRAAAAAAAAPC/YQRAIAorA7gBRAAAAAAAAAAAZkUNASAKKwPA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AzAhDUQAAAAAAADwPyEJAkACQCABKwMYIghEAAAAAAAAAABlDQAgASsDICIHRAAAAAAAAAAAZQ0AIAErAygiBUQAAAAAAAAAAGUNACAHIAUgDaIgC6IiBaIiB0QAAAAAAAAAACAHvUL///////////8Ag0KAgICAgICA+P8AVBshByAIIAWiIghEAAAAAAAAAAAgCL1C////////////AINCgICAgICAgPj/AFQbIQggASsDYCIFvSIQQgF9Qv7///////8HViAQQgBTIBBC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENASABKwNwIgpEAAAAAAAAAABkIgMgASsDaCIGRAAAAAAAAAAAZHJFDQEgByAIIAcgCGQbIgxEAAAAAAAAAABkRQ0BIAUgDKIiBb0iEEIBfUL+////////B1YgEEIAUyAQQv///////////wCDQoCAgICAgIAIfUL/////////7/8AVnJxDQEgCiAFoyAGIAWjRAAAAAAAAPA/IAUgBmMbRAAAAAAAAPA/IAZEAAAAAAAAAABkGyIJIAUgCaIgCmQbIAkgAxsiCUQAAAAAAADwP2EEQEQAAAAAAADwPyEJDAILIAcgCaIhByAIIAmiIQgMAQtEAAAAAAAAAAAhB0QAAAAAAAAAACEICwJ8RAAAAAAAAAAAIAdEAAAAAAAA4D+iIgVEAAAAAAAAAABlDQAaRAAAAAAAAAAAIQZEAAAAAAAAAAAgCEQAAAAAAADgP6IiD0QAAAAAAAAAAGUNABogASsDUCEKIAErA0ghDCAFIAEoAlgiAwR8IAMrAwAhBiADKwMIBUQAAAAAAAAAAAuiIQUgDyAGoiIGRAAAAAAAAAAAYQRARAAAAAAAAAAAIAVEAAAAAAAAAABhDQEaCyAGmiAMoiAFIAqioSEOIAwgBaIgBiAKoqELIQoCfCABKAJcIgNFBEBEAAAAAAAAAAAhBUQAAAAAAAAAAAwBC0QAAAAAAAAAACEFRAAAAAAAAAAAIAkgCyANIAMrAwCioqIiBkQAAAAAAAAAAGENABogBiADKwMIRDmdUqJG35E/oiILECKiIQUgBiALECeiCyEGIAErAwAhDSABKwMIIQsgAiABKwMQIgw5A1ggAiALIA4gBaAiD0QAAABAplRYQaNE+MFjGtylTECioDkDUCACIA0gCiAGoCIKIAtEOZ1SokbfkT+iECIiDkSN7bWg98awPqVEje21oPfGsD4gDr1C////////////AINCgICAgICAgPj/AFgbRAAAAECmVFhBoiIOo0T4wWMa3KVMQKKgOQNIIAJCADcDMCACQgA3AyhBACEDIAJB4ABqIAJByABqIAJBKGoQGARAIAIgAikAKTcDOCACIAIpADA3AD8gAi0AKCEEQQEhAwsgAEEAOgCgASAAQQA6AIgBIABBADoAgAEgAEEAOgBwIABBADoAaCAAQQA6AFggACAEOgAAIAAgAikDODcAASAAIAIpAD83AAggACAPOQM4IAAgCjkDMCAAIAk5AyggACAHOQMgIAAgCDkDGCAAIAM6ABAgACACKQNYNwNQIAAgAikDUDcDSCAAIAIpA0g3A0AgAS0AmAFBAUYEQCACIAw5AyAgAiAFRAAAAECmVFhBo0T4wWMa3KVMQKIgC6A5AxggAiANIAYgDqNE+MFjGtylTECioDkDECACQgA3AwggAkIANwMAIAJB4ABqIAJBEGogAhAYBEAgACACKQMINwNgIAAgAikDADcDWCAAQQE6AGgLIABBAToAgAEgACAFOQN4IAAgBjkDcCAAIAIpAyA3A5gBIAAgAikDGDcDkAEgACACKQMQNwOIASAAQQE6AKABCyACQfAAaiQAC7kLAwd8An8BfgJAIAICfAJAIAAoAgAtAABBAUcNACAAKAIEIgsoAngoAhAiCkUNACABKwMIIgNEJLiRskVDVUCkRCS4kbJFQ1VAIAO9Qv///////////wCDIgxCgICAgICAgPj/AFgbRCS4kbJFQ1XApUQAAAAAAAAAACAMQoCAgICAgID4/wBUGyIERDmdUqJG35E/ohAiIQYgASsDECEDIAorA1ghByABKwMAIQUgCisDGCEIIAREJLiRskVDVUCkRCS4kbJFQ1XApUQ5nVKiRt+RP6JEAAAAAAAA4D+iRBgtRFT7Iek/oBApECQhBCAKKwNgIAorA0BEAAAAAAAAAAAgA0QAAAAAAAAAACADvUL///////////8Ag0KAgICAgICA+P8AVBsgBkSTEHxF+BuDQaIiA6MgA0QAAAAAAAAAAGEbIgOiIAorAwAgBUQAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/IAW9Qv///////////wCDQoCAgICAgID4/wBUGyIFoiAKKwMgIARE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKMiBKKgoKAiBr1C////////////AINC//////////f/AFYNACAKKwNoIAorA0ggA6IgCisDCCAFoiAKKwMoIASioKCgIgm9Qv///////////wCDQoCAgICAgID4/wBaDQAgCisDcCAKKwNQIAOiIAorAxAgBaIgCisDMCAEoqCgoL1C////////////AINCgICAgICAgPj/AFoNACAKKwN4IAcgA6IgCCAFoiAEIAorAziioKCgIgO9Qv///////////wCDQv/////////3/wBWIANEje21oPfGsD5lcg0AIAZEAAAAAAAA8D8gA6MiA6JEAAAAAAAA8D+gRAAAAAAAAOA/oiALKwOAAaIiBb1C////////////AINC//////////f/AFYNAEQAAAAAAADwPyAJIAOioUQAAAAAAADgP6IgCysDiAGiIgS9Qv///////////wCDQoCAgICAgID4/wBaDQAgCysDkAEiA71C////////////AIMiDEIBfUL+////////B1YgDEKAgICAgICACH1C/////////+//AFZxDQAgAiAFIAOjOQMAIAQgA6MMAQtBACEKIAAoAggtAABBAUcNASAAKAIEKAJ4IgsoAhQiAEUNASALKwMAIgNEAAAAAAAAAABlDQEgASsDACEFIAArAwAhBiABKwMIIgREJLiRskVDVUCkRCS4kbJFQ1VAIAS9Qv///////////wCDIgxCgICAgICAgPj/AFgbRCS4kbJFQ1XApUQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gRBgtRFT7Iek/IAxCgICAgICAgPj/AFQbECkQJCEHIAArA2AgACsDQCABKwMQIgREAAAAAAAAAAAgBL1C////////////AINCgICAgICAgPj/AFQbIgSiIAYgAyAFRAAAAAAAgGZAoEQAAAAAAIB2QKNEAAAAAAAA4D8gBb1C////////////AINCgICAgICAgPj/AFQboiIFoiAAKwMgIAMgB0T4wWMa3KVMwKJEAAAAAACAZkCgRAAAAAAAgHZAo6IiA6KgoKAiBr1C////////////AINC//////////f/AFYNASAAKwNoIAArA0ggBKIgACsDCCAFoiADIAArAyiioKCgIge9Qv///////////wCDQv/////////3/wBWDQEgACsDeCAAKwNYIASiIAArAxggBaIgAyAAKwM4oqCgoCIDvSIMQgF9Qv7///////8HViAMQgBTIAxC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENASACIAYgA6M5AwAgByADows5AwhBASEKCyAKC4sGAwJ8A38CfiMAQYABayIHJAAgACABIAIQGwJAAkAgAysDCCIEIAIrAwgiBWIEQCAEIAVjDQEMAgsgAigCACEGRAAAAAAAAAAAIQVEAAAAAAAAAAAhBCADKAIAIggEQCAIKAIAKwNwIQQLIAYEQCAGKAIAKwNwIQULIAQgBWIEQCAEIAVjDQEMAgsgCARAIAgpA2AhCQsgBgRAIAYpA2AhCgsgCSAKUgRAIAkgClMNAQwCC0QAAAAAAAAAACEEIAgEQCAIKAIAKwOYASEECyAGBHwgBigCACsDmAEFRAAAAAAAAAAACyAEZEUNAQsgByACQYAB/AoAACACIANBgAH8CgAAIAMgB0GAAfwKAAACQCACKwMIIgQgASsDCCIFYgRAIAQgBWMNAQwCCyABKAIAIQNEAAAAAAAAAAAhBUQAAAAAAAAAACEEIAIoAgAiBgRAIAYoAgArA3AhBAsgAwRAIAMoAgArA3AhBQsgBCAFYgRAIAQgBWMNAQwCC0IAIQpCACEJIAYEQCAGKQNgIQkLIAMEQCADKQNgIQoLIAkgClIEQCAJIApTDQEMAgtEAAAAAAAAAAAhBCAGBEAgBigCACsDmAEhBAsgAwR8IAMoAgArA5gBBUQAAAAAAAAAAAsgBGRFDQELIAcgAUGAAfwKAAAgASACQYAB/AoAACACIAdBgAH8CgAAAkAgASsDCCIEIAArAwgiBWIEQCAEIAVjDQEMAgsgACgCACECRAAAAAAAAAAAIQVEAAAAAAAAAAAhBCABKAIAIgMEQCADKAIAKwNwIQQLIAIEQCACKAIAKwNwIQULIAQgBWIEQCAEIAVjDQEMAgtCACEKQgAhCSADBEAgAykDYCEJCyACBEAgAikDYCEKCyAJIApSBEAgCSAKUw0BDAILRAAAAAAAAAAAIQQgAwRAIAMoAgArA5gBIQQLIAIEfCACKAIAKwOY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";
527
+ const __vite_glob_0_2 = "data:text/javascript;base64,YXN5bmMgZnVuY3Rpb24gTW9kdWxlKG1vZHVsZUFyZz17fSl7dmFyIG1vZHVsZVJ0bjt2YXIgTW9kdWxlPW1vZHVsZUFyZzt2YXIgRU5WSVJPTk1FTlRfSVNfV0VCPSEhZ2xvYmFsVGhpcy53aW5kb3c7dmFyIEVOVklST05NRU5UX0lTX1dPUktFUj0hIWdsb2JhbFRoaXMuV29ya2VyR2xvYmFsU2NvcGU7dmFyIEVOVklST05NRU5UX0lTX05PREU9Z2xvYmFsVGhpcy5wcm9jZXNzPy52ZXJzaW9ucz8ubm9kZSYmZ2xvYmFsVGhpcy5wcm9jZXNzPy50eXBlIT0icmVuZGVyZXIiO3ZhciBFTlZJUk9OTUVOVF9JU19QVEhSRUFEPUVOVklST05NRU5UX0lTX1dPUktFUiYmc2VsZi5uYW1lPy5zdGFydHNXaXRoKCJlbS1wdGhyZWFkIik7aWYoRU5WSVJPTk1FTlRfSVNfTk9ERSl7Y29uc3R7Y3JlYXRlUmVxdWlyZX09YXdhaXQgaW1wb3J0KCJtb2R1bGUiKTt2YXIgcmVxdWlyZT1jcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7dmFyIHdvcmtlcl90aHJlYWRzPXJlcXVpcmUoIndvcmtlcl90aHJlYWRzIik7Z2xvYmFsLldvcmtlcj13b3JrZXJfdGhyZWFkcy5Xb3JrZXI7RU5WSVJPTk1FTlRfSVNfV09SS0VSPSF3b3JrZXJfdGhyZWFkcy5pc01haW5UaHJlYWQ7RU5WSVJPTk1FTlRfSVNfUFRIUkVBRD1FTlZJUk9OTUVOVF9JU19XT1JLRVImJndvcmtlcl90aHJlYWRzWyJ3b3JrZXJEYXRhIl09PSJlbS1wdGhyZWFkIn12YXIgYXJndW1lbnRzXz1bXTt2YXIgdGhpc1Byb2dyYW09Ii4vdGhpcy5wcm9ncmFtIjt2YXIgcXVpdF89KHN0YXR1cyx0b1Rocm93KT0+e3Rocm93IHRvVGhyb3d9O3ZhciBfc2NyaXB0TmFtZT1pbXBvcnQubWV0YS51cmw7dmFyIHNjcmlwdERpcmVjdG9yeT0iIjtmdW5jdGlvbiBsb2NhdGVGaWxlKHBhdGgpe2lmKE1vZHVsZVsibG9jYXRlRmlsZSJdKXtyZXR1cm4gTW9kdWxlWyJsb2NhdGVGaWxlIl0ocGF0aCxzY3JpcHREaXJlY3RvcnkpfXJldHVybiBzY3JpcHREaXJlY3RvcnkrcGF0aH12YXIgcmVhZEFzeW5jLHJlYWRCaW5hcnk7aWYoRU5WSVJPTk1FTlRfSVNfTk9ERSl7dmFyIGZzPXJlcXVpcmUoImZzIik7aWYoX3NjcmlwdE5hbWUuc3RhcnRzV2l0aCgiZmlsZToiKSl7c2NyaXB0RGlyZWN0b3J5PXJlcXVpcmUoInBhdGgiKS5kaXJuYW1lKHJlcXVpcmUoInVybCIpLmZpbGVVUkxUb1BhdGgoX3NjcmlwdE5hbWUpKSsiLyJ9cmVhZEJpbmFyeT1maWxlbmFtZT0+e2ZpbGVuYW1lPWlzRmlsZVVSSShmaWxlbmFtZSk/bmV3IFVSTChmaWxlbmFtZSk6ZmlsZW5hbWU7dmFyIHJldD1mcy5yZWFkRmlsZVN5bmMoZmlsZW5hbWUpO3JldHVybiByZXR9O3JlYWRBc3luYz1hc3luYyhmaWxlbmFtZSxiaW5hcnk9dHJ1ZSk9PntmaWxlbmFtZT1pc0ZpbGVVUkkoZmlsZW5hbWUpP25ldyBVUkwoZmlsZW5hbWUpOmZpbGVuYW1lO3ZhciByZXQ9ZnMucmVhZEZpbGVTeW5jKGZpbGVuYW1lLGJpbmFyeT91bmRlZmluZWQ6InV0ZjgiKTtyZXR1cm4gcmV0fTtpZihwcm9jZXNzLmFyZ3YubGVuZ3RoPjEpe3RoaXNQcm9ncmFtPXByb2Nlc3MuYXJndlsxXS5yZXBsYWNlKC9cXC9nLCIvIil9YXJndW1lbnRzXz1wcm9jZXNzLmFyZ3Yuc2xpY2UoMik7cXVpdF89KHN0YXR1cyx0b1Rocm93KT0+e3Byb2Nlc3MuZXhpdENvZGU9c3RhdHVzO3Rocm93IHRvVGhyb3d9fWVsc2UgaWYoRU5WSVJPTk1FTlRfSVNfV0VCfHxFTlZJUk9OTUVOVF9JU19XT1JLRVIpe3RyeXtzY3JpcHREaXJlY3Rvcnk9bmV3IFVSTCgiLiIsX3NjcmlwdE5hbWUpLmhyZWZ9Y2F0Y2h7fWlmKCFFTlZJUk9OTUVOVF9JU19OT0RFKXtpZihFTlZJUk9OTUVOVF9JU19XT1JLRVIpe3JlYWRCaW5hcnk9dXJsPT57dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3Q7eGhyLm9wZW4oIkdFVCIsdXJsLGZhbHNlKTt4aHIucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciI7eGhyLnNlbmQobnVsbCk7cmV0dXJuIG5ldyBVaW50OEFycmF5KHhoci5yZXNwb25zZSl9fXJlYWRBc3luYz1hc3luYyB1cmw9PntpZihpc0ZpbGVVUkkodXJsKSl7cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9Pnt2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdDt4aHIub3BlbigiR0VUIix1cmwsdHJ1ZSk7eGhyLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiO3hoci5vbmxvYWQ9KCk9PntpZih4aHIuc3RhdHVzPT0yMDB8fHhoci5zdGF0dXM9PTAmJnhoci5yZXNwb25zZSl7cmVzb2x2ZSh4aHIucmVzcG9uc2UpO3JldHVybn1yZWplY3QoeGhyLnN0YXR1cyl9O3hoci5vbmVycm9yPXJlamVjdDt4aHIuc2VuZChudWxsKX0pfXZhciByZXNwb25zZT1hd2FpdCBmZXRjaCh1cmwse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KTtpZihyZXNwb25zZS5vayl7cmV0dXJuIHJlc3BvbnNlLmFycmF5QnVmZmVyKCl9dGhyb3cgbmV3IEVycm9yKHJlc3BvbnNlLnN0YXR1cysiIDogIityZXNwb25zZS51cmwpfX19ZWxzZXt9dmFyIGRlZmF1bHRQcmludD1jb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpO3ZhciBkZWZhdWx0UHJpbnRFcnI9Y29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpO2lmKEVOVklST05NRU5UX0lTX05PREUpe3ZhciB1dGlscz1yZXF1aXJlKCJ1dGlsIik7dmFyIHN0cmluZ2lmeT1hPT50eXBlb2YgYT09Im9iamVjdCI/dXRpbHMuaW5zcGVjdChhKTphO2RlZmF1bHRQcmludD0oLi4uYXJncyk9PmZzLndyaXRlU3luYygxLGFyZ3MubWFwKHN0cmluZ2lmeSkuam9pbigiICIpKyJcbiIpO2RlZmF1bHRQcmludEVycj0oLi4uYXJncyk9PmZzLndyaXRlU3luYygyLGFyZ3MubWFwKHN0cmluZ2lmeSkuam9pbigiICIpKyJcbiIpfXZhciBvdXQ9ZGVmYXVsdFByaW50O3ZhciBlcnI9ZGVmYXVsdFByaW50RXJyO3ZhciB3YXNtQmluYXJ5O3ZhciB3YXNtTW9kdWxlO3ZhciBBQk9SVD1mYWxzZTt2YXIgRVhJVFNUQVRVUzt2YXIgaXNGaWxlVVJJPWZpbGVuYW1lPT5maWxlbmFtZS5zdGFydHNXaXRoKCJmaWxlOi8vIik7dmFyIHJlYWR5UHJvbWlzZVJlc29sdmUscmVhZHlQcm9taXNlUmVqZWN0O2lmKEVOVklST05NRU5UX0lTX05PREUmJkVOVklST05NRU5UX0lTX1BUSFJFQUQpe3ZhciBwYXJlbnRQb3J0PXdvcmtlcl90aHJlYWRzWyJwYXJlbnRQb3J0Il07cGFyZW50UG9ydC5vbigibWVzc2FnZSIsbXNnPT5nbG9iYWwub25tZXNzYWdlPy4oe2RhdGE6bXNnfSkpO09iamVjdC5hc3NpZ24oZ2xvYmFsVGhpcyx7c2VsZjpnbG9iYWwscG9zdE1lc3NhZ2U6bXNnPT5wYXJlbnRQb3J0WyJwb3N0TWVzc2FnZSJdKG1zZyl9KTtwcm9jZXNzLm9uKCJ1bmNhdWdodEV4Y2VwdGlvbiIsZXJyPT57cG9zdE1lc3NhZ2Uoe2NtZDoidW5jYXVnaHRFeGNlcHRpb24iLGVycm9yOmVycn0pO3Byb2Nlc3MuZXhpdCgxKX0pfXZhciBzdGFydFdvcmtlcjtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXt2YXIgaW5pdGlhbGl6ZWRKUz1mYWxzZTtzZWxmLm9udW5oYW5kbGVkcmVqZWN0aW9uPWU9Pnt0aHJvdyBlLnJlYXNvbnx8ZX07ZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShlKXt0cnl7dmFyIG1zZ0RhdGE9ZVsiZGF0YSJdO3ZhciBjbWQ9bXNnRGF0YS5jbWQ7aWYoY21kPT09ImxvYWQiKXtsZXQgbWVzc2FnZVF1ZXVlPVtdO3NlbGYub25tZXNzYWdlPWU9Pm1lc3NhZ2VRdWV1ZS5wdXNoKGUpO3N0YXJ0V29ya2VyPSgpPT57cG9zdE1lc3NhZ2Uoe2NtZDoibG9hZGVkIn0pO2ZvcihsZXQgbXNnIG9mIG1lc3NhZ2VRdWV1ZSl7aGFuZGxlTWVzc2FnZShtc2cpfXNlbGYub25tZXNzYWdlPWhhbmRsZU1lc3NhZ2V9O2Zvcihjb25zdCBoYW5kbGVyIG9mIG1zZ0RhdGEuaGFuZGxlcnMpe2lmKCFNb2R1bGVbaGFuZGxlcl18fE1vZHVsZVtoYW5kbGVyXS5wcm94eSl7TW9kdWxlW2hhbmRsZXJdPSguLi5hcmdzKT0+e3Bvc3RNZXNzYWdlKHtjbWQ6ImNhbGxIYW5kbGVyIixoYW5kbGVyLGFyZ3N9KX07aWYoaGFuZGxlcj09InByaW50IilvdXQ9TW9kdWxlW2hhbmRsZXJdO2lmKGhhbmRsZXI9PSJwcmludEVyciIpZXJyPU1vZHVsZVtoYW5kbGVyXX19d2FzbU1lbW9yeT1tc2dEYXRhLndhc21NZW1vcnk7dXBkYXRlTWVtb3J5Vmlld3MoKTt3YXNtTW9kdWxlPW1zZ0RhdGEud2FzbU1vZHVsZTtjcmVhdGVXYXNtKCk7cnVuKCl9ZWxzZSBpZihjbWQ9PT0icnVuIil7ZXN0YWJsaXNoU3RhY2tTcGFjZShtc2dEYXRhLnB0aHJlYWRfcHRyKTtfX2Vtc2NyaXB0ZW5fdGhyZWFkX2luaXQobXNnRGF0YS5wdGhyZWFkX3B0ciwwLDAsMSwwLDApO1BUaHJlYWQudGhyZWFkSW5pdFRMUygpO19fZW1zY3JpcHRlbl90aHJlYWRfbWFpbGJveF9hd2FpdChtc2dEYXRhLnB0aHJlYWRfcHRyKTtpZighaW5pdGlhbGl6ZWRKUyl7aW5pdGlhbGl6ZWRKUz10cnVlfXRyeXtpbnZva2VFbnRyeVBvaW50KG1zZ0RhdGEuc3RhcnRfcm91dGluZSxtc2dEYXRhLmFyZyl9Y2F0Y2goZXgpe2lmKGV4IT0idW53aW5kIil7dGhyb3cgZXh9fX1lbHNlIGlmKG1zZ0RhdGEudGFyZ2V0PT09InNldGltbWVkaWF0ZSIpe31lbHNlIGlmKGNtZD09PSJjaGVja01haWxib3giKXtpZihpbml0aWFsaXplZEpTKXtjaGVja01haWxib3goKX19ZWxzZSBpZihjbWQpe2Vycihgd29ya2VyOiByZWNlaXZlZCB1bmtub3duIGNvbW1hbmQgJHtjbWR9YCk7ZXJyKG1zZ0RhdGEpfX1jYXRjaChleCl7X19lbXNjcmlwdGVuX3RocmVhZF9jcmFzaGVkKCk7dGhyb3cgZXh9fXNlbGYub25tZXNzYWdlPWhhbmRsZU1lc3NhZ2V9dmFyIEhFQVA4LEhFQVBVOCxIRUFQMTYsSEVBUFUxNixIRUFQMzIsSEVBUFUzMixIRUFQRjMyLEhFQVBGNjQ7dmFyIEhFQVA2NCxIRUFQVTY0O3ZhciBydW50aW1lSW5pdGlhbGl6ZWQ9ZmFsc2U7ZnVuY3Rpb24gdXBkYXRlTWVtb3J5Vmlld3MoKXt2YXIgYj13YXNtTWVtb3J5LmJ1ZmZlcjtIRUFQOD1uZXcgSW50OEFycmF5KGIpO0hFQVAxNj1uZXcgSW50MTZBcnJheShiKTtIRUFQVTg9bmV3IFVpbnQ4QXJyYXkoYik7SEVBUFUxNj1uZXcgVWludDE2QXJyYXkoYik7SEVBUDMyPW5ldyBJbnQzMkFycmF5KGIpO0hFQVBVMzI9bmV3IFVpbnQzMkFycmF5KGIpO0hFQVBGMzI9bmV3IEZsb2F0MzJBcnJheShiKTtIRUFQRjY0PW5ldyBGbG9hdDY0QXJyYXkoYik7SEVBUDY0PW5ldyBCaWdJbnQ2NEFycmF5KGIpO0hFQVBVNjQ9bmV3IEJpZ1VpbnQ2NEFycmF5KGIpfWZ1bmN0aW9uIGluaXRNZW1vcnkoKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXtyZXR1cm59aWYoTW9kdWxlWyJ3YXNtTWVtb3J5Il0pe3dhc21NZW1vcnk9TW9kdWxlWyJ3YXNtTWVtb3J5Il19ZWxzZXt2YXIgSU5JVElBTF9NRU1PUlk9TW9kdWxlWyJJTklUSUFMX01FTU9SWSJdfHw1MzY4NzA5MTI7d2FzbU1lbW9yeT1uZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHtpbml0aWFsOklOSVRJQUxfTUVNT1JZLzY1NTM2LG1heGltdW06SU5JVElBTF9NRU1PUlkvNjU1MzYsc2hhcmVkOnRydWV9KX11cGRhdGVNZW1vcnlWaWV3cygpfWZ1bmN0aW9uIHByZVJ1bigpe2lmKE1vZHVsZVsicHJlUnVuIl0pe2lmKHR5cGVvZiBNb2R1bGVbInByZVJ1biJdPT0iZnVuY3Rpb24iKU1vZHVsZVsicHJlUnVuIl09W01vZHVsZVsicHJlUnVuIl1dO3doaWxlKE1vZHVsZVsicHJlUnVuIl0ubGVuZ3RoKXthZGRPblByZVJ1bihNb2R1bGVbInByZVJ1biJdLnNoaWZ0KCkpfX1jYWxsUnVudGltZUNhbGxiYWNrcyhvblByZVJ1bnMpfWZ1bmN0aW9uIGluaXRSdW50aW1lKCl7cnVudGltZUluaXRpYWxpemVkPXRydWU7aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRClyZXR1cm4gc3RhcnRXb3JrZXIoKTt3YXNtRXhwb3J0c1sicyJdKCl9ZnVuY3Rpb24gcG9zdFJ1bigpe2lmKEVOVklST05NRU5UX0lTX1BUSFJFQUQpe3JldHVybn1pZihNb2R1bGVbInBvc3RSdW4iXSl7aWYodHlwZW9mIE1vZHVsZVsicG9zdFJ1biJdPT0iZnVuY3Rpb24iKU1vZHVsZVsicG9zdFJ1biJdPVtNb2R1bGVbInBvc3RSdW4iXV07d2hpbGUoTW9kdWxlWyJwb3N0UnVuIl0ubGVuZ3RoKXthZGRPblBvc3RSdW4oTW9kdWxlWyJwb3N0UnVuIl0uc2hpZnQoKSl9fWNhbGxSdW50aW1lQ2FsbGJhY2tzKG9uUG9zdFJ1bnMpfWZ1bmN0aW9uIGFib3J0KHdoYXQpe01vZHVsZVsib25BYm9ydCJdPy4od2hhdCk7d2hhdD0iQWJvcnRlZCgiK3doYXQrIikiO2Vycih3aGF0KTtBQk9SVD10cnVlO3doYXQrPSIuIEJ1aWxkIHdpdGggLXNBU1NFUlRJT05TIGZvciBtb3JlIGluZm8uIjt2YXIgZT1uZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKHdoYXQpO3JlYWR5UHJvbWlzZVJlamVjdD8uKGUpO3Rocm93IGV9dmFyIHdhc21CaW5hcnlGaWxlO2Z1bmN0aW9uIGZpbmRXYXNtQmluYXJ5KCl7aWYoTW9kdWxlWyJsb2NhdGVGaWxlIl0pe3JldHVybiBsb2NhdGVGaWxlKCJvZmZsb2Fkcy1zaW1kLW10Lndhc20iKX1yZXR1cm4gbmV3IFVSTCgib2ZmbG9hZHMtc2ltZC1tdC53YXNtIixpbXBvcnQubWV0YS51cmwpLmhyZWZ9ZnVuY3Rpb24gZ2V0QmluYXJ5U3luYyhmaWxlKXtpZihmaWxlPT13YXNtQmluYXJ5RmlsZSYmd2FzbUJpbmFyeSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KHdhc21CaW5hcnkpfWlmKHJlYWRCaW5hcnkpe3JldHVybiByZWFkQmluYXJ5KGZpbGUpfXRocm93ImJvdGggYXN5bmMgYW5kIHN5bmMgZmV0Y2hpbmcgb2YgdGhlIHdhc20gZmFpbGVkIn1hc3luYyBmdW5jdGlvbiBnZXRXYXNtQmluYXJ5KGJpbmFyeUZpbGUpe2lmKCF3YXNtQmluYXJ5KXt0cnl7dmFyIHJlc3BvbnNlPWF3YWl0IHJlYWRBc3luYyhiaW5hcnlGaWxlKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkocmVzcG9uc2UpfWNhdGNoe319cmV0dXJuIGdldEJpbmFyeVN5bmMoYmluYXJ5RmlsZSl9YXN5bmMgZnVuY3Rpb24gaW5zdGFudGlhdGVBcnJheUJ1ZmZlcihiaW5hcnlGaWxlLGltcG9ydHMpe3RyeXt2YXIgYmluYXJ5PWF3YWl0IGdldFdhc21CaW5hcnkoYmluYXJ5RmlsZSk7dmFyIGluc3RhbmNlPWF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGJpbmFyeSxpbXBvcnRzKTtyZXR1cm4gaW5zdGFuY2V9Y2F0Y2gocmVhc29uKXtlcnIoYGZhaWxlZCB0byBhc3luY2hyb25vdXNseSBwcmVwYXJlIHdhc206ICR7cmVhc29ufWApO2Fib3J0KHJlYXNvbil9fWFzeW5jIGZ1bmN0aW9uIGluc3RhbnRpYXRlQXN5bmMoYmluYXJ5LGJpbmFyeUZpbGUsaW1wb3J0cyl7aWYoIWJpbmFyeSYmIWlzRmlsZVVSSShiaW5hcnlGaWxlKSYmIUVOVklST05NRU5UX0lTX05PREUpe3RyeXt2YXIgcmVzcG9uc2U9ZmV0Y2goYmluYXJ5RmlsZSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pO3ZhciBpbnN0YW50aWF0aW9uUmVzdWx0PWF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKHJlc3BvbnNlLGltcG9ydHMpO3JldHVybiBpbnN0YW50aWF0aW9uUmVzdWx0fWNhdGNoKHJlYXNvbil7ZXJyKGB3YXNtIHN0cmVhbWluZyBjb21waWxlIGZhaWxlZDogJHtyZWFzb259YCk7ZXJyKCJmYWxsaW5nIGJhY2sgdG8gQXJyYXlCdWZmZXIgaW5zdGFudGlhdGlvbiIpfX1yZXR1cm4gaW5zdGFudGlhdGVBcnJheUJ1ZmZlcihiaW5hcnlGaWxlLGltcG9ydHMpfWZ1bmN0aW9uIGdldFdhc21JbXBvcnRzKCl7YXNzaWduV2FzbUltcG9ydHMoKTt2YXIgaW1wb3J0cz17YTp3YXNtSW1wb3J0c307cmV0dXJuIGltcG9ydHN9YXN5bmMgZnVuY3Rpb24gY3JlYXRlV2FzbSgpe2Z1bmN0aW9uIHJlY2VpdmVJbnN0YW5jZShpbnN0YW5jZSxtb2R1bGUpe3dhc21FeHBvcnRzPWluc3RhbmNlLmV4cG9ydHM7cmVnaXN0ZXJUTFNJbml0KHdhc21FeHBvcnRzWyJEIl0pO2Fzc2lnbldhc21FeHBvcnRzKHdhc21FeHBvcnRzKTt3YXNtTW9kdWxlPW1vZHVsZTtyZXR1cm4gd2FzbUV4cG9ydHN9ZnVuY3Rpb24gcmVjZWl2ZUluc3RhbnRpYXRpb25SZXN1bHQocmVzdWx0KXtyZXR1cm4gcmVjZWl2ZUluc3RhbmNlKHJlc3VsdFsiaW5zdGFuY2UiXSxyZXN1bHRbIm1vZHVsZSJdKX12YXIgaW5mbz1nZXRXYXNtSW1wb3J0cygpO2lmKE1vZHVsZVsiaW5zdGFudGlhdGVXYXNtIl0pe3JldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpPT57TW9kdWxlWyJpbnN0YW50aWF0ZVdhc20iXShpbmZvLChpbnN0LG1vZCk9PntyZXNvbHZlKHJlY2VpdmVJbnN0YW5jZShpbnN0LG1vZCkpfSl9KX1pZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXt2YXIgaW5zdGFuY2U9bmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKHdhc21Nb2R1bGUsZ2V0V2FzbUltcG9ydHMoKSk7cmV0dXJuIHJlY2VpdmVJbnN0YW5jZShpbnN0YW5jZSx3YXNtTW9kdWxlKX13YXNtQmluYXJ5RmlsZT8/PWZpbmRXYXNtQmluYXJ5KCk7dmFyIHJlc3VsdD1hd2FpdCBpbnN0YW50aWF0ZUFzeW5jKHdhc21CaW5hcnksd2FzbUJpbmFyeUZpbGUsaW5mbyk7dmFyIGV4cG9ydHM9cmVjZWl2ZUluc3RhbnRpYXRpb25SZXN1bHQocmVzdWx0KTtyZXR1cm4gZXhwb3J0c31jbGFzcyBFeGl0U3RhdHVze25hbWU9IkV4aXRTdGF0dXMiO2NvbnN0cnVjdG9yKHN0YXR1cyl7dGhpcy5tZXNzYWdlPWBQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBleGl0KCR7c3RhdHVzfSlgO3RoaXMuc3RhdHVzPXN0YXR1c319dmFyIHRlcm1pbmF0ZVdvcmtlcj13b3JrZXI9Pnt3b3JrZXIudGVybWluYXRlKCk7d29ya2VyLm9ubWVzc2FnZT1lPT57fX07dmFyIGNsZWFudXBUaHJlYWQ9cHRocmVhZF9wdHI9Pnt2YXIgd29ya2VyPVBUaHJlYWQucHRocmVhZHNbcHRocmVhZF9wdHJdO1BUaHJlYWQucmV0dXJuV29ya2VyVG9Qb29sKHdvcmtlcil9O3ZhciBjYWxsUnVudGltZUNhbGxiYWNrcz1jYWxsYmFja3M9Pnt3aGlsZShjYWxsYmFja3MubGVuZ3RoPjApe2NhbGxiYWNrcy5zaGlmdCgpKE1vZHVsZSl9fTt2YXIgb25QcmVSdW5zPVtdO3ZhciBhZGRPblByZVJ1bj1jYj0+b25QcmVSdW5zLnB1c2goY2IpO3ZhciBydW5EZXBlbmRlbmNpZXM9MDt2YXIgZGVwZW5kZW5jaWVzRnVsZmlsbGVkPW51bGw7dmFyIHJlbW92ZVJ1bkRlcGVuZGVuY3k9aWQ9PntydW5EZXBlbmRlbmNpZXMtLTtNb2R1bGVbIm1vbml0b3JSdW5EZXBlbmRlbmNpZXMiXT8uKHJ1bkRlcGVuZGVuY2llcyk7aWYocnVuRGVwZW5kZW5jaWVzPT0wKXtpZihkZXBlbmRlbmNpZXNGdWxmaWxsZWQpe3ZhciBjYWxsYmFjaz1kZXBlbmRlbmNpZXNGdWxmaWxsZWQ7ZGVwZW5kZW5jaWVzRnVsZmlsbGVkPW51bGw7Y2FsbGJhY2soKX19fTt2YXIgYWRkUnVuRGVwZW5kZW5jeT1pZD0+e3J1bkRlcGVuZGVuY2llcysrO01vZHVsZVsibW9uaXRvclJ1bkRlcGVuZGVuY2llcyJdPy4ocnVuRGVwZW5kZW5jaWVzKX07dmFyIHNwYXduVGhyZWFkPXRocmVhZFBhcmFtcz0+e3ZhciB3b3JrZXI9UFRocmVhZC5nZXROZXdXb3JrZXIoKTtpZighd29ya2VyKXtyZXR1cm4gNn1QVGhyZWFkLnJ1bm5pbmdXb3JrZXJzLnB1c2god29ya2VyKTtQVGhyZWFkLnB0aHJlYWRzW3RocmVhZFBhcmFtcy5wdGhyZWFkX3B0cl09d29ya2VyO3dvcmtlci5wdGhyZWFkX3B0cj10aHJlYWRQYXJhbXMucHRocmVhZF9wdHI7dmFyIG1zZz17Y21kOiJydW4iLHN0YXJ0X3JvdXRpbmU6dGhyZWFkUGFyYW1zLnN0YXJ0Um91dGluZSxhcmc6dGhyZWFkUGFyYW1zLmFyZyxwdGhyZWFkX3B0cjp0aHJlYWRQYXJhbXMucHRocmVhZF9wdHJ9O2lmKEVOVklST05NRU5UX0lTX05PREUpe3dvcmtlci51bnJlZigpfXdvcmtlci5wb3N0TWVzc2FnZShtc2csdGhyZWFkUGFyYW1zLnRyYW5zZmVyTGlzdCk7cmV0dXJuIDB9O3ZhciBydW50aW1lS2VlcGFsaXZlQ291bnRlcj0wO3ZhciBrZWVwUnVudGltZUFsaXZlPSgpPT5ub0V4aXRSdW50aW1lfHxydW50aW1lS2VlcGFsaXZlQ291bnRlcj4wO3ZhciBzdGFja1NhdmU9KCk9Pl9lbXNjcmlwdGVuX3N0YWNrX2dldF9jdXJyZW50KCk7dmFyIHN0YWNrUmVzdG9yZT12YWw9Pl9fZW1zY3JpcHRlbl9zdGFja19yZXN0b3JlKHZhbCk7dmFyIHN0YWNrQWxsb2M9c3o9Pl9fZW1zY3JpcHRlbl9zdGFja19hbGxvYyhzeik7dmFyIHByb3h5VG9NYWluVGhyZWFkPShmdW5jSW5kZXgsZW1Bc21BZGRyLHN5bmMsLi4uY2FsbEFyZ3MpPT57dmFyIHNlcmlhbGl6ZWROdW1DYWxsQXJncz1jYWxsQXJncy5sZW5ndGgqMjt2YXIgc3A9c3RhY2tTYXZlKCk7dmFyIGFyZ3M9c3RhY2tBbGxvYyhzZXJpYWxpemVkTnVtQ2FsbEFyZ3MqOCk7dmFyIGI9YXJncz4+Mztmb3IodmFyIGk9MDtpPGNhbGxBcmdzLmxlbmd0aDtpKyspe3ZhciBhcmc9Y2FsbEFyZ3NbaV07aWYodHlwZW9mIGFyZz09ImJpZ2ludCIpe0hFQVA2NFtiKzIqaV09MW47SEVBUDY0W2IrMippKzFdPWFyZ31lbHNle0hFQVA2NFtiKzIqaV09MG47SEVBUEY2NFtiKzIqaSsxXT1hcmd9fXZhciBydG49X19lbXNjcmlwdGVuX3J1bl9qc19vbl9tYWluX3RocmVhZChmdW5jSW5kZXgsZW1Bc21BZGRyLHNlcmlhbGl6ZWROdW1DYWxsQXJncyxhcmdzLHN5bmMpO3N0YWNrUmVzdG9yZShzcCk7cmV0dXJuIHJ0bn07ZnVuY3Rpb24gX3Byb2NfZXhpdChjb2RlKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybiBwcm94eVRvTWFpblRocmVhZCgwLDAsMSxjb2RlKTtFWElUU1RBVFVTPWNvZGU7aWYoIWtlZXBSdW50aW1lQWxpdmUoKSl7UFRocmVhZC50ZXJtaW5hdGVBbGxUaHJlYWRzKCk7TW9kdWxlWyJvbkV4aXQiXT8uKGNvZGUpO0FCT1JUPXRydWV9cXVpdF8oY29kZSxuZXcgRXhpdFN0YXR1cyhjb2RlKSl9ZnVuY3Rpb24gZXhpdE9uTWFpblRocmVhZChyZXR1cm5Db2RlKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybiBwcm94eVRvTWFpblRocmVhZCgxLDAsMCxyZXR1cm5Db2RlKTtfZXhpdChyZXR1cm5Db2RlKX12YXIgZXhpdEpTPShzdGF0dXMsaW1wbGljaXQpPT57RVhJVFNUQVRVUz1zdGF0dXM7aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRCl7ZXhpdE9uTWFpblRocmVhZChzdGF0dXMpO3Rocm93InVud2luZCJ9X3Byb2NfZXhpdChzdGF0dXMpfTt2YXIgX2V4aXQ9ZXhpdEpTO3ZhciBQVGhyZWFkPXt1bnVzZWRXb3JrZXJzOltdLHJ1bm5pbmdXb3JrZXJzOltdLHRsc0luaXRGdW5jdGlvbnM6W10scHRocmVhZHM6e30saW5pdCgpe2lmKCFFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXtQVGhyZWFkLmluaXRNYWluVGhyZWFkKCl9fSxpbml0TWFpblRocmVhZCgpe3ZhciBwdGhyZWFkUG9vbFNpemU9NDt3aGlsZShwdGhyZWFkUG9vbFNpemUtLSl7UFRocmVhZC5hbGxvY2F0ZVVudXNlZFdvcmtlcigpfWFkZE9uUHJlUnVuKGFzeW5jKCk9Pnt2YXIgcHRocmVhZFBvb2xSZWFkeT1QVGhyZWFkLmxvYWRXYXNtTW9kdWxlVG9BbGxXb3JrZXJzKCk7YWRkUnVuRGVwZW5kZW5jeSgibG9hZGluZy13b3JrZXJzIik7YXdhaXQgcHRocmVhZFBvb2xSZWFkeTtyZW1vdmVSdW5EZXBlbmRlbmN5KCJsb2FkaW5nLXdvcmtlcnMiKX0pfSx0ZXJtaW5hdGVBbGxUaHJlYWRzOigpPT57Zm9yKHZhciB3b3JrZXIgb2YgUFRocmVhZC5ydW5uaW5nV29ya2Vycyl7dGVybWluYXRlV29ya2VyKHdvcmtlcil9Zm9yKHZhciB3b3JrZXIgb2YgUFRocmVhZC51bnVzZWRXb3JrZXJzKXt0ZXJtaW5hdGVXb3JrZXIod29ya2VyKX1QVGhyZWFkLnVudXNlZFdvcmtlcnM9W107UFRocmVhZC5ydW5uaW5nV29ya2Vycz1bXTtQVGhyZWFkLnB0aHJlYWRzPXt9fSxyZXR1cm5Xb3JrZXJUb1Bvb2w6d29ya2VyPT57dmFyIHB0aHJlYWRfcHRyPXdvcmtlci5wdGhyZWFkX3B0cjtkZWxldGUgUFRocmVhZC5wdGhyZWFkc1twdGhyZWFkX3B0cl07UFRocmVhZC51bnVzZWRXb3JrZXJzLnB1c2god29ya2VyKTtQVGhyZWFkLnJ1bm5pbmdXb3JrZXJzLnNwbGljZShQVGhyZWFkLnJ1bm5pbmdXb3JrZXJzLmluZGV4T2Yod29ya2VyKSwxKTt3b3JrZXIucHRocmVhZF9wdHI9MDtfX2Vtc2NyaXB0ZW5fdGhyZWFkX2ZyZWVfZGF0YShwdGhyZWFkX3B0cil9LHRocmVhZEluaXRUTFMoKXtQVGhyZWFkLnRsc0luaXRGdW5jdGlvbnMuZm9yRWFjaChmPT5mKCkpfSxsb2FkV2FzbU1vZHVsZVRvV29ya2VyOndvcmtlcj0+bmV3IFByb21pc2Uob25GaW5pc2hlZExvYWRpbmc9Pnt3b3JrZXIub25tZXNzYWdlPWU9Pnt2YXIgZD1lWyJkYXRhIl07dmFyIGNtZD1kLmNtZDtpZihkLnRhcmdldFRocmVhZCYmZC50YXJnZXRUaHJlYWQhPV9wdGhyZWFkX3NlbGYoKSl7dmFyIHRhcmdldFdvcmtlcj1QVGhyZWFkLnB0aHJlYWRzW2QudGFyZ2V0VGhyZWFkXTtpZih0YXJnZXRXb3JrZXIpe3RhcmdldFdvcmtlci5wb3N0TWVzc2FnZShkLGQudHJhbnNmZXJMaXN0KX1lbHNle2VycihgSW50ZXJuYWwgZXJyb3IhIFdvcmtlciBzZW50IGEgbWVzc2FnZSAiJHtjbWR9IiB0byB0YXJnZXQgcHRocmVhZCAke2QudGFyZ2V0VGhyZWFkfSwgYnV0IHRoYXQgdGhyZWFkIG5vIGxvbmdlciBleGlzdHMhYCl9cmV0dXJufWlmKGNtZD09PSJjaGVja01haWxib3giKXtjaGVja01haWxib3goKX1lbHNlIGlmKGNtZD09PSJzcGF3blRocmVhZCIpe3NwYXduVGhyZWFkKGQpfWVsc2UgaWYoY21kPT09ImNsZWFudXBUaHJlYWQiKXtjYWxsVXNlckNhbGxiYWNrKCgpPT5jbGVhbnVwVGhyZWFkKGQudGhyZWFkKSl9ZWxzZSBpZihjbWQ9PT0ibG9hZGVkIil7d29ya2VyLmxvYWRlZD10cnVlO2lmKEVOVklST05NRU5UX0lTX05PREUmJiF3b3JrZXIucHRocmVhZF9wdHIpe3dvcmtlci51bnJlZigpfW9uRmluaXNoZWRMb2FkaW5nKHdvcmtlcil9ZWxzZSBpZihkLnRhcmdldD09PSJzZXRpbW1lZGlhdGUiKXt3b3JrZXIucG9zdE1lc3NhZ2UoZCl9ZWxzZSBpZihjbWQ9PT0idW5jYXVnaHRFeGNlcHRpb24iKXt3b3JrZXIub25lcnJvcihkLmVycm9yKX1lbHNlIGlmKGNtZD09PSJjYWxsSGFuZGxlciIpe01vZHVsZVtkLmhhbmRsZXJdKC4uLmQuYXJncyl9ZWxzZSBpZihjbWQpe2Vycihgd29ya2VyIHNlbnQgYW4gdW5rbm93biBjb21tYW5kICR7Y21kfWApfX07d29ya2VyLm9uZXJyb3I9ZT0+e3ZhciBtZXNzYWdlPSJ3b3JrZXIgc2VudCBhbiBlcnJvciEiO2VycihgJHttZXNzYWdlfSAke2UuZmlsZW5hbWV9OiR7ZS5saW5lbm99OiAke2UubWVzc2FnZX1gKTt0aHJvdyBlfTtpZihFTlZJUk9OTUVOVF9JU19OT0RFKXt3b3JrZXIub24oIm1lc3NhZ2UiLGRhdGE9Pndvcmtlci5vbm1lc3NhZ2Uoe2RhdGF9KSk7d29ya2VyLm9uKCJlcnJvciIsZT0+d29ya2VyLm9uZXJyb3IoZSkpfXZhciBoYW5kbGVycz1bXTt2YXIga25vd25IYW5kbGVycz1bIm9uRXhpdCIsIm9uQWJvcnQiLCJwcmludCIsInByaW50RXJyIl07Zm9yKHZhciBoYW5kbGVyIG9mIGtub3duSGFuZGxlcnMpe2lmKE1vZHVsZS5wcm9wZXJ0eUlzRW51bWVyYWJsZShoYW5kbGVyKSl7aGFuZGxlcnMucHVzaChoYW5kbGVyKX19d29ya2VyLnBvc3RNZXNzYWdlKHtjbWQ6ImxvYWQiLGhhbmRsZXJzLHdhc21NZW1vcnksd2FzbU1vZHVsZX0pfSksYXN5bmMgbG9hZFdhc21Nb2R1bGVUb0FsbFdvcmtlcnMoKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXtyZXR1cm59bGV0IHB0aHJlYWRQb29sUmVhZHk9UHJvbWlzZS5hbGwoUFRocmVhZC51bnVzZWRXb3JrZXJzLm1hcChQVGhyZWFkLmxvYWRXYXNtTW9kdWxlVG9Xb3JrZXIpKTtyZXR1cm4gcHRocmVhZFBvb2xSZWFkeX0sYWxsb2NhdGVVbnVzZWRXb3JrZXIoKXt2YXIgd29ya2VyO2lmKE1vZHVsZVsibWFpblNjcmlwdFVybE9yQmxvYiJdKXt2YXIgcHRocmVhZE1haW5Kcz1Nb2R1bGVbIm1haW5TY3JpcHRVcmxPckJsb2IiXTtpZih0eXBlb2YgcHRocmVhZE1haW5KcyE9InN0cmluZyIpe3B0aHJlYWRNYWluSnM9VVJMLmNyZWF0ZU9iamVjdFVSTChwdGhyZWFkTWFpbkpzKX13b3JrZXI9bmV3IFdvcmtlcihwdGhyZWFkTWFpbkpzLHt0eXBlOiJtb2R1bGUiLHdvcmtlckRhdGE6ImVtLXB0aHJlYWQiLG5hbWU6ImVtLXB0aHJlYWQifSl9ZWxzZSB3b3JrZXI9bmV3IFdvcmtlcihuZXcgVVJMKCJvZmZsb2Fkcy1zaW1kLW10LmpzIixpbXBvcnQubWV0YS51cmwpLHt0eXBlOiJtb2R1bGUiLHdvcmtlckRhdGE6ImVtLXB0aHJlYWQiLG5hbWU6ImVtLXB0aHJlYWQifSk7UFRocmVhZC51bnVzZWRXb3JrZXJzLnB1c2god29ya2VyKX0sZ2V0TmV3V29ya2VyKCl7aWYoUFRocmVhZC51bnVzZWRXb3JrZXJzLmxlbmd0aD09MCl7UFRocmVhZC5hbGxvY2F0ZVVudXNlZFdvcmtlcigpO1BUaHJlYWQubG9hZFdhc21Nb2R1bGVUb1dvcmtlcihQVGhyZWFkLnVudXNlZFdvcmtlcnNbMF0pfXJldHVybiBQVGhyZWFkLnVudXNlZFdvcmtlcnMucG9wKCl9fTt2YXIgb25Qb3N0UnVucz1bXTt2YXIgYWRkT25Qb3N0UnVuPWNiPT5vblBvc3RSdW5zLnB1c2goY2IpO2Z1bmN0aW9uIGVzdGFibGlzaFN0YWNrU3BhY2UocHRocmVhZF9wdHIpe3ZhciBzdGFja0hpZ2g9SEVBUFUzMltwdGhyZWFkX3B0cis1Mj4+Ml07dmFyIHN0YWNrU2l6ZT1IRUFQVTMyW3B0aHJlYWRfcHRyKzU2Pj4yXTt2YXIgc3RhY2tMb3c9c3RhY2tIaWdoLXN0YWNrU2l6ZTtfZW1zY3JpcHRlbl9zdGFja19zZXRfbGltaXRzKHN0YWNrSGlnaCxzdGFja0xvdyk7c3RhY2tSZXN0b3JlKHN0YWNrSGlnaCl9dmFyIHdhc21UYWJsZU1pcnJvcj1bXTt2YXIgZ2V0V2FzbVRhYmxlRW50cnk9ZnVuY1B0cj0+e3ZhciBmdW5jPXdhc21UYWJsZU1pcnJvcltmdW5jUHRyXTtpZighZnVuYyl7d2FzbVRhYmxlTWlycm9yW2Z1bmNQdHJdPWZ1bmM9d2FzbVRhYmxlLmdldChmdW5jUHRyKX1yZXR1cm4gZnVuY307dmFyIGludm9rZUVudHJ5UG9pbnQ9KHB0cixhcmcpPT57cnVudGltZUtlZXBhbGl2ZUNvdW50ZXI9MDtub0V4aXRSdW50aW1lPTA7dmFyIHJlc3VsdD1nZXRXYXNtVGFibGVFbnRyeShwdHIpKGFyZyk7ZnVuY3Rpb24gZmluaXNoKHJlc3VsdCl7aWYoa2VlcFJ1bnRpbWVBbGl2ZSgpKXtFWElUU1RBVFVTPXJlc3VsdDtyZXR1cm59X19lbXNjcmlwdGVuX3RocmVhZF9leGl0KHJlc3VsdCl9ZmluaXNoKHJlc3VsdCl9O3ZhciBub0V4aXRSdW50aW1lPXRydWU7dmFyIHJlZ2lzdGVyVExTSW5pdD10bHNJbml0RnVuYz0+UFRocmVhZC50bHNJbml0RnVuY3Rpb25zLnB1c2godGxzSW5pdEZ1bmMpO3ZhciB3YXNtTWVtb3J5O2NsYXNzIEV4Y2VwdGlvbkluZm97Y29uc3RydWN0b3IoZXhjUHRyKXt0aGlzLmV4Y1B0cj1leGNQdHI7dGhpcy5wdHI9ZXhjUHRyLTI0fXNldF90eXBlKHR5cGUpe0hFQVBVMzJbdGhpcy5wdHIrND4+Ml09dHlwZX1nZXRfdHlwZSgpe3JldHVybiBIRUFQVTMyW3RoaXMucHRyKzQ+PjJdfXNldF9kZXN0cnVjdG9yKGRlc3RydWN0b3Ipe0hFQVBVMzJbdGhpcy5wdHIrOD4+Ml09ZGVzdHJ1Y3Rvcn1nZXRfZGVzdHJ1Y3Rvcigpe3JldHVybiBIRUFQVTMyW3RoaXMucHRyKzg+PjJdfXNldF9jYXVnaHQoY2F1Z2h0KXtjYXVnaHQ9Y2F1Z2h0PzE6MDtIRUFQOFt0aGlzLnB0cisxMl09Y2F1Z2h0fWdldF9jYXVnaHQoKXtyZXR1cm4gSEVBUDhbdGhpcy5wdHIrMTJdIT0wfXNldF9yZXRocm93bihyZXRocm93bil7cmV0aHJvd249cmV0aHJvd24/MTowO0hFQVA4W3RoaXMucHRyKzEzXT1yZXRocm93bn1nZXRfcmV0aHJvd24oKXtyZXR1cm4gSEVBUDhbdGhpcy5wdHIrMTNdIT0wfWluaXQodHlwZSxkZXN0cnVjdG9yKXt0aGlzLnNldF9hZGp1c3RlZF9wdHIoMCk7dGhpcy5zZXRfdHlwZSh0eXBlKTt0aGlzLnNldF9kZXN0cnVjdG9yKGRlc3RydWN0b3IpfXNldF9hZGp1c3RlZF9wdHIoYWRqdXN0ZWRQdHIpe0hFQVBVMzJbdGhpcy5wdHIrMTY+PjJdPWFkanVzdGVkUHRyfWdldF9hZGp1c3RlZF9wdHIoKXtyZXR1cm4gSEVBUFUzMlt0aGlzLnB0cisxNj4+Ml19fXZhciBleGNlcHRpb25MYXN0PTA7dmFyIHVuY2F1Z2h0RXhjZXB0aW9uQ291bnQ9MDt2YXIgX19fY3hhX3Rocm93PShwdHIsdHlwZSxkZXN0cnVjdG9yKT0+e3ZhciBpbmZvPW5ldyBFeGNlcHRpb25JbmZvKHB0cik7aW5mby5pbml0KHR5cGUsZGVzdHJ1Y3Rvcik7ZXhjZXB0aW9uTGFzdD1wdHI7dW5jYXVnaHRFeGNlcHRpb25Db3VudCsrO3Rocm93IGV4Y2VwdGlvbkxhc3R9O2Z1bmN0aW9uIHB0aHJlYWRDcmVhdGVQcm94aWVkKHB0aHJlYWRfcHRyLGF0dHIsc3RhcnRSb3V0aW5lLGFyZyl7aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRClyZXR1cm4gcHJveHlUb01haW5UaHJlYWQoMiwwLDEscHRocmVhZF9wdHIsYXR0cixzdGFydFJvdXRpbmUsYXJnKTtyZXR1cm4gX19fcHRocmVhZF9jcmVhdGVfanMocHRocmVhZF9wdHIsYXR0cixzdGFydFJvdXRpbmUsYXJnKX12YXIgX2Vtc2NyaXB0ZW5faGFzX3RocmVhZGluZ19zdXBwb3J0PSgpPT4hIWdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI7dmFyIF9fX3B0aHJlYWRfY3JlYXRlX2pzPShwdGhyZWFkX3B0cixhdHRyLHN0YXJ0Um91dGluZSxhcmcpPT57aWYoIV9lbXNjcmlwdGVuX2hhc190aHJlYWRpbmdfc3VwcG9ydCgpKXtyZXR1cm4gNn12YXIgdHJhbnNmZXJMaXN0PVtdO3ZhciBlcnJvcj0wO2lmKEVOVklST05NRU5UX0lTX1BUSFJFQUQmJih0cmFuc2Zlckxpc3QubGVuZ3RoPT09MHx8ZXJyb3IpKXtyZXR1cm4gcHRocmVhZENyZWF0ZVByb3hpZWQocHRocmVhZF9wdHIsYXR0cixzdGFydFJvdXRpbmUsYXJnKX1pZihlcnJvcilyZXR1cm4gZXJyb3I7dmFyIHRocmVhZFBhcmFtcz17c3RhcnRSb3V0aW5lLHB0aHJlYWRfcHRyLGFyZyx0cmFuc2Zlckxpc3R9O2lmKEVOVklST05NRU5UX0lTX1BUSFJFQUQpe3RocmVhZFBhcmFtcy5jbWQ9InNwYXduVGhyZWFkIjtwb3N0TWVzc2FnZSh0aHJlYWRQYXJhbXMsdHJhbnNmZXJMaXN0KTtyZXR1cm4gMH1yZXR1cm4gc3Bhd25UaHJlYWQodGhyZWFkUGFyYW1zKX07dmFyIF9fYWJvcnRfanM9KCk9PmFib3J0KCIiKTt2YXIgX19lbXNjcmlwdGVuX2luaXRfbWFpbl90aHJlYWRfanM9dGI9PntfX2Vtc2NyaXB0ZW5fdGhyZWFkX2luaXQodGIsIUVOVklST05NRU5UX0lTX1dPUktFUiwxLCFFTlZJUk9OTUVOVF9JU19XRUIsNjU1MzYsZmFsc2UpO1BUaHJlYWQudGhyZWFkSW5pdFRMUygpfTt2YXIgaGFuZGxlRXhjZXB0aW9uPWU9PntpZihlIGluc3RhbmNlb2YgRXhpdFN0YXR1c3x8ZT09InVud2luZCIpe3JldHVybiBFWElUU1RBVFVTfXF1aXRfKDEsZSl9O3ZhciBtYXliZUV4aXQ9KCk9PntpZigha2VlcFJ1bnRpbWVBbGl2ZSgpKXt0cnl7aWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRCl7aWYoX3B0aHJlYWRfc2VsZigpKV9fZW1zY3JpcHRlbl90aHJlYWRfZXhpdChFWElUU1RBVFVTKTtyZXR1cm59X2V4aXQoRVhJVFNUQVRVUyl9Y2F0Y2goZSl7aGFuZGxlRXhjZXB0aW9uKGUpfX19O3ZhciBjYWxsVXNlckNhbGxiYWNrPWZ1bmM9PntpZihBQk9SVCl7cmV0dXJufXRyeXtmdW5jKCk7bWF5YmVFeGl0KCl9Y2F0Y2goZSl7aGFuZGxlRXhjZXB0aW9uKGUpfX07dmFyIF9fZW1zY3JpcHRlbl90aHJlYWRfbWFpbGJveF9hd2FpdD1wdGhyZWFkX3B0cj0+e2lmKEF0b21pY3Mud2FpdEFzeW5jKXt2YXIgd2FpdD1BdG9taWNzLndhaXRBc3luYyhIRUFQMzIscHRocmVhZF9wdHI+PjIscHRocmVhZF9wdHIpO3dhaXQudmFsdWUudGhlbihjaGVja01haWxib3gpO3ZhciB3YWl0aW5nQXN5bmM9cHRocmVhZF9wdHIrMTI4O0F0b21pY3Muc3RvcmUoSEVBUDMyLHdhaXRpbmdBc3luYz4+MiwxKX19O3ZhciBjaGVja01haWxib3g9KCk9PmNhbGxVc2VyQ2FsbGJhY2soKCk9Pnt2YXIgcHRocmVhZF9wdHI9X3B0aHJlYWRfc2VsZigpO2lmKHB0aHJlYWRfcHRyKXtfX2Vtc2NyaXB0ZW5fdGhyZWFkX21haWxib3hfYXdhaXQocHRocmVhZF9wdHIpO19fZW1zY3JpcHRlbl9jaGVja19tYWlsYm94KCl9fSk7dmFyIF9fZW1zY3JpcHRlbl9ub3RpZnlfbWFpbGJveF9wb3N0bWVzc2FnZT0odGFyZ2V0VGhyZWFkLGN1cnJUaHJlYWRJZCk9PntpZih0YXJnZXRUaHJlYWQ9PWN1cnJUaHJlYWRJZCl7c2V0VGltZW91dChjaGVja01haWxib3gpfWVsc2UgaWYoRU5WSVJPTk1FTlRfSVNfUFRIUkVBRCl7cG9zdE1lc3NhZ2Uoe3RhcmdldFRocmVhZCxjbWQ6ImNoZWNrTWFpbGJveCJ9KX1lbHNle3ZhciB3b3JrZXI9UFRocmVhZC5wdGhyZWFkc1t0YXJnZXRUaHJlYWRdO2lmKCF3b3JrZXIpe3JldHVybn13b3JrZXIucG9zdE1lc3NhZ2Uoe2NtZDoiY2hlY2tNYWlsYm94In0pfX07dmFyIHByb3hpZWRKU0NhbGxBcmdzPVtdO3ZhciBfX2Vtc2NyaXB0ZW5fcmVjZWl2ZV9vbl9tYWluX3RocmVhZF9qcz0oZnVuY0luZGV4LGVtQXNtQWRkcixjYWxsaW5nVGhyZWFkLG51bUNhbGxBcmdzLGFyZ3MpPT57bnVtQ2FsbEFyZ3MvPTI7cHJveGllZEpTQ2FsbEFyZ3MubGVuZ3RoPW51bUNhbGxBcmdzO3ZhciBiPWFyZ3M+PjM7Zm9yKHZhciBpPTA7aTxudW1DYWxsQXJncztpKyspe2lmKEhFQVA2NFtiKzIqaV0pe3Byb3hpZWRKU0NhbGxBcmdzW2ldPUhFQVA2NFtiKzIqaSsxXX1lbHNle3Byb3hpZWRKU0NhbGxBcmdzW2ldPUhFQVBGNjRbYisyKmkrMV19fXZhciBmdW5jPXByb3hpZWRGdW5jdGlvblRhYmxlW2Z1bmNJbmRleF07UFRocmVhZC5jdXJyZW50UHJveGllZE9wZXJhdGlvbkNhbGxlclRocmVhZD1jYWxsaW5nVGhyZWFkO3ZhciBydG49ZnVuYyguLi5wcm94aWVkSlNDYWxsQXJncyk7UFRocmVhZC5jdXJyZW50UHJveGllZE9wZXJhdGlvbkNhbGxlclRocmVhZD0wO3JldHVybiBydG59O3ZhciBfX2Vtc2NyaXB0ZW5fdGhyZWFkX2NsZWFudXA9dGhyZWFkPT57aWYoIUVOVklST05NRU5UX0lTX1BUSFJFQUQpY2xlYW51cFRocmVhZCh0aHJlYWQpO2Vsc2UgcG9zdE1lc3NhZ2Uoe2NtZDoiY2xlYW51cFRocmVhZCIsdGhyZWFkfSl9O3ZhciBfX2Vtc2NyaXB0ZW5fdGhyZWFkX3NldF9zdHJvbmdyZWY9dGhyZWFkPT57aWYoRU5WSVJPTk1FTlRfSVNfTk9ERSl7UFRocmVhZC5wdGhyZWFkc1t0aHJlYWRdLnJlZigpfX07dmFyIF9lbXNjcmlwdGVuX2dldF9ub3c9KCk9PnBlcmZvcm1hbmNlLnRpbWVPcmlnaW4rcGVyZm9ybWFuY2Uubm93KCk7dmFyIF9lbXNjcmlwdGVuX2NoZWNrX2Jsb2NraW5nX2FsbG93ZWQ9KCk9Pnt9O3ZhciBydW50aW1lS2VlcGFsaXZlUHVzaD0oKT0+e3J1bnRpbWVLZWVwYWxpdmVDb3VudGVyKz0xfTt2YXIgX2Vtc2NyaXB0ZW5fZXhpdF93aXRoX2xpdmVfcnVudGltZT0oKT0+e3J1bnRpbWVLZWVwYWxpdmVQdXNoKCk7dGhyb3cidW53aW5kIn07dmFyIGdldEhlYXBNYXg9KCk9PkhFQVBVOC5sZW5ndGg7dmFyIF9lbXNjcmlwdGVuX2dldF9oZWFwX21heD0oKT0+Z2V0SGVhcE1heCgpO3ZhciBfZW1zY3JpcHRlbl9udW1fbG9naWNhbF9jb3Jlcz0oKT0+RU5WSVJPTk1FTlRfSVNfTk9ERT9yZXF1aXJlKCJvcyIpLmNwdXMoKS5sZW5ndGg6bmF2aWdhdG9yWyJoYXJkd2FyZUNvbmN1cnJlbmN5Il07dmFyIGFib3J0T25DYW5ub3RHcm93TWVtb3J5PXJlcXVlc3RlZFNpemU9PnthYm9ydCgiT09NIil9O3ZhciBfZW1zY3JpcHRlbl9yZXNpemVfaGVhcD1yZXF1ZXN0ZWRTaXplPT57dmFyIG9sZFNpemU9SEVBUFU4Lmxlbmd0aDtyZXF1ZXN0ZWRTaXplPj4+PTA7YWJvcnRPbkNhbm5vdEdyb3dNZW1vcnkocmVxdWVzdGVkU2l6ZSl9O3ZhciBwcmludENoYXJCdWZmZXJzPVtudWxsLFtdLFtdXTt2YXIgVVRGOERlY29kZXI9Z2xvYmFsVGhpcy5UZXh0RGVjb2RlciYmbmV3IFRleHREZWNvZGVyO3ZhciBmaW5kU3RyaW5nRW5kPShoZWFwT3JBcnJheSxpZHgsbWF4Qnl0ZXNUb1JlYWQsaWdub3JlTnVsKT0+e3ZhciBtYXhJZHg9aWR4K21heEJ5dGVzVG9SZWFkO2lmKGlnbm9yZU51bClyZXR1cm4gbWF4SWR4O3doaWxlKGhlYXBPckFycmF5W2lkeF0mJiEoaWR4Pj1tYXhJZHgpKSsraWR4O3JldHVybiBpZHh9O3ZhciBVVEY4QXJyYXlUb1N0cmluZz0oaGVhcE9yQXJyYXksaWR4PTAsbWF4Qnl0ZXNUb1JlYWQsaWdub3JlTnVsKT0+e3ZhciBlbmRQdHI9ZmluZFN0cmluZ0VuZChoZWFwT3JBcnJheSxpZHgsbWF4Qnl0ZXNUb1JlYWQsaWdub3JlTnVsKTtpZihlbmRQdHItaWR4PjE2JiZoZWFwT3JBcnJheS5idWZmZXImJlVURjhEZWNvZGVyKXtyZXR1cm4gVVRGOERlY29kZXIuZGVjb2RlKGhlYXBPckFycmF5LmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP2hlYXBPckFycmF5LnN1YmFycmF5KGlkeCxlbmRQdHIpOmhlYXBPckFycmF5LnNsaWNlKGlkeCxlbmRQdHIpKX12YXIgc3RyPSIiO3doaWxlKGlkeDxlbmRQdHIpe3ZhciB1MD1oZWFwT3JBcnJheVtpZHgrK107aWYoISh1MCYxMjgpKXtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUodTApO2NvbnRpbnVlfXZhciB1MT1oZWFwT3JBcnJheVtpZHgrK10mNjM7aWYoKHUwJjIyNCk9PTE5Mil7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCh1MCYzMSk8PDZ8dTEpO2NvbnRpbnVlfXZhciB1Mj1oZWFwT3JBcnJheVtpZHgrK10mNjM7aWYoKHUwJjI0MCk9PTIyNCl7dTA9KHUwJjE1KTw8MTJ8dTE8PDZ8dTJ9ZWxzZXt1MD0odTAmNyk8PDE4fHUxPDwxMnx1Mjw8NnxoZWFwT3JBcnJheVtpZHgrK10mNjN9aWYodTA8NjU1MzYpe3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSh1MCl9ZWxzZXt2YXIgY2g9dTAtNjU1MzY7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2fGNoPj4xMCw1NjMyMHxjaCYxMDIzKX19cmV0dXJuIHN0cn07dmFyIHByaW50Q2hhcj0oc3RyZWFtLGN1cnIpPT57dmFyIGJ1ZmZlcj1wcmludENoYXJCdWZmZXJzW3N0cmVhbV07aWYoY3Vycj09PTB8fGN1cnI9PT0xMCl7KHN0cmVhbT09PTE/b3V0OmVycikoVVRGOEFycmF5VG9TdHJpbmcoYnVmZmVyKSk7YnVmZmVyLmxlbmd0aD0wfWVsc2V7YnVmZmVyLnB1c2goY3Vycil9fTtmdW5jdGlvbiBfZmRfd3JpdGUoZmQsaW92LGlvdmNudCxwbnVtKXtpZihFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXJldHVybiBwcm94eVRvTWFpblRocmVhZCgzLDAsMSxmZCxpb3YsaW92Y250LHBudW0pO3ZhciBudW09MDtmb3IodmFyIGk9MDtpPGlvdmNudDtpKyspe3ZhciBwdHI9SEVBUFUzMltpb3Y+PjJdO3ZhciBsZW49SEVBUFUzMltpb3YrND4+Ml07aW92Kz04O2Zvcih2YXIgaj0wO2o8bGVuO2orKyl7cHJpbnRDaGFyKGZkLEhFQVBVOFtwdHIral0pfW51bSs9bGVufUhFQVBVMzJbcG51bT4+Ml09bnVtO3JldHVybiAwfVBUaHJlYWQuaW5pdCgpO3tpbml0TWVtb3J5KCk7aWYoTW9kdWxlWyJub0V4aXRSdW50aW1lIl0pbm9FeGl0UnVudGltZT1Nb2R1bGVbIm5vRXhpdFJ1bnRpbWUiXTtpZihNb2R1bGVbInByaW50Il0pb3V0PU1vZHVsZVsicHJpbnQiXTtpZihNb2R1bGVbInByaW50RXJyIl0pZXJyPU1vZHVsZVsicHJpbnRFcnIiXTtpZihNb2R1bGVbIndhc21CaW5hcnkiXSl3YXNtQmluYXJ5PU1vZHVsZVsid2FzbUJpbmFyeSJdO2lmKE1vZHVsZVsiYXJndW1lbnRzIl0pYXJndW1lbnRzXz1Nb2R1bGVbImFyZ3VtZW50cyJdO2lmKE1vZHVsZVsidGhpc1Byb2dyYW0iXSl0aGlzUHJvZ3JhbT1Nb2R1bGVbInRoaXNQcm9ncmFtIl07aWYoTW9kdWxlWyJwcmVJbml0Il0pe2lmKHR5cGVvZiBNb2R1bGVbInByZUluaXQiXT09ImZ1bmN0aW9uIilNb2R1bGVbInByZUluaXQiXT1bTW9kdWxlWyJwcmVJbml0Il1dO3doaWxlKE1vZHVsZVsicHJlSW5pdCJdLmxlbmd0aD4wKXtNb2R1bGVbInByZUluaXQiXS5zaGlmdCgpKCl9fX1Nb2R1bGVbIndhc21NZW1vcnkiXT13YXNtTWVtb3J5O3ZhciBwcm94aWVkRnVuY3Rpb25UYWJsZT1bX3Byb2NfZXhpdCxleGl0T25NYWluVGhyZWFkLHB0aHJlYWRDcmVhdGVQcm94aWVkLF9mZF93cml0ZV07dmFyIF9mcm9tTG5nTGF0LF9wcm9qZWN0LF91bnByb2plY3QsX2NhbGN1bGF0ZVBlcnNwZWN0aXZlUmF0aW8sX3NldFRocmVhZFBvb2xTaXplLF9wcm9qZWN0TG5nTGF0VG9DbGlwU3BhY2UsX2NhbGN1bGF0ZUJpbGxib2FyZERlcHRoS2V5LF9jYWxjdWxhdGVTdXJmYWNlRGVwdGhLZXksX3ByZXBhcmVEcmF3U3ByaXRlSW1hZ2VzLF9fZW1zY3JpcHRlbl90bHNfaW5pdCxfcHRocmVhZF9zZWxmLF9fZW1zY3JpcHRlbl90aHJlYWRfaW5pdCxfX2Vtc2NyaXB0ZW5fdGhyZWFkX2NyYXNoZWQsX19lbXNjcmlwdGVuX3J1bl9qc19vbl9tYWluX3RocmVhZCxfX2Vtc2NyaXB0ZW5fdGhyZWFkX2ZyZWVfZGF0YSxfX2Vtc2NyaXB0ZW5fdGhyZWFkX2V4aXQsX21hbGxvYyxfZnJlZSxfX2Vtc2NyaXB0ZW5fY2hlY2tfbWFpbGJveCxfZW1zY3JpcHRlbl9zdGFja19zZXRfbGltaXRzLF9fZW1zY3JpcHRlbl9zdGFja19yZXN0b3JlLF9fZW1zY3JpcHRlbl9zdGFja19hbGxvYyxfZW1zY3JpcHRlbl9zdGFja19nZXRfY3VycmVudCxfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlLHdhc21UYWJsZTtmdW5jdGlvbiBhc3NpZ25XYXNtRXhwb3J0cyh3YXNtRXhwb3J0cyl7X2Zyb21MbmdMYXQ9TW9kdWxlWyJfZnJvbUxuZ0xhdCJdPXdhc21FeHBvcnRzWyJ0Il07X3Byb2plY3Q9TW9kdWxlWyJfcHJvamVjdCJdPXdhc21FeHBvcnRzWyJ1Il07X3VucHJvamVjdD1Nb2R1bGVbIl91bnByb2plY3QiXT13YXNtRXhwb3J0c1sidiJdO19jYWxjdWxhdGVQZXJzcGVjdGl2ZVJhdGlvPU1vZHVsZVsiX2NhbGN1bGF0ZVBlcnNwZWN0aXZlUmF0aW8iXT13YXNtRXhwb3J0c1sidyJdO19zZXRUaHJlYWRQb29sU2l6ZT1Nb2R1bGVbIl9zZXRUaHJlYWRQb29sU2l6ZSJdPXdhc21FeHBvcnRzWyJ5Il07X3Byb2plY3RMbmdMYXRUb0NsaXBTcGFjZT1Nb2R1bGVbIl9wcm9qZWN0TG5nTGF0VG9DbGlwU3BhY2UiXT13YXNtRXhwb3J0c1sieiJdO19jYWxjdWxhdGVCaWxsYm9hcmREZXB0aEtleT1Nb2R1bGVbIl9jYWxjdWxhdGVCaWxsYm9hcmREZXB0aEtleSJdPXdhc21FeHBvcnRzWyJBIl07X2NhbGN1bGF0ZVN1cmZhY2VEZXB0aEtleT1Nb2R1bGVbIl9jYWxjdWxhdGVTdXJmYWNlRGVwdGhLZXkiXT13YXNtRXhwb3J0c1siQiJdO19wcmVwYXJlRHJhd1Nwcml0ZUltYWdlcz1Nb2R1bGVbIl9wcmVwYXJlRHJhd1Nwcml0ZUltYWdlcyJdPXdhc21FeHBvcnRzWyJDIl07X19lbXNjcmlwdGVuX3Rsc19pbml0PXdhc21FeHBvcnRzWyJEIl07X3B0aHJlYWRfc2VsZj13YXNtRXhwb3J0c1siRSJdO19fZW1zY3JpcHRlbl90aHJlYWRfaW5pdD13YXNtRXhwb3J0c1siRiJdO19fZW1zY3JpcHRlbl90aHJlYWRfY3Jhc2hlZD13YXNtRXhwb3J0c1siRyJdO19fZW1zY3JpcHRlbl9ydW5fanNfb25fbWFpbl90aHJlYWQ9d2FzbUV4cG9ydHNbIkgiXTtfX2Vtc2NyaXB0ZW5fdGhyZWFkX2ZyZWVfZGF0YT13YXNtRXhwb3J0c1siSSJdO19fZW1zY3JpcHRlbl90aHJlYWRfZXhpdD13YXNtRXhwb3J0c1siSiJdO19tYWxsb2M9TW9kdWxlWyJfbWFsbG9jIl09d2FzbUV4cG9ydHNbIksiXTtfZnJlZT1Nb2R1bGVbIl9mcmVlIl09d2FzbUV4cG9ydHNbIkwiXTtfX2Vtc2NyaXB0ZW5fY2hlY2tfbWFpbGJveD13YXNtRXhwb3J0c1siTSJdO19lbXNjcmlwdGVuX3N0YWNrX3NldF9saW1pdHM9d2FzbUV4cG9ydHNbIk4iXTtfX2Vtc2NyaXB0ZW5fc3RhY2tfcmVzdG9yZT13YXNtRXhwb3J0c1siTyJdO19fZW1zY3JpcHRlbl9zdGFja19hbGxvYz13YXNtRXhwb3J0c1siUCJdO19lbXNjcmlwdGVuX3N0YWNrX2dldF9jdXJyZW50PXdhc21FeHBvcnRzWyJRIl07X19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZT13YXNtVGFibGU9d2FzbUV4cG9ydHNbIngiXX12YXIgd2FzbUltcG9ydHM7ZnVuY3Rpb24gYXNzaWduV2FzbUltcG9ydHMoKXt3YXNtSW1wb3J0cz17ZjpfX19jeGFfdGhyb3csZzpfX19wdGhyZWFkX2NyZWF0ZV9qcyxvOl9fYWJvcnRfanMsazpfX2Vtc2NyaXB0ZW5faW5pdF9tYWluX3RocmVhZF9qcyxxOl9fZW1zY3JpcHRlbl9ub3RpZnlfbWFpbGJveF9wb3N0bWVzc2FnZSxsOl9fZW1zY3JpcHRlbl9yZWNlaXZlX29uX21haW5fdGhyZWFkX2pzLGM6X19lbXNjcmlwdGVuX3RocmVhZF9jbGVhbnVwLGo6X19lbXNjcmlwdGVuX3RocmVhZF9tYWlsYm94X2F3YWl0LGk6X19lbXNjcmlwdGVuX3RocmVhZF9zZXRfc3Ryb25ncmVmLGQ6X2Vtc2NyaXB0ZW5fY2hlY2tfYmxvY2tpbmdfYWxsb3dlZCxoOl9lbXNjcmlwdGVuX2V4aXRfd2l0aF9saXZlX3J1bnRpbWUsbTpfZW1zY3JpcHRlbl9nZXRfaGVhcF9tYXgsYjpfZW1zY3JpcHRlbl9nZXRfbm93LG46X2Vtc2NyaXB0ZW5fbnVtX2xvZ2ljYWxfY29yZXMscDpfZW1zY3JpcHRlbl9yZXNpemVfaGVhcCxyOl9leGl0LGU6X2ZkX3dyaXRlLGE6d2FzbU1lbW9yeX19ZnVuY3Rpb24gcnVuKCl7aWYocnVuRGVwZW5kZW5jaWVzPjApe2RlcGVuZGVuY2llc0Z1bGZpbGxlZD1ydW47cmV0dXJufWlmKEVOVklST05NRU5UX0lTX1BUSFJFQUQpe3JlYWR5UHJvbWlzZVJlc29sdmU/LihNb2R1bGUpO2luaXRSdW50aW1lKCk7cmV0dXJufXByZVJ1bigpO2lmKHJ1bkRlcGVuZGVuY2llcz4wKXtkZXBlbmRlbmNpZXNGdWxmaWxsZWQ9cnVuO3JldHVybn1mdW5jdGlvbiBkb1J1bigpe01vZHVsZVsiY2FsbGVkUnVuIl09dHJ1ZTtpZihBQk9SVClyZXR1cm47aW5pdFJ1bnRpbWUoKTtyZWFkeVByb21pc2VSZXNvbHZlPy4oTW9kdWxlKTtNb2R1bGVbIm9uUnVudGltZUluaXRpYWxpemVkIl0/LigpO3Bvc3RSdW4oKX1pZihNb2R1bGVbInNldFN0YXR1cyJdKXtNb2R1bGVbInNldFN0YXR1cyJdKCJSdW5uaW5nLi4uIik7c2V0VGltZW91dCgoKT0+e3NldFRpbWVvdXQoKCk9Pk1vZHVsZVsic2V0U3RhdHVzIl0oIiIpLDEpO2RvUnVuKCl9LDEpfWVsc2V7ZG9SdW4oKX19dmFyIHdhc21FeHBvcnRzO2lmKCFFTlZJUk9OTUVOVF9JU19QVEhSRUFEKXt3YXNtRXhwb3J0cz1hd2FpdCAoY3JlYXRlV2FzbSgpKTtydW4oKX1pZihydW50aW1lSW5pdGlhbGl6ZWQpe21vZHVsZVJ0bj1Nb2R1bGV9ZWxzZXttb2R1bGVSdG49bmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KT0+e3JlYWR5UHJvbWlzZVJlc29sdmU9cmVzb2x2ZTtyZWFkeVByb21pc2VSZWplY3Q9cmVqZWN0fSl9CjtyZXR1cm4gbW9kdWxlUnRufWV4cG9ydCBkZWZhdWx0IE1vZHVsZTt2YXIgaXNQdGhyZWFkPWdsb2JhbFRoaXMuc2VsZj8ubmFtZT8uc3RhcnRzV2l0aCgiZW0tcHRocmVhZCIpO3ZhciBpc05vZGU9Z2xvYmFsVGhpcy5wcm9jZXNzPy52ZXJzaW9ucz8ubm9kZSYmZ2xvYmFsVGhpcy5wcm9jZXNzPy50eXBlIT0icmVuZGVyZXIiO2lmKGlzTm9kZSlpc1B0aHJlYWQ9KGF3YWl0IGltcG9ydCgid29ya2VyX3RocmVhZHMiKSkud29ya2VyRGF0YT09PSJlbS1wdGhyZWFkIjtpc1B0aHJlYWQmJk1vZHVsZSgpOwo=";
528
+ const __vite_glob_0_3 = "data:application/wasm;base64,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QCAAIQIMAQsgAkEESQRAIAAhAgwBCyADQQRrIQQgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCwuZAQEDfCAAIACiIgMgAyADoqIgA0R81c9aOtnlPaJE65wriublWr6goiADIANEff6xV+Mdxz6iRNVhwRmgASq/oKJEpvgQERERgT+goCEFIAAgA6IhBCACRQRAIAQgAyAFokRJVVVVVVXFv6CiIACgDwsgACADIAFEAAAAAAAA4D+iIAQgBaKhoiABoSAERElVVVVVVcU/oqChC5IBAQN8RAAAAAAAAPA/IAAgAKIiAkQAAAAAAADgP6IiA6EiBEQAAAAAAADwPyAEoSADoSACIAIgAiACRJAVyxmgAfo+okR3UcEWbMFWv6CiRExVVVVVVaU/oKIgAiACoiIDIAOiIAIgAkTUOIi+6fqovaJExLG0vZ7uIT6gokStUpyAT36SvqCioKIgACABoqGgoAsGACAAEBELGgAgACgCAARAQdDgAP4QAgARAgAQGQALIAALqAEAAkAgAUGACE4EQCAARAAAAAAAAOB/oiEAIAFB/w9JBEAgAUH/B2shAQwCCyAARAAAAAAAAOB/oiEAQf0XIAEgAUH9F08bQf4PayEBDAELIAFBgXhKDQAgAEQAAAAAAABgA6IhACABQbhwSwRAIAFByQdqIQEMAQsgAEQAAAAAAABgA6IhAEHwaCABIAFB8GhNG0GSD2ohAQsgACABQf8Haq1CNIa/ogubAwEGfyAALQAAQQ9xRQRAIABBBGpBAEEK/kgCAEEKcQ8LAn8gACgCACECAkACQAJAAkACQCMDIgEoAhgiBCAAKAIEIgNB/////wNxIgZHDQACQCACQQhxRQ0AIAAoAhRBAE4NACAAQQA2AhQgA0GAgICABHEhAwwCCyACQQNxQQFHDQBBBiAAKAIUIgFB/v///wdLDQUaIAAgAUEBajYCFAwCC0E4IQUgBkH/////A0YNAwJAIAZBACADIAJBBHEbcg0AIAMgAEEEaiADIAJBgAFxBH8gASgCUEUEQCABQXQ2AlALIAAoAgghBiABIABBEGo2AlQgBEGAgICAeHIg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QRtHDQBBG0EAQeTgACgCABshAAsgBEEQaiQAIAAL5wEBBH9BCBBnIgBBjN0ANgIAIAAiA0H83QA2AgACf0HnCCEBQQBB5wgtAABFDQAaAkACQANAIAFBAWoiAUEDcUUNASABLQAADQALDAELA0AgASIAQQRqIQFBgIKECCAAKAIAIgJrIAJyQYCBgoR4cUGAgYKEeEYNAAsDQCAAIgFBAWohACABLQAADQALCyABQecIawsiAkENahASIgBBADYCCCAAIAI2AgQgACACNgIAIABBDGohASACQQFqIgAEQCABQecIIAD8CgAACyADIAE2AgQgA0Gs3gA2AgAgA0G43gBBBBAEAAsyAQJ/QRgQEiIBQQA2AgggAUIANwIAIAFBDGoiAkEANgIIIAJCADcCACAAIAE2AgAgAAuXAQECfwJ/QajYAC4BACIBRQRAIwFBHDYCAEF/DAELAkACQCABQX5KDQBB6aAMIQACQAJAAkACQAJAAkACQCABQf8BcUEBaw4LCAABAgMEBAUFBgMHC0GAgAgMCAtBgIACDAcLQYCABAwGC0H/////BwwFCxAMDAQLEAtBEHYMAwtBAAwCCyABIQALIAALIgBBACAAQQBKGwt7AQR/QYznACgCACMDKAIYRgRAQYznAEEANgIACwNAQYTnACgCACECQYDnAEGA5wAoAgAiACAAQQFrQQAgAEH/////B3EiAUEBRxtBACABQf////8HRxsiA/5IAgAgAEcNAAsgAyACRSAAQQBOcXJFBEBBgOcAIAEQFgsLTQECfwJAAkADQEEGIQECQEGA5wAoAgAiAEH/////B3FB/v///wdrDgIDAgALIABBgOcAIAAgAEEBav5IAgBHDQALQQAPC0EKIQELIAELAgALOQEBf0Hw4gAoAgAiAARAQfDiACAAQQFrNgIADwtB7OIAQQD+FwIAQfTiACgCAARAQeziAEEBEBYLC1gBAn8jAygCGCIAQeziACgCAEcEQEHs4gBBACAA/kgCACIBBEADQEHs4gBB9OIAIAEQHUHs4gBBACAA/kgCACIBDQALCw8LQfDiAEHw4gAoAgBBAWo2AgALUwEDfyMAQRBrIgIkACMDIQMgAkEMaiIEBEAgBCADLQAoNgIACyADQQE6ACggACABEC4gAigCDCIBQQJNBH8jAyABOgAoQQAFQRwLGiACQRBq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ACADQRBqJAALIAYQESAAC+QHAgx8AX8CQCADKwN4IgcgAysDWCIIRAAAAAAAAAAAoiADKwMYIABEAAAAAAAAAAAgAL1C////////////AINCgICAgICAgPj/AFQbIgWiIAFEAAAAAAAAAAAgAb1C////////////AINCgICAgICAgPj/AFQbIgYgAysDOKKgIgGgoCIAvUL///////////8Ag0L/////////9/8AVg0AIAcgCCABoKAiAb1C////////////AINC//////////f/AFYgAEQAAAAAAAAAAGFyIAFEAAAAAAAAAABhcg0AIAMrA2AiCSADKwNAIgpEAAAAAAAAAACiIAMrAwAgBaIgBiADKwMgoqAiC6CgIACjIge9Qv///////////wCDQv/////////3/wBWDQAgAysDaCIMIAMrA0giDUQAAAAAAAAAAKIgAysDCCAFoiAGIAMrAyiioCIOoKAgAKMiCL1C////////////AINCgICAgICAgPj/AFoNACADKwNwIg8gAysDUCIQRAAAAAAAAAAAoiADKwMQIAWiIAYgAysDMKKgIgagoCAAoyIFvUL///////////8Ag0KAgICAgICA+P8AWg0AIAkgCiALoKAgAaMiCb1C////////////AINCgICAgICAgPj/AFoNACAMIA0gDqCgIAGjIgq9Qv///////////wCDQoCAgICAgID4/wBaDQAgDyAQIAagoCABoyIBvUL///////////8Ag0KAgICAgICA+P8AWg0ARAAAAAAAAAAAIQAgASAFoSIBRAAAAAAAAAAAYgRARAAAAAAAAAAAIAWhIAGjIQALIAkgB6EgAKIgB6AiAb1C////////////AINC//////////f/AFYNACAKIAihIACiIAigIgC9Qv///////////wCDQoCAgICAgID4/wBaDQAgASACoyIBvUL///////////8Ag0L/////////9/8AVg0AIAAgAqMiAL1C////////////AINCgICAgICAgPj/AFoNAEQAAAAAAIBmQCAARAAAAAAAgHZAoqFEGC1EVPshCUCiRAAAAAAAgGZAoxBYEFlE+MFjGtylXECiRAAAAAAAgFbAoCIARCS4kbJFQ1VApEQkuJGyRUNVQCAAvUL///////////8Ag0KAgICAgICA+P8AWBsgAUQAAAAAAIB2QKJEAAAAAACAZsCgIgG9Qv///////////wCDQv/////////3/wBWDQBEJLiRskVDVcClIgC9Qv///////////wCDQoCAgICAgID4/wBaDQAgBCAAOQMIIAQgATkDAEEBIRELIBELHAAgACAAEFc2AnggAEEB/hcCfCAAQQD+FwKAAQufAwMCfAF+An8gAL0iBUKAgICAgP////8Ag0KBgICA8ITl8j9UIgZFBEBEGC1EVPsh6T8gAJmhRAdcFDMmpoE8IAEgAZogBUIAWSIHG6GgIQBEAAAAAAAAAAAhAQsgACAAIAAgAKIiBKIiA0RjVVVVVVXVP6IgBCADIAQgBKIiAyADIAMgAyADRHNTYNvLdfO+okSmkjegiH4UP6CiRAFl8vLYREM/oKJEKANWySJtbT+gokQ31gaE9GSWP6CiRHr+EBEREcE/oCAEIAMgAyADIAMgA0TUer90cCr7PqJE6afwMg+4Ej+gokRoEI0a9yYwP6CiRBWD4P7I21c/oKJEk4Ru6eMmgj+gokT+QbMbuqGrP6CioKIgAaCiIAGgoCIDoCEBIAZFBEBBASACQQF0a7ciBCAAIAMgASABoiABIASgo6GgIgAgAKChIgAgAJogBxsPCyACBHxEAAAAAAAA8L8gAaMiBCAEvUKAgICAcIO/IgQgAyABvUKAgICAcIO/IgEgAKGhoiAEIAGiRAAAAAAAAPA/oKCiIASgBSABCwunAQEBfwJAEDNBCkcNAEHkACEAA0ACQCAARQ0AQYDnACgCAEUNACAAQQFrIQBBhOcAKAIARQ0BCwsQM0EKRw0AA0ACQEGA5wAoAgAiAEH/////B3FB/////wdHDQBBhOcAQQH+HgIAGkGA5wAgAEF//kgCABpBiOcAKAIAGkGA5wBBfxA3IQBBhOcAQQH+JQIAGiAARQ0AIABBG0cNAgsQM0EKRg0ACwsLNAAgACgCAEGBAU4EQEHg4gAoAgAiAARAA0BB4OIAQeTiACAAEB1B4OIAKAIAIgANAAsLCwuWAwEDfyMDIgIoAkhFBEAgAkGA4wA2AkgLAkBBjOcAKAIAIwMoAhhGDQBBgOcAQQBB/////wf+SAIABH9BCgVBjOcAIwMoAhg2AgBBAAtBCkcNAEHkACECA0ACQCACRQ0AQYDnACgCAEUNACACQQFrIQJBhOcAKAIARQ0BCwtBgOcAQQBB/////wf+SAIABH9BCgVBjOcAIwMoAhg2AgBBAAtBCkYEQANAAkBBgOcAKAIAIgJFDQBBhOcAQQH+HgIAGkGA5wAgAiACQYCAgIB4ciIC/kgCABpBiOcAKAIAGkGA5wAgAhA3IQJBhOcAQQH+JQIAGiACRQ0AIAJBG0cNAwtBgOcAQQBB/////wf+SAIABH9BCgVBjOcAIwMoAhg2AgBBAAtBCkYNAAsLQYznACMDKAIYNgIACyABQRAgARshAkGg5wAoAgAiAyEBAn8DQCABQQJ0IgQoArBnRQRAIAAgATYCAEGg5wAgATYCACAEQbDnAGogAjYCAEEADAILIAFBAWpB/wBxIgEgA0cNAAtBBgsQMgvlBAQGewF+AXwBfyABRCS4kbJFQ1VApEQkuJGyRUNVQCABvUL///////////8AgyILQoCAgICAgID4/wBYG0QkuJGyRUNVwKVEAAAAAAAAAAAgC0KAgICAgICA+P8AVBsiAUQ5nVKiRt+RP6IQEyEMIAP9AANQIQUgA/0AAxAhByABRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQFxAYIQECQCAD/QADYCAD/QADQEQAAAAAAAAAACACRAAAAAAAAAAAIAK9Qv///////////wCDQoCAgICAgID4/wBUGyAMRJMQfEX4G4NBoiICoyACRAAAAAAAAAAAYRv9FCII/fIBIAP9AAMAIABEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAAvUL///////////8Ag0KAgICAgICA+P8AVBv9FCIJ/fIBIAFE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKP9FCIKIAP9AAMg/fIB/fAB/fAB/fABIgb9IQC9Qv///////////wCDQv/////////3/wBWIAb9IQG9Qv///////////wCDQoCAgICAgID4/wBacg0AIAP9AANwIAUgCP3yASAHIAn98gEgCiAD/QADMP3yAf3wAf3wAf3wASIF/SEAvUL///////////8Ag0KAgICAgICA+P8AWg0AIAX9IQEiAL1C////////////AINC//////////f/AFYgAESN7bWg98awPmVyDQAgBCAG/QsDACAEIAX9CwMQQQEh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IAIEfCACKAIAKwOYAQVEAAAAAAAAAAALIAVkRQ0BCyAKIABBgAH8CgAAIAAgAUGAAfwKAAAgASAKQYAB/AoAAAsgCkGAAWokAAu5CwMHfAJ/AX4CQCACAnwCQCAAKAIALQAAQQFHDQAgACgCBCILKAJ4KAIQIgpFDQAgASsDCCIDRCS4kbJFQ1VApEQkuJGyRUNVQCADvUL///////////8AgyIMQoCAgICAgID4/wBYG0QkuJGyRUNVwKVEAAAAAAAAAAAgDEKAgICAgICA+P8AVBsiBEQ5nVKiRt+RP6IQEyEGIAErAxAhAyAKKwNYIQcgASsDACEFIAorAxghCCAERCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQFxAYIQQgCisDYCAKKwNARAAAAAAAAAAAIANEAAAAAAAAAAAgA71C////////////AINCgICAgICAgPj/AFQbIAZEkxB8Rfgbg0GiIgOjIANEAAAAAAAAAABhGyIDoiAKKwMAIAVEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAFvUL///////////8Ag0KAgICAgICA+P8AVBsiBaIgCisDICAERPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjIgSioKCgIga9Qv///////////wCDQv/////////3/wBWDQAgCisDaCAKKwNIIAOiIAorAwggBaIgCisDKCAEoqCgoCIJvUL///////////8Ag0KAgICAgICA+P8AWg0AIAorA3AgCisDUCADoiAKKwMQIAWiIAorAzAgBKKgoKC9Qv///////////wCDQoCAgICAgID4/wBaDQAgCisDeCAHIAOiIAggBaIgBCAKKwM4oqCgoCIDvUL///////////8Ag0L/////////9/8AViADRI3ttaD3xrA+ZXINACAGRAAAAAAAAPA/IAOjIgOiRAAAAAAAAPA/oEQAAAAAAADgP6IgCysDgAGiIgW9Qv///////////wCDQv/////////3/wBWDQBEAAAAAAAA8D8gCSADoqFEAAAAAAAA4D+iIAsrA4gBoiIEvUL///////////8Ag0KAgICAgICA+P8AWg0AIAsrA5ABIgO9Qv///////////wCDIgxCAX1C/v///////wdWIAxCgICAgICAgAh9Qv/////////v/wBWcQ0AIAIgBSADozkDACAEIAOjDAELQQAhCiAAKAIILQAAQQFHDQEgACgCBCgCeCILKAIUIgBFDQEgCysDACIDRAAAAAAAAAAAZQ0BIAErAwAhBSAAKwMAIQYgASsDCCIERCS4kbJFQ1VApEQkuJGyRUNVQCAEvUL///////////8AgyIMQoCAgICAgID4/wBYG0QkuJGyRUNVwKVEJLiRskVDVUCkRCS4kbJFQ1XApUQ5nVKiRt+RP6JEAAAAAAAA4D+iRBgtRFT7Iek/oEQYLURU+yHpPyAMQoCAgICAgID4/wBUGxAXEBghByAAKwNgIAArA0AgASsDECIERAAAAAAAAAAAIAS9Qv///////////wCDQoCAgICAgID4/wBUGyIEoiAGIAMgBUQAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/IAW9Qv///////////wCDQoCAgICAgID4/wBUG6IiBaIgACsDICADIAdE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKOiIgOioKCgIga9Qv///////////wCDQv/////////3/wBWDQEgACsDaCAAKwNIIASiIAArAwggBaIgAyAAKwMooqCgoCIHvUL///////////8Ag0L/////////9/8AVg0BIAArA3ggACsDWCAEoiAAKwMYIAWiIAMgACsDOKKgoKAiA70iDEIBfUL+////////B1YgDEIAUyAMQv///////////wCDQoCAgICAgIAIfUL/////////7/8AVnJxDQEgAiAGIAOjOQMAIAcgA6MLOQMIQQEhCgsgCgvLDAMDfwt8AX4jAEHwAGsiAiQAIAEoAnghAyACAn9BACABLQB8QQFHDQAaQQAgA0UNABpBACABKwOAAUQAAAAAAAAAAGRFDQAaQQAgASsDiAFEAAAAAAAAAABkRQ0AGkEAIAErA5ABIgdEAAAAAAAAAABhDQAaIAe9Qv///////////wCDQoCAgICAgID4/wBUCzoAbyACIAEtAH0gA0EAR3E6AG4gAiABNgJkIAIgAkHuAGo2AmggAiACQe8AajYCYCABKwM4IQsgASsDMCENRAAAAAAAAPA/IQkCQAJAIAErAxgiCEQAAAAAAAAAAGUNACABKwMgIgdEAAAAAAAAAABlDQAgASsDKCIFRAAAAAAAAAAAZQ0AIAcgBSANoiALoiIFoiIHRAAAAAAAAAAAIAe9Qv///////////wCDQoCAgICAgID4/wBUGyEHIAggBaIiCEQAAAAAAAAAACAIvUL///////////8Ag0KAgICAgICA+P8AVBshCCABKwNgIgW9IhBCAX1C/v///////wdWIBBCAFMgEEL///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0BIAErA3AiCkQAAAAAAAAAAGQiAyABKwNoIgZEAAAAAAAAAABkckUNASAHIAggByAIZBsiDEQAAAAAAAAAAGRFDQEgBSAMoiIFvSIQQgF9Qv7///////8HViAQQgBTIBBC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENASAKIAWjIAYgBaNEAAAAAAAA8D8gBSAGYxtEAAAAAAAA8D8gBkQAAAAAAAAAAGQbIgkgBSAJoiAKZBsgCSADGyIJRAAAAAAAAPA/YQRARAAAAAAAAPA/IQkMAgsgByAJoiEHIAggCaIhCAwBC0QAAAAAAAAAACEHRAAAAAAAAAAAIQgLAnxEAAAAAAAAAAAgB0QAAAAAAADgP6IiBUQAAAAAAAAAAGUNABpEAAAAAAAAAAAhBkQAAAAAAAAAACAIRAAAAAAAAOA/oiIPRAAAAAAAAAAAZQ0AGiABKwNQIQogASsDSCEMIAUgASgCWCIDBHwgAysDACEGIAMrAwgFRAAAAAAAAAAAC6IhBSAPIAaiIgZEAAAAAAAAAABhBEBEAAAAAAAAAAAgBUQAAAAAAAAAAGENARoLIAaaIAyiIAUgCqKhIQ4gDCAFoiAGIAqioQshCgJ8IAEoAlwiA0UEQEQAAAAAAAAAACEFRAAAAAAAAAAADAELRAAAAAAAAAAAIQVEAAAAAAAAAAAgCSALIA0gAysDAKKioiIGRAAAAAAAAAAAYQ0AGiAGIAMrAwhEOZ1SokbfkT+iIgsQE6IhBSAGIAsQIKILIQYgASsDACENIAErAwghCyACIAErAxAiDDkDWCACIAsgDiAFoCIPRAAAAECmVFhBo0T4wWMa3KVMQKKgOQNQIAIgDSAKIAagIgogC0Q5nVKiRt+RP6IQEyIORI3ttaD3xrA+pUSN7bWg98awPiAOvUL///////////8A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AQVEAAAAAAAAAAALIARkRQ0BCwsgACAISQ0ACwsgAEGAAWsiCCAMRwRAIAwgCEGAAfwKAAALIAggCTYCACAAQfgAayAGOQMAIABB/ABrIBQ2AgAgAEHwAGsgDkHwAPwKAAAgCyANTQRAIAwgCBBaIQogACABEFoEQCAIIQEgDCEAIApFDQUMAwsgCg0BCwsgDCAIIAIgEBBfQQAhAwwBCwsLIA5B8AFqJAALsRoECnwMfwJ+CXsjAEHQAWsiDiQAIAMgAygCACIPNgIEAkACQCAAKAIAIhVFDQAgACgCBCIURQ0AIAAoAggiEkUNACABIBUoAgQgFSgCAGtB0AFtIhBPIAEgAk9yDQACQCAQIAIgAiAQSxsiGCABayICIAMoAgggD2tBB3VNDQAgAkGAgIAQTw0CIAMgAkEHdCIQEBIiAjYCBCADIAI2AgAgAyACIBBqNgIIIA9FDQAgDxARCyABIBhPDQAgDkH4AGohGQNAAkAgFSgCACABQdABbGoiAigCACIQRQ0AIAIoAggiD0UNACAPLQAYQQFHDQAgAi0AWEEBRw0AIBIrAwghByAUKAIQIQ8gFCsDCCEGAkAgAi0AgAFBAUYEQCACKwN4IgS9IhpCAX1C/////////wdUIBpC////////////AINCgICAgICAgAh9QoCAgICAgIDw/wBUIBpCAFlxcg0BCyACKwMYIgREOZ1SokbfkT+iEBNEkxB8Rfgbg0GiIAdEAAAAAAAAgECioyIIvSIaQgF9Qv7///////8HViAaQgBTIBpC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENAUQAAAAAAADwPyEJAkAgD0UgBkQAAAAAAAAAAGVyDQACfCACLQBAQQFGBEAgAisDOCEEIAIrAyghByACKwMwDAELIAREJLiRskVDVUCkRCS4kbJFQ1VAIAS9Qv///////////wCDIhpCgICAgICAgPj/AFgbRCS4kbJFQ1XApUQAAAAAAAAAACAaQoCAgICAgID4/wBUGyIKRDmdUqJG35E/ohATIQREAAAAAAAAAAAgAisDICIHRAAAAAAAAAAAIAe9Qv///////////wCDQoCAgICAgID4/wBUGyAERJMQfEX4G4NBoiIEoyAERAAAAAAAAAAAYRshBCACKwMQIgdEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAHvUL///////////8Ag0KAgICAgICA+P8AVBshByAKRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQFxAYRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjCyEKIA8rA3ggDysDWCAEoiAPKwMYIAeiIAogDysDOKKgoKAiBL0iGkIBfUL+////////B1YgGkIAUyAaQv///////////wCDQoCAgICAgIAIfUL/////////7/8AVnJxDQAgBiAEoyIERAAAAAAAAPA/IAQgBL0iGkIAUxtEAAAAAAAA8D8gGkL///////////8Ag0KAgICAgICACH1CgICAgICAgPD/AFQbIBpCAX1C/////////wdUGyEJC0QAAAAAAADwPyAIoyAJoiIEvSIaQgF9Qv7///////8HViAaQgBTIBpC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENASACQQE6AIABIAIgBDkDeCACIAk5A3AgAiAIOQNoCyACQaABQcgAIAItALABIg8baisDACEGIAJBqAFB0AAgDxtqKwMAIQcgDkIANwPIASAQKwMgIQggDkEAOgBYIA5CADcDUCAO/QwAAAAAAAAAAAAAAAAAAAAA/QsDYCAOQoCAgICAgID4PzcDcCAZQQBB0AD8CwAgDiACNgJIAkAgCBA5RQRAIBQoAhAiE0UNAkQAAAAAAAAAACEIRAAAAAAAAPA/IQcgAigCACIPKwMoIgZEAAAAAAAA8D8gBkQAAAAAAAAAAGIbIQkgDysDSCEMIA9BQGsgEisDWCEKAkAgAigCCCIRKwMIIgVEAAAAAAAAAABlBEBEAAAAAAAAAAAhBgwBCyARKwMQIgZEAAAAAAAAAABlBEBEAAAAAAAAAAAhBgwBCyASKwMoIgtEAAAAAAAAAABlBEBEAAAAAAAAAAAhBgwBCyAGIAkgC6IgCqIiCKIiBkQAAAAAAAAAACAGvUL///////////8Ag0KAgICAgICA+P8AVBshBiAFIAiiIghEAAAAAAAAAAAgCL1C////////////AINCgICAgICAgPj/AFQbIQggBL0iGkIBfUL+////////B1YgGkIAUyAaQv///////////wCDQoCAgICA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AOA/oiIbOQMwIAIgHEQAAAAAAADgP6IiIDkDKCACIBdEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAXvUL///////////8Ag0KAgICAgICA+P8AVBsiKDkDACACRAAAAAAAAAAAIBhEAAAAAAAAAAAgGL1C////////////AINCgICAgICAgPj/AFQbIBVEJLiRskVDVUCkRCS4kbJFQ1VAIBW9Qv///////////wCDIl1CgICAgICAgPj/AFgbRCS4kbJFQ1XApSIYRAAAAAAAAAAAIF1CgICAgICAgPj/AFQiChsiKUQ5nVKiRt+RP6IQE0STEHxF+BuDQaIiKqMgKkQAAAAAAAAAAGEbOQMQIAIgF0QAAAAAAADwPyAVRDmdUqJG35E/ohATIhdEje21oPfGsD6lRI3ttaD3xrA+IBe9Qv///////////wCDQoCAgICAgID4/wBYG0QAAABAplRYQaKjRPjBYxrcpUxAoqAiF0QAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/IBe9Qv///////////wCDQoCAgICAgID4/wBUGyAooTkDGCACIClEJLiRskVDVUCkRCS4kbJFQ1XApUQ5nVKiRt+RP6JEAAAAAAAA4D+iRBgtRFT7Iek/oBAXEBhE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKM5AwggGEQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gRBgtRFT7Iek/IAobEBcQGCEXIAIgFUQecBggy9biPqAiFUQkuJGyRUNVQKREJLiRskVDVUAgFb1C////////////AINCgICAgICAgPj/AFgbRCS4kbJFQ1XApUQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gRBgtRFT7Iek/IBW9Qv///////////wCDQoCAgICAgID4/wBUGxAXEBhE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKMgF0T4wWMa3KVMwKJEAAAAAACAZkCgRAAAAAAAgHZAo6E5AyAgCP0AAzAhOSACIBk5A2AgAiAWOQNYIAIgOf0LA0ggBisDiAEhFSACICE5A3AgAiAVOQNoIAIgA/0AA5AG/QsDeCACIANBqAhqIgYpAwA3A4gBIAIgBv0AAwj9CwOQASAD/QADqAYhOSADKQOgBiFdIAIgJzkDuAEgAiBdNwOgASACIDn9CwOoASAGKwMIIRcgBisDACEYAkAgHEQAAAAAAAAAAGUgH0QAAAAAAAAAAGVyBEAgCCsDMCIWIRkgCCsDOCIVIRsgFiIdIRwgFSIaIR8MAQsgIP0U/QwAAAAAAADwvwAAAAAAAPA//fIBICAgGqL9FP3xASI5IBb9FCI6/fIBIjsgG/0U/e0BIBsgHaIiFf0U/fEBIj0gGf0UIj798gH98AEgCP0AAzAiQCA5/Q0ICQoLDA0ODwgJCgsMDQ4PIkH98AEiQv0hASEfIDkgPv3yASI5ID0gOv3yAf3xASBAIDn9DQABAgMEBQYHAAECAwQFBgciOv3wASI9/SEBIRwgQv0hACEaID39IQAhHSA7IBsgFaEiFSAZov0U/fABIEH98AEiO/0hASEbIDkgFSAWov0U/fEBIDr98AEiOf0hASEZIDv9IQAhFSA5/SEAIRYLIAJBADYCoAQgAiAfOQOoAiACIBw5A6ACIAIgGjkDiAIgAiAdOQOAAiACIBs5A+gBIAIgGTkD4AEgAiAVOQPIASACIBY5A8ABIAIgFyAfRAAAAECmVFhBo0T4wWMa3KVMQKKgOQO4AiACIBcgGkQAAABAplRYQaNE+MFjGtylTECioDkDmAIgAiAXIBtEAAAAQKZUWEGjRPjBYxrcpUxAoqA5A/gBIAIgFyAVRAAAAECmVFhBo0T4wWMa3KVMQKKgOQPYASACIBggHESN7bWg98awPiAXRDmdUqJG35E/ohATIhUgFUSN7bWg98awPmMbRAAAAECmVFhBoiIVo0T4wWMa3KVMQKKgOQOwAiACIBggHSAVo0T4wWMa3KVMQKKgOQOQAiACIBggGSAVo0T4wWMa3KVMQKKgOQPwASACIBggFiAVo0T4wWMa3KVMQKKgOQPQAUEAIQYgA0EwakEAQYAB/AsAIANBADYCLCAD/QwAAAAAAAAAAAAAAAAAAAAA/QsDGCAD/QwAAAAAAAAAAAAAAAAAAAAA/QsDCCAevUL///////////8AgyJdUCBdQoCAgICAgID4/wBRciBdQoCAgICAgID4/wBWciEKRAAAAAAAAPA/RAAAAAAAAAAAIA5BAXEiCBshGSAlICQgBCADQQhqEEYhDSADKwO4CCIVRAAAAAAAAAAAIBW9Qv///////////wCDQoCAgICAgID4/wBUGyEbIAMrA7AIIhxEOZ1SokbfkT+iEBMiFUSN7bWg98awPqVEje21oPfGsD4gFb1C////////////AINCgICAgICAgPj/AFgbRAAAAECmVFhBoiEfIAQrAwAhICAEKwN4ISQgBCsDWCElIAQrAzghJiAEKwMYIScgBCsDcCEoIAQrA1AhKSAEKwMwISogBCsDECEvIAQrA2ghMCAEKwNIITEgBCsDKCEyIAQrAwghMyAEKwNgITQgBCsDQCE1IAQrAyAhNiAFKwOgASE3IANBgAlqIQIgAysDqAghOANAIDQgNUQAAAAAAAAAACAbIBwgCyAGKALgDCIEQQR0IgVqIgwrAwhEAAAAQKZUWEGjRPjBYxrcpUxAoqAiFUQkuJGyRUNVQKREJLiRskVDVUAgFb1C////////////AIMiXUKAgICAgICA+P8AWBtEJLiRskVDVcClRAAAAAAAAAAAIF1CgICAgICAgPj/AFQbIhZEOZ1SokbfkT+iEBNEkxB8Rfgbg0GiIhWjIBVEAAAAAAAAAABhGyIVoiAgIDggDCsDACAfo0T4wWMa3KVMQKKgIhpEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAavUL///////////8Ag0KAgICAgICA+P8AVBsiGqIgNiAWRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQFxAYRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjIh2ioKCgIhe9Qv///////////wCDQv/////////3/wBWDQMgMCAxIBWiIDMgGqIgMiAdoqCgoCIYvUL///////////8Ag0KAgICAgICA+P8AWg0DICggKSAVoiAvIBqiICogHaKgoKAiFr1C////////////AINCgICAgICAgPj/AFoNAyAkICUgFaIgJyAaoiAmIB2ioKCgIhq9Qv///////////wCDQv/////////3/wBWIBpEje21oPfGsD5lcg0DIBYhFSAhRAAAAAAAAAAAYgRAIDcgGqEiHSAhIBqiIBWgIhUgFSAdYxshFQsgA0EsaiAEaiIMLQAARQRAIANBMGogBEEFdGoiBCAaOQMYIAQgFTkDECAEIBg5AwggBCAXOQMAIAxBAToAACAKICIgF0QAAAAAAADwPyAaoyIVokQAAAAAAADwP6BEAAAAAAAA4D+ioiIdvUL///////////8Ag0L/////////9/8AViAjRAAAAAAAAPA/IBggFaKhRAAAAAAAAOA/oqIiFb1C////////////AINC//////////f/AFZycg0EIANBwAhqIAVqIB0gHqP9FCAVIB6j/SIB/QsEAAsCeyAIRQRAIBb9FCAa/SIBITkgF/0UIBj9IgEMAQv9DAAAAAAAAAAAAAAAAAAA8D8hOSAF/QAD+AwLITogAiA5/QsAECACIDr9CwAAIAIgBf0AA7gNID/98gEgPP3wAf0LACAgAkEwaiECIAZBBGoiBkEYRw0AC0QAAAAAAAAAACEbRAAAAAAAAPA/ISBEAAAAAAAAAAAhHUQAAAAAAAAAACEaRAAAAAAAAAAAIRVEAAAAAAAAAAAhFkQAAAAAAAAAACEiRAAAAAAAAAAAISNEAAAAAAAAAAAhFwJ7An8gAygCLP0RIDz9DQAAAAABAAAAAgAAAAMAAABBH/2rAUEf/awB/aMBIA5xIA1xQQFGBEAgAyAD/QADGP0LA4AEIAMgA/0AAwj9CwPwAyADQQQ2AtAFIAMgA/0ABFAgA/0ABDAiOf3xAf0MAAAAAAAA4D8AAAAAAADgP/3yAf0LBJAEIAMgA/0ABGAgA/0ABEAiOv3xAf0MAAAAAAAA4D8AAAAAAADgP/3yAf0LBKAEIAMgOSAD/QAEcP3xAf0MAAAAAAAA4D8AAAAAAADgP/3yAf0LBLAEIAMgOiAD/QAEgAH98QH9DAAAAAAAAOA/AAAAAAAA4D/98gH9CwTABCARIANBMGpBgAH8CgAARAAAAAAAAPA/IR5BBAwBCyAIRQRAQQAhBkQAAAAAAAAAACEeRAAAAAAAAAAAISFEAAAAAAAAAAAhGEQAAAAAAAAAACEcRAAAAAAAAAAAIR/9DAAAAAAAAAAAAAAAAAAAAAAiPCE5/QwAAAAAAAAAAAAAAAAAAAAAITr9DAAAAAAAAAAAAAAAAAAAAAAhP/0MAAAAAAAAAAAAAAAAAAAAACE7/QwAAAAAAAAAAAAAAAAAAAAAIT39DAAAAAAAAAAAAAAAAAAAAAAhPv0MAAAAAAAAAAAAAAAAAAAAACFA/QwAAAAAAAAAAAAAAAAAAAAAIUH9DAAAAAAAAAAAAAAAAAAAAAAhQv0MAAAAAAAAAAAAAAAAAAAAACFD/QwAAAAAAAAAAAAAAAAAAAAAIUT9DAAAAAAAAAAAAAAAAAAAAAAhRf0MAAAAAAAAAAAAAAAAAAAAACFG/QwAAAAAAAAAAAAAAAAAAAAAIUf9DAAAAAAAAAAAAAAAAAAAAAAhSP0MAAAAAAAAAAAAAAAAAAAAACFJ/QwAAAAAAAAAAAAAAAAAAAAAIUr9DAAAAAAAAAAAAAAAAAAAAAAhS/0MAAAAAAAAAAAAAAAAAAAAACFM/QwAAAAAAAAAAAAAAAAAAAAAIU39DAAAAAAAAAAAAAAAAAAAAAAhTv0MAAAAAAAAAAAAAAAAAAAAACFP/QwAAAAAAAAAAAAAAAAAAAAAIVD9DAAAAAAAAAAAAAAAAAAAAAAhUf0MAAAAAAAAAAAAAAAAAAAAACFS/QwAAAAAAAAAAAAAAAAAAAAAIVP9DAAAAAAAAAAAAAAAAAAAAAAhVP0MAAAAAAAAAAAAAAAAAAAAACFV/QwAAAAAAAAAAAAAAAAAAAAAIVb9DAAAAAAAAAAAAAAAAAAAAAAhV/0MAAAAAAAAAAAAAAAAAAAAAAwCC0QAAAAAAAAAACEeIAMoAtAFCyECIAP9AATgBP0MAAAAAAAAAAAAAAAAAADwPyACGyFIIAP9AATQBP0MAAAAAAAAAAAAAAAAAAAAACACGyFJIAP9AATABf0MAAAAAAAAAAAAAAAAAADwPyACQQNLIgUbIUIgA/0ABLAF/QwAAAAAAAAAAAAAAAAAAAAAIAUbIUMgA/0ABKAF/QwAAAAAAAAAAAAAAAAAAPA/IAJBAksiBRshRCAD/QAEkAX9DAAAAAAAAAAAAAAAAAAAAAAgBRshRUEBIQYgA/0ABIAF/QwAAAAAAAAAAAAAAAAAAPA/IAJBAUsiAhshRiAD/QAE8AT9DAAAAAAAAAAAAAAAAAAAAAAgAhshRyAD/QADmAIgIf0iASFRIAP9AATgAyE8IAP9AATQAyE5IAP9AATAAyE6IAP9AASwAyE/IAP9AASgAyE7IAP9AASAAyE9IAP9AATwAiE+IAMrA+gCIR8gAysD4AIhHCAD/QAE0AIhQCADKwPIAiEYIAP9AAO4AiFBIAP9AATABCFKIAP9AASwBCFLIAP9AASgBCFMIAP9AASQBCFNIAP9AASABCFOIAP9AATwAyFPIAP9AAOoAiFQIAP9AAOIAiFSIAP9AAP4ASFTIAP9AAPoASFUIAP9AAPYASFVIAP9AAPIASFWIAMrA8ABISEgA/0ABLABIVcgA/0ABJADCwwBC0QAAAAAAAAAACEXIAUrA1ghIkQAAAAAAADwPyEYAkAgBSsDKCIVRAAAAAAAAAAAZQRARAAAAAAAAAAAIRYMAQsgICAhIBwgFaIgIqKiIhWiIhZEAAAAAAAAAAAgFr1C////////////AINCgICAgICAgPj/AFQbIhcgGyAVoiIVRAAAAAAAAAAAIBW9Qv///////////wCDQoCAgICAgID4/wBUGyIWIBYgF2MbIhW9Il1CAX1C/v///////wdWIF1CAFMgXUL///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0AIAUrAzghGyAFKwMwIiBEAAAAAAAAAABkRSAVICBjRXJFBEAgFSAgIBWjIhiiIRUgFyAYoiEXIBYgGKIhFgsgG0QAAAAAAAAAAGRFIBUgG2RFcg0AIBggGyAVoyIVoiEYIBcgFaIhFyAWIBWiIRYLIAYrA5gBISAgBisDkAEhGyAZICNEOZ1SokbfkT+iIhUQEyAhIB8gHKIgIqKiIBiiIhmioSEiIB4gFRAgIBmioCEjAnsgF0QAAAAAAADgP6IiFUQAAAAAAAAAAGUgFkQAAAAAAADgP6IiFkQAAAAAAAAAAGVyBEAgI/0UICL9IgEiOiE7IDoiOQwBCyAj/RQiOSAg/RQiOiAW/RT9DAAAAAAAAPC/AAAAAAAA8D/98gEgGiAWov0U/fEBIjv98gEiPSAb/RQiPiAV/RT97QEgHSAVoiIZ/RT98QEiQP3yAf3xAf3wASJBICL9FCJCIDogQP3yASA+IDv98gEiPv3wAf3xASI7/Q0ICQoLDA0ODxgZGhscHR4fITogQSA7/Q0AAQIDBAUGBxAREhMUFRYXITsgOSA9IBsgFSAZoSIZov0U/fEB/fABIj0gQiAgIBmi/RQgPv3wAf3xASI+/Q0ICQoLDA0ODxgZGhscHR4fITkgPSA+/Q0AAQIDBAUGBxAREhMUFRYXCyE9IAP9DAAAAAAAAAAAAAAAAAAA8D/9CwTwCSAD/QwAAAAAAAAAAAAAAAAAAPA//QsEwAkgA/0MAAAAAAAAAAAAAAAAAADwP/0LBJAJIAP9DAAAAAAAAPC/AAAAAAAA8L8gOyANQQFxIgIb/QsE4AkgA/0MAAAAAAAA8D8AAAAAAADwPyA5IAIb/QsEsAkgA/0MAAAAAAAA8L8AAAAAAADwPyA9IAIb/QsEgAlEAAAAAAAAAAAhISADIDz9IQAiGSA//SEAIheg/RQiPiA//SEBIhhEAAAAAAAAAACiIDz9IQEiHqAiHP0iASJA/QsE0AkgAyAXRAAAAAAAAAAAoiAZoP0UIjwgHiAYoCIZ/SIBIkH9CwSACiADIDwgHP0iAf0LBKAJIDshPCA5IT9EAAAAAAAAAAAhFyAD/QwAAAAAAAAAAAAAAAAAAPA//QsEgAsgAyACBHtEAAAAAAAA8D8hF/0MAAAAAAAA8D8AAAAAAADwPyE//QwAAAAAAADwvwAAAAAAAPC/ITz9DAAAAAAAAPA/AAAAAAAA8L8FIDoL/QsE8AogAyBA/QsE4AogA/0MAAAAAAAAAAAAAAAAAADwP/0LBNAKIAMgP/0LBMAKIAMgQf0LBLAKIAP9DAAAAAAAAAAAAAAAAAAA8D/9CwSgCiADIDz9CwSQCiADIDr9CwTwCCADIDv9CwTgCCADIDn9CwTQCCADID39CwTACCADID4gGf0iAf0LBJALQQAhBkQAAAAAAAAAACEYRAAAAAAAAAAAIRxEAAAAAAAAAAAhH/0MAAAAAAAAAAAAAAAAAAAAACI8ITn9DAAAAAAAAAAAAAAAAAAAAAAhOv0MAAAAAAAAAAAAAAAAAAAAACE//QwAAAAAAAAAAAAAAAAAAAAAITv9DAAAAAAAAAAAAAAAAAAAAAAhPf0MAAAAAAAAAAAAAAAAAAAAACE+/QwAAAAAAAAAAAAAAAAAAAAAIUD9DAAAAAAAAAAAAAAAAAAAAAAhQf0MAAAAAAAAAAAAAAAAAAAAACFC/QwAAAAAAAAAAAAAAAAAAAAAIUP9DAAAAAAAAAAAAAAAAAAAAAAhRP0MAAAAAAAAAAAAAAAAAAAAACFF/QwAAAAAAAAAAAAAAAAAAAAAIUb9DAAAAAAAAAAAAAAAAAAAAAAhR/0MAAAAAAAAAAAAAAAAAAAAACFI/QwAAAAAAAAAAAAAAAAAAAAAIUn9DAAAAAAAAAAAAAAAAAAAAAAhSv0MAAAAAAAAAAAAAAAAAAAAACFL/QwAAAAAAAAAAAAAAAAAAAAAIUz9DAAAAAAAAAAAAAAAAAAAAAAhTf0MAAAAAAAAAAAAAAAAAAAAACFO/QwAAAAAAAAAAAAAAAAAAAAAIU/9DAAAAAAAAAAAAAAAAAAAAAAhUP0MAAAAAAAAAAAAAAAAAAAAACFR/QwAAAAAAAAAAAAAAAAAAAAAIVL9DAAAAAAAAAAAAAAAAAAAAAAhU/0MAAAAAAAAAAAAAAAAAAAAACFU/QwAAAAAAAAAAAAAAAAAAAAAIVX9DAAAAAAAAAAAAAAAAAAAAAAhVv0MAAAAAAAAAAAAAAAAAAAAACFXRAAAAAAAAAAAIR5EAAAAAAAAAAAhGf0MAAAAAAAAAAAAAAAAAAAAAAshWCAHKwMAISQgECABQZgIbGoiAiAUuDkDECACIAm4OQMIIAIgJDkDACAHKwMwISQgAiAgOQOQASACIBs5A4gBIAIgHTkDgAEgAiAaOQN4IAIgFTkDcCACIBY5A2ggAiAiOQNgIAIgIzkDWCACIBc5A1AgAiAeOQNIIAIgGTkDQCACICs5AzggAiAsOQMwIAIgLTkDKCACIC45AyAgAiAkOQMYIAJBmAFqIANBgAlqQaAC/AoAACAD/QAEwAghWSAD/QAE0AghWiAD/QAE4AghWyAD/QAE8AghXCACIDz9CwOICCACIDn9CwP4ByACIDr9CwPoByACID/9CwPYByACIDv9CwPIByACIFj9CwO4ByACID39CwOoByACID79CwOYByACIB85A5AHIAIgHDkDiAcgAiBA/QsD+AYgAiAYOQPwBiACIEH9CwPgBiACIEL9CwPQBiACIEP9CwPABiACIET9CwOwBiACIEX9CwOgBiACIEb9CwOQBiACIEf9CwOABiACIEj9CwPwBSACIEn9CwPgBSACIEr9CwPQBSACIEv9CwPABSACIEz9CwOwBSACIE39CwOgBSACIE79CwOQBSACIE/9CwOABSACIFD9CwPwBCACIFH9CwPgBCACIFL9CwPQBCACIFP9CwPABCACIFT9CwOwBCACIFX9CwOgBCACIFb9CwOQBCACICE5A4gEIAIgV/0LA/gDIAIgXP0LA+gDIAIgW/0LA9gDIAIgWv0LA8gDIAIgWf0LA7gDIAAoAiQoAgAgAWpBAToAACAAKAIoKAIAIAFqQQE6AAAgBkUNACAAKAIsKAIAIAFqQQE6AAALIAFBAWoiASAPSQ0ACwsgA0HAC2okAAsLACAAEGMaIAAQEQsvAQF/IABB/N0ANgIAIAAoAgRBDGsiAUEIakF//h4CAEEBa0EASARAIAEQEQsgAAuaAQAgAEEBOgA1AkAgAiAAKAIERw0AIABBAToANAJAIAAoAhAiAkUEQCAAQQE2AiQgACADNgIYIAAgATYCECADQQFHDQIgACgCMEEBRg0BDAILIAEgAkYEQCAAKAIYIgJBAkYEQCAAIAM2AhggAyECCyAAKAIwQQFHDQIgAkEBRg0BDAILIAAgACgCJEEBajYCJAsgAEEBOgA2Cwt2AQF/IAAoAiQiA0UEQCAAIAI2AhggACABNgIQIABBATYCJCAAIAAoAjg2AhQPCwJAAkAgACgCFCAAKAI4Rw0AIAAoAhAgAUcNACAAKAIYQQJHDQEgACACNgIYDwsgAEEBOgA2IABBAjYCGCAAIANBAWo2AiQLC5wHAwh8An8BfgJAIARBAEwgBkEATHINACACRAAAAAAAAAAAIAK9Qv///////////wCDQoCAgICAgID4/wBUGyEQIAFEOZ1SokbfkT+iEBMiAkSN7bWg98awPqVEje21oPfGsD4gAr1C////////////AINCgICAgICAgPj/AFgbRAAAAECmVFhBoiERRAAAAAAAAPD/IQIDQCAEIAUgFUECdGooAgAiFEsEQCABIAMgFEEEdGoiFCsDCEQAAABAplRYQaNE+MFjGtylTECioCIMRCS4kbJFQ1VApEQkuJGyRUNVQCAMvUL///////////8AgyIWQoCAgICAgID4/wBYG0QkuJGyRUNVwKVEAAAAAAAAAAAgFkKAgICAgICA+P8AVBsiDEQ5nVKiRt+RP6IQEyENIAcrA1ghEiAUKwMAIQ4gBysDGCETIAxEJLiRskVDVUCkRCS4kbJFQ1XApUQ5nVKiRt+RP6JEAAAAAAAA4D+iRBgtRFT7Iek/oBAXEBghD0EAIRQgBysDYCAHKwNARAAAAAAAAAAAIBAgDUSTEHxF+BuDQaIiDKMgDEQAAAAAAAAAAGEbIgyiIAcrAwAgACAOIBGjRPjBYxrcpUxAoqAiDUQAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/IA29Qv///////////wCDQoCAgICAgID4/wBUGyINoiAHKwMgIA9E+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKMiDqKgoKC9Qv///////////wCDQv/////////3/wBWDQIgBysDaCAHKwNIIAyiIAcrAwggDaIgBysDKCAOoqCgoL1C////////////AINCgICAgICAgPj/AFoNAiAHKwNwIAcrA1AgDKIgBysDECANoiAHKwMwIA6ioKCgIg+9Qv///////////wCDQoCAgICAgID4/wBaDQIgBysDeCASIAyiIBMgDaIgBysDOCAOoqCgoCIMvUL///////////8Ag0L/////////9/8AViAMRI3ttaD3xrA+ZXINAiAIBHwgCiAMoSINIAkgDKIgD6AiDiANIA5kGwUgDwsgDKMiDL1C////////////AINC//////////f/AFYNAiAMmiIMIAIgAiAMYxshAgsgFUEBaiIVIAZHDQALQQAhFCACvUL///////////8Ag0L/////////9/8AVg0AIAsgAjkDAEEBIRQLIBQLDgAgAEHQAGoQGkHQAGoLKgEBfyMAQRBrIgEkAEHk9wAQFARAIAEgACgCADYCABAZAAsgAUEQaiQACzMBAX8jAEEQayICJAAgACABNgIAQeT3ABAVBEAgAiAAKAIANgIAEBkACyACQRBqJAAgAAsEACAAC9ADAQZ/AkBB4PcA/hIAAEEBcQ0AIwBBIGsiASQAIAFBCGoiAEHg9wA2AgAgAEEAOgAMIABBADYCCCAAQeH3ADYCBCAAQQA6ABQgACgCAP4SAAAEf0EABQJ/IwBBEGsiAyQAIANBDGpB8gkQaSEFAkACQCAAQQRqIgAtAAhFDQAgACgCAC0AAEECcUUNACAAKAIEKAIAIABBDGooAgBGDQELA0AgACgCACIELQAAIgJBAnEEQCAEIAJBBHI6AABB/PcAQeT3ABBSDAELCyACQQFGIgJFBEAgAC0ACEEBRgRAIAAoAgQgAEEMaigCADYCAAsgBEECOgAACyAFEGggA0EQaiQAIAIMAQsQGQALQQFzCyABQSBqJABFDQBB2PcAQRUQRQRAEBkAC0Hc9wBB2PcANgIAIwBBIGsiAyQAIANBCGoiAEHg9wA2AgAgAEEAOgAMIABBADYCCCAAQeH3ADYCBCAAQQA6ABQgACgCAEEB/hkAACMAQRBrIgEkACABQQxqQd4JEGkgACgCBCIALQAAIQIgAEEBOgAAEGgCQCACQQRxRQ0AQfz3ABBvRQ0AIAFB3gk2AgAQGQALIAFBEGokACADQSBqJAALQdz3ACgCAAuEAwEGfwJAIAAoAgAiBARAEAIjAEEQayIDJAACQCAEIAQoAgBHBEBBxwAhAQwBCyAEKAIgQQNGIAQjA0dyRQRAQRAhAQwBCyMDIQIgA0EMagRAIAMgAi0AKDYCDAsgAkEBOgAoIAMoAgxFBEAjA0EAOgAoCwJAAkACQCAEQSBqIgYoAgAiAgRAA0AgAUEcRiABQckARnINAiACQQNOBEAgAygCDCIBQQJNBH8jAyABOgAoQQAFQRwLGkEcIQEMBgtBASEFIAYgAhAuIQEgBigCACICDQALDAILIAMoAgwiAUECTQR/IwMgAToAKEEABUEcCxpBASEFDAILQQAhBQsgAygCDCICQQJNBH8jAyACOgAoQQAFQRwLGiABQRxGIAFByQBGcg0BCyMAQRBrQQA2AgwCQEHs4gAoAgAiAUUNAEHs4gBB9OIAIAEQHUH04gAoAgBFDQBB7OIAQQEQFgtBACEBIAVFDQAgBBABCyADQRBqJAAgAUUNAQsQGQALIABBADYCAAsHACAAEBQaCwcAIAAQbxoLNAAgACgCAEUEQCAAQX8QUQ8LIAAoAgwEQCAAQQhqIgBBAf4eAgAaIABB/////wcQFgtBAAsFABANAAurCwEHfyAAIAFqIQUCQAJAIAAoAgQiAkEBcQ0AIAJBAnFFDQEgACgCACICIAFqIQECQAJAAkAgACACayIAQdzrACgCAEcEQCAAKAIMIQMgAkH/AU0EQCADIAAoAggiBEcNAkHI6wBByOsAKAIAQX4gAkEDdndxNgIADAULIAAoAhghBiAAIANHBEAgACgCCCICIAM2AgwgAyACNgIIDAQLIAAoAhQiBAR/IABBFGoFIAAoAhAiBEUNAyAAQRBqCyECA0AgAiEHIAQiA0EUaiECIAMoAhQiBA0AIANBEGohAiADKAIQIgQNAAsgB0EANgIADAMLIAUoAgQiAkEDcUEDRw0DQdDrACABNgIAIAUgAkF+cTYCBCAAIAFBAXI2AgQgBSABNgIADwsgBCADNgIMIAMgBDYCCAwCC0EAIQMLIAZFDQACQCAAKAIcIgJBAnQiBCgC+G0gAEYEQCAEQfjtAGogAzYCACADDQFBzOsAQczrACgCAEF+IAJ3cTYCAAwCCwJAIAAgBigCEEYEQCAGIAM2AhAMAQsgBiADNgIUCyADRQ0BCyADIAY2AhggACgCECICBEAgAyACNgIQIAIgAzYCGAsgACgCFCICRQ0AIAMgAjYCFCACIAM2AhgLAkACQAJAAkAgBSgCBCICQQJxRQRAQeDrACgCACAFRgRAQeDrACAANgIAQdTrAEHU6wAoAgAgAWoiATYCACAAIAFBAXI2AgQgAEHc6wAoAgBHDQZB0OsAQQA2AgBB3OsAQQA2AgAPC0Hc6wAoAgAiCCAFRgRAQdzrACAANgIAQdDrAEHQ6wAoAgAgAWoiATYCACAAIAFBAXI2AgQgACABaiABNgIADwsgAkF4cSABaiEBIAUoAgwhAyACQf8BTQRAIAUoAggiBCADRgRAQcjrAEHI6wAoAgBBfiACQQN2d3E2AgAMBQsgBCADNgIMIAMgBDYCCAwECyAFKAIYIQYgAyAFRwRAIAUoAggiAiADNgIMIAMgAjYCCAwDCyAFKAIUIgQEfyAFQRRqBSAFKAIQIgRFDQIgBUEQagshAgNAIAIhByAEIgNBFGohAiADKAIUIgQNACADQRBqIQIgAygCECIEDQALIAdBADYCAAwCCyAFIAJBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAwDC0EAIQMLIAZFDQACQCAFKAIcIgJBAnQiBCgC+G0gBUYEQCAEQfjtAGogAzYCACADDQFBzOsAQczrACgCAEF+IAJ3cTYCAAwCCwJAIAUgBigCEEYEQCAGIAM2AhAMAQsgBiADNgIUCyADRQ0BCyADIAY2AhggBSgCECICBEAgAyACNgIQIAIgAzYCGAsgBSgCFCICRQ0AIAMgAjYCFCACIAM2AhgLIAAgAUEBcjYCBCAAIAFqIAE2AgAgACAIRw0AQdDrACABNgIADwsgAUH/AU0EQCABQfgBcUHw6wBqIQICf0HI6wAoAgAiA0EBIAFBA3Z0IgFxRQRAQcjrACABIANyNgIAIAIMAQsgAigCCAshASACIAA2AgggASAANgIMIAAgAjYCDCAAIAE2AggPC0EfIQMgAUH///8HTQRAIAFBJiABQQh2ZyICa3ZBAXEgAkEBdGtBPmohAwsgACADNgIcIABCADcCECADQQJ0QfjtAGohAgJAAkBBzOsAKAIAIgRBASADdCIHcUUEQEHM6wAgBCAHcjYCACACIAA2AgAgACACNgIYDAELIAFBGSADQQF2a0EAIANBH0cbdCEDIAIoAgAhAgNAIAIiBCgCBEF4cSABRg0CIANBHXYhAiADQQF0IQMgBCACQQRxaiIHKAIQIgINAAsgByAANgIQIAAgBDYCGAsgACAANgIMIAAgADYCCA8LIAQoAggiASAANgIMIAQgADYCCCAAQQA2AhggACAENgIMIAAgATYCCAsLyAEBA38jAEEQayIBJABBuO8AEBUaQbDrACgCAEUEQEHE6wBBAjYCAEG86wBCfzcCAEG06wBCgKCAgICABDcCAEGE7wBBAjYCACABQQxqIgJBADYCACMAQSBrIgBCADcDGCAAQgA3AxAgAEIANwMIQZjvACAAKQMYNwIAQZDvACAAKQMQNwIAQYjvACAAKQMINwIAIAIEQEGI7wAgAigCADYCAAtBsOsAIAFBCGpBcHFB2KrVqgVzNgIAC0G47wAQFBogAUEQaiQAC9sFAwJ/AX4FeyMAQRBrIgYkAAJAIAK9IghCAX1C/v///////wdWIAhCAFMgCEL///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0AIAb9DAAAAAAAAAAAAAAAAAAAAAD9CwQAIAAgASACIAMgBhBARQ0AIAYrAwgiAEQkuJGyRUNVQKREJLiRskVDVUAgAL1C////////////AIMiCEKAgICAgICA+P8AWBtEJLiRskVDVcClRAAAAAAAAAAAIAhCgICAgICAgPj/AFQbIgFEOZ1SokbfkT+iEBMhAiAE/QADUCEJIAYrAwAhACAE/QADECEKIAFEJLiRskVDVUCkRCS4kbJFQ1XApUQ5nVKiRt+RP6JEAAAAAAAA4D+iRBgtRFT7Iek/oBAXEBghASAE/QADYCAE/QADQEQAAAAAAAAAAEQAAAAAAAAAACACRJMQfEX4G4NBoiICoyACRAAAAAAAAAAAYRv9FCIL/fIBIAT9AAMAIABEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAAvUL///////////8Ag0KAgICAgICA+P8AVBv9FCIM/fIBIAFE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKP9FCINIAT9AAMg/fIB/fAB/fAB/fAB/Qz/////////f/////////9//U79DAAAAAAAAPB/AAAAAAAA8H/92wEgBP0AA3AgCSAL/fIBIAogDP3yASANIAT9AAMw/fIB/fAB/fAB/fABIgn9DP////////9//////////3/9Tv0MAAAAAAAA8H8AAAAAAADwf/3bAf0NAAECAwgJCgsQERITGBkaG/1TDQAgCf0hACAJ/SEBIgBEAAAAAAAA8D8gAEQAAAAAAAAAAGIboyIAvUL///////////8Ag0L/////////9/8AVg0AIAUgAJo5AwBBASEHCyAGQRBqJAAgBwsEACMDCyMBAX8gBUUgA0UgBEVycgR/QQAFIAAgASACIAMgBCAFEHMLCxoAIABBAP5BAgBBA0YEQCAAQf////8HEBYLC+4EAQZ/IwMiAUEBOgAoIAEgADYCQCABQQA6ACkgAUEB/iUCfEEBayIABEAgAUH8AGohAgNAIAIgAEQAAAAAAADwfxAhGiAC/hACACIADQALCyABKAJ4EFQCQCABKAJ4IgD+EAIARQRAIAAQVgwBC0H03gAQFRogAEHw3gA2AjggAEGk3wAoAgA2AjRBpN8AIAA2AgAgACgCNCAANgI4QfTeABAUGgsjAyECA0AgAigCRCIABEAgACgCBCAAKAIAIAIgACgCCDYCRBEAAAwBCwsCQCMDIgAtACpBAXFFDQADQBBDIAAgAC0AKkH+AXE6ACpBACECA0AgAkECdCIEKAKwZyEDIAAoAkggBGoiBigCACEEIAZBADYCACAERSADRXIgA0EQRnJFBEAQMiAEIAMRAAAQQwsgAkEBaiICQYABRw0ACxAyIAAtACpBAXFFDQEgBUEDSSAFQQFqIQUNAAsLEDZBAEEB/h4C4GIaAkAgASgCTCIARQ0AIAAgAUHMAGoiAkYNAANAIABBCGsoAgAgASAANgJUIAEgACgCADYCTCAAQQxrIgBBgICAgAT+QQIAIQQgAUEANgJURSAEQQBOcUUEQCAAQQEQFgsgAigCACIARQ0BIAAgAkcNAAsLEEdBnOEAQZzhACgCAEEBayIANgIAIABFBEBBm+EAQQA6AAALIAEoAgwiACABKAIIIgI2AgggAiAANgIMIAEgATYCCCABIAE2AgwQNSMFRQRAQQAkA0EAJARBACQFQQEkBiABQSBqIgBBAkEB/kgCAEEDRgRAIAEQAQ8LIABBAP4XAgAgAEEBEBYPC0EAEBAACxIAIAAoAiwiAEGEARBIIAAQEQsMAEHU4gAjA/4XAgALJgECf0GQ4QAoAgBBABAeIAAhAQNAIAEoAlggARBLIgEgAEcNAAsLOAAgACAAKAIAIAAoAgQgACgCCCAAKAIMIAAoAhAQCjkDGCAALQAgQQFGBEAgACgCEBARIAAQEQsLHQEBfyADRSAERXIEf0EABSAAIAEgAiADIAQQRgsL4gUCA38BfCMAQTBrIgUkACAFIAE2AgwgBSAANgIIIAVBADYAKSAFQQA6ACggBUIANwMgIAVBADYCHCAFIAM2AhggBSACNgIUIAUjAzYCECAFQQA2ACwCfCAEBEAjAEEQayIDJAAgAyAFQQhqNgIMIANBADYCCCADQQ82AgQgA0EEaiEEIwBBgAFrIgAkACMAQeAAayIBJAACQEGU4QAoAgBBAkYEQCMAQRBrQQA2AgwMAQsjAEEQayICJAADQAJAAkACQAJAAkBBlOEAQQBBAf5IAgAOBAACAQMFCyACQQRqIgZBlOEANgIEIAJBETYCBCACIwMiBygCRDYCDCAHIAY2AkQQSiMDIAIoAgw2AkRBlOEAQQL+QQIAQQNHDQBBlOEAQf////8HEBYLIAJBEGokAAwCC0GU4QBBAUED/kgCABoLQZThAEEAQQMQHQwBCwsLIAFBAEHQAPwLACABQQ42AlwgASAENgJYIAFBADYCVCABQQA2AlAgAEEgaiICIAEoAlw2AgAgAiABKAJYNgIEIAIgASgCVDYCCCACIAEoAlA2AgwgAkEQaiABQdAA/AoAACABQeAAaiQAIABBCTYCGCAAQQo2AhQgACAAKQIUNwMIIAAgAjYCHCAAIAI2AhBB7OAAQdDhACAAQQhqECsEfyAAQTBqIgEQFRogACgCLEUEQCAAQcgAaiECA0AgAiABEFIgACgCLEUNAAsLIAEQFBogACgCLEEBRgVBAAshASAAQSBqEEwgAEGAAWokACADQRBqJAAgBSsDIEQAAAAAAAAAACABGwwBC0EoEBoiASAFQQhqQSj8CgAAIAFBAToAICABIAJBA3QiABAaIgI2AhAgAiADIAAQIyMAQSBrIgAkACAAQQA2AhggAEEPNgIUIAAgATYCHCAAIAE2AhAgACAAKQIUNwMIQezgAEHQ4QAgAEEIahArGiAAQSBqJABEAAAAAAAAAAALIAVBMGokAAuVAQECfyABKAIIIAEoAgARAAAjAEEgayIBJAACQCAAKAIIRQRAIABBEGoiAhAVGiAAQQE2AgwgABBNIAIQFBogAEEoahBQDAELIAAQTSAAKAIQIQIgACgCDCABQQc2AhggAUEINgIUIAEgADYCHCABIAA2AhAgASABKQIUNwMIIAIgAUEIahArDQAgABAiCyABQSBqJAALEwAgACgCBCAAKAIYEQAAIAAQIgtsAQF/AkAjAygCSEGQ4QAoAgBBAnRqKAIAIgFFBEAgACAANgJYIAAgADYCXEGQ4QAoAgAgABAeDAELIAAgATYCWCAAIAEoAlw2AlwgASAANgJcIAAoAlwgADYCWAsgACAAKAIEIAAoAgARAwALEwAgACgCBCAAKAIUEQAAIAAQIgtLAAJAQeDgACAARAAAAAAAAAAAZAR/IABEAAAAAAAA4D+gnCIARAAAAAAAAPB/ZCAARAAAAAAAAPB/Y3JFDQEgAPwDBUEACzYCAAsLowQCAX4BfwJAIAVFIAZFcg0AAnwgAwRAIAMrAxAhAiADKwMIIQEgAysDAAwBC0QAAAAAAAAAACACRAAAAAAAAAAAIAK9Qv///////////wCDQoCAgICAgID4/wBUGyABRCS4kbJFQ1VApEQkuJGyRUNVQCABvUL///////////8AgyIHQoCAgICAgID4/wBYG0QkuJGyRUNVwKVEAAAAAAAAAAAgB0KAgICAgICA+P8AVBsiAUQ5nVKiRt+RP6IQE0STEHxF+BuDQaIiAqMgAkQAAAAAAAAAAGEbIQIgAUQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gEBcQGET4wWMa3KVMwKJEAAAAAACAZkCgRAAAAAAAgHZAoyEBIABEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAAvUL///////////8Ag0KAgICAgICA+P8AVBsLIQAgBSsDeCAFKwNYIAKiIAUrAxggAKIgASAFKwM4oqCgoCIAvSIHQgF9Qv7///////8HViAHQgBTIAdC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACAEIACjIgC9IgdCAX1C/v///////wdWIAdCAFMgB0L///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0AIAYgADkDAEEBIQgLIAgLGQAgAEEB/hcCACAAEDggAEEBQQD+SAIAGgsGACAAEFQLrggDDHwBfgF/AkAgA0UgBEVyDQAgAr0iEUIBfUL+////////B1YgEUIAUyARQv///////////wCDQoCAgICAgIAIfUL/////////7/8AVnJxDQAgAysDeCIHIAMrA1giCEQAAAAAAAAAAKIgAysDGCAARAAAAAAAAAAAIAC9Qv///////////wCDQoCAgICAgID4/wBUGyIFoiABRAAAAAAAAAAAIAG9Qv///////////wCDQoCAgICAgID4/wBUGyIGIAMrAziioCIBoKAiAL1C////////////AINC//////////f/AFYNACAHIAggAaCgIgG9Qv///////////wCDQv/////////3/wBWIABEAAAAAAAAAABhciABRAAAAAAAAAAAYXINACADKwNgIgkgAysDQCIKRAAAAAAAAAAAoiADKwMAIAWiIAYgAysDIKKgIgugoCAAoyIHvUL///////////8Ag0L/////////9/8AVg0AIAMrA2giDCADKwNIIg1EAAAAAAAAAACiIAMrAwggBaIgBiADKwMooqAiDqCgIACjIgi9Qv///////////wCDQoCAgICAgID4/wBaDQAgAysDcCIPIAMrA1AiEEQAAAAAAAAAAKIgAysDECAFoiAGIAMrAzCioCIGoKAgAKMiBb1C////////////AINCgICAgICAgPj/AFoNACAJIAogC6CgIAGjIgm9Qv///////////wCDQoCAgICAgID4/wBaDQAgDCANIA6goCABoyIKvUL///////////8Ag0KAgICAgICA+P8AWg0AIA8gECAGoKAgAaMiAb1C////////////AINCgICAgICAgPj/AFoNAEQAAAAAAAAAACEAIAEgBaEiAUQAAAAAAAAAAGIEQEQAAAAAAAAAACAFoSABoyEACyAJIAehIACiIAegIgG9Qv///////////wCDQv/////////3/wBWDQAgCiAIoSAAoiAIoCIAvUL///////////8Ag0KAgICAgICA+P8AWg0AIAEgAqMiAb1C////////////AINC//////////f/AFYNACAAIAKjIgC9Qv///////////wCDQoCAgICAgID4/wBaDQBEAAAAAACAZkAgAEQAAAAAAIB2QKKhRBgtRFT7IQlAokQAAAAAAIBmQKMQWBBZRPjBYxrcpVxAokQAAAAAAIBWwKAiAEQkuJGyRUNVQKREJLiRskVDVUAgAL1C////////////AINCgICAgICAgPj/AFgbIAFEAAAAAACAdkCiRAAAAAAAgGbAoCIBvUL///////////8Ag0L/////////9/8AVg0ARCS4kbJFQ1XApSIAvUL///////////8Ag0KAgICAgICA+P8AWg0AIAQgADkDCCAEIAE5AwBBASESCyASC04BA38jASEAIwMiAigCdCIBBEAgAkEANgJ0IAEkASABQQBBBfwLACABDwsjAkEBIAAbBEBBASQCQQUQGiEACyAAJAEgAEEAQQX8CwAgAAvfBAMBfgJ8AX8CQCAERSAFRXINACADvSIGQgF9Qv7///////8HViAGQgBTIAZC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACAEKwMAIQcgAUQkuJGyRUNVQKREJLiRskVDVUAgAb1C////////////AIMiBkKAgICAgICA+P8AWBtEJLiRskVDVcClRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6BEGC1EVPsh6T8gBkKAgICAgICA+P8AVBsQFxAYIQggBCsDYCAEKwNAIAJEAAAAAAAAAAAgAr1C////////////AINCgICAgICAgPj/AFQbIgGiIAcgAEQAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/IAC9Qv///////////wCDQoCAgICAgID4/wBUGyADoiIAoiADIAhE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKOiIgIgBCsDIKKgoKAiA71C////////////AINC//////////f/AFYNACAEKwNoIAQrA0ggAaIgBCsDCCAAoiACIAQrAyiioKCgIge9Qv///////////wCDQv/////////3/wBWDQAgBCsDeCAEKwNYIAGiIAQrAxggAKIgAiAEKwM4oqCgoCIAvSIGQgF9Qv7///////8HViAGQgBTIAZC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACAFIAcgAKM5AwggBSADIACjOQMAQQEhCQsgCQtLAQJ/EGsgACgCACECIABBADYCACgCACACEB4gACgCDCAAKAIEIAAoAggQYSAAKAIAIQEgAEEANgIAIAEEQCABED8QEQsgABARQQALXAECfxBrIAAoAgAhAiAAQQA2AgAoAgAgAhAeIABBBGogACgCFCAAKAIYIAAoAhwoAgAgACgCIEEMbGoQYCAAKAIAIQEgAEEANgIAIAEEQCABED8QEQsgABARQQAL2wIBAX4gAwRAIAMgAEQAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/IAC9Qv///////////wCDQoCAgICAgID4/wBUGzkDACADRAAAAAAAAAAAIAJEAAAAAAAAAAAgAr1C////////////AINCgICAgICAgPj/AFQbIAFEJLiRskVDVUCkRCS4kbJFQ1VAIAG9Qv///////////wCDIgRCgICAgICAgPj/AFgbRCS4kbJFQ1XApUQAAAAAAAAAACAEQoCAgICAgID4/wBUGyIARDmdUqJG35E/ohATRJMQfEX4G4NBoiIBoyABRAAAAAAAAAAAYRs5AxAgAyAARCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQFxAYRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjOQMICyADQQBHCwQAIwALEAAjACAAa0FwcSIAJAAgAAsGACAAJAALJgAgACQDIAEkBCACJAUgAyQGIAJFIARFckUEQEGs3wAgBDYCAAsLBwAgACgCBAsFAEG9CQsFAEGYCwvbXAQYfwd8A34DeyMAQbAEayIDJAACQAJAIABFIAFFcg0AIAH9DAAAAAAAAEJAAAAAAAAAEED9CwMQIAH9DAAAAAAAAAAAAAAAAABgYED9CwMAIAFCADcDICAB/QwAAAAAAAAAAAAAAAAAAAAA/QsDKCAAKwMAIhq9IiFC////////////AIMiIkIBfUL/////////B1QgIUIAUyICcSAiQoCAgICAgID4/wBRciAiQoCAgICAgID4/wBWciAiQoCAgICAgIAIfUKAgICAgICA8P8AVCACcXINACAaRAAAAAAAAOA/oJwiGkQAAAAAAADwf2QgGkQAAAAAAADwf2NyRQ0AIBr8AyIHQQ9JIBogB7hicg0AIAArAwgiGr0iIUL///////////8AgyIiQgF9Qv////////8HVCAhQgBTIgJxICJCgICAgICAgPj/AFFyICJCgICAgICAgPj/AFZyICJCgICAgICAgAh9QoCAgICAgIDw/wBUIAJxcg0AIBpEAAAAAAAA4D+gnCIaRAAAAAAAAPB/ZCAaRAAAAAAAAPB/Y3JFDQAgGvwDIgJBGEcgGiACuGJyDQAgACsDECIavSIhQv///////////wCDIiJCAX1C/////////wdUICFCAFMiAnEgIkKAgICAgICA+P8AUXIgIkKAgICAgICA+P8AVnIgIkKAgICAgICACH1CgICAgICAgPD/AFQgAnFyDQAgGkQAAAAAAADgP6CcIhpEAAAAAAAA8H9kIBpEAAAAAAAA8H9jckUNACAaIBr8AyIGuGIgBiAHS3IgByAGa0EwSXINACAAKwMYIhq9IiFC////////////AIMiIkIBfUL/////////B1QgIUIAUyICcSAiQoCAgICAgID4/wBRciAiQoCAgICAgID4/wBWciAiQoCAgICAgIAIfUKAgICAgICA8P8AVCACcXINACAaRAAAAAAAAOA/oJwiGkQAAAAAAADwf2QgGkQAAAAAAADwf2NyRQ0AIBogGvwDIg64Yg0AIAArAyAiGr0iIUL///////////8AgyIiQgF9Qv////////8HVCAhQgBTIgJxICJCgICAgICAgPj/AFFyICJCgICAgICAgPj/AFZyICJCgICAgICAgAh9QoCAgICAgIDw/wBUIAJxcg0AIBpEAAAAAAAA4D+gnCIaRAAAAAAAAPB/ZCAaRAAAAAAAAPB/Y3JFDQAgGiAa/AMiC7hiIAcgC0lyIAcgC2sgDkEJbElyDQAgACsDKCIavSIhQv///////////wCDIiJCAX1C/////////wdUICFCAFMiAnEgIkKAgICAgICA+P8AUXIgIkKAgICAgICA+P8AVnIgIkKAgICAgICACH1CgICAgICAgPD/AFQgAnFyDQAgGkQAAAAAAADgP6CcIhpEAAAAAAAA8H9kIBpEAAAAAAAA8H9jckUNACAaIBr8AyIFuGINACAAKwMwIhq9IiFC////////////AIMiIkIBfUL/////////B1QgIUIAUyIC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ADoAuAYgAkHABmoiAiALRw0ACwsgBCALNgIECyAEDAELDAILIQUgFQRAIAAgCUEDdGohCSAXKAIEIBcoAgAiBGtByABtIQsgBSgCACEHIAMoAtwCIQogAysDyAIhHUEAIQADQCADQQA6AJgBIANCADcDkAEgA/0MAAAAAAAAAAAAAAAAAAAAAP0LA4ABIAP9DAAAAAAAAAAAAAAAAAAAAAD9CwOgASADQQA6ALABIAP9DAAAAAAAAAAAAAAAAAAAAAD9CwO4ASADQQA6ANgBIANCADcD0AEgA0KAgICAgICA+D83A8gBIAP9DAAAAAAAAAAAAAAAAAAAAAD9CwPgASADQoCAgICAgID4PzcD8AEgA0EAOgCIAiAD/QwAAAAAAAAAAAAAAAAAAAAA/QsD+AEgA/0MAAAAAAAAAAAAAAAAAAAAAP0LA5ACIANBADoAoAIgAyAANgJcIAMgCSAAQdgBbGoiBjYCWCADAn9BACAGKwMIIhq9IiFC////////////AIMiIkIBfUL/////////B1QgIUIAUyICcSAiQoCAgICAgID4/wBRciAiQoCAgICAgID4/wBWciAiQoCAgICAgIAIfUKAgICAgICA8P8AVCACcXINABpBACAaRAAAAAAAAOA/oJwiGkQAAAAAAADwf2QgGkQAAAAAAADwf2NyRQ0AGkEAIBogGvwDIgK4Yg0AGiAEIAJByABsakEAIAIgC0kbCzYCYCAG/QADoAEhJCADIAYrA7ABOQN4IAMgJP0LA2hBACECAkAgCkUgHUQAAAAAAAAAAGVyDQAgAysDaCEeIAorAwAhHCADKwNwIhpEJLiRskVDVUCkRCS4kbJFQ1VAIBq9Qv///////////wCDIiFCgICAgICAgPj/AFgbRCS4kbJFQ1XApUQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gRBgtRFT7Iek/ICFCgICAgICAgPj/AFQbEBcQGCEbIAorA2AgCisDQCADKwN4IhpEAAAAAAAAAAAgGr1C////////////AINCgICAgICAgPj/AFQbIiCiIBwgHSAeRAAAAAAAgGZAoEQAAAAAAIB2QKNEAAAAAAAA4D8gHr1C////////////AINCgICAgICAgPj/AFQboiIeoiAKKwMgIB0gG0T4wWMa3KVMwKJEAAAAAACAZkCgRAAAAAAAgHZAo6IiHKKgoKAiG71C////////////AINC//////////f/AFYNACAKKwNoIAorA0ggIKIgCisDCCAeoiAcIAorAyiioKCgIhq9Qv///////////wCDQv/////////3/wBWDQAgCisDeCAKKwNYICCiIAorAxggHqIgHCAKKwM4oqCgoCIcvSIhQgF9Qv7///////8HViAhQgBTICFC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACADIBogHKM5A6gBIAMgGyAcozkDoAFBASECCyADIAI6ALABIAMrA3ghHCADKwNwIRsgAyADKwNoIhpEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAavUL///////////8Ag0KAgICAgICA+P8AVBs5A4ABIANEAAAAAAAAAAAgHEQAAAAAAAAAACAcvUL///////////8Ag0KAgICAgICA+P8AVBsgG0QkuJGyRUNVQKREJLiRskVDVUAgG71C////////////AIMiIUKAgICAgICA+P8AWBtEJLiRskVDVcClRAAAAAAAAAAAICFCgICAgICAgPj/AFQbIhtEOZ1SokbfkT+iEBNEkxB8Rfgbg0GiIhqjIBpEAAAAAAAAAABhGzkDkAEgAyAbRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQFxAYRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjOQOIASADQQE6AJgBAkAgAygCWCICKwMAIhq9Qv///////////wCDQv/////////3/wBYBEAgGp0iGiAa/AYiIblhDQELQgAhIQsgAyAhNwO4AQJAIAIrA1giH71C////////////AINCgICAgICAgPj/AFQNAEQAAAAAAAAAACEfIAIrA2AgAisDaKAiGr1C////////////AINC//////////f/AFYNAEQAAAAAAAAAAAJ8IBq9IiNCNIinQf8PcSICQf8PRgRAIBpEAAAAAACAdkCiIhogGqMMAQsgI0IBhiIhQoCAgICAgMD2gH9YBEAgGkQAAAAAAAAAAKIgGiAhQoCAgICAgMD2gH9RGwwBCwJ+IAJFBEBBACECICNCDIYiIUIAWQRAA0AgAkEBayECICFCAYYiIUIAWQ0ACwsgI0EBIAJrrYYMAQsgI0L/////////B4NCgICAgICAgAiECyEhIAJBhwhKBEADQAJAICFCgICAgICAoAt9IiJCAFMNACAiIiFCAFINACAaRAAAAAAAAAAAogwDCyAhQgGGISEgAkEBayICQYcISg0AC0GHCCECCwJAICFCgICAgICAoAt9IiJCAFMNACAiIiFCAFINACAaRAAAAAAAAAAAogwBCyAhQv////////8HWARAA0AgAkEBayECICFCgICAgICAgARUICFCAYYhIQ0ACwsgI0KAgICAgICAgIB/gyAhQoCAgICAgIAIfSACrUI0hoQgIUEBIAJrrYggAkEAShuEvwsiGkQAAAAAAIB2QKAgGiAaRAAAAAAAAAAAYxsiGiAaRAAAAAAAAAAAYRshHwsgAyAfOQPgASADIB9EOZ1Sokbfkb+iIhoQEzkD8AEgAyAaECA5A+gBIAcgAEHQAWxqIANB2ABqQckB/AoAACAAQQFqIgAgFUcNAAsLIANByAJqIRggA0HoAmohEiADLQDHAiEGIwBBIGsiCyQAIAUiACgCACIEIAAoAgQiBUcEQANAAkAgBCgCAEUNACAEKAIIIgJFDQAgBC0AWEEBRw0AIBIrAwghGiAYKAIQIQcgGCsDCCEgAkAgBC0AgAFBAUYEQCAEKwN4Ih29IiFCAX1C/////////wdUICFC////////////AINCgICAgICAgAh9QoCAgICAgIDw/wBUICFCAFlxcg0BCyAEKwMYIhtEOZ1SokbfkT+iEBNEkxB8Rfgbg0GiIBpEAAAAAAAAgECioyIevSIhQgF9Qv7///////8HViAhQgBTICFC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENAUQAAAAAAADwPyEfAkAgB0UgIEQAAAAAAAAAAGVyDQACfCAELQBAQQFGBEAgBCsDOCEdIAQrAyghGyAEKwMwDAELIBtEJLiRskVDVUCkRCS4kbJFQ1VAIBu9Qv///////////wCDIiFCgICAgICAgPj/AFgbRCS4kbJFQ1XApUQAAAAAAAAAACAhQoCAgICAgID4/wBUGyIcRDmdUqJG35E/ohATIRtEAAAAAAAAAAAgBCsDICIaRAAAAAAAAAAAIBq9Qv///////////wCDQoCAgICAgID4/wBUGyAbRJMQfEX4G4NBoiIaoyAaRAAAAAAAAAAAYRshHSAEKwMQIhpEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAavUL///////////8Ag0KAgICAgICA+P8AVBshGyAcRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQFxAYRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjCyEaIAcrA3ggBysDWCAdoiAHKwMYIBuiIBogBysDOKKgoKAiGr0iIUIBfUL+////////B1YgIUIAUyAhQv///////////wCDQoCAgICAgIAIfUL/////////7/8AVnJxDQAgICAaoyIaRAAAAAAAAPA/IBogGr0iIUIAUxtEAAAAAAAA8D8gIUL///////////8Ag0KAgICAgICACH1CgICAgICAgPD/AFQbICFCAX1C/////////wdUGyEfC0QAAAAAAADwPyAeoyAfoiIdvSIhQgF9Qv7///////8HViAhQgBTICFC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENASAEQQE6AIABIAQgHTkDeCAEIB85A3AgBCAeOQNoCyALQRBqIARBASAYIBIgAiAdIAAgBhA9IAQgC/0AAxD9CwOgASAEQQE6ALABIAsgBEEAIBggEiAEKAIIIB0gACAGED0gBCAL/QADAP0LA7gBIARBAToAyAELIARB0AFqIgQgBUcNAAsLIAtBIGokACMAQTBrIggkACADQcwAaiIKQQA2AgggA0IANwJMIAhBADYCLCAIQgA3AiQgACILKAIEIgIgACgCACIAa0HQAW0hBSAAIAJHBEAgBUGAgIAQTw0CIAggBUEHdCIAEBIiAjYCKCAIIAI2AiQgCCAAIAJqNgIsCyAIIA0gD0EEcUECdnE6ACAgCCASNgIcIAggGDYCGCAIIAs2AhQCQAJAIAhBFGpBACAFQYAETwR/IAVBCHYiAhAxIgBBBCAAGyIAIAAgAksbIQVB4OAAKAIAIgJFBEAQMSIAQQQgABshAgsgAiAFIAIgBUkbIgxBAUsNASALKAIEIAsoAgBrQdABbQUgBQsgCEEkahBgDAELIAggDEEMbCIAEBIiAjYCCCAIIAAg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AEHy2QBBAEHkAPwLAEHW2gBBAEGXBPwIAwAjCQRAAAtB8N4AQQBBNPwLAEGk3wBBAEHlAPwIBABBieAAQQBBP/wLAEHI4ABBAEEM/AgFAEHg4ABBAEHQF/wLAEGw+ABBAv4XAgBBsPgAQX/+AAIAGgwBC0Gw+ABBAUJ//gECABoL/AkA/AkB/AkC/AkDQQEkCfwJBPwJBQuJAQBBwPgEJAhBwPgAJAdB8OEAQQI2AgBB0OEAQdDhADYCAEGc4gBBnOIANgIAQbDiAEG44QA2AgBB6OEAQSo2AgBBmOIAQYDjADYCAEHc4QBB0OEANgIAQdjhAEHQ4QA2AgBB0OEAEAlBhOIAIwg2AgBBiOIAIwgjB2s2AgBB0OEAEEFB0OEAEAgLC71WBgHoBSVzIGZhaWxlZCB0byByZWxlYXNlIG11dGV4ACVzIGZhaWxlZCB0byBhY3F1aXJlIG11dGV4ACVzIGZhaWxlZCB0byBicm9hZGNhc3QAJXM6JWQ6ICVzAHZlY3RvcgAvZW1zZGsvZW1zY3JpcHRlbi9zeXN0ZW0vbGliL2xpYmN4eGFiaS9zcmMvcHJpdmF0ZV90eXBlaW5mby5jcHAAc3RkOjpleGNlcHRpb24AYmFkX2FycmF5X25ld19sZW5ndGgAdGVybWluYXRpbmcAX19jeGFfZ3VhcmRfcmVsZWFzZQBfX2N4YV9ndWFyZF9hY3F1aXJlAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZAB0aHJlYWQgY29uc3RydWN0b3IgZmFpbGVkAF9fdGhyZWFkX3NwZWNpZmljX3B0ciBjb25zdHJ1Y3Rpb24gZmFpbGVkAHRocmVhZDo6am9pbiBmYWlsZWQAbXV0ZXggbG9jayBmYWlsZWQAc3RkOjpiYWRfYWxsb2MAY2F0Y2hpbmcgYSBjbGFzcyB3aXRob3V0IGFuIG9iamVjdD8AX19jeGFfZ3VhcmRfYWNxdWlyZSBkZXRlY3RlZCByZWN1cnNpdmUgaW5pdGlhbGl6YXRpb246IGRvIHlvdSBoYXZlIGEgZnVuY3Rpb24tbG9jYWwgc3RhdGljIHZhcmlhYmxlIHdob3NlIGluaXRpYWxpemF0aW9uIGRlcGVuZHMgb24gdGhhdCBmdW5jdGlvbj8AAAAAAAAAAQAAAAIA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AXY82SEp9f9v8j9hDH92u/x/PDw6kxQAkPI/K0ECPMoCcrwTY1UUALDyPwIf8jOCgJK8O1L+6//P8j/y3E84fv+IvJatuAsA8PI/xUEwUFH/hbyv4nr7/w/zP50oXohxAIG8f1+s/v8v8z8Vt7c/Xf+RvFZnpgwAUPM/vYKLIoJ/lTwh9/sRAHDzP8zVDcS6AIA8uS9Z+f+P8z9Rp7ItnT+UvELS3QQAsPM/4Th2cGt/hTxXybL1/8/zPzESvxA6Ano8GLSw6v/v8z+wUrFmbX+YPPSvMhUAEPQ/JIUZXzf4Zzwpi0cXADD0P0NR3HLmAYM8Y7SV5/9P9D9aibK4af+JPOB1BOj/b/Q/VPLCm7HAlbznwW/v/4/0P3IqOvIJQJs8BKe+5f+v9D9FfQ2/t/+UvN4nEBcA0PQ/PWrccWTAmbziPvAPAPD0PxxThQuJf5c80UvcEgAQ9T82pGZxZQRgPHonBRYAMPU/CTIjzs6/lrxMcNvs/0/1P9ehBQVyAom8qVRf7/9v9T8SZMkO5r+bPBIQ5hcAkPU/kO+vgcV+iDySPskDALD1P8AMvwoIQZ+8vBlJHQDQ9T8pRyX7KoGYvIl6uOf/7/U/BGntgLd+lLwC/wAEZAAgAAAE//8QAAEAAQABAP//Af8B//////8B/wH/Af8B/wH/Af8B/wH//////wr/IAD//wP/Af8E/x4AAAEF//////9jAAAIYwDoAwIAAAD//////wAAAAH/Af//////////////AAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAH/Af//////AAEgAAQAgAAACP//Af8B/////////wH/Bv8H/wj/Cf//////vAK8AgEA//8BAAEA//8AAP//////////AAAAAAAAAAAAAAAAAAAAABQBeP//AQAK////////////Af8B/wAAAAAAAAH/Af8B/wAAAAAAAAAAAAAAAAAAAAAAAAH/AAAAAAAAAf8B/wEAAAABAAAAAf//////AAAAAAH///8AAAAA/////////////ygACv//////AQAK/////wD//////////wGXBAH/Af///wEA//////////////////8K//////8M/w3/AAAILgAAhC0AAFgvAABOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQAAAAAILgAAtC0AAHgtAABOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0UAAAAAAAAAqC0AABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAAAAAACguAAAXAAAAHwAAABkAAAAaAAAAGwAAACAAAAAhAAAAIgAAAAguAAA0LgAAqC0AAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQAAAAAAAAAAsC4AAAMAAAAjAAAAJAAAAAAAAADMLgAAAwAAACUAAAAmAAAAAAAAAJguAAADAAAAJwAAACgAAADgLQAAoC4AAFN0OWV4Y2VwdGlvbgAAAAAILgAAvC4AAJguAABTdDliYWRfYWxsb2MAAAAACC4AANguAACwLgAAU3QyMGJhZF9hcnJheV9uZXdfbGVuZ3RoAAAAAAAAAAAILwAABAAAACkAAAAqAAAACC4AABQvAACYLgAAU3QxMWxvZ2ljX2Vycm9yAAAAAAA4LwAABAAAACsAAAAqAAAACC4AAEQvAAAILwAAU3QxMmxlbmd0aF9lcnJvcgAAAADgLQAAYC8AAFN0OXR5cGVfaW5mbwABZXAvAABwLwAAAAABAAACAAAAAAAABQAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAABQAAADYNwAAAAQAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAP////8KAQy4LwAAQDwBABYAAAA=";
529
+ const __vite_glob_0_4 = "data:application/wasm;base64,AGFzbQEAAAABtAEZYAF/AX9gAX8AYAR/f39/AGABfAF8YAJ/fwF/YAV/f39/fwBgBn9/f39/fwBgAABgBXx8fH9/AX9gA39/fwF/YAZ8fHx/f38Bf2AMfHx8f39/f39/fHx/AX9gA39/fwBgA3x8fwF8YAR8fHx/AX9gBnx8fHx/fwF/YAd8fHx/fH9/AX9gAXwAYAl/f39/f398f38AYAJ/fwBgAnx8AXxgAnx/AX9gAXwBf2ACfH8BfGAAAX8CqwEFFndhc2lfc25hcHNob3RfcHJldmlldzEOYXJnc19zaXplc19nZXQABBZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxCGFyZ3NfZ2V0AAQDZW52EF9fbWFpbl9hcmdjX2FyZ3YABBZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxCXByb2NfZXhpdAABA2Vudh9lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoAAEDQD8HDg8IEBEICAoKCAsLBAkHEgITCQIFDAQHAxQVDQMDAxYXAw0DAAEAAAAAAQEJCQwCAgIFBQYGAAAAAAEAARgEBQFwARkZBQcBAYICgIACBggBfwFBwNsECwe6AhAGbWVtb3J5AgAKZnJvbUxuZ0xhdAAGB3Byb2plY3QABwl1bnByb2plY3QACBljYWxjdWxhdGVQZXJzcGVjdGl2ZVJhdGlvAAkZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAEXNldFRocmVhZFBvb2xTaXplAAoYcHJvamVjdExuZ0xhdFRvQ2xpcFNwYWNlAAsaY2FsY3VsYXRlQmlsbGJvYXJkRGVwdGhLZXkADRhjYWxjdWxhdGVTdXJmYWNlRGVwdGhLZXkAEBdwcmVwYXJlRHJhd1Nwcml0ZUltYWdlcwASBl9zdGFydAAdBm1hbGxvYwAqBGZyZWUAKxlfZW1zY3JpcHRlbl9zdGFja19yZXN0b3JlAEIcZW1zY3JpcHRlbl9zdGFja19nZXRfY3VycmVudABDCR4BAEEBCxgvPwUvMTAwMzs5NTE6ODYxPTE+MTxAQUAMAQgKsc8DPwIAC9sCAQF+IAMEQCADIABEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAAvUL///////////8Ag0KAgICAgICA+P8AVBs5AwAgA0QAAAAAAAAAACACRAAAAAAAAAAAIAK9Qv///////////wCDQoCAgICAgID4/wBUGyABRCS4kbJFQ1VApEQkuJGyRUNVQCABvUL///////////8AgyIEQoCAgICAgID4/wBYG0QkuJGyRUNVwKVEAAAAAAAAAAAgBEKAgICAgICA+P8AVBsiAEQ5nVKiRt+RP6IQIkSTEHxF+BuDQaIiAaMgAUQAAAAAAAAAAGEbOQMQIAMgAEQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gECkQJET4wWMa3KVMwKJEAAAAAACAZkCgRAAAAAAAgHZAozkDCAsgA0EARwvfBAMBfgJ8AX8CQCAERSAFRXINACADvSIGQgF9Qv7///////8HViAGQgBTIAZC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACAEKwMAIQcgAUQkuJGyRUNVQKREJLiRskVDVUAgAb1C////////////AIMiBkKAgICAgICA+P8AWBtEJLiRskVDVcClRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6BEGC1EVPsh6T8gBkKAgICAgICA+P8AVBsQKRAkIQggBCsDYCAEKwNAIAJEAAAAAAAAAAAgAr1C////////////AINCgICAgICAgPj/AFQbIgGiIAcgAEQAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/IAC9Qv///////////wCDQoCAgICAgID4/wBUGyADoiIAoiADIAhE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKOiIgIgBCsDIKKgoKAiA71C////////////AINC//////////f/AFYNACAEKwNoIAQrA0ggAaIgBCsDCCAAoiACIAQrAyiioKCgIge9Qv///////////wCDQv/////////3/wBWDQAgBCsDeCAEKwNYIAGiIAQrAxggAKIgAiAEKwM4oqCgoCIAvSIGQgF9Qv7///////8HViAGQgBTIAZC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACAFIAcgAKM5AwggBSADIACjOQMAQQEhCQsgCQuuCAMMfAF+AX8CQCADRSAERXINACACvSIRQgF9Qv7///////8HViARQgBTIBFC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACADKwN4IgcgAysDWCIIRAAAAAAAAAAAoiADKwMYIABEAAAAAAAAAAAgAL1C////////////AINCgICAgICAgPj/AFQbIgWiIAFEAAAAAAAAAAAgAb1C////////////AINCgICAgICAgPj/AFQbIgYgAysDOKKgIgGgoCIAvUL///////////8Ag0L/////////9/8AVg0AIAcgCCABoKAiAb1C////////////AINC//////////f/AFYgAEQAAAAAAAAAAGFyIAFEAAAAAAAAAABhcg0AIAMrA2AiCSADKwNAIgpEAAAAAAAAAACiIAMrAwAgBaIgBiADKwMgoqAiC6CgIACjIge9Qv///////////wCDQv/////////3/wBWDQAgAysDaCIMIAMrA0giDUQAAAAAAAAAAKIgAysDCCAFoiAGIAMrAyiioCIOoKAgAKMiCL1C////////////AINCgICAgICAgPj/AFoNACADKwNwIg8gAysDUCIQRAAAAAAAAAAAoiADKwMQIAWiIAYgAysDMKKgIgagoCAAoyIFvUL///////////8Ag0KAgICAgICA+P8AWg0AIAkgCiALoKAgAaMiCb1C////////////AINCgICAgICAgPj/AFoNACAMIA0gDqCgIAGjIgq9Qv///////////wCDQoCAgICAgID4/wBaDQAgDyAQIAagoCABoyIBvUL///////////8Ag0KAgICAgICA+P8AWg0ARAAAAAAAAAAAIQAgASAFoSIBRAAAAAAAAAAAYgRARAAAAAAAAAAAIAWhIAGjIQALIAkgB6EgAKIgB6AiAb1C////////////AINC//////////f/AFYNACAKIAihIACiIAigIgC9Qv///////////wCDQoCAgICAgID4/wBaDQAgASACoyIBvUL///////////8Ag0L/////////9/8AVg0AIAAgAqMiAL1C////////////AINCgICAgICAgPj/AFoNAEQAAAAAAIBmQCAARAAAAAAAgHZAoqFEGC1EVPshCUCiRAAAAAAAgGZAoxAjEB5E+MFjGtylXECiRAAAAAAAgFbAoCIARCS4kbJFQ1VApEQkuJGyRUNVQCAAvUL///////////8Ag0KAgICAgICA+P8AWBsgAUQAAAAAAIB2QKJEAAAAAACAZsCgIgG9Qv///////////wCDQv/////////3/wBWDQBEJLiRskVDVcClIgC9Qv///////////wCDQoCAgICAgID4/wBaDQAgBCAAOQMIIAQgATkDAEEBIRILIBILowQCAX4BfwJAIAVFIAZFcg0AAnwgAwRAIAMrAxAhAiADKwMIIQEgAysDAAwBC0QAAAAAAAAAACACRAAAAAAAAAAAIAK9Qv///////////wCDQoCAgICAgID4/wBUGyABRCS4kbJFQ1VApEQkuJGyRUNVQCABvUL///////////8AgyIHQoCAgICAgID4/wBYG0QkuJGyRUNVwKVEAAAAAAAAAAAgB0KAgICAgICA+P8AVBsiAUQ5nVKiRt+RP6IQIkSTEHxF+BuDQaIiAqMgAkQAAAAAAAAAAGEbIQIgAUQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gECkQJET4wWMa3KVMwKJEAAAAAACAZkCgRAAAAAAAgHZAoyEBIABEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAAvUL///////////8Ag0KAgICAgICA+P8AVBsLIQAgBSsDeCAFKwNYIAKiIAUrAxggAKIgASAFKwM4oqCgoCIAvSIHQgF9Qv7///////8HViAHQgBTIAdC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACAEIACjIgC9IgdCAX1C/v///////wdWIAdCAFMgB0L///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0AIAYgADkDAEEBIQgLIAgLAgALHQEBfyADRSAERXIEf0EABSAAIAEgAiADIAQQDAsL5QQEBnsBfgF8AX8gAUQkuJGyRUNVQKREJLiRskVDVUAgAb1C////////////AIMiC0KAgICAgICA+P8AWBtEJLiRskVDVcClRAAAAAAAAAAAIAtCgICAgICAgPj/AFQbIgFEOZ1SokbfkT+iECIhDCAD/QADUCEFIAP9AAMQIQcgAUQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gECkQJCEBAkAgA/0AA2AgA/0AA0BEAAAAAAAAAAAgAkQAAAAAAAAAACACvUL///////////8Ag0KAgICAgICA+P8AVBsgDESTEHxF+BuDQaIiAqMgAkQAAAAAAAAAAGEb/RQiCP3yASAD/QADACAARAAAAAAAgGZAoEQAAAAAAIB2QKNEAAAAAAAA4D8gAL1C////////////AINCgICAgICAgPj/AFQb/RQiCf3yASABRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCj/RQiCiAD/QADIP3yAf3wAf3wAf3wASIG/SEAvUL///////////8Ag0L/////////9/8AViAG/SEBvUL///////////8Ag0KAgICAgICA+P8AWnINACAD/QADcCAFIAj98gEgByAJ/fIBIAogA/0AAzD98gH98AH98AH98AEiBf0hAL1C////////////AINCgICAgICAgPj/AFoNACAF/SEBIgC9Qv///////////wCDQv/////////3/wBWIABEje21oPfGsD5lcg0AIAQgBv0LAwAgBCAF/QsDEEEBIQ0LIA0LIwEBfyAFRSADRSAERXJyBH9BAAUgACABIAIgAyAEIAUQDgsL2wUDAn8BfgV7IwBBEGsiBiQAAkAgAr0iCEIBfUL+////////B1YgCEIAUyAIQv///////////wCDQoCAgICAgIAIfUL/////////7/8AVnJxDQAgBv0MAAAAAAAAAAAAAAAAAAAAAP0LBAAgACABIAIgAyAGEA9FDQAgBisDCCIARCS4kbJFQ1VApEQkuJGyRUNVQCAAvUL///////////8AgyIIQoCAgICAgID4/wBYG0QkuJGyRUNVwKVEAAAAAAAAAAAgCEKAgICAgICA+P8AVBsiAUQ5nVKiRt+RP6IQIiECIAT9AANQIQkgBisDACEAIAT9AAMQIQogAUQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gECkQJCEBIAT9AANgIAT9AANARAAAAAAAAAAARAAAAAAAAAAAIAJEkxB8Rfgbg0GiIgKjIAJEAAAAAAAAAABhG/0UIgv98gEgBP0AAwAgAEQAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/IAC9Qv///////////wCDQoCAgICAgID4/wBUG/0UIgz98gEgAUT4wWMa3KVMwKJEAAAAAACAZkCgRAAAAAAAgHZAo/0UIg0gBP0AAyD98gH98AH98AH98AH9DP////////9//////////3/9Tv0MAAAAAAAA8H8AAAAAAADwf/3bASAE/QADcCAJIAv98gEgCiAM/fIBIA0gBP0AAzD98gH98AH98AH98AEiCf0M/////////3//////////f/1O/QwAAAAAAADwfwAAAAAAAPB//dsB/Q0AAQIDCAkKCxAREhMYGRob/VMNACAJ/SEAIAn9IQEiAEQAAAAAAADwPyAARAAAAAAAAAAAYhujIgC9Qv///////////wCDQv/////////3/wBWDQAgBSAAmjkDAEEBIQcLIAZBEGokACAHC+QHAgx8AX8CQCADKwN4IgcgAysDWCIIRAAAAAAAAAAAoiADKwMYIABEAAAAAAAAAAAgAL1C////////////AINCgICAgICAgPj/AFQbIgWiIAFEAAAAAAAAAAAgAb1C////////////AINCgICAgICAgPj/AFQbIgYgAysDOKKgIgGgoCIAvUL///////////8Ag0L/////////9/8AVg0AIAcgCCABoKAiAb1C////////////AINC//////////f/AFYgAEQAAAAAAAAAAGFyIAFEAAAAAAAAAABhcg0AIAMrA2AiCSADKwNAIgpEAAAAAAAAAACiIAMrAwAgBaIgBiADKwMgoqAiC6CgIACjIge9Qv///////////wCDQv/////////3/wBWDQAgAysDaCIMIAMrA0giDUQAAAAAAAAAAKIgAysDCCAFoiAGIAMrAyiioCIOoKAgAKMiCL1C////////////AINCgICAgICAgPj/AFoNACADKwNwIg8gAysDUCIQRAAAAAAAAAAAoiADKwMQIAWiIAYgAysDMKKgIgagoCAAoyIFvUL///////////8Ag0KAgICAgICA+P8AWg0AIAkgCiALoKAgAaMiCb1C////////////AINCgICAgICAgPj/AFoNACAMIA0gDqCgIAGjIgq9Qv///////////wCDQoCAgICAgID4/wBaDQAgDyAQIAagoCABoyIBvUL///////////8Ag0KAgICAgICA+P8AWg0ARAAAAAAAAAAAIQAgASAFoSIBRAAAAAAAAAAAYgRARAAAAAAAAAAAIAWhIAGjIQALIAkgB6EgAKIgB6AiAb1C////////////AINC//////////f/AFYNACAKIAihIACiIAigIgC9Qv///////////wCDQoCAgICAgID4/wBaDQAgASACoyIBvUL///////////8Ag0L/////////9/8AVg0AIAAgAqMiAL1C////////////AINCgICAgICAgPj/AFoNAEQAAAAAAIBmQCAARAAAAAAAgHZAoqFEGC1EVPshCUCiRAAAAAAAgGZAoxAjEB5E+MFjGtylXECiRAAAAAAAgFbAoCIARCS4kbJFQ1VApEQkuJGyRUNVQCAAvUL///////////8Ag0KAgICAgICA+P8AWBsgAUQAAAAAAIB2QKJEAAAAAACAZsCgIgG9Qv///////////wCDQv/////////3/wBWDQBEJLiRskVDVcClIgC9Qv///////////wCDQoCAgICAgID4/wBaDQAgBCAAOQMIIAQgATkDAEEBIRELIBELNgEBfyADRSAFRXIgB0UgC0VycgR/QQAFIAAgASACIAMgBCAFIAYgByAIQQBHIAkgCiALEBELC5wHAwh8An8BfgJAIARBAEwgBkEATHINACACRAAAAAAAAAAAIAK9Qv///////////wCDQoCAgICAgID4/wBUGyEQIAFEOZ1SokbfkT+iECIiAkSN7bWg98awPqVEje21oPfGsD4gAr1C////////////AINCgICAgICAgPj/AFgbRAAAAECmVFhBoiERRAAAAAAAAPD/IQIDQCAEIAUgFUECdGooAgAiFEsEQCABIAMgFEEEdGoiFCsDCEQAAABAplRYQaNE+MFjGtylTECioCIMRCS4kbJFQ1VApEQkuJGyRUNVQCAMvUL///////////8AgyIWQoCAgICAgID4/wBYG0QkuJGyRUNVwKVEAAAAAAAAAAAgFkKAgICAgICA+P8AVBsiDEQ5nVKiRt+RP6IQIiENIAcrA1ghEiAUKwMAIQ4gBysDGCETIAxEJLiRskVDVUCkRCS4kbJFQ1XApUQ5nVKiRt+RP6JEAAAAAAAA4D+iRBgtRFT7Iek/oBApECQhD0EAIRQgBysDYCAHKwNARAAAAAAAAAAAIBAgDUSTEHxF+BuDQaIiDKMgDEQAAAAAAAAAAGEbIgyiIAcrAwAgACAOIBGjRPjBYxrcpUxAoqAiDUQAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/IA29Qv///////////wCDQoCAgICAgID4/wBUGyINoiAHKwMgIA9E+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKMiDqKgoKC9Qv///////////wCDQv/////////3/wBWDQIgBysDaCAHKwNIIAyiIAcrAwggDaIgBysDKCAOoqCgoL1C////////////AINCgICAgICAgPj/AFoNAiAHKwNwIAcrA1AgDKIgBysDECANoiAHKwMwIA6ioKCgIg+9Qv///////////wCDQoCAgICAgID4/wBaDQIgBysDeCASIAyiIBMgDaIgBysDOCAOoqCgoCIMvUL///////////8Ag0L/////////9/8AViAMRI3ttaD3xrA+ZXINAiAIBHwgCiAMoSINIAkgDKIgD6AiDiANIA5kGwUgDwsgDKMiDL1C////////////AINC//////////f/AFYNAiAMmiIMIAIgAiAMYxshAgsgFUEBaiIVIAZHDQALQQAhFCACvUL///////////8Ag0L/////////9/8AVg0AIAsgAjkDAEEBIRQLIBQL/qcBBBx/JHwDfiR7IwBBoARrIgMkAAJAIABFIAFFcg0AIAH9DAAAAAAAAEJAAAAAAAAAEED9CwMQIAH9DAAAAAAAAAAAAAAAAABgYED9CwMAIAFCADcDICAB/QwAAAAAAAAAAAAAAAAAAAAA/QsDKCAAKwMAIh69IkNC////////////AIMiQkIBfUL/////////B1QgQ0IAUyICcSBCQoCAgICAgID4/wBRciBCQoCAgICAgID4/wBWciBCQoCAgICAgIAIfUKAgICAgICA8P8AVCACcXINACAeRAAAAAAAAOA/oJwiHkQAAAAAAADwf2QgHkQAAAAAAADwf2NyRQ0AIB78AyICQQ9JIB4gArhicg0AIAArAwgiHr0iQ0L///////////8AgyJCQgF9Qv////////8HVCBDQgBTIgRxIEJCgICAgICAgPj/AFFyIEJCgICAgICAgPj/AFZyIEJCgICAgICAgAh9QoCAgICAgIDw/wBUIARxcg0AIB5EAAAAAAAA4D+gnCIeRAAAAAAAAPB/ZCAeRAAAAAAAAPB/Y3JFDQAgHvwDIgRBGEcgHiAEuGJyDQAgACsDECIevSJDQv///////////wCDIkJCAX1C/////////wdUIENCAFMiBHEgQkKAgICAgICA+P8AUXIgQkKAgICAgICA+P8AVnIgQkKAgICAgICACH1CgICAgICAgPD/AFQgBHFyDQAgHkQAAAAAAADgP6CcIh5EAAAAAAAA8H9kIB5EAAAAAAAA8H9jckUNACAeIB78AyIEuGIgAiAESXIgAiAEa0EwSXINACAAKwMYIh69IkNC////////////AIMiQkIBfUL/////////B1QgQ0IAUyIFcSBCQoCAgICAgID4/wBRciBCQoCAgICAgID4/wBWciBCQoCAgICAgIAIfUKAgICAgICA8P8AVCAFcXINACAeRAAAAAAAAOA/oJwiHkQAAAAAAADwf2QgHkQAAAAAAADwf2NyRQ0AIB4gHvwDIga4Yg0AIAArAyAiHr0iQ0L///////////8AgyJCQgF9Qv////////8HVCBDQgBTIgVxIEJCgICAgICAgPj/AFFyIEJCgICAgICAgPj/AFZyIEJCgICAgICAgAh9QoCAgICAgIDw/wBUIAVxcg0AIB5EAAAAAAAA4D+gnCIeRAAAAAAAAPB/ZCAeRAAAAAAAAPB/Y3JFDQAgHiAe/AMiCLhiIAIgCElyIAIgCGsgBkEJbElyDQAgACsDKCIevSJDQv///////////wCDIkJCAX1C/////////wdUIENCAFMiBXEgQkKAgICAgICA+P8AUXIgQkKAgICAgICA+P8AVnIgQkKAgICAgICACH1CgICAgICAgPD/AFQgBXFyDQAgHkQAAAAAAADgP6CcIh5EAAAAAAAA8H9kIB5EAAAAAAAA8H9jckUNACAeIB78AyIMuGINACAAKwMwIh69IkNC////////////AIMiQkIBfUL/////////B1QgQ0IAUyIFcSBCQoCAgICAgID4/wBRciBCQoCAgICAgID4/wBWciBCQoCAgICAgIAIfUKAgICAgICA8P8AVCAFcXINACAeRAAAAAAAAOA/oJwiHkQAAAAAAADwf2QgHkQAAAAAAADwf2NyRQ0AIB4gHvwDIgW4YiACIAVJciACIAVrIAxBBmxJcg0AIAArAzgiHr0iQ0L///////////8AgyJCQgF9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oAEgA/0MAAAAAAAAAAAAAAAAAAAAAP0LA6gBIANBADoAyAEgA0IANwPAASADQoCAgICAgID4PzcDuAEgA/0MAAAAAAAAAAAAAAAAAAAAAP0LA9ABIANCgICAgICAgPg/NwPgASADQQA6APgBIAP9DAAAAAAAAAAAAAAAAAAAAAD9CwPoASAD/QwAAAAAAAAAAAAAAAAAAAAA/QsDgAIgA0EAOgCQAiADIAA2AkwgAyAGIABB2AFsaiICNgJIIAMCf0EAIAIrAwgiHr0iQ0L///////////8AgyJCQgF9Qv////////8HVCBDQgBTIgVxIEJCgICAgICAgPj/AFFyIEJCgICAgICAgPj/AFZyIEJCgICAgICAgAh9QoCAgICAgIDw/wBUIAVxcg0AGkEAIB5EAAAAAAAA4D+gnCIeRAAAAAAAAPB/ZCAeRAAAAAAAAPB/Y3JFDQAaQQAgHiAe/AMiBbhiDQAaIAggBUHIAGxqQQAgBSANSRsLNgJQIAL9AAOgASFFIAMgAisDsAE5A2ggAyBF/QsDWEEAIQUCQCAERSAgRAAAAAAAAAAAZXINACADKwNYIR4gBCsDACEjIAMrA2AiH0QkuJGyRUNVQKREJLiRskVDVUAgH71C////////////AIMiQkKAgICAgICA+P8AWBtEJLiRskVDVcClRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6BEGC1EVPsh6T8gQkKAgICAgICA+P8AVBsQKRAkISEgBCsDYCAEKwNAIAMrA2giH0QAAAAAAAAAACAfvUL///////////8Ag0KAgICAgICA+P8AVBsiH6IgIyAgIB5EAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAevUL///////////8Ag0KAgICAgICA+P8AVBuiIh6iIAQrAyAgICAhRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjoiIjoqCgoCIhvUL///////////8Ag0L/////////9/8AVg0AIAQrA2ggBCsDSCAfoiAEKwMIIB6iICMgBCsDKKKgoKAiIr1C////////////AINC//////////f/AFYNACAEKwN4IAQrA1ggH6IgBCsDGCAeoiAjIAQrAziioKCgIh69IkJCAX1C/v///////wdWIEJCAFMgQkL///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0AIAMgIiAeozkDmAEgAyAhIB6jOQOQAUEBIQULIAMgBToAoAEgAysDaCEeIAMrA2AhHyADIAMrA1giI0QAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/ICO9Qv///////////wCDQoCAgICAgID4/wBUGzkDcCADRAAAAAAAAAAAIB5EAAAAAAAAAAAgHr1C////////////AINCgICAgICAgPj/AFQbIB9EJLiRskVDVUCkRCS4kbJFQ1VAIB+9Qv///////////wCDIkJCgICAgICAgPj/AFgbRCS4kbJFQ1XApUQAAAAAAAAAACBCQoCAgICAgID4/wBUGyIeRDmdUqJG35E/ohAiRJMQfEX4G4NBoiIfoyAfRAAAAAAAAAAAYRs5A4ABIAMgHkQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gECkQJET4wWMa3KVMwKJEAAAAAACAZkCgRAAAAAAAgHZAozkDeCADQQE6AIgBAkAgAygCSCICKwMAIh69Qv///////////wCDQv/////////3/wBYBEAgHp0iHiAe/AYiQrlhDQELQgAhQgsgAyBCNwOoAQJAIAIrA1giH71C////////////AINCgICAgICAgPj/AFQNAEQAAAAAAAAAACEfIAIrA2AgAisDaKAiHr1C////////////AINC//////////f/AFYNAEQAAAAAAAAAAAJ8IB69IkRCNIinQf8PcSICQf8PRgRAIB5EAAAAAACAdkCiIh4gHqMMAQsgREIBhiJCQoCAgICAgMD2gH9YBEAgHkQAAAAAAAAAAKIgHiBCQoCAgICAgMD2gH9RGwwBCwJ+IAJFBEBBACECIERCDIYiQkIAWQRAA0AgAkEBayECIEJCAYYiQkIAWQ0ACwsgREEBIAJrrYYMAQsgREL/////////B4NCgICAgICAgAiECyFCIAJBhwhKBEADQAJAIEJCgICAgICAoAt9IkNCAFMNACBDIkJCAFINACAeRAAAAAAAAAAAogwDCyBCQgGGIUIgAkEBayICQYcISg0AC0GHCCECCwJAIEJCgICAgICAoAt9IkNCAFMNACBDIkJCAFINACAeRAAAAAAAAAAAogwBCyBCQv////////8HWARAA0AgAkEBayECIEJCgICAgICAgARUIEJCAYYhQg0ACwsgREKAgICAgICAgIB/gyBCQoCAgICAgIAIfSACrUI0hoQgQkEBIAJrrYggAkEAShuEvwsiHkQAAAAAAIB2QKAgHiAeRAAAAAAAAAAAYxsiHiAeRAAAAAAAAAAAYRshHwsgAyAfOQPQASADIB9EOZ1Sokbfkb+iIh4QIjkD4AEgAyAeECc5A9gBIAkgAEHQAWxqIANByABqQckB/AoAACAAQQFqIgAgEkcNAAsLIANBuAJqIQkgA0HYAmohBiMAQSBrIgAkACAMKAIAIgIgDCgCBCIFRwRAA0ACQCACKAIARQ0AIAIoAggiCEUNACACLQBYQQFHDQAgBisDCCEfIAkoAhAhBCAJKwMIISACQCACLQCAAUEBRgRAIAIrA3giHr0iQkIBfUL/////////B1QgQkL///////////8Ag0KAgICAgICACH1CgICAgICAgPD/AFQgQkIAWXFyDQELIAIrAxgiHkQ5nVKiRt+RP6IQIkSTEHxF+BuDQaIgH0QAAAAAAACAQKKjIiO9IkJCAX1C/v///////wdWIEJCAFMgQkL///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0BRAAAAAAAAPA/IR8CQCAERSAgRAAAAAAAAAAAZXINAAJ8IAItAEBBAUYEQCACKwM4IR4gAisDKCEkIAIrAzAMAQsgHkQkuJGyRUNVQKREJLiRskVDVUAgHr1C////////////AIMiQkKAgICAgICA+P8AWBtEJLiRskVDVcClRAAAAAAAAAAAIEJCgICAgICAgPj/AFQbIiFEOZ1SokbfkT+iECIhHkQAAAAAAAAAACACKwMgIiJEAAAAAAAAAAAgIr1C////////////AINCgICAgICAgPj/AFQbIB5EkxB8Rfgbg0GiIh6jIB5EAAAAAAAAAABhGyEeIAIrAxAiIkQAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/ICK9Qv///////////wCDQoCAgICAgID4/wBUGyEkICFEJLiRskVDVUCkRCS4kbJFQ1XApUQ5nVKiRt+RP6JEAAAAAAAA4D+iRBgtRFT7Iek/oBApECRE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKMLISEgBCsDeCAEKwNYIB6iIAQrAxggJKIgISAEKwM4oqCgoCIevSJCQgF9Qv7///////8HViBCQgBTIEJC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENACAgIB6jIh5EAAAAAAAA8D8gHiAevSJCQgBTG0QAAAAAAADwPyBCQv///////////wCDQoCAgICAgIAIfUKAgICAgICA8P8AVBsgQkIBfUL/////////B1QbIR8LRAAAAAAAAPA/ICOjIB+iIh69IkJCAX1C/v///////wdWIEJCAFMgQkL///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0BIAJBAToAgAEgAiAeOQN4IAIgHzkDcCACICM5A2gLIABBEGogAkEBIAkgBiAIIB4gDCAHEBUgAiAA/QADEP0LA6ABIAJBAToAsAEgACACQQAgCSAGIAIoAgggHiAMIAcQFSACIAD9AAMA/QsDuAEgAkEBOgDIAQsgAkHQAWoiAiAFRw0ACwsgAEEgaiQAIA9BBHFBAnZxIRBBACECQQAhAEEAIQ0jAEHQAGsiByQAIANBPGoiFyIPQQA2AgggD0IANwIAIAwoAgQiBCAMKAIAIgVrQdABbSERAkACQAJAIAQgBUcEQCARQYCAgBBPDQEgEUEHdCIAEC0iAiAAaiENIAIhAANAAkAgDCgCACAUQdABbGoiBCgCACIFRQ0AIAQoAggiCkUNACAKLQAYQQFHDQAgBC0AWEEBRw0AIAYrAwghHiAJKAIQIQggCSsDCCEfAkAgBC0AgAFBAUYEQCAEKwN4IiG9IkJCAX1C/////////wdUIEJC////////////AINCgICAgICAgAh9QoCAgICAgIDw/wBUIEJCAFlxcg0BCyAEKwMYIiBEOZ1SokbfkT+iECJEkxB8Rfgbg0GiIB5EAAAAAAAAgECioyIjvSJCQgF9Qv7///////8HViBCQgBTIEJC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENAUQAAAAAAADwPyEeAkAgCEUgH0QAAAAAAAAAAGVyDQACfCAELQBAQQFGBEAgBCsDOCEhIAQrAyghJCAEKwMwDAELICBEJLiRskVDVUCkRCS4kbJFQ1VAICC9Qv///////////wCDIkJCgICAgICAgPj/AFgbRCS4kbJFQ1XApUQAAAAAAAAAACBCQoCAgICAgID4/wBUGyIgRDmdUqJG35E/ohAiISFEAAAAAAAAAAAgBCsDICIiRAAAAAAAAAAAICK9Qv///////////wCDQoCAgICAgID4/wBUGyAhRJMQfEX4G4NBoiIhoyAhRAAAAAAAAAAAYRshISAEKwMQIiJEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAivUL///////////8Ag0KAgICAgICA+P8AVBshJCAgRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQKRAkRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjCyEgIAgrA3ggCCsDWCAhoiAIKwMYICSiICAgCCsDOKKgoKAiIL0iQkIBfUL+////////B1YgQkIAUyBCQv///////////wCDQoCAgICAgIAIfUL/////////7/8AVnJxDQAgHyAgoyIeRAAAAAAAAPA/IB4gHr0iQkIAUxtEAAAAAAAA8D8gQkL///////////8Ag0KAgICAgICACH1CgICAgICAgPD/AFQbIEJCAX1C/////////wdUGyEeC0QAAAAAAADwPyAjoyAeoiIhvSJCQgF9Qv7///////8HViBCQgBTIEJC////////////AINCgICAgICAgAh9Qv/////////v/wBWcnENASAEQQE6AIABIAQgITkDeCAEIB45A3AgBCAjOQNoCyAEQaABQcgAIAQtALABIgsbaisDACEeIARBqAFB0AAgCxtqKwMAIR8gB0IANwNIAn8gBSsDIBAlRQRAIAhFDQJEAAAAAAAAAAAhIkQAAAAAAADwPyEeIAUrAygiH0QAAAAAAADwPyAfRAAAAAAAAAAAYhshIyAFKwNIISYgBUFAayAGKwNYISQCQCAKKwMIIiBEAAAAAAAAAABlBEBEAAAAAAAAAAAhHwwBCyAKKwMQIh9EAAAAAAAAAABlBEBEAAAAAAAAAAAhHwwBCyAGKwMoIiVEAAAAAAAAAABlBEBEAAAAAAAAAAAhHwwBCyAfICMgJaIgJKIiIqIiH0QAAAAAAAAAACAfvUL///////////8Ag0KAgICAgICA+P8AVBshHyAg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RAAAAAAAAAAAICFEAAAAAAAAAAAgIb1C////////////AINCgICAgICAgPj/AFQbIB5EJLiRskVDVUCkRCS4kbJFQ1VAIB69Qv///////////wCDIkJCgICAgICAgPj/AFgbRCS4kbJFQ1XApSIhRAAAAAAAAAAAIEJCgICAgICAgPj/AFQiEBsiMkQ5nVKiRt+RP6IQIkSTEHxF+BuDQaIiM6MgM0QAAAAAAAAAAGEbOQMQIAIgH0QAAAAAAADwPyAeRDmdUqJG35E/ohAiIh9Eje21oPfGsD6lRI3ttaD3xrA+IB+9Qv///////////wCDQoCAgICAgID4/wBYG0QAAABAplRYQaKjRPjBYxrcpUxAoqAiH0QAAAAAAIBmQKBEAAAAAACAdkCjRAAAAAAAAOA/IB+9Qv///////////wCDQoCAgICAgID4/wBUGyAxoTkDGCACIDJEJLiRskVDVUCkRCS4kbJFQ1XApUQ5nVKiRt+RP6JEAAAAAAAA4D+iRBgtRFT7Iek/oBApECRE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKM5AwggIUQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gRBgtRFT7Iek/IBAbECkQJCEfIAIgHkQecBggy9biPqAiHkQkuJGyRUNVQKREJLiRskVDVUAgHr1C////////////AINCgICAgICAgPj/AFgbRCS4kbJFQ1XApUQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gRBgtRFT7Iek/IB69Qv///////////wCDQoCAgICAgID4/wBUGxApECRE+MFjGtylTMCiRAAAAAAAgGZAoEQAAAAAAIB2QKMgH0T4wWMa3KVMwKJEAAAAAACAZkCgRAAAAAAAgHZAo6E5AyAgCf0AAzAhRSACICY5A2AgAiAlOQNYIAIgRf0LA0ggBysDiAEhHiACICQ5A3AgAiAeOQNoIAIgAP0AA5AG/QsDeCACIABBqAhqIgcpAwA3A4gBIAIgB/0AAwj9CwOQASAA/QADqAYhRSAAKQOgBiFCIAIgIjkDuAEgAiBCNwOgASACIEX9CwOoASAHKwMIISEgBysDACEiAkAgKEQAAAAAAAAAAGUgKUQAAAAAAAAAAGVyBEAgCSsDMCIeISUgCSsDOCIgISYgHiIjISggICIfISkMAQsgK/0U/QwAAAAAAADwvwAAAAAAAPA//fIBICsgIKL9FP3xASJFICX9FCJG/fIBIkcgKv0U/e0BICogI6IiHv0U/fEBIkkgJv0UIkv98gH98AEgCf0AAzAiTCBF/Q0ICQoLDA0ODwgJCgsMDQ4PIk398AEiTv0hASEpIEUgS/3yASJFIEkgRv3yAf3xASBMIEX9DQABAgMEBQYHAAECAwQFBgciRv3wASJJ/SEBISggTv0hACEfIEn9IQAhIyBHICogHqEiHiAmov0U/fABIE398AEiR/0hASEmIEUgHiAlov0U/fEBIEb98AEiRf0hASElIEf9IQAhICBF/SEAIR4LIAJBADYCoAQgAiApOQOoAiACICg5A6ACIAIgHzkDiAIgAiAjOQOAAiACICY5A+gBIAIgJTkD4AEgAiAgOQPIASACIB45A8ABIAIgISApRAAAAECmVFhBo0T4wWMa3KVMQKKgOQO4AiACICEgH0QAAABAplRYQaNE+MFjGtylTECioDkDmAIgAiAhICZEAAAAQKZUWEGjRPjBYxrcpUxAoqA5A/gBIAIgISAgRAAAAECmVFhBo0T4wWMa3KVMQKKgOQPYASACICIgKESN7bWg98awPiAhRDmdUqJG35E/ohAiIh8gH0SN7bWg98awPmMbRAAAAECmVFhBoiIfo0T4wWMa3KVMQKKgOQOwAiACICIgIyAfo0T4wWMa3KVMQKKgOQOQAiACICIgJSAfo0T4wWMa3KVMQKKgOQPwASACICIgHiAfo0T4wWMa3KVMQKKgOQPQAUEAIQcgAEEwakEAQYAB/AsAIABBADYCLCAA/QwAAAAAAAAAAAAAAAAAAAAA/QsDGCAA/QwAAAAAAAAAAAAAAAAAAAAA/QsDCCAnvUL///////////8AgyJCUCBCQoCAgICAgID4/wBRciBCQoCAgICAgID4/wBWciEQRAAAAAAAAPA/RAAAAAAAAAAAIBVBAXEiCRshJSAvIC4gBiAAQQhqEAwhGCAAKwO4CCIeRAAAAAAAAAAAIB69Qv///////////wCDQoCAgICAgID4/wBUGyEmIAArA7AIIihEOZ1SokbfkT+iECIiHkSN7bWg98awPqVEje21oPfGsD4gHr1C////////////AINCgICAgICAgPj/AFgbRAAAAECmVFhBoiEpIAYrAwAhKiAGKwN4ISsgBisDWCEuIAYrAzghLyAGKwMYITAgBisDcCExIAYrA1AhMiAGKwMwITMgBisDECE4IAYrA2ghOSAGKwNIITogBisDKCE7IAYrAwghPCAGKwNgIT0gBisDQCE+IAYrAyAhPyAEKwOgASFAIABBgAlqIQIgACsDqAghQQNAID0gPkQAAAAAAAAAACAmICggDiAHKAKoCSIGQQR0IgRqIhYrAwhEAAAAQKZUWEGjRPjBYxrcpUxAoqAiHkQkuJGyRUNVQKREJLiRskVDVUAgHr1C////////////AIMiQkKAgICAgICA+P8AWBtEJLiRskVDVcClRAAAAAAAAAAAIEJCgICAgICAgPj/AFQbIh9EOZ1SokbfkT+iECJEkxB8Rfgbg0GiIh6jIB5EAAAAAAAAAABhGyIeoiAqIEEgFisDACApo0T4wWMa3KVMQKKgIiBEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAgvUL///////////8Ag0KAgICAgICA+P8AVBsiIKIgPyAfRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6AQKRAkRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjIiOioKCgIiG9Qv///////////wCDQv/////////3/wBWDQMgOSA6IB6iIDwgIKIgOyAjoqCgoCIivUL///////////8Ag0KAgICAgICA+P8AWg0DIDEgMiAeoiA4ICCiIDMgI6KgoKAiH71C////////////AINCgICAgICAgPj/AFoNAyArIC4gHqIgMCAgoiAvICOioKCgIiC9Qv///////////wCDQv/////////3/wBWICBEje21oPfGsD5lcg0DIB8hHiAkRAAAAAAAAAAAYgRAIEAgIKEiIyAkICCiIB6gIh4gHiAjYxshHgsgAEEsaiAGaiIWLQAARQRAIABBMGogBkEFdGoiBiAgOQMYIAYgHjkDECAGICI5AwggBiAhOQMAIBZBAToAACAQICwgIUQAAAAAAADwPyAgoyIeokQAAAAAAADwP6BEAAAAAAAA4D+ioiIjvUL///////////8Ag0L/////////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AGsgBjkDACAAQfwAayAUNgIAIABB8ABrIA5B8AD8CgAAIAsgDU0EQCAMIAgQHCEKIAAgARAcBEAgCCEBIAwhACAKRQ0FDAMLIAoNAQsLIAwgCCACIBAQFkEAIQMMAQsLCyAOQfABaiQAC8sMAwN/C3wBfiMAQfAAayICJAAgASgCeCEDIAICf0EAIAEtAHxBAUcNABpBACADRQ0AGkEAIAErA4ABRAAAAAAAAAAAZEUNABpBACABKwOIAUQAAAAAAAAAAGRFDQAaQQAgASsDkAEiB0QAAAAAAAAAAGENABogB71C////////////AINCgICAgICAgPj/AFQLOgBvIAIgAS0AfSADQQBHcToAbiACIAE2AmQgAiACQe4AajYCaCACIAJB7wBqNgJgIAErAzghCyABKwMwIQ1EAAAAAAAA8D8hCQJAAkAgASsDGCIIRAAAAAAAAAAAZQ0AIAErAyAiB0QAAAAAAAAAAGUNACABKwMoIgVEAAAAAAAAAABlDQAgByAFIA2iIAuiIgWiIgdEAAAAAAAAAAAgB71C////////////AINCgICAgICAgPj/AFQbIQcgCCAFoiIIRAAAAAAAAAAAIAi9Qv///////////wCDQoCAgICAgID4/wBUGyEIIAErA2AiBb0iEEIBfUL+////////B1YgEEIAUyAQQv///////////wCDQoCAgICAgIAIfUL/////////7/8AVnJxDQEgASsDcCIKRAAAAAAAAAAAZCIDIAErA2giBkQAAAAAAAAAAGRyRQ0BIAcgCCAHIAhkGyIMRAAAAAAAAAAAZEUNASAFIAyiIgW9IhBCAX1C/v///////wdWIBBCAFMgEEL///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0BIAogBaMgBiAFo0QAAAAAAADwPyAFIAZjG0QAAAAAAADwPyAGRAAAAAAAAAAAZBsiCSAFIAmiIApkGyAJIAMbIglEAAAAAAAA8D9hBEBEAAAAAAAA8D8hCQwCCyAHIAmiIQcgCCAJoiEIDAELRAAAAAAAAAAAIQdEAAAAAAAAAAAhCAsCfEQAAAAAAAAAACAHRAAAAAAAAOA/oiIFRAAAAAAAAAAAZQ0AGkQAAAAAAAAAACEGRAAAAAAAAAAAIAhEAAAAAAAA4D+iIg9EAAAAAAAAAABlDQAaIAErA1AhCiABKwNIIQwgBSABKAJYIgMEfCADKwMAIQYgAysDCAVEAAAAAAAAAAALoiEFIA8gBqIiBkQAAAAAAAAAAGEEQEQAAAAAAAAAACAFRAAAAAAAAAAAYQ0BGgsgBpogDKIgBSAKoqEhDiAMIAWiIAYgCqKhCyEKAnwgASgCXCIDRQRARAAAAAAAAAAAIQVEAAAAAAAAAAAMAQtEAAAAAAAAAAAhBUQAAAAAAAAAACAJIAsgDSADKwMAoqKiIgZEAAAAAAAAAABhDQAaIAYgAysDCEQ5nVKiRt+RP6IiCxAioiEFIAYgCxAnogshBiABKwMAIQ0gASsDCCELIAIgASsDECIMOQNYIAIgCyAOIAWgIg9EAAAAQKZUWEGjRPjBYxrcpUxAoqA5A1AgAiANIAogBqAiCiALRDmdUqJG35E/ohAiIg5Eje21oPfGsD6lRI3ttaD3xrA+IA69Qv///////////wCDQoCAgICAgID4/wBYG0QAAABAplRYQaIiDqNE+MFjGtylTECioDkDSCAC/QwAAAAAAAAAAAAAAAAAAAAA/QsDKEEAIQMgAkHgAGogAkHIAGogAkEoahAYBEAgAiACKQApNwM4IAIgAikAMDcAPyACLQAoIQRBASEDCyAAQQA6AKABIABBADoAiAEgAEEAOgCAASAAQQA6AHAgAEEAOgBoIABBADoAWCAAIAQ6AAAgACACKQM4NwABIAAgAikAPzcACCAAIA85AzggACAKOQMwIAAgCTkDKCAAIAc5AyAgACAIOQMYIAAgAzoAECAAIAL9AANQ/QsDSCAAIAIpA0g3A0AgAS0AmAFBAUYEQCACIAw5AyAgAiAFRAAAAECmVFhBo0T4wWMa3KVMQKIgC6A5AxggAiANIAYgDqNE+MFjGtylTECioDkDECAC/QwAAAAAAAAAAAAAAAAAAAAA/QsDACACQeAAaiACQRBqIAIQGARAIAAgAv0AAwD9CwNYIABBAToAaAsgAEEBOgCAASAAIAU5A3ggACAGOQNwIAAgAikDIDcDmAEgACAC/QADEP0LA4gBIABBAToAoAELIAJB8ABqJAALuQsDB3wCfwF+AkAgAgJ8AkAgACgCAC0AAEEBRw0AIAAoAgQiCygCeCgCECIKRQ0AIAErAwgiA0QkuJGyRUNVQKREJLiRskVDVUAgA71C////////////AIMiDEKAgICAgICA+P8AWBtEJLiRskVDVcClRAAAAAAAAAAAIAxCgICAgICAgPj/AFQbIgREOZ1SokbfkT+iECIhBiABKwMQIQMgCisDWCEHIAErAwAhBSAKKwMYIQggBEQkuJGyRUNVQKREJLiRskVDVcClRDmdUqJG35E/okQAAAAAAADgP6JEGC1EVPsh6T+gECkQJCEEIAorA2AgCisDQEQAAAAAAAAAACADRAAAAAAAAAAAIAO9Qv///////////wCDQoCAgICAgID4/wBUGyAGRJMQfEX4G4NBoiIDoyADRAAAAAAAAAAAYRsiA6IgCisDACAFRAAAAAAAgGZAoEQAAAAAAIB2QKNEAAAAAAAA4D8gBb1C////////////AINCgICAgICAgPj/AFQbIgWiIAorAyAgBET4wWMa3KVMwKJEAAAAAACAZkCgRAAAAAAAgHZAoyIEoqCgoCIGvUL///////////8Ag0L/////////9/8AVg0AIAorA2ggCisDSCADoiAKKwMIIAWiIAorAyggBKKgoKAiCb1C////////////AINCgICAgICAgPj/AFoNACAKKwNwIAorA1AgA6IgCisDECAFoiAKKwMwIASioKCgvUL///////////8Ag0KAgICAgICA+P8AWg0AIAorA3ggByADoiAIIAWiIAQgCisDOKKgoKAiA71C////////////AINC//////////f/AFYgA0SN7bWg98awPmVyDQAgBkQAAAAAAADwPyADoyIDokQAAAAAAADwP6BEAAAAAAAA4D+iIAsrA4ABoiIFvUL///////////8Ag0L/////////9/8AVg0ARAAAAAAAAPA/IAkgA6KhRAAAAAAAAOA/oiALKwOIAaIiBL1C////////////AINCgICAgICAgPj/AFoNACALKwOQASIDvUL///////////8AgyIMQgF9Qv7///////8HViAMQoCAgICAgIAIfUL/////////7/8AVnENACACIAUgA6M5AwAgBCADowwBC0EAIQogACgCCC0AAEEBRw0BIAAoAgQoAngiCygCFCIARQ0BIAsrAwAiA0QAAAAAAAAAAGUNASABKwMAIQUgACsDACEGIAErAwgiBEQkuJGyRUNVQKREJLiRskVDVUAgBL1C////////////AIMiDEKAgICAgICA+P8AWBtEJLiRskVDVcClRCS4kbJFQ1VApEQkuJGyRUNVwKVEOZ1SokbfkT+iRAAAAAAAAOA/okQYLURU+yHpP6BEGC1EVPsh6T8gDEKAgICAgICA+P8AVBsQKRAkIQcgACsDYCAAKwNAIAErAxAiBEQAAAAAAAAAACAEvUL///////////8Ag0KAgICAgICA+P8AVBsiBKIgBiADIAVEAAAAAACAZkCgRAAAAAAAgHZAo0QAAAAAAADgPyAFvUL///////////8Ag0KAgICAgICA+P8AVBuiIgWiIAArAyAgAyAHRPjBYxrcpUzAokQAAAAAAIBmQKBEAAAAAACAdkCjoiIDoqCgoCIGvUL///////////8Ag0L/////////9/8AVg0BIAArA2ggACsDSCAEoiAAKwMIIAWiIAMgACsDKKKgoKAiB71C////////////AINC//////////f/AFYNASAAKwN4IAArA1ggBKIgACsDGCAFoiADIAArAziioKCgIgO9IgxCAX1C/v///////wdWIAxCAFMgDEL///////////8Ag0KAgICAgICACH1C/////////+//AFZycQ0BIAIgBiADozkDACAHIAOjCzkDCEEBIQoLIAoLiwYDAnwDfwJ+IwBBgAFrIgckACAAIAEgAhAbAkACQCADKwMIIgQgAisDCCIFYgRAIAQgBWMNAQwCCyACKAIAIQZEAAAAAAAAAAAhBUQAAAAAAAAAACEEIAMoAgAiCARAIAgoAgArA3AhBAsgBgRAIAYoAgArA3AhBQsgBCAFYgRAIAQgBWMNAQwCCyAIBEAgCCkDYCEJCyAGBEAgBikDYCEKCyAJIApSBEAgCSAKUw0BDAILRAAAAAAAAAAAIQQgCARAIAgoAgArA5gBIQQLIAYEfCAGKAIAKwOYAQVEAAAAAAAAAAALIARkRQ0BCyAHIAJBgAH8CgAAIAIgA0GAAfwKAAAgAyAHQYAB/AoAAAJAIAIrAwgiBCABKwMIIgViBEAgBCAFYw0BDAILIAEoAgAhA0QAAAAAAAAAACEFRAAAAAAAAAAAIQQgAigCACIGBEAgBigCACsDcCEECyADBEAgAygCACsDcCEFCyAEIAViBEAgBCAFYw0BDAILQgAhCkIAIQkgBgRAIAYpA2AhCQsgAwRAIAMpA2AhCgsg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IAAgAUEAEDINABpBACABRQ0AGiMAQRBrIgYkACAGIAEoAgAiB0EIaygCACIENgIMIAYgASAEajYCBCAGIAdBBGsoAgA2AgggBigCCCIHQfDTAEEAEDIhBCAGKAIEIQgCQCAEBEAgBigCDCEBIwBBQGoiAyQAIANBQGskAEEAIAggARshAwwBCyMAQUBqIgQkACABIAhOBEAgBEIANwIUIARBADYCECAEQfDTADYCDCAEIAc2AgQgBEIANwIcIARCADcCJCAEQgA3AiwgBEEANgI8IARCgYCAgICAgIABNwI0IAQgATYCCCAHIARBBGogCCAIQQFBACAHKAIAKAIUEQYAIAFBACAEKAIcGyEDCyAEQUBrJAAgAw0AIwBBQGoiAyQAIANBADYCECADQcDTADYCDCADIAE2AgggA0Hw0wA2AgRBACEBIANBFGpBAEEn/AsAIANBADYCPCADQQE6ADsgByADQQRqIAhBAUEAIAcoAgAoAhgRBQACQAJAAkAgAygCKA4CAAECCyADKAIYQQAgAygCJEEBRhtBACADKAIgQQFGG0EAIAMoAixBAUYbIQEMAQsgAygCHEEBRwRAIAMoAiwNASADKAIgQQFHDQEgAygCJEEBRw0BCyADKAIUIQELIANBQGskACABIQMLIAZBEGokAEEAIANFDQAaIAIoAgAiAUUNASAFQRhqQQBBOPwLACAFQQE6AEsgBUF/NgIgIAUgADYCHCAFIAM2AhQgBUEBNgJEIAMgBUEUaiABQQEgAygCACgCHBECACAFKAIsIgBBAUYEQCACIAUoAiQ2AgALIABBAUYLIAVB0ABqJAAPCyAFQYQJNgIIIAVB5wM2AgQgBUGRCDYCAAALdgEBfyAAKAIkIgNFBEAgACACNgIYIAAgATYCECAAQQE2AiQgACAAKAI4NgIUDwsCQAJAIAAoAhQgACgCOEcNACAAKAIQIAFHDQAgACgCGEECRw0BIAAgAjYCGA8LIABBAToANiAAQQI2AhggACADQQFqNgIkCwsYACAAIAEoAghBABAyBEAgASACIAMQNAsLMQAgACABKAIIQQAQMgRAIAEgAiADEDQPCyAAKAIIIgAgASACIAMgACgCACgCHBECAAuaAQAgAEEBOgA1AkAgAiAAKAIERw0AIABBAToANAJAIAAoAhAiAkUEQCAAQQE2AiQgACAD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";
530
+ const pthreadPoolSize = 4;
531
+ const wasmConfig = {
532
+ pthreadPoolSize
533
+ };
534
+ const BUFFER_POOL_ENTRY_TTL_MS = 5e3;
535
+ const BUFFER_POOL_SWEEP_INTERVAL_MS = 3e3;
536
+ const BUFFER_POOL_MAX_REUSE_RATIO = 2;
537
+ const CONFIGURED_PTHREAD_POOL_SIZE = Math.max(0, Math.trunc(wasmConfig.pthreadPoolSize));
538
+ const WASM_ASSET_FILES = {
539
+ "simd-mt": {
540
+ wasm: "offloads-simd-mt.wasm",
541
+ js: "offloads-simd-mt.js",
542
+ worker: "offloads-simd-mt.worker.js"
543
+ },
544
+ simd: {
545
+ wasm: "offloads-simd.wasm"
546
+ },
547
+ nosimd: {
548
+ wasm: "offloads-nosimd.wasm"
549
+ }
550
+ };
551
+ const VARIANT_FALLBACKS = {
552
+ "simd-mt": ["simd-mt", "simd", "nosimd"],
553
+ simd: ["simd", "nosimd"],
554
+ nosimd: ["nosimd"]
555
+ };
556
+ let threadedVariantWarningPrinted = false;
557
+ const ensureTrailingSlash = (value) => value.endsWith("/") ? value : `${value}/`;
558
+ const resolveRuntimeBase = () => {
559
+ const runtimeLocation = globalThis.location;
560
+ if (runtimeLocation == null ? void 0 : runtimeLocation.href) {
561
+ return runtimeLocation.href;
562
+ }
563
+ return import.meta.url;
564
+ };
565
+ const buildAssetUrlFromFile = (fileName) => {
566
+ if (wasmBaseUrlOverride !== void 0) {
567
+ const normalizedBase = ensureTrailingSlash(wasmBaseUrlOverride);
568
+ const baseUrl = resolveBaseUrl(normalizedBase);
569
+ return new URL(fileName, baseUrl);
570
+ }
571
+ return new URL((/* @__PURE__ */ Object.assign({ "./wasm/config.json": __vite_glob_0_0, "./wasm/offloads-nosimd.wasm": __vite_glob_0_1, "./wasm/offloads-simd-mt.js": __vite_glob_0_2, "./wasm/offloads-simd-mt.wasm": __vite_glob_0_3, "./wasm/offloads-simd.wasm": __vite_glob_0_4 }))[`./wasm/${fileName}`], import.meta.url);
572
+ };
573
+ const resolveVariantAssetUrl = (variant, kind) => {
574
+ const files = WASM_ASSET_FILES[variant];
575
+ const fileName = files == null ? void 0 : files[kind];
576
+ if (!fileName) {
577
+ throw new Error(`Asset ${kind} is not defined for variant "${variant}".`);
578
+ }
579
+ return buildAssetUrlFromFile(fileName);
580
+ };
581
+ const resolveBaseUrl = (base) => {
582
+ try {
583
+ return new URL(base);
584
+ } catch (e) {
585
+ return new URL(base, resolveRuntimeBase());
586
+ }
587
+ };
588
+ let wasmBaseUrlOverride;
589
+ const isNodeEnvironment = (() => {
590
+ var _a;
591
+ const globalProcess = globalThis.process;
592
+ return !!((_a = globalProcess == null ? void 0 : globalProcess.versions) == null ? void 0 : _a.node);
593
+ })();
594
+ const canUseThreadedWasm = () => {
595
+ if (isNodeEnvironment) {
596
+ return true;
597
+ }
598
+ if (typeof SharedArrayBuffer === "undefined") {
599
+ return false;
600
+ }
601
+ const globalFlags = globalThis;
602
+ if ("crossOriginIsolated" in globalFlags) {
603
+ return !!globalFlags.crossOriginIsolated;
604
+ }
605
+ return false;
606
+ };
607
+ const importNodeModule = async (specifier) => await import(
608
+ /* @vite-ignore */
609
+ specifier
610
+ );
611
+ const createImportNamespace = (additional) => {
612
+ const functionStub = () => 0;
613
+ const target = {};
614
+ return new Proxy(target, {
615
+ get(currentTarget, prop) {
616
+ if (prop in currentTarget) {
617
+ return currentTarget[prop];
618
+ }
619
+ return functionStub;
620
+ }
621
+ });
622
+ };
623
+ const loadWasmBinary = async (variant) => {
624
+ const wasmUrl = resolveVariantAssetUrl(variant, "wasm");
625
+ if (typeof fetch === "function") {
626
+ try {
627
+ const response2 = await fetch(wasmUrl);
628
+ if (response2.ok) {
629
+ return await response2.arrayBuffer();
630
+ }
631
+ } catch (e) {
632
+ }
633
+ }
634
+ if (isNodeEnvironment && wasmUrl.protocol === "file:") {
635
+ const [{ readFile }, { fileURLToPath }] = await Promise.all([
636
+ importNodeModule("node:fs/promises"),
637
+ importNodeModule("node:url")
638
+ ]);
639
+ const filePath = fileURLToPath(wasmUrl);
640
+ const fileBuffer = await readFile(filePath);
641
+ const arrayBuffer = fileBuffer.buffer;
642
+ return arrayBuffer.slice(
643
+ fileBuffer.byteOffset,
644
+ fileBuffer.byteOffset + fileBuffer.byteLength
645
+ );
646
+ }
647
+ const response = await fetch(wasmUrl);
648
+ if (!response.ok) {
649
+ throw new Error(`Failed to load ${variant} offloads WASM: ${wasmUrl.href}`);
650
+ }
651
+ return await response.arrayBuffer();
652
+ };
653
+ const instantiateThreadedProjectionWasm = async () => {
654
+ var _a, _b;
655
+ const scriptUrl = resolveVariantAssetUrl("simd-mt", "js");
656
+ const wasmUrl = resolveVariantAssetUrl("simd-mt", "wasm");
657
+ const workerUrl = resolveVariantAssetUrl("simd-mt", "worker");
658
+ const moduleFactory = await import(
659
+ /* @vite-ignore */
660
+ scriptUrl.href
661
+ );
662
+ const createModule = (_b = (_a = moduleFactory == null ? void 0 : moduleFactory.default) != null ? _a : moduleFactory == null ? void 0 : moduleFactory.Module) != null ? _b : moduleFactory;
663
+ if (typeof createModule !== "function") {
664
+ throw new Error("maplibre-gl-layers: simd-mt module is unavailable.");
665
+ }
666
+ const moduleInstance = await createModule({
667
+ locateFile: (path) => {
668
+ if (path.endsWith(".wasm")) {
669
+ return wasmUrl.href;
670
+ }
671
+ if (path.endsWith(".worker.js")) {
672
+ return workerUrl.href;
673
+ }
674
+ return path;
675
+ }
676
+ });
677
+ const threadLimit = resolveThreadPoolLimit();
678
+ if (threadLimit > 0 && typeof moduleInstance._setThreadPoolSize === "function") {
679
+ moduleInstance._setThreadPoolSize(threadLimit);
680
+ }
681
+ return moduleInstance;
682
+ };
683
+ const instantiateProjectionWasm = async (variant) => {
684
+ if (variant === "simd-mt") {
685
+ const threadedExports = await instantiateThreadedProjectionWasm();
686
+ return createWasmHostFromExports(threadedExports);
687
+ }
688
+ const binary = await loadWasmBinary(variant);
689
+ const imports = {};
690
+ const importTargets = imports;
691
+ importTargets.wasi_snapshot_preview1 = createImportNamespace();
692
+ importTargets.env = createImportNamespace();
693
+ const { instance } = await WebAssembly.instantiate(binary, imports);
694
+ const exports = instance.exports;
695
+ return createWasmHostFromExports(exports);
696
+ };
697
+ const createWasmHostFromExports = (exports) => {
698
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
699
+ if (typeof exports.__wasm_call_ctors === "function") {
700
+ exports.__wasm_call_ctors();
701
+ }
702
+ const memory = (_a = exports.memory) != null ? _a : exports.wasmMemory;
703
+ if (!memory) {
704
+ throw new Error("maplibre-gl-layers: wasm memory is unavailable.");
705
+ }
706
+ const malloc = (_b = exports._malloc) != null ? _b : exports.malloc;
707
+ const free = (_c = exports._free) != null ? _c : exports.free;
708
+ const fromLngLat = (_d = exports._fromLngLat) != null ? _d : exports.fromLngLat;
709
+ const project = (_e = exports._project) != null ? _e : exports.project;
710
+ const unproject = (_f = exports._unproject) != null ? _f : exports.unproject;
711
+ const calculatePerspectiveRatio = (_g = exports._calculatePerspectiveRatio) != null ? _g : exports.calculatePerspectiveRatio;
712
+ const projectLngLatToClipSpace2 = (_h = exports._projectLngLatToClipSpace) != null ? _h : exports.projectLngLatToClipSpace;
713
+ const calculateBillboardDepthKey2 = (_i = exports._calculateBillboardDepthKey) != null ? _i : exports.calculateBillboardDepthKey;
714
+ const calculateSurfaceDepthKey2 = (_j = exports._calculateSurfaceDepthKey) != null ? _j : exports.calculateSurfaceDepthKey;
715
+ const prepareDrawSpriteImages2 = (_k = exports._prepareDrawSpriteImages) != null ? _k : exports.prepareDrawSpriteImages;
716
+ if (!memory || !malloc || !free || !fromLngLat || !project || !unproject || !calculatePerspectiveRatio || !projectLngLatToClipSpace2 || !calculateBillboardDepthKey2 || !calculateSurfaceDepthKey2 || !prepareDrawSpriteImages2) {
717
+ throw new Error("Projection host WASM exports are incomplete.");
718
+ }
719
+ const pool = /* @__PURE__ */ new Map();
720
+ let destroyed = false;
721
+ let sweepTimer;
722
+ const getNow = () => typeof performance !== "undefined" && typeof performance.now === "function" ? performance.now() : Date.now();
723
+ const sweepPool = () => {
724
+ if (destroyed || pool.size === 0) {
725
+ return;
726
+ }
727
+ const limit = getNow() - BUFFER_POOL_ENTRY_TTL_MS;
728
+ const emptyTypeKeys = [];
729
+ pool.forEach((typedPool, typeKey) => {
730
+ const emptyLengths = [];
731
+ typedPool.forEach((stack, length) => {
732
+ let writeIndex = 0;
733
+ for (let i = 0; i < stack.length; i++) {
734
+ const holder = stack[i];
735
+ if (!holder.__pooled) {
736
+ continue;
737
+ }
738
+ if (holder.__lastReleasedAt <= limit) {
739
+ holder.__free();
740
+ continue;
741
+ }
742
+ stack[writeIndex++] = holder;
743
+ }
744
+ if (writeIndex === 0) {
745
+ stack.length = 0;
746
+ emptyLengths.push(length);
747
+ } else {
748
+ stack.length = writeIndex;
749
+ }
750
+ });
751
+ emptyLengths.forEach((length) => typedPool.delete(length));
752
+ if (typedPool.size === 0) {
753
+ emptyTypeKeys.push(typeKey);
754
+ }
755
+ });
756
+ emptyTypeKeys.forEach((typeKey) => pool.delete(typeKey));
757
+ if (!destroyed && pool.size > 0) {
758
+ sweepTimer = setTimeout(() => {
759
+ sweepTimer = void 0;
760
+ sweepPool();
761
+ }, BUFFER_POOL_SWEEP_INTERVAL_MS);
762
+ }
763
+ };
764
+ const schedulePoolSweep = () => {
765
+ if (destroyed || pool.size === 0 || sweepTimer) {
766
+ return;
767
+ }
768
+ sweepTimer = setTimeout(() => {
769
+ sweepTimer = void 0;
770
+ sweepPool();
771
+ }, BUFFER_POOL_SWEEP_INTERVAL_MS);
772
+ };
773
+ const allocate = (length, ArrayType) => {
774
+ let typedPool = pool.get(ArrayType);
775
+ if (!typedPool) {
776
+ typedPool = /* @__PURE__ */ new Map();
777
+ pool.set(ArrayType, typedPool);
778
+ }
779
+ let candidate;
780
+ const exactStack = typedPool.get(length);
781
+ if (exactStack && exactStack.length > 0) {
782
+ candidate = exactStack.pop();
783
+ if (exactStack.length === 0) {
784
+ typedPool.delete(length);
785
+ if (typedPool.size === 0) {
786
+ pool.delete(ArrayType);
787
+ }
788
+ }
789
+ candidate.__pooled = false;
790
+ candidate.__lastReleasedAt = 0;
791
+ return candidate;
792
+ }
793
+ if (typedPool.size > 0) {
794
+ const maxCapacity = length * BUFFER_POOL_MAX_REUSE_RATIO;
795
+ let bestCapacity;
796
+ let bestStack;
797
+ typedPool.forEach((stack, capacity) => {
798
+ if (stack.length === 0) {
799
+ typedPool.delete(capacity);
800
+ return;
801
+ }
802
+ if (capacity < length || capacity > maxCapacity) {
803
+ return;
804
+ }
805
+ if (bestStack === void 0 || capacity < bestCapacity) {
806
+ bestStack = stack;
807
+ bestCapacity = capacity;
808
+ }
809
+ });
810
+ if (bestStack && bestStack.length > 0) {
811
+ candidate = bestStack.pop();
812
+ if (bestStack.length === 0) {
813
+ typedPool.delete(bestCapacity);
814
+ if (typedPool.size === 0) {
815
+ pool.delete(ArrayType);
816
+ }
817
+ }
818
+ candidate.__pooled = false;
819
+ candidate.__lastReleasedAt = 0;
820
+ return candidate;
821
+ }
822
+ }
823
+ let ptr = malloc(length * ArrayType.BYTES_PER_ELEMENT);
824
+ let buffer = new ArrayType(memory.buffer, ptr, length);
825
+ const prepare = () => {
826
+ if (candidate.__ptr === 0) {
827
+ throw new Error("Buffer already freed.");
828
+ }
829
+ if (candidate.__buffer.buffer !== memory.buffer || candidate.__buffer.length !== candidate.length) {
830
+ candidate.__buffer = new ArrayType(
831
+ memory.buffer,
832
+ candidate.__ptr,
833
+ candidate.length
834
+ );
835
+ }
836
+ return { ptr: candidate.__ptr, buffer: candidate.__buffer };
837
+ };
838
+ const release2 = () => {
839
+ if (candidate.__pooled) {
840
+ return;
841
+ }
842
+ if (destroyed) {
843
+ candidate.__free();
844
+ return;
845
+ }
846
+ candidate.__pooled = true;
847
+ candidate.__lastReleasedAt = getNow();
848
+ const capacity = candidate.__capacity;
849
+ let stack = typedPool.get(capacity);
850
+ if (!stack) {
851
+ stack = [];
852
+ typedPool.set(capacity, stack);
853
+ }
854
+ if (!pool.has(ArrayType)) {
855
+ pool.set(ArrayType, typedPool);
856
+ }
857
+ stack.push(candidate);
858
+ schedulePoolSweep();
859
+ };
860
+ const __free = () => {
861
+ if (candidate.__ptr) {
862
+ free(candidate.__ptr);
863
+ candidate.__ptr = 0;
864
+ candidate.__buffer = void 0;
865
+ candidate.__capacity = 0;
866
+ candidate.__pooled = false;
867
+ candidate.__lastReleasedAt = 0;
868
+ candidate.__free = void 0;
869
+ candidate.length = 0;
870
+ candidate.prepare = void 0;
871
+ candidate.release = void 0;
872
+ }
873
+ };
874
+ candidate = {
875
+ length,
876
+ prepare,
877
+ release: release2,
878
+ __ptr: ptr,
879
+ __buffer: buffer,
880
+ __capacity: length,
881
+ __pooled: false,
882
+ __lastReleasedAt: 0,
883
+ __free
884
+ };
885
+ return candidate;
886
+ };
887
+ const allocateTypedBuffer = (ArrayType, elements) => {
888
+ const isElementLength = typeof elements === "number";
889
+ const length = isElementLength ? elements : elements.length;
890
+ const candidate = allocate(length, ArrayType);
891
+ if (!isElementLength) {
892
+ const { buffer } = candidate.prepare();
893
+ buffer.set(elements);
894
+ }
895
+ return candidate;
896
+ };
897
+ const release = () => {
898
+ if (destroyed) {
899
+ return;
900
+ }
901
+ destroyed = true;
902
+ if (sweepTimer) {
903
+ clearTimeout(sweepTimer);
904
+ sweepTimer = void 0;
905
+ }
906
+ pool.forEach((typedPool) => {
907
+ typedPool.forEach((stack) => {
908
+ stack.forEach((holder) => {
909
+ holder.__free();
910
+ });
911
+ stack.length = 0;
912
+ });
913
+ typedPool.clear();
914
+ });
915
+ pool.clear();
916
+ };
917
+ return {
918
+ allocateTypedBuffer,
919
+ fromLngLat,
920
+ project,
921
+ unproject,
922
+ calculatePerspectiveRatio,
923
+ projectLngLatToClipSpace: projectLngLatToClipSpace2,
924
+ calculateBillboardDepthKey: calculateBillboardDepthKey2,
925
+ calculateSurfaceDepthKey: calculateSurfaceDepthKey2,
926
+ prepareDrawSpriteImages: prepareDrawSpriteImages2,
927
+ release
928
+ };
929
+ };
930
+ const initializeWasmHostInternal = async (preferredVariant) => {
931
+ var _a;
932
+ if (preferredVariant === "disabled") {
933
+ console.log(
934
+ "maplibre-gl-layers: Wasm execution disabled by configuration."
935
+ );
936
+ return ["disabled", void 0];
937
+ }
938
+ const variantsToTry = (_a = VARIANT_FALLBACKS[preferredVariant]) != null ? _a : ["nosimd"];
939
+ for (const variant of variantsToTry) {
940
+ if (variant === "simd-mt" && !canUseThreadedWasm()) {
941
+ if (!threadedVariantWarningPrinted) {
942
+ console.warn(
943
+ "maplibre-gl-layers: SharedArrayBuffer is unavailable, skipping simd-mt wasm variant."
944
+ );
945
+ threadedVariantWarningPrinted = true;
946
+ }
947
+ continue;
948
+ }
949
+ try {
950
+ const wasmHost = await instantiateProjectionWasm(variant);
951
+ console.log(
952
+ `maplibre-gl-layers: Initialized wasm module (variant: ${variant}).`
953
+ );
954
+ return [variant, wasmHost];
955
+ } catch (error) {
956
+ console.warn(
957
+ `maplibre-gl-layers: Failed to initialize ${variant} wasm module.`,
958
+ error
959
+ );
960
+ }
961
+ }
962
+ console.warn(
963
+ "maplibre-gl-layers: Falling back to JavaScript implementation."
964
+ );
965
+ return ["disabled", void 0];
966
+ };
967
+ let currentVariant = "disabled";
968
+ let currentWasmHost;
969
+ const initializeWasmHost = async (preferredVariant, options) => {
970
+ let nextBaseUrl = wasmBaseUrlOverride;
971
+ if ((options == null ? void 0 : options.wasmBaseUrl) !== void 0) {
972
+ nextBaseUrl = options.wasmBaseUrl === "" ? void 0 : options.wasmBaseUrl;
973
+ }
974
+ const baseChanged = nextBaseUrl !== wasmBaseUrlOverride;
975
+ if ((options == null ? void 0 : options.wasmBaseUrl) !== void 0) {
976
+ wasmBaseUrlOverride = nextBaseUrl;
977
+ }
978
+ if ((options == null ? void 0 : options.force) || baseChanged) {
979
+ currentWasmHost = void 0;
980
+ }
981
+ if (currentWasmHost !== void 0) {
982
+ return currentVariant;
983
+ }
984
+ const [variant, wasmHost] = await initializeWasmHostInternal(preferredVariant);
985
+ currentVariant = variant;
986
+ currentWasmHost = wasmHost;
987
+ return variant;
988
+ };
989
+ const releaseWasmHost = () => {
990
+ if (currentWasmHost) {
991
+ currentWasmHost.release();
992
+ currentWasmHost = void 0;
993
+ currentVariant = "disabled";
994
+ }
995
+ };
996
+ const prepareWasmHost = () => {
997
+ if (!currentWasmHost) {
998
+ throw new Error("Could not use WasmHost, needs before initialization.");
999
+ }
1000
+ return currentWasmHost;
1001
+ };
1002
+ const resolveThreadPoolLimit = () => {
1003
+ const hardware = typeof navigator !== "undefined" && typeof navigator.hardwareConcurrency === "number" ? navigator.hardwareConcurrency : 0;
1004
+ if (CONFIGURED_PTHREAD_POOL_SIZE > 0 && hardware > 0) {
1005
+ return Math.min(CONFIGURED_PTHREAD_POOL_SIZE, hardware);
1006
+ }
1007
+ if (CONFIGURED_PTHREAD_POOL_SIZE > 0) {
1008
+ return CONFIGURED_PTHREAD_POOL_SIZE;
1009
+ }
1010
+ return hardware;
1011
+ };
1012
+ const spriteLayerHostInitializationMutex = createMutex();
1013
+ let spriteLayerHostVariant = "disabled";
1014
+ const isSpriteLayerHostEnabled = () => spriteLayerHostVariant !== "disabled";
1015
+ const initializeRuntimeHost = async (options) => {
1016
+ var _a;
1017
+ const locker = await spriteLayerHostInitializationMutex.lock();
1018
+ try {
1019
+ const requestedVariant = (_a = options == null ? void 0 : options.variant) != null ? _a : "simd";
1020
+ if (requestedVariant === "disabled") {
1021
+ releaseRuntimeHost();
1022
+ return "disabled";
1023
+ }
1024
+ const forceReload = options !== void 0;
1025
+ spriteLayerHostVariant = await initializeWasmHost(requestedVariant, {
1026
+ force: forceReload,
1027
+ wasmBaseUrl: options == null ? void 0 : options.wasmBaseUrl
1028
+ });
1029
+ return spriteLayerHostVariant;
1030
+ } finally {
1031
+ locker.release();
1032
+ }
1033
+ };
1034
+ const releaseRuntimeHost = () => {
1035
+ if (spriteLayerHostVariant === "disabled") {
1036
+ return;
1037
+ }
1038
+ spriteLayerHostVariant = "disabled";
1039
+ releaseWasmHost();
1040
+ };
1041
+ const detectMultiThreadedModuleAvailability = () => {
1042
+ const scope = typeof globalThis === "object" ? globalThis : void 0;
1043
+ if (!scope) {
1044
+ return {
1045
+ available: false,
1046
+ reason: "Global scope is unavailable."
1047
+ };
1048
+ }
1049
+ if (typeof scope.SharedArrayBuffer !== "function") {
1050
+ return {
1051
+ available: false,
1052
+ reason: "SharedArrayBuffer is not available in this environment."
1053
+ };
1054
+ }
1055
+ if (typeof scope.Atomics !== "object") {
1056
+ return {
1057
+ available: false,
1058
+ reason: "Atomics API is not available in this environment."
1059
+ };
1060
+ }
1061
+ if (typeof scope.Worker !== "function") {
1062
+ return {
1063
+ available: false,
1064
+ reason: "Web Worker API is unavailable in this environment."
1065
+ };
1066
+ }
1067
+ if (scope.crossOriginIsolated !== true) {
1068
+ return {
1069
+ available: false,
1070
+ reason: "Enable cross-origin isolation (COOP/COEP) so SharedArrayBuffer can be used."
1071
+ };
1072
+ }
1073
+ return { available: true };
1074
+ };
307
1075
  var maplibreGl$1 = { exports: {} };
308
1076
  /**
309
1077
  * MapLibre GL JS
@@ -21249,247 +22017,79 @@ ${n2.shaderPreludeCode.vertexSource}`, define: n2.shaderDefine }, defaultProject
21249
22017
  }, e.RasterDEMTileSource = X, e.RasterTileSource = H, e.ScaleControl = class {
21250
22018
  constructor(e2) {
21251
22019
  this._onMove = () => {
21252
- us(this._map, this._container, this.options);
21253
- }, this.setUnit = (e3) => {
21254
- this.options.unit = e3, us(this._map, this._container, this.options);
21255
- }, this.options = Object.assign(Object.assign({}, hs), e2);
21256
- }
21257
- getDefaultPosition() {
21258
- return "bottom-left";
21259
- }
21260
- onAdd(e2) {
21261
- return this._map = e2, this._container = c.create("div", "maplibregl-ctrl maplibregl-ctrl-scale", e2.getContainer()), this._map.on("move", this._onMove), this._onMove(), this._container;
21262
- }
21263
- onRemove() {
21264
- c.remove(this._container), this._map.off("move", this._onMove), this._map = void 0;
21265
- }
21266
- }, e.ScrollZoomHandler = Sr, e.Style = Ii, e.TerrainControl = class {
21267
- constructor(e2) {
21268
- this._toggleTerrain = () => {
21269
- this._map.getTerrain() ? this._map.setTerrain(null) : this._map.setTerrain(this.options), this._updateTerrainIcon();
21270
- }, this._updateTerrainIcon = () => {
21271
- this._terrainButton.classList.remove("maplibregl-ctrl-terrain"), this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled"), this._map.terrain ? (this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled"), this._terrainButton.title = this._map._getUIString("TerrainControl.Disable")) : (this._terrainButton.classList.add("maplibregl-ctrl-terrain"), this._terrainButton.title = this._map._getUIString("TerrainControl.Enable"));
21272
- }, this.options = e2;
21273
- }
21274
- onAdd(e2) {
21275
- return this._map = e2, this._container = c.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._terrainButton = c.create("button", "maplibregl-ctrl-terrain", this._container), c.create("span", "maplibregl-ctrl-icon", this._terrainButton).setAttribute("aria-hidden", "true"), this._terrainButton.type = "button", this._terrainButton.addEventListener("click", this._toggleTerrain), this._updateTerrainIcon(), this._map.on("terrain", this._updateTerrainIcon), this._container;
21276
- }
21277
- onRemove() {
21278
- c.remove(this._container), this._map.off("terrain", this._updateTerrainIcon), this._map = void 0;
21279
- }
21280
- }, e.TwoFingersTouchPitchHandler = wr, e.TwoFingersTouchRotateHandler = br, e.TwoFingersTouchZoomHandler = vr, e.TwoFingersTouchZoomRotateHandler = Lr, e.VectorTileSource = q, e.VideoSource = Y, e.addSourceType = (e2, i2) => t._(void 0, void 0, void 0, (function* () {
21281
- if (te(e2)) throw new Error(`A source type called "${e2}" already exists.`);
21282
- ((e3, t2) => {
21283
- ee[e3] = t2;
21284
- })(e2, i2);
21285
- })), e.clearPrewarmedResources = function() {
21286
- const e2 = k;
21287
- e2 && (e2.isPreloaded() && 1 === e2.numActive() ? (e2.release(z), k = null) : console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"));
21288
- }, e.createTileMesh = Jt, e.getMaxParallelImageRequests = function() {
21289
- return t.a.MAX_PARALLEL_IMAGE_REQUESTS;
21290
- }, e.getRTLTextPluginStatus = function() {
21291
- return re().getRTLTextPluginStatus();
21292
- }, e.getVersion = function() {
21293
- return fs;
21294
- }, e.getWorkerCount = function() {
21295
- return A.workerCount;
21296
- }, e.getWorkerUrl = function() {
21297
- return t.a.WORKER_URL;
21298
- }, e.importScriptInWorkers = function(e2) {
21299
- return j().broadcast("IS", e2);
21300
- }, e.isTimeFrozen = function() {
21301
- return n.isFrozen();
21302
- }, e.prewarm = function() {
21303
- B().acquire(z);
21304
- }, e.restoreNow = function() {
21305
- n.restoreNow();
21306
- }, e.setMaxParallelImageRequests = function(e2) {
21307
- t.a.MAX_PARALLEL_IMAGE_REQUESTS = e2;
21308
- }, e.setNow = function(e2) {
21309
- n.setNow(e2);
21310
- }, e.setRTLTextPlugin = function(e2, t2) {
21311
- return re().setRTLTextPlugin(e2, t2);
21312
- }, e.setWorkerCount = function(e2) {
21313
- A.workerCount = e2;
21314
- }, e.setWorkerUrl = function(e2) {
21315
- t.a.WORKER_URL = e2;
21316
- };
21317
- }));
21318
- var maplibregl$1 = maplibregl;
21319
- return maplibregl$1;
21320
- }));
21321
- })(maplibreGl$1);
21322
- return maplibreGl$1.exports;
21323
- }
21324
- requireMaplibreGl();
21325
- /*!
21326
- * name: async-primitives
21327
- * version: 1.4.0
21328
- * description: A collection of primitive functions for asynchronous operations
21329
- * author: Kouji Matsui (@kekyo@mi.kekyo.net)
21330
- * license: MIT
21331
- * repository.url: https://github.com/kekyo/async-primitives.git
21332
- * git.commit.hash: 147b7bee11bf17823a185e0492d7f73587748715
21333
- */
21334
- const __NOOP_HANDLER = () => {
21335
- };
21336
- const __NOOP_RELEASABLE = {
21337
- release: __NOOP_HANDLER,
21338
- [Symbol.dispose]: __NOOP_HANDLER
21339
- };
21340
- const onAbort = (signal, callback) => {
21341
- if (!signal) {
21342
- return __NOOP_RELEASABLE;
21343
- }
21344
- if (signal.aborted) {
21345
- try {
21346
- callback();
21347
- } catch (error) {
21348
- console.warn("AbortHook callback error: ", error);
21349
- }
21350
- return __NOOP_RELEASABLE;
21351
- }
21352
- let abortHandler;
21353
- abortHandler = () => {
21354
- if (abortHandler) {
21355
- signal.removeEventListener("abort", abortHandler);
21356
- abortHandler = void 0;
21357
- try {
21358
- callback();
21359
- } catch (error) {
21360
- console.warn("AbortHook callback error: ", error);
21361
- }
21362
- }
21363
- };
21364
- const release = () => {
21365
- if (abortHandler) {
21366
- signal.removeEventListener("abort", abortHandler);
21367
- abortHandler = void 0;
21368
- }
21369
- };
21370
- signal.addEventListener("abort", abortHandler, { once: true });
21371
- const handle = {
21372
- release,
21373
- [Symbol.dispose]: release
21374
- };
21375
- return handle;
21376
- };
21377
- const defer = (fn) => {
21378
- if (typeof setImmediate === "function") {
21379
- setImmediate(fn);
21380
- } else {
21381
- setTimeout(fn, 0);
21382
- }
21383
- };
21384
- const ABORTED_ERROR$2 = () => new Error("Lock acquisition was aborted");
21385
- const createLockHandle = (releaseCallback) => {
21386
- let isActive = true;
21387
- const release = () => {
21388
- if (!isActive) {
21389
- return;
21390
- }
21391
- isActive = false;
21392
- releaseCallback();
21393
- };
21394
- return {
21395
- get isActive() {
21396
- return isActive;
21397
- },
21398
- release,
21399
- [Symbol.dispose]: release
21400
- };
21401
- };
21402
- const createMutex = (maxConsecutiveCalls = 20) => {
21403
- let isLocked = false;
21404
- const queue = [];
21405
- let count = 0;
21406
- const processQueue = () => {
21407
- var _a;
21408
- if (isLocked || queue.length === 0) {
21409
- return;
21410
- }
21411
- const item = queue.shift();
21412
- if ((_a = item.signal) == null ? void 0 : _a.aborted) {
21413
- item.reject(ABORTED_ERROR$2());
21414
- scheduleNextProcess();
21415
- return;
21416
- }
21417
- isLocked = true;
21418
- const lockHandle = createLockHandle(releaseLock);
21419
- item.resolve(lockHandle);
21420
- };
21421
- const scheduleNextProcess = () => {
21422
- count++;
21423
- if (count >= maxConsecutiveCalls) {
21424
- count = 0;
21425
- defer(processQueue);
21426
- } else {
21427
- processQueue();
21428
- }
21429
- };
21430
- const releaseLock = () => {
21431
- if (!isLocked) {
21432
- return;
21433
- }
21434
- isLocked = false;
21435
- scheduleNextProcess();
21436
- };
21437
- const removeFromQueue = (item) => {
21438
- const index = queue.indexOf(item);
21439
- if (index !== -1) {
21440
- queue.splice(index, 1);
21441
- }
21442
- };
21443
- const lock = async (signal) => {
21444
- if (signal) {
21445
- if (signal.aborted) {
21446
- throw ABORTED_ERROR$2();
21447
- }
21448
- return new Promise((resolve, reject) => {
21449
- const queueItem = {
21450
- resolve: void 0,
21451
- reject: void 0,
21452
- signal
21453
- };
21454
- const abortHandle = onAbort(signal, () => {
21455
- removeFromQueue(queueItem);
21456
- reject(ABORTED_ERROR$2());
21457
- });
21458
- queueItem.resolve = (handle) => {
21459
- abortHandle.release();
21460
- resolve(handle);
21461
- };
21462
- queueItem.reject = (error) => {
21463
- abortHandle.release();
21464
- reject(error);
22020
+ us(this._map, this._container, this.options);
22021
+ }, this.setUnit = (e3) => {
22022
+ this.options.unit = e3, us(this._map, this._container, this.options);
22023
+ }, this.options = Object.assign(Object.assign({}, hs), e2);
22024
+ }
22025
+ getDefaultPosition() {
22026
+ return "bottom-left";
22027
+ }
22028
+ onAdd(e2) {
22029
+ return this._map = e2, this._container = c.create("div", "maplibregl-ctrl maplibregl-ctrl-scale", e2.getContainer()), this._map.on("move", this._onMove), this._onMove(), this._container;
22030
+ }
22031
+ onRemove() {
22032
+ c.remove(this._container), this._map.off("move", this._onMove), this._map = void 0;
22033
+ }
22034
+ }, e.ScrollZoomHandler = Sr, e.Style = Ii, e.TerrainControl = class {
22035
+ constructor(e2) {
22036
+ this._toggleTerrain = () => {
22037
+ this._map.getTerrain() ? this._map.setTerrain(null) : this._map.setTerrain(this.options), this._updateTerrainIcon();
22038
+ }, this._updateTerrainIcon = () => {
22039
+ this._terrainButton.classList.remove("maplibregl-ctrl-terrain"), this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled"), this._map.terrain ? (this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled"), this._terrainButton.title = this._map._getUIString("TerrainControl.Disable")) : (this._terrainButton.classList.add("maplibregl-ctrl-terrain"), this._terrainButton.title = this._map._getUIString("TerrainControl.Enable"));
22040
+ }, this.options = e2;
22041
+ }
22042
+ onAdd(e2) {
22043
+ return this._map = e2, this._container = c.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._terrainButton = c.create("button", "maplibregl-ctrl-terrain", this._container), c.create("span", "maplibregl-ctrl-icon", this._terrainButton).setAttribute("aria-hidden", "true"), this._terrainButton.type = "button", this._terrainButton.addEventListener("click", this._toggleTerrain), this._updateTerrainIcon(), this._map.on("terrain", this._updateTerrainIcon), this._container;
22044
+ }
22045
+ onRemove() {
22046
+ c.remove(this._container), this._map.off("terrain", this._updateTerrainIcon), this._map = void 0;
22047
+ }
22048
+ }, e.TwoFingersTouchPitchHandler = wr, e.TwoFingersTouchRotateHandler = br, e.TwoFingersTouchZoomHandler = vr, e.TwoFingersTouchZoomRotateHandler = Lr, e.VectorTileSource = q, e.VideoSource = Y, e.addSourceType = (e2, i2) => t._(void 0, void 0, void 0, (function* () {
22049
+ if (te(e2)) throw new Error(`A source type called "${e2}" already exists.`);
22050
+ ((e3, t2) => {
22051
+ ee[e3] = t2;
22052
+ })(e2, i2);
22053
+ })), e.clearPrewarmedResources = function() {
22054
+ const e2 = k;
22055
+ e2 && (e2.isPreloaded() && 1 === e2.numActive() ? (e2.release(z), k = null) : console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"));
22056
+ }, e.createTileMesh = Jt, e.getMaxParallelImageRequests = function() {
22057
+ return t.a.MAX_PARALLEL_IMAGE_REQUESTS;
22058
+ }, e.getRTLTextPluginStatus = function() {
22059
+ return re().getRTLTextPluginStatus();
22060
+ }, e.getVersion = function() {
22061
+ return fs;
22062
+ }, e.getWorkerCount = function() {
22063
+ return A.workerCount;
22064
+ }, e.getWorkerUrl = function() {
22065
+ return t.a.WORKER_URL;
22066
+ }, e.importScriptInWorkers = function(e2) {
22067
+ return j().broadcast("IS", e2);
22068
+ }, e.isTimeFrozen = function() {
22069
+ return n.isFrozen();
22070
+ }, e.prewarm = function() {
22071
+ B().acquire(z);
22072
+ }, e.restoreNow = function() {
22073
+ n.restoreNow();
22074
+ }, e.setMaxParallelImageRequests = function(e2) {
22075
+ t.a.MAX_PARALLEL_IMAGE_REQUESTS = e2;
22076
+ }, e.setNow = function(e2) {
22077
+ n.setNow(e2);
22078
+ }, e.setRTLTextPlugin = function(e2, t2) {
22079
+ return re().setRTLTextPlugin(e2, t2);
22080
+ }, e.setWorkerCount = function(e2) {
22081
+ A.workerCount = e2;
22082
+ }, e.setWorkerUrl = function(e2) {
22083
+ t.a.WORKER_URL = e2;
21465
22084
  };
21466
- queue.push(queueItem);
21467
- processQueue();
21468
- });
21469
- } else {
21470
- return new Promise((resolve, reject) => {
21471
- queue.push({
21472
- resolve,
21473
- reject
21474
- });
21475
- processQueue();
21476
- });
21477
- }
21478
- };
21479
- const result = {
21480
- lock,
21481
- waiter: {
21482
- wait: lock
21483
- },
21484
- get isLocked() {
21485
- return isLocked;
21486
- },
21487
- get pendingCount() {
21488
- return queue.length;
21489
- }
21490
- };
21491
- return result;
21492
- };
22085
+ }));
22086
+ var maplibregl$1 = maplibregl;
22087
+ return maplibregl$1;
22088
+ }));
22089
+ })(maplibreGl$1);
22090
+ return maplibreGl$1.exports;
22091
+ }
22092
+ requireMaplibreGl();
21493
22093
  const SPRITE_ORIGIN_REFERENCE_KEY_NONE = -1;
21494
22094
  const SPRITE_ORIGIN_REFERENCE_INDEX_NONE = -1;
21495
22095
  const linearEasing = (progress) => {
@@ -22970,15 +23570,12 @@ uniform vec2 u_billboardHalfSize;
22970
23570
  uniform vec2 u_billboardAnchor;
22971
23571
  uniform vec2 u_billboardSinCos;
22972
23572
  uniform float u_surfaceClipEnabled;
22973
- uniform vec4 u_surfaceClipCenter;
22974
- uniform vec4 u_surfaceClipBasisEast;
22975
- uniform vec4 u_surfaceClipBasisNorth;
23573
+ uniform mat4 u_surfaceClipMatrix;
22976
23574
  uniform float u_surfaceDepthBias;
22977
23575
  varying vec2 v_uv;
22978
- vec2 computeBillboardCorner(vec2 uv) {
22979
- vec2 base = vec2(uv.x * 2.0 - 1.0, 1.0 - uv.y * 2.0);
23576
+ vec2 computeBillboardCorner(vec2 baseCorner) {
22980
23577
  vec2 anchorShift = vec2(u_billboardAnchor.x * u_billboardHalfSize.x, u_billboardAnchor.y * u_billboardHalfSize.y);
22981
- vec2 shifted = vec2(base.x * u_billboardHalfSize.x, base.y * u_billboardHalfSize.y) - anchorShift;
23578
+ vec2 shifted = vec2(baseCorner.x * u_billboardHalfSize.x, baseCorner.y * u_billboardHalfSize.y) - anchorShift;
22982
23579
  float sinR = u_billboardSinCos.x;
22983
23580
  float cosR = u_billboardSinCos.y;
22984
23581
  vec2 rotated = vec2(
@@ -22994,9 +23591,7 @@ vec4 computeSurfaceCorner(vec2 corner) {
22994
23591
  if (u_surfaceClipEnabled < 0.5) {
22995
23592
  return vec4(0.0, 0.0, 0.0, 1.0);
22996
23593
  }
22997
- vec4 clip = u_surfaceClipCenter
22998
- + (corner.x * u_surfaceClipBasisEast)
22999
- + (corner.y * u_surfaceClipBasisNorth);
23594
+ vec4 clip = u_surfaceClipMatrix * vec4(1.0, corner.x, corner.y, 0.0);
23000
23595
  clip.z += u_surfaceDepthBias * clip.w;
23001
23596
  return clip;
23002
23597
  }
@@ -23004,7 +23599,7 @@ void main() {
23004
23599
  v_uv = a_uv;
23005
23600
  vec4 position;
23006
23601
  if (u_billboardMode > 0.5) {
23007
- vec2 screenPosition = computeBillboardCorner(a_uv);
23602
+ vec2 screenPosition = computeBillboardCorner(a_position.xy);
23008
23603
  position = vec4(screenPosition, 0.0, 1.0);
23009
23604
  } else if (u_surfaceMode > 0.5) {
23010
23605
  vec2 baseCorner = vec2(a_position.x, a_position.y);
@@ -23144,9 +23739,533 @@ const createShaderProgram = (glContext, vertexSource, fragmentSource) => {
23144
23739
  if (!glContext.getProgramParameter(program, glContext.LINK_STATUS)) {
23145
23740
  const info = (_a = glContext.getProgramInfoLog(program)) != null ? _a : "unknown error";
23146
23741
  glContext.deleteProgram(program);
23147
- throw new Error(`Program link failed: ${info}`);
23148
- }
23149
- return program;
23742
+ throw new Error(`Program link failed: ${info}`);
23743
+ }
23744
+ return program;
23745
+ };
23746
+ const SURFACE_CLIP_MATRIX_IDENTITY = new Float32Array([
23747
+ 0,
23748
+ 0,
23749
+ 0,
23750
+ 1,
23751
+ 0,
23752
+ 0,
23753
+ 0,
23754
+ 0,
23755
+ 0,
23756
+ 0,
23757
+ 0,
23758
+ 0,
23759
+ 0,
23760
+ 0,
23761
+ 0,
23762
+ 0
23763
+ ]);
23764
+ const FLOATS_PER_VERTEX = VERTEX_COMPONENT_COUNT;
23765
+ const FLOATS_PER_SPRITE = QUAD_VERTEX_COUNT * VERTEX_COMPONENT_COUNT;
23766
+ const createSpriteDrawProgram = (glContext) => {
23767
+ const vertexBuffer = glContext.createBuffer();
23768
+ if (!vertexBuffer) {
23769
+ throw new Error("Failed to create vertex buffer.");
23770
+ }
23771
+ glContext.bindBuffer(glContext.ARRAY_BUFFER, vertexBuffer);
23772
+ glContext.bufferData(
23773
+ glContext.ARRAY_BUFFER,
23774
+ INITIAL_QUAD_VERTICES,
23775
+ glContext.DYNAMIC_DRAW
23776
+ );
23777
+ let vertexBufferCapacityFloats = INITIAL_QUAD_VERTICES.length;
23778
+ const program = createShaderProgram(
23779
+ glContext,
23780
+ VERTEX_SHADER_SOURCE,
23781
+ FRAGMENT_SHADER_SOURCE
23782
+ );
23783
+ glContext.useProgram(program);
23784
+ const attribPositionLocation = glContext.getAttribLocation(
23785
+ program,
23786
+ "a_position"
23787
+ );
23788
+ const attribUvLocation = glContext.getAttribLocation(program, "a_uv");
23789
+ if (attribPositionLocation === -1 || attribUvLocation === -1) {
23790
+ glContext.deleteBuffer(vertexBuffer);
23791
+ glContext.deleteProgram(program);
23792
+ throw new Error("Failed to acquire attribute locations.");
23793
+ }
23794
+ const uniformTextureLocation = glContext.getUniformLocation(
23795
+ program,
23796
+ "u_texture"
23797
+ );
23798
+ const uniformOpacityLocation = glContext.getUniformLocation(
23799
+ program,
23800
+ "u_opacity"
23801
+ );
23802
+ const uniformScreenToClipScaleLocation = glContext.getUniformLocation(
23803
+ program,
23804
+ "u_screenToClipScale"
23805
+ );
23806
+ const uniformScreenToClipOffsetLocation = glContext.getUniformLocation(
23807
+ program,
23808
+ "u_screenToClipOffset"
23809
+ );
23810
+ const uniformBillboardModeLocation = glContext.getUniformLocation(
23811
+ program,
23812
+ "u_billboardMode"
23813
+ );
23814
+ const uniformBillboardCenterLocation = glContext.getUniformLocation(
23815
+ program,
23816
+ "u_billboardCenter"
23817
+ );
23818
+ const uniformBillboardHalfSizeLocation = glContext.getUniformLocation(
23819
+ program,
23820
+ "u_billboardHalfSize"
23821
+ );
23822
+ const uniformBillboardAnchorLocation = glContext.getUniformLocation(
23823
+ program,
23824
+ "u_billboardAnchor"
23825
+ );
23826
+ const uniformBillboardSinCosLocation = glContext.getUniformLocation(
23827
+ program,
23828
+ "u_billboardSinCos"
23829
+ );
23830
+ const uniformSurfaceModeLocation = glContext.getUniformLocation(
23831
+ program,
23832
+ "u_surfaceMode"
23833
+ );
23834
+ const uniformSurfaceDepthBiasLocation = glContext.getUniformLocation(
23835
+ program,
23836
+ "u_surfaceDepthBias"
23837
+ );
23838
+ const uniformSurfaceClipEnabledLocation = glContext.getUniformLocation(
23839
+ program,
23840
+ "u_surfaceClipEnabled"
23841
+ );
23842
+ const uniformSurfaceClipMatrixLocation = glContext.getUniformLocation(
23843
+ program,
23844
+ "u_surfaceClipMatrix"
23845
+ );
23846
+ if (!uniformTextureLocation || !uniformOpacityLocation || !uniformScreenToClipScaleLocation || !uniformScreenToClipOffsetLocation || !uniformBillboardModeLocation || !uniformBillboardCenterLocation || !uniformBillboardHalfSizeLocation || !uniformBillboardAnchorLocation || !uniformBillboardSinCosLocation || !uniformSurfaceModeLocation || !uniformSurfaceDepthBiasLocation || !uniformSurfaceClipEnabledLocation || !uniformSurfaceClipMatrixLocation) {
23847
+ glContext.deleteBuffer(vertexBuffer);
23848
+ glContext.deleteProgram(program);
23849
+ throw new Error("Failed to acquire uniform locations.");
23850
+ }
23851
+ glContext.uniform1i(uniformTextureLocation, 0);
23852
+ glContext.uniform1f(uniformOpacityLocation, 1);
23853
+ glContext.uniform2f(uniformScreenToClipScaleLocation, 1, 1);
23854
+ glContext.uniform2f(uniformScreenToClipOffsetLocation, 0, 0);
23855
+ glContext.uniform1f(uniformSurfaceClipEnabledLocation, 0);
23856
+ glContext.uniformMatrix4fv(
23857
+ uniformSurfaceClipMatrixLocation,
23858
+ false,
23859
+ SURFACE_CLIP_MATRIX_IDENTITY
23860
+ );
23861
+ glContext.uniform1f(uniformBillboardModeLocation, 0);
23862
+ glContext.uniform2f(uniformBillboardCenterLocation, 0, 0);
23863
+ glContext.uniform2f(uniformBillboardHalfSizeLocation, 0, 0);
23864
+ glContext.uniform2f(uniformBillboardAnchorLocation, 0, 0);
23865
+ glContext.uniform2f(uniformBillboardSinCosLocation, 0, 1);
23866
+ glContext.uniform1f(uniformSurfaceModeLocation, 0);
23867
+ glContext.uniform1f(uniformSurfaceDepthBiasLocation, 0);
23868
+ const vertexBatchOffsets = /* @__PURE__ */ new Map();
23869
+ let batchedVertexScratch = new Float32Array(FLOATS_PER_SPRITE);
23870
+ const ensureVertexBatchCapacity = (requiredFloatCount) => {
23871
+ if (batchedVertexScratch.length >= requiredFloatCount) {
23872
+ return;
23873
+ }
23874
+ let capacity = batchedVertexScratch.length || FLOATS_PER_SPRITE;
23875
+ while (capacity < requiredFloatCount) {
23876
+ capacity *= 2;
23877
+ }
23878
+ batchedVertexScratch = new Float32Array(capacity);
23879
+ };
23880
+ const ensureVertexBufferCapacity = (requiredFloatCount) => {
23881
+ if (requiredFloatCount <= vertexBufferCapacityFloats) {
23882
+ return;
23883
+ }
23884
+ let capacity = Math.max(vertexBufferCapacityFloats, FLOATS_PER_SPRITE);
23885
+ while (capacity < requiredFloatCount) {
23886
+ capacity *= 2;
23887
+ }
23888
+ glContext.bufferData(
23889
+ glContext.ARRAY_BUFFER,
23890
+ capacity * FLOAT_SIZE,
23891
+ glContext.DYNAMIC_DRAW
23892
+ );
23893
+ vertexBufferCapacityFloats = capacity;
23894
+ };
23895
+ const orphanVertexBuffer = () => {
23896
+ glContext.bufferData(
23897
+ glContext.ARRAY_BUFFER,
23898
+ vertexBufferCapacityFloats * FLOAT_SIZE,
23899
+ glContext.DYNAMIC_DRAW
23900
+ );
23901
+ };
23902
+ let currentScaleX = Number.NaN;
23903
+ let currentScaleY = Number.NaN;
23904
+ let currentOffsetX = Number.NaN;
23905
+ let currentOffsetY = Number.NaN;
23906
+ let currentSurfaceMode = Number.NaN;
23907
+ let currentSurfaceClipEnabled = Number.NaN;
23908
+ const currentSurfaceClipMatrix = new Float32Array(16);
23909
+ currentSurfaceClipMatrix.fill(Number.NaN);
23910
+ const surfaceClipMatrixScratch = new Float32Array(16);
23911
+ let currentSurfaceDepthBias = Number.NaN;
23912
+ let currentBillboardMode = Number.NaN;
23913
+ const currentBillboardCenter = { x: Number.NaN, y: Number.NaN };
23914
+ const currentBillboardHalfSize = { x: Number.NaN, y: Number.NaN };
23915
+ const currentBillboardAnchor = { x: Number.NaN, y: Number.NaN };
23916
+ const currentBillboardSinCos = { x: Number.NaN, y: Number.NaN };
23917
+ let currentOpacity = Number.NaN;
23918
+ let currentBoundTexture = null;
23919
+ const resetFrameState = () => {
23920
+ currentScaleX = Number.NaN;
23921
+ currentScaleY = Number.NaN;
23922
+ currentOffsetX = Number.NaN;
23923
+ currentOffsetY = Number.NaN;
23924
+ currentSurfaceMode = Number.NaN;
23925
+ currentSurfaceClipEnabled = Number.NaN;
23926
+ currentSurfaceClipMatrix.fill(Number.NaN);
23927
+ currentSurfaceDepthBias = Number.NaN;
23928
+ currentBillboardMode = Number.NaN;
23929
+ currentBillboardCenter.x = Number.NaN;
23930
+ currentBillboardCenter.y = Number.NaN;
23931
+ currentBillboardHalfSize.x = Number.NaN;
23932
+ currentBillboardHalfSize.y = Number.NaN;
23933
+ currentBillboardAnchor.x = Number.NaN;
23934
+ currentBillboardAnchor.y = Number.NaN;
23935
+ currentBillboardSinCos.x = Number.NaN;
23936
+ currentBillboardSinCos.y = Number.NaN;
23937
+ currentOpacity = Number.NaN;
23938
+ currentBoundTexture = null;
23939
+ vertexBatchOffsets.clear();
23940
+ };
23941
+ const matricesEqual = (a, b) => {
23942
+ for (let index = 0; index < a.length; index++) {
23943
+ if (a[index] !== b[index]) {
23944
+ return false;
23945
+ }
23946
+ }
23947
+ return true;
23948
+ };
23949
+ const writeSurfaceClipMatrix = (target, inputs) => {
23950
+ const center = inputs.clipCenter;
23951
+ const basisEast = inputs.clipBasisEast;
23952
+ const basisNorth = inputs.clipBasisNorth;
23953
+ target[0] = center.x;
23954
+ target[1] = center.y;
23955
+ target[2] = center.z;
23956
+ target[3] = center.w;
23957
+ target[4] = basisEast.x;
23958
+ target[5] = basisEast.y;
23959
+ target[6] = basisEast.z;
23960
+ target[7] = basisEast.w;
23961
+ target[8] = basisNorth.x;
23962
+ target[9] = basisNorth.y;
23963
+ target[10] = basisNorth.z;
23964
+ target[11] = basisNorth.w;
23965
+ target[12] = 0;
23966
+ target[13] = 0;
23967
+ target[14] = 0;
23968
+ target[15] = 0;
23969
+ };
23970
+ const applyScreenToClipUniforms = (scaleX, scaleY, offsetX, offsetY) => {
23971
+ if (scaleX !== currentScaleX || scaleY !== currentScaleY || offsetX !== currentOffsetX || offsetY !== currentOffsetY) {
23972
+ glContext.uniform2f(uniformScreenToClipScaleLocation, scaleX, scaleY);
23973
+ glContext.uniform2f(uniformScreenToClipOffsetLocation, offsetX, offsetY);
23974
+ currentScaleX = scaleX;
23975
+ currentScaleY = scaleY;
23976
+ currentOffsetX = offsetX;
23977
+ currentOffsetY = offsetY;
23978
+ }
23979
+ };
23980
+ const applySurfaceMode = (enabled) => {
23981
+ const value = enabled ? 1 : 0;
23982
+ if (value !== currentSurfaceMode) {
23983
+ glContext.uniform1f(uniformSurfaceModeLocation, value);
23984
+ currentSurfaceMode = value;
23985
+ }
23986
+ };
23987
+ const applySurfaceClipUniforms = (enabled, inputs) => {
23988
+ const hasInputs = Boolean(enabled && inputs);
23989
+ const value = hasInputs ? 1 : 0;
23990
+ if (value !== currentSurfaceClipEnabled) {
23991
+ glContext.uniform1f(uniformSurfaceClipEnabledLocation, value);
23992
+ currentSurfaceClipEnabled = value;
23993
+ }
23994
+ if (!hasInputs || !inputs) {
23995
+ return;
23996
+ }
23997
+ writeSurfaceClipMatrix(surfaceClipMatrixScratch, inputs);
23998
+ if (!matricesEqual(surfaceClipMatrixScratch, currentSurfaceClipMatrix)) {
23999
+ glContext.uniformMatrix4fv(
24000
+ uniformSurfaceClipMatrixLocation,
24001
+ false,
24002
+ surfaceClipMatrixScratch
24003
+ );
24004
+ currentSurfaceClipMatrix.set(surfaceClipMatrixScratch);
24005
+ }
24006
+ };
24007
+ const beginFrame = () => {
24008
+ glContext.useProgram(program);
24009
+ glContext.bindBuffer(glContext.ARRAY_BUFFER, vertexBuffer);
24010
+ glContext.enableVertexAttribArray(attribPositionLocation);
24011
+ glContext.vertexAttribPointer(
24012
+ attribPositionLocation,
24013
+ POSITION_COMPONENT_COUNT,
24014
+ glContext.FLOAT,
24015
+ false,
24016
+ VERTEX_STRIDE,
24017
+ 0
24018
+ );
24019
+ glContext.enableVertexAttribArray(attribUvLocation);
24020
+ glContext.vertexAttribPointer(
24021
+ attribUvLocation,
24022
+ UV_COMPONENT_COUNT,
24023
+ glContext.FLOAT,
24024
+ false,
24025
+ VERTEX_STRIDE,
24026
+ UV_OFFSET
24027
+ );
24028
+ resetFrameState();
24029
+ };
24030
+ const uploadVertexBatch = (items) => {
24031
+ vertexBatchOffsets.clear();
24032
+ if (items.length === 0) {
24033
+ return;
24034
+ }
24035
+ let requiredFloatCount = 0;
24036
+ for (const prepared of items) {
24037
+ requiredFloatCount += prepared.vertexData.length;
24038
+ }
24039
+ ensureVertexBatchCapacity(requiredFloatCount);
24040
+ let floatOffset = 0;
24041
+ let vertexOffset = 0;
24042
+ for (const prepared of items) {
24043
+ const data = prepared.vertexData;
24044
+ batchedVertexScratch.set(data, floatOffset);
24045
+ vertexBatchOffsets.set(prepared, vertexOffset);
24046
+ floatOffset += data.length;
24047
+ vertexOffset += data.length / FLOATS_PER_VERTEX;
24048
+ }
24049
+ const uploadView = batchedVertexScratch.subarray(0, floatOffset);
24050
+ ensureVertexBufferCapacity(uploadView.length);
24051
+ orphanVertexBuffer();
24052
+ glContext.bufferSubData(glContext.ARRAY_BUFFER, 0, uploadView);
24053
+ };
24054
+ const draw = (prepared) => {
24055
+ const { screenToClip } = prepared;
24056
+ applyScreenToClipUniforms(
24057
+ screenToClip.scaleX,
24058
+ screenToClip.scaleY,
24059
+ screenToClip.offsetX,
24060
+ screenToClip.offsetY
24061
+ );
24062
+ applySurfaceMode(prepared.useShaderSurface);
24063
+ const surfaceInputs = prepared.surfaceShaderInputs;
24064
+ if (prepared.useShaderSurface && surfaceInputs) {
24065
+ const depthBias = surfaceInputs.depthBiasNdc;
24066
+ if (depthBias !== currentSurfaceDepthBias) {
24067
+ glContext.uniform1f(uniformSurfaceDepthBiasLocation, depthBias);
24068
+ currentSurfaceDepthBias = depthBias;
24069
+ }
24070
+ applySurfaceClipUniforms(
24071
+ prepared.surfaceClipEnabled,
24072
+ prepared.surfaceClipEnabled ? surfaceInputs : null
24073
+ );
24074
+ } else {
24075
+ if (currentSurfaceDepthBias !== 0) {
24076
+ glContext.uniform1f(uniformSurfaceDepthBiasLocation, 0);
24077
+ currentSurfaceDepthBias = 0;
24078
+ }
24079
+ applySurfaceClipUniforms(false, null);
24080
+ }
24081
+ const billboardMode = prepared.useShaderBillboard ? 1 : 0;
24082
+ if (billboardMode !== currentBillboardMode) {
24083
+ glContext.uniform1f(uniformBillboardModeLocation, billboardMode);
24084
+ currentBillboardMode = billboardMode;
24085
+ }
24086
+ if (prepared.useShaderBillboard && prepared.billboardUniforms) {
24087
+ const uniforms = prepared.billboardUniforms;
24088
+ if (uniforms.center.x !== currentBillboardCenter.x || uniforms.center.y !== currentBillboardCenter.y) {
24089
+ glContext.uniform2f(
24090
+ uniformBillboardCenterLocation,
24091
+ uniforms.center.x,
24092
+ uniforms.center.y
24093
+ );
24094
+ currentBillboardCenter.x = uniforms.center.x;
24095
+ currentBillboardCenter.y = uniforms.center.y;
24096
+ }
24097
+ if (uniforms.halfWidth !== currentBillboardHalfSize.x || uniforms.halfHeight !== currentBillboardHalfSize.y) {
24098
+ glContext.uniform2f(
24099
+ uniformBillboardHalfSizeLocation,
24100
+ uniforms.halfWidth,
24101
+ uniforms.halfHeight
24102
+ );
24103
+ currentBillboardHalfSize.x = uniforms.halfWidth;
24104
+ currentBillboardHalfSize.y = uniforms.halfHeight;
24105
+ }
24106
+ if (uniforms.anchor.x !== currentBillboardAnchor.x || uniforms.anchor.y !== currentBillboardAnchor.y) {
24107
+ glContext.uniform2f(
24108
+ uniformBillboardAnchorLocation,
24109
+ uniforms.anchor.x,
24110
+ uniforms.anchor.y
24111
+ );
24112
+ currentBillboardAnchor.x = uniforms.anchor.x;
24113
+ currentBillboardAnchor.y = uniforms.anchor.y;
24114
+ }
24115
+ if (uniforms.sin !== currentBillboardSinCos.x || uniforms.cos !== currentBillboardSinCos.y) {
24116
+ glContext.uniform2f(
24117
+ uniformBillboardSinCosLocation,
24118
+ uniforms.sin,
24119
+ uniforms.cos
24120
+ );
24121
+ currentBillboardSinCos.x = uniforms.sin;
24122
+ currentBillboardSinCos.y = uniforms.cos;
24123
+ }
24124
+ }
24125
+ const texture = prepared.imageResource.texture;
24126
+ if (!texture) {
24127
+ return false;
24128
+ }
24129
+ if (prepared.opacity !== currentOpacity) {
24130
+ glContext.uniform1f(uniformOpacityLocation, prepared.opacity);
24131
+ currentOpacity = prepared.opacity;
24132
+ }
24133
+ if (currentBoundTexture !== texture) {
24134
+ glContext.activeTexture(glContext.TEXTURE0);
24135
+ glContext.bindTexture(glContext.TEXTURE_2D, texture);
24136
+ currentBoundTexture = texture;
24137
+ }
24138
+ const vertexOffset = vertexBatchOffsets.get(prepared);
24139
+ if (vertexOffset === void 0) {
24140
+ return false;
24141
+ }
24142
+ glContext.drawArrays(glContext.TRIANGLES, vertexOffset, QUAD_VERTEX_COUNT);
24143
+ return true;
24144
+ };
24145
+ const release = () => {
24146
+ glContext.deleteBuffer(vertexBuffer);
24147
+ glContext.deleteProgram(program);
24148
+ };
24149
+ return {
24150
+ beginFrame,
24151
+ uploadVertexBatch,
24152
+ draw,
24153
+ release
24154
+ };
24155
+ };
24156
+ const createDebugOutlineRenderer = (glContext) => {
24157
+ const program = createShaderProgram(
24158
+ glContext,
24159
+ DEBUG_OUTLINE_VERTEX_SHADER_SOURCE,
24160
+ DEBUG_OUTLINE_FRAGMENT_SHADER_SOURCE
24161
+ );
24162
+ const attribPositionLocation = glContext.getAttribLocation(
24163
+ program,
24164
+ "a_position"
24165
+ );
24166
+ if (attribPositionLocation === -1) {
24167
+ glContext.deleteProgram(program);
24168
+ throw new Error("Failed to acquire debug attribute location.");
24169
+ }
24170
+ const uniformColorLocation = glContext.getUniformLocation(program, "u_color");
24171
+ const uniformScreenToClipScaleLocation = glContext.getUniformLocation(
24172
+ program,
24173
+ "u_screenToClipScale"
24174
+ );
24175
+ const uniformScreenToClipOffsetLocation = glContext.getUniformLocation(
24176
+ program,
24177
+ "u_screenToClipOffset"
24178
+ );
24179
+ if (!uniformColorLocation || !uniformScreenToClipScaleLocation || !uniformScreenToClipOffsetLocation) {
24180
+ glContext.deleteProgram(program);
24181
+ throw new Error("Failed to acquire debug uniforms.");
24182
+ }
24183
+ const vertexBuffer = glContext.createBuffer();
24184
+ if (!vertexBuffer) {
24185
+ glContext.deleteProgram(program);
24186
+ throw new Error("Failed to create debug vertex buffer.");
24187
+ }
24188
+ glContext.bindBuffer(glContext.ARRAY_BUFFER, vertexBuffer);
24189
+ glContext.bufferData(
24190
+ glContext.ARRAY_BUFFER,
24191
+ DEBUG_OUTLINE_VERTEX_SCRATCH,
24192
+ glContext.DYNAMIC_DRAW
24193
+ );
24194
+ glContext.bindBuffer(glContext.ARRAY_BUFFER, null);
24195
+ let active = false;
24196
+ const begin = (screenToClipScaleX, screenToClipScaleY, screenToClipOffsetX, screenToClipOffsetY) => {
24197
+ glContext.useProgram(program);
24198
+ glContext.bindBuffer(glContext.ARRAY_BUFFER, vertexBuffer);
24199
+ glContext.enableVertexAttribArray(attribPositionLocation);
24200
+ glContext.vertexAttribPointer(
24201
+ attribPositionLocation,
24202
+ DEBUG_OUTLINE_POSITION_COMPONENT_COUNT,
24203
+ glContext.FLOAT,
24204
+ false,
24205
+ DEBUG_OUTLINE_VERTEX_STRIDE,
24206
+ 0
24207
+ );
24208
+ glContext.disable(glContext.DEPTH_TEST);
24209
+ glContext.depthMask(false);
24210
+ glContext.uniform4f(
24211
+ uniformColorLocation,
24212
+ DEBUG_OUTLINE_COLOR[0],
24213
+ DEBUG_OUTLINE_COLOR[1],
24214
+ DEBUG_OUTLINE_COLOR[2],
24215
+ DEBUG_OUTLINE_COLOR[3]
24216
+ );
24217
+ glContext.uniform2f(
24218
+ uniformScreenToClipScaleLocation,
24219
+ screenToClipScaleX,
24220
+ screenToClipScaleY
24221
+ );
24222
+ glContext.uniform2f(
24223
+ uniformScreenToClipOffsetLocation,
24224
+ screenToClipOffsetX,
24225
+ screenToClipOffsetY
24226
+ );
24227
+ active = true;
24228
+ };
24229
+ const drawOutline = (corners) => {
24230
+ if (!active) {
24231
+ return;
24232
+ }
24233
+ let writeOffset = 0;
24234
+ for (const cornerIndex of DEBUG_OUTLINE_CORNER_ORDER) {
24235
+ const corner = corners[cornerIndex];
24236
+ DEBUG_OUTLINE_VERTEX_SCRATCH[writeOffset++] = corner.x;
24237
+ DEBUG_OUTLINE_VERTEX_SCRATCH[writeOffset++] = corner.y;
24238
+ DEBUG_OUTLINE_VERTEX_SCRATCH[writeOffset++] = 0;
24239
+ DEBUG_OUTLINE_VERTEX_SCRATCH[writeOffset++] = 1;
24240
+ }
24241
+ glContext.bufferSubData(
24242
+ glContext.ARRAY_BUFFER,
24243
+ 0,
24244
+ DEBUG_OUTLINE_VERTEX_SCRATCH
24245
+ );
24246
+ glContext.drawArrays(glContext.LINE_LOOP, 0, DEBUG_OUTLINE_VERTEX_COUNT);
24247
+ };
24248
+ const end = () => {
24249
+ if (!active) {
24250
+ return;
24251
+ }
24252
+ glContext.depthMask(true);
24253
+ glContext.enable(glContext.DEPTH_TEST);
24254
+ glContext.disableVertexAttribArray(attribPositionLocation);
24255
+ glContext.bindBuffer(glContext.ARRAY_BUFFER, null);
24256
+ active = false;
24257
+ };
24258
+ const release = () => {
24259
+ end();
24260
+ glContext.deleteBuffer(vertexBuffer);
24261
+ glContext.deleteProgram(program);
24262
+ };
24263
+ return {
24264
+ begin,
24265
+ drawOutline,
24266
+ end,
24267
+ release
24268
+ };
23150
24269
  };
23151
24270
  function copy(out, a) {
23152
24271
  out[0] = a[0];
@@ -23613,543 +24732,200 @@ const prepareProjectionState = (params) => {
23613
24732
  return {
23614
24733
  zoom,
23615
24734
  mercatorMatrix,
23616
- pixelMatrix,
23617
- pixelMatrixInverse,
23618
- worldSize,
23619
- pixelPerMeter,
23620
- cameraToCenterDistance,
23621
- clipContext
23622
- };
23623
- };
23624
- const createProjectionHost = (params) => {
23625
- let state = prepareProjectionState(params);
23626
- const getZoom = () => state.zoom;
23627
- const getClipContext = () => state.clipContext;
23628
- const fromLngLat = (location2) => {
23629
- const lng = toFiniteOr$1(location2.lng, 0);
23630
- const lat = clamp(
23631
- toFiniteOr$1(location2.lat, 0),
23632
- -MAX_MERCATOR_LATITUDE,
23633
- MAX_MERCATOR_LATITUDE
23634
- );
23635
- const altitude = toFiniteOr$1(location2.z, 0);
23636
- return {
23637
- x: mercatorXfromLng(lng),
23638
- y: mercatorYfromLat(lat),
23639
- z: mercatorZfromAltitude(altitude, lat)
23640
- };
23641
- };
23642
- const project = (location2) => {
23643
- if (!state.pixelMatrix) {
23644
- return null;
23645
- }
23646
- const mercator = fromLngLat(location2);
23647
- const worldX = mercator.x * state.worldSize;
23648
- const worldY = mercator.y * state.worldSize;
23649
- const elevation = toFiniteOr$1(location2.z, 0);
23650
- const [x, y, , w] = multiplyMatrixAndVector(
23651
- state.pixelMatrix,
23652
- worldX,
23653
- worldY,
23654
- elevation,
23655
- 1
23656
- );
23657
- if (!Number.isFinite(w) || w <= 0) {
23658
- return null;
23659
- }
23660
- const projectedX = x / w;
23661
- const projectedY = y / w;
23662
- if (!Number.isFinite(projectedX) || !Number.isFinite(projectedY)) {
23663
- return null;
23664
- }
23665
- return { x: projectedX, y: projectedY };
23666
- };
23667
- const unproject = (point) => {
23668
- if (!state.pixelMatrixInverse) {
23669
- return null;
23670
- }
23671
- const coord0 = multiplyMatrixAndVector(
23672
- state.pixelMatrixInverse,
23673
- toFiniteOr$1(point.x, 0),
23674
- toFiniteOr$1(point.y, 0),
23675
- 0,
23676
- 1
23677
- );
23678
- const coord1 = multiplyMatrixAndVector(
23679
- state.pixelMatrixInverse,
23680
- toFiniteOr$1(point.x, 0),
23681
- toFiniteOr$1(point.y, 0),
23682
- 1,
23683
- 1
23684
- );
23685
- const w0 = coord0[3];
23686
- const w1 = coord1[3];
23687
- if (!Number.isFinite(w0) || !Number.isFinite(w1) || w0 === 0 || w1 === 0) {
23688
- return null;
23689
- }
23690
- const x0 = coord0[0] / w0;
23691
- const x1 = coord1[0] / w1;
23692
- const y0 = coord0[1] / w0;
23693
- const y1 = coord1[1] / w1;
23694
- const z0 = coord0[2] / w0;
23695
- const z1 = coord1[2] / w1;
23696
- const targetZ = 0;
23697
- const t = z0 === z1 ? 0 : (targetZ - z0) / (z1 - z0);
23698
- const worldX = x0 + (x1 - x0) * t;
23699
- const worldY = y0 + (y1 - y0) * t;
23700
- const mercatorX = worldX / (state.worldSize || 1);
23701
- const mercatorY = worldY / (state.worldSize || 1);
23702
- if (!Number.isFinite(mercatorX) || !Number.isFinite(mercatorY)) {
23703
- return null;
23704
- }
23705
- return {
23706
- lng: lngFromMercatorX(mercatorX),
23707
- lat: clamp(
23708
- latFromMercatorY(mercatorY),
23709
- -MAX_MERCATOR_LATITUDE,
23710
- MAX_MERCATOR_LATITUDE
23711
- )
23712
- };
23713
- };
23714
- const calculatePerspectiveRatio = (location2, cachedMercator) => {
23715
- var _a;
23716
- if (!state.mercatorMatrix || state.cameraToCenterDistance <= 0) {
23717
- return 1;
23718
- }
23719
- try {
23720
- const mercator = cachedMercator != null ? cachedMercator : fromLngLat(location2);
23721
- const [, , , w] = multiplyMatrixAndVector(
23722
- state.mercatorMatrix,
23723
- mercator.x,
23724
- mercator.y,
23725
- (_a = mercator.z) != null ? _a : 0,
23726
- 1
23727
- );
23728
- if (!Number.isFinite(w) || w <= 0) {
23729
- return 1;
23730
- }
23731
- const ratio = state.cameraToCenterDistance / w;
23732
- return Number.isFinite(ratio) && ratio > 0 ? ratio : 1;
23733
- } catch (e) {
23734
- return 1;
23735
- }
23736
- };
23737
- const release = () => {
23738
- state = void 0;
23739
- };
23740
- return {
23741
- getZoom,
23742
- getClipContext,
23743
- fromLngLat,
23744
- project,
23745
- unproject,
23746
- calculatePerspectiveRatio,
23747
- release
23748
- };
23749
- };
23750
- const createProjectionHostParamsFromMapLibre = (map) => {
23751
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
23752
- const ensureFinite2 = (value) => typeof value === "number" && Number.isFinite(value) ? value : void 0;
23753
- const centerLngLat = map.getCenter();
23754
- const transform = map.transform;
23755
- const canvas = typeof map.getCanvas === "function" ? (_a = map.getCanvas()) != null ? _a : null : null;
23756
- if (!transform) {
23757
- return {
23758
- zoom: (_b = ensureFinite2(map.getZoom())) != null ? _b : 0,
23759
- width: (_c = ensureFinite2(canvas == null ? void 0 : canvas.width)) != null ? _c : 0,
23760
- height: (_d = ensureFinite2(canvas == null ? void 0 : canvas.height)) != null ? _d : 0,
23761
- center: { lng: centerLngLat.lng, lat: centerLngLat.lat }
23762
- };
23763
- }
23764
- const width = (_f = (_e = ensureFinite2(transform.width)) != null ? _e : ensureFinite2(canvas == null ? void 0 : canvas.width)) != null ? _f : 0;
23765
- const height = (_h = (_g = ensureFinite2(transform.height)) != null ? _g : ensureFinite2(canvas == null ? void 0 : canvas.height)) != null ? _h : 0;
23766
- const zoom = (_j = (_i = ensureFinite2(transform.zoom)) != null ? _i : ensureFinite2(map.getZoom())) != null ? _j : 0;
23767
- const pitchDeg = (_k = ensureFinite2(transform.pitch)) != null ? _k : ensureFinite2(map.getPitch());
23768
- const bearingDeg = (_l = ensureFinite2(transform.bearing)) != null ? _l : ensureFinite2(map.getBearing());
23769
- const rollDeg = ensureFinite2(transform.roll);
23770
- const fovDeg = ensureFinite2(transform.fov);
23771
- const centerElevation = ensureFinite2(transform.elevation);
23772
- const minElevation = ensureFinite2(transform.minElevationForCurrentTile);
23773
- const cameraToCenterDistance = ensureFinite2(transform.cameraToCenterDistance);
23774
- const centerOffset = transform.centerOffset;
23775
- const centerOffsetX = ensureFinite2(centerOffset == null ? void 0 : centerOffset.x);
23776
- const centerOffsetY = ensureFinite2(centerOffset == null ? void 0 : centerOffset.y);
23777
- const tileSize = ensureFinite2(transform.tileSize);
23778
- const autoCalculateNearFarZ = typeof transform.autoCalculateNearFarZ === "boolean" ? transform.autoCalculateNearFarZ : void 0;
23779
- const nearZOverride = autoCalculateNearFarZ === false ? ensureFinite2(transform.nearZ) : void 0;
23780
- const farZOverride = autoCalculateNearFarZ === false ? ensureFinite2(transform.farZ) : void 0;
23781
- return {
23782
- zoom,
23783
- width,
23784
- height,
23785
- center: {
23786
- lng: centerLngLat.lng,
23787
- lat: centerLngLat.lat
23788
- },
23789
- ...pitchDeg !== void 0 ? { pitchDeg } : {},
23790
- ...bearingDeg !== void 0 ? { bearingDeg } : {},
23791
- ...rollDeg !== void 0 ? { rollDeg } : {},
23792
- ...fovDeg !== void 0 ? { fovDeg } : {},
23793
- ...centerElevation !== void 0 ? { centerElevationMeters: centerElevation } : {},
23794
- ...minElevation !== void 0 ? { minElevationMeters: minElevation } : {},
23795
- ...cameraToCenterDistance !== void 0 ? { cameraToCenterDistance } : {},
23796
- ...centerOffsetX !== void 0 ? { centerOffsetX } : {},
23797
- ...centerOffsetY !== void 0 ? { centerOffsetY } : {},
23798
- ...tileSize !== void 0 ? { tileSize } : {},
23799
- ...autoCalculateNearFarZ !== void 0 ? { autoCalculateNearFarZ } : {},
23800
- ...nearZOverride !== void 0 ? { nearZOverride } : {},
23801
- ...farZOverride !== void 0 ? { farZOverride } : {}
23802
- };
23803
- };
23804
- const USE_SHADER_BILLBOARD_GEOMETRY = true;
23805
- const ENABLE_NDC_BIAS_SURFACE = true;
23806
- const BUFFER_POOL_ENTRY_TTL_MS = 5e3;
23807
- const BUFFER_POOL_SWEEP_INTERVAL_MS = 3e3;
23808
- const BUFFER_POOL_MAX_REUSE_RATIO = 2;
23809
- const WASM_BINARY_PATHS = {
23810
- simd: "./wasm/offloads-simd.wasm",
23811
- nosimd: "./wasm/offloads-nosimd.wasm"
23812
- };
23813
- const isNodeEnvironment = (() => {
23814
- var _a;
23815
- const globalProcess = globalThis.process;
23816
- return !!((_a = globalProcess == null ? void 0 : globalProcess.versions) == null ? void 0 : _a.node);
23817
- })();
23818
- const importNodeModule = async (specifier) => await import(
23819
- /* @vite-ignore */
23820
- specifier
23821
- );
23822
- const createImportFunctionStub = () => {
23823
- const noop = () => 0;
23824
- return new Proxy(
23825
- {},
23826
- {
23827
- get: () => noop
23828
- }
23829
- );
23830
- };
23831
- const loadWasmBinary = async (variant) => {
23832
- const wasmUrl = new URL(WASM_BINARY_PATHS[variant], import.meta.url);
23833
- if (typeof fetch === "function") {
23834
- try {
23835
- const response2 = await fetch(wasmUrl);
23836
- if (response2.ok) {
23837
- return await response2.arrayBuffer();
23838
- }
23839
- } catch (e) {
23840
- }
23841
- }
23842
- if (isNodeEnvironment && wasmUrl.protocol === "file:") {
23843
- const [{ readFile }, { fileURLToPath }] = await Promise.all([
23844
- importNodeModule("node:fs/promises"),
23845
- importNodeModule("node:url")
23846
- ]);
23847
- const filePath = fileURLToPath(wasmUrl);
23848
- const fileBuffer = await readFile(filePath);
23849
- const arrayBuffer = fileBuffer.buffer;
23850
- return arrayBuffer.slice(
23851
- fileBuffer.byteOffset,
23852
- fileBuffer.byteOffset + fileBuffer.byteLength
23853
- );
23854
- }
23855
- const response = await fetch(wasmUrl);
23856
- if (!response.ok) {
23857
- throw new Error(`Failed to load ${variant} offloads WASM: ${wasmUrl.href}`);
23858
- }
23859
- return await response.arrayBuffer();
24735
+ pixelMatrix,
24736
+ pixelMatrixInverse,
24737
+ worldSize,
24738
+ pixelPerMeter,
24739
+ cameraToCenterDistance,
24740
+ clipContext
24741
+ };
23860
24742
  };
23861
- const instantiateProjectionWasm = async (variant) => {
23862
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
23863
- const binary = await loadWasmBinary(variant);
23864
- const imports = {};
23865
- const functionStub = createImportFunctionStub();
23866
- const importTargets = imports;
23867
- importTargets.wasi_snapshot_preview1 = functionStub;
23868
- importTargets.env = functionStub;
23869
- const { instance } = await WebAssembly.instantiate(binary, imports);
23870
- const exports = instance.exports;
23871
- if (typeof exports.__wasm_call_ctors === "function") {
23872
- exports.__wasm_call_ctors();
23873
- }
23874
- const memory = exports.memory;
23875
- const malloc = (_a = exports._malloc) != null ? _a : exports.malloc;
23876
- const free = (_b = exports._free) != null ? _b : exports.free;
23877
- const fromLngLat = (_c = exports._fromLngLat) != null ? _c : exports.fromLngLat;
23878
- const project = (_d = exports._project) != null ? _d : exports.project;
23879
- const unproject = (_e = exports._unproject) != null ? _e : exports.unproject;
23880
- const calculatePerspectiveRatio = (_f = exports._calculatePerspectiveRatio) != null ? _f : exports.calculatePerspectiveRatio;
23881
- const projectLngLatToClipSpace2 = (_g = exports._projectLngLatToClipSpace) != null ? _g : exports.projectLngLatToClipSpace;
23882
- const calculateBillboardDepthKey2 = (_h = exports._calculateBillboardDepthKey) != null ? _h : exports.calculateBillboardDepthKey;
23883
- const calculateSurfaceDepthKey2 = (_i = exports._calculateSurfaceDepthKey) != null ? _i : exports.calculateSurfaceDepthKey;
23884
- const prepareDrawSpriteImages2 = (_j = exports._prepareDrawSpriteImages) != null ? _j : exports.prepareDrawSpriteImages;
23885
- if (!memory || !malloc || !free || !fromLngLat || !project || !unproject || !calculatePerspectiveRatio || !projectLngLatToClipSpace2 || !calculateBillboardDepthKey2 || !calculateSurfaceDepthKey2 || !prepareDrawSpriteImages2) {
23886
- throw new Error("Projection host WASM exports are incomplete.");
23887
- }
23888
- const pool = /* @__PURE__ */ new Map();
23889
- let destroyed = false;
23890
- let sweepTimer;
23891
- const getNow = () => typeof performance !== "undefined" && typeof performance.now === "function" ? performance.now() : Date.now();
23892
- const sweepPool = () => {
23893
- if (destroyed || pool.size === 0) {
23894
- return;
24743
+ const createProjectionHost = (params) => {
24744
+ let state = prepareProjectionState(params);
24745
+ const getZoom = () => state.zoom;
24746
+ const getClipContext = () => state.clipContext;
24747
+ const fromLngLat = (location2) => {
24748
+ const lng = toFiniteOr$1(location2.lng, 0);
24749
+ const lat = clamp(
24750
+ toFiniteOr$1(location2.lat, 0),
24751
+ -MAX_MERCATOR_LATITUDE,
24752
+ MAX_MERCATOR_LATITUDE
24753
+ );
24754
+ const altitude = toFiniteOr$1(location2.z, 0);
24755
+ return {
24756
+ x: mercatorXfromLng(lng),
24757
+ y: mercatorYfromLat(lat),
24758
+ z: mercatorZfromAltitude(altitude, lat)
24759
+ };
24760
+ };
24761
+ const project = (location2) => {
24762
+ if (!state.pixelMatrix) {
24763
+ return null;
23895
24764
  }
23896
- const limit = getNow() - BUFFER_POOL_ENTRY_TTL_MS;
23897
- const emptyTypeKeys = [];
23898
- pool.forEach((typedPool, typeKey) => {
23899
- const emptyLengths = [];
23900
- typedPool.forEach((stack, length) => {
23901
- let writeIndex = 0;
23902
- for (let i = 0; i < stack.length; i++) {
23903
- const holder = stack[i];
23904
- if (!holder.__pooled) {
23905
- continue;
23906
- }
23907
- if (holder.__lastReleasedAt <= limit) {
23908
- holder.__free();
23909
- continue;
23910
- }
23911
- stack[writeIndex++] = holder;
23912
- }
23913
- if (writeIndex === 0) {
23914
- stack.length = 0;
23915
- emptyLengths.push(length);
23916
- } else {
23917
- stack.length = writeIndex;
23918
- }
23919
- });
23920
- emptyLengths.forEach((length) => typedPool.delete(length));
23921
- if (typedPool.size === 0) {
23922
- emptyTypeKeys.push(typeKey);
23923
- }
23924
- });
23925
- emptyTypeKeys.forEach((typeKey) => pool.delete(typeKey));
23926
- if (!destroyed && pool.size > 0) {
23927
- sweepTimer = setTimeout(() => {
23928
- sweepTimer = void 0;
23929
- sweepPool();
23930
- }, BUFFER_POOL_SWEEP_INTERVAL_MS);
24765
+ const mercator = fromLngLat(location2);
24766
+ const worldX = mercator.x * state.worldSize;
24767
+ const worldY = mercator.y * state.worldSize;
24768
+ const elevation = toFiniteOr$1(location2.z, 0);
24769
+ const [x, y, , w] = multiplyMatrixAndVector(
24770
+ state.pixelMatrix,
24771
+ worldX,
24772
+ worldY,
24773
+ elevation,
24774
+ 1
24775
+ );
24776
+ if (!Number.isFinite(w) || w <= 0) {
24777
+ return null;
23931
24778
  }
23932
- };
23933
- const schedulePoolSweep = () => {
23934
- if (destroyed || pool.size === 0 || sweepTimer) {
23935
- return;
24779
+ const projectedX = x / w;
24780
+ const projectedY = y / w;
24781
+ if (!Number.isFinite(projectedX) || !Number.isFinite(projectedY)) {
24782
+ return null;
23936
24783
  }
23937
- sweepTimer = setTimeout(() => {
23938
- sweepTimer = void 0;
23939
- sweepPool();
23940
- }, BUFFER_POOL_SWEEP_INTERVAL_MS);
24784
+ return { x: projectedX, y: projectedY };
23941
24785
  };
23942
- const allocate = (length, ArrayType) => {
23943
- let typedPool = pool.get(ArrayType);
23944
- if (!typedPool) {
23945
- typedPool = /* @__PURE__ */ new Map();
23946
- pool.set(ArrayType, typedPool);
23947
- }
23948
- let candidate;
23949
- const exactStack = typedPool.get(length);
23950
- if (exactStack && exactStack.length > 0) {
23951
- candidate = exactStack.pop();
23952
- if (exactStack.length === 0) {
23953
- typedPool.delete(length);
23954
- if (typedPool.size === 0) {
23955
- pool.delete(ArrayType);
23956
- }
23957
- }
24786
+ const unproject = (point) => {
24787
+ if (!state.pixelMatrixInverse) {
24788
+ return null;
23958
24789
  }
23959
- if (!candidate && typedPool.size > 0) {
23960
- const maxCapacity = length * BUFFER_POOL_MAX_REUSE_RATIO;
23961
- let bestCapacity;
23962
- let bestStack;
23963
- typedPool.forEach((stack, capacity) => {
23964
- if (stack.length === 0) {
23965
- typedPool.delete(capacity);
23966
- return;
23967
- }
23968
- if (capacity < length || capacity > maxCapacity) {
23969
- return;
23970
- }
23971
- if (bestStack === void 0 || capacity < bestCapacity) {
23972
- bestStack = stack;
23973
- bestCapacity = capacity;
23974
- }
23975
- });
23976
- if (bestStack && bestStack.length > 0) {
23977
- candidate = bestStack.pop();
23978
- if (bestStack.length === 0) {
23979
- typedPool.delete(bestCapacity);
23980
- if (typedPool.size === 0) {
23981
- pool.delete(ArrayType);
23982
- }
23983
- }
23984
- }
24790
+ const coord0 = multiplyMatrixAndVector(
24791
+ state.pixelMatrixInverse,
24792
+ toFiniteOr$1(point.x, 0),
24793
+ toFiniteOr$1(point.y, 0),
24794
+ 0,
24795
+ 1
24796
+ );
24797
+ const coord1 = multiplyMatrixAndVector(
24798
+ state.pixelMatrixInverse,
24799
+ toFiniteOr$1(point.x, 0),
24800
+ toFiniteOr$1(point.y, 0),
24801
+ 1,
24802
+ 1
24803
+ );
24804
+ const w0 = coord0[3];
24805
+ const w1 = coord1[3];
24806
+ if (!Number.isFinite(w0) || !Number.isFinite(w1) || w0 === 0 || w1 === 0) {
24807
+ return null;
23985
24808
  }
23986
- if (!candidate) {
23987
- let ptr = malloc(length * ArrayType.BYTES_PER_ELEMENT);
23988
- let buffer = new ArrayType(memory.buffer, ptr, length);
23989
- const prepare = () => {
23990
- if (candidate.__ptr === 0) {
23991
- throw new Error("Buffer already freed.");
23992
- }
23993
- if (candidate.__buffer.buffer !== memory.buffer || candidate.__buffer.length !== candidate.__length) {
23994
- candidate.__buffer = new ArrayType(
23995
- memory.buffer,
23996
- candidate.__ptr,
23997
- candidate.__length
23998
- );
23999
- }
24000
- return { ptr: candidate.__ptr, buffer: candidate.__buffer };
24001
- };
24002
- const release2 = () => {
24003
- if (candidate.__pooled) {
24004
- return;
24005
- }
24006
- if (destroyed) {
24007
- candidate.__free();
24008
- return;
24009
- }
24010
- candidate.__pooled = true;
24011
- candidate.__lastReleasedAt = getNow();
24012
- const capacity = candidate.__capacity;
24013
- let stack = typedPool.get(capacity);
24014
- if (!stack) {
24015
- stack = [];
24016
- typedPool.set(capacity, stack);
24017
- }
24018
- if (!pool.has(ArrayType)) {
24019
- pool.set(ArrayType, typedPool);
24020
- }
24021
- stack.push(candidate);
24022
- schedulePoolSweep();
24023
- };
24024
- const __free = () => {
24025
- if (candidate.__ptr) {
24026
- free(candidate.__ptr);
24027
- candidate.__ptr = 0;
24028
- candidate.__buffer = void 0;
24029
- candidate.__capacity = 0;
24030
- candidate.__length = 0;
24031
- candidate.__pooled = false;
24032
- candidate.__lastReleasedAt = 0;
24033
- candidate.__free = void 0;
24034
- candidate.prepare = void 0;
24035
- candidate.release = void 0;
24036
- }
24037
- };
24038
- candidate = {
24039
- prepare,
24040
- release: release2,
24041
- __ptr: ptr,
24042
- __buffer: buffer,
24043
- __capacity: length,
24044
- __length: length,
24045
- __pooled: false,
24046
- __lastReleasedAt: 0,
24047
- __free
24048
- };
24049
- } else {
24050
- candidate.__pooled = false;
24051
- candidate.__length = length;
24052
- candidate.__lastReleasedAt = 0;
24809
+ const x0 = coord0[0] / w0;
24810
+ const x1 = coord1[0] / w1;
24811
+ const y0 = coord0[1] / w0;
24812
+ const y1 = coord1[1] / w1;
24813
+ const z0 = coord0[2] / w0;
24814
+ const z1 = coord1[2] / w1;
24815
+ const targetZ = 0;
24816
+ const t = z0 === z1 ? 0 : (targetZ - z0) / (z1 - z0);
24817
+ const worldX = x0 + (x1 - x0) * t;
24818
+ const worldY = y0 + (y1 - y0) * t;
24819
+ const mercatorX = worldX / (state.worldSize || 1);
24820
+ const mercatorY = worldY / (state.worldSize || 1);
24821
+ if (!Number.isFinite(mercatorX) || !Number.isFinite(mercatorY)) {
24822
+ return null;
24053
24823
  }
24054
- return candidate;
24824
+ return {
24825
+ lng: lngFromMercatorX(mercatorX),
24826
+ lat: clamp(
24827
+ latFromMercatorY(mercatorY),
24828
+ -MAX_MERCATOR_LATITUDE,
24829
+ MAX_MERCATOR_LATITUDE
24830
+ )
24831
+ };
24055
24832
  };
24056
- const allocateTypedBuffer = (ArrayType, elements) => {
24057
- const isElementLength = typeof elements === "number";
24058
- const length = isElementLength ? elements : elements.length;
24059
- const candidate = allocate(length, ArrayType);
24060
- if (!isElementLength) {
24061
- const { buffer } = candidate.prepare();
24062
- buffer.set(elements);
24833
+ const calculatePerspectiveRatio = (location2, cachedMercator) => {
24834
+ var _a;
24835
+ if (!state.mercatorMatrix || state.cameraToCenterDistance <= 0) {
24836
+ return 1;
24837
+ }
24838
+ try {
24839
+ const mercator = cachedMercator != null ? cachedMercator : fromLngLat(location2);
24840
+ const [, , , w] = multiplyMatrixAndVector(
24841
+ state.mercatorMatrix,
24842
+ mercator.x,
24843
+ mercator.y,
24844
+ (_a = mercator.z) != null ? _a : 0,
24845
+ 1
24846
+ );
24847
+ if (!Number.isFinite(w) || w <= 0) {
24848
+ return 1;
24849
+ }
24850
+ const ratio = state.cameraToCenterDistance / w;
24851
+ return Number.isFinite(ratio) && ratio > 0 ? ratio : 1;
24852
+ } catch (e) {
24853
+ return 1;
24063
24854
  }
24064
- return candidate;
24065
24855
  };
24066
24856
  const release = () => {
24067
- if (destroyed) {
24068
- return;
24069
- }
24070
- destroyed = true;
24071
- if (sweepTimer) {
24072
- clearTimeout(sweepTimer);
24073
- sweepTimer = void 0;
24074
- }
24075
- pool.forEach((typedPool) => {
24076
- typedPool.forEach((stack) => {
24077
- stack.forEach((holder) => {
24078
- holder.__free();
24079
- });
24080
- stack.length = 0;
24081
- });
24082
- typedPool.clear();
24083
- });
24084
- pool.clear();
24857
+ state = void 0;
24085
24858
  };
24086
24859
  return {
24087
- allocateTypedBuffer,
24860
+ getZoom,
24861
+ getClipContext,
24088
24862
  fromLngLat,
24089
24863
  project,
24090
24864
  unproject,
24091
24865
  calculatePerspectiveRatio,
24092
- projectLngLatToClipSpace: projectLngLatToClipSpace2,
24093
- calculateBillboardDepthKey: calculateBillboardDepthKey2,
24094
- calculateSurfaceDepthKey: calculateSurfaceDepthKey2,
24095
- prepareDrawSpriteImages: prepareDrawSpriteImages2,
24096
24866
  release
24097
24867
  };
24098
24868
  };
24099
- const initializeWasmHostInternal = async (preferredVariant) => {
24100
- if (preferredVariant === "disabled") {
24101
- console.log(
24102
- "maplibre-gl-layers: Wasm execution disabled by configuration."
24103
- );
24104
- return ["disabled", void 0];
24105
- }
24106
- const variantsToTry = preferredVariant === "simd" ? ["simd", "nosimd"] : ["nosimd"];
24107
- for (const variant of variantsToTry) {
24108
- try {
24109
- const wasmHost = await instantiateProjectionWasm(variant);
24110
- console.log(
24111
- `maplibre-gl-layers: Initialized wasm module (variant: ${variant}).`
24112
- );
24113
- return [variant, wasmHost];
24114
- } catch (error) {
24115
- console.warn(
24116
- `maplibre-gl-layers: Failed to initialize ${variant} wasm module.`,
24117
- error
24118
- );
24119
- }
24120
- }
24121
- console.warn(
24122
- "maplibre-gl-layers: Falling back to JavaScript implementation."
24123
- );
24124
- return ["disabled", void 0];
24125
- };
24126
- let currentVariant = "disabled";
24127
- let currentWasmHost;
24128
- const initializeWasmHost = async (preferredVariant, options) => {
24129
- if (options == null ? void 0 : options.force) {
24130
- currentWasmHost = void 0;
24131
- }
24132
- if (currentWasmHost !== void 0) {
24133
- return currentVariant;
24134
- }
24135
- const [variant, wasmHost] = await initializeWasmHostInternal(preferredVariant);
24136
- currentVariant = variant;
24137
- currentWasmHost = wasmHost;
24138
- return variant;
24139
- };
24140
- const releaseWasmHost = () => {
24141
- if (currentWasmHost) {
24142
- currentWasmHost.release();
24143
- currentWasmHost = void 0;
24144
- currentVariant = "disabled";
24145
- }
24146
- };
24147
- const prepareWasmHost = () => {
24148
- if (!currentWasmHost) {
24149
- throw new Error("Could not use WasmHost, needs before initialization.");
24869
+ const createProjectionHostParamsFromMapLibre = (map) => {
24870
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
24871
+ const ensureFinite2 = (value) => typeof value === "number" && Number.isFinite(value) ? value : void 0;
24872
+ const centerLngLat = map.getCenter();
24873
+ const transform = map.transform;
24874
+ const canvas = typeof map.getCanvas === "function" ? (_a = map.getCanvas()) != null ? _a : null : null;
24875
+ if (!transform) {
24876
+ return {
24877
+ zoom: (_b = ensureFinite2(map.getZoom())) != null ? _b : 0,
24878
+ width: (_c = ensureFinite2(canvas == null ? void 0 : canvas.width)) != null ? _c : 0,
24879
+ height: (_d = ensureFinite2(canvas == null ? void 0 : canvas.height)) != null ? _d : 0,
24880
+ center: { lng: centerLngLat.lng, lat: centerLngLat.lat }
24881
+ };
24150
24882
  }
24151
- return currentWasmHost;
24883
+ const width = (_f = (_e = ensureFinite2(transform.width)) != null ? _e : ensureFinite2(canvas == null ? void 0 : canvas.width)) != null ? _f : 0;
24884
+ const height = (_h = (_g = ensureFinite2(transform.height)) != null ? _g : ensureFinite2(canvas == null ? void 0 : canvas.height)) != null ? _h : 0;
24885
+ const zoom = (_j = (_i = ensureFinite2(transform.zoom)) != null ? _i : ensureFinite2(map.getZoom())) != null ? _j : 0;
24886
+ const pitchDeg = (_k = ensureFinite2(transform.pitch)) != null ? _k : ensureFinite2(map.getPitch());
24887
+ const bearingDeg = (_l = ensureFinite2(transform.bearing)) != null ? _l : ensureFinite2(map.getBearing());
24888
+ const rollDeg = ensureFinite2(transform.roll);
24889
+ const fovDeg = ensureFinite2(transform.fov);
24890
+ const centerElevation = ensureFinite2(transform.elevation);
24891
+ const minElevation = ensureFinite2(transform.minElevationForCurrentTile);
24892
+ const cameraToCenterDistance = ensureFinite2(transform.cameraToCenterDistance);
24893
+ const centerOffset = transform.centerOffset;
24894
+ const centerOffsetX = ensureFinite2(centerOffset == null ? void 0 : centerOffset.x);
24895
+ const centerOffsetY = ensureFinite2(centerOffset == null ? void 0 : centerOffset.y);
24896
+ const tileSize = ensureFinite2(transform.tileSize);
24897
+ const autoCalculateNearFarZ = typeof transform.autoCalculateNearFarZ === "boolean" ? transform.autoCalculateNearFarZ : void 0;
24898
+ const nearZOverride = autoCalculateNearFarZ === false ? ensureFinite2(transform.nearZ) : void 0;
24899
+ const farZOverride = autoCalculateNearFarZ === false ? ensureFinite2(transform.farZ) : void 0;
24900
+ return {
24901
+ zoom,
24902
+ width,
24903
+ height,
24904
+ center: {
24905
+ lng: centerLngLat.lng,
24906
+ lat: centerLngLat.lat
24907
+ },
24908
+ ...pitchDeg !== void 0 ? { pitchDeg } : {},
24909
+ ...bearingDeg !== void 0 ? { bearingDeg } : {},
24910
+ ...rollDeg !== void 0 ? { rollDeg } : {},
24911
+ ...fovDeg !== void 0 ? { fovDeg } : {},
24912
+ ...centerElevation !== void 0 ? { centerElevationMeters: centerElevation } : {},
24913
+ ...minElevation !== void 0 ? { minElevationMeters: minElevation } : {},
24914
+ ...cameraToCenterDistance !== void 0 ? { cameraToCenterDistance } : {},
24915
+ ...centerOffsetX !== void 0 ? { centerOffsetX } : {},
24916
+ ...centerOffsetY !== void 0 ? { centerOffsetY } : {},
24917
+ ...tileSize !== void 0 ? { tileSize } : {},
24918
+ ...autoCalculateNearFarZ !== void 0 ? { autoCalculateNearFarZ } : {},
24919
+ ...nearZOverride !== void 0 ? { nearZOverride } : {},
24920
+ ...farZOverride !== void 0 ? { farZOverride } : {}
24921
+ };
24152
24922
  };
24923
+ const USE_SHADER_BILLBOARD_GEOMETRY = true;
24924
+ const ENABLE_NDC_BIAS_SURFACE = true;
24925
+ const ATLAS_QUEUE_CHUNK_SIZE = 64;
24926
+ const ATLAS_QUEUE_TIME_BUDGET_MS = 20;
24927
+ const TEXT_GLYPH_QUEUE_CHUNK_SIZE = 16;
24928
+ const TEXT_GLYPH_QUEUE_TIME_BUDGET_MS = 20;
24153
24929
  const WASM_FromLngLat_RESULT_ELEMENT_COUNT = 3;
24154
24930
  const createFromLngLat = (wasm) => {
24155
24931
  const resultHolder = wasm.allocateTypedBuffer(
@@ -24798,6 +25574,12 @@ const prepareDrawSpriteImageInternal = (projectionHost, item, zoom, zoomScaleFac
24798
25574
  const imageEntry = item.image;
24799
25575
  const imageResource = item.resource;
24800
25576
  const resolveOrigin = item.resolveOrigin;
25577
+ const atlasU0 = Number.isFinite(imageResource.atlasU0) ? imageResource.atlasU0 : 0;
25578
+ const atlasV0 = Number.isFinite(imageResource.atlasV0) ? imageResource.atlasV0 : 0;
25579
+ const atlasU1 = Number.isFinite(imageResource.atlasU1) ? imageResource.atlasU1 : 1;
25580
+ const atlasV1 = Number.isFinite(imageResource.atlasV1) ? imageResource.atlasV1 : 1;
25581
+ const atlasUSpan = atlasU1 - atlasU0;
25582
+ const atlasVSpan = atlasV1 - atlasV0;
24801
25583
  const spriteMercator = resolveSpriteMercator(projectionHost, item.sprite);
24802
25584
  imageEntry.surfaceShaderInputs = void 0;
24803
25585
  let screenCornerBuffer = null;
@@ -24986,7 +25768,9 @@ const prepareDrawSpriteImageInternal = (projectionHost, item, zoom, zoomScaleFac
24986
25768
  if (clipCornerPositions) {
24987
25769
  clipCornerPositions[index] = [clipX, clipY, clipZ, clipW];
24988
25770
  }
24989
- const [u, v] = UV_CORNERS[index];
25771
+ const [baseU, baseV] = UV_CORNERS[index];
25772
+ const u = atlasU0 + baseU * atlasUSpan;
25773
+ const v = atlasV0 + baseV * atlasVSpan;
24990
25774
  if (useShaderSurface) {
24991
25775
  const baseCorner = SURFACE_BASE_CORNERS[index];
24992
25776
  QUAD_VERTEX_SCRATCH[bufferOffset++] = baseCorner[0];
@@ -25142,8 +25926,10 @@ const prepareDrawSpriteImageInternal = (projectionHost, item, zoom, zoomScaleFac
25142
25926
  }
25143
25927
  QUAD_VERTEX_SCRATCH[bufferOffset++] = 0;
25144
25928
  QUAD_VERTEX_SCRATCH[bufferOffset++] = 1;
25145
- QUAD_VERTEX_SCRATCH[bufferOffset++] = corner.u;
25146
- QUAD_VERTEX_SCRATCH[bufferOffset++] = corner.v;
25929
+ const scaledU = atlasU0 + corner.u * atlasUSpan;
25930
+ const scaledV = atlasV0 + corner.v * atlasVSpan;
25931
+ QUAD_VERTEX_SCRATCH[bufferOffset++] = scaledU;
25932
+ QUAD_VERTEX_SCRATCH[bufferOffset++] = scaledV;
25147
25933
  }
25148
25934
  for (let i = 0; i < corners.length; i++) {
25149
25935
  const source = corners[i];
@@ -25234,7 +26020,7 @@ const createCalculationHost = (params) => {
25234
26020
  const INPUT_HEADER_LENGTH = 15;
25235
26021
  const INPUT_FRAME_CONSTANT_LENGTH = 24;
25236
26022
  const INPUT_MATRIX_LENGTH = 48;
25237
- const RESOURCE_STRIDE = 4;
26023
+ const RESOURCE_STRIDE = 9;
25238
26024
  const SPRITE_STRIDE = 6;
25239
26025
  const ITEM_STRIDE = 27;
25240
26026
  const INPUT_BASE_LENGTH = INPUT_HEADER_LENGTH + INPUT_FRAME_CONSTANT_LENGTH + INPUT_MATRIX_LENGTH;
@@ -25698,10 +26484,20 @@ const convertToWasmProjectionState = (wasm, params, deps) => {
25698
26484
  parameterBuffer[cursor++] = resource.width;
25699
26485
  parameterBuffer[cursor++] = resource.height;
25700
26486
  parameterBuffer[cursor++] = resource.texture ? 1 : 0;
26487
+ parameterBuffer[cursor++] = typeof resource.atlasPageIndex === "number" ? resource.atlasPageIndex : -1;
26488
+ parameterBuffer[cursor++] = typeof resource.atlasU0 === "number" ? resource.atlasU0 : 0;
26489
+ parameterBuffer[cursor++] = typeof resource.atlasV0 === "number" ? resource.atlasV0 : 0;
26490
+ parameterBuffer[cursor++] = typeof resource.atlasU1 === "number" ? resource.atlasU1 : 1;
26491
+ parameterBuffer[cursor++] = typeof resource.atlasV1 === "number" ? resource.atlasV1 : 1;
25701
26492
  } else {
25702
26493
  parameterBuffer[cursor++] = 0;
25703
26494
  parameterBuffer[cursor++] = 0;
25704
26495
  parameterBuffer[cursor++] = 0;
26496
+ parameterBuffer[cursor++] = -1;
26497
+ parameterBuffer[cursor++] = 0;
26498
+ parameterBuffer[cursor++] = 0;
26499
+ parameterBuffer[cursor++] = 1;
26500
+ parameterBuffer[cursor++] = 1;
25705
26501
  }
25706
26502
  }
25707
26503
  cursor = spriteOffset;
@@ -25948,34 +26744,389 @@ const createSpriteOriginReference = () => {
25948
26744
  decodeKey
25949
26745
  };
25950
26746
  };
25951
- const spriteLayerHostInitializationMutex = createMutex();
25952
- let spriteLayerHostVariant = "disabled";
25953
- const isSpriteLayerHostEnabled = () => spriteLayerHostVariant !== "disabled";
25954
- const initializeSpriteLayerHost = async (calculationVariant) => {
25955
- const locker = await spriteLayerHostInitializationMutex.lock();
25956
- try {
25957
- const requestedVariant = calculationVariant != null ? calculationVariant : "simd";
25958
- if (requestedVariant === "disabled") {
25959
- releaseSpriteLayerHost();
25960
- return "disabled";
26747
+ const DEFAULT_PAGE_WIDTH = 2048;
26748
+ const DEFAULT_PAGE_HEIGHT = 2048;
26749
+ const DEFAULT_PADDING = 1;
26750
+ const createFallbackCanvas2D = (width, height) => {
26751
+ const fallbackCanvas = {
26752
+ width,
26753
+ height
26754
+ };
26755
+ const fallbackContext = {
26756
+ canvas: fallbackCanvas,
26757
+ drawImage: () => {
26758
+ },
26759
+ clearRect: () => {
26760
+ },
26761
+ save: () => {
26762
+ },
26763
+ restore: () => {
26764
+ },
26765
+ scale: () => {
26766
+ },
26767
+ translate: () => {
26768
+ },
26769
+ imageSmoothingEnabled: false
26770
+ };
26771
+ fallbackCanvas.getContext = () => fallbackContext;
26772
+ return {
26773
+ canvas: fallbackCanvas,
26774
+ ctx: fallbackContext
26775
+ };
26776
+ };
26777
+ const createCanvas2D$1 = (width, height) => {
26778
+ if (typeof OffscreenCanvas !== "undefined") {
26779
+ const canvas = new OffscreenCanvas(width, height);
26780
+ const ctx = canvas.getContext("2d");
26781
+ if (!ctx) {
26782
+ throw new Error("Failed to acquire 2D context for sprite atlas.");
25961
26783
  }
25962
- const forceReload = calculationVariant !== void 0;
25963
- spriteLayerHostVariant = await initializeWasmHost(requestedVariant, {
25964
- force: forceReload
25965
- });
25966
- return spriteLayerHostVariant;
25967
- } finally {
25968
- locker.release();
26784
+ return { canvas, ctx };
26785
+ }
26786
+ if (typeof document !== "undefined") {
26787
+ const canvas = document.createElement("canvas");
26788
+ canvas.width = width;
26789
+ canvas.height = height;
26790
+ const ctx = canvas.getContext("2d");
26791
+ if (!ctx) {
26792
+ throw new Error("Failed to acquire 2D context for sprite atlas.");
26793
+ }
26794
+ return { canvas, ctx };
25969
26795
  }
26796
+ return createFallbackCanvas2D(width, height);
25970
26797
  };
25971
- const releaseSpriteLayerHost = () => {
25972
- if (spriteLayerHostVariant === "disabled") {
25973
- return;
26798
+ const clampPositiveInteger = (value) => {
26799
+ if (!Number.isFinite(value) || value <= 0) {
26800
+ return 1;
25974
26801
  }
25975
- spriteLayerHostVariant = "disabled";
25976
- releaseWasmHost();
26802
+ return Math.max(1, Math.round(value));
26803
+ };
26804
+ const tryAllocateInPage = (page, width, height) => {
26805
+ if (page.cursorX + width > page.width) {
26806
+ const nextRowY = page.cursorY + page.rowHeight;
26807
+ if (nextRowY + height > page.height) {
26808
+ return null;
26809
+ }
26810
+ page.cursorX = 0;
26811
+ page.cursorY = nextRowY;
26812
+ page.rowHeight = 0;
26813
+ }
26814
+ if (page.cursorY + height > page.height) {
26815
+ return null;
26816
+ }
26817
+ const slot = {
26818
+ x: page.cursorX,
26819
+ y: page.cursorY
26820
+ };
26821
+ page.cursorX += width;
26822
+ if (height > page.rowHeight) {
26823
+ page.rowHeight = height;
26824
+ }
26825
+ return slot;
26826
+ };
26827
+ const createPage = (index, width, height) => {
26828
+ const { canvas, ctx } = createCanvas2D$1(width, height);
26829
+ ctx.clearRect(0, 0, width, height);
26830
+ return {
26831
+ index,
26832
+ width,
26833
+ height,
26834
+ canvas,
26835
+ ctx,
26836
+ cursorX: 0,
26837
+ cursorY: 0,
26838
+ rowHeight: 0,
26839
+ needsUpload: true
26840
+ };
26841
+ };
26842
+ const applyPlacementToPage = (image, page, slot, padding) => {
26843
+ const drawX = slot.x + padding;
26844
+ const drawY = slot.y + padding;
26845
+ page.ctx.drawImage(image.bitmap, drawX, drawY);
26846
+ page.needsUpload = true;
26847
+ const placement = {
26848
+ pageIndex: page.index,
26849
+ width: image.width,
26850
+ height: image.height,
26851
+ x: drawX,
26852
+ y: drawY,
26853
+ u0: drawX / page.width,
26854
+ v0: drawY / page.height,
26855
+ u1: (drawX + image.width) / page.width,
26856
+ v1: (drawY + image.height) / page.height
26857
+ };
26858
+ image.placement = placement;
26859
+ return placement;
26860
+ };
26861
+ const redrawPlacementOnPage = (image, page, placement) => {
26862
+ page.ctx.clearRect(
26863
+ placement.x,
26864
+ placement.y,
26865
+ placement.width,
26866
+ placement.height
26867
+ );
26868
+ page.ctx.drawImage(image.bitmap, placement.x, placement.y);
26869
+ page.needsUpload = true;
26870
+ image.placement = placement;
26871
+ return placement;
26872
+ };
26873
+ const sortImagesForPacking = (left, right) => {
26874
+ if (left.height !== right.height) {
26875
+ return right.height - left.height;
26876
+ }
26877
+ if (left.width !== right.width) {
26878
+ return right.width - left.width;
26879
+ }
26880
+ return left.id.localeCompare(right.id);
26881
+ };
26882
+ const createAtlasManager = (options) => {
26883
+ const pageWidth = clampPositiveInteger(
26884
+ DEFAULT_PAGE_WIDTH
26885
+ );
26886
+ const pageHeight = clampPositiveInteger(
26887
+ DEFAULT_PAGE_HEIGHT
26888
+ );
26889
+ const padding = Math.max(0, Math.round(DEFAULT_PADDING));
26890
+ const images = /* @__PURE__ */ new Map();
26891
+ let pages = [];
26892
+ const ensureFitsInPage = (image) => {
26893
+ const paddedWidth = image.width + padding * 2;
26894
+ const paddedHeight = image.height + padding * 2;
26895
+ if (paddedWidth > pageWidth || paddedHeight > pageHeight) {
26896
+ throw new Error(
26897
+ `[SpriteLayer][Atlas] Image "${image.id}" (${image.width}x${image.height}) exceeds atlas page size ${pageWidth}x${pageHeight}.`
26898
+ );
26899
+ }
26900
+ };
26901
+ const placeImageIncrementally = (image) => {
26902
+ ensureFitsInPage(image);
26903
+ const paddedWidth = image.width + padding * 2;
26904
+ const paddedHeight = image.height + padding * 2;
26905
+ for (const page of pages) {
26906
+ const slot2 = tryAllocateInPage(page, paddedWidth, paddedHeight);
26907
+ if (slot2) {
26908
+ return applyPlacementToPage(image, page, slot2, padding);
26909
+ }
26910
+ }
26911
+ const newPage = createPage(pages.length, pageWidth, pageHeight);
26912
+ pages.push(newPage);
26913
+ const slot = tryAllocateInPage(newPage, paddedWidth, paddedHeight);
26914
+ if (!slot) {
26915
+ throw new Error(
26916
+ `[SpriteLayer][Atlas] Unable to allocate image "${image.id}" on a fresh page.`
26917
+ );
26918
+ }
26919
+ return applyPlacementToPage(image, newPage, slot, padding);
26920
+ };
26921
+ const rebuildAtlas = () => {
26922
+ if (images.size === 0) {
26923
+ pages = [];
26924
+ return;
26925
+ }
26926
+ const sortedImages = Array.from(images.values()).sort(sortImagesForPacking);
26927
+ const rebuiltPages = [];
26928
+ for (const entry of sortedImages) {
26929
+ const paddedWidth = entry.width + padding * 2;
26930
+ const paddedHeight = entry.height + padding * 2;
26931
+ if (paddedWidth > pageWidth || paddedHeight > pageHeight) {
26932
+ throw new Error(
26933
+ `[SpriteLayer][Atlas] Image "${entry.id}" (${entry.width}x${entry.height}) exceeds atlas page size ${pageWidth}x${pageHeight}.`
26934
+ );
26935
+ }
26936
+ let allocatedSlot = null;
26937
+ let targetPage = null;
26938
+ for (const page of rebuiltPages) {
26939
+ const slot = tryAllocateInPage(page, paddedWidth, paddedHeight);
26940
+ if (slot) {
26941
+ allocatedSlot = slot;
26942
+ targetPage = page;
26943
+ break;
26944
+ }
26945
+ }
26946
+ if (!allocatedSlot || !targetPage) {
26947
+ const newPage = createPage(rebuiltPages.length, pageWidth, pageHeight);
26948
+ rebuiltPages.push(newPage);
26949
+ allocatedSlot = tryAllocateInPage(newPage, paddedWidth, paddedHeight);
26950
+ targetPage = newPage;
26951
+ if (!allocatedSlot) {
26952
+ throw new Error(
26953
+ `[SpriteLayer][Atlas] Unable to allocate image "${entry.id}" on a fresh page.`
26954
+ );
26955
+ }
26956
+ }
26957
+ applyPlacementToPage(entry, targetPage, allocatedSlot, padding);
26958
+ }
26959
+ pages = rebuiltPages;
26960
+ };
26961
+ return {
26962
+ upsertImage: (id, bitmap) => {
26963
+ const width = clampPositiveInteger(bitmap.width);
26964
+ const height = clampPositiveInteger(bitmap.height);
26965
+ const existing = images.get(id);
26966
+ if (existing) {
26967
+ existing.bitmap = bitmap;
26968
+ const sizeChanged = existing.width !== width || existing.height !== height;
26969
+ existing.width = width;
26970
+ existing.height = height;
26971
+ if (!sizeChanged && existing.placement) {
26972
+ const page = pages[existing.placement.pageIndex];
26973
+ if (!page) {
26974
+ throw new Error(
26975
+ `[SpriteLayer][Atlas] Missing atlas page ${existing.placement.pageIndex} for image "${id}".`
26976
+ );
26977
+ }
26978
+ return redrawPlacementOnPage(existing, page, existing.placement);
26979
+ }
26980
+ rebuildAtlas();
26981
+ } else {
26982
+ const image = {
26983
+ id,
26984
+ bitmap,
26985
+ width,
26986
+ height,
26987
+ placement: null
26988
+ };
26989
+ images.set(id, image);
26990
+ try {
26991
+ return placeImageIncrementally(image);
26992
+ } catch (error) {
26993
+ images.delete(id);
26994
+ throw error;
26995
+ }
26996
+ }
26997
+ const entry = images.get(id);
26998
+ if (!entry || !entry.placement) {
26999
+ throw new Error(
27000
+ `[SpriteLayer][Atlas] Failed to register image "${id}" in the atlas.`
27001
+ );
27002
+ }
27003
+ return entry.placement;
27004
+ },
27005
+ removeImage: (id) => {
27006
+ const removed = images.delete(id);
27007
+ if (removed) {
27008
+ rebuildAtlas();
27009
+ }
27010
+ return removed;
27011
+ },
27012
+ getImagePlacement: (id) => {
27013
+ var _a;
27014
+ const entry = images.get(id);
27015
+ return (_a = entry == null ? void 0 : entry.placement) != null ? _a : null;
27016
+ },
27017
+ getPages: () => {
27018
+ return pages.slice();
27019
+ },
27020
+ markPageClean: (pageIndex) => {
27021
+ const page = pages[pageIndex];
27022
+ if (page) {
27023
+ page.needsUpload = false;
27024
+ }
27025
+ },
27026
+ clear: () => {
27027
+ images.clear();
27028
+ pages = [];
27029
+ }
27030
+ };
27031
+ };
27032
+ const createAtlasOperationQueue = (atlasManager, options, callbacks) => {
27033
+ const queue = [];
27034
+ let timer = null;
27035
+ let isProcessing = false;
27036
+ const normalizedMaxOps = Math.max(1, options.maxOperationsPerPass | 0);
27037
+ const now = () => typeof performance !== "undefined" ? performance.now() : Date.now();
27038
+ const processChunk = (timeBudgetMs = options.timeBudgetMs) => {
27039
+ if (isProcessing || queue.length === 0) {
27040
+ return {
27041
+ processedAny: false,
27042
+ hasRemaining: queue.length > 0
27043
+ };
27044
+ }
27045
+ isProcessing = true;
27046
+ let processedAny = false;
27047
+ const hasBudget = Number.isFinite(timeBudgetMs) && timeBudgetMs > 0;
27048
+ const budgetStart = hasBudget ? now() : 0;
27049
+ try {
27050
+ let processedCount = 0;
27051
+ while (queue.length > 0) {
27052
+ const entry = queue.shift();
27053
+ try {
27054
+ atlasManager.upsertImage(entry.imageId, entry.bitmap);
27055
+ entry.deferred.resolve(true);
27056
+ processedAny = true;
27057
+ } catch (error) {
27058
+ entry.deferred.reject(error);
27059
+ }
27060
+ processedCount += 1;
27061
+ if (processedCount >= normalizedMaxOps) {
27062
+ break;
27063
+ }
27064
+ if (hasBudget && now() - budgetStart >= timeBudgetMs) {
27065
+ break;
27066
+ }
27067
+ }
27068
+ if (processedAny) {
27069
+ callbacks.onChunkProcessed();
27070
+ }
27071
+ return {
27072
+ processedAny,
27073
+ hasRemaining: queue.length > 0
27074
+ };
27075
+ } finally {
27076
+ isProcessing = false;
27077
+ }
27078
+ };
27079
+ const schedule = () => {
27080
+ if (timer || queue.length === 0) {
27081
+ return;
27082
+ }
27083
+ timer = setTimeout(() => {
27084
+ timer = null;
27085
+ const { hasRemaining } = processChunk();
27086
+ if (hasRemaining) {
27087
+ schedule();
27088
+ }
27089
+ }, 0);
27090
+ };
27091
+ const cancelEntriesForImage = (imageId, reason) => {
27092
+ for (let idx = queue.length - 1; idx >= 0; idx -= 1) {
27093
+ const entry = queue[idx];
27094
+ if (entry && entry.imageId === imageId) {
27095
+ queue.splice(idx, 1);
27096
+ entry.deferred.reject(reason);
27097
+ }
27098
+ }
27099
+ };
27100
+ return {
27101
+ enqueueUpsert: (entry) => {
27102
+ queue.push(entry);
27103
+ schedule();
27104
+ },
27105
+ flushPending: () => {
27106
+ const { hasRemaining } = processChunk();
27107
+ if (hasRemaining) {
27108
+ schedule();
27109
+ }
27110
+ },
27111
+ cancelForImage: (imageId, reason) => {
27112
+ const rejectionReason = reason != null ? reason : new Error(
27113
+ `[SpriteLayer][Atlas] Image "${imageId}" was cancelled before placement.`
27114
+ );
27115
+ cancelEntriesForImage(imageId, rejectionReason);
27116
+ },
27117
+ rejectAll: (reason) => {
27118
+ while (queue.length > 0) {
27119
+ const entry = queue.shift();
27120
+ entry == null ? void 0 : entry.deferred.reject(reason);
27121
+ }
27122
+ },
27123
+ get pendingCount() {
27124
+ return queue.length;
27125
+ }
27126
+ };
25977
27127
  };
25978
27128
  const DEFAULT_AUTO_ROTATION_MIN_DISTANCE_METERS = 20;
27129
+ const ATLAS_PAGE_INDEX_NONE = -1;
25979
27130
  const HIT_TEST_QUERY_RADIUS_PIXELS = 32;
25980
27131
  const MIN_FILTER_VALUES = [
25981
27132
  "nearest",
@@ -26526,33 +27677,179 @@ const createSpriteLayer = (options) => {
26526
27677
  };
26527
27678
  let gl = null;
26528
27679
  let map = null;
26529
- let program = null;
26530
- let vertexBuffer = null;
26531
- let attribPositionLocation = -1;
26532
- let attribUvLocation = -1;
26533
- let uniformTextureLocation = null;
26534
- let uniformOpacityLocation = null;
26535
- let uniformScreenToClipScaleLocation = null;
26536
- let uniformScreenToClipOffsetLocation = null;
26537
- let uniformBillboardModeLocation = null;
26538
- let uniformBillboardCenterLocation = null;
26539
- let uniformBillboardHalfSizeLocation = null;
26540
- let uniformBillboardAnchorLocation = null;
26541
- let uniformBillboardSinCosLocation = null;
26542
- let uniformSurfaceModeLocation = null;
26543
- let uniformSurfaceDepthBiasLocation = null;
26544
- let uniformSurfaceClipEnabledLocation = null;
26545
- let uniformSurfaceClipCenterLocation = null;
26546
- let uniformSurfaceClipBasisEastLocation = null;
26547
- let uniformSurfaceClipBasisNorthLocation = null;
27680
+ let spriteDrawProgram = null;
26548
27681
  let anisotropyExtension = null;
26549
27682
  let maxSupportedAnisotropy = 1;
26550
- let debugProgram = null;
26551
- let debugVertexBuffer = null;
26552
- let debugAttribPositionLocation = -1;
26553
- let debugUniformColorLocation = null;
26554
- let debugUniformScreenToClipScaleLocation = null;
26555
- let debugUniformScreenToClipOffsetLocation = null;
27683
+ let debugOutlineRenderer = null;
27684
+ const atlasManager = createAtlasManager();
27685
+ const atlasPageTextures = /* @__PURE__ */ new Map();
27686
+ let atlasNeedsUpload = false;
27687
+ let handleAtlasQueueChunkProcessed = null;
27688
+ const atlasQueue = createAtlasOperationQueue(
27689
+ atlasManager,
27690
+ {
27691
+ maxOperationsPerPass: ATLAS_QUEUE_CHUNK_SIZE,
27692
+ timeBudgetMs: ATLAS_QUEUE_TIME_BUDGET_MS
27693
+ },
27694
+ {
27695
+ onChunkProcessed: () => {
27696
+ handleAtlasQueueChunkProcessed == null ? void 0 : handleAtlasQueueChunkProcessed();
27697
+ }
27698
+ }
27699
+ );
27700
+ const pendingTextGlyphIds = /* @__PURE__ */ new Set();
27701
+ const textGlyphQueue = [];
27702
+ let textGlyphQueueTimer = null;
27703
+ let isProcessingTextGlyphQueue = false;
27704
+ const now = () => typeof performance !== "undefined" ? performance.now() : Date.now();
27705
+ const scheduleTextGlyphQueueProcessing = () => {
27706
+ if (textGlyphQueueTimer) {
27707
+ return;
27708
+ }
27709
+ textGlyphQueueTimer = setTimeout(() => {
27710
+ textGlyphQueueTimer = null;
27711
+ void processTextGlyphQueueChunk();
27712
+ }, 0);
27713
+ };
27714
+ const enqueueTextGlyphJob = (entry) => {
27715
+ textGlyphQueue.push(entry);
27716
+ scheduleTextGlyphQueueProcessing();
27717
+ };
27718
+ const cancelPendingTextGlyphJob = (imageId, reason) => {
27719
+ var _a2;
27720
+ for (let idx = textGlyphQueue.length - 1; idx >= 0; idx -= 1) {
27721
+ const entry = textGlyphQueue[idx];
27722
+ if (entry && entry.glyphId === imageId) {
27723
+ textGlyphQueue.splice(idx, 1);
27724
+ pendingTextGlyphIds.delete(imageId);
27725
+ (_a2 = entry.abortHandle) == null ? void 0 : _a2.release();
27726
+ entry.deferred.reject(
27727
+ reason != null ? reason : new Error(
27728
+ `[SpriteLayer][GlyphQueue] Image "${imageId}" was cancelled before generation.`
27729
+ )
27730
+ );
27731
+ }
27732
+ }
27733
+ };
27734
+ const rejectAllPendingTextGlyphJobs = (reason) => {
27735
+ var _a2;
27736
+ while (textGlyphQueue.length > 0) {
27737
+ const entry = textGlyphQueue.shift();
27738
+ if (entry) {
27739
+ pendingTextGlyphIds.delete(entry.glyphId);
27740
+ (_a2 = entry.abortHandle) == null ? void 0 : _a2.release();
27741
+ entry.deferred.reject(reason);
27742
+ }
27743
+ }
27744
+ };
27745
+ const executeTextGlyphJob = async (entry) => {
27746
+ var _a2, _b, _c, _d, _e, _f, _g;
27747
+ if ((_a2 = entry.signal) == null ? void 0 : _a2.aborted) {
27748
+ (_b = entry.abortHandle) == null ? void 0 : _b.release();
27749
+ entry.deferred.reject(entry.signal.reason);
27750
+ pendingTextGlyphIds.delete(entry.glyphId);
27751
+ return;
27752
+ }
27753
+ if (images.has(entry.glyphId)) {
27754
+ (_c = entry.abortHandle) == null ? void 0 : _c.release();
27755
+ entry.deferred.resolve(false);
27756
+ pendingTextGlyphIds.delete(entry.glyphId);
27757
+ return;
27758
+ }
27759
+ if (!pendingTextGlyphIds.has(entry.glyphId)) {
27760
+ (_d = entry.abortHandle) == null ? void 0 : _d.release();
27761
+ entry.deferred.reject(
27762
+ new Error(
27763
+ `[SpriteLayer][GlyphQueue] Image "${entry.glyphId}" was removed before generation.`
27764
+ )
27765
+ );
27766
+ return;
27767
+ }
27768
+ let registeredImage = null;
27769
+ try {
27770
+ const { bitmap, width, height } = await renderTextGlyphBitmap(
27771
+ entry.text,
27772
+ entry.dimensions,
27773
+ entry.options
27774
+ );
27775
+ const handle = imageIdHandler.allocate(entry.glyphId);
27776
+ registeredImage = {
27777
+ id: entry.glyphId,
27778
+ handle,
27779
+ width,
27780
+ height,
27781
+ bitmap,
27782
+ texture: void 0,
27783
+ atlasPageIndex: ATLAS_PAGE_INDEX_NONE,
27784
+ atlasU0: 0,
27785
+ atlasV0: 0,
27786
+ atlasU1: 1,
27787
+ atlasV1: 1
27788
+ };
27789
+ images.set(entry.glyphId, registeredImage);
27790
+ imageIdHandler.store(handle, registeredImage);
27791
+ updateSpriteImageHandles(entry.glyphId, handle);
27792
+ imageHandleBuffersController.markDirty(images);
27793
+ const atlasDeferred = createDeferred();
27794
+ atlasQueue.enqueueUpsert({
27795
+ imageId: entry.glyphId,
27796
+ bitmap,
27797
+ deferred: atlasDeferred
27798
+ });
27799
+ await atlasDeferred.promise;
27800
+ entry.deferred.resolve(true);
27801
+ } catch (error) {
27802
+ if (registeredImage) {
27803
+ images.delete(entry.glyphId);
27804
+ imageIdHandler.release(entry.glyphId);
27805
+ updateSpriteImageHandles(entry.glyphId, 0);
27806
+ imageHandleBuffersController.markDirty(images);
27807
+ atlasManager.removeImage(entry.glyphId);
27808
+ (_f = (_e = registeredImage.bitmap).close) == null ? void 0 : _f.call(_e);
27809
+ }
27810
+ entry.deferred.reject(error);
27811
+ }
27812
+ pendingTextGlyphIds.delete(entry.glyphId);
27813
+ (_g = entry.abortHandle) == null ? void 0 : _g.release();
27814
+ };
27815
+ const processTextGlyphQueueChunk = async () => {
27816
+ if (isProcessingTextGlyphQueue || textGlyphQueue.length === 0) {
27817
+ return;
27818
+ }
27819
+ isProcessingTextGlyphQueue = true;
27820
+ const budgetStart = now();
27821
+ let processedCount = 0;
27822
+ try {
27823
+ while (textGlyphQueue.length > 0) {
27824
+ const entry = textGlyphQueue.shift();
27825
+ await executeTextGlyphJob(entry);
27826
+ processedCount += 1;
27827
+ if (processedCount >= TEXT_GLYPH_QUEUE_CHUNK_SIZE) {
27828
+ break;
27829
+ }
27830
+ if (now() - budgetStart >= TEXT_GLYPH_QUEUE_TIME_BUDGET_MS) {
27831
+ break;
27832
+ }
27833
+ }
27834
+ } finally {
27835
+ isProcessingTextGlyphQueue = false;
27836
+ }
27837
+ if (textGlyphQueue.length > 0) {
27838
+ scheduleTextGlyphQueueProcessing();
27839
+ }
27840
+ };
27841
+ const shouldUploadAtlasPages = (pageStates) => {
27842
+ const pages = pageStates != null ? pageStates : atlasManager.getPages();
27843
+ for (const page of pages) {
27844
+ if (page.needsUpload) {
27845
+ return true;
27846
+ }
27847
+ if (!atlasPageTextures.has(page.index)) {
27848
+ return true;
27849
+ }
27850
+ }
27851
+ return false;
27852
+ };
26556
27853
  const images = /* @__PURE__ */ new Map();
26557
27854
  const imageIdHandler = createIdHandler();
26558
27855
  const spriteIdHandler = createIdHandler();
@@ -26562,15 +27859,36 @@ const createSpriteLayer = (options) => {
26562
27859
  return resource ? resource.handle : 0;
26563
27860
  };
26564
27861
  const originReference = createSpriteOriginReference();
26565
- const queuedTextureIds = /* @__PURE__ */ new Set();
26566
- const queueTextureUpload = (image) => {
26567
- queuedTextureIds.add(image.id);
26568
- };
26569
- const cancelQueuedTextureUpload = (imageId) => {
26570
- queuedTextureIds.delete(imageId);
26571
- };
26572
- const clearTextureQueue = () => {
26573
- queuedTextureIds.clear();
27862
+ const syncAtlasPlacementsFromManager = () => {
27863
+ let placementsChanged = false;
27864
+ images.forEach((image, imageId) => {
27865
+ const placement = atlasManager.getImagePlacement(imageId);
27866
+ if (!placement) {
27867
+ if (image.atlasPageIndex !== ATLAS_PAGE_INDEX_NONE || image.atlasU0 !== 0 || image.atlasV0 !== 0 || image.atlasU1 !== 1 || image.atlasV1 !== 1) {
27868
+ image.atlasPageIndex = ATLAS_PAGE_INDEX_NONE;
27869
+ image.atlasU0 = 0;
27870
+ image.atlasV0 = 0;
27871
+ image.atlasU1 = 1;
27872
+ image.atlasV1 = 1;
27873
+ image.texture = void 0;
27874
+ placementsChanged = true;
27875
+ }
27876
+ return;
27877
+ }
27878
+ if (image.atlasPageIndex !== placement.pageIndex || image.atlasU0 !== placement.u0 || image.atlasV0 !== placement.v0 || image.atlasU1 !== placement.u1 || image.atlasV1 !== placement.v1) {
27879
+ image.atlasPageIndex = placement.pageIndex;
27880
+ image.atlasU0 = placement.u0;
27881
+ image.atlasV0 = placement.v0;
27882
+ image.atlasU1 = placement.u1;
27883
+ image.atlasV1 = placement.v1;
27884
+ image.texture = void 0;
27885
+ placementsChanged = true;
27886
+ }
27887
+ });
27888
+ if (placementsChanged) {
27889
+ imageHandleBuffersController.markDirty(images);
27890
+ }
27891
+ atlasNeedsUpload = placementsChanged || shouldUploadAtlasPages();
26574
27892
  };
26575
27893
  const sprites = /* @__PURE__ */ new Map();
26576
27894
  const updateSpriteImageHandles = (imageId, handle) => {
@@ -27202,36 +28520,48 @@ const createSpriteLayer = (options) => {
27202
28520
  if (!gl) {
27203
28521
  return;
27204
28522
  }
27205
- if (queuedTextureIds.size === 0) {
28523
+ atlasQueue.flushPending();
28524
+ if (!atlasNeedsUpload) {
27206
28525
  return;
27207
28526
  }
27208
28527
  const glContext = gl;
27209
- queuedTextureIds.forEach((imageId) => {
27210
- const image = images.get(imageId);
27211
- queuedTextureIds.delete(imageId);
27212
- if (!image || !image.bitmap) {
27213
- return;
28528
+ const pages = atlasManager.getPages();
28529
+ const activePageIndices = /* @__PURE__ */ new Set();
28530
+ pages.forEach((page) => activePageIndices.add(page.index));
28531
+ atlasPageTextures.forEach((texture, pageIndex) => {
28532
+ if (!activePageIndices.has(pageIndex)) {
28533
+ glContext.deleteTexture(texture);
28534
+ atlasPageTextures.delete(pageIndex);
27214
28535
  }
27215
- if (image.texture) {
27216
- glContext.deleteTexture(image.texture);
27217
- image.texture = void 0;
27218
- imageHandleBuffersController.markDirty(images);
28536
+ });
28537
+ pages.forEach((page) => {
28538
+ const requiresUpload = page.needsUpload || !atlasPageTextures.has(page.index);
28539
+ if (!requiresUpload) {
28540
+ return;
27219
28541
  }
27220
- const texture = glContext.createTexture();
28542
+ let texture = atlasPageTextures.get(page.index);
28543
+ let isNewTexture = false;
27221
28544
  if (!texture) {
27222
- throw new Error("Failed to create texture.");
28545
+ texture = glContext.createTexture();
28546
+ if (!texture) {
28547
+ throw new Error("Failed to create texture.");
28548
+ }
28549
+ atlasPageTextures.set(page.index, texture);
28550
+ isNewTexture = true;
27223
28551
  }
27224
28552
  glContext.bindTexture(glContext.TEXTURE_2D, texture);
27225
- glContext.texParameteri(
27226
- glContext.TEXTURE_2D,
27227
- glContext.TEXTURE_WRAP_S,
27228
- glContext.CLAMP_TO_EDGE
27229
- );
27230
- glContext.texParameteri(
27231
- glContext.TEXTURE_2D,
27232
- glContext.TEXTURE_WRAP_T,
27233
- glContext.CLAMP_TO_EDGE
27234
- );
28553
+ if (isNewTexture) {
28554
+ glContext.texParameteri(
28555
+ glContext.TEXTURE_2D,
28556
+ glContext.TEXTURE_WRAP_S,
28557
+ glContext.CLAMP_TO_EDGE
28558
+ );
28559
+ glContext.texParameteri(
28560
+ glContext.TEXTURE_2D,
28561
+ glContext.TEXTURE_WRAP_T,
28562
+ glContext.CLAMP_TO_EDGE
28563
+ );
28564
+ }
27235
28565
  glContext.pixelStorei(glContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);
27236
28566
  glContext.texImage2D(
27237
28567
  glContext.TEXTURE_2D,
@@ -27239,7 +28569,7 @@ const createSpriteLayer = (options) => {
27239
28569
  glContext.RGBA,
27240
28570
  glContext.RGBA,
27241
28571
  glContext.UNSIGNED_BYTE,
27242
- image.bitmap
28572
+ page.canvas
27243
28573
  );
27244
28574
  let minFilterEnum = resolveGlMinFilter(
27245
28575
  glContext,
@@ -27252,7 +28582,7 @@ const createSpriteLayer = (options) => {
27252
28582
  let usedMipmaps = false;
27253
28583
  if (resolvedTextureFiltering.generateMipmaps) {
27254
28584
  const isWebGL2 = typeof WebGL2RenderingContext !== "undefined" && glContext instanceof WebGL2RenderingContext;
27255
- const canUseMipmaps = isWebGL2 || isPowerOfTwo(image.width) && isPowerOfTwo(image.height);
28585
+ const canUseMipmaps = isWebGL2 || isPowerOfTwo(page.width) && isPowerOfTwo(page.height);
27256
28586
  if (canUseMipmaps) {
27257
28587
  glContext.generateMipmap(glContext.TEXTURE_2D);
27258
28588
  usedMipmaps = true;
@@ -27287,9 +28617,17 @@ const createSpriteLayer = (options) => {
27287
28617
  );
27288
28618
  }
27289
28619
  }
27290
- image.texture = texture;
27291
- imageHandleBuffersController.markDirty(images);
28620
+ atlasManager.markPageClean(page.index);
28621
+ });
28622
+ images.forEach((image) => {
28623
+ if (image.atlasPageIndex !== ATLAS_PAGE_INDEX_NONE) {
28624
+ image.texture = atlasPageTextures.get(image.atlasPageIndex);
28625
+ } else {
28626
+ image.texture = void 0;
28627
+ }
27292
28628
  });
28629
+ imageHandleBuffersController.markDirty(images);
28630
+ atlasNeedsUpload = shouldUploadAtlasPages(pages);
27293
28631
  };
27294
28632
  let isRenderScheduled = false;
27295
28633
  const scheduleRender = () => {
@@ -27299,6 +28637,10 @@ const createSpriteLayer = (options) => {
27299
28637
  isRenderScheduled = true;
27300
28638
  map.triggerRepaint();
27301
28639
  };
28640
+ handleAtlasQueueChunkProcessed = () => {
28641
+ syncAtlasPlacementsFromManager();
28642
+ scheduleRender();
28643
+ };
27302
28644
  const ensureRenderTargetEntries = () => {
27303
28645
  var _a2;
27304
28646
  renderTargetEntries.length = 0;
@@ -27456,188 +28798,9 @@ const createSpriteLayer = (options) => {
27456
28798
  });
27457
28799
  }
27458
28800
  }
27459
- const buffer = glContext.createBuffer();
27460
- if (!buffer) {
27461
- throw new Error("Failed to create vertex buffer.");
27462
- }
27463
- vertexBuffer = buffer;
27464
- glContext.bindBuffer(glContext.ARRAY_BUFFER, vertexBuffer);
27465
- glContext.bufferData(
27466
- glContext.ARRAY_BUFFER,
27467
- INITIAL_QUAD_VERTICES,
27468
- glContext.DYNAMIC_DRAW
27469
- );
27470
- const shaderProgram = createShaderProgram(
27471
- glContext,
27472
- VERTEX_SHADER_SOURCE,
27473
- FRAGMENT_SHADER_SOURCE
27474
- );
27475
- program = shaderProgram;
27476
- glContext.useProgram(shaderProgram);
27477
- attribPositionLocation = glContext.getAttribLocation(
27478
- shaderProgram,
27479
- "a_position"
27480
- );
27481
- attribUvLocation = glContext.getAttribLocation(shaderProgram, "a_uv");
27482
- if (attribPositionLocation === -1 || attribUvLocation === -1) {
27483
- throw new Error("Failed to acquire attribute locations.");
27484
- }
27485
- uniformTextureLocation = glContext.getUniformLocation(
27486
- shaderProgram,
27487
- "u_texture"
27488
- );
27489
- uniformOpacityLocation = glContext.getUniformLocation(
27490
- shaderProgram,
27491
- "u_opacity"
27492
- );
27493
- uniformScreenToClipScaleLocation = glContext.getUniformLocation(
27494
- shaderProgram,
27495
- "u_screenToClipScale"
27496
- );
27497
- uniformScreenToClipOffsetLocation = glContext.getUniformLocation(
27498
- shaderProgram,
27499
- "u_screenToClipOffset"
27500
- );
27501
- uniformBillboardModeLocation = glContext.getUniformLocation(
27502
- shaderProgram,
27503
- "u_billboardMode"
27504
- );
27505
- uniformBillboardCenterLocation = glContext.getUniformLocation(
27506
- shaderProgram,
27507
- "u_billboardCenter"
27508
- );
27509
- uniformBillboardHalfSizeLocation = glContext.getUniformLocation(
27510
- shaderProgram,
27511
- "u_billboardHalfSize"
27512
- );
27513
- uniformBillboardAnchorLocation = glContext.getUniformLocation(
27514
- shaderProgram,
27515
- "u_billboardAnchor"
27516
- );
27517
- uniformBillboardSinCosLocation = glContext.getUniformLocation(
27518
- shaderProgram,
27519
- "u_billboardSinCos"
27520
- );
27521
- uniformSurfaceModeLocation = glContext.getUniformLocation(
27522
- shaderProgram,
27523
- "u_surfaceMode"
27524
- );
27525
- uniformSurfaceDepthBiasLocation = glContext.getUniformLocation(
27526
- shaderProgram,
27527
- "u_surfaceDepthBias"
27528
- );
27529
- uniformSurfaceClipEnabledLocation = glContext.getUniformLocation(
27530
- shaderProgram,
27531
- "u_surfaceClipEnabled"
27532
- );
27533
- uniformSurfaceClipCenterLocation = glContext.getUniformLocation(
27534
- shaderProgram,
27535
- "u_surfaceClipCenter"
27536
- );
27537
- uniformSurfaceClipBasisEastLocation = glContext.getUniformLocation(
27538
- shaderProgram,
27539
- "u_surfaceClipBasisEast"
27540
- );
27541
- uniformSurfaceClipBasisNorthLocation = glContext.getUniformLocation(
27542
- shaderProgram,
27543
- "u_surfaceClipBasisNorth"
27544
- );
27545
- if (!uniformTextureLocation || !uniformOpacityLocation || !uniformScreenToClipScaleLocation || !uniformScreenToClipOffsetLocation || !uniformBillboardModeLocation || !uniformBillboardCenterLocation || !uniformBillboardHalfSizeLocation || !uniformBillboardAnchorLocation || !uniformBillboardSinCosLocation || !uniformSurfaceModeLocation || !uniformSurfaceDepthBiasLocation || !uniformSurfaceClipEnabledLocation || !uniformSurfaceClipCenterLocation || !uniformSurfaceClipBasisEastLocation || !uniformSurfaceClipBasisNorthLocation) {
27546
- throw new Error("Failed to acquire uniform locations.");
27547
- }
27548
- glContext.enableVertexAttribArray(attribPositionLocation);
27549
- glContext.vertexAttribPointer(
27550
- attribPositionLocation,
27551
- POSITION_COMPONENT_COUNT,
27552
- glContext.FLOAT,
27553
- false,
27554
- VERTEX_STRIDE,
27555
- 0
27556
- );
27557
- glContext.enableVertexAttribArray(attribUvLocation);
27558
- glContext.vertexAttribPointer(
27559
- attribUvLocation,
27560
- UV_COMPONENT_COUNT,
27561
- glContext.FLOAT,
27562
- false,
27563
- VERTEX_STRIDE,
27564
- UV_OFFSET
27565
- );
27566
- glContext.uniform1i(uniformTextureLocation, 0);
27567
- glContext.uniform1f(uniformOpacityLocation, 1);
27568
- glContext.uniform2f(uniformScreenToClipScaleLocation, 1, 1);
27569
- glContext.uniform2f(uniformScreenToClipOffsetLocation, 0, 0);
27570
- glContext.uniform1f(uniformSurfaceClipEnabledLocation, 0);
27571
- glContext.uniform4f(uniformSurfaceClipCenterLocation, 0, 0, 0, 1);
27572
- glContext.uniform4f(
27573
- uniformSurfaceClipBasisEastLocation,
27574
- 0,
27575
- 0,
27576
- 0,
27577
- 0
27578
- );
27579
- glContext.uniform4f(
27580
- uniformSurfaceClipBasisNorthLocation,
27581
- 0,
27582
- 0,
27583
- 0,
27584
- 0
27585
- );
27586
- glContext.uniform1f(uniformBillboardModeLocation, 0);
27587
- glContext.uniform2f(uniformBillboardCenterLocation, 0, 0);
27588
- glContext.uniform2f(uniformBillboardHalfSizeLocation, 0, 0);
27589
- glContext.uniform2f(uniformBillboardAnchorLocation, 0, 0);
27590
- glContext.uniform2f(uniformBillboardSinCosLocation, 0, 1);
27591
- glContext.uniform1f(uniformSurfaceModeLocation, 0);
27592
- glContext.uniform1f(uniformSurfaceDepthBiasLocation, 0);
27593
- glContext.bindBuffer(glContext.ARRAY_BUFFER, null);
28801
+ spriteDrawProgram = createSpriteDrawProgram(glContext);
27594
28802
  if (showDebugBounds) {
27595
- const debugShaderProgram = createShaderProgram(
27596
- glContext,
27597
- DEBUG_OUTLINE_VERTEX_SHADER_SOURCE,
27598
- DEBUG_OUTLINE_FRAGMENT_SHADER_SOURCE
27599
- );
27600
- debugProgram = debugShaderProgram;
27601
- debugAttribPositionLocation = glContext.getAttribLocation(
27602
- debugShaderProgram,
27603
- "a_position"
27604
- );
27605
- if (debugAttribPositionLocation === -1) {
27606
- throw new Error("Failed to acquire debug attribute location.");
27607
- }
27608
- const colorLocation = glContext.getUniformLocation(
27609
- debugShaderProgram,
27610
- "u_color"
27611
- );
27612
- if (!colorLocation) {
27613
- throw new Error("Failed to acquire debug color uniform.");
27614
- }
27615
- debugUniformColorLocation = colorLocation;
27616
- debugUniformScreenToClipScaleLocation = glContext.getUniformLocation(
27617
- debugShaderProgram,
27618
- "u_screenToClipScale"
27619
- );
27620
- debugUniformScreenToClipOffsetLocation = glContext.getUniformLocation(
27621
- debugShaderProgram,
27622
- "u_screenToClipOffset"
27623
- );
27624
- if (!debugUniformScreenToClipScaleLocation || !debugUniformScreenToClipOffsetLocation) {
27625
- throw new Error("Failed to acquire debug screen-to-clip uniforms.");
27626
- }
27627
- glContext.uniform2f(debugUniformScreenToClipScaleLocation, 1, 1);
27628
- glContext.uniform2f(debugUniformScreenToClipOffsetLocation, 0, 0);
27629
- const outlineBuffer = glContext.createBuffer();
27630
- if (!outlineBuffer) {
27631
- throw new Error("Failed to create debug vertex buffer.");
27632
- }
27633
- debugVertexBuffer = outlineBuffer;
27634
- glContext.bindBuffer(glContext.ARRAY_BUFFER, outlineBuffer);
27635
- glContext.bufferData(
27636
- glContext.ARRAY_BUFFER,
27637
- DEBUG_OUTLINE_VERTEX_SCRATCH,
27638
- glContext.DYNAMIC_DRAW
27639
- );
27640
- glContext.bindBuffer(glContext.ARRAY_BUFFER, null);
28803
+ debugOutlineRenderer = createDebugOutlineRenderer(glContext);
27641
28804
  }
27642
28805
  scheduleRender();
27643
28806
  };
@@ -27651,51 +28814,28 @@ const createSpriteLayer = (options) => {
27651
28814
  hitTestTreeItems = /* @__PURE__ */ new WeakMap();
27652
28815
  const glContext = gl;
27653
28816
  if (glContext) {
28817
+ atlasPageTextures.forEach((texture) => {
28818
+ glContext.deleteTexture(texture);
28819
+ });
28820
+ atlasPageTextures.clear();
27654
28821
  images.forEach((image) => {
27655
- if (image.texture) {
27656
- glContext.deleteTexture(image.texture);
27657
- }
27658
28822
  image.texture = void 0;
27659
- queueTextureUpload(image);
27660
28823
  });
27661
- if (vertexBuffer) {
27662
- glContext.deleteBuffer(vertexBuffer);
28824
+ atlasNeedsUpload = true;
28825
+ if (spriteDrawProgram) {
28826
+ spriteDrawProgram.release();
28827
+ spriteDrawProgram = null;
27663
28828
  }
27664
- if (debugVertexBuffer) {
27665
- glContext.deleteBuffer(debugVertexBuffer);
27666
- }
27667
- if (program) {
27668
- glContext.deleteProgram(program);
27669
- }
27670
- if (debugProgram) {
27671
- glContext.deleteProgram(debugProgram);
28829
+ if (debugOutlineRenderer) {
28830
+ debugOutlineRenderer.release();
28831
+ debugOutlineRenderer = null;
27672
28832
  }
27673
28833
  }
27674
28834
  eventListeners.forEach((set) => set.clear());
27675
28835
  eventListeners.clear();
27676
28836
  gl = null;
27677
28837
  map = null;
27678
- program = null;
27679
- vertexBuffer = null;
27680
- debugProgram = null;
27681
- debugVertexBuffer = null;
27682
- attribPositionLocation = -1;
27683
- attribUvLocation = -1;
27684
- debugAttribPositionLocation = -1;
27685
- uniformTextureLocation = null;
27686
- uniformOpacityLocation = null;
27687
- uniformScreenToClipScaleLocation = null;
27688
- uniformScreenToClipOffsetLocation = null;
27689
- uniformBillboardModeLocation = null;
27690
- uniformBillboardCenterLocation = null;
27691
- uniformBillboardHalfSizeLocation = null;
27692
- uniformBillboardAnchorLocation = null;
27693
- uniformBillboardSinCosLocation = null;
27694
- uniformSurfaceModeLocation = null;
27695
- uniformSurfaceDepthBiasLocation = null;
27696
- debugUniformColorLocation = null;
27697
- debugUniformScreenToClipScaleLocation = null;
27698
- debugUniformScreenToClipOffsetLocation = null;
28838
+ debugOutlineRenderer = null;
27699
28839
  anisotropyExtension = null;
27700
28840
  maxSupportedAnisotropy = 1;
27701
28841
  };
@@ -27704,10 +28844,7 @@ const createSpriteLayer = (options) => {
27704
28844
  hitTestEntries.length = 0;
27705
28845
  hitTestEntryByImage = /* @__PURE__ */ new WeakMap();
27706
28846
  const mapInstance = map;
27707
- if (!mapInstance || !program || !vertexBuffer) {
27708
- return;
27709
- }
27710
- if (!uniformOpacityLocation || !uniformTextureLocation || !uniformScreenToClipScaleLocation || !uniformScreenToClipOffsetLocation) {
28847
+ if (!mapInstance || !spriteDrawProgram) {
27711
28848
  return;
27712
28849
  }
27713
28850
  const timestamp = typeof performance !== "undefined" && typeof performance.now === "function" ? (
@@ -27785,164 +28922,16 @@ const createSpriteLayer = (options) => {
27785
28922
  glContext.blendFunc(glContext.SRC_ALPHA, glContext.ONE_MINUS_SRC_ALPHA);
27786
28923
  glContext.disable(glContext.DEPTH_TEST);
27787
28924
  glContext.depthMask(false);
27788
- glContext.useProgram(program);
27789
- glContext.bindBuffer(glContext.ARRAY_BUFFER, vertexBuffer);
27790
- glContext.enableVertexAttribArray(attribPositionLocation);
27791
- glContext.vertexAttribPointer(
27792
- attribPositionLocation,
27793
- POSITION_COMPONENT_COUNT,
27794
- glContext.FLOAT,
27795
- false,
27796
- VERTEX_STRIDE,
27797
- 0
27798
- );
27799
- glContext.enableVertexAttribArray(attribUvLocation);
27800
- glContext.vertexAttribPointer(
27801
- attribUvLocation,
27802
- UV_COMPONENT_COUNT,
27803
- glContext.FLOAT,
27804
- false,
27805
- VERTEX_STRIDE,
27806
- UV_OFFSET
27807
- );
27808
- glContext.uniform1i(uniformTextureLocation, 0);
27809
- const screenToClipScaleLocation = uniformScreenToClipScaleLocation;
27810
- const screenToClipOffsetLocation = uniformScreenToClipOffsetLocation;
27811
- let currentScaleX = Number.NaN;
27812
- let currentScaleY = Number.NaN;
27813
- let currentOffsetX = Number.NaN;
27814
- let currentOffsetY = Number.NaN;
27815
- const applyScreenToClipUniforms = (scaleX, scaleY, offsetX, offsetY) => {
27816
- if (scaleX !== currentScaleX || scaleY !== currentScaleY || offsetX !== currentOffsetX || offsetY !== currentOffsetY) {
27817
- glContext.uniform2f(screenToClipScaleLocation, scaleX, scaleY);
27818
- glContext.uniform2f(screenToClipOffsetLocation, offsetX, offsetY);
27819
- currentScaleX = scaleX;
27820
- currentScaleY = scaleY;
27821
- currentOffsetX = offsetX;
27822
- currentOffsetY = offsetY;
27823
- }
27824
- };
27825
- let currentSurfaceMode = Number.NaN;
27826
- const applySurfaceMode = (enabled) => {
27827
- if (!uniformSurfaceModeLocation) {
27828
- return;
27829
- }
27830
- const value = enabled ? 1 : 0;
27831
- if (value !== currentSurfaceMode) {
27832
- glContext.uniform1f(uniformSurfaceModeLocation, value);
27833
- currentSurfaceMode = value;
27834
- }
27835
- };
27836
- let currentSurfaceClipEnabled = Number.NaN;
27837
- const applySurfaceClipUniforms = (enabled, inputs) => {
27838
- if (!uniformSurfaceClipEnabledLocation || !uniformSurfaceClipCenterLocation || !uniformSurfaceClipBasisEastLocation || !uniformSurfaceClipBasisNorthLocation) {
27839
- return;
27840
- }
27841
- const value = enabled ? 1 : 0;
27842
- if (value !== currentSurfaceClipEnabled) {
27843
- glContext.uniform1f(uniformSurfaceClipEnabledLocation, value);
27844
- currentSurfaceClipEnabled = value;
27845
- }
27846
- const clipCenter = enabled && inputs ? inputs.clipCenter : { x: 0, y: 0, z: 0, w: 1 };
27847
- glContext.uniform4f(
27848
- uniformSurfaceClipCenterLocation,
27849
- clipCenter.x,
27850
- clipCenter.y,
27851
- clipCenter.z,
27852
- clipCenter.w
27853
- );
27854
- const clipBasisEast = enabled && inputs ? inputs.clipBasisEast : { x: 0, y: 0, z: 0, w: 0 };
27855
- glContext.uniform4f(
27856
- uniformSurfaceClipBasisEastLocation,
27857
- clipBasisEast.x,
27858
- clipBasisEast.y,
27859
- clipBasisEast.z,
27860
- clipBasisEast.w
27861
- );
27862
- const clipBasisNorth = enabled && inputs ? inputs.clipBasisNorth : { x: 0, y: 0, z: 0, w: 0 };
27863
- glContext.uniform4f(
27864
- uniformSurfaceClipBasisNorthLocation,
27865
- clipBasisNorth.x,
27866
- clipBasisNorth.y,
27867
- clipBasisNorth.z,
27868
- clipBasisNorth.w
27869
- );
27870
- };
28925
+ const drawProgram = spriteDrawProgram;
28926
+ drawProgram.beginFrame();
27871
28927
  let drawOrderCounter = 0;
27872
- const issueSpriteDraw = (prepared) => {
27873
- const { screenToClip } = prepared;
27874
- applyScreenToClipUniforms(
27875
- screenToClip.scaleX,
27876
- screenToClip.scaleY,
27877
- screenToClip.offsetX,
27878
- screenToClip.offsetY
27879
- );
27880
- applySurfaceMode(prepared.useShaderSurface);
27881
- const surfaceInputs = prepared.surfaceShaderInputs;
27882
- if (prepared.useShaderSurface && surfaceInputs) {
27883
- if (uniformSurfaceDepthBiasLocation) {
27884
- glContext.uniform1f(
27885
- uniformSurfaceDepthBiasLocation,
27886
- surfaceInputs.depthBiasNdc
27887
- );
27888
- }
27889
- applySurfaceClipUniforms(
27890
- prepared.surfaceClipEnabled,
27891
- prepared.surfaceClipEnabled ? surfaceInputs : null
27892
- );
27893
- } else {
27894
- if (uniformSurfaceDepthBiasLocation) {
27895
- glContext.uniform1f(uniformSurfaceDepthBiasLocation, 0);
27896
- }
27897
- applySurfaceClipUniforms(false, null);
27898
- }
27899
- if (uniformBillboardModeLocation) {
27900
- glContext.uniform1f(
27901
- uniformBillboardModeLocation,
27902
- prepared.useShaderBillboard ? 1 : 0
27903
- );
27904
- }
27905
- if (prepared.useShaderBillboard && prepared.billboardUniforms) {
27906
- const uniforms = prepared.billboardUniforms;
27907
- if (uniformBillboardCenterLocation) {
27908
- glContext.uniform2f(
27909
- uniformBillboardCenterLocation,
27910
- uniforms.center.x,
27911
- uniforms.center.y
27912
- );
27913
- }
27914
- if (uniformBillboardHalfSizeLocation) {
27915
- glContext.uniform2f(
27916
- uniformBillboardHalfSizeLocation,
27917
- uniforms.halfWidth,
27918
- uniforms.halfHeight
27919
- );
27920
- }
27921
- if (uniformBillboardAnchorLocation) {
27922
- glContext.uniform2f(
27923
- uniformBillboardAnchorLocation,
27924
- uniforms.anchor.x,
27925
- uniforms.anchor.y
27926
- );
27927
- }
27928
- if (uniformBillboardSinCosLocation) {
27929
- glContext.uniform2f(
27930
- uniformBillboardSinCosLocation,
27931
- uniforms.sin,
27932
- uniforms.cos
27933
- );
27934
- }
27935
- }
27936
- const texture = prepared.imageResource.texture;
27937
- if (!texture) {
28928
+ const drawPreparedSprite = (prepared) => {
28929
+ var _a2;
28930
+ const didDraw = drawProgram.draw(prepared);
28931
+ if (!didDraw) {
27938
28932
  return;
27939
28933
  }
27940
- glContext.bufferSubData(glContext.ARRAY_BUFFER, 0, prepared.vertexData);
27941
- glContext.uniform1f(uniformOpacityLocation, prepared.opacity);
27942
- glContext.activeTexture(glContext.TEXTURE0);
27943
- glContext.bindTexture(glContext.TEXTURE_2D, texture);
27944
- glContext.drawArrays(glContext.TRIANGLES, 0, QUAD_VERTEX_COUNT);
27945
- prepared.imageEntry.surfaceShaderInputs = surfaceInputs != null ? surfaceInputs : void 0;
28934
+ prepared.imageEntry.surfaceShaderInputs = (_a2 = prepared.surfaceShaderInputs) != null ? _a2 : void 0;
27946
28935
  if (prepared.hitTestCorners && prepared.hitTestCorners.length === 4) {
27947
28936
  registerHitTestEntry(
27948
28937
  prepared.spriteEntry,
@@ -27988,6 +28977,7 @@ const createSpriteLayer = (options) => {
27988
28977
  screenToClipOffsetX,
27989
28978
  screenToClipOffsetY
27990
28979
  });
28980
+ drawProgram.uploadVertexBatch(preparedItems);
27991
28981
  const preparedBySubLayer = /* @__PURE__ */ new Map();
27992
28982
  for (const prepared of preparedItems) {
27993
28983
  const subLayer = prepared.imageEntry.subLayer;
@@ -28012,70 +29002,24 @@ const createSpriteLayer = (options) => {
28012
29002
  continue;
28013
29003
  }
28014
29004
  bucketImages.delete(prepared.imageEntry);
28015
- issueSpriteDraw(prepared);
29005
+ drawPreparedSprite(prepared);
28016
29006
  }
28017
29007
  }
28018
29008
  } finally {
28019
29009
  calculationHost.release();
28020
29010
  }
28021
29011
  }
28022
- if (showDebugBounds && debugProgram && debugVertexBuffer && debugUniformColorLocation && debugAttribPositionLocation !== -1) {
28023
- glContext.useProgram(debugProgram);
28024
- glContext.bindBuffer(glContext.ARRAY_BUFFER, debugVertexBuffer);
28025
- glContext.enableVertexAttribArray(debugAttribPositionLocation);
28026
- glContext.vertexAttribPointer(
28027
- debugAttribPositionLocation,
28028
- DEBUG_OUTLINE_POSITION_COMPONENT_COUNT,
28029
- glContext.FLOAT,
28030
- false,
28031
- DEBUG_OUTLINE_VERTEX_STRIDE,
28032
- 0
29012
+ if (showDebugBounds && debugOutlineRenderer) {
29013
+ debugOutlineRenderer.begin(
29014
+ screenToClipScaleX,
29015
+ screenToClipScaleY,
29016
+ screenToClipOffsetX,
29017
+ screenToClipOffsetY
28033
29018
  );
28034
- glContext.disable(glContext.DEPTH_TEST);
28035
- glContext.depthMask(false);
28036
- glContext.uniform4f(
28037
- debugUniformColorLocation,
28038
- DEBUG_OUTLINE_COLOR[0],
28039
- DEBUG_OUTLINE_COLOR[1],
28040
- DEBUG_OUTLINE_COLOR[2],
28041
- DEBUG_OUTLINE_COLOR[3]
28042
- );
28043
- if (debugUniformScreenToClipScaleLocation && debugUniformScreenToClipOffsetLocation) {
28044
- glContext.uniform2f(
28045
- debugUniformScreenToClipScaleLocation,
28046
- screenToClipScaleX,
28047
- screenToClipScaleY
28048
- );
28049
- glContext.uniform2f(
28050
- debugUniformScreenToClipOffsetLocation,
28051
- screenToClipOffsetX,
28052
- screenToClipOffsetY
28053
- );
28054
- }
28055
29019
  for (const entry of hitTestEntries) {
28056
- let writeOffset = 0;
28057
- for (const cornerIndex of DEBUG_OUTLINE_CORNER_ORDER) {
28058
- const corner = entry.corners[cornerIndex];
28059
- DEBUG_OUTLINE_VERTEX_SCRATCH[writeOffset++] = corner.x;
28060
- DEBUG_OUTLINE_VERTEX_SCRATCH[writeOffset++] = corner.y;
28061
- DEBUG_OUTLINE_VERTEX_SCRATCH[writeOffset++] = 0;
28062
- DEBUG_OUTLINE_VERTEX_SCRATCH[writeOffset++] = 1;
28063
- }
28064
- glContext.bufferSubData(
28065
- glContext.ARRAY_BUFFER,
28066
- 0,
28067
- DEBUG_OUTLINE_VERTEX_SCRATCH
28068
- );
28069
- glContext.drawArrays(
28070
- glContext.LINE_LOOP,
28071
- 0,
28072
- DEBUG_OUTLINE_VERTEX_COUNT
28073
- );
29020
+ debugOutlineRenderer.drawOutline(entry.corners);
28074
29021
  }
28075
- glContext.depthMask(true);
28076
- glContext.enable(glContext.DEPTH_TEST);
28077
- glContext.disableVertexAttribArray(debugAttribPositionLocation);
28078
- glContext.bindBuffer(glContext.ARRAY_BUFFER, null);
29022
+ debugOutlineRenderer.end();
28079
29023
  }
28080
29024
  } finally {
28081
29025
  projectionHost.release();
@@ -28084,7 +29028,8 @@ const createSpriteLayer = (options) => {
28084
29028
  glContext.enable(glContext.DEPTH_TEST);
28085
29029
  glContext.disable(glContext.BLEND);
28086
29030
  };
28087
- const registerImage = async (imageId, imageSource, options2) => {
29031
+ const registerImage = async (imageId, imageSource, options2, signal) => {
29032
+ var _a2;
28088
29033
  let bitmap;
28089
29034
  try {
28090
29035
  bitmap = typeof imageSource === "string" ? await loadImageBitmap(imageSource, options2) : imageSource;
@@ -28108,21 +29053,37 @@ const createSpriteLayer = (options) => {
28108
29053
  width: bitmap.width,
28109
29054
  height: bitmap.height,
28110
29055
  bitmap,
28111
- texture: void 0
29056
+ texture: void 0,
29057
+ atlasPageIndex: ATLAS_PAGE_INDEX_NONE,
29058
+ atlasU0: 0,
29059
+ atlasV0: 0,
29060
+ atlasU1: 1,
29061
+ atlasV1: 1
28112
29062
  };
28113
29063
  images.set(imageId, image);
28114
29064
  imageIdHandler.store(handle, image);
28115
29065
  updateSpriteImageHandles(imageId, handle);
28116
29066
  imageHandleBuffersController.markDirty(images);
28117
- queueTextureUpload(image);
28118
- ensureTextures();
28119
- scheduleRender();
28120
- return true;
28121
- };
28122
- const registerTextGlyph = async (textGlyphId, text, dimensions, options2) => {
28123
- if (images.has(textGlyphId)) {
28124
- return false;
29067
+ const deferred = createDeferred();
29068
+ const abortHandle = signal ? onAbort(signal, (error) => {
29069
+ deferred.reject(error);
29070
+ }) : null;
29071
+ atlasQueue.enqueueUpsert({ imageId, bitmap, deferred });
29072
+ try {
29073
+ return await deferred.promise;
29074
+ } catch (e) {
29075
+ images.delete(imageId);
29076
+ imageIdHandler.release(imageId);
29077
+ updateSpriteImageHandles(imageId, 0);
29078
+ imageHandleBuffersController.markDirty(images);
29079
+ atlasManager.removeImage(imageId);
29080
+ (_a2 = bitmap.close) == null ? void 0 : _a2.call(bitmap);
29081
+ throw e;
29082
+ } finally {
29083
+ abortHandle == null ? void 0 : abortHandle.release();
28125
29084
  }
29085
+ };
29086
+ const renderTextGlyphBitmap = async (text, dimensions, options2) => {
28126
29087
  let lineHeight;
28127
29088
  let maxWidth;
28128
29089
  const isLineHeightMode = "lineHeightPixel" in dimensions;
@@ -28149,13 +29110,13 @@ const createSpriteLayer = (options) => {
28149
29110
  );
28150
29111
  let contentWidthLimit;
28151
29112
  if (!isLineHeightMode && typeof maxWidth === "number") {
28152
- const padding2 = resolved.paddingPixel;
28153
- const borderWidth2 = resolved.borderWidthPixel;
29113
+ const padding = resolved.paddingPixel;
29114
+ const borderWidth = resolved.borderWidthPixel;
28154
29115
  const glyphCount = Array.from(text).length;
28155
29116
  const letterSpacingTotal = letterSpacing * Math.max(glyphCount - 1, 0);
28156
29117
  contentWidthLimit = Math.max(
28157
29118
  1,
28158
- maxWidth - borderWidth2 - padding2.left - padding2.right
29119
+ maxWidth - borderWidth - padding.left - padding.right
28159
29120
  );
28160
29121
  if (contentWidthLimit < letterSpacingTotal) {
28161
29122
  contentWidthLimit = letterSpacingTotal;
@@ -28201,20 +29162,18 @@ const createSpriteLayer = (options) => {
28201
29162
  letterSpacing
28202
29163
  );
28203
29164
  const measuredHeight = measureTextHeight(measureCtx, text, fontSize);
28204
- const padding = resolved.paddingPixel;
28205
- const borderWidth = resolved.borderWidthPixel;
28206
- const contentHeight = isLineHeightMode ? (
28207
- // When the caller provided an explicit line height, honour it directly.
28208
- lineHeight
28209
- ) : (
28210
- // Otherwise base the height on measured text metrics.
28211
- clampGlyphDimension(Math.ceil(measuredHeight))
28212
- );
29165
+ const paddingPixel = resolved.paddingPixel;
29166
+ const borderWidthPixel = resolved.borderWidthPixel;
29167
+ const contentHeight = isLineHeightMode ? lineHeight : clampGlyphDimension(Math.ceil(measuredHeight));
28213
29168
  const totalWidth = clampGlyphDimension(
28214
- Math.ceil(borderWidth + padding.left + padding.right + measuredWidth)
29169
+ Math.ceil(
29170
+ borderWidthPixel + paddingPixel.left + paddingPixel.right + measuredWidth
29171
+ )
28215
29172
  );
28216
29173
  const totalHeight = clampGlyphDimension(
28217
- Math.ceil(borderWidth + padding.top + padding.bottom + contentHeight)
29174
+ Math.ceil(
29175
+ borderWidthPixel + paddingPixel.top + paddingPixel.bottom + contentHeight
29176
+ )
28218
29177
  );
28219
29178
  const renderPixelRatio = resolved.renderPixelRatio;
28220
29179
  const renderWidth = Math.max(1, Math.round(totalWidth * renderPixelRatio));
@@ -28238,10 +29197,10 @@ const createSpriteLayer = (options) => {
28238
29197
  resolved.backgroundColor
28239
29198
  );
28240
29199
  }
28241
- if (resolved.borderColor && borderWidth > 0) {
28242
- const inset = borderWidth / 2;
28243
- const strokeWidth = Math.max(0, totalWidth - borderWidth);
28244
- const strokeHeight = Math.max(0, totalHeight - borderWidth);
29200
+ if (resolved.borderColor && borderWidthPixel > 0) {
29201
+ const inset = borderWidthPixel / 2;
29202
+ const strokeWidth = Math.max(0, totalWidth - borderWidthPixel);
29203
+ const strokeHeight = Math.max(0, totalHeight - borderWidthPixel);
28245
29204
  const strokeRadius = Math.max(0, resolved.borderRadiusPixel - inset);
28246
29205
  ctx.save();
28247
29206
  ctx.translate(inset, inset);
@@ -28251,22 +29210,22 @@ const createSpriteLayer = (options) => {
28251
29210
  strokeHeight,
28252
29211
  strokeRadius,
28253
29212
  resolved.borderColor,
28254
- borderWidth,
29213
+ borderWidthPixel,
28255
29214
  resolved.borderSides
28256
29215
  );
28257
29216
  ctx.restore();
28258
29217
  }
28259
- const borderInset = borderWidth / 2;
29218
+ const borderInset = borderWidthPixel / 2;
28260
29219
  const contentWidth = Math.max(
28261
29220
  0,
28262
- totalWidth - borderWidth - padding.left - padding.right
29221
+ totalWidth - borderWidthPixel - paddingPixel.left - paddingPixel.right
28263
29222
  );
28264
29223
  const contentHeightInner = Math.max(
28265
29224
  0,
28266
- totalHeight - borderWidth - padding.top - padding.bottom
29225
+ totalHeight - borderWidthPixel - paddingPixel.top - paddingPixel.bottom
28267
29226
  );
28268
- const contentLeft = borderInset + padding.left;
28269
- const contentTop = borderInset + padding.top;
29227
+ const contentLeft = borderInset + paddingPixel.left;
29228
+ const contentTop = borderInset + paddingPixel.top;
28270
29229
  const textY = contentTop + contentHeightInner / 2;
28271
29230
  const renderOptions = { ...resolved, fontSizePixel: fontSize };
28272
29231
  ctx.font = buildFontString(renderOptions);
@@ -28301,29 +29260,56 @@ const createSpriteLayer = (options) => {
28301
29260
  totalHeight,
28302
29261
  renderPixelRatio
28303
29262
  );
28304
- const handle = imageIdHandler.allocate(textGlyphId);
28305
- const image = {
28306
- id: textGlyphId,
28307
- handle,
28308
- width: totalWidth,
28309
- height: totalHeight,
28310
- bitmap,
28311
- texture: void 0
28312
- };
28313
- images.set(textGlyphId, image);
28314
- imageIdHandler.store(handle, image);
28315
- updateSpriteImageHandles(textGlyphId, handle);
28316
- imageHandleBuffersController.markDirty(images);
28317
- queueTextureUpload(image);
28318
- ensureTextures();
28319
- scheduleRender();
28320
- return true;
29263
+ return { bitmap, width: totalWidth, height: totalHeight };
29264
+ };
29265
+ const registerTextGlyph = async (textGlyphId, text, dimensions, options2, signal) => {
29266
+ if (images.has(textGlyphId) || pendingTextGlyphIds.has(textGlyphId)) {
29267
+ return true;
29268
+ }
29269
+ pendingTextGlyphIds.add(textGlyphId);
29270
+ const deferred = createDeferred();
29271
+ let glyphAbortHandle = null;
29272
+ if (signal) {
29273
+ glyphAbortHandle = onAbort(signal, (error) => {
29274
+ cancelPendingTextGlyphJob(textGlyphId, error);
29275
+ });
29276
+ }
29277
+ enqueueTextGlyphJob({
29278
+ glyphId: textGlyphId,
29279
+ text,
29280
+ dimensions,
29281
+ options: options2,
29282
+ deferred,
29283
+ signal,
29284
+ abortHandle: glyphAbortHandle
29285
+ });
29286
+ try {
29287
+ return await deferred.promise;
29288
+ } finally {
29289
+ pendingTextGlyphIds.delete(textGlyphId);
29290
+ }
28321
29291
  };
28322
29292
  const unregisterImage = (imageId) => {
29293
+ var _a2, _b;
28323
29294
  const image = images.get(imageId);
28324
29295
  if (!image) {
29296
+ if (pendingTextGlyphIds.has(imageId)) {
29297
+ cancelPendingTextGlyphJob(
29298
+ imageId,
29299
+ new Error(
29300
+ `[SpriteLayer][GlyphQueue] Image "${imageId}" was unregistered before generation.`
29301
+ )
29302
+ );
29303
+ return true;
29304
+ }
28325
29305
  return false;
28326
29306
  }
29307
+ atlasQueue.cancelForImage(
29308
+ imageId,
29309
+ new Error(
29310
+ `[SpriteLayer][Atlas] Image "${imageId}" was unregistered before placement.`
29311
+ )
29312
+ );
28327
29313
  sprites.forEach((sprite) => {
28328
29314
  sprite.images.forEach((orderMap) => {
28329
29315
  orderMap.forEach((imageState) => {
@@ -28333,31 +29319,45 @@ const createSpriteLayer = (options) => {
28333
29319
  });
28334
29320
  });
28335
29321
  });
28336
- const glContext = gl;
28337
- if (glContext && image.texture) {
28338
- glContext.deleteTexture(image.texture);
29322
+ if (image.bitmap) {
29323
+ (_b = (_a2 = image.bitmap).close) == null ? void 0 : _b.call(_a2);
28339
29324
  }
28340
- cancelQueuedTextureUpload(imageId);
28341
29325
  images.delete(imageId);
28342
29326
  imageIdHandler.release(imageId);
28343
29327
  updateSpriteImageHandles(imageId, 0);
28344
29328
  imageHandleBuffersController.markDirty(images);
29329
+ atlasManager.removeImage(imageId);
29330
+ syncAtlasPlacementsFromManager();
28345
29331
  ensureRenderTargetEntries();
28346
29332
  scheduleRender();
28347
29333
  return true;
28348
29334
  };
28349
29335
  const unregisterAllImages = () => {
29336
+ rejectAllPendingTextGlyphJobs(
29337
+ new Error(
29338
+ "[SpriteLayer][GlyphQueue] Pending glyph operations were cleared."
29339
+ )
29340
+ );
29341
+ pendingTextGlyphIds.clear();
29342
+ atlasQueue.rejectAll(
29343
+ new Error("[SpriteLayer][Atlas] Pending atlas operations were cleared.")
29344
+ );
28350
29345
  const glContext = gl;
29346
+ atlasPageTextures.forEach((texture) => {
29347
+ if (glContext) {
29348
+ glContext.deleteTexture(texture);
29349
+ }
29350
+ });
29351
+ atlasPageTextures.clear();
28351
29352
  images.forEach((image) => {
28352
29353
  var _a2, _b;
28353
- if (glContext && image.texture) {
28354
- glContext.deleteTexture(image.texture);
28355
- }
28356
29354
  if (image.bitmap) {
28357
29355
  (_b = (_a2 = image.bitmap).close) == null ? void 0 : _b.call(_a2);
28358
29356
  }
28359
29357
  });
28360
29358
  images.clear();
29359
+ atlasManager.clear();
29360
+ atlasNeedsUpload = false;
28361
29361
  imageIdHandler.reset();
28362
29362
  imageHandleBuffersController.markDirty(images);
28363
29363
  sprites.forEach((sprite) => {
@@ -28370,7 +29370,6 @@ const createSpriteLayer = (options) => {
28370
29370
  hitTestTree.clear();
28371
29371
  hitTestTreeItems = /* @__PURE__ */ new WeakMap();
28372
29372
  hitTestEntryByImage = /* @__PURE__ */ new WeakMap();
28373
- clearTextureQueue();
28374
29373
  ensureRenderTargetEntries();
28375
29374
  scheduleRender();
28376
29375
  };
@@ -29238,9 +30237,10 @@ export {
29238
30237
  cloneOffset,
29239
30238
  createImageStateFromInit,
29240
30239
  createSpriteLayer,
29241
- initializeSpriteLayerHost,
30240
+ detectMultiThreadedModuleAvailability,
30241
+ initializeRuntimeHost,
29242
30242
  loadImageBitmap,
29243
30243
  readImageBitmap,
29244
- releaseSpriteLayerHost
30244
+ releaseRuntimeHost
29245
30245
  };
29246
30246
  //# sourceMappingURL=index.mjs.map