koishi-plugin-warframe 1.5.0 → 1.5.2

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.
Files changed (4) hide show
  1. package/README.md +100 -18
  2. package/lib/index.d.ts +55 -54
  3. package/lib/index.js +2785 -1640
  4. package/package.json +3 -5
package/lib/index.js CHANGED
@@ -5,6 +5,13 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
+ var __commonJS = (cb, mod) => function __require() {
9
+ try {
10
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
+ } catch (e) {
12
+ throw mod = 0, e;
13
+ }
14
+ };
8
15
  var __export = (target, all) => {
9
16
  for (var name2 in all)
10
17
  __defProp(target, name2, { get: all[name2], enumerable: true });
@@ -27,6 +34,1168 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
34
  ));
28
35
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
36
 
37
+ // node_modules/reflect-metadata/Reflect.js
38
+ var require_Reflect = __commonJS({
39
+ "node_modules/reflect-metadata/Reflect.js"() {
40
+ var Reflect2;
41
+ (function(Reflect3) {
42
+ (function(factory) {
43
+ var root = typeof globalThis === "object" ? globalThis : typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : sloppyModeThis();
44
+ var exporter = makeExporter(Reflect3);
45
+ if (typeof root.Reflect !== "undefined") {
46
+ exporter = makeExporter(root.Reflect, exporter);
47
+ }
48
+ factory(exporter, root);
49
+ if (typeof root.Reflect === "undefined") {
50
+ root.Reflect = Reflect3;
51
+ }
52
+ function makeExporter(target, previous) {
53
+ return function(key, value) {
54
+ Object.defineProperty(target, key, { configurable: true, writable: true, value });
55
+ if (previous)
56
+ previous(key, value);
57
+ };
58
+ }
59
+ __name(makeExporter, "makeExporter");
60
+ function functionThis() {
61
+ try {
62
+ return Function("return this;")();
63
+ } catch (_) {
64
+ }
65
+ }
66
+ __name(functionThis, "functionThis");
67
+ function indirectEvalThis() {
68
+ try {
69
+ return (void 0, eval)("(function() { return this; })()");
70
+ } catch (_) {
71
+ }
72
+ }
73
+ __name(indirectEvalThis, "indirectEvalThis");
74
+ function sloppyModeThis() {
75
+ return functionThis() || indirectEvalThis();
76
+ }
77
+ __name(sloppyModeThis, "sloppyModeThis");
78
+ })(function(exporter, root) {
79
+ var hasOwn = Object.prototype.hasOwnProperty;
80
+ var supportsSymbol = typeof Symbol === "function";
81
+ var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== "undefined" ? Symbol.toPrimitive : "@@toPrimitive";
82
+ var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== "undefined" ? Symbol.iterator : "@@iterator";
83
+ var supportsCreate = typeof Object.create === "function";
84
+ var supportsProto = { __proto__: [] } instanceof Array;
85
+ var downLevel = !supportsCreate && !supportsProto;
86
+ var HashMap = {
87
+ // create an object in dictionary mode (a.k.a. "slow" mode in v8)
88
+ create: supportsCreate ? function() {
89
+ return MakeDictionary(/* @__PURE__ */ Object.create(null));
90
+ } : supportsProto ? function() {
91
+ return MakeDictionary({ __proto__: null });
92
+ } : function() {
93
+ return MakeDictionary({});
94
+ },
95
+ has: downLevel ? function(map, key) {
96
+ return hasOwn.call(map, key);
97
+ } : function(map, key) {
98
+ return key in map;
99
+ },
100
+ get: downLevel ? function(map, key) {
101
+ return hasOwn.call(map, key) ? map[key] : void 0;
102
+ } : function(map, key) {
103
+ return map[key];
104
+ }
105
+ };
106
+ var functionPrototype = Object.getPrototypeOf(Function);
107
+ var _Map = typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill();
108
+ var _Set = typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill();
109
+ var _WeakMap = typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill();
110
+ var registrySymbol = supportsSymbol ? /* @__PURE__ */ Symbol.for("@reflect-metadata:registry") : void 0;
111
+ var metadataRegistry = GetOrCreateMetadataRegistry();
112
+ var metadataProvider = CreateMetadataProvider(metadataRegistry);
113
+ function decorate(decorators, target, propertyKey, attributes) {
114
+ if (!IsUndefined(propertyKey)) {
115
+ if (!IsArray(decorators))
116
+ throw new TypeError();
117
+ if (!IsObject(target))
118
+ throw new TypeError();
119
+ if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))
120
+ throw new TypeError();
121
+ if (IsNull(attributes))
122
+ attributes = void 0;
123
+ propertyKey = ToPropertyKey(propertyKey);
124
+ return DecorateProperty(decorators, target, propertyKey, attributes);
125
+ } else {
126
+ if (!IsArray(decorators))
127
+ throw new TypeError();
128
+ if (!IsConstructor(target))
129
+ throw new TypeError();
130
+ return DecorateConstructor(decorators, target);
131
+ }
132
+ }
133
+ __name(decorate, "decorate");
134
+ exporter("decorate", decorate);
135
+ function metadata(metadataKey, metadataValue) {
136
+ function decorator(target, propertyKey) {
137
+ if (!IsObject(target))
138
+ throw new TypeError();
139
+ if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))
140
+ throw new TypeError();
141
+ OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);
142
+ }
143
+ __name(decorator, "decorator");
144
+ return decorator;
145
+ }
146
+ __name(metadata, "metadata");
147
+ exporter("metadata", metadata);
148
+ function defineMetadata(metadataKey, metadataValue, target, propertyKey) {
149
+ if (!IsObject(target))
150
+ throw new TypeError();
151
+ if (!IsUndefined(propertyKey))
152
+ propertyKey = ToPropertyKey(propertyKey);
153
+ return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);
154
+ }
155
+ __name(defineMetadata, "defineMetadata");
156
+ exporter("defineMetadata", defineMetadata);
157
+ function hasMetadata(metadataKey, target, propertyKey) {
158
+ if (!IsObject(target))
159
+ throw new TypeError();
160
+ if (!IsUndefined(propertyKey))
161
+ propertyKey = ToPropertyKey(propertyKey);
162
+ return OrdinaryHasMetadata(metadataKey, target, propertyKey);
163
+ }
164
+ __name(hasMetadata, "hasMetadata");
165
+ exporter("hasMetadata", hasMetadata);
166
+ function hasOwnMetadata(metadataKey, target, propertyKey) {
167
+ if (!IsObject(target))
168
+ throw new TypeError();
169
+ if (!IsUndefined(propertyKey))
170
+ propertyKey = ToPropertyKey(propertyKey);
171
+ return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);
172
+ }
173
+ __name(hasOwnMetadata, "hasOwnMetadata");
174
+ exporter("hasOwnMetadata", hasOwnMetadata);
175
+ function getMetadata(metadataKey, target, propertyKey) {
176
+ if (!IsObject(target))
177
+ throw new TypeError();
178
+ if (!IsUndefined(propertyKey))
179
+ propertyKey = ToPropertyKey(propertyKey);
180
+ return OrdinaryGetMetadata(metadataKey, target, propertyKey);
181
+ }
182
+ __name(getMetadata, "getMetadata");
183
+ exporter("getMetadata", getMetadata);
184
+ function getOwnMetadata(metadataKey, target, propertyKey) {
185
+ if (!IsObject(target))
186
+ throw new TypeError();
187
+ if (!IsUndefined(propertyKey))
188
+ propertyKey = ToPropertyKey(propertyKey);
189
+ return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);
190
+ }
191
+ __name(getOwnMetadata, "getOwnMetadata");
192
+ exporter("getOwnMetadata", getOwnMetadata);
193
+ function getMetadataKeys(target, propertyKey) {
194
+ if (!IsObject(target))
195
+ throw new TypeError();
196
+ if (!IsUndefined(propertyKey))
197
+ propertyKey = ToPropertyKey(propertyKey);
198
+ return OrdinaryMetadataKeys(target, propertyKey);
199
+ }
200
+ __name(getMetadataKeys, "getMetadataKeys");
201
+ exporter("getMetadataKeys", getMetadataKeys);
202
+ function getOwnMetadataKeys(target, propertyKey) {
203
+ if (!IsObject(target))
204
+ throw new TypeError();
205
+ if (!IsUndefined(propertyKey))
206
+ propertyKey = ToPropertyKey(propertyKey);
207
+ return OrdinaryOwnMetadataKeys(target, propertyKey);
208
+ }
209
+ __name(getOwnMetadataKeys, "getOwnMetadataKeys");
210
+ exporter("getOwnMetadataKeys", getOwnMetadataKeys);
211
+ function deleteMetadata(metadataKey, target, propertyKey) {
212
+ if (!IsObject(target))
213
+ throw new TypeError();
214
+ if (!IsUndefined(propertyKey))
215
+ propertyKey = ToPropertyKey(propertyKey);
216
+ if (!IsObject(target))
217
+ throw new TypeError();
218
+ if (!IsUndefined(propertyKey))
219
+ propertyKey = ToPropertyKey(propertyKey);
220
+ var provider = GetMetadataProvider(
221
+ target,
222
+ propertyKey,
223
+ /*Create*/
224
+ false
225
+ );
226
+ if (IsUndefined(provider))
227
+ return false;
228
+ return provider.OrdinaryDeleteMetadata(metadataKey, target, propertyKey);
229
+ }
230
+ __name(deleteMetadata, "deleteMetadata");
231
+ exporter("deleteMetadata", deleteMetadata);
232
+ function DecorateConstructor(decorators, target) {
233
+ for (var i = decorators.length - 1; i >= 0; --i) {
234
+ var decorator = decorators[i];
235
+ var decorated = decorator(target);
236
+ if (!IsUndefined(decorated) && !IsNull(decorated)) {
237
+ if (!IsConstructor(decorated))
238
+ throw new TypeError();
239
+ target = decorated;
240
+ }
241
+ }
242
+ return target;
243
+ }
244
+ __name(DecorateConstructor, "DecorateConstructor");
245
+ function DecorateProperty(decorators, target, propertyKey, descriptor) {
246
+ for (var i = decorators.length - 1; i >= 0; --i) {
247
+ var decorator = decorators[i];
248
+ var decorated = decorator(target, propertyKey, descriptor);
249
+ if (!IsUndefined(decorated) && !IsNull(decorated)) {
250
+ if (!IsObject(decorated))
251
+ throw new TypeError();
252
+ descriptor = decorated;
253
+ }
254
+ }
255
+ return descriptor;
256
+ }
257
+ __name(DecorateProperty, "DecorateProperty");
258
+ function OrdinaryHasMetadata(MetadataKey, O, P) {
259
+ var hasOwn2 = OrdinaryHasOwnMetadata(MetadataKey, O, P);
260
+ if (hasOwn2)
261
+ return true;
262
+ var parent = OrdinaryGetPrototypeOf(O);
263
+ if (!IsNull(parent))
264
+ return OrdinaryHasMetadata(MetadataKey, parent, P);
265
+ return false;
266
+ }
267
+ __name(OrdinaryHasMetadata, "OrdinaryHasMetadata");
268
+ function OrdinaryHasOwnMetadata(MetadataKey, O, P) {
269
+ var provider = GetMetadataProvider(
270
+ O,
271
+ P,
272
+ /*Create*/
273
+ false
274
+ );
275
+ if (IsUndefined(provider))
276
+ return false;
277
+ return ToBoolean(provider.OrdinaryHasOwnMetadata(MetadataKey, O, P));
278
+ }
279
+ __name(OrdinaryHasOwnMetadata, "OrdinaryHasOwnMetadata");
280
+ function OrdinaryGetMetadata(MetadataKey, O, P) {
281
+ var hasOwn2 = OrdinaryHasOwnMetadata(MetadataKey, O, P);
282
+ if (hasOwn2)
283
+ return OrdinaryGetOwnMetadata(MetadataKey, O, P);
284
+ var parent = OrdinaryGetPrototypeOf(O);
285
+ if (!IsNull(parent))
286
+ return OrdinaryGetMetadata(MetadataKey, parent, P);
287
+ return void 0;
288
+ }
289
+ __name(OrdinaryGetMetadata, "OrdinaryGetMetadata");
290
+ function OrdinaryGetOwnMetadata(MetadataKey, O, P) {
291
+ var provider = GetMetadataProvider(
292
+ O,
293
+ P,
294
+ /*Create*/
295
+ false
296
+ );
297
+ if (IsUndefined(provider))
298
+ return;
299
+ return provider.OrdinaryGetOwnMetadata(MetadataKey, O, P);
300
+ }
301
+ __name(OrdinaryGetOwnMetadata, "OrdinaryGetOwnMetadata");
302
+ function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {
303
+ var provider = GetMetadataProvider(
304
+ O,
305
+ P,
306
+ /*Create*/
307
+ true
308
+ );
309
+ provider.OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P);
310
+ }
311
+ __name(OrdinaryDefineOwnMetadata, "OrdinaryDefineOwnMetadata");
312
+ function OrdinaryMetadataKeys(O, P) {
313
+ var ownKeys = OrdinaryOwnMetadataKeys(O, P);
314
+ var parent = OrdinaryGetPrototypeOf(O);
315
+ if (parent === null)
316
+ return ownKeys;
317
+ var parentKeys = OrdinaryMetadataKeys(parent, P);
318
+ if (parentKeys.length <= 0)
319
+ return ownKeys;
320
+ if (ownKeys.length <= 0)
321
+ return parentKeys;
322
+ var set = new _Set();
323
+ var keys = [];
324
+ for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {
325
+ var key = ownKeys_1[_i];
326
+ var hasKey = set.has(key);
327
+ if (!hasKey) {
328
+ set.add(key);
329
+ keys.push(key);
330
+ }
331
+ }
332
+ for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {
333
+ var key = parentKeys_1[_a];
334
+ var hasKey = set.has(key);
335
+ if (!hasKey) {
336
+ set.add(key);
337
+ keys.push(key);
338
+ }
339
+ }
340
+ return keys;
341
+ }
342
+ __name(OrdinaryMetadataKeys, "OrdinaryMetadataKeys");
343
+ function OrdinaryOwnMetadataKeys(O, P) {
344
+ var provider = GetMetadataProvider(
345
+ O,
346
+ P,
347
+ /*create*/
348
+ false
349
+ );
350
+ if (!provider) {
351
+ return [];
352
+ }
353
+ return provider.OrdinaryOwnMetadataKeys(O, P);
354
+ }
355
+ __name(OrdinaryOwnMetadataKeys, "OrdinaryOwnMetadataKeys");
356
+ function Type(x) {
357
+ if (x === null)
358
+ return 1;
359
+ switch (typeof x) {
360
+ case "undefined":
361
+ return 0;
362
+ case "boolean":
363
+ return 2;
364
+ case "string":
365
+ return 3;
366
+ case "symbol":
367
+ return 4;
368
+ case "number":
369
+ return 5;
370
+ case "object":
371
+ return x === null ? 1 : 6;
372
+ default:
373
+ return 6;
374
+ }
375
+ }
376
+ __name(Type, "Type");
377
+ function IsUndefined(x) {
378
+ return x === void 0;
379
+ }
380
+ __name(IsUndefined, "IsUndefined");
381
+ function IsNull(x) {
382
+ return x === null;
383
+ }
384
+ __name(IsNull, "IsNull");
385
+ function IsSymbol(x) {
386
+ return typeof x === "symbol";
387
+ }
388
+ __name(IsSymbol, "IsSymbol");
389
+ function IsObject(x) {
390
+ return typeof x === "object" ? x !== null : typeof x === "function";
391
+ }
392
+ __name(IsObject, "IsObject");
393
+ function ToPrimitive(input, PreferredType) {
394
+ switch (Type(input)) {
395
+ case 0:
396
+ return input;
397
+ case 1:
398
+ return input;
399
+ case 2:
400
+ return input;
401
+ case 3:
402
+ return input;
403
+ case 4:
404
+ return input;
405
+ case 5:
406
+ return input;
407
+ }
408
+ var hint = PreferredType === 3 ? "string" : PreferredType === 5 ? "number" : "default";
409
+ var exoticToPrim = GetMethod(input, toPrimitiveSymbol);
410
+ if (exoticToPrim !== void 0) {
411
+ var result = exoticToPrim.call(input, hint);
412
+ if (IsObject(result))
413
+ throw new TypeError();
414
+ return result;
415
+ }
416
+ return OrdinaryToPrimitive(input, hint === "default" ? "number" : hint);
417
+ }
418
+ __name(ToPrimitive, "ToPrimitive");
419
+ function OrdinaryToPrimitive(O, hint) {
420
+ if (hint === "string") {
421
+ var toString_1 = O.toString;
422
+ if (IsCallable(toString_1)) {
423
+ var result = toString_1.call(O);
424
+ if (!IsObject(result))
425
+ return result;
426
+ }
427
+ var valueOf = O.valueOf;
428
+ if (IsCallable(valueOf)) {
429
+ var result = valueOf.call(O);
430
+ if (!IsObject(result))
431
+ return result;
432
+ }
433
+ } else {
434
+ var valueOf = O.valueOf;
435
+ if (IsCallable(valueOf)) {
436
+ var result = valueOf.call(O);
437
+ if (!IsObject(result))
438
+ return result;
439
+ }
440
+ var toString_2 = O.toString;
441
+ if (IsCallable(toString_2)) {
442
+ var result = toString_2.call(O);
443
+ if (!IsObject(result))
444
+ return result;
445
+ }
446
+ }
447
+ throw new TypeError();
448
+ }
449
+ __name(OrdinaryToPrimitive, "OrdinaryToPrimitive");
450
+ function ToBoolean(argument) {
451
+ return !!argument;
452
+ }
453
+ __name(ToBoolean, "ToBoolean");
454
+ function ToString(argument) {
455
+ return "" + argument;
456
+ }
457
+ __name(ToString, "ToString");
458
+ function ToPropertyKey(argument) {
459
+ var key = ToPrimitive(
460
+ argument,
461
+ 3
462
+ /* String */
463
+ );
464
+ if (IsSymbol(key))
465
+ return key;
466
+ return ToString(key);
467
+ }
468
+ __name(ToPropertyKey, "ToPropertyKey");
469
+ function IsArray(argument) {
470
+ return Array.isArray ? Array.isArray(argument) : argument instanceof Object ? argument instanceof Array : Object.prototype.toString.call(argument) === "[object Array]";
471
+ }
472
+ __name(IsArray, "IsArray");
473
+ function IsCallable(argument) {
474
+ return typeof argument === "function";
475
+ }
476
+ __name(IsCallable, "IsCallable");
477
+ function IsConstructor(argument) {
478
+ return typeof argument === "function";
479
+ }
480
+ __name(IsConstructor, "IsConstructor");
481
+ function IsPropertyKey(argument) {
482
+ switch (Type(argument)) {
483
+ case 3:
484
+ return true;
485
+ case 4:
486
+ return true;
487
+ default:
488
+ return false;
489
+ }
490
+ }
491
+ __name(IsPropertyKey, "IsPropertyKey");
492
+ function SameValueZero(x, y) {
493
+ return x === y || x !== x && y !== y;
494
+ }
495
+ __name(SameValueZero, "SameValueZero");
496
+ function GetMethod(V, P) {
497
+ var func = V[P];
498
+ if (func === void 0 || func === null)
499
+ return void 0;
500
+ if (!IsCallable(func))
501
+ throw new TypeError();
502
+ return func;
503
+ }
504
+ __name(GetMethod, "GetMethod");
505
+ function GetIterator(obj) {
506
+ var method = GetMethod(obj, iteratorSymbol);
507
+ if (!IsCallable(method))
508
+ throw new TypeError();
509
+ var iterator = method.call(obj);
510
+ if (!IsObject(iterator))
511
+ throw new TypeError();
512
+ return iterator;
513
+ }
514
+ __name(GetIterator, "GetIterator");
515
+ function IteratorValue(iterResult) {
516
+ return iterResult.value;
517
+ }
518
+ __name(IteratorValue, "IteratorValue");
519
+ function IteratorStep(iterator) {
520
+ var result = iterator.next();
521
+ return result.done ? false : result;
522
+ }
523
+ __name(IteratorStep, "IteratorStep");
524
+ function IteratorClose(iterator) {
525
+ var f = iterator["return"];
526
+ if (f)
527
+ f.call(iterator);
528
+ }
529
+ __name(IteratorClose, "IteratorClose");
530
+ function OrdinaryGetPrototypeOf(O) {
531
+ var proto = Object.getPrototypeOf(O);
532
+ if (typeof O !== "function" || O === functionPrototype)
533
+ return proto;
534
+ if (proto !== functionPrototype)
535
+ return proto;
536
+ var prototype = O.prototype;
537
+ var prototypeProto = prototype && Object.getPrototypeOf(prototype);
538
+ if (prototypeProto == null || prototypeProto === Object.prototype)
539
+ return proto;
540
+ var constructor = prototypeProto.constructor;
541
+ if (typeof constructor !== "function")
542
+ return proto;
543
+ if (constructor === O)
544
+ return proto;
545
+ return constructor;
546
+ }
547
+ __name(OrdinaryGetPrototypeOf, "OrdinaryGetPrototypeOf");
548
+ function CreateMetadataRegistry() {
549
+ var fallback;
550
+ if (!IsUndefined(registrySymbol) && typeof root.Reflect !== "undefined" && !(registrySymbol in root.Reflect) && typeof root.Reflect.defineMetadata === "function") {
551
+ fallback = CreateFallbackProvider(root.Reflect);
552
+ }
553
+ var first;
554
+ var second;
555
+ var rest;
556
+ var targetProviderMap = new _WeakMap();
557
+ var registry = {
558
+ registerProvider,
559
+ getProvider,
560
+ setProvider
561
+ };
562
+ return registry;
563
+ function registerProvider(provider) {
564
+ if (!Object.isExtensible(registry)) {
565
+ throw new Error("Cannot add provider to a frozen registry.");
566
+ }
567
+ switch (true) {
568
+ case fallback === provider:
569
+ break;
570
+ case IsUndefined(first):
571
+ first = provider;
572
+ break;
573
+ case first === provider:
574
+ break;
575
+ case IsUndefined(second):
576
+ second = provider;
577
+ break;
578
+ case second === provider:
579
+ break;
580
+ default:
581
+ if (rest === void 0)
582
+ rest = new _Set();
583
+ rest.add(provider);
584
+ break;
585
+ }
586
+ }
587
+ __name(registerProvider, "registerProvider");
588
+ function getProviderNoCache(O, P) {
589
+ if (!IsUndefined(first)) {
590
+ if (first.isProviderFor(O, P))
591
+ return first;
592
+ if (!IsUndefined(second)) {
593
+ if (second.isProviderFor(O, P))
594
+ return first;
595
+ if (!IsUndefined(rest)) {
596
+ var iterator = GetIterator(rest);
597
+ while (true) {
598
+ var next = IteratorStep(iterator);
599
+ if (!next) {
600
+ return void 0;
601
+ }
602
+ var provider = IteratorValue(next);
603
+ if (provider.isProviderFor(O, P)) {
604
+ IteratorClose(iterator);
605
+ return provider;
606
+ }
607
+ }
608
+ }
609
+ }
610
+ }
611
+ if (!IsUndefined(fallback) && fallback.isProviderFor(O, P)) {
612
+ return fallback;
613
+ }
614
+ return void 0;
615
+ }
616
+ __name(getProviderNoCache, "getProviderNoCache");
617
+ function getProvider(O, P) {
618
+ var providerMap = targetProviderMap.get(O);
619
+ var provider;
620
+ if (!IsUndefined(providerMap)) {
621
+ provider = providerMap.get(P);
622
+ }
623
+ if (!IsUndefined(provider)) {
624
+ return provider;
625
+ }
626
+ provider = getProviderNoCache(O, P);
627
+ if (!IsUndefined(provider)) {
628
+ if (IsUndefined(providerMap)) {
629
+ providerMap = new _Map();
630
+ targetProviderMap.set(O, providerMap);
631
+ }
632
+ providerMap.set(P, provider);
633
+ }
634
+ return provider;
635
+ }
636
+ __name(getProvider, "getProvider");
637
+ function hasProvider(provider) {
638
+ if (IsUndefined(provider))
639
+ throw new TypeError();
640
+ return first === provider || second === provider || !IsUndefined(rest) && rest.has(provider);
641
+ }
642
+ __name(hasProvider, "hasProvider");
643
+ function setProvider(O, P, provider) {
644
+ if (!hasProvider(provider)) {
645
+ throw new Error("Metadata provider not registered.");
646
+ }
647
+ var existingProvider = getProvider(O, P);
648
+ if (existingProvider !== provider) {
649
+ if (!IsUndefined(existingProvider)) {
650
+ return false;
651
+ }
652
+ var providerMap = targetProviderMap.get(O);
653
+ if (IsUndefined(providerMap)) {
654
+ providerMap = new _Map();
655
+ targetProviderMap.set(O, providerMap);
656
+ }
657
+ providerMap.set(P, provider);
658
+ }
659
+ return true;
660
+ }
661
+ __name(setProvider, "setProvider");
662
+ }
663
+ __name(CreateMetadataRegistry, "CreateMetadataRegistry");
664
+ function GetOrCreateMetadataRegistry() {
665
+ var metadataRegistry2;
666
+ if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) {
667
+ metadataRegistry2 = root.Reflect[registrySymbol];
668
+ }
669
+ if (IsUndefined(metadataRegistry2)) {
670
+ metadataRegistry2 = CreateMetadataRegistry();
671
+ }
672
+ if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) {
673
+ Object.defineProperty(root.Reflect, registrySymbol, {
674
+ enumerable: false,
675
+ configurable: false,
676
+ writable: false,
677
+ value: metadataRegistry2
678
+ });
679
+ }
680
+ return metadataRegistry2;
681
+ }
682
+ __name(GetOrCreateMetadataRegistry, "GetOrCreateMetadataRegistry");
683
+ function CreateMetadataProvider(registry) {
684
+ var metadata2 = new _WeakMap();
685
+ var provider = {
686
+ isProviderFor: /* @__PURE__ */ __name(function(O, P) {
687
+ var targetMetadata = metadata2.get(O);
688
+ if (IsUndefined(targetMetadata))
689
+ return false;
690
+ return targetMetadata.has(P);
691
+ }, "isProviderFor"),
692
+ OrdinaryDefineOwnMetadata: OrdinaryDefineOwnMetadata2,
693
+ OrdinaryHasOwnMetadata: OrdinaryHasOwnMetadata2,
694
+ OrdinaryGetOwnMetadata: OrdinaryGetOwnMetadata2,
695
+ OrdinaryOwnMetadataKeys: OrdinaryOwnMetadataKeys2,
696
+ OrdinaryDeleteMetadata
697
+ };
698
+ metadataRegistry.registerProvider(provider);
699
+ return provider;
700
+ function GetOrCreateMetadataMap(O, P, Create) {
701
+ var targetMetadata = metadata2.get(O);
702
+ var createdTargetMetadata = false;
703
+ if (IsUndefined(targetMetadata)) {
704
+ if (!Create)
705
+ return void 0;
706
+ targetMetadata = new _Map();
707
+ metadata2.set(O, targetMetadata);
708
+ createdTargetMetadata = true;
709
+ }
710
+ var metadataMap = targetMetadata.get(P);
711
+ if (IsUndefined(metadataMap)) {
712
+ if (!Create)
713
+ return void 0;
714
+ metadataMap = new _Map();
715
+ targetMetadata.set(P, metadataMap);
716
+ if (!registry.setProvider(O, P, provider)) {
717
+ targetMetadata.delete(P);
718
+ if (createdTargetMetadata) {
719
+ metadata2.delete(O);
720
+ }
721
+ throw new Error("Wrong provider for target.");
722
+ }
723
+ }
724
+ return metadataMap;
725
+ }
726
+ __name(GetOrCreateMetadataMap, "GetOrCreateMetadataMap");
727
+ function OrdinaryHasOwnMetadata2(MetadataKey, O, P) {
728
+ var metadataMap = GetOrCreateMetadataMap(
729
+ O,
730
+ P,
731
+ /*Create*/
732
+ false
733
+ );
734
+ if (IsUndefined(metadataMap))
735
+ return false;
736
+ return ToBoolean(metadataMap.has(MetadataKey));
737
+ }
738
+ __name(OrdinaryHasOwnMetadata2, "OrdinaryHasOwnMetadata");
739
+ function OrdinaryGetOwnMetadata2(MetadataKey, O, P) {
740
+ var metadataMap = GetOrCreateMetadataMap(
741
+ O,
742
+ P,
743
+ /*Create*/
744
+ false
745
+ );
746
+ if (IsUndefined(metadataMap))
747
+ return void 0;
748
+ return metadataMap.get(MetadataKey);
749
+ }
750
+ __name(OrdinaryGetOwnMetadata2, "OrdinaryGetOwnMetadata");
751
+ function OrdinaryDefineOwnMetadata2(MetadataKey, MetadataValue, O, P) {
752
+ var metadataMap = GetOrCreateMetadataMap(
753
+ O,
754
+ P,
755
+ /*Create*/
756
+ true
757
+ );
758
+ metadataMap.set(MetadataKey, MetadataValue);
759
+ }
760
+ __name(OrdinaryDefineOwnMetadata2, "OrdinaryDefineOwnMetadata");
761
+ function OrdinaryOwnMetadataKeys2(O, P) {
762
+ var keys = [];
763
+ var metadataMap = GetOrCreateMetadataMap(
764
+ O,
765
+ P,
766
+ /*Create*/
767
+ false
768
+ );
769
+ if (IsUndefined(metadataMap))
770
+ return keys;
771
+ var keysObj = metadataMap.keys();
772
+ var iterator = GetIterator(keysObj);
773
+ var k = 0;
774
+ while (true) {
775
+ var next = IteratorStep(iterator);
776
+ if (!next) {
777
+ keys.length = k;
778
+ return keys;
779
+ }
780
+ var nextValue = IteratorValue(next);
781
+ try {
782
+ keys[k] = nextValue;
783
+ } catch (e) {
784
+ try {
785
+ IteratorClose(iterator);
786
+ } finally {
787
+ throw e;
788
+ }
789
+ }
790
+ k++;
791
+ }
792
+ }
793
+ __name(OrdinaryOwnMetadataKeys2, "OrdinaryOwnMetadataKeys");
794
+ function OrdinaryDeleteMetadata(MetadataKey, O, P) {
795
+ var metadataMap = GetOrCreateMetadataMap(
796
+ O,
797
+ P,
798
+ /*Create*/
799
+ false
800
+ );
801
+ if (IsUndefined(metadataMap))
802
+ return false;
803
+ if (!metadataMap.delete(MetadataKey))
804
+ return false;
805
+ if (metadataMap.size === 0) {
806
+ var targetMetadata = metadata2.get(O);
807
+ if (!IsUndefined(targetMetadata)) {
808
+ targetMetadata.delete(P);
809
+ if (targetMetadata.size === 0) {
810
+ metadata2.delete(targetMetadata);
811
+ }
812
+ }
813
+ }
814
+ return true;
815
+ }
816
+ __name(OrdinaryDeleteMetadata, "OrdinaryDeleteMetadata");
817
+ }
818
+ __name(CreateMetadataProvider, "CreateMetadataProvider");
819
+ function CreateFallbackProvider(reflect) {
820
+ var defineMetadata2 = reflect.defineMetadata, hasOwnMetadata2 = reflect.hasOwnMetadata, getOwnMetadata2 = reflect.getOwnMetadata, getOwnMetadataKeys2 = reflect.getOwnMetadataKeys, deleteMetadata2 = reflect.deleteMetadata;
821
+ var metadataOwner = new _WeakMap();
822
+ var provider = {
823
+ isProviderFor: /* @__PURE__ */ __name(function(O, P) {
824
+ var metadataPropertySet = metadataOwner.get(O);
825
+ if (!IsUndefined(metadataPropertySet) && metadataPropertySet.has(P)) {
826
+ return true;
827
+ }
828
+ if (getOwnMetadataKeys2(O, P).length) {
829
+ if (IsUndefined(metadataPropertySet)) {
830
+ metadataPropertySet = new _Set();
831
+ metadataOwner.set(O, metadataPropertySet);
832
+ }
833
+ metadataPropertySet.add(P);
834
+ return true;
835
+ }
836
+ return false;
837
+ }, "isProviderFor"),
838
+ OrdinaryDefineOwnMetadata: defineMetadata2,
839
+ OrdinaryHasOwnMetadata: hasOwnMetadata2,
840
+ OrdinaryGetOwnMetadata: getOwnMetadata2,
841
+ OrdinaryOwnMetadataKeys: getOwnMetadataKeys2,
842
+ OrdinaryDeleteMetadata: deleteMetadata2
843
+ };
844
+ return provider;
845
+ }
846
+ __name(CreateFallbackProvider, "CreateFallbackProvider");
847
+ function GetMetadataProvider(O, P, Create) {
848
+ var registeredProvider = metadataRegistry.getProvider(O, P);
849
+ if (!IsUndefined(registeredProvider)) {
850
+ return registeredProvider;
851
+ }
852
+ if (Create) {
853
+ if (metadataRegistry.setProvider(O, P, metadataProvider)) {
854
+ return metadataProvider;
855
+ }
856
+ throw new Error("Illegal state.");
857
+ }
858
+ return void 0;
859
+ }
860
+ __name(GetMetadataProvider, "GetMetadataProvider");
861
+ function CreateMapPolyfill() {
862
+ var cacheSentinel = {};
863
+ var arraySentinel = [];
864
+ var MapIterator = (
865
+ /** @class */
866
+ (function() {
867
+ function MapIterator2(keys, values, selector) {
868
+ this._index = 0;
869
+ this._keys = keys;
870
+ this._values = values;
871
+ this._selector = selector;
872
+ }
873
+ __name(MapIterator2, "MapIterator");
874
+ MapIterator2.prototype["@@iterator"] = function() {
875
+ return this;
876
+ };
877
+ MapIterator2.prototype[iteratorSymbol] = function() {
878
+ return this;
879
+ };
880
+ MapIterator2.prototype.next = function() {
881
+ var index = this._index;
882
+ if (index >= 0 && index < this._keys.length) {
883
+ var result = this._selector(this._keys[index], this._values[index]);
884
+ if (index + 1 >= this._keys.length) {
885
+ this._index = -1;
886
+ this._keys = arraySentinel;
887
+ this._values = arraySentinel;
888
+ } else {
889
+ this._index++;
890
+ }
891
+ return { value: result, done: false };
892
+ }
893
+ return { value: void 0, done: true };
894
+ };
895
+ MapIterator2.prototype.throw = function(error) {
896
+ if (this._index >= 0) {
897
+ this._index = -1;
898
+ this._keys = arraySentinel;
899
+ this._values = arraySentinel;
900
+ }
901
+ throw error;
902
+ };
903
+ MapIterator2.prototype.return = function(value) {
904
+ if (this._index >= 0) {
905
+ this._index = -1;
906
+ this._keys = arraySentinel;
907
+ this._values = arraySentinel;
908
+ }
909
+ return { value, done: true };
910
+ };
911
+ return MapIterator2;
912
+ })()
913
+ );
914
+ var Map2 = (
915
+ /** @class */
916
+ (function() {
917
+ function Map3() {
918
+ this._keys = [];
919
+ this._values = [];
920
+ this._cacheKey = cacheSentinel;
921
+ this._cacheIndex = -2;
922
+ }
923
+ __name(Map3, "Map");
924
+ Object.defineProperty(Map3.prototype, "size", {
925
+ get: /* @__PURE__ */ __name(function() {
926
+ return this._keys.length;
927
+ }, "get"),
928
+ enumerable: true,
929
+ configurable: true
930
+ });
931
+ Map3.prototype.has = function(key) {
932
+ return this._find(
933
+ key,
934
+ /*insert*/
935
+ false
936
+ ) >= 0;
937
+ };
938
+ Map3.prototype.get = function(key) {
939
+ var index = this._find(
940
+ key,
941
+ /*insert*/
942
+ false
943
+ );
944
+ return index >= 0 ? this._values[index] : void 0;
945
+ };
946
+ Map3.prototype.set = function(key, value) {
947
+ var index = this._find(
948
+ key,
949
+ /*insert*/
950
+ true
951
+ );
952
+ this._values[index] = value;
953
+ return this;
954
+ };
955
+ Map3.prototype.delete = function(key) {
956
+ var index = this._find(
957
+ key,
958
+ /*insert*/
959
+ false
960
+ );
961
+ if (index >= 0) {
962
+ var size = this._keys.length;
963
+ for (var i = index + 1; i < size; i++) {
964
+ this._keys[i - 1] = this._keys[i];
965
+ this._values[i - 1] = this._values[i];
966
+ }
967
+ this._keys.length--;
968
+ this._values.length--;
969
+ if (SameValueZero(key, this._cacheKey)) {
970
+ this._cacheKey = cacheSentinel;
971
+ this._cacheIndex = -2;
972
+ }
973
+ return true;
974
+ }
975
+ return false;
976
+ };
977
+ Map3.prototype.clear = function() {
978
+ this._keys.length = 0;
979
+ this._values.length = 0;
980
+ this._cacheKey = cacheSentinel;
981
+ this._cacheIndex = -2;
982
+ };
983
+ Map3.prototype.keys = function() {
984
+ return new MapIterator(this._keys, this._values, getKey);
985
+ };
986
+ Map3.prototype.values = function() {
987
+ return new MapIterator(this._keys, this._values, getValue);
988
+ };
989
+ Map3.prototype.entries = function() {
990
+ return new MapIterator(this._keys, this._values, getEntry);
991
+ };
992
+ Map3.prototype["@@iterator"] = function() {
993
+ return this.entries();
994
+ };
995
+ Map3.prototype[iteratorSymbol] = function() {
996
+ return this.entries();
997
+ };
998
+ Map3.prototype._find = function(key, insert) {
999
+ if (!SameValueZero(this._cacheKey, key)) {
1000
+ this._cacheIndex = -1;
1001
+ for (var i = 0; i < this._keys.length; i++) {
1002
+ if (SameValueZero(this._keys[i], key)) {
1003
+ this._cacheIndex = i;
1004
+ break;
1005
+ }
1006
+ }
1007
+ }
1008
+ if (this._cacheIndex < 0 && insert) {
1009
+ this._cacheIndex = this._keys.length;
1010
+ this._keys.push(key);
1011
+ this._values.push(void 0);
1012
+ }
1013
+ return this._cacheIndex;
1014
+ };
1015
+ return Map3;
1016
+ })()
1017
+ );
1018
+ return Map2;
1019
+ function getKey(key, _) {
1020
+ return key;
1021
+ }
1022
+ __name(getKey, "getKey");
1023
+ function getValue(_, value) {
1024
+ return value;
1025
+ }
1026
+ __name(getValue, "getValue");
1027
+ function getEntry(key, value) {
1028
+ return [key, value];
1029
+ }
1030
+ __name(getEntry, "getEntry");
1031
+ }
1032
+ __name(CreateMapPolyfill, "CreateMapPolyfill");
1033
+ function CreateSetPolyfill() {
1034
+ var Set2 = (
1035
+ /** @class */
1036
+ (function() {
1037
+ function Set3() {
1038
+ this._map = new _Map();
1039
+ }
1040
+ __name(Set3, "Set");
1041
+ Object.defineProperty(Set3.prototype, "size", {
1042
+ get: /* @__PURE__ */ __name(function() {
1043
+ return this._map.size;
1044
+ }, "get"),
1045
+ enumerable: true,
1046
+ configurable: true
1047
+ });
1048
+ Set3.prototype.has = function(value) {
1049
+ return this._map.has(value);
1050
+ };
1051
+ Set3.prototype.add = function(value) {
1052
+ return this._map.set(value, value), this;
1053
+ };
1054
+ Set3.prototype.delete = function(value) {
1055
+ return this._map.delete(value);
1056
+ };
1057
+ Set3.prototype.clear = function() {
1058
+ this._map.clear();
1059
+ };
1060
+ Set3.prototype.keys = function() {
1061
+ return this._map.keys();
1062
+ };
1063
+ Set3.prototype.values = function() {
1064
+ return this._map.keys();
1065
+ };
1066
+ Set3.prototype.entries = function() {
1067
+ return this._map.entries();
1068
+ };
1069
+ Set3.prototype["@@iterator"] = function() {
1070
+ return this.keys();
1071
+ };
1072
+ Set3.prototype[iteratorSymbol] = function() {
1073
+ return this.keys();
1074
+ };
1075
+ return Set3;
1076
+ })()
1077
+ );
1078
+ return Set2;
1079
+ }
1080
+ __name(CreateSetPolyfill, "CreateSetPolyfill");
1081
+ function CreateWeakMapPolyfill() {
1082
+ var UUID_SIZE = 16;
1083
+ var keys = HashMap.create();
1084
+ var rootKey = CreateUniqueKey();
1085
+ return (
1086
+ /** @class */
1087
+ (function() {
1088
+ function WeakMap2() {
1089
+ this._key = CreateUniqueKey();
1090
+ }
1091
+ __name(WeakMap2, "WeakMap");
1092
+ WeakMap2.prototype.has = function(target) {
1093
+ var table = GetOrCreateWeakMapTable(
1094
+ target,
1095
+ /*create*/
1096
+ false
1097
+ );
1098
+ return table !== void 0 ? HashMap.has(table, this._key) : false;
1099
+ };
1100
+ WeakMap2.prototype.get = function(target) {
1101
+ var table = GetOrCreateWeakMapTable(
1102
+ target,
1103
+ /*create*/
1104
+ false
1105
+ );
1106
+ return table !== void 0 ? HashMap.get(table, this._key) : void 0;
1107
+ };
1108
+ WeakMap2.prototype.set = function(target, value) {
1109
+ var table = GetOrCreateWeakMapTable(
1110
+ target,
1111
+ /*create*/
1112
+ true
1113
+ );
1114
+ table[this._key] = value;
1115
+ return this;
1116
+ };
1117
+ WeakMap2.prototype.delete = function(target) {
1118
+ var table = GetOrCreateWeakMapTable(
1119
+ target,
1120
+ /*create*/
1121
+ false
1122
+ );
1123
+ return table !== void 0 ? delete table[this._key] : false;
1124
+ };
1125
+ WeakMap2.prototype.clear = function() {
1126
+ this._key = CreateUniqueKey();
1127
+ };
1128
+ return WeakMap2;
1129
+ })()
1130
+ );
1131
+ function CreateUniqueKey() {
1132
+ var key;
1133
+ do
1134
+ key = "@@WeakMap@@" + CreateUUID();
1135
+ while (HashMap.has(keys, key));
1136
+ keys[key] = true;
1137
+ return key;
1138
+ }
1139
+ __name(CreateUniqueKey, "CreateUniqueKey");
1140
+ function GetOrCreateWeakMapTable(target, create) {
1141
+ if (!hasOwn.call(target, rootKey)) {
1142
+ if (!create)
1143
+ return void 0;
1144
+ Object.defineProperty(target, rootKey, { value: HashMap.create() });
1145
+ }
1146
+ return target[rootKey];
1147
+ }
1148
+ __name(GetOrCreateWeakMapTable, "GetOrCreateWeakMapTable");
1149
+ function FillRandomBytes(buffer, size) {
1150
+ for (var i = 0; i < size; ++i)
1151
+ buffer[i] = Math.random() * 255 | 0;
1152
+ return buffer;
1153
+ }
1154
+ __name(FillRandomBytes, "FillRandomBytes");
1155
+ function GenRandomBytes(size) {
1156
+ if (typeof Uint8Array === "function") {
1157
+ var array = new Uint8Array(size);
1158
+ if (typeof crypto !== "undefined") {
1159
+ crypto.getRandomValues(array);
1160
+ } else if (typeof msCrypto !== "undefined") {
1161
+ msCrypto.getRandomValues(array);
1162
+ } else {
1163
+ FillRandomBytes(array, size);
1164
+ }
1165
+ return array;
1166
+ }
1167
+ return FillRandomBytes(new Array(size), size);
1168
+ }
1169
+ __name(GenRandomBytes, "GenRandomBytes");
1170
+ function CreateUUID() {
1171
+ var data = GenRandomBytes(UUID_SIZE);
1172
+ data[6] = data[6] & 79 | 64;
1173
+ data[8] = data[8] & 191 | 128;
1174
+ var result = "";
1175
+ for (var offset = 0; offset < UUID_SIZE; ++offset) {
1176
+ var byte = data[offset];
1177
+ if (offset === 4 || offset === 6 || offset === 8)
1178
+ result += "-";
1179
+ if (byte < 16)
1180
+ result += "0";
1181
+ result += byte.toString(16).toLowerCase();
1182
+ }
1183
+ return result;
1184
+ }
1185
+ __name(CreateUUID, "CreateUUID");
1186
+ }
1187
+ __name(CreateWeakMapPolyfill, "CreateWeakMapPolyfill");
1188
+ function MakeDictionary(obj) {
1189
+ obj.__ = void 0;
1190
+ delete obj.__;
1191
+ return obj;
1192
+ }
1193
+ __name(MakeDictionary, "MakeDictionary");
1194
+ });
1195
+ })(Reflect2 || (Reflect2 = {}));
1196
+ }
1197
+ });
1198
+
30
1199
  // src/index.ts
31
1200
  var index_exports = {};
32
1201
  __export(index_exports, {
@@ -35,10 +1204,14 @@ __export(index_exports, {
35
1204
  name: () => name
36
1205
  });
37
1206
  module.exports = __toCommonJS(index_exports);
38
- var import_koishi = require("koishi");
1207
+ var import_koishi2 = require("koishi");
39
1208
 
40
1209
  // src/services/wfm-service.ts
41
- var import_warframe_public_export_plus4 = require("warframe-public-export-plus");
1210
+ var import_warframe_public_export_plus = require("warframe-public-export-plus");
1211
+
1212
+ // src/utils/logger.ts
1213
+ var import_koishi = require("koishi");
1214
+ var logger = new import_koishi.Logger("koishi-plugin-warframe");
42
1215
 
43
1216
  // src/utils/time.ts
44
1217
  var toTimeStamp = /* @__PURE__ */ __name((timeStr) => {
@@ -203,75 +1376,36 @@ function tokenSimilarity(a, b) {
203
1376
  __name(tokenSimilarity, "tokenSimilarity");
204
1377
 
205
1378
  // src/utils/http.ts
206
- var fetchAsyncText = /* @__PURE__ */ __name(async (url, method = "GET") => {
207
- const response = await fetch(url, {
208
- method,
209
- headers: {
210
- "Content-Type": "application/json",
211
- Language: "zh-hans"
212
- }
213
- });
214
- if (!response.ok) {
215
- throw new Error("Network response was not ok.");
216
- }
217
- try {
218
- return await response.text();
219
- } catch (error) {
220
- if (error instanceof Error) {
221
- console.log(error.message);
222
- console.log(error.stack);
223
- } else {
224
- console.log("未知错误", error);
225
- }
226
- return void 0;
227
- }
228
- }, "fetchAsyncText");
229
- var fetchAsyncData = /* @__PURE__ */ __name(async (url, method = "GET") => {
230
- const response = await fetch(url, {
231
- method,
232
- headers: {
233
- "Content-Type": "application/json",
234
- Language: "zh-hans"
235
- }
236
- });
237
- if (!response.ok) {
238
- throw new Error("Network response was not ok.");
239
- }
240
- try {
241
- return await response.json();
242
- } catch (error) {
243
- if (error instanceof Error) {
244
- console.log(error.message);
245
- console.log(error.stack);
246
- } else {
247
- console.log("未知错误", error);
248
- }
249
- return void 0;
250
- }
251
- }, "fetchAsyncData");
252
- var fetchAsyncImage = /* @__PURE__ */ __name(async (url, method = "GET") => {
253
- const response = await fetch(url, {
254
- method,
255
- headers: {
256
- "Content-Type": "image/png",
257
- "response-type": "blob"
258
- }
259
- });
260
- if (!response.ok) {
261
- throw new Error("Network response was not ok.");
262
- }
1379
+ var import_ofetch = require("ofetch");
1380
+ var defaultHeaders = {
1381
+ Accept: "text/html,application/json;q=0.9,image/*;q=0.8,*/*;q=0.8",
1382
+ "Accept-Language": "zh-CN,zh-Hans;q=0.9",
1383
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
1384
+ Language: "zh-hans"
1385
+ };
1386
+ async function request(url, method, responseType) {
263
1387
  try {
264
- return await response.blob();
265
- } catch (error) {
266
- if (error instanceof Error) {
267
- console.log(error.message);
268
- console.log(error.stack);
269
- } else {
270
- console.log("未知错误", error);
271
- }
1388
+ return await (0, import_ofetch.ofetch)(url, {
1389
+ method,
1390
+ headers: defaultHeaders,
1391
+ responseType,
1392
+ timeout: 1e4,
1393
+ retry: 3,
1394
+ retryDelay: 500,
1395
+ retryStatusCodes: [408, 429, 500, 502, 503, 504]
1396
+ });
1397
+ } catch (err) {
1398
+ const e = err;
1399
+ const status = e.statusCode ?? "Network";
1400
+ const detail = e.data && typeof e.data === "object" ? JSON.stringify(e.data) : e.data ?? e.message ?? "";
1401
+ logger.error(`[HTTP] ${method} ${url} -> ${status} ${detail}`.trimEnd());
272
1402
  return void 0;
273
1403
  }
274
- }, "fetchAsyncImage");
1404
+ }
1405
+ __name(request, "request");
1406
+ var fetchAsyncText = /* @__PURE__ */ __name((url, method = "GET") => request(url, method, "text"), "fetchAsyncText");
1407
+ var fetchAsyncData = /* @__PURE__ */ __name((url, method = "GET") => request(url, method, "json"), "fetchAsyncData");
1408
+ var fetchAsyncImage = /* @__PURE__ */ __name((url, method = "GET") => request(url, method, "blob"), "fetchAsyncImage");
275
1409
 
276
1410
  // src/utils/collection.ts
277
1411
  var listToDict = /* @__PURE__ */ __name((dict, predict) => {
@@ -309,986 +1443,147 @@ var hexToRgb = /* @__PURE__ */ __name((hex) => {
309
1443
  }, "hexToRgb");
310
1444
  var rgbToHex = /* @__PURE__ */ __name((r, g, b) => `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`, "rgbToHex");
311
1445
 
312
- // src/utils/translation.ts
313
- var import_warframe_public_export_plus2 = require("warframe-public-export-plus");
314
-
315
- // src/utils/wf-export-adapter.ts
316
- var import_warframe_public_export_plus = require("warframe-public-export-plus");
317
- var regionToShort = /* @__PURE__ */ __name((region, dict) => {
318
- let faction;
319
- if (region.faction) {
320
- const name2 = import_warframe_public_export_plus.ExportFactions[region.faction].name;
321
- if (name2) {
322
- faction = dict[name2];
323
- }
324
- }
325
- if (!faction) {
326
- faction = region.faction;
1446
+ // src/infrastructure/wfm/wfm-api.ts
1447
+ var wfmApiV1Base = "https://api.warframe.market/v1/";
1448
+ var wfmApiV2Base = "https://api.warframe.market/v2/";
1449
+ var getWFMItemList = /* @__PURE__ */ __name(async () => {
1450
+ const response = await fetchAsyncData(
1451
+ `${wfmApiV2Base}items`
1452
+ );
1453
+ return response?.data;
1454
+ }, "getWFMItemList");
1455
+ var getWFMItemStatistics = /* @__PURE__ */ __name(async (itemId) => {
1456
+ const response = await fetchAsyncData(
1457
+ `${wfmApiV1Base}items/${itemId}/statistics`
1458
+ );
1459
+ return response?.payload;
1460
+ }, "getWFMItemStatistics");
1461
+ var getWFMOrderList = /* @__PURE__ */ __name(async (itemId) => {
1462
+ const response = await fetchAsyncData(
1463
+ `${wfmApiV2Base}orders/item/${itemId}`
1464
+ );
1465
+ return response?.data;
1466
+ }, "getWFMOrderList");
1467
+ var getWFMRivenItemList = /* @__PURE__ */ __name(async () => {
1468
+ const response = await fetchAsyncData(
1469
+ `${wfmApiV2Base}riven/weapons`
1470
+ );
1471
+ return response?.data;
1472
+ }, "getWFMRivenItemList");
1473
+ var getWFMRivenOrderList = /* @__PURE__ */ __name(async (itemId) => {
1474
+ const response = await fetchAsyncData(
1475
+ `${wfmApiV1Base}auctions/search?type=riven&sort_by=price_asc&weapon_url_name=${itemId}`
1476
+ );
1477
+ return response?.payload.auctions;
1478
+ }, "getWFMRivenOrderList");
1479
+ var getWFMRivenAttributeList = /* @__PURE__ */ __name(async () => {
1480
+ const response = await fetchAsyncData(
1481
+ `${wfmApiV2Base}riven/attributes`
1482
+ );
1483
+ return response?.data;
1484
+ }, "getWFMRivenAttributeList");
1485
+ var getWFMDucatnator = /* @__PURE__ */ __name(async () => {
1486
+ const response = await fetchAsyncData(`${wfmApiV1Base}tools/ducats`);
1487
+ if (!response || !response.payload) {
1488
+ return void 0;
327
1489
  }
1490
+ const day = response.payload.previous_day.map((e) => {
1491
+ return e;
1492
+ });
1493
+ const hour = response.payload.previous_hour.map((e) => {
1494
+ return e;
1495
+ });
328
1496
  return {
329
- name: dict[region.name],
330
- system: dict[region.systemName],
331
- type: dict[region.missionName],
332
- faction,
333
- maxLevel: region.maxEnemyLevel,
334
- minLevel: region.minEnemyLevel
1497
+ day,
1498
+ hour
335
1499
  };
336
- }, "regionToShort");
337
- var relicEraToTransKey = /* @__PURE__ */ __name((era) => {
338
- const prefix = "/Lotus/Language/Relics/Era_";
339
- return prefix + era.toUpperCase();
340
- }, "relicEraToTransKey");
341
- var fixRelicRewardKey = /* @__PURE__ */ __name((item) => {
342
- return item.replace("StoreItems/", "");
343
- }, "fixRelicRewardKey");
344
-
345
- // src/utils/translation.ts
346
- var relicToFullNameZH = /* @__PURE__ */ __name((tier, category) => {
347
- return `${import_warframe_public_export_plus2.dict_zh[relicEraToTransKey(tier)] ?? toPascalCase(tier)} ${category} 遗物`;
348
- }, "relicToFullNameZH");
1500
+ }, "getWFMDucatnator");
349
1501
 
350
- // src/utils/ocr.ts
351
- var import_node_crypto = __toESM(require("node:crypto"));
352
- var ocrCache = new CacheStorage(100);
353
- var getImageBase64Hash = /* @__PURE__ */ __name((base64) => {
354
- const pureBase64 = base64.replace(/^data:image\/\w+;base64,/, "");
355
- return import_node_crypto.default.createHash("sha256").update(pureBase64, "base64").digest("hex");
356
- }, "getImageBase64Hash");
357
- var getTextFromTencentOCR = /* @__PURE__ */ __name(async (image, secret) => {
358
- const tencentcloud = require("tencentcloud-sdk-nodejs-ocr");
359
- const ocrClient = tencentcloud.ocr.v20181119.Client;
360
- const clientConfig = {
361
- credential: {
362
- secretId: secret.id,
363
- secretKey: secret.key
364
- },
365
- region: "",
366
- profile: {
367
- httpProfile: {
368
- endpoint: "ocr.tencentcloudapi.com"
1502
+ // src/data/wfm/globalItem.ts
1503
+ var globalItemDataFactory = /* @__PURE__ */ __name(async (response) => {
1504
+ response ??= await getWFMItemList();
1505
+ if (!response) {
1506
+ return {
1507
+ globalItemList: [],
1508
+ globalItemDict: {},
1509
+ globalItemNameToSlugDict: {},
1510
+ globalItemGameRefDict: {}
1511
+ };
1512
+ }
1513
+ const data = response;
1514
+ const globalItemList = response;
1515
+ const globalItemDict = listToDict(
1516
+ data,
1517
+ (i) => [i.slug]
1518
+ );
1519
+ const globalItemNameToSlugDict = ((list) => {
1520
+ const result = {};
1521
+ for (const item of list) {
1522
+ if (item.i18n["zh-hans"]?.name) {
1523
+ result[normalizeName(item.i18n["zh-hans"].name)] = item.slug;
1524
+ }
1525
+ if (item.i18n["en"]?.name) {
1526
+ result[normalizeName(item.i18n["en"].name)] = item.slug;
369
1527
  }
370
1528
  }
1529
+ return result;
1530
+ })(globalItemList);
1531
+ const globalItemGameRefDict = listToDict(data, (i) => [i.gameRef]);
1532
+ return {
1533
+ globalItemList,
1534
+ globalItemDict,
1535
+ globalItemNameToSlugDict,
1536
+ globalItemGameRefDict
371
1537
  };
372
- const client = new ocrClient(clientConfig);
373
- const { TextDetections } = await client.GeneralAccurateOCR({
374
- ImageBase64: image
375
- });
376
- const result = TextDetections?.map((t) => t.DetectedText).filter(
377
- Boolean
378
- );
379
- return result;
380
- }, "getTextFromTencentOCR");
381
- var extractTextFromImage = /* @__PURE__ */ __name(async (image, secret) => {
382
- if (image instanceof Blob) {
383
- const buffer = await image.arrayBuffer();
384
- image = Buffer.from(buffer).toString("base64");
1538
+ }, "globalItemDataFactory");
1539
+ var globalItemData = createAsyncCache(globalItemDataFactory, -1);
1540
+
1541
+ // src/data/wfm/globalRivenItem.ts
1542
+ var globalRivenItemData = createAsyncCache(async () => {
1543
+ const rivenData = await getWFMRivenItemList();
1544
+ if (!rivenData) {
1545
+ throw new Error("Failed to fetch riven items from Warframe Market API.");
385
1546
  }
386
- const imageHash = getImageBase64Hash(image);
387
- try {
388
- return await ocrCache.get(
389
- imageHash,
390
- () => getTextFromTencentOCR(image, secret)
1547
+ const data = rivenData;
1548
+ const globalRivenItemList = data;
1549
+ const globalRivenItemDict = listToDict(data, (i) => [i.slug]);
1550
+ return {
1551
+ globalRivenItemList,
1552
+ globalRivenItemDict
1553
+ };
1554
+ }, -1);
1555
+
1556
+ // src/data/wfm/globalRivenAttribute.ts
1557
+ var globalRivenAttributeFactory = /* @__PURE__ */ __name(async (rivenAttributeData) => {
1558
+ rivenAttributeData ??= await getWFMRivenAttributeList();
1559
+ if (!rivenAttributeData) {
1560
+ throw new Error(
1561
+ "Failed to fetch riven attributes from Warframe Market API."
391
1562
  );
392
- } catch (err) {
393
- console.error("Ocr request error!", err);
394
- return void 0;
395
1563
  }
396
- }, "extractTextFromImage");
397
-
398
- // src/utils/output.tsx
399
- var style = `
400
- :root {
401
- --color_success_text: #4d8200;
402
- --color_success_border: #4d8200;
403
- --color_rgb_success_text: 77 130 0;
404
- --color_rgb_success_border: 77 130 0;
405
- --color_auction_participant: #1c8a62;
406
- --color_auction_sell: #909090;
407
- --color_auction_own: mediumpurple;
408
- --color_auction_archiving: gray;
409
- --color_rgb_auction_archiving: 128 128 128;
410
- --color_dark_background--light: #11262b;
411
- --color_dark_border--ligth: #283235;
412
- --color_dark_background: #171e21;
413
- --color_dark_border: #283235;
414
- --color_dark_background--darker: #071013;
415
- --color_dark_border--darker: #171e21;
416
- --color_rgb_dark_background--light: 17 38 43;
417
- --color_rgb_dark_border--ligth: 40 50 53;
418
- --color_rgb_dark_background: 23 30 33;
419
- --color_rgb_dark_border: 40 50 53;
420
- --color_rgb_dark_background--darker: 7 16 19;
421
- --color_rgb_dark_border--darker: 23 30 33;
422
- --color_place_order: #b53600;
423
- --color_place_order--hover: #e64400;
424
- --color_place_order--active: #ff8f00;
425
- --color_place_order_text: #f5f5f5;
426
- --color_create_auction: #8960db;
427
- --color_create_auction_text: #f5f5f5;
428
- --color_create_auction--hover: #b08cff;
429
- --color_create_auction--active: #9d92ff;
430
- --color_input_inner_shadow: 0 0 0;
431
- --color_input_text--highlight: #19a187;
432
- --color_attribute_text: white;
433
- --color_attribute_background_first: #19a187;
434
- --color_attribute_background_second: #358576;
435
- --color_attribute_background_third: #516965;
436
- --color_attribute_background_negative: #98392d;
437
- --color_rgb_attribute_background_first: 25 161 135;
438
- --color_rgb_attribute_background_second: 53 133 118;
439
- --color_rgb_attribute_background_third: 81 105 101;
440
- --color_rgb_attribute_background_negative: 152 57 45;
441
- --color_link_dimmed: #408698;
442
- --color_link_dimmed--hover: #a3dddb;
443
- --color_link_dimmed--active: #acb8dd;
444
- --color_rgb_link_dimmed: 64 134 152;
445
- --color_rgb_link_dimmed--hover: 163 221 219;
446
- --color_rgb_link_dimmed--active: 172 184 221;
447
- --color_dark_md_code_background: black;
448
- --color_dark_md_code_text: #39a57e;
449
- --color_rgb_dark_md_code_background: 0 0 0;
450
- --color_status-offline: darkred;
451
- --color_highlight: #b53600;
452
- --color_highlight_text: #f5f5f5;
453
- --color_tooltip_background: #1b2432;
454
- --color_tooltip_border: black;
455
- --color_tooltip_text: #aab3b6;
456
- --color_rgb_tooltip_background: 27 36 50;
457
- --color_text_svg: red;
458
- --color_dark_text: #aab3b6;
459
- --color_dark_h1: #fcfdfd;
460
- --color_dark_h2: #e1e4e5;
461
- --color_dark_h3: #c5ccce;
462
- --color_dark_disclaimer: #333d40;
463
- }
464
-
465
- body {
466
- font-family: Arial, sans-serif;
467
- padding: 20px;
468
- }
1564
+ const data = rivenAttributeData;
1565
+ const globalRivenAttributeList = data;
1566
+ const globalRivenAttributeDict = listToDict(data, (a) => [
1567
+ a.slug
1568
+ ]);
1569
+ return {
1570
+ globalRivenAttributeList,
1571
+ globalRivenAttributeDict
1572
+ };
1573
+ }, "globalRivenAttributeFactory");
1574
+ var globalRivenAttribute = createAsyncCache(
1575
+ globalRivenAttributeFactory,
1576
+ -1
1577
+ );
469
1578
 
470
- * {
471
- margin: 0;
472
- padding: 0;
473
- }
474
-
475
- ul {
476
- list-style: none;
477
- }
478
- `;
479
- var svg = `<svg
480
- style="display: none"
481
- xmlns="http://www.w3.org/2000/svg"
482
- xmlns:xlink="http://www.w3.org/1999/xlink"
483
- xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
484
- >
485
- <defs>
486
- <symbol viewBox="0 0 19.736 20.883" id="icon-amber">
487
- <path
488
- d="M15.163 9.37c-3.622-4.486-4.755-6.107-5.312-6.107-.557 0-1.656 1.621-5.278 6.107.116 2.831 1.424 2.328 5.295 7.062 3.871-4.734 5.179-4.231 5.295-7.062zm-8.26.491c1.296-1.39 2.254-4.473 2.965-4.448.711-.025 1.67 3.058 2.966 4.448-.493 1.425-1.72 2.611-2.966 4.06-1.246-1.449-2.473-2.635-2.965-4.06zm-1.787 7.416C3.03 17.449 0 12.89 0 11.335c0-2.573 4.116-6.501 4.499-7.782l.11-2.16C5.854.397 7.632.1 9.87 0c2.235.099 4.014.396 5.258 1.394l.11 2.159c.383 1.28 4.5 5.209 4.5 7.782 0 1.555-3.085 5.942-5.117 5.942-.86 1.214-3.277 3.606-4.752 3.606-1.474 0-3.892-2.392-4.752-3.606z"
489
- />
490
- </symbol>
491
- <symbol viewBox="0 0 320 512" id="icon-angle-up">
492
- <path
493
- d="m177 159.7 136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"
494
- />
495
- </symbol>
496
- <symbol viewBox="0 0 512 512" id="icon-archive">
497
- <path
498
- d="M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"
499
- />
500
- </symbol>
501
- <symbol viewBox="-10 0 468 512" id="icon-arrow-link">
502
- <path
503
- fill="currentColor"
504
- d="M280 80q-22-2-24-24 2-22 24-24h144q22 2 24 24v144q-2 22-24 24-22-2-24-24v-86L200 312q-16 15-33 0-14-16 0-33L366 80h-86zM0 120q1-24 16-40 16-15 40-16h112q22 2 24 24-2 22-24 24H56q-7 1-8 8v304q1 7 8 8h304q7-1 8-8V312q2-22 24-24 22 2 24 24v112q-1 24-16 40-16 15-40 16H56q-24-1-40-16-15-16-16-40V120z"
505
- />
506
- </symbol>
507
- <symbol viewBox="0 0 512 512" id="icon-arrows-alt-h">
508
- <path
509
- d="M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"
510
- />
511
- </symbol>
512
- <symbol viewBox="0 0 1000 1000" id="icon-auction">
513
- <path
514
- d="m324.4 138.5 250 144.3c19.8 11.4 45 4.6 56.3-15.1 11.4-19.7 4.7-45-15.1-56.3l-250-144.3c-19.8-11.4-45-4.6-56.3 15.1s-4.6 44.8 15.1 56.3zm229.4 180-250-144.3-144.3 250 250 144.3 144.3-250zM97.6 531.3l250 144.3c19.7 11.4 45 4.6 56.3-15.1 11.3-19.7 4.6-45-15.1-56.3L138.8 460c-19.8-11.4-45-4.6-56.3 15.1-11.5 19.6-4.7 44.9 15.1 56.2zm861.5 116.4L502.3 407.8 461 479.3l436.2 275.6c29.6 17.1 67.4 7 84.5-22.6 17.1-29.7 6.9-67.5-22.6-84.6zM506.3 856c0-22.8-18.5-41.2-41.2-41.2H93.8c-22.8 0-41.2 18.4-41.2 41.2v41.2l-42.6-.9 1.4 42.1h536.1l1.9-39.5-40.6-1.7c.1 0-2.5-18.5-2.5-41.2z"
515
- />
516
- </symbol>
517
- <symbol viewBox="0 0 400 423" id="icon-averagePrice">
518
- <path
519
- d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
520
- fill="#ff5a69"
521
- />
522
- </symbol>
523
- <symbol viewBox="0 0 384 512" id="icon-award">
524
- <path
525
- d="M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"
526
- />
527
- </symbol>
528
- <symbol viewBox="0 0 640 512" id="icon-backspace">
529
- <path
530
- d="M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"
531
- />
532
- </symbol>
533
- <symbol viewBox="0 0 512 512" id="icon-ban">
534
- <path
535
- d="M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"
536
- />
537
- </symbol>
538
- <symbol viewBox="0 0 448 512" id="icon-bars">
539
- <path
540
- d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"
541
- />
542
- </symbol>
543
- <symbol viewBox="0 0 544 1423" id="icon-candlePrice">
544
- <g fill="green">
545
- <path
546
- d="m141.618 209.102 2.33 804.884 266.39.894-6.224-806.124c-58.188 2.227-202.884-.42-262.496.346z"
547
- />
548
- <path
549
- d="m243.855 250.785-1.697-236.057 63.435-.335.369 236.664zm.917 985.162.013-230.11 64.04-1.797.382 232.173z"
550
- />
551
- </g>
552
- </symbol>
553
- <symbol viewBox="0 0 320 512" id="icon-caret-down">
554
- <path
555
- d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
556
- />
557
- </symbol>
558
- <symbol viewBox="0 0 192 512" id="icon-caret-left">
559
- <path
560
- d="M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"
561
- />
562
- </symbol>
563
- <symbol viewBox="0 0 512 512" id="icon-chart-area">
564
- <path
565
- d="M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5 288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"
566
- />
567
- </symbol>
568
- <symbol viewBox="0 0 512 512" id="icon-check">
569
- <path
570
- d="m173.898 439.404-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"
571
- />
572
- </symbol>
573
- <symbol viewBox="0 0 512 512" id="icon-check-circle">
574
- <path
575
- d="M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z"
576
- />
577
- </symbol>
578
- <symbol viewBox="0 0 448 512" id="icon-chevron-down">
579
- <path
580
- d="M207.029 381.476 12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"
581
- />
582
- </symbol>
583
- <symbol viewBox="0 0 320 512" id="icon-chevron-left">
584
- <path
585
- d="M34.52 239.03 228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"
586
- />
587
- </symbol>
588
- <symbol viewBox="0 0 448 512" id="icon-chevron-up">
589
- <path
590
- d="m240.971 130.524 194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"
591
- />
592
- </symbol>
593
- <symbol viewBox="0 0 512 512" id="icon-circle">
594
- <path
595
- d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"
596
- />
597
- </symbol>
598
- <symbol viewBox="0 0 512 512" id="icon-circle-check">
599
- <path
600
- d="M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"
601
- />
602
- </symbol>
603
- <symbol viewBox="0 0 512 512" id="icon-circle-notch">
604
- <path
605
- d="M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"
606
- />
607
- </symbol>
608
- <symbol viewBox="0 0 640 512" id="icon-cogs">
609
- <path
610
- d="m512.1 191-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"
611
- />
612
- </symbol>
613
- <symbol viewBox="0 0 576 512" id="icon-comments">
614
- <path
615
- d="M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"
616
- />
617
- </symbol>
618
- <symbol viewBox="0 0 640 512" id="icon-contract">
619
- <path
620
- d="m519.2 127.9-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"
621
- />
622
- </symbol>
623
- <symbol viewBox="0 0 24 24" id="icon-crossplay">
624
- <path
625
- d="M10.762 3.098c-1.124.118-2.38.62-3.623 1.449C5.972 5.32 4.9 6.28 3.01 8.255c-1.364 1.42-1.598 1.701-1.86 2.25-.277.58-.361 1.003-.37 1.762 0 .361.013.68.032.699.019.023.712-.638 1.533-1.458l1.5-1.5v1.828L2.32 13.359.797 14.883l.01 1.256.013 1.252 3.985-3.966c2.193-2.18 4.153-4.097 4.36-4.26.735-.577 1.424-.93 2.165-1.107.567-.136 1.383-.108 1.865.06 1.557.554 2.663 1.913 2.817 3.465.02.178.043.323.061.323.014 0 .32-.29.675-.647l.643-.642v-.262c0-.572-.3-1.35-.76-1.974-.75-1.017-2.151-1.86-3.6-2.175-.614-.131-1.617-.112-2.208.042-1.5.394-2.63 1.163-4.434 3.024l-.712.736-.005-.919V8.17l.375-.45C7.12 6.436 8.634 5.4 10.03 5.002c.746-.216 1.29-.282 2.147-.258a7.312 7.312 0 0 1 3.211.815c1.425.718 2.658 1.932 3.22 3.178.211.465.253.375.22-.496-.023-.816-.107-1.172-.412-1.805-.736-1.533-2.54-2.78-4.612-3.197a11.417 11.417 0 0 0-3.043-.14Z"
626
- />
627
- <path
628
- d="M19.148 10.575c-2.189 2.18-4.153 4.097-4.359 4.26-.736.577-1.425.93-2.166 1.107-.567.136-1.382.108-1.865-.06-1.556-.554-2.663-1.913-2.817-3.465-.02-.178-.043-.323-.061-.323-.014 0-.32.29-.675.647l-.643.642v.262c0 .572.3 1.35.76 1.974.75 1.017 2.151 1.86 3.6 2.175.614.131 1.617.112 2.208-.042 1.5-.394 2.63-1.163 4.434-3.024l.713-.736.004.919v.919l-.375.45c-1.073 1.284-2.587 2.32-3.984 2.718-.745.216-1.29.282-2.147.258a7.31 7.31 0 0 1-3.21-.815c-1.426-.718-2.659-1.932-3.221-3.178-.211-.465-.253-.376-.22.496.023.816.107 1.172.412 1.805.614 1.275 1.992 2.386 3.652 2.94 1.673.557 3.839.594 5.371.093.563-.183 1.618-.713 2.246-1.134 1.18-.788 2.245-1.744 4.139-3.718 1.364-1.42 1.598-1.701 1.86-2.25.277-.58.362-1.003.371-1.762 0-.361-.014-.68-.033-.699-.019-.023-.712.638-1.533 1.458l-1.5 1.5v-1.828l1.524-1.523 1.523-1.524-.01-1.256-.013-1.252Z"
629
- />
630
- </symbol>
631
- <symbol viewBox="0 0 24 24" id="icon-crossplay-warn">
632
- <g clip-path="url(#icon-crossplay-warn_a)">
633
- <path
634
- d="M10.762 3.098c-1.124.118-2.38.62-3.623 1.449C5.972 5.32 4.9 6.28 3.01 8.255c-1.364 1.42-1.598 1.701-1.86 2.25-.277.58-.361 1.003-.37 1.762 0 .361.013.68.032.699.019.023.712-.638 1.533-1.458l1.5-1.5v1.828L2.32 13.359.797 14.883l.01 1.256.013 1.252 3.985-3.966c2.193-2.18 4.153-4.097 4.36-4.26.735-.577 1.424-.93 2.165-1.107.567-.136 1.383-.108 1.865.06 1.557.554 2.663 1.913 2.817 3.465.02.178.043.323.061.323.014 0 .32-.29.675-.647l.643-.642v-.262c0-.572-.3-1.35-.76-1.974-.75-1.017-2.151-1.86-3.6-2.175-.614-.131-1.617-.112-2.208.042-1.5.394-2.63 1.163-4.434 3.024l-.712.736-.005-.919V8.17l.375-.45C7.12 6.436 8.634 5.4 10.03 5.002c.746-.216 1.29-.282 2.147-.258a7.312 7.312 0 0 1 3.211.815c1.425.718 2.658 1.932 3.22 3.178.211.465.253.375.22-.496-.023-.816-.107-1.172-.412-1.805-.736-1.533-2.54-2.78-4.612-3.197a11.417 11.417 0 0 0-3.043-.14Z"
635
- />
636
- <path
637
- d="M19.148 10.575c-2.189 2.18-4.153 4.097-4.359 4.26-.736.577-1.425.93-2.166 1.107-.567.136-1.382.108-1.865-.06-1.556-.554-2.663-1.913-2.817-3.465-.02-.178-.043-.323-.061-.323-.014 0-.32.29-.675.647l-.643.642v.262c0 .572.3 1.35.76 1.974.75 1.017 2.151 1.86 3.6 2.175.614.131 1.617.112 2.208-.042 1.5-.394 2.63-1.163 4.434-3.024l.713-.736.004.919v.919l-.375.45c-1.073 1.284-2.587 2.32-3.984 2.718-.745.216-1.29.282-2.147.258a7.31 7.31 0 0 1-3.21-.815c-1.426-.718-2.659-1.932-3.221-3.178-.211-.465-.253-.376-.22.496.023.816.107 1.172.412 1.805.614 1.275 1.992 2.386 3.652 2.94 1.673.557 3.839.594 5.371.093.563-.183 1.618-.713 2.246-1.134 1.18-.788 2.245-1.744 4.139-3.718 1.364-1.42 1.598-1.701 1.86-2.25.277-.58.362-1.003.371-1.762 0-.361-.014-.68-.033-.699-.019-.023-.712.638-1.533 1.458l-1.5 1.5v-1.828l1.524-1.523 1.523-1.524-.01-1.256-.013-1.252Z"
638
- />
639
- <path
640
- d="M18.741 12.996a.868.868 0 0 0-.313-.323.836.836 0 0 0-.856 0 .868.868 0 0 0-.313.323l-5.185 9.075c-.345.605.07 1.374.742 1.374h10.368c.672 0 1.087-.77.741-1.374z"
641
- fill="#fff"
642
- />
643
- <path
644
- d="M18.741 12.996a.868.868 0 0 0-.313-.323.836.836 0 0 0-.856 0 .868.868 0 0 0-.313.323l-5.185 9.075c-.345.605.07 1.374.742 1.374h10.368c.672 0 1.087-.77.741-1.374zM18 15.667c.404 0 .721.36.68.774l-.264 2.728a.434.434 0 0 1-.134.28.411.411 0 0 1-.565 0 .434.434 0 0 1-.133-.28l-.265-2.728a.723.723 0 0 1 .174-.542.685.685 0 0 1 .507-.232zm0 4.667c.2 0 .393.082.535.228a.79.79 0 0 1 .221.55c0 .206-.08.404-.221.55a.746.746 0 0 1-.535.227.746.746 0 0 1-.535-.227.789.789 0 0 1-.22-.55.79.79 0 0 1 .22-.55.746.746 0 0 1 .535-.228z"
645
- fill="#a52f31"
646
- />
647
- </g>
648
- <defs />
649
- </symbol>
650
- <clipPath id="icon-crossplay-warn_a">
651
- <path fill="#fff" d="M0 0h24v24H0z" />
652
- </clipPath>
653
- <symbol viewBox="0 0 512 512" id="icon-cubes">
654
- <path
655
- d="M488.6 250.2 392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1-85 42.5v-79.1l85-38.8v75.4zm0-112-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112-85 42.5v-79.1l85-38.8v75.4zm0-112-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"
656
- />
657
- </symbol>
658
- <symbol viewBox="0 0 14.021 15.329" id="icon-cyan">
659
- <path
660
- d="M14.021 7.959c-.972-1.693-3.793-4.185-3.204-6.465L6.972 0 3.124 1.493C3.714 3.773.972 6.266 0 7.959c1.194 4.657 4.173 6.192 6.973 7.37 2.8-1.178 5.855-2.713 7.048-7.37zM3.127 7.783s1.898-4.066 3.848-5.095c1.95 1.029 3.92 5.095 3.92 5.095-1.4 2.758-3.922 3.62-3.922 3.62s-2.448-.862-3.846-3.62zm6.397-.067A10.821 10.821 0 0 0 6.98 4.397c-1.086.968-1.853 2.053-2.483 3.32.686.98 1.492 1.724 2.48 2.282a7.647 7.647 0 0 0 2.547-2.283z"
661
- />
662
- </symbol>
663
- <symbol viewBox="0 0 940 940" id="icon-cycle-icon">
664
- <path
665
- d="M469.594.813c-132.135.23-258.059 56.12-346.873 153.955-31.762-19.523-64.48-37.499-96.83-56.034l29.308 229.293 210.975-88.775-89.528-50.959A407.135 407.135 0 0 1 469.594 63.271 407.135 407.135 0 1 1 62.459 470.406l.02-.406H.014l-.014.406a469.593 469.593 0 1 0 939.188 0A469.593 469.593 0 0 0 469.594.812z"
666
- />
667
- </symbol>
668
- <symbol viewBox="-10 0 522 512" id="icon-dice">
669
- <path
670
- d="M20 317q-4 0-4-4V151q0-4 4-5 1 0 2 1l77 45-76 122q-1 4-3 3zm211 88L23 383q-7-1-7-8 0-2 1-4l106-156 108 190zM31 420q0-3 4-4h1l203 22v66q0 7-7 8-2 0-3-1L34 424q-2-2-3-4zm325-213L256 383 156 207h200zm120 208q4 1 4 4 0 2-2 4l-195 87q-1 1-3 1-7 0-8-8v-66l204-22zm19-44q1 2 1 4 0 7-7 8l-208 22 108-190 106 156zm-4-224q4 0 4 4v162q0 4-4 4-2 0-3-2l-76-122 77-45 2-1z"
671
- fill="currentColor"
672
- />
673
- <path
674
- d="M196.54 20.512q-1-8-8-8-2 0-4 1l-151 98q-2 2-3 4 0 2 2 3l83 49 79-143q2-2 2-4zm58-19q-7 0-13 8l-95 167h218l-95-168q-5-7-15-7zm224 114q0-2-2-4l-151-98q-2-1-4-1-7 0-8 8 0 2 2 4l80 143 81-49q3-1 2-3z"
675
- fill="currentColor"
676
- fill-opacity=".75"
677
- />
678
- </symbol>
679
- <symbol viewBox="0 0 71 71" id="icon-discord">
680
- <path
681
- d="M60.105 12.928a58.55 58.55 0 0 0-14.452-4.483.22.22 0 0 0-.233.11 40.784 40.784 0 0 0-1.8 3.697c-5.456-.817-10.886-.817-16.23 0-.485-1.164-1.201-2.587-1.828-3.697a.228.228 0 0 0-.233-.11 58.386 58.386 0 0 0-14.451 4.483.207.207 0 0 0-.095.082C1.578 26.76-.944 40.174.293 53.42a.244.244 0 0 0 .093.167c6.073 4.46 11.955 7.167 17.729 8.962a.23.23 0 0 0 .249-.082 42.08 42.08 0 0 0 3.627-5.9.225.225 0 0 0-.123-.312 38.772 38.772 0 0 1-5.539-2.64.228.228 0 0 1-.022-.378 31.17 31.17 0 0 0 1.1-.862.22.22 0 0 1 .23-.03c11.619 5.304 24.198 5.304 35.68 0a.219.219 0 0 1 .233.027c.356.293.728.586 1.103.865a.228.228 0 0 1-.02.378 36.384 36.384 0 0 1-5.54 2.637.227.227 0 0 0-.121.315 47.249 47.249 0 0 0 3.624 5.897.225.225 0 0 0 .249.084c5.801-1.794 11.684-4.502 17.757-8.96a.228.228 0 0 0 .092-.165c1.48-15.315-2.48-28.618-10.497-40.412a.18.18 0 0 0-.093-.084zm-36.38 32.427c-3.497 0-6.38-3.21-6.38-7.156 0-3.944 2.827-7.156 6.38-7.156 3.583 0 6.438 3.24 6.382 7.156 0 3.945-2.827 7.156-6.381 7.156zm23.593 0c-3.498 0-6.38-3.21-6.38-7.156 0-3.944 2.826-7.156 6.38-7.156 3.582 0 6.437 3.24 6.38 7.156 0 3.945-2.798 7.156-6.38 7.156z"
682
- />
683
- </symbol>
684
- <symbol viewBox="0 0 503 523" id="icon-dochPrice">
685
- <defs />
686
- <path
687
- d="m62.572 63.274 2.965-.822-.41 1.084z"
688
- opacity=".85"
689
- fill="#171e21"
690
- fill-opacity=".01"
691
- stroke="#171ed9"
692
- stroke-width=".008"
693
- transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
694
- />
695
- <path
696
- d="m66.514 78.982-.005-11.15 13.099.005.01 11.14z"
697
- opacity=".15"
698
- fill="#265663"
699
- stroke="url(#icon-dochPrice_b)"
700
- stroke-width=".014"
701
- stroke-opacity=".01"
702
- transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
703
- />
704
- <path
705
- d="M79.374 75.524c.01-.704.018-1.313.023-1.836.026-2.575-.002-3.08-.002-2.657 0 .554.006 2.608-.021 4.493zm-12.64.199c.01-.704.018-1.312.023-1.836.026-2.574-.002-3.079-.002-2.656 0 .553.006 2.608-.021 4.492zm-.063-7.661c.772.01 1.44.016 2.013.02 2.821.025 3.374 0 2.91-.001-.606 0-2.858.005-4.923-.02zm7.699-.064c.772.01 1.44.016 2.013.021 2.821.024 3.374-.002 2.91-.002-.606 0-2.858.005-4.922-.02zm.086 10.781c.772.01 1.439.016 2.012.02 2.822.025 3.375 0 2.911-.001-.606 0-2.858.005-4.923-.02zm-7.752.034c.772.01 1.44.016 2.013.021 2.821.024 3.374-.002 2.91-.002-.606 0-2.858.006-4.923-.02z"
706
- opacity=".259"
707
- fill="#4d4d4d"
708
- fill-opacity=".988"
709
- stroke="#171e21"
710
- stroke-width=".345"
711
- transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
712
- />
713
- </symbol>
714
- <linearGradient osb:paint="solid" id="icon-dochPrice_a">
715
- <stop offset="0" stop-color="#171e21" />
716
- </linearGradient>
717
- <linearGradient
718
- gradientTransform="translate(1.708 2.148)"
719
- y2="71.258"
720
- x2="77.916"
721
- y1="71.258"
722
- x1="64.794"
723
- gradientUnits="userSpaceOnUse"
724
- id="icon-dochPrice_b"
725
- xlink:href="#icon-dochPrice_a"
726
- />
727
- <symbol viewBox="0 0 512 512" id="icon-dot-circle">
728
- <path
729
- d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"
730
- />
731
- </symbol>
732
- <symbol viewBox="0 0 18.231 22.384" id="icon-ducats">
733
- <path
734
- d="m7.986.006-.275.363H4.737l2.606 4.189-.008 13.603 1.762 3.268 1.762-3.268-.008-13.603L13.457.369h-2.973l-.276-.363H7.986zM4.805 1.522c-.887.528-1.917 1.425-2.571 2.225l2.232 1.138c.4-.42 1.149-.981 1.646-1.277L4.805 1.522zm8.584 0-1.307 2.086c.497.296 1.246.856 1.646 1.277l2.232-1.138c-.654-.8-1.684-1.697-2.57-2.225zM.542 3.497l2.5 4.46v9.41l2.353.378.017-11.763-4.87-2.485zm17.11 0-4.87 2.485.017 11.763 2.353-.379v-9.41l2.5-4.459zM1.057 5.52C.598 6.61.346 8.06.346 9.321c0 2.25.812 4.303 2.15 5.877l.02-7.08L1.057 5.52zm16.08 0-1.459 2.597.02 7.081a9.046 9.046 0 0 0 2.15-5.877c0-1.26-.252-2.712-.711-3.8zm-11.23 8.93v3.103c.274.167.575.323.909.454V14.45c-.312.01-.696-.008-.91 0zm5.472 0v3.557a5.94 5.94 0 0 0 .91-.454v-3.104c-.215-.008-.599.01-.91 0zM3.04 18.006 5.396 22.4v-4.026l-2.356-.368zm12.114 0-2.355.368V22.4l2.355-4.394z"
735
- paint-order="markers stroke fill"
736
- />
737
- </symbol>
738
- <symbol viewBox="0 0 576 512" id="icon-edit">
739
- <path
740
- d="m402.3 344.9 32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174 402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"
741
- />
742
- </symbol>
743
- <symbol viewBox="0 0 512 512" id="icon-ellipsis-h">
744
- <path
745
- d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"
746
- />
747
- </symbol>
748
- <symbol viewBox="0 0 256 251.342" id="icon-endo">
749
- <path
750
- style="
751
- display: inline;
752
- opacity: 1;
753
- fill-opacity: 1;
754
- stroke: none;
755
- stroke-width: 0.785732;
756
- stroke-dasharray: none;
757
- stroke-opacity: 1;
758
- "
759
- d="M127.322 0C65.442.142 13.79 45.301 7.982 106.908l3.266-2.563 18.698-2.582c8.011-47.544 49.162-80.406 97.376-80.442h1.356c48.214.036 89.365 32.898 97.376 80.442l18.698 2.582 3.265 2.563C242.21 45.301 190.557.142 128.678 0Zm-.035 47.06c-32.405.03-60.827 21.633-69.53 52.847l.023-.003v3.347h14.186v-5.306l17.076-2.676c11.52-12.664 18.687-20.448 38.959-20.53 20.271.082 27.436 7.866 38.957 20.53l17.076 2.676v5.306h14.186v-3.347l.023.003c-8.703-31.214-37.125-52.817-69.53-52.846ZM128 84.513c-18.59.058-28.32 13.998-28.32 13.998l14.377.104-14.374 8.299H75.715l-37.213.01-24.361 3.365L0 121.395l26.828 11.82 70.13 3.585a35.294 35.294 0 0 0 12.581 13.113l6.143 69.327L128 251.342l12.317-32.102 6.143-69.327a35.295 35.295 0 0 0 12.581-13.113l70.13-3.585L256 121.395l-14.14-11.107-24.362-3.365-37.213-.01h-23.969l-14.373-8.299 14.376-.104s-9.729-13.94-28.318-13.998zm0 19.427c8.8.082 15.913 7.226 15.914 16.045 0 8.82-7.115 15.963-15.914 16.046-8.8-.083-15.915-7.227-15.915-16.046 0-8.819 7.115-15.963 15.915-16.045zM25.496 117.625h16.915c4.634.004 4.634 6.484 0 6.484H25.496c-4.634 0-4.634-6.484 0-6.484zm31.445 0h5.376c4.635.004 4.635 6.487 0 6.484h-5.376c-4.635-.004-4.635-6.488 0-6.484zm19.972 0h5.377c4.634.004 4.634 6.487 0 6.484h-5.377c-4.635-.004-4.635-6.488 0-6.484zm96.797 0h5.377c4.634-.004 4.634 6.48 0 6.484h-5.377c-4.635.004-4.635-6.48 0-6.484zm19.973 0h5.378c4.635-.004 4.635 6.48 0 6.484h-5.378c-4.635.004-4.635-6.48 0-6.484zm19.906 0h16.915c4.634 0 4.634 6.484 0 6.484h-16.915c-4.634 0-4.634-6.48 0-6.484zm-116.761.026h5.376c4.635.004 4.635 6.487 0 6.484h-5.376c-4.635-.004-4.635-6.488 0-6.484zm56.968 0h5.376c4.635-.004 4.635 6.48 0 6.484h-5.376c-4.635.004-4.635-6.48 0-6.484zM7.808 132.014c4.531 59.23 52.241 103.835 111.479 108.229l-9.88-20.952-9.918-21.851-7.229.14-6.56 6.127 17.64 25.85-21.698-22.127c-26.292-13.768-45.539-35.888-51.267-66.031l-1.433-.074zm240.384 0-21.134 9.311-1.433.074c-5.728 30.143-24.975 52.263-51.267 66.03l-21.698 22.128 17.64-25.85-6.56-6.126-7.23-.141-9.917 21.85-9.88 20.953c59.237-4.395 106.948-48.998 111.479-108.23zm-190.283 6.823c6.87 23.077 27.875 47.583 50.865 54.739l-2.3-25.03c-11.001-5.613-22.351-17.148-27.256-28.484Zm140.182 0-21.309 1.225c-4.905 11.336-16.255 22.871-27.257 28.485l-2.3 25.029c22.991-7.156 43.997-31.662 50.866-54.74zm-76.686 20.178H134.595s-.313 3.032-1.503 4.052c-1.189 1.02-5.091 1.022-5.091 1.022s-3.904-.002-5.093-1.022c-1.19-1.02-1.503-4.052-1.503-4.052zm-.037 19.701h13.264s.287 5.746-1.126 7.473c-1.413 1.726-5.505 1.992-5.505 1.992s-4.094-.266-5.507-1.992c-1.413-1.727-1.126-7.473-1.126-7.473zm.118 24.293H134.514s-.644 5.267-1.933 6.897c-1.267 1.602-4.467 2.517-4.58 2.55-.114-.033-3.315-.948-4.582-2.55-1.289-1.63-1.933-6.897-1.933-6.897z"
760
- />
761
- <path
762
- style="display: inline; opacity: 0.75; stroke-width: 0.799524"
763
- d="m99.685 98.435-23.498 3.417.049 5.238 23.452-.006 14.504-8.542zm56.63 0-14.507.107 14.504 8.542 23.454.006.047-5.238zm-76.94 43.87c3.308 10.97 13.424 22.62 24.495 26.022l-1.108-11.899c-5.298-2.668-10.763-8.153-13.125-13.542zm97.25 0-10.262.581c-2.362 5.39-7.827 10.874-13.125 13.542l-1.106 11.9c11.07-3.402 21.185-15.053 24.492-26.024zM85.7 203.706l-4.06 3.723 21.699 22.127zm84.598 0-17.639 25.85 21.698-22.127z"
764
- />
765
- </symbol>
766
- <symbol viewBox="0 0 512 512" id="icon-envelope">
767
- <path
768
- d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"
769
- />
770
- </symbol>
771
- <symbol viewBox="0 0 512 512" id="icon-exchange-alt">
772
- <path
773
- d="M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"
774
- />
775
- </symbol>
776
- <symbol viewBox="0 0 576 512" id="icon-eye">
777
- <path
778
- d="M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"
779
- />
780
- </symbol>
781
- <symbol viewBox="0 0 576 512" id="icon-eye-slash">
782
- <path
783
- d="M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"
784
- />
785
- </symbol>
786
- <symbol viewBox="0 0 512 512" id="icon-filter2">
787
- <path
788
- d="M24 64h336c10 0 19 6 22 15 4 9 2 19-5 26L256 226v198c0 10-6 19-15 22-9 4-19 2-26-5l-80-80c-4-4-7-10-7-17V226L7 105c-7-7-9-17-5-26s12-15 22-15Zm145 135c5 5 7 11 7 17v118l32 32V216c0-6 3-12 7-17l87-87H82ZM472 64h48c13 0 24 11 24 24s-11 24-24 24h-48c-13 0-24-11-24-24s11-24 24-24zM344 232h176c13 0 24 11 24 24s-11 24-24 24H344c-13 0-24-11-24-24s11-24 24-24zm0 168h176c13 0 24 11 24 24s-11 24-24 24H344c-13 0-24-11-24-24s11-24 24-24z"
789
- />
790
- </symbol>
791
- <symbol viewBox="0 0 448 512" id="icon-fire-alt">
792
- <path
793
- fill="currentColor"
794
- d="M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z"
795
- />
796
- </symbol>
797
- <symbol viewBox="0 0 496 512" id="icon-frown">
798
- <path
799
- d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"
800
- />
801
- </symbol>
802
- <symbol viewBox="0 0 1024 1024" id="icon-github">
803
- <path
804
- d="M512 13.028C229.345 13.028.407 241.966.407 524.62c0 226.38 146.443 417.588 349.802 485.374 25.58 4.476 35.172-10.871 35.172-24.3 0-12.151-.64-52.439-.64-95.285-128.538 23.661-161.791-31.335-172.023-60.112-5.755-14.708-30.696-60.112-52.438-72.263-17.906-9.592-43.486-33.253-.64-33.893 40.288-.64 69.065 37.09 78.658 52.439 46.043 77.378 119.585 55.635 149.001 42.206 4.477-33.254 17.906-55.636 32.614-68.426-113.83-12.79-232.775-56.914-232.775-252.599 0-55.635 19.825-101.679 52.439-137.49-5.116-12.79-23.022-65.229 5.116-135.573 0 0 42.845-13.429 140.688 52.439 40.927-11.511 84.413-17.267 127.898-17.267s86.97 5.756 127.898 17.267c97.842-66.507 140.688-52.439 140.688-52.439 28.138 70.344 10.232 122.783 5.116 135.573 32.614 35.811 52.439 81.215 52.439 137.49 0 196.324-119.585 239.81-233.415 252.6 18.545 15.987 34.533 46.682 34.533 94.644 0 68.426-.64 123.422-.64 140.688 0 13.43 9.593 29.417 35.172 24.301 202.08-67.786 348.523-259.634 348.523-485.374 0-282.655-228.938-511.593-511.593-511.593z"
805
- />
806
- </symbol>
807
- <symbol viewBox="0 0 384 512" id="icon-hourglass-half">
808
- <path
809
- d="M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"
810
- />
811
- </symbol>
812
- <symbol viewBox="0 0 640 512" id="icon-infinity">
813
- <path
814
- d="M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"
815
- />
816
- </symbol>
817
- <symbol viewBox="0 0 512 512" id="icon-info">
818
- <path
819
- d="M256 40c118.621 0 216 96.075 216 216 0 119.291-96.61 216-216 216-119.244 0-216-96.562-216-216 0-119.203 96.602-216 216-216m0-32C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm-36 344h12V232h-12c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h48c6.627 0 12 5.373 12 12v140h12c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12h-72c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12zm36-240c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"
820
- />
821
- </symbol>
822
- <symbol viewBox="0 0 512 512" id="icon-link">
823
- <path
824
- d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"
825
- />
826
- </symbol>
827
- <symbol viewBox="0 0 16.267 16.491" id="icon-madurai">
828
- <path
829
- d="M1.694 16.491c2.23-6.227 5.77-7.546 8.965-10.499.951-.88 3.086-2.097 4.85-2.429-.685-.632-1.147-.878-1.782-1.182-.778-.408-1.376-.255-2.676 1.188-1.155 1.317-5.634 4.724-6.369 4.886-.6-1.235.772-5.57.975-8.455 0 0-3.164 2.749-5.657 2.557 0 0 2.429.895 2.557 1.917z"
830
- />
831
- </symbol>
832
- <symbol viewBox="0 0 400 423" id="icon-medianPrice">
833
- <path
834
- d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
835
- fill="#5a95ff"
836
- />
837
- </symbol>
838
- <symbol viewBox="0 0 496 512" id="icon-meh">
839
- <path
840
- d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"
841
- />
842
- </symbol>
843
- <symbol viewBox="0 0 18 18" id="icon-naramon">
844
- <path
845
- d="M2.096 13.26c-.135-1.702-.278-3.405-1.943-5.401l14.824-.226c1.105-.706.837-2.893.837-2.893.475 2.041.346 4.33 2.033 5.876l-14.576.045c-.726.484-1.175 2.599-1.175 2.599z"
846
- />
847
- </symbol>
848
- <symbol viewBox="0 0 448 512" id="icon-paste">
849
- <path
850
- d="M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"
851
- />
852
- </symbol>
853
- <symbol viewBox="0 0 1024 1024" id="icon-patreon">
854
- <path
855
- d="M137.741 725.75c1.5-266.734 1.784-274.433 11.392-308.99 23.796-85.581 79.183-167.291 142.612-210.392 72.468-49.243 140.233-70.911 221.774-70.911 165.476 0 306.731 100.693 358.349 255.448 72.925 218.636-64.099 445.36-295.631 489.159-32.01 6.055-121.217 3.042-150.485-5.083l-18.827-5.227v-81.415c0-44.779.498-81.414 1.108-81.413s12.072 4.209 25.472 9.35c55.969 21.472 122.821 18.874 174.984-6.801 41.045-20.203 65.707-42.046 90.702-80.335 29.938-45.86 36.874-71.683 34.883-129.857-1.52-44.41-2.761-49.999-17.913-80.657-34.942-70.7-97.786-118.015-171.229-128.915-87.002-12.913-172.325 28.33-219.124 105.918-33.246 55.119-31.703 39.4-33.12 337.377l-1.272 267.515 145.246-2.37c143.004-2.334 146.034-2.574 196.28-15.553 173.31-44.768 304.422-174.39 353.036-349.024 11.417-41.014 12.246-49.68 12.054-125.998-.177-70.118-1.597-86.964-9.834-116.642-26-93.682-65.87-161.534-135.816-231.14-36.62-36.442-53.216-49.156-93.275-71.46-90.78-50.542-143.996-64.706-243.648-64.849-62.259-.09-76.537 1.328-117.394 11.65-82.493 20.841-170.399 70.213-225.413 126.602-58.491 59.953-98.831 125.916-122.085 199.632-22.794 72.255-24.565 99.609-24.593 379.888l-.028 258.045h110.255l1.538-273.55z"
856
- />
857
- </symbol>
858
- <symbol viewBox="0 0 24 24" id="icon-platform-mobile">
859
- <path
860
- d="M5.75 4.5A2.5 2.5 0 0 1 8.25 2h7.5a2.5 2.5 0 0 1 2.5 2.5v15a2.5 2.5 0 0 1-2.5 2.5h-7.5a2.5 2.5 0 0 1-2.5-2.5Zm7.5 13.75a1.25 1.25 0 1 0-2.5 0 1.25 1.25 0 0 0 2.5 0Z"
861
- />
862
- </symbol>
863
- <symbol viewBox="0 0 24 24" id="icon-platform-pc">
864
- <path
865
- d="M2 12v8.66h4.312v-5.815l1.197.01 1.197.012 1.368-1.368 1.368-1.368v-6.06l-1.368-1.368L8.709 3.34H2Zm5.018-2.855v2.279l-.353-.011-.353-.011V6.87h.706zm6.407-4.435-1.35 1.361v11.895l1.35 1.35 1.345 1.345h4.498l1.368-1.364L22 17.932V13.19l-2.256.007-2.26.011-.012 1.978-.007 1.98h-.669V6.908h.669v3.272H22V8.097c0-1.513-.011-2.082-.041-2.082-.022 0-.643-.602-1.379-1.338L19.242 3.34l-2.234.008-2.238.003Z"
866
- />
867
- </symbol>
868
- <symbol viewBox="0 0 24 24" id="icon-platform-ps">
869
- <path
870
- d="M9.218 3s.008 6.318.035 6.445l-.02 9.866L12.8 20.5l.007-13.452c0-1.207.432-1.302.824-1.146.376.15.609.557.607 1.176l.008 5.67c.28.195 1.213.433 1.624.42.146-.003 2.603.153 2.342-4.011-.127-2.027-.728-3.269-2.788-4.269-1.43-.694-4.873-1.64-6.206-1.888Zm-.699 9.877-5.743 2.131c-2.19.783-2.322 1.977-.578 2.723 3.168 1.274 6.324.545 6.324.545l-.005-1.895c.02-.017-1.747.773-2.67.847-1.284.102-1.554-.215-1.572-.372-.029-.253.406-.436.507-.472l3.745-1.373zm8.853.915c-1.577.022-2.724.399-3.88.729l.019 2.212 4.073-1.463c.53-.19 2.104-.276 2.232.209.078.295-.256.42-.524.518l-5.8 2.118.015 2.131 7.837-2.89c.48-.177 1.679-.726 1.656-1.55-.028-.986-2.27-1.68-3.892-1.901-.637-.087-1.21-.12-1.736-.113z"
871
- />
872
- </symbol>
873
- <symbol viewBox="0 0 24 24" id="icon-platform-switch">
874
- <path
875
- d="M5.8 8.4v.001a1.703 1.703 0 0 0 1.697 1.696c.934 0 1.697-.764 1.697-1.697S8.43 6.704 7.497 6.704A1.7 1.7 0 0 0 5.8 8.4z"
876
- />
877
- <path
878
- d="M11.54 3H7.61A4.61 4.61 0 0 0 3 7.61v8.766a4.61 4.61 0 0 0 4.61 4.611h3.93a.127.127 0 0 0 .128-.127V3.127c.014-.07-.043-.127-.128-.127Zm-1.315 16.544H7.61a3.088 3.088 0 0 1-2.235-.934 3.149 3.149 0 0 1-.933-2.234V7.61a3.09 3.09 0 0 1 .933-2.235 3.152 3.152 0 0 1 2.235-.933h2.615Zm9.425-15.18a4.609 4.609 0 0 0-3.26-1.35h-2.785a.111.111 0 0 0-.113.113v17.746c-.014.07.042.127.127.127h2.77A4.61 4.61 0 0 0 21 16.39V7.624a4.61 4.61 0 0 0-1.35-3.26zm-2.61 10.358a1.828 1.828 0 0 1-1.823-1.824c0-1.004.82-1.824 1.824-1.824s1.824.82 1.824 1.824-.82 1.824-1.824 1.824z"
879
- />
880
- </symbol>
881
- <symbol viewBox="0 0 24 24" id="icon-platform-xbox">
882
- <path
883
- d="M11.007 21.959a9.984 9.984 0 0 1-4.44-1.574c-1.123-.732-1.377-1.033-1.377-1.634 0-1.206 1.328-3.32 3.599-5.729 1.289-1.368 3.085-2.971 3.28-2.928.377.085 3.397 3.028 4.528 4.414 1.787 2.191 2.609 3.986 2.191 4.786-.317.608-2.286 1.796-3.733 2.253-1.192.376-2.758.535-4.048.412zm-7.333-4.462c-.933-1.43-1.405-2.84-1.632-4.876-.075-.673-.049-1.057.17-2.438.273-1.72 1.253-3.71 2.432-4.935.501-.52.546-.534 1.158-.327.741.25 1.534.798 2.764 1.91l.718.648-.393.481c-1.82 2.233-3.74 5.4-4.463 7.358-.393 1.064-.55 2.133-.381 2.578.114.3.01.188-.374-.399zm16.377.243c.092-.45-.025-1.275-.298-2.109-.591-1.804-2.57-5.16-4.386-7.441l-.571-.719.618-.567c.808-.741 1.369-1.185 1.974-1.562.477-.298 1.16-.56 1.453-.56.18 0 .817.661 1.33 1.382.797 1.115 1.382 2.47 1.679 3.877.191.91.208 2.858.03 3.766a12.033 12.033 0 0 1-.75 2.367c-.226.49-.781 1.444-1.025 1.755-.126.16-.126.159-.056-.185zm-8.88-13.3c-.837-.425-2.13-.881-2.844-1.004a5.194 5.194 0 0 0-.949-.054c-.59.03-.563 0 .382-.447a9.722 9.722 0 0 1 2.332-.776c1-.21 2.882-.212 3.867-.005 1.063.224 2.316.69 3.022 1.125l.21.128-.481-.024c-.957-.048-2.351.338-3.848 1.066-.452.22-.844.395-.873.39a15.893 15.893 0 0 1-.818-.398Z"
884
- />
885
- </symbol>
886
- <symbol viewBox="0 0 215.535 215.535" id="icon-platinum">
887
- <path
888
- d="M105.563 0c-32.088 0-56.76 18.984-56.76 18.984l8.052 7.096-15.052 16.395-15.916 13.998-6.903-7.67S0 74.875 0 109.973c0 32.087 18.984 56.761 18.984 56.761l7.096-8.054 16.395 15.052 13.998 15.916-7.67 6.905s26.072 18.982 61.17 18.982c32.087 0 56.761-18.982 56.761-18.982l-8.054-7.096 15.052-16.396 15.916-13.998 6.905 7.671s18.982-26.074 18.982-61.171c0-32.088-18.982-56.76-18.982-56.76l-7.096 8.052-16.394-15.052-14-15.916 7.671-6.903S140.66 0 105.562 0zm-.192 8.438c28.187.505 46.406 12.464 46.406 12.464l-5.369 5.178 20.326 22.05 22.532 20.999 5.56-5.56s10.93 14.189 12.272 41.802c-.506 28.187-12.463 46.404-12.463 46.404l-5.178-5.369-22.053 20.328-20.996 22.532 5.56 5.56s-14.189 10.93-41.802 12.272c-28.186-.506-46.406-12.463-46.406-12.463l5.369-5.178-20.326-22.053-22.532-20.998-5.56 5.563S9.78 137.777 8.437 110.164C8.943 81.978 20.902 63.76 20.902 63.76l5.178 5.369 22.05-20.326 21-22.533-5.56-5.562s14.187-10.929 41.8-12.27zM71.295 60.467v11.879h9.734v69.62h-9.734v13.231h72.592v-13.23h-9.239V72.346l9.239.144V60.467z"
889
- fill-rule="evenodd"
890
- />
891
- </symbol>
892
- <symbol viewBox="0 0 448 512" id="icon-plus-square">
893
- <path
894
- d="M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
895
- />
896
- </symbol>
897
- <symbol
898
- viewBox="0 0 978 388"
899
- fill-rule="evenodd"
900
- stroke-linejoin="round"
901
- stroke-miterlimit="2"
902
- id="icon-pwa_logo"
903
- >
904
- <path
905
- d="m719.12 322.11 28.23-71.38h81.503l-38.688-108.283 48.38-122.33L977.1 388H874.92l-23.676-65.89H719.121zm-87.175 45.77L780.27-.002l-98.332.008L580.47 237.74 508.314.005h-75.581L355.264 237.74l-54.639-108.338-49.444 152.33 50.204 86.149h96.774l70.01-213.197 66.744 213.197h97.032zM93.344 241.602h60.57c18.348 0 34.684-2.045 49.013-6.142l15.662-48.254 43.78-134.881a107.213 107.213 0 0 0-11.423-14.996C228.468 12.446 195.578.013 152.284.013H.002v367.884h93.342V241.602zm80.172-156.96c8.782 8.838 13.17 20.668 13.17 35.476 0 14.933-3.863 26.77-11.58 35.522-8.469 9.723-24.052 14.588-46.757 14.588H93.344V71.394h35.264c21.161 0 36.133 4.411 44.908 13.249z"
906
- fill-opacity=".91"
907
- fill-rule="nonzero"
908
- />
909
- </symbol>
910
- <symbol viewBox="0 0 1952 734.93" id="icon-pwa_logo_inverse">
911
- <path
912
- d="m1436.62 603.304 56.39-142.599h162.82l-77.27-216.315L1675.2 0 1952 734.934h-204.13l-47.3-131.629h-263.95z"
913
- fill="#FFF"
914
- />
915
- <path
916
- d="M1262.47 734.935 1558.79.002h-196.45l-202.7 474.931L1015.5.003H864.499l-154.768 474.93-109.146-216.416-98.773 304.302 100.284 172.116h193.331l139.857-425.91 133.346 425.91h193.84z"
917
- fill="#a52f31"
918
- />
919
- <path
920
- d="M186.476 482.643h121.003c36.654 0 69.293-4.091 97.917-12.273l31.293-96.408 87.459-269.446c-6.664-10.563-14.272-20.55-22.824-29.96C456.419 24.853 390.719 0 304.222 0H0v734.933h186.476v-252.29zm160.166-313.564c17.54 17.653 26.309 41.276 26.309 70.871 0 29.822-7.713 53.474-23.138 70.956-16.91 19.425-48.047 29.137-93.409 29.137h-69.928V142.598h70.442c42.277 0 72.185 8.827 89.724 26.481z"
921
- fill="#FFF"
922
- />
923
- </symbol>
924
- <symbol viewBox="0 0 51.936 53.127" id="icon-qq">
925
- <path
926
- d="M50.267 29.674c1.056 2.179 1.833 4.656 1.64 7.586-.077 1.202-.385 2.516-.974 3.326-.3.409-.736.791-1.199.798-.776.014-1.331-.911-1.729-1.508-.473-.708-.83-1.392-1.198-2.085-.478.492-.645 1.208-.887 1.818-.757 1.91-1.812 3.573-3.149 4.924 1.251.725 2.418 1.229 3.504 2.084.668.527 1.552 1.284 1.331 2.529-.147.831-.863 1.532-1.376 1.862-3.574 2.307-11.038 1.969-15.435.533-.854-.28-1.711-.729-2.484-.843-.293-.044-.798-.023-1.109-.045-.448-.03-.947-.116-1.153-.089-.264.036-.492.307-.798.488-1.938 1.145-3.832 1.795-6.743 1.996-3.233.226-6.495-.043-9.003-.843-1.331-.424-3.111-1.291-3.282-2.838-.084-.75.122-1.874.399-2.396.688-1.304 2.242-1.724 4.168-1.907-.071-.333-.533-.547-.843-.8-1.828-1.492-3.261-3.503-4.169-5.987-.145-.399-.201-.849-.443-1.242-.428.314-.477.891-.754 1.331-.559.888-1.453 1.824-2.352 2.262-.33.161-.821.355-1.197.266-.729-.171-.895-1.512-.977-2.438-.302-3.444.698-6.223 1.819-8.384 1.432-2.76 3.478-4.552 5.545-6.254-.577-1.593.107-3.379.842-4.348.028-.728.098-1.399.354-2.04.146-.354.467-.582.533-.887.07-.319-.029-.676 0-1.065.327-4.318 2.986-8.22 5.368-10.6 1.413-1.414 2.668-2.418 4.655-3.327 1.801-.823 4.089-1.3 6.566-1.553h3.236C36.907.748 41.949 4.27 44.321 10.6c.365.972.631 1.96.888 3.016.254 1.044.223 2.32.576 3.415.214.663.766 1.254 1.065 1.953.606 1.412.807 3.406 0 4.789 1.197 1.682 2.382 3.77 3.417 5.901zm-3.328 19.341c.376-2.04-2.059-1.636-3.637-1.73.191-.668 1.122-.592 1.818-.754a4.123 4.123 0 0 0-2.972-1.464c-3.032 2.644-6.568 4.785-11.577 5.456 1.441 1.203 4.591 1.694 7.674 1.817 3.032.121 6.287-.618 7.807-1.907.405-.343.793-.901.887-1.418zm-2.661-10.159c1.104-4.161-.569-7.771-2.262-10.246-5.013 3.403-13.106 6.049-20.804 4.035.045.823.128 1.729.134 2.706.005.971.195 2.061.044 2.883-.117.646-.679 1.299-1.197 1.509-.768.312-1.958.297-2.929.223-1.758-.137-3.261-.984-3.725-2.352-.176-.519-.14-1.181-.179-1.819-.119-2.033.078-3.921.356-5.722a20.458 20.458 0 0 0-2.706-1.597c-1.445 1.452-2.125 5.038-2.04 7.541.021.635.159 1.545.31 2.262.412 1.965 1.507 3.791 2.706 5.19 1.242 1.449 2.606 2.588 4.303 3.592 3.394 2.012 8.088 3.016 12.598 3.062 1.633.016 3.217-.311 4.701-.843 1.508-.542 2.95-1.376 4.259-2.219 1.289-.83 2.639-1.991 3.504-2.972 1.155-1.309 2.39-3.207 2.927-5.233zm-6.653-17.167c.361-.167 1.765-.771 1.73-1.242-.02-.237-.747-.669-1.109-.886-3.768-2.251-9.395-3.03-14.948-2.219-2.127.312-4.053.812-5.811 1.643-.556.262-2.138 1.056-2.085 1.64.021.228.378.505.577.622.864.507 2.262.805 3.238 1.02-.198-.543-.586-.892-.8-1.419 1.998 1.383 4.328 2.877 7.407 3.149 4.613.406 8.113-1.41 10.735-3.149-.25.629-1.129.919-1.287 1.464 1.02-.012 1.607-.278 2.353-.623zm-5.013-4.568c3.081-1.104 3.179-8.305.045-9.492-.281-.106-.839-.111-1.02-.088-1.013.122-1.712.842-2.13 1.553-1.396 2.374-.918 7.275 1.73 8.072.496.149 1.05.071 1.375-.045zm-9.889-.044c2.244.224 3.325-2.575 3.281-4.79-.046-2.284-1.131-4.685-2.972-4.701-1.132-.012-1.932.767-2.395 1.597-1.373 2.454-.784 7.608 2.086 7.894zm-5.858 35.528c3.022-.151 6.146-.59 7.275-2.262-4.633-.55-8.8-1.938-11.933-4.081-.395-.27-1.05-.858-1.374-.931-.07-.016-.221.042-.354.043-1.067.018-1.794.433-2.618.933-.552.336-1.23.853-.797 1.465.491-.026.791-.243 1.374-.179-.568.498-1.555.885-1.774 1.729-.188.73.512 1.346.932 1.642 2.09 1.479 5.7 1.823 9.269 1.641z"
927
- />
928
- <path
929
- d="M41.528 36.549c.038.506-.653.628-.931.312-.854.229-1.98.008-1.775-1.108.18-.976 1.55-1.893 2.219-.977.289.396.189 1.1.397 1.642-.208-.146-.358-.351-.62-.444-.936.278.404 1.491.71.575zm-1.287-.709c.201-.062.223.172.356.044-.182-1.575-1.55.501-.533.576-.017-.283.007-.524.177-.62zm.134.178c-.228-.036-.168.216-.177.399.151-.042.091-.293.177-.399z"
930
- />
931
- <path
932
- d="M40.642 36.417c-.188-.063.003-.296.177-.268-.018.131-.145.152-.177.268zm-1.952.132c.024.477-.659.647-.933.312-.787.158-1.766.092-1.817-.754-.065-1.048 1.341-2.195 2.128-1.465.295.274.419.786.354 1.42.058.105.113.212.179.311-.311 0-.355-.427-.665-.399-.595.051-.187.941.266.931.312-.008.241-.216.488-.356zm-1.287-.709c.173-.035.229.163.354.044-.071-.299-.175-.564-.443-.665-.373.127-.79 1.291-.089 1.198-.06-.217-.005-.482.178-.577zm0 .577c.016-.138.224-.384.045-.444-.082.137-.224.359-.045.444z"
933
- />
934
- <path
935
- d="M37.937 36.106c.122.098-.141.181-.134.311-.217-.092.06-.238.134-.311zm-6.034-25.15c.593.289.962 1.389.62 2.262-.961.134-.553-1.236-1.108-1.331-.612-.102-.519 1.057-.888 1.376-.688-.091-.519-.928-.354-1.419.206-.616.952-1.269 1.73-.888zm-7.541-.488c1.771-.235 1.605 3.937.089 3.858-1.539-.077-1.62-3.654-.089-3.858z"
936
- />
937
- </symbol>
938
- <symbol viewBox="0 0 512 512" id="icon-question-circle-solid">
939
- <path
940
- d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"
941
- />
942
- </symbol>
943
- <symbol viewBox="0 0 512 512" id="icon-search">
944
- <path
945
- d="M505 442.7 405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"
946
- />
947
- </symbol>
948
- <symbol viewBox="0 0 512 512" id="icon-search-plus">
949
- <path
950
- d="M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"
951
- />
952
- </symbol>
953
- <symbol viewBox="0 0 576 512" id="icon-shopping-cart">
954
- <path
955
- d="m528.12 301.319 47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"
956
- />
957
- </symbol>
958
- <symbol viewBox="0 0 512 512" id="icon-sign-in-alt">
959
- <path
960
- d="M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"
961
- />
962
- </symbol>
963
- <symbol viewBox="0 0 512 512" id="icon-sign-out-alt">
964
- <path
965
- d="M497 273 329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"
966
- />
967
- </symbol>
968
- <symbol viewBox="0 0 400 423" id="icon-simpleAvgPrice">
969
- <path
970
- d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
971
- fill="#464646"
972
- />
973
- </symbol>
974
- <symbol viewBox="0 0 496 512" id="icon-smile">
975
- <path
976
- d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"
977
- />
978
- </symbol>
979
- <symbol viewBox="0 0 32 32" id="icon-stack">
980
- <path
981
- d="M32 10 16 2 0 10l16 8 16-8zM16 4.655 26.689 10 16 15.345 5.311 10 16 4.655zm12.795 9.743L32 16l-16 8-16-8 3.205-1.602L16 20.796zm0 6L32 22l-16 8-16-8 3.205-1.602L16 26.796z"
982
- />
983
- </symbol>
984
- <symbol viewBox="0 0 448 512" id="icon-steam-square">
985
- <path
986
- d="M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"
987
- />
988
- </symbol>
989
- <symbol viewBox="0 0 352 512" id="icon-times">
990
- <path
991
- d="m242.72 256 100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"
992
- />
993
- </symbol>
994
- <symbol viewBox="0 0 448 512" id="icon-trash-alt">
995
- <path
996
- d="M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z"
997
- />
998
- </symbol>
999
- <symbol viewBox="0 0 512 512" id="icon-upload">
1000
- <path
1001
- d="M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"
1002
- />
1003
- </symbol>
1004
- <symbol viewBox="0 0 448 512" id="icon-user">
1005
- <path
1006
- d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"
1007
- />
1008
- </symbol>
1009
- <symbol viewBox="0 0 13.546 16.345" id="icon-vazarin">
1010
- <path
1011
- d="M0 1.226c5.958 2.784 9.917 8.708 11.277 15.12 1.011-1.734 1.735-3.47 2.192-6.668.349-3.612-.572-7.13-1.043-9.678C11.95 1.529 0 1.226 0 1.226zM7.14 4.87s3.362-.141 4.93-.063c.186 1.331.536 2.41-.233 4.804l-1.525-.03C9.272 7.546 7.14 4.869 7.14 4.869z"
1012
- />
1013
- </symbol>
1014
- <symbol viewBox="0 0 614.156 507.697" id="icon-wifi2">
1015
- <path
1016
- d="M306.719 118.003c-80.452.303-160.77 30.425-222.313 90.281l55.906 55.282c92.257-89.611 240.746-90.142 333.657-1.157l55.781-55.812c-62.01-59.39-142.58-88.897-223.031-88.594M140.312 263.566l-.125.093z"
1017
- />
1018
- <path
1019
- d="M306.594.003C195.649.421 84.87 41.96 0 124.503l55.469 54.844C194.41 44.792 417.73 44.108 557.5 177.972l56.656-55.781C528.642 40.29 417.54-.415 306.594.003M55.469 179.347l-.563.531zm251.406 56.156c-50.088.189-100.122 18.954-138.438 56.219l53.438 52.812c47.181-45.82 123.111-46.068 170.625-.562l53.219-53.313c-38.607-36.975-88.756-55.345-138.844-55.156zm-85 109.031-.063.063z"
1020
- />
1021
- <circle cx="307.078" cy="429.197" r="78.5" />
1022
- </symbol>
1023
- <symbol viewBox="0 0 372.369 372.573" id="icon-xbox">
1024
- <path
1025
- d="M167.618 371.807c-28.683-2.748-57.723-13.049-82.67-29.325-20.904-13.639-25.624-19.245-25.624-30.434 0-22.476 24.712-61.84 66.992-106.716 24.013-25.487 57.46-55.36 61.078-54.55 7.03 1.571 63.25 56.41 84.296 82.224 33.28 40.821 48.58 74.245 40.808 89.147-5.908 11.327-42.572 33.467-69.507 41.972-22.2 7.01-51.356 9.981-75.373 7.681zM31.09 288.68C13.719 262.03 4.943 235.793.705 197.847c-1.4-12.53-.898-19.697 3.177-45.415 5.08-32.054 23.333-69.137 45.268-91.958 9.34-9.72 10.176-9.956 21.563-6.12C84.54 59.012 99.309 69.211 122.21 89.92l13.363 12.083-7.297 8.964c-33.873 41.613-69.63 100.597-83.106 137.09-7.326 19.838-10.28 39.753-7.128 48.043 2.128 5.598.173 3.511-6.953-7.42zm304.915 4.532c1.716-8.377-.454-23.762-5.54-39.28-11.018-33.606-47.84-96.124-81.654-138.63l-10.644-13.38 11.516-10.575c15.036-13.807 25.476-22.074 36.74-29.095 8.889-5.54 21.59-10.444 27.05-10.444 3.367 0 15.218 12.298 24.785 25.72 14.818 20.788 25.718 45.987 31.24 72.22 3.57 16.95 3.867 53.231.576 70.14-2.7 13.875-8.403 31.874-13.966 44.081-4.17 9.147-14.536 26.91-19.08 32.691-2.334 2.972-2.336 2.965-1.023-3.448zM170.69 45.462c-15.601-7.923-39.67-16.427-52.965-18.715-4.66-.803-12.612-1.25-17.67-.995-10.97.554-10.48-.02 7.119-8.333 14.63-6.912 26.834-10.977 43.4-14.455C169.21-.949 204.24-.996 222.58 2.87c19.808 4.174 43.133 12.854 56.276 20.943l3.906 2.404-8.962-.453c-17.81-.9-43.766 6.296-71.633 19.857-8.405 4.09-15.718 7.358-16.25 7.26-.532-.097-7.384-3.436-15.227-7.418z"
1026
- style="stroke: none"
1027
- />
1028
- </symbol>
1029
- </defs>
1030
- </svg>
1031
- `;
1032
- var htmlString = /* @__PURE__ */ (() => {
1033
- const template = `
1034
- <!DOCTYPE html>
1035
- <html>
1036
- <head>
1037
- <meta charset="UTF-8" />
1038
- <title>{{title}}</title>
1039
- <style>{{style}}</style>
1040
- </head>
1041
- <body>
1042
- <div style="display: none;">{{svg}}</div>
1043
- <div id="root">{{htmlString}}</div>
1044
- </body>
1045
- </html>`;
1046
- return (htmlString2, title = "title") => {
1047
- return template.replace("{{htmlString}}", htmlString2).replace("{{title}}", title).replace("{{style}}", style).replace("{{svg}}", svg);
1048
- };
1049
- })();
1050
- var generateImageOutput = /* @__PURE__ */ __name(async (puppe, element) => {
1051
- if (!puppe) {
1052
- return "本功能需要启用 koishi-plugin-puppeteer 插件";
1053
- }
1054
- return await puppe.render(
1055
- htmlString(element.toString()),
1056
- async (page, next) => {
1057
- const handle = await page.$("#root>*");
1058
- return await next(handle ?? void 0);
1059
- }
1060
- );
1061
- }, "generateImageOutput");
1062
-
1063
- // src/utils/wfcd-adapter.ts
1064
- var import_warframe_public_export_plus3 = require("warframe-public-export-plus");
1065
- var solNodesEnDict;
1066
- var getSolNodeKey = /* @__PURE__ */ __name(async (name2) => {
1067
- const worldstateData = await import("warframe-worldstate-data");
1068
- if (!solNodesEnDict) {
1069
- solNodesEnDict = dictToKeyDict(worldstateData.default.solNodes, (n) => [
1070
- n.value
1071
- ]);
1072
- }
1073
- return solNodesEnDict[name2];
1074
- }, "getSolNodeKey");
1075
- var missionTypeEnDict;
1076
- var getMissionTypeKey = /* @__PURE__ */ __name(async (name2) => {
1077
- const worldstateData = await import("warframe-worldstate-data");
1078
- if (!missionTypeEnDict) {
1079
- missionTypeEnDict = dictToKeyDict(
1080
- worldstateData.default.missionTypes,
1081
- (n) => [n.value]
1082
- );
1083
- }
1084
- if (name2 === "Disruption") return "MT_ARTIFACT";
1085
- return missionTypeEnDict[name2];
1086
- }, "getMissionTypeKey");
1087
- var fissureTierName = {
1088
- 1: "/Lotus/Language/Relics/Era_LITH",
1089
- 2: "/Lotus/Language/Relics/Era_MESO",
1090
- 3: "/Lotus/Language/Relics/Era_NEO",
1091
- 4: "/Lotus/Language/Relics/Era_AXI",
1092
- 5: "/Lotus/Language/Relics/Era_REQUIEM",
1093
- 6: "/Lotus/Language/Relics/Era_OMNI",
1094
- 7: "/Lotus/Language/Relics/Era_VANGUARD"
1095
- };
1096
- var fissureTierNumToNumber = /* @__PURE__ */ __name((a) => {
1097
- return typeof a === "string" ? a.charCodeAt(5) : a;
1098
- }, "fissureTierNumToNumber");
1099
- var getVoidTraderItem = /* @__PURE__ */ __name((i) => {
1100
- const itemNameKey = getVoidTraderItemName(i.uniqueName);
1101
- const itemName = !itemNameKey ? i.item : typeof itemNameKey === "string" ? import_warframe_public_export_plus3.dict_zh[itemNameKey] ?? (itemNameKey.includes("/") ? i.item : itemNameKey) : relicToFullNameZH(itemNameKey.era, itemNameKey.category);
1102
- return { name: itemName, ducats: i.ducats, credits: i.credits };
1103
- }, "getVoidTraderItem");
1104
- var getVoidTraderItemName = /* @__PURE__ */ __name((sourceKey) => {
1105
- const fixedKey = sourceKey.replace("/StoreItems", "");
1106
- const flavour = import_warframe_public_export_plus3.ExportFlavour[fixedKey];
1107
- if (flavour) {
1108
- return flavour.name;
1109
- }
1110
- const weapon = import_warframe_public_export_plus3.ExportWeapons[fixedKey];
1111
- if (weapon) {
1112
- return weapon.name;
1113
- }
1114
- const mod = import_warframe_public_export_plus3.ExportUpgrades[fixedKey];
1115
- if (mod) {
1116
- return mod.name;
1117
- }
1118
- const relic = import_warframe_public_export_plus3.ExportRelics[fixedKey];
1119
- if (relic) {
1120
- return { era: relic.era, category: relic.category };
1121
- }
1122
- const skin = import_warframe_public_export_plus3.ExportCustoms[fixedKey];
1123
- if (skin) {
1124
- return skin.name;
1125
- }
1126
- const recipe = import_warframe_public_export_plus3.ExportRecipes[fixedKey];
1127
- if (recipe) {
1128
- const recipeResult = import_warframe_public_export_plus3.ExportKeys[recipe.resultType];
1129
- if (recipeResult) {
1130
- return recipeResult.name;
1131
- }
1132
- }
1133
- const virtual = import_warframe_public_export_plus3.ExportVirtuals[fixedKey];
1134
- if (virtual) {
1135
- return virtual.name;
1136
- }
1137
- const resource = import_warframe_public_export_plus3.ExportResources[fixedKey];
1138
- if (resource) {
1139
- return resource.name;
1140
- }
1141
- const booster = import_warframe_public_export_plus3.ExportBundles[sourceKey];
1142
- if (booster) {
1143
- return booster.name;
1144
- }
1145
- const boosterPack = import_warframe_public_export_plus3.ExportBoosterPacks[fixedKey];
1146
- if (boosterPack) {
1147
- return boosterPack.name;
1148
- }
1149
- }, "getVoidTraderItemName");
1150
-
1151
- // src/infrastructure/wfm/wfm-api.ts
1152
- var wfmApiV1Base = "https://api.warframe.market/v1/";
1153
- var wfmApiV2Base = "https://api.warframe.market/v2/";
1154
- var getWFMItemList = /* @__PURE__ */ __name(async () => {
1155
- const response = await fetchAsyncData(
1156
- `${wfmApiV2Base}items`
1157
- );
1158
- return response?.data;
1159
- }, "getWFMItemList");
1160
- var getWFMItemStatistics = /* @__PURE__ */ __name(async (itemId) => {
1161
- const response = await fetchAsyncData(
1162
- `${wfmApiV1Base}items/${itemId}/statistics`
1163
- );
1164
- return response?.payload;
1165
- }, "getWFMItemStatistics");
1166
- var getWFMOrderList = /* @__PURE__ */ __name(async (itemId) => {
1167
- const response = await fetchAsyncData(
1168
- `${wfmApiV2Base}orders/item/${itemId}`
1169
- );
1170
- return response?.data;
1171
- }, "getWFMOrderList");
1172
- var getWFMRivenItemList = /* @__PURE__ */ __name(async () => {
1173
- const response = await fetchAsyncData(
1174
- `${wfmApiV2Base}riven/weapons`
1175
- );
1176
- return response?.data;
1177
- }, "getWFMRivenItemList");
1178
- var getWFMRivenOrderList = /* @__PURE__ */ __name(async (itemId) => {
1179
- const response = await fetchAsyncData(
1180
- `${wfmApiV1Base}auctions/search?type=riven&sort_by=price_asc&weapon_url_name=${itemId}`
1181
- );
1182
- return response?.payload.auctions;
1183
- }, "getWFMRivenOrderList");
1184
- var getWFMRivenAttributeList = /* @__PURE__ */ __name(async () => {
1185
- const response = await fetchAsyncData(
1186
- `${wfmApiV2Base}riven/attributes`
1187
- );
1188
- return response?.data;
1189
- }, "getWFMRivenAttributeList");
1190
- var getWFMDucatnator = /* @__PURE__ */ __name(async () => {
1191
- const response = await fetchAsyncData(`${wfmApiV1Base}tools/ducats`);
1192
- if (!response || !response.payload) {
1193
- return void 0;
1194
- }
1195
- const day = response.payload.previous_day.map((e) => {
1196
- return e;
1197
- });
1198
- const hour = response.payload.previous_hour.map((e) => {
1199
- return e;
1200
- });
1201
- return {
1202
- day,
1203
- hour
1204
- };
1205
- }, "getWFMDucatnator");
1206
-
1207
- // src/data/wfm/globalItem.ts
1208
- var globalItemDataFactory = /* @__PURE__ */ __name(async (response) => {
1209
- response ??= await getWFMItemList();
1210
- if (!response) {
1211
- return {
1212
- globalItemList: [],
1213
- globalItemDict: {},
1214
- globalItemNameToSlugDict: {},
1215
- globalItemGameRefDict: {}
1216
- };
1217
- }
1218
- const data = response;
1219
- const globalItemList = response;
1220
- const globalItemDict = listToDict(
1221
- data,
1222
- (i) => [i.slug]
1223
- );
1224
- const globalItemNameToSlugDict = ((list) => {
1225
- const result = {};
1226
- for (const item of list) {
1227
- if (item.i18n["zh-hans"]?.name) {
1228
- result[normalizeName(item.i18n["zh-hans"].name)] = item.slug;
1229
- }
1230
- if (item.i18n["en"]?.name) {
1231
- result[normalizeName(item.i18n["en"].name)] = item.slug;
1232
- }
1233
- }
1234
- return result;
1235
- })(globalItemList);
1236
- const globalItemGameRefDict = listToDict(data, (i) => [i.gameRef]);
1237
- return {
1238
- globalItemList,
1239
- globalItemDict,
1240
- globalItemNameToSlugDict,
1241
- globalItemGameRefDict
1242
- };
1243
- }, "globalItemDataFactory");
1244
- var globalItemData = createAsyncCache(globalItemDataFactory, -1);
1245
-
1246
- // src/data/wfm/globalRivenItem.ts
1247
- var globalRivenItemData = createAsyncCache(async () => {
1248
- const rivenData = await getWFMRivenItemList();
1249
- if (!rivenData) {
1250
- throw new Error("Failed to fetch riven items from Warframe Market API.");
1251
- }
1252
- const data = rivenData;
1253
- const globalRivenItemList = data;
1254
- const globalRivenItemDict = listToDict(data, (i) => [i.slug]);
1255
- return {
1256
- globalRivenItemList,
1257
- globalRivenItemDict
1258
- };
1259
- }, -1);
1260
-
1261
- // src/data/wfm/globalRivenAttribute.ts
1262
- var globalRivenAttributeFactory = /* @__PURE__ */ __name(async (rivenAttributeData) => {
1263
- rivenAttributeData ??= await getWFMRivenAttributeList();
1264
- if (!rivenAttributeData) {
1265
- throw new Error(
1266
- "Failed to fetch riven attributes from Warframe Market API."
1267
- );
1268
- }
1269
- const data = rivenAttributeData;
1270
- const globalRivenAttributeList = data;
1271
- const globalRivenAttributeDict = listToDict(data, (a) => [
1272
- a.slug
1273
- ]);
1274
- return {
1275
- globalRivenAttributeList,
1276
- globalRivenAttributeDict
1277
- };
1278
- }, "globalRivenAttributeFactory");
1279
- var globalRivenAttribute = createAsyncCache(
1280
- globalRivenAttributeFactory,
1281
- -1
1282
- );
1283
-
1284
- // src/data/wfm/globalDucatnator.ts
1285
- var globalDucatnatorIDDict = createAsyncCache(async () => {
1286
- const data = await getWFMDucatnator();
1287
- if (!data) {
1288
- return void 0;
1289
- }
1290
- return listToDict(data.hour, (d) => [d.item]);
1291
- }, 36e5);
1579
+ // src/data/wfm/globalDucatnator.ts
1580
+ var globalDucatnatorIDDict = createAsyncCache(async () => {
1581
+ const data = await getWFMDucatnator();
1582
+ if (!data) {
1583
+ return void 0;
1584
+ }
1585
+ return listToDict(data.hour, (d) => [d.item]);
1586
+ }, 36e5);
1292
1587
 
1293
1588
  // src/assets/baro.ts
1294
1589
  var Baro = `
@@ -17309,12 +17604,9 @@ var getVoidTraderHistory = /* @__PURE__ */ __name(async (data) => {
17309
17604
  }
17310
17605
  __name(assignItemFields, "assignItemFields");
17311
17606
  if (!data) {
17312
- try {
17313
- data = await fetchAsyncText(
17314
- "https://docs.google.com/spreadsheets/d/1cdT7M2qbOhZ01AQT2RaH8_6VL1yww4BHkTRtLzqZ7_g/export?format=csv&gid=564427308"
17315
- );
17316
- } catch {
17317
- }
17607
+ data = await fetchAsyncText(
17608
+ "https://docs.google.com/spreadsheets/d/1cdT7M2qbOhZ01AQT2RaH8_6VL1yww4BHkTRtLzqZ7_g/export?format=csv&gid=564427308"
17609
+ );
17318
17610
  if (!data) {
17319
17611
  return parseBaroLuaTable(Baro);
17320
17612
  }
@@ -17500,7 +17792,7 @@ var getRivenOrders = /* @__PURE__ */ __name(async (input) => {
17500
17792
  return { item: targetItem, orders };
17501
17793
  }, "getRivenOrders");
17502
17794
  var applyRelicData = /* @__PURE__ */ __name(async (relic) => {
17503
- const tier = import_warframe_public_export_plus4.dict_zh[relic.tierKey] ?? relic.tier;
17795
+ const tier = import_warframe_public_export_plus.dict_zh[relic.tierKey] ?? relic.tier;
17504
17796
  const { globalItemGameRefDict } = await globalItemData.get();
17505
17797
  const wfmDict = await globalDucatnatorIDDict.get();
17506
17798
  const loadedItems = relic.items.map((element) => {
@@ -17728,7 +18020,7 @@ var compareRivenItemName = /* @__PURE__ */ __name((input, standard) => {
17728
18020
  }, "compareRivenItemName");
17729
18021
 
17730
18022
  // src/services/wf-service.ts
17731
- var import_warframe_public_export_plus8 = require("warframe-public-export-plus");
18023
+ var import_warframe_public_export_plus7 = require("warframe-public-export-plus");
17732
18024
 
17733
18025
  // src/assets/zh.json
17734
18026
  var zh_default = {
@@ -18334,13 +18626,182 @@ var warframes = [
18334
18626
  ]
18335
18627
  ];
18336
18628
 
18629
+ // src/infrastructure/ocr-api.ts
18630
+ var import_node_crypto = __toESM(require("node:crypto"));
18631
+ var ocrCache = new CacheStorage(100);
18632
+ var getImageBase64Hash = /* @__PURE__ */ __name((base64) => {
18633
+ const pureBase64 = base64.replace(/^data:image\/\w+;base64,/, "");
18634
+ return import_node_crypto.default.createHash("sha256").update(pureBase64, "base64").digest("hex");
18635
+ }, "getImageBase64Hash");
18636
+ var getTextFromTencentOCR = /* @__PURE__ */ __name(async (image, secret) => {
18637
+ const tencentcloud = require("tencentcloud-sdk-nodejs-ocr");
18638
+ const ocrClient = tencentcloud.ocr.v20181119.Client;
18639
+ const clientConfig = {
18640
+ credential: {
18641
+ secretId: secret.id,
18642
+ secretKey: secret.key
18643
+ },
18644
+ region: "",
18645
+ profile: {
18646
+ httpProfile: {
18647
+ endpoint: "ocr.tencentcloudapi.com"
18648
+ }
18649
+ }
18650
+ };
18651
+ const client = new ocrClient(clientConfig);
18652
+ const { TextDetections } = await client.GeneralAccurateOCR({
18653
+ ImageBase64: image
18654
+ });
18655
+ const result = TextDetections?.map((t) => t.DetectedText).filter(
18656
+ Boolean
18657
+ );
18658
+ return result;
18659
+ }, "getTextFromTencentOCR");
18660
+ var extractTextFromImage = /* @__PURE__ */ __name(async (image, secret) => {
18661
+ if (image instanceof Blob) {
18662
+ const buffer = await image.arrayBuffer();
18663
+ image = Buffer.from(buffer).toString("base64");
18664
+ }
18665
+ const imageHash = getImageBase64Hash(image);
18666
+ try {
18667
+ return await ocrCache.get(
18668
+ imageHash,
18669
+ () => getTextFromTencentOCR(image, secret)
18670
+ );
18671
+ } catch (err) {
18672
+ logger.error("OCR request error:", err);
18673
+ return void 0;
18674
+ }
18675
+ }, "extractTextFromImage");
18676
+
18677
+ // src/infrastructure/wf/wf-export-adapter.ts
18678
+ var import_warframe_public_export_plus2 = require("warframe-public-export-plus");
18679
+ var regionToShort = /* @__PURE__ */ __name((region, dict) => {
18680
+ let faction;
18681
+ if (region.faction) {
18682
+ const name2 = import_warframe_public_export_plus2.ExportFactions[region.faction].name;
18683
+ if (name2) {
18684
+ faction = dict[name2];
18685
+ }
18686
+ }
18687
+ if (!faction) {
18688
+ faction = region.faction;
18689
+ }
18690
+ return {
18691
+ name: dict[region.name],
18692
+ system: dict[region.systemName],
18693
+ type: dict[region.missionName],
18694
+ faction,
18695
+ maxLevel: region.maxEnemyLevel,
18696
+ minLevel: region.minEnemyLevel
18697
+ };
18698
+ }, "regionToShort");
18699
+ var relicEraToTransKey = /* @__PURE__ */ __name((era) => {
18700
+ const prefix = "/Lotus/Language/Relics/Era_";
18701
+ return prefix + era.toUpperCase();
18702
+ }, "relicEraToTransKey");
18703
+ var fixRelicRewardKey = /* @__PURE__ */ __name((item) => {
18704
+ return item.replace("StoreItems/", "");
18705
+ }, "fixRelicRewardKey");
18706
+
18707
+ // src/infrastructure/wf/wfcd-adapter.ts
18708
+ var import_warframe_public_export_plus3 = require("warframe-public-export-plus");
18709
+ var relicToFullNameZH = /* @__PURE__ */ __name((tier, category) => {
18710
+ return `${import_warframe_public_export_plus3.dict_zh[relicEraToTransKey(tier)] ?? toPascalCase(tier)} ${category} 遗物`;
18711
+ }, "relicToFullNameZH");
18712
+ var solNodesEnDict;
18713
+ var getSolNodeKey = /* @__PURE__ */ __name(async (name2) => {
18714
+ const worldstateData = await import("warframe-worldstate-data");
18715
+ if (!solNodesEnDict) {
18716
+ solNodesEnDict = dictToKeyDict(worldstateData.default.solNodes, (n) => [
18717
+ n.value
18718
+ ]);
18719
+ }
18720
+ return solNodesEnDict[name2];
18721
+ }, "getSolNodeKey");
18722
+ var missionTypeEnDict;
18723
+ var getMissionTypeKey = /* @__PURE__ */ __name(async (name2) => {
18724
+ const worldstateData = await import("warframe-worldstate-data");
18725
+ if (!missionTypeEnDict) {
18726
+ missionTypeEnDict = dictToKeyDict(
18727
+ worldstateData.default.missionTypes,
18728
+ (n) => [n.value]
18729
+ );
18730
+ }
18731
+ if (name2 === "Disruption") return "MT_ARTIFACT";
18732
+ return missionTypeEnDict[name2];
18733
+ }, "getMissionTypeKey");
18734
+ var fissureTierName = {
18735
+ 1: "/Lotus/Language/Relics/Era_LITH",
18736
+ 2: "/Lotus/Language/Relics/Era_MESO",
18737
+ 3: "/Lotus/Language/Relics/Era_NEO",
18738
+ 4: "/Lotus/Language/Relics/Era_AXI",
18739
+ 5: "/Lotus/Language/Relics/Era_REQUIEM",
18740
+ 6: "/Lotus/Language/Relics/Era_OMNI",
18741
+ 7: "/Lotus/Language/Relics/Era_VANGUARD"
18742
+ };
18743
+ var fissureTierNumToNumber = /* @__PURE__ */ __name((a) => {
18744
+ return typeof a === "string" ? Number(a.charAt(5)) : a;
18745
+ }, "fissureTierNumToNumber");
18746
+ var getVoidTraderItem = /* @__PURE__ */ __name((i) => {
18747
+ const itemNameKey = getVoidTraderItemName(i.uniqueName);
18748
+ const itemName = !itemNameKey ? i.item : typeof itemNameKey === "string" ? import_warframe_public_export_plus3.dict_zh[itemNameKey] ?? (itemNameKey.includes("/") ? i.item : itemNameKey) : relicToFullNameZH(itemNameKey.era, itemNameKey.category);
18749
+ return { name: itemName, ducats: i.ducats, credits: i.credits };
18750
+ }, "getVoidTraderItem");
18751
+ var getVoidTraderItemName = /* @__PURE__ */ __name((sourceKey) => {
18752
+ const fixedKey = sourceKey.replace("/StoreItems", "");
18753
+ const flavour = import_warframe_public_export_plus3.ExportFlavour[fixedKey];
18754
+ if (flavour) {
18755
+ return flavour.name;
18756
+ }
18757
+ const weapon = import_warframe_public_export_plus3.ExportWeapons[fixedKey];
18758
+ if (weapon) {
18759
+ return weapon.name;
18760
+ }
18761
+ const mod = import_warframe_public_export_plus3.ExportUpgrades[fixedKey];
18762
+ if (mod) {
18763
+ return mod.name;
18764
+ }
18765
+ const relic = import_warframe_public_export_plus3.ExportRelics[fixedKey];
18766
+ if (relic) {
18767
+ return { era: relic.era, category: relic.category };
18768
+ }
18769
+ const skin = import_warframe_public_export_plus3.ExportCustoms[fixedKey];
18770
+ if (skin) {
18771
+ return skin.name;
18772
+ }
18773
+ const recipe = import_warframe_public_export_plus3.ExportRecipes[fixedKey];
18774
+ if (recipe) {
18775
+ const recipeResult = import_warframe_public_export_plus3.ExportKeys[recipe.resultType];
18776
+ if (recipeResult) {
18777
+ return recipeResult.name;
18778
+ }
18779
+ }
18780
+ const virtual = import_warframe_public_export_plus3.ExportVirtuals[fixedKey];
18781
+ if (virtual) {
18782
+ return virtual.name;
18783
+ }
18784
+ const resource = import_warframe_public_export_plus3.ExportResources[fixedKey];
18785
+ if (resource) {
18786
+ return resource.name;
18787
+ }
18788
+ const booster = import_warframe_public_export_plus3.ExportBundles[sourceKey];
18789
+ if (booster) {
18790
+ return booster.name;
18791
+ }
18792
+ const boosterPack = import_warframe_public_export_plus3.ExportBoosterPacks[fixedKey];
18793
+ if (boosterPack) {
18794
+ return boosterPack.name;
18795
+ }
18796
+ }, "getVoidTraderItemName");
18797
+
18337
18798
  // src/data/wf/relics.ts
18338
- var import_warframe_public_export_plus5 = require("warframe-public-export-plus");
18799
+ var import_warframe_public_export_plus4 = require("warframe-public-export-plus");
18339
18800
  var relics = (() => {
18340
18801
  const result = {};
18341
- for (const key in import_warframe_public_export_plus5.ExportRelics) {
18342
- const exportRelic = import_warframe_public_export_plus5.ExportRelics[key];
18343
- const exportRewards = import_warframe_public_export_plus5.ExportRewards[exportRelic.rewardManifest];
18802
+ for (const key in import_warframe_public_export_plus4.ExportRelics) {
18803
+ const exportRelic = import_warframe_public_export_plus4.ExportRelics[key];
18804
+ const exportRewards = import_warframe_public_export_plus4.ExportRewards[exportRelic.rewardManifest];
18344
18805
  const era = "/Lotus/Language/Relics/Era_" + exportRelic.era.toUpperCase();
18345
18806
  const relicKey = normalizeName(exportRelic.era + exportRelic.category);
18346
18807
  const rewards = (exportRewards[0] ?? []).map((r) => {
@@ -18363,7 +18824,7 @@ var relics = (() => {
18363
18824
  })();
18364
18825
 
18365
18826
  // src/data/wf/globalWorldState.ts
18366
- var import_warframe_public_export_plus6 = require("warframe-public-export-plus");
18827
+ var import_warframe_public_export_plus5 = require("warframe-public-export-plus");
18367
18828
  var globalWorldState = createAsyncCache(async () => {
18368
18829
  const worldState = await getWorldState();
18369
18830
  const fissures = [];
@@ -18371,13 +18832,13 @@ var globalWorldState = createAsyncCache(async () => {
18371
18832
  const spFissures = [];
18372
18833
  for (const fissure of worldState.fissures) {
18373
18834
  const nodeKey = await getSolNodeKey(fissure.nodeKey);
18374
- const tierName = fissure.tierNum in fissureTierName ? import_warframe_public_export_plus6.dict_zh[fissureTierName[fissure.tierNum]] : fissure.tierNum;
18835
+ const tierName = fissure.tierNum in fissureTierName ? import_warframe_public_export_plus5.dict_zh[fissureTierName[fissure.tierNum]] : fissure.tierNum;
18375
18836
  const obj = {
18376
18837
  category: fissure.isStorm ? "rj-fissures" : fissure.isHard ? "sp-fissures" : "fissures",
18377
18838
  hard: fissure.isHard,
18378
18839
  activation: fissure.activation?.getTime(),
18379
18840
  expiry: fissure.expiry?.getTime(),
18380
- node: regionToShort(import_warframe_public_export_plus6.ExportRegions[nodeKey], import_warframe_public_export_plus6.dict_zh),
18841
+ node: regionToShort(import_warframe_public_export_plus5.ExportRegions[nodeKey], import_warframe_public_export_plus5.dict_zh),
18381
18842
  tier: tierName,
18382
18843
  tierNum: fissureTierNumToNumber(fissure.tierNum)
18383
18844
  };
@@ -62610,7 +63071,7 @@ var rivenAttrValueDict = (() => {
62610
63071
  })();
62611
63072
 
62612
63073
  // src/data/wf/rivenDisposition.ts
62613
- var import_warframe_public_export_plus7 = require("warframe-public-export-plus");
63074
+ var import_warframe_public_export_plus6 = require("warframe-public-export-plus");
62614
63075
 
62615
63076
  // src/assets/rivencalc.json
62616
63077
  var rivencalc_default = {
@@ -66306,597 +66767,1262 @@ var rivencalc_default = {
66306
66767
  curse: false,
66307
66768
  buff: true
66308
66769
  }
66309
- ]
66310
- };
66311
-
66312
- // src/data/wf/rivenDisposition.ts
66313
- var weaponRivenDispositionDict = (() => {
66314
- const mapped = rivencalc_default.weapons.reduce(
66315
- (prev, element) => {
66316
- let mapped2 = void 0;
66317
- for (const weaponKey in import_warframe_public_export_plus7.ExportWeapons) {
66318
- const weapon = import_warframe_public_export_plus7.ExportWeapons[weaponKey];
66319
- const splited = weapon.name.split("/");
66320
- if (splited.length <= 0) {
66321
- continue;
66322
- }
66323
- const keyName = splited[splited.length - 1];
66324
- const normalizedCalcName = normalizeName(element.name);
66325
- if (normalizeName(keyName) === normalizedCalcName) {
66326
- mapped2 = weapon;
66327
- break;
66328
- }
66329
- const weaponEN2 = import_warframe_public_export_plus7.dict_en[weapon.name];
66330
- if (weaponEN2 && normalizeName(weaponEN2) === normalizedCalcName) {
66331
- mapped2 = weapon;
66332
- break;
66333
- }
66770
+ ]
66771
+ };
66772
+
66773
+ // src/data/wf/rivenDisposition.ts
66774
+ var weaponRivenDispositionDict = (() => {
66775
+ const mapped = rivencalc_default.weapons.reduce(
66776
+ (prev, element) => {
66777
+ let mapped2 = void 0;
66778
+ for (const weaponKey in import_warframe_public_export_plus6.ExportWeapons) {
66779
+ const weapon = import_warframe_public_export_plus6.ExportWeapons[weaponKey];
66780
+ const splited = weapon.name.split("/");
66781
+ if (splited.length <= 0) {
66782
+ continue;
66783
+ }
66784
+ const keyName = splited[splited.length - 1];
66785
+ const normalizedCalcName = normalizeName(element.name);
66786
+ if (normalizeName(keyName) === normalizedCalcName) {
66787
+ mapped2 = weapon;
66788
+ break;
66789
+ }
66790
+ const weaponEN2 = import_warframe_public_export_plus6.dict_en[weapon.name];
66791
+ if (weaponEN2 && normalizeName(weaponEN2) === normalizedCalcName) {
66792
+ mapped2 = weapon;
66793
+ break;
66794
+ }
66795
+ }
66796
+ if (!mapped2) {
66797
+ return prev;
66798
+ }
66799
+ const weaponEN = import_warframe_public_export_plus6.dict_en[mapped2.name];
66800
+ const weaponZH = import_warframe_public_export_plus6.dict_zh[mapped2.name];
66801
+ const result = {
66802
+ name: {
66803
+ en: weaponEN,
66804
+ zh: weaponZH
66805
+ },
66806
+ calc: element,
66807
+ weapon: mapped2
66808
+ };
66809
+ prev.push(result);
66810
+ return prev;
66811
+ },
66812
+ []
66813
+ );
66814
+ return listToDict(mapped, (e) => [
66815
+ normalizeName(e.name.zh),
66816
+ normalizeName(e.name.en)
66817
+ ]);
66818
+ })();
66819
+
66820
+ // src/data/wf/rivenStatData.ts
66821
+ var rivenStatFixFactor = {
66822
+ "2": { buffFactor: 0.99, buffCount: 2, curseFactor: 0, curseCount: 0 },
66823
+ "21": {
66824
+ buffFactor: 1.2375,
66825
+ buffCount: 2,
66826
+ curseFactor: -0.495,
66827
+ curseCount: 1
66828
+ },
66829
+ "3": {
66830
+ buffFactor: 0.75,
66831
+ buffCount: 3,
66832
+ curseFactor: 0,
66833
+ curseCount: 0
66834
+ },
66835
+ "31": {
66836
+ buffFactor: 0.9375,
66837
+ buffCount: 3,
66838
+ curseFactor: -0.75,
66839
+ curseCount: 1
66840
+ }
66841
+ };
66842
+
66843
+ // src/services/wf-service.ts
66844
+ var getRelic = /* @__PURE__ */ __name(async (input) => {
66845
+ if (!input) {
66846
+ return "请提供正确的遗物名称";
66847
+ }
66848
+ input = normalizeName(input);
66849
+ if (!input) {
66850
+ return "请提供正确的遗物名称";
66851
+ }
66852
+ if (!relics) {
66853
+ return "遗物数据未加载完成,请稍后再试";
66854
+ }
66855
+ const tierListForMatch = [
66856
+ "古纪",
66857
+ "前纪",
66858
+ "中纪",
66859
+ "后纪",
66860
+ "安魂",
66861
+ "先锋",
66862
+ "Lith",
66863
+ "Meso",
66864
+ "Neo",
66865
+ "Axi",
66866
+ "Requiem",
66867
+ "Vanguard"
66868
+ ].map((t) => normalizeName(t));
66869
+ const tier = tierListForMatch.find((t) => input.startsWith(t));
66870
+ if (!tier) {
66871
+ return "请提供正确的遗物名称";
66872
+ }
66873
+ const category = input.replace(new RegExp(`^${tier}`), "").replace(/遗物$|relic$/, "");
66874
+ const zhTierMap = {
66875
+ 古纪: "Lith",
66876
+ 前纪: "Meso",
66877
+ 中纪: "Neo",
66878
+ 后纪: "Axi",
66879
+ 安魂: "Requiem",
66880
+ 先锋: "Vanguard"
66881
+ };
66882
+ const enTier = zhTierMap[tier] ?? tier;
66883
+ const key = normalizeName(enTier + category);
66884
+ return relics[key] ?? "未找到对应遗物信息";
66885
+ }, "getRelic");
66886
+ var getArbitrations = /* @__PURE__ */ __name((day = 3) => {
66887
+ if (day > 14 || day <= 0) {
66888
+ return "天数需小于等于14且大于0";
66889
+ }
66890
+ const currentHourTimeStamp = Math.floor(
66891
+ (/* @__PURE__ */ new Date()).setMinutes(0, 0, 0) / 1e3
66892
+ );
66893
+ const currentHourIndex = arbitrationSchedule.findIndex(
66894
+ (a) => a.time === currentHourTimeStamp
66895
+ );
66896
+ const weekArbys = arbitrationSchedule.slice(
66897
+ currentHourIndex,
66898
+ currentHourIndex + 24 * day
66899
+ );
66900
+ return weekArbys.filter((a) => arbyRewards_default[a.node]).map((a) => {
66901
+ const obj = regionToShort(import_warframe_public_export_plus7.ExportRegions[a.node], import_warframe_public_export_plus7.dict_zh);
66902
+ return {
66903
+ ...obj,
66904
+ time: new Date(a.time * 1e3).toLocaleString("zh-cn", {
66905
+ year: "numeric",
66906
+ month: "numeric",
66907
+ day: "numeric",
66908
+ hour: "numeric",
66909
+ // minute: 'numeric', // 保持注释或删除,以去除分钟
66910
+ // second: 'numeric', // 保持注释或删除,以去除秒
66911
+ hour12: false,
66912
+ // 统一使用 24 小时制
66913
+ // hourCycle: 'h23' // 另一种设置 24 小时制的方法
66914
+ timeZone: "Asia/Shanghai"
66915
+ }),
66916
+ rewards: arbyRewards_default[a.node]
66917
+ };
66918
+ });
66919
+ }, "getArbitrations");
66920
+ var getWeekly = /* @__PURE__ */ __name(async () => {
66921
+ const { raw: worldState } = await globalWorldState.get();
66922
+ if (!worldState) {
66923
+ return "内部错误,获取最新信息失败";
66924
+ }
66925
+ const archon = {
66926
+ name: import_warframe_public_export_plus7.dict_zh["/Lotus/Language/Narmer/" + removeSpace(worldState.archonHunt.boss)]
66927
+ };
66928
+ const stringToDebuff = /* @__PURE__ */ __name((key, name2, prefix) => {
66929
+ const keyToName = zh_default[`${prefix}${key}`];
66930
+ if (!keyToName) {
66931
+ for (const transKey in en_default) {
66932
+ if (en_default[transKey] === name2) {
66933
+ return {
66934
+ name: zh_default[transKey],
66935
+ desc: zh_default[transKey + "_Desc"]
66936
+ };
66937
+ }
66938
+ }
66939
+ }
66940
+ const riskDesc = zh_default[`${prefix}${key}_Desc`];
66941
+ return {
66942
+ name: keyToName,
66943
+ desc: riskDesc
66944
+ };
66945
+ }, "stringToDebuff");
66946
+ const deepArchim = worldState.archimedeas[0];
66947
+ const deepArchimMissions = await Promise.all(
66948
+ deepArchim.missions.map(async (m) => {
66949
+ const receivedType = await getMissionTypeKey(m.missionType);
66950
+ const type = import_warframe_public_export_plus7.dict_zh[import_warframe_public_export_plus7.ExportMissionTypes[receivedType]?.name ?? ""] ?? m.missionType;
66951
+ const deviation = stringToDebuff(
66952
+ m.deviation.key,
66953
+ m.deviation.name,
66954
+ "/Lotus/Language/Conquest/MissionVariant_LabConquest_"
66955
+ );
66956
+ const risks = m.risks.map(
66957
+ (r) => stringToDebuff(r.key, r.name, "/Lotus/Language/Conquest/Condition_")
66958
+ );
66959
+ return {
66960
+ type,
66961
+ deviation,
66962
+ risks
66963
+ };
66964
+ })
66965
+ );
66966
+ const deepArchimPersonalModifier = deepArchim.personalModifiers.map(
66967
+ (p) => stringToDebuff(p.key, p.name, "/Lotus/Language/Conquest/PersonalMod_")
66968
+ );
66969
+ const deepArchimRes = {
66970
+ name: "深层科研",
66971
+ missions: deepArchimMissions,
66972
+ peronal: deepArchimPersonalModifier
66973
+ };
66974
+ const temporalArchim = worldState.archimedeas[1];
66975
+ const temporalArchimMissions = await Promise.all(
66976
+ temporalArchim.missions.map(async (m) => {
66977
+ const receivedType = await getMissionTypeKey(m.missionType);
66978
+ const type = import_warframe_public_export_plus7.dict_zh[import_warframe_public_export_plus7.ExportMissionTypes[receivedType]?.name ?? ""] ?? receivedType;
66979
+ const deviation = stringToDebuff(
66980
+ m.deviation.key,
66981
+ m.deviation.name,
66982
+ "/Lotus/Language/Conquest/MissionVariant_HexConquest_"
66983
+ );
66984
+ const risks = m.risks.map(
66985
+ (r) => stringToDebuff(r.key, r.name, "/Lotus/Language/Conquest/Condition_")
66986
+ );
66987
+ return {
66988
+ type,
66989
+ deviation,
66990
+ risks
66991
+ };
66992
+ })
66993
+ );
66994
+ const temporalArchimPersonalModifier = temporalArchim.personalModifiers.map(
66995
+ (p) => stringToDebuff(p.key, p.name, "/Lotus/Language/Conquest/PersonalMod_")
66996
+ );
66997
+ const temporalArchimRes = {
66998
+ name: "时光科研",
66999
+ missions: temporalArchimMissions,
67000
+ peronal: temporalArchimPersonalModifier
67001
+ };
67002
+ return {
67003
+ archonHunt: archon,
67004
+ deepArchimedea: deepArchimRes,
67005
+ temporalArchimedea: temporalArchimRes
67006
+ };
67007
+ }, "getWeekly");
67008
+ var getEnvironment = /* @__PURE__ */ __name(async () => {
67009
+ const { raw: worldState } = await globalWorldState.get();
67010
+ if (!worldState) {
67011
+ return "内部错误,获取最新信息失败";
67012
+ }
67013
+ const cetusDay = worldState.cetusCycle.isDay ? "白天" : "黑夜";
67014
+ const cetus = `地球/夜灵平野: ${cetusDay} ${worldState.cetusCycle.timeLeft}`;
67015
+ const vallisState = worldState.vallisCycle.isWarm ? "温暖" : "寒冷";
67016
+ const vallis = `奥布山谷: ${vallisState} ${worldState.vallisCycle.timeLeft}`;
67017
+ const cambionState = worldState.cambionCycle.state ? worldState.cambionCycle.state.charAt(0).toUpperCase() + worldState.cambionCycle.state.slice(1) : "未知";
67018
+ const cambion = `魔胎之境: ${cambionState} ${worldState.cambionCycle.timeLeft}`;
67019
+ const duviriStateTransDict = {
67020
+ sorrow: "悲伤",
67021
+ fear: "恐惧",
67022
+ joy: "喜悦",
67023
+ anger: "愤怒",
67024
+ envy: "嫉妒"
67025
+ };
67026
+ const duviriState = duviriStateTransDict[worldState.duviriCycle.state] ?? worldState.duviriCycle.state;
67027
+ const duviri = `双衍王境: ${duviriState} ${worldState.duviriCycle.endString}`;
67028
+ const zarimanFaction = worldState.zarimanCycle.isCorpus ? "Corpus" : "Grineer";
67029
+ const zariman = `扎里曼号: ${zarimanFaction} ${worldState.zarimanCycle.timeLeft}`;
67030
+ return `当前环境:
67031
+ ${cetus}
67032
+ ${vallis}
67033
+ ${cambion}
67034
+ ${duviri}
67035
+ ${zariman}`;
67036
+ }, "getEnvironment");
67037
+ var getCircuitWeek = /* @__PURE__ */ __name(() => {
67038
+ const EPOCH = 1734307200 * 1e3;
67039
+ const week = Math.trunc((Date.now() - EPOCH) / 6048e5);
67040
+ const index1 = (week + 1) % incarnons.length;
67041
+ const index2 = (week + 8) % warframes.length;
67042
+ const incarnons2 = incarnons.map((v) => v.map((i) => import_warframe_public_export_plus7.dict_zh[i]));
67043
+ const warframes2 = warframes.map((v) => v.map((i) => import_warframe_public_export_plus7.dict_zh[i]));
67044
+ return {
67045
+ currentIncarnons: index1,
67046
+ currentWarframes: index2,
67047
+ allIncarnons: incarnons2,
67048
+ allWarframes: warframes2
67049
+ };
67050
+ }, "getCircuitWeek");
67051
+ var getFissures = /* @__PURE__ */ __name(async () => {
67052
+ const { fissures } = await globalWorldState.get();
67053
+ return fissures ?? "内部错误,获取最新信息失败";
67054
+ }, "getFissures");
67055
+ var getSteelPathFissures = /* @__PURE__ */ __name(async () => {
67056
+ const { spFissures } = await globalWorldState.get();
67057
+ return spFissures ?? "内部错误,获取最新信息失败";
67058
+ }, "getSteelPathFissures");
67059
+ var getRailjackFissures = /* @__PURE__ */ __name(async () => {
67060
+ const { rjFissures } = await globalWorldState.get();
67061
+ return rjFissures ?? "内部错误,获取最新信息失败";
67062
+ }, "getRailjackFissures");
67063
+ var getAnalyzedRiven = /* @__PURE__ */ __name(async (secret, url) => {
67064
+ const img = await fetchAsyncImage(url);
67065
+ if (!img) {
67066
+ return "获取图片失败";
67067
+ }
67068
+ const extractResult = await extractTextFromImage(img, secret);
67069
+ if (!extractResult) {
67070
+ return "解析图片失败";
67071
+ }
67072
+ const parseResult = await parseOCRResult(extractResult);
67073
+ if (!parseResult || parseResult.attributes.length < 2 || parseResult.attributes.length > 4) {
67074
+ return "解析图片失败";
67075
+ }
67076
+ return analyzeRivenStat(parseResult);
67077
+ }, "getAnalyzedRiven");
67078
+ var getVoidTrader = /* @__PURE__ */ __name(async () => {
67079
+ const { raw: worldState } = await globalWorldState.get();
67080
+ if (worldState.voidTraders.length === 0) {
67081
+ return "虚空商人仍在未知地带漂流...";
67082
+ }
67083
+ const trader = worldState.voidTraders[0];
67084
+ if (trader && trader.activation && trader.activation.getTime() > Date.now()) {
67085
+ const diff2 = trader.activation.getTime() - Date.now();
67086
+ return "距离虚空商人到达还有: " + msToHumanReadable(diff2);
67087
+ }
67088
+ const diff = trader.expiry.getTime() - Date.now();
67089
+ const items = trader.inventory.map(getVoidTraderItem);
67090
+ return { expiry: msToHumanReadable(diff), items };
67091
+ }, "getVoidTrader");
67092
+ var getStaticRivenStats = /* @__PURE__ */ __name(async (weaponType, statType, disposition) => {
67093
+ if (disposition > 1.55 || disposition < 0.5) {
67094
+ return "裂罅倾向错误";
67095
+ }
67096
+ const weaponTypes = [
67097
+ "步枪",
67098
+ "手枪",
67099
+ "霰弹枪",
67100
+ "Archwing枪械",
67101
+ "近战",
67102
+ "Rifle",
67103
+ "Shotgun",
67104
+ "Pistol",
67105
+ "Archgun",
67106
+ "Melee"
67107
+ ];
67108
+ const matchedWeaponType = weaponTypes.find(
67109
+ (v) => normalizeName(v).startsWith(normalizeName(weaponType))
67110
+ );
67111
+ if (!matchedWeaponType) {
67112
+ return "武器类型错误";
67113
+ }
67114
+ const weaponTypeKeys = {
67115
+ 步枪: "Rifle",
67116
+ 手枪: "Pistol",
67117
+ 霰弹枪: "Shotgun",
67118
+ 近战: "Melee",
67119
+ Archwing枪械: "Archgun"
67120
+ };
67121
+ const weaponTypeKey = weaponTypeKeys[matchedWeaponType] ?? matchedWeaponType;
67122
+ const statTypes = ["2", "3", "21", "31"];
67123
+ if (!statTypes.includes(statType)) {
67124
+ return "词条类型错误";
67125
+ }
67126
+ const rivenAttrValues = rivenAttrValueDict[weaponTypeKey];
67127
+ const factor = rivenStatFixFactor[statType];
67128
+ const result = {
67129
+ positive: {},
67130
+ negative: factor.curseCount > 0 ? {} : void 0
67131
+ };
67132
+ const { globalRivenAttributeList } = await globalRivenAttribute.get();
67133
+ for (const key in rivenAttrValues) {
67134
+ const data = globalRivenAttributeList.find(
67135
+ (v) => normalizeName(v.i18n["en"].name) == key
67136
+ );
67137
+ const baseValue = rivenAttrValues[key];
67138
+ const buffValue = baseValue * disposition * factor.buffFactor;
67139
+ result.positive[key] = {
67140
+ name: data?.i18n["zh-hans"].name ?? key,
67141
+ max: buffValue * 1.1,
67142
+ min: buffValue * 0.9,
67143
+ unit: data?.unit ?? ""
67144
+ };
67145
+ if (result.negative) {
67146
+ const curseValue = baseValue * disposition * factor.curseFactor;
67147
+ result.negative[key] = {
67148
+ name: data?.i18n["zh-hans"].name ?? key,
67149
+ max: curseValue * 0.9,
67150
+ min: curseValue * 1.1,
67151
+ unit: data?.unit ?? ""
67152
+ };
67153
+ }
67154
+ }
67155
+ return result;
67156
+ }, "getStaticRivenStats");
67157
+ var getWeaponRivenDisposition = /* @__PURE__ */ __name((name2) => {
67158
+ const normalizedName = normalizeName(name2);
67159
+ const normalRes = weaponRivenDispositionDict[normalizedName];
67160
+ if (normalRes) {
67161
+ return normalRes;
67162
+ }
67163
+ const withPrimeSuffix = normalizedName + "prime";
67164
+ const withPrimeRes = weaponRivenDispositionDict[withPrimeSuffix];
67165
+ if (withPrimeRes) {
67166
+ return withPrimeRes;
67167
+ }
67168
+ return void 0;
67169
+ }, "getWeaponRivenDisposition");
67170
+ var parseOCRResult = /* @__PURE__ */ __name(async (ocrResult) => {
67171
+ const { globalRivenAttributeList } = await globalRivenAttribute.get();
67172
+ const list = ocrResult;
67173
+ if (!list.length) {
67174
+ return;
67175
+ }
67176
+ function similarity(standard, input) {
67177
+ if (!standard || !input) {
67178
+ return 0;
67179
+ }
67180
+ standard = normalizeName(standard);
67181
+ input = normalizeName(input);
67182
+ if (input === "伤害") {
67183
+ return standard === "基础伤害" ? 1 : 0;
67184
+ }
67185
+ if (input === "弹药最大值") {
67186
+ return standard === "弹药上限" ? 1 : 0;
67187
+ }
67188
+ if (standard === "基础伤害" && input.match(/^伤害$|近战伤害/)) {
67189
+ return 1;
67190
+ }
67191
+ if (standard === "暴击率") {
67192
+ standard = "暴击几率";
67193
+ }
67194
+ if (standard.includes(input) || input.includes(standard) || standard.split("/").find((x) => !!x && input.includes(x))) {
67195
+ return 1;
67196
+ }
67197
+ const t = tokenSimilarity(standard, input);
67198
+ const s = normalSimilarity(standard, input);
67199
+ return Math.max(t, s);
67200
+ }
67201
+ __name(similarity, "similarity");
67202
+ const texts = list;
67203
+ const attributes = [];
67204
+ const statLines = [];
67205
+ for (const t of texts) {
67206
+ if (!t || !t.match(/^[x+-]|^[0-9]/)) {
67207
+ continue;
67208
+ }
67209
+ const prefix = t.match(/^[x+-]/) ? t[0] : "";
67210
+ const attrNamePart = removeSpace(t ?? "").replace(/^[^一-龥]+/, "");
67211
+ const attr = globalRivenAttributeList.find((a) => {
67212
+ if (!a) return false;
67213
+ let zhName = a.i18n["zh-hans"]?.name;
67214
+ if (!zhName) return false;
67215
+ const sim = similarity(zhName, attrNamePart);
67216
+ if (sim < 0.8) return false;
67217
+ return true;
67218
+ });
67219
+ if (!attr) {
67220
+ continue;
67221
+ }
67222
+ statLines.push(t);
67223
+ const value = (/* @__PURE__ */ __name((function extractStatValue(text) {
67224
+ const t2 = text.replace(/\s+/g, "");
67225
+ const multMatch = t2.match(/x(\d+(\.\d+)?)/i);
67226
+ if (multMatch) {
67227
+ return {
67228
+ value: parseFloat(multMatch[1]),
67229
+ type: "multiply"
67230
+ };
66334
67231
  }
66335
- if (!mapped2) {
66336
- return prev;
67232
+ const percentMatch = t2.match(/([+-]?\d+(\.\d+)?)%/);
67233
+ if (percentMatch) {
67234
+ return {
67235
+ value: parseFloat(percentMatch[1]),
67236
+ type: "percent"
67237
+ };
66337
67238
  }
66338
- const weaponEN = import_warframe_public_export_plus7.dict_en[mapped2.name];
66339
- const weaponZH = import_warframe_public_export_plus7.dict_zh[mapped2.name];
66340
- const result = {
66341
- name: {
66342
- en: weaponEN,
66343
- zh: weaponZH
66344
- },
66345
- calc: element,
66346
- weapon: mapped2
66347
- };
66348
- prev.push(result);
66349
- return prev;
66350
- },
66351
- []
66352
- );
66353
- return listToDict(mapped, (e) => [
66354
- normalizeName(e.name.zh),
66355
- normalizeName(e.name.en)
66356
- ]);
66357
- })();
66358
-
66359
- // src/data/wf/rivenStatData.ts
66360
- var rivenStatFixFactor = {
66361
- "2": { buffFactor: 0.99, buffCount: 2, curseFactor: 0, curseCount: 0 },
66362
- "21": {
66363
- buffFactor: 1.2375,
66364
- buffCount: 2,
66365
- curseFactor: -0.495,
66366
- curseCount: 1
66367
- },
66368
- "3": {
66369
- buffFactor: 0.75,
66370
- buffCount: 3,
66371
- curseFactor: 0,
66372
- curseCount: 0
66373
- },
66374
- "31": {
66375
- buffFactor: 0.9375,
66376
- buffCount: 3,
66377
- curseFactor: -0.75,
66378
- curseCount: 1
67239
+ const numMatch = t2.match(/([+-]?\d+(\.\d+)?)/);
67240
+ if (numMatch) {
67241
+ return {
67242
+ value: parseFloat(numMatch[1]),
67243
+ type: "number"
67244
+ };
67245
+ }
67246
+ return void 0;
67247
+ }), "extractStatValue"))(t);
67248
+ if (!value) {
67249
+ return void 0;
67250
+ }
67251
+ attributes.push({ attr, value: value.value, prefix });
66379
67252
  }
66380
- };
66381
-
66382
- // src/services/wf-service.ts
66383
- var getRelic = /* @__PURE__ */ __name(async (input) => {
66384
- if (!input) {
66385
- return "请提供正确的遗物名称";
67253
+ const weaponName = (/* @__PURE__ */ __name((function extractWeaponName(ocrData) {
67254
+ const rejectPatterns = [
67255
+ /%/,
67256
+ /x\d/i,
67257
+ /\d/,
67258
+ // numbers, %, multipliers
67259
+ /伤害/,
67260
+ /暴击/,
67261
+ /射速/,
67262
+ /攻击/,
67263
+ /后坐力/,
67264
+ /段位/,
67265
+ /加倍/,
67266
+ /效/,
67267
+ /武器/,
67268
+ /果/,
67269
+ /\)/,
67270
+ /\(/
67271
+ // junk OCR fragments
67272
+ ];
67273
+ const candidates = ocrData.filter((str) => {
67274
+ const s = str.trim();
67275
+ if (/^\d+$/.test(s)) return false;
67276
+ if (/[+%]/.test(s)) return false;
67277
+ if (!/[A-Za-z\u4e00-\u9fa5]/.test(s)) return false;
67278
+ if (rejectPatterns.some((p) => p.test(s))) return false;
67279
+ return true;
67280
+ });
67281
+ const merged = candidates.join("");
67282
+ function removeRivenSuffix(name2) {
67283
+ let s = name2.replace(/\s+/g, "");
67284
+ const rivenPattern = /[A-Za-z]+-?[A-Za-z]+$/;
67285
+ return s.replace(rivenPattern, "");
67286
+ }
67287
+ __name(removeRivenSuffix, "removeRivenSuffix");
67288
+ return merged ? removeRivenSuffix(merged) : null;
67289
+ }), "extractWeaponName"))(texts.filter((t) => !statLines.some((l) => l === t)));
67290
+ if (!weaponName || !attributes.length) {
67291
+ return void 0;
66386
67292
  }
66387
- input = normalizeName(input);
66388
- if (!input) {
66389
- return "请提供正确的遗物名称";
67293
+ return {
67294
+ name: weaponName,
67295
+ attributes
67296
+ };
67297
+ }, "parseOCRResult");
67298
+ var analyzeRivenStat = /* @__PURE__ */ __name((parseResult) => {
67299
+ const weaponRiven = getWeaponRivenDisposition(parseResult.name);
67300
+ if (!weaponRiven) {
67301
+ return "未找到武器: " + parseResult.name;
66390
67302
  }
66391
- if (!relics) {
66392
- return "遗物数据未加载完成,请稍后再试";
67303
+ const disposition = weaponRiven.calc.disposition;
67304
+ const weaponType = weaponRiven.calc.riventype;
67305
+ const rivenStatCountType = (function() {
67306
+ if (parseResult.attributes.length === 4) {
67307
+ return "31";
67308
+ } else if (parseResult.attributes.length === 2) {
67309
+ return "2";
67310
+ }
67311
+ const firstStat = parseResult.attributes[0];
67312
+ const firstStatBaseValue = rivenAttrValueDict[weaponType][normalizeName(firstStat.attr.i18n["en"].name)];
67313
+ if (firstStat.value >= firstStatBaseValue * 1.2375 * 0.9 * disposition) {
67314
+ return "21";
67315
+ } else {
67316
+ return "3";
67317
+ }
67318
+ })();
67319
+ const { buffFactor, buffCount, curseFactor, curseCount } = rivenStatFixFactor[rivenStatCountType];
67320
+ const buffs = [];
67321
+ for (let i = 0; i < buffCount; i++) {
67322
+ const attr = parseResult.attributes[i];
67323
+ const baseValue = rivenAttrValueDict[weaponType][normalizeName(attr.attr.i18n["en"].name)];
67324
+ const value = attr.attr.unit === "multiply" ? attr.value - 1 : attr.value;
67325
+ const standardValue = baseValue * buffFactor * disposition;
67326
+ const percent = (value - standardValue) / standardValue;
67327
+ buffs.push({
67328
+ name: attr.attr.i18n["zh-hans"].name,
67329
+ unit: attr.attr.unit,
67330
+ value: attr.value,
67331
+ percent,
67332
+ max: standardValue * 1.1,
67333
+ min: standardValue * 0.9
67334
+ });
66393
67335
  }
66394
- const tierListForMatch = [
66395
- "古纪",
66396
- "前纪",
66397
- "中纪",
66398
- "后纪",
66399
- "安魂",
66400
- "先锋",
66401
- "Lith",
66402
- "Meso",
66403
- "Neo",
66404
- "Axi",
66405
- "Requiem",
66406
- "Vanguard"
66407
- ].map((t) => normalizeName(t));
66408
- const tier = tierListForMatch.find((t) => input.startsWith(t));
66409
- if (!tier) {
66410
- return "请提供正确的遗物名称";
67336
+ const curses = [];
67337
+ if (curseCount > 0) {
67338
+ for (let i = buffCount; i < buffCount + curseCount; i++) {
67339
+ const attr = parseResult.attributes[i];
67340
+ const baseValue = rivenAttrValueDict[weaponType][normalizeName(attr.attr.i18n["en"].name)];
67341
+ const value = attr.attr.unit === "multiply" ? attr.value - 1 : attr.value;
67342
+ const standardValue = baseValue * curseFactor * disposition;
67343
+ const percent = (value - standardValue) / standardValue * -1;
67344
+ curses.push({
67345
+ name: attr.attr.i18n["zh-hans"].name,
67346
+ unit: attr.attr.unit,
67347
+ value: attr.value,
67348
+ percent,
67349
+ max: standardValue * 0.9,
67350
+ min: standardValue * 1.1
67351
+ });
67352
+ }
66411
67353
  }
66412
- const category = input.replace(new RegExp(`^${tier}`), "").replace(/遗物$|relic$/, "");
66413
- const zhTierMap = {
66414
- 古纪: "Lith",
66415
- 前纪: "Meso",
66416
- 中纪: "Neo",
66417
- 后纪: "Axi",
66418
- 安魂: "Requiem",
66419
- 先锋: "Vanguard"
67354
+ return {
67355
+ name: weaponRiven.name.zh,
67356
+ disposition,
67357
+ buffs,
67358
+ curses
67359
+ };
67360
+ }, "analyzeRivenStat");
67361
+
67362
+ // src/components/render.tsx
67363
+ var style = `
67364
+ :root {
67365
+ --color_success_text: #4d8200;
67366
+ --color_success_border: #4d8200;
67367
+ --color_rgb_success_text: 77 130 0;
67368
+ --color_rgb_success_border: 77 130 0;
67369
+ --color_auction_participant: #1c8a62;
67370
+ --color_auction_sell: #909090;
67371
+ --color_auction_own: mediumpurple;
67372
+ --color_auction_archiving: gray;
67373
+ --color_rgb_auction_archiving: 128 128 128;
67374
+ --color_dark_background--light: #11262b;
67375
+ --color_dark_border--ligth: #283235;
67376
+ --color_dark_background: #171e21;
67377
+ --color_dark_border: #283235;
67378
+ --color_dark_background--darker: #071013;
67379
+ --color_dark_border--darker: #171e21;
67380
+ --color_rgb_dark_background--light: 17 38 43;
67381
+ --color_rgb_dark_border--ligth: 40 50 53;
67382
+ --color_rgb_dark_background: 23 30 33;
67383
+ --color_rgb_dark_border: 40 50 53;
67384
+ --color_rgb_dark_background--darker: 7 16 19;
67385
+ --color_rgb_dark_border--darker: 23 30 33;
67386
+ --color_place_order: #b53600;
67387
+ --color_place_order--hover: #e64400;
67388
+ --color_place_order--active: #ff8f00;
67389
+ --color_place_order_text: #f5f5f5;
67390
+ --color_create_auction: #8960db;
67391
+ --color_create_auction_text: #f5f5f5;
67392
+ --color_create_auction--hover: #b08cff;
67393
+ --color_create_auction--active: #9d92ff;
67394
+ --color_input_inner_shadow: 0 0 0;
67395
+ --color_input_text--highlight: #19a187;
67396
+ --color_attribute_text: white;
67397
+ --color_attribute_background_first: #19a187;
67398
+ --color_attribute_background_second: #358576;
67399
+ --color_attribute_background_third: #516965;
67400
+ --color_attribute_background_negative: #98392d;
67401
+ --color_rgb_attribute_background_first: 25 161 135;
67402
+ --color_rgb_attribute_background_second: 53 133 118;
67403
+ --color_rgb_attribute_background_third: 81 105 101;
67404
+ --color_rgb_attribute_background_negative: 152 57 45;
67405
+ --color_link_dimmed: #408698;
67406
+ --color_link_dimmed--hover: #a3dddb;
67407
+ --color_link_dimmed--active: #acb8dd;
67408
+ --color_rgb_link_dimmed: 64 134 152;
67409
+ --color_rgb_link_dimmed--hover: 163 221 219;
67410
+ --color_rgb_link_dimmed--active: 172 184 221;
67411
+ --color_dark_md_code_background: black;
67412
+ --color_dark_md_code_text: #39a57e;
67413
+ --color_rgb_dark_md_code_background: 0 0 0;
67414
+ --color_status-offline: darkred;
67415
+ --color_highlight: #b53600;
67416
+ --color_highlight_text: #f5f5f5;
67417
+ --color_tooltip_background: #1b2432;
67418
+ --color_tooltip_border: black;
67419
+ --color_tooltip_text: #aab3b6;
67420
+ --color_rgb_tooltip_background: 27 36 50;
67421
+ --color_text_svg: red;
67422
+ --color_dark_text: #aab3b6;
67423
+ --color_dark_h1: #fcfdfd;
67424
+ --color_dark_h2: #e1e4e5;
67425
+ --color_dark_h3: #c5ccce;
67426
+ --color_dark_disclaimer: #333d40;
67427
+ }
67428
+
67429
+ body {
67430
+ font-family: Arial, sans-serif;
67431
+ padding: 20px;
67432
+ }
67433
+
67434
+ * {
67435
+ margin: 0;
67436
+ padding: 0;
67437
+ }
67438
+
67439
+ ul {
67440
+ list-style: none;
67441
+ }
67442
+ `;
67443
+ var svg = `<svg
67444
+ style="display: none"
67445
+ xmlns="http://www.w3.org/2000/svg"
67446
+ xmlns:xlink="http://www.w3.org/1999/xlink"
67447
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
67448
+ >
67449
+ <defs>
67450
+ <symbol viewBox="0 0 19.736 20.883" id="icon-amber">
67451
+ <path
67452
+ d="M15.163 9.37c-3.622-4.486-4.755-6.107-5.312-6.107-.557 0-1.656 1.621-5.278 6.107.116 2.831 1.424 2.328 5.295 7.062 3.871-4.734 5.179-4.231 5.295-7.062zm-8.26.491c1.296-1.39 2.254-4.473 2.965-4.448.711-.025 1.67 3.058 2.966 4.448-.493 1.425-1.72 2.611-2.966 4.06-1.246-1.449-2.473-2.635-2.965-4.06zm-1.787 7.416C3.03 17.449 0 12.89 0 11.335c0-2.573 4.116-6.501 4.499-7.782l.11-2.16C5.854.397 7.632.1 9.87 0c2.235.099 4.014.396 5.258 1.394l.11 2.159c.383 1.28 4.5 5.209 4.5 7.782 0 1.555-3.085 5.942-5.117 5.942-.86 1.214-3.277 3.606-4.752 3.606-1.474 0-3.892-2.392-4.752-3.606z"
67453
+ />
67454
+ </symbol>
67455
+ <symbol viewBox="0 0 320 512" id="icon-angle-up">
67456
+ <path
67457
+ d="m177 159.7 136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"
67458
+ />
67459
+ </symbol>
67460
+ <symbol viewBox="0 0 512 512" id="icon-archive">
67461
+ <path
67462
+ d="M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"
67463
+ />
67464
+ </symbol>
67465
+ <symbol viewBox="-10 0 468 512" id="icon-arrow-link">
67466
+ <path
67467
+ fill="currentColor"
67468
+ d="M280 80q-22-2-24-24 2-22 24-24h144q22 2 24 24v144q-2 22-24 24-22-2-24-24v-86L200 312q-16 15-33 0-14-16 0-33L366 80h-86zM0 120q1-24 16-40 16-15 40-16h112q22 2 24 24-2 22-24 24H56q-7 1-8 8v304q1 7 8 8h304q7-1 8-8V312q2-22 24-24 22 2 24 24v112q-1 24-16 40-16 15-40 16H56q-24-1-40-16-15-16-16-40V120z"
67469
+ />
67470
+ </symbol>
67471
+ <symbol viewBox="0 0 512 512" id="icon-arrows-alt-h">
67472
+ <path
67473
+ d="M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"
67474
+ />
67475
+ </symbol>
67476
+ <symbol viewBox="0 0 1000 1000" id="icon-auction">
67477
+ <path
67478
+ d="m324.4 138.5 250 144.3c19.8 11.4 45 4.6 56.3-15.1 11.4-19.7 4.7-45-15.1-56.3l-250-144.3c-19.8-11.4-45-4.6-56.3 15.1s-4.6 44.8 15.1 56.3zm229.4 180-250-144.3-144.3 250 250 144.3 144.3-250zM97.6 531.3l250 144.3c19.7 11.4 45 4.6 56.3-15.1 11.3-19.7 4.6-45-15.1-56.3L138.8 460c-19.8-11.4-45-4.6-56.3 15.1-11.5 19.6-4.7 44.9 15.1 56.2zm861.5 116.4L502.3 407.8 461 479.3l436.2 275.6c29.6 17.1 67.4 7 84.5-22.6 17.1-29.7 6.9-67.5-22.6-84.6zM506.3 856c0-22.8-18.5-41.2-41.2-41.2H93.8c-22.8 0-41.2 18.4-41.2 41.2v41.2l-42.6-.9 1.4 42.1h536.1l1.9-39.5-40.6-1.7c.1 0-2.5-18.5-2.5-41.2z"
67479
+ />
67480
+ </symbol>
67481
+ <symbol viewBox="0 0 400 423" id="icon-averagePrice">
67482
+ <path
67483
+ d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
67484
+ fill="#ff5a69"
67485
+ />
67486
+ </symbol>
67487
+ <symbol viewBox="0 0 384 512" id="icon-award">
67488
+ <path
67489
+ d="M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"
67490
+ />
67491
+ </symbol>
67492
+ <symbol viewBox="0 0 640 512" id="icon-backspace">
67493
+ <path
67494
+ d="M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"
67495
+ />
67496
+ </symbol>
67497
+ <symbol viewBox="0 0 512 512" id="icon-ban">
67498
+ <path
67499
+ d="M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"
67500
+ />
67501
+ </symbol>
67502
+ <symbol viewBox="0 0 448 512" id="icon-bars">
67503
+ <path
67504
+ d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"
67505
+ />
67506
+ </symbol>
67507
+ <symbol viewBox="0 0 544 1423" id="icon-candlePrice">
67508
+ <g fill="green">
67509
+ <path
67510
+ d="m141.618 209.102 2.33 804.884 266.39.894-6.224-806.124c-58.188 2.227-202.884-.42-262.496.346z"
67511
+ />
67512
+ <path
67513
+ d="m243.855 250.785-1.697-236.057 63.435-.335.369 236.664zm.917 985.162.013-230.11 64.04-1.797.382 232.173z"
67514
+ />
67515
+ </g>
67516
+ </symbol>
67517
+ <symbol viewBox="0 0 320 512" id="icon-caret-down">
67518
+ <path
67519
+ d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
67520
+ />
67521
+ </symbol>
67522
+ <symbol viewBox="0 0 192 512" id="icon-caret-left">
67523
+ <path
67524
+ d="M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"
67525
+ />
67526
+ </symbol>
67527
+ <symbol viewBox="0 0 512 512" id="icon-chart-area">
67528
+ <path
67529
+ d="M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5 288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"
67530
+ />
67531
+ </symbol>
67532
+ <symbol viewBox="0 0 512 512" id="icon-check">
67533
+ <path
67534
+ d="m173.898 439.404-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"
67535
+ />
67536
+ </symbol>
67537
+ <symbol viewBox="0 0 512 512" id="icon-check-circle">
67538
+ <path
67539
+ d="M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z"
67540
+ />
67541
+ </symbol>
67542
+ <symbol viewBox="0 0 448 512" id="icon-chevron-down">
67543
+ <path
67544
+ d="M207.029 381.476 12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"
67545
+ />
67546
+ </symbol>
67547
+ <symbol viewBox="0 0 320 512" id="icon-chevron-left">
67548
+ <path
67549
+ d="M34.52 239.03 228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"
67550
+ />
67551
+ </symbol>
67552
+ <symbol viewBox="0 0 448 512" id="icon-chevron-up">
67553
+ <path
67554
+ d="m240.971 130.524 194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"
67555
+ />
67556
+ </symbol>
67557
+ <symbol viewBox="0 0 512 512" id="icon-circle">
67558
+ <path
67559
+ d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"
67560
+ />
67561
+ </symbol>
67562
+ <symbol viewBox="0 0 512 512" id="icon-circle-check">
67563
+ <path
67564
+ d="M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"
67565
+ />
67566
+ </symbol>
67567
+ <symbol viewBox="0 0 512 512" id="icon-circle-notch">
67568
+ <path
67569
+ d="M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"
67570
+ />
67571
+ </symbol>
67572
+ <symbol viewBox="0 0 640 512" id="icon-cogs">
67573
+ <path
67574
+ d="m512.1 191-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"
67575
+ />
67576
+ </symbol>
67577
+ <symbol viewBox="0 0 576 512" id="icon-comments">
67578
+ <path
67579
+ d="M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"
67580
+ />
67581
+ </symbol>
67582
+ <symbol viewBox="0 0 640 512" id="icon-contract">
67583
+ <path
67584
+ d="m519.2 127.9-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"
67585
+ />
67586
+ </symbol>
67587
+ <symbol viewBox="0 0 24 24" id="icon-crossplay">
67588
+ <path
67589
+ d="M10.762 3.098c-1.124.118-2.38.62-3.623 1.449C5.972 5.32 4.9 6.28 3.01 8.255c-1.364 1.42-1.598 1.701-1.86 2.25-.277.58-.361 1.003-.37 1.762 0 .361.013.68.032.699.019.023.712-.638 1.533-1.458l1.5-1.5v1.828L2.32 13.359.797 14.883l.01 1.256.013 1.252 3.985-3.966c2.193-2.18 4.153-4.097 4.36-4.26.735-.577 1.424-.93 2.165-1.107.567-.136 1.383-.108 1.865.06 1.557.554 2.663 1.913 2.817 3.465.02.178.043.323.061.323.014 0 .32-.29.675-.647l.643-.642v-.262c0-.572-.3-1.35-.76-1.974-.75-1.017-2.151-1.86-3.6-2.175-.614-.131-1.617-.112-2.208.042-1.5.394-2.63 1.163-4.434 3.024l-.712.736-.005-.919V8.17l.375-.45C7.12 6.436 8.634 5.4 10.03 5.002c.746-.216 1.29-.282 2.147-.258a7.312 7.312 0 0 1 3.211.815c1.425.718 2.658 1.932 3.22 3.178.211.465.253.375.22-.496-.023-.816-.107-1.172-.412-1.805-.736-1.533-2.54-2.78-4.612-3.197a11.417 11.417 0 0 0-3.043-.14Z"
67590
+ />
67591
+ <path
67592
+ d="M19.148 10.575c-2.189 2.18-4.153 4.097-4.359 4.26-.736.577-1.425.93-2.166 1.107-.567.136-1.382.108-1.865-.06-1.556-.554-2.663-1.913-2.817-3.465-.02-.178-.043-.323-.061-.323-.014 0-.32.29-.675.647l-.643.642v.262c0 .572.3 1.35.76 1.974.75 1.017 2.151 1.86 3.6 2.175.614.131 1.617.112 2.208-.042 1.5-.394 2.63-1.163 4.434-3.024l.713-.736.004.919v.919l-.375.45c-1.073 1.284-2.587 2.32-3.984 2.718-.745.216-1.29.282-2.147.258a7.31 7.31 0 0 1-3.21-.815c-1.426-.718-2.659-1.932-3.221-3.178-.211-.465-.253-.376-.22.496.023.816.107 1.172.412 1.805.614 1.275 1.992 2.386 3.652 2.94 1.673.557 3.839.594 5.371.093.563-.183 1.618-.713 2.246-1.134 1.18-.788 2.245-1.744 4.139-3.718 1.364-1.42 1.598-1.701 1.86-2.25.277-.58.362-1.003.371-1.762 0-.361-.014-.68-.033-.699-.019-.023-.712.638-1.533 1.458l-1.5 1.5v-1.828l1.524-1.523 1.523-1.524-.01-1.256-.013-1.252Z"
67593
+ />
67594
+ </symbol>
67595
+ <symbol viewBox="0 0 24 24" id="icon-crossplay-warn">
67596
+ <g clip-path="url(#icon-crossplay-warn_a)">
67597
+ <path
67598
+ d="M10.762 3.098c-1.124.118-2.38.62-3.623 1.449C5.972 5.32 4.9 6.28 3.01 8.255c-1.364 1.42-1.598 1.701-1.86 2.25-.277.58-.361 1.003-.37 1.762 0 .361.013.68.032.699.019.023.712-.638 1.533-1.458l1.5-1.5v1.828L2.32 13.359.797 14.883l.01 1.256.013 1.252 3.985-3.966c2.193-2.18 4.153-4.097 4.36-4.26.735-.577 1.424-.93 2.165-1.107.567-.136 1.383-.108 1.865.06 1.557.554 2.663 1.913 2.817 3.465.02.178.043.323.061.323.014 0 .32-.29.675-.647l.643-.642v-.262c0-.572-.3-1.35-.76-1.974-.75-1.017-2.151-1.86-3.6-2.175-.614-.131-1.617-.112-2.208.042-1.5.394-2.63 1.163-4.434 3.024l-.712.736-.005-.919V8.17l.375-.45C7.12 6.436 8.634 5.4 10.03 5.002c.746-.216 1.29-.282 2.147-.258a7.312 7.312 0 0 1 3.211.815c1.425.718 2.658 1.932 3.22 3.178.211.465.253.375.22-.496-.023-.816-.107-1.172-.412-1.805-.736-1.533-2.54-2.78-4.612-3.197a11.417 11.417 0 0 0-3.043-.14Z"
67599
+ />
67600
+ <path
67601
+ d="M19.148 10.575c-2.189 2.18-4.153 4.097-4.359 4.26-.736.577-1.425.93-2.166 1.107-.567.136-1.382.108-1.865-.06-1.556-.554-2.663-1.913-2.817-3.465-.02-.178-.043-.323-.061-.323-.014 0-.32.29-.675.647l-.643.642v.262c0 .572.3 1.35.76 1.974.75 1.017 2.151 1.86 3.6 2.175.614.131 1.617.112 2.208-.042 1.5-.394 2.63-1.163 4.434-3.024l.713-.736.004.919v.919l-.375.45c-1.073 1.284-2.587 2.32-3.984 2.718-.745.216-1.29.282-2.147.258a7.31 7.31 0 0 1-3.21-.815c-1.426-.718-2.659-1.932-3.221-3.178-.211-.465-.253-.376-.22.496.023.816.107 1.172.412 1.805.614 1.275 1.992 2.386 3.652 2.94 1.673.557 3.839.594 5.371.093.563-.183 1.618-.713 2.246-1.134 1.18-.788 2.245-1.744 4.139-3.718 1.364-1.42 1.598-1.701 1.86-2.25.277-.58.362-1.003.371-1.762 0-.361-.014-.68-.033-.699-.019-.023-.712.638-1.533 1.458l-1.5 1.5v-1.828l1.524-1.523 1.523-1.524-.01-1.256-.013-1.252Z"
67602
+ />
67603
+ <path
67604
+ d="M18.741 12.996a.868.868 0 0 0-.313-.323.836.836 0 0 0-.856 0 .868.868 0 0 0-.313.323l-5.185 9.075c-.345.605.07 1.374.742 1.374h10.368c.672 0 1.087-.77.741-1.374z"
67605
+ fill="#fff"
67606
+ />
67607
+ <path
67608
+ d="M18.741 12.996a.868.868 0 0 0-.313-.323.836.836 0 0 0-.856 0 .868.868 0 0 0-.313.323l-5.185 9.075c-.345.605.07 1.374.742 1.374h10.368c.672 0 1.087-.77.741-1.374zM18 15.667c.404 0 .721.36.68.774l-.264 2.728a.434.434 0 0 1-.134.28.411.411 0 0 1-.565 0 .434.434 0 0 1-.133-.28l-.265-2.728a.723.723 0 0 1 .174-.542.685.685 0 0 1 .507-.232zm0 4.667c.2 0 .393.082.535.228a.79.79 0 0 1 .221.55c0 .206-.08.404-.221.55a.746.746 0 0 1-.535.227.746.746 0 0 1-.535-.227.789.789 0 0 1-.22-.55.79.79 0 0 1 .22-.55.746.746 0 0 1 .535-.228z"
67609
+ fill="#a52f31"
67610
+ />
67611
+ </g>
67612
+ <defs />
67613
+ </symbol>
67614
+ <clipPath id="icon-crossplay-warn_a">
67615
+ <path fill="#fff" d="M0 0h24v24H0z" />
67616
+ </clipPath>
67617
+ <symbol viewBox="0 0 512 512" id="icon-cubes">
67618
+ <path
67619
+ d="M488.6 250.2 392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1-85 42.5v-79.1l85-38.8v75.4zm0-112-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112-85 42.5v-79.1l85-38.8v75.4zm0-112-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"
67620
+ />
67621
+ </symbol>
67622
+ <symbol viewBox="0 0 14.021 15.329" id="icon-cyan">
67623
+ <path
67624
+ d="M14.021 7.959c-.972-1.693-3.793-4.185-3.204-6.465L6.972 0 3.124 1.493C3.714 3.773.972 6.266 0 7.959c1.194 4.657 4.173 6.192 6.973 7.37 2.8-1.178 5.855-2.713 7.048-7.37zM3.127 7.783s1.898-4.066 3.848-5.095c1.95 1.029 3.92 5.095 3.92 5.095-1.4 2.758-3.922 3.62-3.922 3.62s-2.448-.862-3.846-3.62zm6.397-.067A10.821 10.821 0 0 0 6.98 4.397c-1.086.968-1.853 2.053-2.483 3.32.686.98 1.492 1.724 2.48 2.282a7.647 7.647 0 0 0 2.547-2.283z"
67625
+ />
67626
+ </symbol>
67627
+ <symbol viewBox="0 0 940 940" id="icon-cycle-icon">
67628
+ <path
67629
+ d="M469.594.813c-132.135.23-258.059 56.12-346.873 153.955-31.762-19.523-64.48-37.499-96.83-56.034l29.308 229.293 210.975-88.775-89.528-50.959A407.135 407.135 0 0 1 469.594 63.271 407.135 407.135 0 1 1 62.459 470.406l.02-.406H.014l-.014.406a469.593 469.593 0 1 0 939.188 0A469.593 469.593 0 0 0 469.594.812z"
67630
+ />
67631
+ </symbol>
67632
+ <symbol viewBox="-10 0 522 512" id="icon-dice">
67633
+ <path
67634
+ d="M20 317q-4 0-4-4V151q0-4 4-5 1 0 2 1l77 45-76 122q-1 4-3 3zm211 88L23 383q-7-1-7-8 0-2 1-4l106-156 108 190zM31 420q0-3 4-4h1l203 22v66q0 7-7 8-2 0-3-1L34 424q-2-2-3-4zm325-213L256 383 156 207h200zm120 208q4 1 4 4 0 2-2 4l-195 87q-1 1-3 1-7 0-8-8v-66l204-22zm19-44q1 2 1 4 0 7-7 8l-208 22 108-190 106 156zm-4-224q4 0 4 4v162q0 4-4 4-2 0-3-2l-76-122 77-45 2-1z"
67635
+ fill="currentColor"
67636
+ />
67637
+ <path
67638
+ d="M196.54 20.512q-1-8-8-8-2 0-4 1l-151 98q-2 2-3 4 0 2 2 3l83 49 79-143q2-2 2-4zm58-19q-7 0-13 8l-95 167h218l-95-168q-5-7-15-7zm224 114q0-2-2-4l-151-98q-2-1-4-1-7 0-8 8 0 2 2 4l80 143 81-49q3-1 2-3z"
67639
+ fill="currentColor"
67640
+ fill-opacity=".75"
67641
+ />
67642
+ </symbol>
67643
+ <symbol viewBox="0 0 71 71" id="icon-discord">
67644
+ <path
67645
+ d="M60.105 12.928a58.55 58.55 0 0 0-14.452-4.483.22.22 0 0 0-.233.11 40.784 40.784 0 0 0-1.8 3.697c-5.456-.817-10.886-.817-16.23 0-.485-1.164-1.201-2.587-1.828-3.697a.228.228 0 0 0-.233-.11 58.386 58.386 0 0 0-14.451 4.483.207.207 0 0 0-.095.082C1.578 26.76-.944 40.174.293 53.42a.244.244 0 0 0 .093.167c6.073 4.46 11.955 7.167 17.729 8.962a.23.23 0 0 0 .249-.082 42.08 42.08 0 0 0 3.627-5.9.225.225 0 0 0-.123-.312 38.772 38.772 0 0 1-5.539-2.64.228.228 0 0 1-.022-.378 31.17 31.17 0 0 0 1.1-.862.22.22 0 0 1 .23-.03c11.619 5.304 24.198 5.304 35.68 0a.219.219 0 0 1 .233.027c.356.293.728.586 1.103.865a.228.228 0 0 1-.02.378 36.384 36.384 0 0 1-5.54 2.637.227.227 0 0 0-.121.315 47.249 47.249 0 0 0 3.624 5.897.225.225 0 0 0 .249.084c5.801-1.794 11.684-4.502 17.757-8.96a.228.228 0 0 0 .092-.165c1.48-15.315-2.48-28.618-10.497-40.412a.18.18 0 0 0-.093-.084zm-36.38 32.427c-3.497 0-6.38-3.21-6.38-7.156 0-3.944 2.827-7.156 6.38-7.156 3.583 0 6.438 3.24 6.382 7.156 0 3.945-2.827 7.156-6.381 7.156zm23.593 0c-3.498 0-6.38-3.21-6.38-7.156 0-3.944 2.826-7.156 6.38-7.156 3.582 0 6.437 3.24 6.38 7.156 0 3.945-2.798 7.156-6.38 7.156z"
67646
+ />
67647
+ </symbol>
67648
+ <symbol viewBox="0 0 503 523" id="icon-dochPrice">
67649
+ <defs />
67650
+ <path
67651
+ d="m62.572 63.274 2.965-.822-.41 1.084z"
67652
+ opacity=".85"
67653
+ fill="#171e21"
67654
+ fill-opacity=".01"
67655
+ stroke="#171ed9"
67656
+ stroke-width=".008"
67657
+ transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
67658
+ />
67659
+ <path
67660
+ d="m66.514 78.982-.005-11.15 13.099.005.01 11.14z"
67661
+ opacity=".15"
67662
+ fill="#265663"
67663
+ stroke="url(#icon-dochPrice_b)"
67664
+ stroke-width=".014"
67665
+ stroke-opacity=".01"
67666
+ transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
67667
+ />
67668
+ <path
67669
+ d="M79.374 75.524c.01-.704.018-1.313.023-1.836.026-2.575-.002-3.08-.002-2.657 0 .554.006 2.608-.021 4.493zm-12.64.199c.01-.704.018-1.312.023-1.836.026-2.574-.002-3.079-.002-2.656 0 .553.006 2.608-.021 4.492zm-.063-7.661c.772.01 1.44.016 2.013.02 2.821.025 3.374 0 2.91-.001-.606 0-2.858.005-4.923-.02zm7.699-.064c.772.01 1.44.016 2.013.021 2.821.024 3.374-.002 2.91-.002-.606 0-2.858.005-4.922-.02zm.086 10.781c.772.01 1.439.016 2.012.02 2.822.025 3.375 0 2.911-.001-.606 0-2.858.005-4.923-.02zm-7.752.034c.772.01 1.44.016 2.013.021 2.821.024 3.374-.002 2.91-.002-.606 0-2.858.006-4.923-.02z"
67670
+ opacity=".259"
67671
+ fill="#4d4d4d"
67672
+ fill-opacity=".988"
67673
+ stroke="#171e21"
67674
+ stroke-width=".345"
67675
+ transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
67676
+ />
67677
+ </symbol>
67678
+ <linearGradient osb:paint="solid" id="icon-dochPrice_a">
67679
+ <stop offset="0" stop-color="#171e21" />
67680
+ </linearGradient>
67681
+ <linearGradient
67682
+ gradientTransform="translate(1.708 2.148)"
67683
+ y2="71.258"
67684
+ x2="77.916"
67685
+ y1="71.258"
67686
+ x1="64.794"
67687
+ gradientUnits="userSpaceOnUse"
67688
+ id="icon-dochPrice_b"
67689
+ xlink:href="#icon-dochPrice_a"
67690
+ />
67691
+ <symbol viewBox="0 0 512 512" id="icon-dot-circle">
67692
+ <path
67693
+ d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"
67694
+ />
67695
+ </symbol>
67696
+ <symbol viewBox="0 0 18.231 22.384" id="icon-ducats">
67697
+ <path
67698
+ d="m7.986.006-.275.363H4.737l2.606 4.189-.008 13.603 1.762 3.268 1.762-3.268-.008-13.603L13.457.369h-2.973l-.276-.363H7.986zM4.805 1.522c-.887.528-1.917 1.425-2.571 2.225l2.232 1.138c.4-.42 1.149-.981 1.646-1.277L4.805 1.522zm8.584 0-1.307 2.086c.497.296 1.246.856 1.646 1.277l2.232-1.138c-.654-.8-1.684-1.697-2.57-2.225zM.542 3.497l2.5 4.46v9.41l2.353.378.017-11.763-4.87-2.485zm17.11 0-4.87 2.485.017 11.763 2.353-.379v-9.41l2.5-4.459zM1.057 5.52C.598 6.61.346 8.06.346 9.321c0 2.25.812 4.303 2.15 5.877l.02-7.08L1.057 5.52zm16.08 0-1.459 2.597.02 7.081a9.046 9.046 0 0 0 2.15-5.877c0-1.26-.252-2.712-.711-3.8zm-11.23 8.93v3.103c.274.167.575.323.909.454V14.45c-.312.01-.696-.008-.91 0zm5.472 0v3.557a5.94 5.94 0 0 0 .91-.454v-3.104c-.215-.008-.599.01-.91 0zM3.04 18.006 5.396 22.4v-4.026l-2.356-.368zm12.114 0-2.355.368V22.4l2.355-4.394z"
67699
+ paint-order="markers stroke fill"
67700
+ />
67701
+ </symbol>
67702
+ <symbol viewBox="0 0 576 512" id="icon-edit">
67703
+ <path
67704
+ d="m402.3 344.9 32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174 402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"
67705
+ />
67706
+ </symbol>
67707
+ <symbol viewBox="0 0 512 512" id="icon-ellipsis-h">
67708
+ <path
67709
+ d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"
67710
+ />
67711
+ </symbol>
67712
+ <symbol viewBox="0 0 256 251.342" id="icon-endo">
67713
+ <path
67714
+ style="
67715
+ display: inline;
67716
+ opacity: 1;
67717
+ fill-opacity: 1;
67718
+ stroke: none;
67719
+ stroke-width: 0.785732;
67720
+ stroke-dasharray: none;
67721
+ stroke-opacity: 1;
67722
+ "
67723
+ d="M127.322 0C65.442.142 13.79 45.301 7.982 106.908l3.266-2.563 18.698-2.582c8.011-47.544 49.162-80.406 97.376-80.442h1.356c48.214.036 89.365 32.898 97.376 80.442l18.698 2.582 3.265 2.563C242.21 45.301 190.557.142 128.678 0Zm-.035 47.06c-32.405.03-60.827 21.633-69.53 52.847l.023-.003v3.347h14.186v-5.306l17.076-2.676c11.52-12.664 18.687-20.448 38.959-20.53 20.271.082 27.436 7.866 38.957 20.53l17.076 2.676v5.306h14.186v-3.347l.023.003c-8.703-31.214-37.125-52.817-69.53-52.846ZM128 84.513c-18.59.058-28.32 13.998-28.32 13.998l14.377.104-14.374 8.299H75.715l-37.213.01-24.361 3.365L0 121.395l26.828 11.82 70.13 3.585a35.294 35.294 0 0 0 12.581 13.113l6.143 69.327L128 251.342l12.317-32.102 6.143-69.327a35.295 35.295 0 0 0 12.581-13.113l70.13-3.585L256 121.395l-14.14-11.107-24.362-3.365-37.213-.01h-23.969l-14.373-8.299 14.376-.104s-9.729-13.94-28.318-13.998zm0 19.427c8.8.082 15.913 7.226 15.914 16.045 0 8.82-7.115 15.963-15.914 16.046-8.8-.083-15.915-7.227-15.915-16.046 0-8.819 7.115-15.963 15.915-16.045zM25.496 117.625h16.915c4.634.004 4.634 6.484 0 6.484H25.496c-4.634 0-4.634-6.484 0-6.484zm31.445 0h5.376c4.635.004 4.635 6.487 0 6.484h-5.376c-4.635-.004-4.635-6.488 0-6.484zm19.972 0h5.377c4.634.004 4.634 6.487 0 6.484h-5.377c-4.635-.004-4.635-6.488 0-6.484zm96.797 0h5.377c4.634-.004 4.634 6.48 0 6.484h-5.377c-4.635.004-4.635-6.48 0-6.484zm19.973 0h5.378c4.635-.004 4.635 6.48 0 6.484h-5.378c-4.635.004-4.635-6.48 0-6.484zm19.906 0h16.915c4.634 0 4.634 6.484 0 6.484h-16.915c-4.634 0-4.634-6.48 0-6.484zm-116.761.026h5.376c4.635.004 4.635 6.487 0 6.484h-5.376c-4.635-.004-4.635-6.488 0-6.484zm56.968 0h5.376c4.635-.004 4.635 6.48 0 6.484h-5.376c-4.635.004-4.635-6.48 0-6.484zM7.808 132.014c4.531 59.23 52.241 103.835 111.479 108.229l-9.88-20.952-9.918-21.851-7.229.14-6.56 6.127 17.64 25.85-21.698-22.127c-26.292-13.768-45.539-35.888-51.267-66.031l-1.433-.074zm240.384 0-21.134 9.311-1.433.074c-5.728 30.143-24.975 52.263-51.267 66.03l-21.698 22.128 17.64-25.85-6.56-6.126-7.23-.141-9.917 21.85-9.88 20.953c59.237-4.395 106.948-48.998 111.479-108.23zm-190.283 6.823c6.87 23.077 27.875 47.583 50.865 54.739l-2.3-25.03c-11.001-5.613-22.351-17.148-27.256-28.484Zm140.182 0-21.309 1.225c-4.905 11.336-16.255 22.871-27.257 28.485l-2.3 25.029c22.991-7.156 43.997-31.662 50.866-54.74zm-76.686 20.178H134.595s-.313 3.032-1.503 4.052c-1.189 1.02-5.091 1.022-5.091 1.022s-3.904-.002-5.093-1.022c-1.19-1.02-1.503-4.052-1.503-4.052zm-.037 19.701h13.264s.287 5.746-1.126 7.473c-1.413 1.726-5.505 1.992-5.505 1.992s-4.094-.266-5.507-1.992c-1.413-1.727-1.126-7.473-1.126-7.473zm.118 24.293H134.514s-.644 5.267-1.933 6.897c-1.267 1.602-4.467 2.517-4.58 2.55-.114-.033-3.315-.948-4.582-2.55-1.289-1.63-1.933-6.897-1.933-6.897z"
67724
+ />
67725
+ <path
67726
+ style="display: inline; opacity: 0.75; stroke-width: 0.799524"
67727
+ d="m99.685 98.435-23.498 3.417.049 5.238 23.452-.006 14.504-8.542zm56.63 0-14.507.107 14.504 8.542 23.454.006.047-5.238zm-76.94 43.87c3.308 10.97 13.424 22.62 24.495 26.022l-1.108-11.899c-5.298-2.668-10.763-8.153-13.125-13.542zm97.25 0-10.262.581c-2.362 5.39-7.827 10.874-13.125 13.542l-1.106 11.9c11.07-3.402 21.185-15.053 24.492-26.024zM85.7 203.706l-4.06 3.723 21.699 22.127zm84.598 0-17.639 25.85 21.698-22.127z"
67728
+ />
67729
+ </symbol>
67730
+ <symbol viewBox="0 0 512 512" id="icon-envelope">
67731
+ <path
67732
+ d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"
67733
+ />
67734
+ </symbol>
67735
+ <symbol viewBox="0 0 512 512" id="icon-exchange-alt">
67736
+ <path
67737
+ d="M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"
67738
+ />
67739
+ </symbol>
67740
+ <symbol viewBox="0 0 576 512" id="icon-eye">
67741
+ <path
67742
+ d="M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"
67743
+ />
67744
+ </symbol>
67745
+ <symbol viewBox="0 0 576 512" id="icon-eye-slash">
67746
+ <path
67747
+ d="M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"
67748
+ />
67749
+ </symbol>
67750
+ <symbol viewBox="0 0 512 512" id="icon-filter2">
67751
+ <path
67752
+ d="M24 64h336c10 0 19 6 22 15 4 9 2 19-5 26L256 226v198c0 10-6 19-15 22-9 4-19 2-26-5l-80-80c-4-4-7-10-7-17V226L7 105c-7-7-9-17-5-26s12-15 22-15Zm145 135c5 5 7 11 7 17v118l32 32V216c0-6 3-12 7-17l87-87H82ZM472 64h48c13 0 24 11 24 24s-11 24-24 24h-48c-13 0-24-11-24-24s11-24 24-24zM344 232h176c13 0 24 11 24 24s-11 24-24 24H344c-13 0-24-11-24-24s11-24 24-24zm0 168h176c13 0 24 11 24 24s-11 24-24 24H344c-13 0-24-11-24-24s11-24 24-24z"
67753
+ />
67754
+ </symbol>
67755
+ <symbol viewBox="0 0 448 512" id="icon-fire-alt">
67756
+ <path
67757
+ fill="currentColor"
67758
+ d="M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z"
67759
+ />
67760
+ </symbol>
67761
+ <symbol viewBox="0 0 496 512" id="icon-frown">
67762
+ <path
67763
+ d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"
67764
+ />
67765
+ </symbol>
67766
+ <symbol viewBox="0 0 1024 1024" id="icon-github">
67767
+ <path
67768
+ d="M512 13.028C229.345 13.028.407 241.966.407 524.62c0 226.38 146.443 417.588 349.802 485.374 25.58 4.476 35.172-10.871 35.172-24.3 0-12.151-.64-52.439-.64-95.285-128.538 23.661-161.791-31.335-172.023-60.112-5.755-14.708-30.696-60.112-52.438-72.263-17.906-9.592-43.486-33.253-.64-33.893 40.288-.64 69.065 37.09 78.658 52.439 46.043 77.378 119.585 55.635 149.001 42.206 4.477-33.254 17.906-55.636 32.614-68.426-113.83-12.79-232.775-56.914-232.775-252.599 0-55.635 19.825-101.679 52.439-137.49-5.116-12.79-23.022-65.229 5.116-135.573 0 0 42.845-13.429 140.688 52.439 40.927-11.511 84.413-17.267 127.898-17.267s86.97 5.756 127.898 17.267c97.842-66.507 140.688-52.439 140.688-52.439 28.138 70.344 10.232 122.783 5.116 135.573 32.614 35.811 52.439 81.215 52.439 137.49 0 196.324-119.585 239.81-233.415 252.6 18.545 15.987 34.533 46.682 34.533 94.644 0 68.426-.64 123.422-.64 140.688 0 13.43 9.593 29.417 35.172 24.301 202.08-67.786 348.523-259.634 348.523-485.374 0-282.655-228.938-511.593-511.593-511.593z"
67769
+ />
67770
+ </symbol>
67771
+ <symbol viewBox="0 0 384 512" id="icon-hourglass-half">
67772
+ <path
67773
+ d="M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"
67774
+ />
67775
+ </symbol>
67776
+ <symbol viewBox="0 0 640 512" id="icon-infinity">
67777
+ <path
67778
+ d="M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"
67779
+ />
67780
+ </symbol>
67781
+ <symbol viewBox="0 0 512 512" id="icon-info">
67782
+ <path
67783
+ d="M256 40c118.621 0 216 96.075 216 216 0 119.291-96.61 216-216 216-119.244 0-216-96.562-216-216 0-119.203 96.602-216 216-216m0-32C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm-36 344h12V232h-12c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h48c6.627 0 12 5.373 12 12v140h12c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12h-72c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12zm36-240c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"
67784
+ />
67785
+ </symbol>
67786
+ <symbol viewBox="0 0 512 512" id="icon-link">
67787
+ <path
67788
+ d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"
67789
+ />
67790
+ </symbol>
67791
+ <symbol viewBox="0 0 16.267 16.491" id="icon-madurai">
67792
+ <path
67793
+ d="M1.694 16.491c2.23-6.227 5.77-7.546 8.965-10.499.951-.88 3.086-2.097 4.85-2.429-.685-.632-1.147-.878-1.782-1.182-.778-.408-1.376-.255-2.676 1.188-1.155 1.317-5.634 4.724-6.369 4.886-.6-1.235.772-5.57.975-8.455 0 0-3.164 2.749-5.657 2.557 0 0 2.429.895 2.557 1.917z"
67794
+ />
67795
+ </symbol>
67796
+ <symbol viewBox="0 0 400 423" id="icon-medianPrice">
67797
+ <path
67798
+ d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
67799
+ fill="#5a95ff"
67800
+ />
67801
+ </symbol>
67802
+ <symbol viewBox="0 0 496 512" id="icon-meh">
67803
+ <path
67804
+ d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"
67805
+ />
67806
+ </symbol>
67807
+ <symbol viewBox="0 0 18 18" id="icon-naramon">
67808
+ <path
67809
+ d="M2.096 13.26c-.135-1.702-.278-3.405-1.943-5.401l14.824-.226c1.105-.706.837-2.893.837-2.893.475 2.041.346 4.33 2.033 5.876l-14.576.045c-.726.484-1.175 2.599-1.175 2.599z"
67810
+ />
67811
+ </symbol>
67812
+ <symbol viewBox="0 0 448 512" id="icon-paste">
67813
+ <path
67814
+ d="M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"
67815
+ />
67816
+ </symbol>
67817
+ <symbol viewBox="0 0 1024 1024" id="icon-patreon">
67818
+ <path
67819
+ d="M137.741 725.75c1.5-266.734 1.784-274.433 11.392-308.99 23.796-85.581 79.183-167.291 142.612-210.392 72.468-49.243 140.233-70.911 221.774-70.911 165.476 0 306.731 100.693 358.349 255.448 72.925 218.636-64.099 445.36-295.631 489.159-32.01 6.055-121.217 3.042-150.485-5.083l-18.827-5.227v-81.415c0-44.779.498-81.414 1.108-81.413s12.072 4.209 25.472 9.35c55.969 21.472 122.821 18.874 174.984-6.801 41.045-20.203 65.707-42.046 90.702-80.335 29.938-45.86 36.874-71.683 34.883-129.857-1.52-44.41-2.761-49.999-17.913-80.657-34.942-70.7-97.786-118.015-171.229-128.915-87.002-12.913-172.325 28.33-219.124 105.918-33.246 55.119-31.703 39.4-33.12 337.377l-1.272 267.515 145.246-2.37c143.004-2.334 146.034-2.574 196.28-15.553 173.31-44.768 304.422-174.39 353.036-349.024 11.417-41.014 12.246-49.68 12.054-125.998-.177-70.118-1.597-86.964-9.834-116.642-26-93.682-65.87-161.534-135.816-231.14-36.62-36.442-53.216-49.156-93.275-71.46-90.78-50.542-143.996-64.706-243.648-64.849-62.259-.09-76.537 1.328-117.394 11.65-82.493 20.841-170.399 70.213-225.413 126.602-58.491 59.953-98.831 125.916-122.085 199.632-22.794 72.255-24.565 99.609-24.593 379.888l-.028 258.045h110.255l1.538-273.55z"
67820
+ />
67821
+ </symbol>
67822
+ <symbol viewBox="0 0 24 24" id="icon-platform-mobile">
67823
+ <path
67824
+ d="M5.75 4.5A2.5 2.5 0 0 1 8.25 2h7.5a2.5 2.5 0 0 1 2.5 2.5v15a2.5 2.5 0 0 1-2.5 2.5h-7.5a2.5 2.5 0 0 1-2.5-2.5Zm7.5 13.75a1.25 1.25 0 1 0-2.5 0 1.25 1.25 0 0 0 2.5 0Z"
67825
+ />
67826
+ </symbol>
67827
+ <symbol viewBox="0 0 24 24" id="icon-platform-pc">
67828
+ <path
67829
+ d="M2 12v8.66h4.312v-5.815l1.197.01 1.197.012 1.368-1.368 1.368-1.368v-6.06l-1.368-1.368L8.709 3.34H2Zm5.018-2.855v2.279l-.353-.011-.353-.011V6.87h.706zm6.407-4.435-1.35 1.361v11.895l1.35 1.35 1.345 1.345h4.498l1.368-1.364L22 17.932V13.19l-2.256.007-2.26.011-.012 1.978-.007 1.98h-.669V6.908h.669v3.272H22V8.097c0-1.513-.011-2.082-.041-2.082-.022 0-.643-.602-1.379-1.338L19.242 3.34l-2.234.008-2.238.003Z"
67830
+ />
67831
+ </symbol>
67832
+ <symbol viewBox="0 0 24 24" id="icon-platform-ps">
67833
+ <path
67834
+ d="M9.218 3s.008 6.318.035 6.445l-.02 9.866L12.8 20.5l.007-13.452c0-1.207.432-1.302.824-1.146.376.15.609.557.607 1.176l.008 5.67c.28.195 1.213.433 1.624.42.146-.003 2.603.153 2.342-4.011-.127-2.027-.728-3.269-2.788-4.269-1.43-.694-4.873-1.64-6.206-1.888Zm-.699 9.877-5.743 2.131c-2.19.783-2.322 1.977-.578 2.723 3.168 1.274 6.324.545 6.324.545l-.005-1.895c.02-.017-1.747.773-2.67.847-1.284.102-1.554-.215-1.572-.372-.029-.253.406-.436.507-.472l3.745-1.373zm8.853.915c-1.577.022-2.724.399-3.88.729l.019 2.212 4.073-1.463c.53-.19 2.104-.276 2.232.209.078.295-.256.42-.524.518l-5.8 2.118.015 2.131 7.837-2.89c.48-.177 1.679-.726 1.656-1.55-.028-.986-2.27-1.68-3.892-1.901-.637-.087-1.21-.12-1.736-.113z"
67835
+ />
67836
+ </symbol>
67837
+ <symbol viewBox="0 0 24 24" id="icon-platform-switch">
67838
+ <path
67839
+ d="M5.8 8.4v.001a1.703 1.703 0 0 0 1.697 1.696c.934 0 1.697-.764 1.697-1.697S8.43 6.704 7.497 6.704A1.7 1.7 0 0 0 5.8 8.4z"
67840
+ />
67841
+ <path
67842
+ d="M11.54 3H7.61A4.61 4.61 0 0 0 3 7.61v8.766a4.61 4.61 0 0 0 4.61 4.611h3.93a.127.127 0 0 0 .128-.127V3.127c.014-.07-.043-.127-.128-.127Zm-1.315 16.544H7.61a3.088 3.088 0 0 1-2.235-.934 3.149 3.149 0 0 1-.933-2.234V7.61a3.09 3.09 0 0 1 .933-2.235 3.152 3.152 0 0 1 2.235-.933h2.615Zm9.425-15.18a4.609 4.609 0 0 0-3.26-1.35h-2.785a.111.111 0 0 0-.113.113v17.746c-.014.07.042.127.127.127h2.77A4.61 4.61 0 0 0 21 16.39V7.624a4.61 4.61 0 0 0-1.35-3.26zm-2.61 10.358a1.828 1.828 0 0 1-1.823-1.824c0-1.004.82-1.824 1.824-1.824s1.824.82 1.824 1.824-.82 1.824-1.824 1.824z"
67843
+ />
67844
+ </symbol>
67845
+ <symbol viewBox="0 0 24 24" id="icon-platform-xbox">
67846
+ <path
67847
+ d="M11.007 21.959a9.984 9.984 0 0 1-4.44-1.574c-1.123-.732-1.377-1.033-1.377-1.634 0-1.206 1.328-3.32 3.599-5.729 1.289-1.368 3.085-2.971 3.28-2.928.377.085 3.397 3.028 4.528 4.414 1.787 2.191 2.609 3.986 2.191 4.786-.317.608-2.286 1.796-3.733 2.253-1.192.376-2.758.535-4.048.412zm-7.333-4.462c-.933-1.43-1.405-2.84-1.632-4.876-.075-.673-.049-1.057.17-2.438.273-1.72 1.253-3.71 2.432-4.935.501-.52.546-.534 1.158-.327.741.25 1.534.798 2.764 1.91l.718.648-.393.481c-1.82 2.233-3.74 5.4-4.463 7.358-.393 1.064-.55 2.133-.381 2.578.114.3.01.188-.374-.399zm16.377.243c.092-.45-.025-1.275-.298-2.109-.591-1.804-2.57-5.16-4.386-7.441l-.571-.719.618-.567c.808-.741 1.369-1.185 1.974-1.562.477-.298 1.16-.56 1.453-.56.18 0 .817.661 1.33 1.382.797 1.115 1.382 2.47 1.679 3.877.191.91.208 2.858.03 3.766a12.033 12.033 0 0 1-.75 2.367c-.226.49-.781 1.444-1.025 1.755-.126.16-.126.159-.056-.185zm-8.88-13.3c-.837-.425-2.13-.881-2.844-1.004a5.194 5.194 0 0 0-.949-.054c-.59.03-.563 0 .382-.447a9.722 9.722 0 0 1 2.332-.776c1-.21 2.882-.212 3.867-.005 1.063.224 2.316.69 3.022 1.125l.21.128-.481-.024c-.957-.048-2.351.338-3.848 1.066-.452.22-.844.395-.873.39a15.893 15.893 0 0 1-.818-.398Z"
67848
+ />
67849
+ </symbol>
67850
+ <symbol viewBox="0 0 215.535 215.535" id="icon-platinum">
67851
+ <path
67852
+ d="M105.563 0c-32.088 0-56.76 18.984-56.76 18.984l8.052 7.096-15.052 16.395-15.916 13.998-6.903-7.67S0 74.875 0 109.973c0 32.087 18.984 56.761 18.984 56.761l7.096-8.054 16.395 15.052 13.998 15.916-7.67 6.905s26.072 18.982 61.17 18.982c32.087 0 56.761-18.982 56.761-18.982l-8.054-7.096 15.052-16.396 15.916-13.998 6.905 7.671s18.982-26.074 18.982-61.171c0-32.088-18.982-56.76-18.982-56.76l-7.096 8.052-16.394-15.052-14-15.916 7.671-6.903S140.66 0 105.562 0zm-.192 8.438c28.187.505 46.406 12.464 46.406 12.464l-5.369 5.178 20.326 22.05 22.532 20.999 5.56-5.56s10.93 14.189 12.272 41.802c-.506 28.187-12.463 46.404-12.463 46.404l-5.178-5.369-22.053 20.328-20.996 22.532 5.56 5.56s-14.189 10.93-41.802 12.272c-28.186-.506-46.406-12.463-46.406-12.463l5.369-5.178-20.326-22.053-22.532-20.998-5.56 5.563S9.78 137.777 8.437 110.164C8.943 81.978 20.902 63.76 20.902 63.76l5.178 5.369 22.05-20.326 21-22.533-5.56-5.562s14.187-10.929 41.8-12.27zM71.295 60.467v11.879h9.734v69.62h-9.734v13.231h72.592v-13.23h-9.239V72.346l9.239.144V60.467z"
67853
+ fill-rule="evenodd"
67854
+ />
67855
+ </symbol>
67856
+ <symbol viewBox="0 0 448 512" id="icon-plus-square">
67857
+ <path
67858
+ d="M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
67859
+ />
67860
+ </symbol>
67861
+ <symbol
67862
+ viewBox="0 0 978 388"
67863
+ fill-rule="evenodd"
67864
+ stroke-linejoin="round"
67865
+ stroke-miterlimit="2"
67866
+ id="icon-pwa_logo"
67867
+ >
67868
+ <path
67869
+ d="m719.12 322.11 28.23-71.38h81.503l-38.688-108.283 48.38-122.33L977.1 388H874.92l-23.676-65.89H719.121zm-87.175 45.77L780.27-.002l-98.332.008L580.47 237.74 508.314.005h-75.581L355.264 237.74l-54.639-108.338-49.444 152.33 50.204 86.149h96.774l70.01-213.197 66.744 213.197h97.032zM93.344 241.602h60.57c18.348 0 34.684-2.045 49.013-6.142l15.662-48.254 43.78-134.881a107.213 107.213 0 0 0-11.423-14.996C228.468 12.446 195.578.013 152.284.013H.002v367.884h93.342V241.602zm80.172-156.96c8.782 8.838 13.17 20.668 13.17 35.476 0 14.933-3.863 26.77-11.58 35.522-8.469 9.723-24.052 14.588-46.757 14.588H93.344V71.394h35.264c21.161 0 36.133 4.411 44.908 13.249z"
67870
+ fill-opacity=".91"
67871
+ fill-rule="nonzero"
67872
+ />
67873
+ </symbol>
67874
+ <symbol viewBox="0 0 1952 734.93" id="icon-pwa_logo_inverse">
67875
+ <path
67876
+ d="m1436.62 603.304 56.39-142.599h162.82l-77.27-216.315L1675.2 0 1952 734.934h-204.13l-47.3-131.629h-263.95z"
67877
+ fill="#FFF"
67878
+ />
67879
+ <path
67880
+ d="M1262.47 734.935 1558.79.002h-196.45l-202.7 474.931L1015.5.003H864.499l-154.768 474.93-109.146-216.416-98.773 304.302 100.284 172.116h193.331l139.857-425.91 133.346 425.91h193.84z"
67881
+ fill="#a52f31"
67882
+ />
67883
+ <path
67884
+ d="M186.476 482.643h121.003c36.654 0 69.293-4.091 97.917-12.273l31.293-96.408 87.459-269.446c-6.664-10.563-14.272-20.55-22.824-29.96C456.419 24.853 390.719 0 304.222 0H0v734.933h186.476v-252.29zm160.166-313.564c17.54 17.653 26.309 41.276 26.309 70.871 0 29.822-7.713 53.474-23.138 70.956-16.91 19.425-48.047 29.137-93.409 29.137h-69.928V142.598h70.442c42.277 0 72.185 8.827 89.724 26.481z"
67885
+ fill="#FFF"
67886
+ />
67887
+ </symbol>
67888
+ <symbol viewBox="0 0 51.936 53.127" id="icon-qq">
67889
+ <path
67890
+ d="M50.267 29.674c1.056 2.179 1.833 4.656 1.64 7.586-.077 1.202-.385 2.516-.974 3.326-.3.409-.736.791-1.199.798-.776.014-1.331-.911-1.729-1.508-.473-.708-.83-1.392-1.198-2.085-.478.492-.645 1.208-.887 1.818-.757 1.91-1.812 3.573-3.149 4.924 1.251.725 2.418 1.229 3.504 2.084.668.527 1.552 1.284 1.331 2.529-.147.831-.863 1.532-1.376 1.862-3.574 2.307-11.038 1.969-15.435.533-.854-.28-1.711-.729-2.484-.843-.293-.044-.798-.023-1.109-.045-.448-.03-.947-.116-1.153-.089-.264.036-.492.307-.798.488-1.938 1.145-3.832 1.795-6.743 1.996-3.233.226-6.495-.043-9.003-.843-1.331-.424-3.111-1.291-3.282-2.838-.084-.75.122-1.874.399-2.396.688-1.304 2.242-1.724 4.168-1.907-.071-.333-.533-.547-.843-.8-1.828-1.492-3.261-3.503-4.169-5.987-.145-.399-.201-.849-.443-1.242-.428.314-.477.891-.754 1.331-.559.888-1.453 1.824-2.352 2.262-.33.161-.821.355-1.197.266-.729-.171-.895-1.512-.977-2.438-.302-3.444.698-6.223 1.819-8.384 1.432-2.76 3.478-4.552 5.545-6.254-.577-1.593.107-3.379.842-4.348.028-.728.098-1.399.354-2.04.146-.354.467-.582.533-.887.07-.319-.029-.676 0-1.065.327-4.318 2.986-8.22 5.368-10.6 1.413-1.414 2.668-2.418 4.655-3.327 1.801-.823 4.089-1.3 6.566-1.553h3.236C36.907.748 41.949 4.27 44.321 10.6c.365.972.631 1.96.888 3.016.254 1.044.223 2.32.576 3.415.214.663.766 1.254 1.065 1.953.606 1.412.807 3.406 0 4.789 1.197 1.682 2.382 3.77 3.417 5.901zm-3.328 19.341c.376-2.04-2.059-1.636-3.637-1.73.191-.668 1.122-.592 1.818-.754a4.123 4.123 0 0 0-2.972-1.464c-3.032 2.644-6.568 4.785-11.577 5.456 1.441 1.203 4.591 1.694 7.674 1.817 3.032.121 6.287-.618 7.807-1.907.405-.343.793-.901.887-1.418zm-2.661-10.159c1.104-4.161-.569-7.771-2.262-10.246-5.013 3.403-13.106 6.049-20.804 4.035.045.823.128 1.729.134 2.706.005.971.195 2.061.044 2.883-.117.646-.679 1.299-1.197 1.509-.768.312-1.958.297-2.929.223-1.758-.137-3.261-.984-3.725-2.352-.176-.519-.14-1.181-.179-1.819-.119-2.033.078-3.921.356-5.722a20.458 20.458 0 0 0-2.706-1.597c-1.445 1.452-2.125 5.038-2.04 7.541.021.635.159 1.545.31 2.262.412 1.965 1.507 3.791 2.706 5.19 1.242 1.449 2.606 2.588 4.303 3.592 3.394 2.012 8.088 3.016 12.598 3.062 1.633.016 3.217-.311 4.701-.843 1.508-.542 2.95-1.376 4.259-2.219 1.289-.83 2.639-1.991 3.504-2.972 1.155-1.309 2.39-3.207 2.927-5.233zm-6.653-17.167c.361-.167 1.765-.771 1.73-1.242-.02-.237-.747-.669-1.109-.886-3.768-2.251-9.395-3.03-14.948-2.219-2.127.312-4.053.812-5.811 1.643-.556.262-2.138 1.056-2.085 1.64.021.228.378.505.577.622.864.507 2.262.805 3.238 1.02-.198-.543-.586-.892-.8-1.419 1.998 1.383 4.328 2.877 7.407 3.149 4.613.406 8.113-1.41 10.735-3.149-.25.629-1.129.919-1.287 1.464 1.02-.012 1.607-.278 2.353-.623zm-5.013-4.568c3.081-1.104 3.179-8.305.045-9.492-.281-.106-.839-.111-1.02-.088-1.013.122-1.712.842-2.13 1.553-1.396 2.374-.918 7.275 1.73 8.072.496.149 1.05.071 1.375-.045zm-9.889-.044c2.244.224 3.325-2.575 3.281-4.79-.046-2.284-1.131-4.685-2.972-4.701-1.132-.012-1.932.767-2.395 1.597-1.373 2.454-.784 7.608 2.086 7.894zm-5.858 35.528c3.022-.151 6.146-.59 7.275-2.262-4.633-.55-8.8-1.938-11.933-4.081-.395-.27-1.05-.858-1.374-.931-.07-.016-.221.042-.354.043-1.067.018-1.794.433-2.618.933-.552.336-1.23.853-.797 1.465.491-.026.791-.243 1.374-.179-.568.498-1.555.885-1.774 1.729-.188.73.512 1.346.932 1.642 2.09 1.479 5.7 1.823 9.269 1.641z"
67891
+ />
67892
+ <path
67893
+ d="M41.528 36.549c.038.506-.653.628-.931.312-.854.229-1.98.008-1.775-1.108.18-.976 1.55-1.893 2.219-.977.289.396.189 1.1.397 1.642-.208-.146-.358-.351-.62-.444-.936.278.404 1.491.71.575zm-1.287-.709c.201-.062.223.172.356.044-.182-1.575-1.55.501-.533.576-.017-.283.007-.524.177-.62zm.134.178c-.228-.036-.168.216-.177.399.151-.042.091-.293.177-.399z"
67894
+ />
67895
+ <path
67896
+ d="M40.642 36.417c-.188-.063.003-.296.177-.268-.018.131-.145.152-.177.268zm-1.952.132c.024.477-.659.647-.933.312-.787.158-1.766.092-1.817-.754-.065-1.048 1.341-2.195 2.128-1.465.295.274.419.786.354 1.42.058.105.113.212.179.311-.311 0-.355-.427-.665-.399-.595.051-.187.941.266.931.312-.008.241-.216.488-.356zm-1.287-.709c.173-.035.229.163.354.044-.071-.299-.175-.564-.443-.665-.373.127-.79 1.291-.089 1.198-.06-.217-.005-.482.178-.577zm0 .577c.016-.138.224-.384.045-.444-.082.137-.224.359-.045.444z"
67897
+ />
67898
+ <path
67899
+ d="M37.937 36.106c.122.098-.141.181-.134.311-.217-.092.06-.238.134-.311zm-6.034-25.15c.593.289.962 1.389.62 2.262-.961.134-.553-1.236-1.108-1.331-.612-.102-.519 1.057-.888 1.376-.688-.091-.519-.928-.354-1.419.206-.616.952-1.269 1.73-.888zm-7.541-.488c1.771-.235 1.605 3.937.089 3.858-1.539-.077-1.62-3.654-.089-3.858z"
67900
+ />
67901
+ </symbol>
67902
+ <symbol viewBox="0 0 512 512" id="icon-question-circle-solid">
67903
+ <path
67904
+ d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"
67905
+ />
67906
+ </symbol>
67907
+ <symbol viewBox="0 0 512 512" id="icon-search">
67908
+ <path
67909
+ d="M505 442.7 405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"
67910
+ />
67911
+ </symbol>
67912
+ <symbol viewBox="0 0 512 512" id="icon-search-plus">
67913
+ <path
67914
+ d="M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"
67915
+ />
67916
+ </symbol>
67917
+ <symbol viewBox="0 0 576 512" id="icon-shopping-cart">
67918
+ <path
67919
+ d="m528.12 301.319 47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"
67920
+ />
67921
+ </symbol>
67922
+ <symbol viewBox="0 0 512 512" id="icon-sign-in-alt">
67923
+ <path
67924
+ d="M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"
67925
+ />
67926
+ </symbol>
67927
+ <symbol viewBox="0 0 512 512" id="icon-sign-out-alt">
67928
+ <path
67929
+ d="M497 273 329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"
67930
+ />
67931
+ </symbol>
67932
+ <symbol viewBox="0 0 400 423" id="icon-simpleAvgPrice">
67933
+ <path
67934
+ d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
67935
+ fill="#464646"
67936
+ />
67937
+ </symbol>
67938
+ <symbol viewBox="0 0 496 512" id="icon-smile">
67939
+ <path
67940
+ d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"
67941
+ />
67942
+ </symbol>
67943
+ <symbol viewBox="0 0 32 32" id="icon-stack">
67944
+ <path
67945
+ d="M32 10 16 2 0 10l16 8 16-8zM16 4.655 26.689 10 16 15.345 5.311 10 16 4.655zm12.795 9.743L32 16l-16 8-16-8 3.205-1.602L16 20.796zm0 6L32 22l-16 8-16-8 3.205-1.602L16 26.796z"
67946
+ />
67947
+ </symbol>
67948
+ <symbol viewBox="0 0 448 512" id="icon-steam-square">
67949
+ <path
67950
+ d="M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"
67951
+ />
67952
+ </symbol>
67953
+ <symbol viewBox="0 0 352 512" id="icon-times">
67954
+ <path
67955
+ d="m242.72 256 100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"
67956
+ />
67957
+ </symbol>
67958
+ <symbol viewBox="0 0 448 512" id="icon-trash-alt">
67959
+ <path
67960
+ d="M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z"
67961
+ />
67962
+ </symbol>
67963
+ <symbol viewBox="0 0 512 512" id="icon-upload">
67964
+ <path
67965
+ d="M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"
67966
+ />
67967
+ </symbol>
67968
+ <symbol viewBox="0 0 448 512" id="icon-user">
67969
+ <path
67970
+ d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"
67971
+ />
67972
+ </symbol>
67973
+ <symbol viewBox="0 0 13.546 16.345" id="icon-vazarin">
67974
+ <path
67975
+ d="M0 1.226c5.958 2.784 9.917 8.708 11.277 15.12 1.011-1.734 1.735-3.47 2.192-6.668.349-3.612-.572-7.13-1.043-9.678C11.95 1.529 0 1.226 0 1.226zM7.14 4.87s3.362-.141 4.93-.063c.186 1.331.536 2.41-.233 4.804l-1.525-.03C9.272 7.546 7.14 4.869 7.14 4.869z"
67976
+ />
67977
+ </symbol>
67978
+ <symbol viewBox="0 0 614.156 507.697" id="icon-wifi2">
67979
+ <path
67980
+ d="M306.719 118.003c-80.452.303-160.77 30.425-222.313 90.281l55.906 55.282c92.257-89.611 240.746-90.142 333.657-1.157l55.781-55.812c-62.01-59.39-142.58-88.897-223.031-88.594M140.312 263.566l-.125.093z"
67981
+ />
67982
+ <path
67983
+ d="M306.594.003C195.649.421 84.87 41.96 0 124.503l55.469 54.844C194.41 44.792 417.73 44.108 557.5 177.972l56.656-55.781C528.642 40.29 417.54-.415 306.594.003M55.469 179.347l-.563.531zm251.406 56.156c-50.088.189-100.122 18.954-138.438 56.219l53.438 52.812c47.181-45.82 123.111-46.068 170.625-.562l53.219-53.313c-38.607-36.975-88.756-55.345-138.844-55.156zm-85 109.031-.063.063z"
67984
+ />
67985
+ <circle cx="307.078" cy="429.197" r="78.5" />
67986
+ </symbol>
67987
+ <symbol viewBox="0 0 372.369 372.573" id="icon-xbox">
67988
+ <path
67989
+ d="M167.618 371.807c-28.683-2.748-57.723-13.049-82.67-29.325-20.904-13.639-25.624-19.245-25.624-30.434 0-22.476 24.712-61.84 66.992-106.716 24.013-25.487 57.46-55.36 61.078-54.55 7.03 1.571 63.25 56.41 84.296 82.224 33.28 40.821 48.58 74.245 40.808 89.147-5.908 11.327-42.572 33.467-69.507 41.972-22.2 7.01-51.356 9.981-75.373 7.681zM31.09 288.68C13.719 262.03 4.943 235.793.705 197.847c-1.4-12.53-.898-19.697 3.177-45.415 5.08-32.054 23.333-69.137 45.268-91.958 9.34-9.72 10.176-9.956 21.563-6.12C84.54 59.012 99.309 69.211 122.21 89.92l13.363 12.083-7.297 8.964c-33.873 41.613-69.63 100.597-83.106 137.09-7.326 19.838-10.28 39.753-7.128 48.043 2.128 5.598.173 3.511-6.953-7.42zm304.915 4.532c1.716-8.377-.454-23.762-5.54-39.28-11.018-33.606-47.84-96.124-81.654-138.63l-10.644-13.38 11.516-10.575c15.036-13.807 25.476-22.074 36.74-29.095 8.889-5.54 21.59-10.444 27.05-10.444 3.367 0 15.218 12.298 24.785 25.72 14.818 20.788 25.718 45.987 31.24 72.22 3.57 16.95 3.867 53.231.576 70.14-2.7 13.875-8.403 31.874-13.966 44.081-4.17 9.147-14.536 26.91-19.08 32.691-2.334 2.972-2.336 2.965-1.023-3.448zM170.69 45.462c-15.601-7.923-39.67-16.427-52.965-18.715-4.66-.803-12.612-1.25-17.67-.995-10.97.554-10.48-.02 7.119-8.333 14.63-6.912 26.834-10.977 43.4-14.455C169.21-.949 204.24-.996 222.58 2.87c19.808 4.174 43.133 12.854 56.276 20.943l3.906 2.404-8.962-.453c-17.81-.9-43.766 6.296-71.633 19.857-8.405 4.09-15.718 7.358-16.25 7.26-.532-.097-7.384-3.436-15.227-7.418z"
67990
+ style="stroke: none"
67991
+ />
67992
+ </symbol>
67993
+ </defs>
67994
+ </svg>
67995
+ `;
67996
+ var htmlString = /* @__PURE__ */ (() => {
67997
+ const template = `
67998
+ <!DOCTYPE html>
67999
+ <html>
68000
+ <head>
68001
+ <meta charset="UTF-8" />
68002
+ <title>{{title}}</title>
68003
+ <style>{{style}}</style>
68004
+ </head>
68005
+ <body>
68006
+ <div style="display: none;">{{svg}}</div>
68007
+ <div id="root">{{htmlString}}</div>
68008
+ </body>
68009
+ </html>`;
68010
+ return (htmlString2, title = "title") => {
68011
+ return template.replace("{{htmlString}}", htmlString2).replace("{{title}}", title).replace("{{style}}", style).replace("{{svg}}", svg);
66420
68012
  };
66421
- const enTier = zhTierMap[tier] ?? tier;
66422
- const key = normalizeName(enTier + category);
66423
- return relics[key] ?? "未找到对应遗物信息";
66424
- }, "getRelic");
66425
- var getArbitrations = /* @__PURE__ */ __name((day = 3) => {
66426
- if (day > 14 || day <= 0) {
66427
- return "天数需小于等于14且大于0";
66428
- }
66429
- const currentHourTimeStamp = Math.floor(
66430
- (/* @__PURE__ */ new Date()).setMinutes(0, 0, 0) / 1e3
66431
- );
66432
- const currentHourIndex = arbitrationSchedule.findIndex(
66433
- (a) => a.time === currentHourTimeStamp
66434
- );
66435
- const weekArbys = arbitrationSchedule.slice(
66436
- currentHourIndex,
66437
- currentHourIndex + 24 * day
66438
- );
66439
- return weekArbys.filter((a) => arbyRewards_default[a.node]).map((a) => {
66440
- const obj = regionToShort(import_warframe_public_export_plus8.ExportRegions[a.node], import_warframe_public_export_plus8.dict_zh);
66441
- return {
66442
- ...obj,
66443
- time: new Date(a.time * 1e3).toLocaleString("zh-cn", {
66444
- year: "numeric",
66445
- month: "numeric",
66446
- day: "numeric",
66447
- hour: "numeric",
66448
- // minute: 'numeric', // 保持注释或删除,以去除分钟
66449
- // second: 'numeric', // 保持注释或删除,以去除秒
66450
- hour12: false,
66451
- // 统一使用 24 小时制
66452
- // hourCycle: 'h23' // 另一种设置 24 小时制的方法
66453
- timeZone: "Asia/Shanghai"
66454
- }),
66455
- rewards: arbyRewards_default[a.node]
66456
- };
66457
- });
66458
- }, "getArbitrations");
66459
- var getWeekly = /* @__PURE__ */ __name(async () => {
66460
- const { raw: worldState } = await globalWorldState.get();
66461
- if (!worldState) {
66462
- return "内部错误,获取最新信息失败";
68013
+ })();
68014
+ var generateImageOutput = /* @__PURE__ */ __name(async (puppe, element) => {
68015
+ if (!puppe) {
68016
+ return "本功能需要启用 koishi-plugin-puppeteer 插件";
66463
68017
  }
66464
- const archon = {
66465
- name: import_warframe_public_export_plus8.dict_zh["/Lotus/Language/Narmer/" + removeSpace(worldState.archonHunt.boss)]
66466
- };
66467
- const stringToDebuff = /* @__PURE__ */ __name((key, name2, prefix) => {
66468
- const keyToName = zh_default[`${prefix}${key}`];
66469
- if (!keyToName) {
66470
- for (const transKey in en_default) {
66471
- if (en_default[transKey] === name2) {
66472
- return {
66473
- name: zh_default[transKey],
66474
- desc: zh_default[transKey + "_Desc"]
66475
- };
66476
- }
66477
- }
68018
+ return await puppe.render(
68019
+ htmlString(element.toString()),
68020
+ async (page, next) => {
68021
+ const handle = await page.$("#root>*");
68022
+ return await next(handle ?? void 0);
66478
68023
  }
66479
- const riskDesc = zh_default[`${prefix}${key}_Desc`];
66480
- return {
66481
- name: keyToName,
66482
- desc: riskDesc
66483
- };
66484
- }, "stringToDebuff");
66485
- const deepArchim = worldState.archimedeas[0];
66486
- const deepArchimMissions = await Promise.all(
66487
- deepArchim.missions.map(async (m) => {
66488
- const receivedType = await getMissionTypeKey(m.missionType);
66489
- const type = import_warframe_public_export_plus8.dict_zh[import_warframe_public_export_plus8.ExportMissionTypes[receivedType]?.name ?? ""] ?? m.missionType;
66490
- const deviation = stringToDebuff(
66491
- m.deviation.key,
66492
- m.deviation.name,
66493
- "/Lotus/Language/Conquest/MissionVariant_LabConquest_"
66494
- );
66495
- const risks = m.risks.map(
66496
- (r) => stringToDebuff(r.key, r.name, "/Lotus/Language/Conquest/Condition_")
66497
- );
66498
- return {
66499
- type,
66500
- deviation,
66501
- risks
66502
- };
66503
- })
66504
- );
66505
- const deepArchimPersonalModifier = deepArchim.personalModifiers.map(
66506
- (p) => stringToDebuff(p.key, p.name, "/Lotus/Language/Conquest/PersonalMod_")
66507
- );
66508
- const deepArchimRes = {
66509
- name: "深层科研",
66510
- missions: deepArchimMissions,
66511
- peronal: deepArchimPersonalModifier
66512
- };
66513
- const temporalArchim = worldState.archimedeas[1];
66514
- const temporalArchimMissions = await Promise.all(
66515
- temporalArchim.missions.map(async (m) => {
66516
- const receivedType = await getMissionTypeKey(m.missionType);
66517
- const type = import_warframe_public_export_plus8.dict_zh[import_warframe_public_export_plus8.ExportMissionTypes[receivedType]?.name ?? ""] ?? receivedType;
66518
- const deviation = stringToDebuff(
66519
- m.deviation.key,
66520
- m.deviation.name,
66521
- "/Lotus/Language/Conquest/MissionVariant_HexConquest_"
66522
- );
66523
- const risks = m.risks.map(
66524
- (r) => stringToDebuff(r.key, r.name, "/Lotus/Language/Conquest/Condition_")
66525
- );
66526
- return {
66527
- type,
66528
- deviation,
66529
- risks
66530
- };
66531
- })
66532
- );
66533
- const temporalArchimPersonalModifier = temporalArchim.personalModifiers.map(
66534
- (p) => stringToDebuff(p.key, p.name, "/Lotus/Language/Conquest/PersonalMod_")
66535
- );
66536
- const temporalArchimRes = {
66537
- name: "时光科研",
66538
- missions: temporalArchimMissions,
66539
- peronal: temporalArchimPersonalModifier
66540
- };
66541
- return {
66542
- archonHunt: archon,
66543
- deepArchimedea: deepArchimRes,
66544
- temporalArchimedea: temporalArchimRes
66545
- };
66546
- }, "getWeekly");
66547
- var getEnvironment = /* @__PURE__ */ __name(async () => {
66548
- const { raw: worldState } = await globalWorldState.get();
66549
- if (!worldState) {
66550
- return "内部错误,获取最新信息失败";
66551
- }
66552
- const cetusDay = worldState.cetusCycle.isDay ? "白天" : "黑夜";
66553
- const cetus = `地球/夜灵平野: ${cetusDay} ${worldState.cetusCycle.timeLeft}`;
66554
- const vallisState = worldState.vallisCycle.isWarm ? "温暖" : "寒冷";
66555
- const vallis = `奥布山谷: ${vallisState} ${worldState.vallisCycle.timeLeft}`;
66556
- const cambionState = worldState.cambionCycle.state ? worldState.cambionCycle.state.charAt(0).toUpperCase() + worldState.cambionCycle.state.slice(1) : "未知";
66557
- const cambion = `魔胎之境: ${cambionState} ${worldState.cambionCycle.timeLeft}`;
66558
- const duviriStateTransDict = {
66559
- sorrow: "悲伤",
66560
- fear: "恐惧",
66561
- joy: "喜悦",
66562
- anger: "愤怒",
66563
- envy: "嫉妒"
66564
- };
66565
- const duviriState = duviriStateTransDict[worldState.duviriCycle.state] ?? worldState.duviriCycle.state;
66566
- const duviri = `双衍王境: ${duviriState} ${worldState.duviriCycle.endString}`;
66567
- const zarimanFaction = worldState.zarimanCycle.isCorpus ? "Corpus" : "Grineer";
66568
- const zariman = `扎里曼号: ${zarimanFaction} ${worldState.zarimanCycle.timeLeft}`;
66569
- return `当前环境:
66570
- ${cetus}
66571
- ${vallis}
66572
- ${cambion}
66573
- ${duviri}
66574
- ${zariman}`;
66575
- }, "getEnvironment");
66576
- var getCircuitWeek = /* @__PURE__ */ __name(() => {
66577
- const EPOCH = 1734307200 * 1e3;
66578
- const week = Math.trunc((Date.now() - EPOCH) / 6048e5);
66579
- const index1 = (week + 1) % incarnons.length;
66580
- const index2 = (week + 8) % warframes.length;
66581
- const incarnons2 = incarnons.map((v) => v.map((i) => import_warframe_public_export_plus8.dict_zh[i]));
66582
- const warframes2 = warframes.map((v) => v.map((i) => import_warframe_public_export_plus8.dict_zh[i]));
66583
- return {
66584
- currentIncarnons: index1,
66585
- currentWarframes: index2,
66586
- allIncarnons: incarnons2,
66587
- allWarframes: warframes2
66588
- };
66589
- }, "getCircuitWeek");
66590
- var getFissures = /* @__PURE__ */ __name(async () => {
66591
- const { fissures } = await globalWorldState.get();
66592
- return fissures ?? "内部错误,获取最新信息失败";
66593
- }, "getFissures");
66594
- var getSteelPathFissures = /* @__PURE__ */ __name(async () => {
66595
- const { spFissures } = await globalWorldState.get();
66596
- return spFissures ?? "内部错误,获取最新信息失败";
66597
- }, "getSteelPathFissures");
66598
- var getRailjackFissures = /* @__PURE__ */ __name(async () => {
66599
- const { rjFissures } = await globalWorldState.get();
66600
- return rjFissures ?? "内部错误,获取最新信息失败";
66601
- }, "getRailjackFissures");
66602
- var getAnalyzedRiven = /* @__PURE__ */ __name(async (secret, url) => {
66603
- const img = await fetchAsyncImage(url);
66604
- if (!img) {
66605
- return "获取图片失败";
66606
- }
66607
- const extractResult = await extractTextFromImage(img, secret);
66608
- if (!extractResult) {
66609
- return "解析图片失败";
66610
- }
66611
- const parseResult = await parseOCRResult(extractResult);
66612
- if (!parseResult || parseResult.attributes.length < 2 || parseResult.attributes.length > 4) {
66613
- return "解析图片失败";
66614
- }
66615
- return analyzeRivenStat(parseResult);
66616
- }, "getAnalyzedRiven");
66617
- var getVoidTrader = /* @__PURE__ */ __name(async () => {
66618
- const { raw: worldState } = await globalWorldState.get();
66619
- if (worldState.voidTraders.length === 0) {
66620
- return "虚空商人仍在未知地带漂流...";
66621
- }
66622
- const trader = worldState.voidTraders[0];
66623
- if (trader && trader.activation && trader.activation.getTime() > Date.now()) {
66624
- const diff2 = trader.activation.getTime() - Date.now();
66625
- return "距离虚空商人到达还有: " + msToHumanReadable(diff2);
66626
- }
66627
- const diff = trader.expiry.getTime() - Date.now();
66628
- const items = trader.inventory.map(getVoidTraderItem);
66629
- return { expiry: msToHumanReadable(diff), items };
66630
- }, "getVoidTrader");
66631
- var getStaticRivenStats = /* @__PURE__ */ __name(async (weaponType, statType, disposition) => {
66632
- if (disposition > 1.55 || disposition < 0.5) {
66633
- return "裂罅倾向错误";
66634
- }
66635
- const weaponTypes = [
66636
- "步枪",
66637
- "手枪",
66638
- "霰弹枪",
66639
- "Archwing枪械",
66640
- "近战",
66641
- "Rifle",
66642
- "Shotgun",
66643
- "Pistol",
66644
- "Archgun",
66645
- "Melee"
66646
- ];
66647
- const matchedWeaponType = weaponTypes.find(
66648
- (v) => normalizeName(v).startsWith(normalizeName(weaponType))
66649
68024
  );
66650
- if (!matchedWeaponType) {
66651
- return "武器类型错误";
66652
- }
66653
- const weaponTypeKeys = {
66654
- 步枪: "Rifle",
66655
- 手枪: "Pistol",
66656
- 霰弹枪: "Shotgun",
66657
- 近战: "Melee",
66658
- Archwing枪械: "Archgun"
66659
- };
66660
- const weaponTypeKey = weaponTypeKeys[matchedWeaponType] ?? matchedWeaponType;
66661
- const statTypes = ["2", "3", "21", "31"];
66662
- if (!statTypes.includes(statType)) {
66663
- return "词条类型错误";
66664
- }
66665
- const rivenAttrValues = rivenAttrValueDict[weaponTypeKey];
66666
- const factor = rivenStatFixFactor[statType];
66667
- const result = {
66668
- positive: {},
66669
- negative: factor.curseCount > 0 ? {} : void 0
66670
- };
66671
- const { globalRivenAttributeList } = await globalRivenAttribute.get();
66672
- for (const key in rivenAttrValues) {
66673
- const data = globalRivenAttributeList.find(
66674
- (v) => normalizeName(v.i18n["en"].name) == key
66675
- );
66676
- const baseValue = rivenAttrValues[key];
66677
- const buffValue = baseValue * disposition * factor.buffFactor;
66678
- result.positive[key] = {
66679
- name: data?.i18n["zh-hans"].name ?? key,
66680
- max: buffValue * 1.1,
66681
- min: buffValue * 0.9,
66682
- unit: data?.unit ?? ""
66683
- };
66684
- if (result.negative) {
66685
- const curseValue = baseValue * disposition * factor.curseFactor;
66686
- result.negative[key] = {
66687
- name: data?.i18n["zh-hans"].name ?? key,
66688
- max: curseValue * 0.9,
66689
- min: curseValue * 1.1,
66690
- unit: data?.unit ?? ""
66691
- };
66692
- }
66693
- }
66694
- return result;
66695
- }, "getStaticRivenStats");
66696
- var getWeaponRivenDisposition = /* @__PURE__ */ __name((name2) => {
66697
- const normalizedName = normalizeName(name2);
66698
- const normalRes = weaponRivenDispositionDict[normalizedName];
66699
- if (normalRes) {
66700
- return normalRes;
66701
- }
66702
- const withPrimeSuffix = normalizedName + "prime";
66703
- const withPrimeRes = weaponRivenDispositionDict[withPrimeSuffix];
66704
- if (withPrimeRes) {
66705
- return withPrimeRes;
66706
- }
66707
- return void 0;
66708
- }, "getWeaponRivenDisposition");
66709
- var parseOCRResult = /* @__PURE__ */ __name(async (ocrResult) => {
66710
- const { globalRivenAttributeList } = await globalRivenAttribute.get();
66711
- const list = ocrResult;
66712
- if (!list.length) {
66713
- return;
66714
- }
66715
- function similarity(standard, input) {
66716
- if (!standard || !input) {
66717
- return 0;
66718
- }
66719
- standard = normalizeName(standard);
66720
- input = normalizeName(input);
66721
- if (input === "伤害") {
66722
- return standard === "基础伤害" ? 1 : 0;
66723
- }
66724
- if (input === "弹药最大值") {
66725
- return standard === "弹药上限" ? 1 : 0;
66726
- }
66727
- if (standard === "基础伤害" && input.match(/^伤害$|近战伤害/)) {
66728
- return 1;
66729
- }
66730
- if (standard === "暴击率") {
66731
- standard = "暴击几率";
66732
- }
66733
- if (standard.includes(input) || input.includes(standard) || standard.split("/").find((x) => !!x && input.includes(x))) {
66734
- return 1;
66735
- }
66736
- const t = tokenSimilarity(standard, input);
66737
- const s = normalSimilarity(standard, input);
66738
- return Math.max(t, s);
66739
- }
66740
- __name(similarity, "similarity");
66741
- const texts = list;
66742
- const attributes = [];
66743
- const statLines = [];
66744
- for (const t of texts) {
66745
- if (!t || !t.match(/^[x+-]|^[0-9]/)) {
66746
- continue;
66747
- }
66748
- const prefix = t.match(/^[x+-]/) ? t[0] : "";
66749
- const attrNamePart = removeSpace(t ?? "").replace(/^[^一-龥]+/, "");
66750
- const attr = globalRivenAttributeList.find((a) => {
66751
- if (!a) return false;
66752
- let zhName = a.i18n["zh-hans"]?.name;
66753
- if (!zhName) return false;
66754
- const sim = similarity(zhName, attrNamePart);
66755
- if (sim < 0.8) return false;
66756
- return true;
66757
- });
66758
- if (!attr) {
66759
- continue;
66760
- }
66761
- statLines.push(t);
66762
- const value = (/* @__PURE__ */ __name((function extractStatValue(text) {
66763
- const t2 = text.replace(/\s+/g, "");
66764
- const multMatch = t2.match(/x(\d+(\.\d+)?)/i);
66765
- if (multMatch) {
66766
- return {
66767
- value: parseFloat(multMatch[1]),
66768
- type: "multiply"
66769
- };
66770
- }
66771
- const percentMatch = t2.match(/([+-]?\d+(\.\d+)?)%/);
66772
- if (percentMatch) {
66773
- return {
66774
- value: parseFloat(percentMatch[1]),
66775
- type: "percent"
66776
- };
66777
- }
66778
- const numMatch = t2.match(/([+-]?\d+(\.\d+)?)/);
66779
- if (numMatch) {
66780
- return {
66781
- value: parseFloat(numMatch[1]),
66782
- type: "number"
66783
- };
66784
- }
66785
- return void 0;
66786
- }), "extractStatValue"))(t);
66787
- if (!value) {
66788
- return void 0;
66789
- }
66790
- attributes.push({ attr, value: value.value, prefix });
66791
- }
66792
- const weaponName = (/* @__PURE__ */ __name((function extractWeaponName(ocrData) {
66793
- const rejectPatterns = [
66794
- /%/,
66795
- /x\d/i,
66796
- /\d/,
66797
- // numbers, %, multipliers
66798
- /伤害/,
66799
- /暴击/,
66800
- /射速/,
66801
- /攻击/,
66802
- /后坐力/,
66803
- /段位/,
66804
- /加倍/,
66805
- /效/,
66806
- /武器/,
66807
- /果/,
66808
- /\)/,
66809
- /\(/
66810
- // junk OCR fragments
66811
- ];
66812
- const candidates = ocrData.filter((str) => {
66813
- const s = str.trim();
66814
- if (/^\d+$/.test(s)) return false;
66815
- if (/[+%]/.test(s)) return false;
66816
- if (!/[A-Za-z\u4e00-\u9fa5]/.test(s)) return false;
66817
- if (rejectPatterns.some((p) => p.test(s))) return false;
66818
- return true;
66819
- });
66820
- const merged = candidates.join("");
66821
- function removeRivenSuffix(name2) {
66822
- let s = name2.replace(/\s+/g, "");
66823
- const rivenPattern = /[A-Za-z]+-?[A-Za-z]+$/;
66824
- return s.replace(rivenPattern, "");
66825
- }
66826
- __name(removeRivenSuffix, "removeRivenSuffix");
66827
- return merged ? removeRivenSuffix(merged) : null;
66828
- }), "extractWeaponName"))(texts.filter((t) => !statLines.some((l) => l === t)));
66829
- if (!weaponName || !attributes.length) {
66830
- return void 0;
66831
- }
66832
- return {
66833
- name: weaponName,
66834
- attributes
66835
- };
66836
- }, "parseOCRResult");
66837
- var analyzeRivenStat = /* @__PURE__ */ __name((parseResult) => {
66838
- const weaponRiven = getWeaponRivenDisposition(parseResult.name);
66839
- if (!weaponRiven) {
66840
- return "未找到武器: " + parseResult.name;
66841
- }
66842
- const disposition = weaponRiven.calc.disposition;
66843
- const weaponType = weaponRiven.calc.riventype;
66844
- const rivenStatCountType = (function() {
66845
- if (parseResult.attributes.length === 4) {
66846
- return "31";
66847
- } else if (parseResult.attributes.length === 2) {
66848
- return "2";
66849
- }
66850
- const firstStat = parseResult.attributes[0];
66851
- const firstStatBaseValue = rivenAttrValueDict[weaponType][normalizeName(firstStat.attr.i18n["en"].name)];
66852
- if (firstStat.value >= firstStatBaseValue * 1.2375 * 0.9 * disposition) {
66853
- return "21";
66854
- } else {
66855
- return "3";
66856
- }
66857
- })();
66858
- const { buffFactor, buffCount, curseFactor, curseCount } = rivenStatFixFactor[rivenStatCountType];
66859
- const buffs = [];
66860
- for (let i = 0; i < buffCount; i++) {
66861
- const attr = parseResult.attributes[i];
66862
- const baseValue = rivenAttrValueDict[weaponType][normalizeName(attr.attr.i18n["en"].name)];
66863
- const value = attr.attr.unit === "multiply" ? attr.value - 1 : attr.value;
66864
- const standardValue = baseValue * buffFactor * disposition;
66865
- const percent = (value - standardValue) / standardValue;
66866
- buffs.push({
66867
- name: attr.attr.i18n["zh-hans"].name,
66868
- unit: attr.attr.unit,
66869
- value: attr.value,
66870
- percent,
66871
- max: standardValue * 1.1,
66872
- min: standardValue * 0.9
66873
- });
66874
- }
66875
- const curses = [];
66876
- if (curseCount > 0) {
66877
- for (let i = buffCount; i < buffCount + curseCount; i++) {
66878
- const attr = parseResult.attributes[i];
66879
- const baseValue = rivenAttrValueDict[weaponType][normalizeName(attr.attr.i18n["en"].name)];
66880
- const value = attr.attr.unit === "multiply" ? attr.value - 1 : attr.value;
66881
- const standardValue = baseValue * curseFactor * disposition;
66882
- const percent = (value - standardValue) / standardValue * -1;
66883
- curses.push({
66884
- name: attr.attr.i18n["zh-hans"].name,
66885
- unit: attr.attr.unit,
66886
- value: attr.value,
66887
- percent,
66888
- max: standardValue * 0.9,
66889
- min: standardValue * 1.1
66890
- });
66891
- }
66892
- }
66893
- return {
66894
- name: weaponRiven.name.zh,
66895
- disposition,
66896
- buffs,
66897
- curses
66898
- };
66899
- }, "analyzeRivenStat");
68025
+ }, "generateImageOutput");
66900
68026
 
66901
68027
  // src/components/wf.tsx
66902
68028
  var import_jsx_runtime = require("@satorijs/element/jsx-runtime");
@@ -69023,12 +70149,13 @@ var onReadyHandler = /* @__PURE__ */ __name(async () => {
69023
70149
  }, "onReadyHandler");
69024
70150
 
69025
70151
  // src/index.ts
70152
+ var import_reflect_metadata = __toESM(require_Reflect());
69026
70153
  var name = "warframe";
69027
- var Config = import_koishi.Schema.object({
69028
- developerMode: import_koishi.Schema.boolean().default(false),
69029
- ocrAPISecret: import_koishi.Schema.object({
69030
- id: import_koishi.Schema.string().required(),
69031
- key: import_koishi.Schema.string().required()
70154
+ var Config = import_koishi2.Schema.object({
70155
+ developerMode: import_koishi2.Schema.boolean().default(false),
70156
+ ocrAPISecret: import_koishi2.Schema.object({
70157
+ id: import_koishi2.Schema.string().required(),
70158
+ key: import_koishi2.Schema.string().required()
69032
70159
  }).description("OCR API 密钥")
69033
70160
  });
69034
70161
  function apply(ctx) {
@@ -69039,7 +70166,7 @@ __name(apply, "apply");
69039
70166
  var setupHooks = /* @__PURE__ */ __name((ctx) => {
69040
70167
  ctx.on("message", (session) => {
69041
70168
  if (ctx.config.developerMode) {
69042
- ctx.logger.info(
70169
+ logger.info(
69043
70170
  `Koishi recieved message: ${session.content}
69044
70171
  Platform: ${session.platform}
69045
70172
  User: ${session.author.name}`
@@ -69048,7 +70175,7 @@ var setupHooks = /* @__PURE__ */ __name((ctx) => {
69048
70175
  });
69049
70176
  ctx.on("command/before-execute", (action) => {
69050
70177
  if (ctx.config.developerMode) {
69051
- ctx.logger.info(
70178
+ logger.info(
69052
70179
  `WFM Plugin received command ${action.command?.name}
69053
70180
  arguments: ${JSON.stringify(action.args)}`
69054
70181
  );
@@ -69093,3 +70220,21 @@ var inDevelopment = /* @__PURE__ */ __name(() => {
69093
70220
  apply,
69094
70221
  name
69095
70222
  });
70223
+ /*! Bundled license information:
70224
+
70225
+ reflect-metadata/Reflect.js:
70226
+ (*! *****************************************************************************
70227
+ Copyright (C) Microsoft. All rights reserved.
70228
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
70229
+ this file except in compliance with the License. You may obtain a copy of the
70230
+ License at http://www.apache.org/licenses/LICENSE-2.0
70231
+
70232
+ THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
70233
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
70234
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
70235
+ MERCHANTABLITY OR NON-INFRINGEMENT.
70236
+
70237
+ See the Apache Version 2.0 License for specific language governing permissions
70238
+ and limitations under the License.
70239
+ ***************************************************************************** *)
70240
+ */