@thi.ng/hdom 8.2.32 → 9.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js DELETED
@@ -1,632 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var api = require('@thi.ng/api');
6
- var diff = require('@thi.ng/diff');
7
- var equiv$1 = require('@thi.ng/equiv');
8
- var checks = require('@thi.ng/checks');
9
- var hiccup = require('@thi.ng/hiccup');
10
- var prefixes = require('@thi.ng/prefixes');
11
- var errors = require('@thi.ng/errors');
12
-
13
- const isArray$2 = Array.isArray;
14
- const max = Math.max;
15
- const OBJP = Object.getPrototypeOf({});
16
- const FN = "function";
17
- const STR = "string";
18
- const INDEX = (() => {
19
- const res = new Array(2048);
20
- for (let i = 2, n = res.length; i < n; i++) {
21
- res[i] = i - 2;
22
- }
23
- return res;
24
- })();
25
- const buildIndex = (n) => {
26
- if (n <= INDEX.length) {
27
- return INDEX.slice(0, n);
28
- }
29
- const res = new Array(n);
30
- while (--n >= 2) {
31
- res[n] = n - 2;
32
- }
33
- return res;
34
- };
35
- const diffTree = (opts, impl, parent, prev, curr, child = 0) => {
36
- const attribs = curr[1];
37
- if (attribs.__skip) {
38
- return;
39
- }
40
- if (attribs.__diff === false) {
41
- releaseTree(prev);
42
- impl.replaceChild(opts, parent, child, curr);
43
- return;
44
- }
45
- const pattribs = prev[1];
46
- if (pattribs && pattribs.__skip) {
47
- impl.replaceChild(opts, parent, child, curr, false);
48
- return;
49
- }
50
- let _impl = attribs.__impl;
51
- if (_impl && _impl !== impl) {
52
- return _impl.diffTree(opts, _impl, parent, prev, curr, child);
53
- }
54
- const delta = diff.diffArray(prev, curr, "only-distance-linear", equiv);
55
- if (delta.distance === 0) {
56
- return;
57
- }
58
- const edits = delta.linear;
59
- const el = impl.getChild(parent, child);
60
- let ii;
61
- let status;
62
- let val;
63
- if (edits[0] !== 0 || prev[1].key !== attribs.key) {
64
- releaseTree(prev);
65
- impl.replaceChild(opts, parent, child, curr);
66
- return;
67
- }
68
- if ((val = prev.__release) && val !== curr.__release) {
69
- releaseTree(prev);
70
- }
71
- if (edits[3] !== 0) {
72
- diffAttributes(impl, el, prev[1], curr[1]);
73
- if (delta.distance === 2) {
74
- return;
75
- }
76
- }
77
- const numEdits = edits.length;
78
- const prevLength = prev.length - 1;
79
- const equivKeys = extractEquivElements(edits);
80
- const offsets = buildIndex(prevLength + 1);
81
- for (ii = 6; ii < numEdits; ii += 3) {
82
- status = edits[ii];
83
- if (!status)
84
- continue;
85
- if (status === -1) {
86
- diffDeleted(opts, impl, el, prev, curr, edits, ii, equivKeys, offsets, prevLength);
87
- }
88
- else {
89
- diffAdded(opts, impl, el, edits, ii, equivKeys, offsets, prevLength);
90
- }
91
- }
92
- if ((val = curr.__init) && val != prev.__init) {
93
- val.apply(curr, [el, ...curr.__args]);
94
- }
95
- };
96
- const diffDeleted = (opts, impl, el, prev, curr, edits, ii, equivKeys, offsets, prevLength) => {
97
- const val = edits[ii + 2];
98
- if (isArray$2(val)) {
99
- let k = val[1].key;
100
- if (k !== undefined && equivKeys[k][2] !== undefined) {
101
- const eq = equivKeys[k];
102
- k = eq[0];
103
- diffTree(opts, impl, el, prev[k], curr[eq[2]], offsets[k]);
104
- }
105
- else {
106
- const idx = edits[ii + 1];
107
- releaseTree(val);
108
- impl.removeChild(el, offsets[idx]);
109
- incOffsets(offsets, prevLength, idx);
110
- }
111
- }
112
- else if (typeof val === STR) {
113
- impl.setContent(el, "");
114
- }
115
- };
116
- const diffAdded = (opts, impl, el, edits, ii, equivKeys, offsets, prevLength) => {
117
- const val = edits[ii + 2];
118
- if (typeof val === STR) {
119
- impl.setContent(el, val);
120
- }
121
- else if (isArray$2(val)) {
122
- const k = val[1].key;
123
- if (k === undefined || equivKeys[k][0] === undefined) {
124
- const idx = edits[ii + 1];
125
- impl.createTree(opts, el, val, offsets[idx]);
126
- decOffsets(offsets, prevLength, idx);
127
- }
128
- }
129
- };
130
- const incOffsets = (offsets, j, idx) => {
131
- for (; j > idx; j--) {
132
- offsets[j] = max(offsets[j] - 1, 0);
133
- }
134
- };
135
- const decOffsets = (offsets, j, idx) => {
136
- for (; j >= idx; j--) {
137
- offsets[j]++;
138
- }
139
- };
140
- const diffAttributes = (impl, el, prev, curr) => {
141
- const delta = diff.diffObject(prev, curr, "full", equiv$1.equiv);
142
- impl.removeAttribs(el, delta.dels, prev);
143
- let val = api.SEMAPHORE;
144
- let i, e, edits;
145
- for (edits = delta.edits, i = edits.length; (i -= 2) >= 0;) {
146
- e = edits[i];
147
- e[0] === "o" && e[1] === "n" && impl.removeAttribs(el, [e], prev);
148
- e !== "value"
149
- ? impl.setAttrib(el, e, edits[i + 1], curr)
150
- : (val = edits[i + 1]);
151
- }
152
- for (edits = delta.adds, i = edits.length; --i >= 0;) {
153
- e = edits[i];
154
- e !== "value" ? impl.setAttrib(el, e, curr[e], curr) : (val = curr[e]);
155
- }
156
- val !== api.SEMAPHORE && impl.setAttrib(el, "value", val, curr);
157
- };
158
- const releaseTree = (tree) => {
159
- if (isArray$2(tree)) {
160
- let x;
161
- if ((x = tree[1]) && x.__release === false) {
162
- return;
163
- }
164
- if (tree.__release) {
165
- tree.__release.apply(tree.__this, tree.__args);
166
- delete tree.__release;
167
- }
168
- for (x = tree.length; --x >= 2;) {
169
- releaseTree(tree[x]);
170
- }
171
- }
172
- };
173
- const extractEquivElements = (edits) => {
174
- let k;
175
- let val;
176
- let ek;
177
- const equiv = {};
178
- for (let i = edits.length; (i -= 3) >= 0;) {
179
- val = edits[i + 2];
180
- if (isArray$2(val) && (k = val[1].key) !== undefined) {
181
- ek = equiv[k];
182
- !ek && (equiv[k] = ek = [, ,]);
183
- ek[edits[i] + 1] = edits[i + 1];
184
- }
185
- }
186
- return equiv;
187
- };
188
- const equiv = (a, b) => {
189
- let proto;
190
- if (a === b) {
191
- return true;
192
- }
193
- if (a != null) {
194
- if (typeof a.equiv === FN) {
195
- return a.equiv(b);
196
- }
197
- }
198
- else {
199
- return a == b;
200
- }
201
- if (b != null) {
202
- if (typeof b.equiv === FN) {
203
- return b.equiv(a);
204
- }
205
- }
206
- else {
207
- return a == b;
208
- }
209
- if (typeof a === STR || typeof b === STR) {
210
- return false;
211
- }
212
- if (((proto = Object.getPrototypeOf(a)), proto == null || proto === OBJP) &&
213
- ((proto = Object.getPrototypeOf(b)), proto == null || proto === OBJP)) {
214
- return (!(a.__diff === false || b.__diff === false) &&
215
- equiv$1.equivObject(a, b, equiv));
216
- }
217
- if (typeof a !== FN &&
218
- a.length !== undefined &&
219
- typeof b !== FN &&
220
- b.length !== undefined) {
221
- return equiv$1.equivArrayLike(a, b, equiv);
222
- }
223
- if (a instanceof Set && b instanceof Set) {
224
- return equiv$1.equivSet(a, b, equiv);
225
- }
226
- if (a instanceof Map && b instanceof Map) {
227
- return equiv$1.equivMap(a, b, equiv);
228
- }
229
- if (a instanceof Date && b instanceof Date) {
230
- return a.getTime() === b.getTime();
231
- }
232
- if (a instanceof RegExp && b instanceof RegExp) {
233
- return a.toString() === b.toString();
234
- }
235
- return a !== a && b !== b;
236
- };
237
-
238
- const isArray$1 = checks.isArray;
239
- const isNotStringAndIterable$1 = checks.isNotStringAndIterable;
240
- const isString = checks.isString;
241
- const maybeInitElement = (el, tree) => tree.__init && tree.__init.apply(tree.__this, [el, ...tree.__args]);
242
- const createTree = (opts, impl, parent, tree, insert, init = true) => {
243
- if (isArray$1(tree)) {
244
- const tag = tree[0];
245
- if (typeof tag === "function") {
246
- return createTree(opts, impl, parent, tag.apply(null, [opts.ctx, ...tree.slice(1)]), insert);
247
- }
248
- const attribs = tree[1];
249
- if (attribs.__impl) {
250
- return attribs.__impl.createTree(opts, parent, tree, insert, init);
251
- }
252
- const el = impl.createElement(parent, tag, attribs, insert);
253
- if (tree.length > 2) {
254
- const n = tree.length;
255
- for (let i = 2; i < n; i++) {
256
- createTree(opts, impl, el, tree[i], undefined, init);
257
- }
258
- }
259
- init && maybeInitElement(el, tree);
260
- return el;
261
- }
262
- if (isNotStringAndIterable$1(tree)) {
263
- const res = [];
264
- for (let t of tree) {
265
- res.push(createTree(opts, impl, parent, t, insert, init));
266
- }
267
- return res;
268
- }
269
- if (tree == null) {
270
- return parent;
271
- }
272
- return impl.createTextElement(parent, tree);
273
- };
274
- const hydrateTree = (opts, impl, parent, tree, index = 0) => {
275
- if (isArray$1(tree)) {
276
- const el = impl.getChild(parent, index);
277
- if (typeof tree[0] === "function") {
278
- hydrateTree(opts, impl, parent, tree[0].apply(null, [opts.ctx, ...tree.slice(1)]), index);
279
- }
280
- const attribs = tree[1];
281
- if (attribs.__impl) {
282
- return attribs.__impl.hydrateTree(opts, parent, tree, index);
283
- }
284
- maybeInitElement(el, tree);
285
- for (let a in attribs) {
286
- a[0] === "o" && a[1] === "n" && impl.setAttrib(el, a, attribs[a]);
287
- }
288
- for (let n = tree.length, i = 2; i < n; i++) {
289
- hydrateTree(opts, impl, el, tree[i], i - 2);
290
- }
291
- }
292
- else if (isNotStringAndIterable$1(tree)) {
293
- for (let t of tree) {
294
- hydrateTree(opts, impl, parent, t, index);
295
- index++;
296
- }
297
- }
298
- };
299
- const createElement = (parent, tag, attribs, insert) => {
300
- const el = hiccup.SVG_TAGS[tag]
301
- ? document.createElementNS(prefixes.XML_SVG, tag)
302
- : document.createElement(tag);
303
- attribs && setAttribs(el, attribs);
304
- return addChild(parent, el, insert);
305
- };
306
- const createTextElement = (parent, content, insert) => addChild(parent, document.createTextNode(content), insert);
307
- const addChild = (parent, child, insert) => parent
308
- ? insert === undefined
309
- ? parent.appendChild(child)
310
- : parent.insertBefore(child, parent.children[insert])
311
- : child;
312
- const getChild = (parent, child) => parent.children[child];
313
- const replaceChild = (opts, impl, parent, child, tree, init = true) => (impl.removeChild(parent, child),
314
- impl.createTree(opts, parent, tree, child, init));
315
- const cloneWithNewAttribs = (el, attribs) => {
316
- const res = el.cloneNode(true);
317
- setAttribs(res, attribs);
318
- el.parentNode.replaceChild(res, el);
319
- return res;
320
- };
321
- const setContent = (el, body) => (el.textContent = body);
322
- const setAttribs = (el, attribs) => {
323
- for (let k in attribs) {
324
- setAttrib(el, k, attribs[k], attribs);
325
- }
326
- return el;
327
- };
328
- const setAttrib = (el, id, val, attribs) => {
329
- if (id.startsWith("__"))
330
- return;
331
- const isListener = id[0] === "o" && id[1] === "n";
332
- if (!isListener && typeof val === "function") {
333
- val = val(attribs);
334
- }
335
- if (val !== undefined && val !== false) {
336
- switch (id) {
337
- case "style":
338
- setStyle(el, val);
339
- break;
340
- case "value":
341
- updateValueAttrib(el, val);
342
- break;
343
- case "prefix":
344
- el.setAttribute(id, isString(val) ? val : hiccup.formatPrefixes(val));
345
- break;
346
- case "accesskey":
347
- el.accessKey = val;
348
- break;
349
- case "contenteditable":
350
- el.contentEditable = val;
351
- break;
352
- case "tabindex":
353
- el.tabIndex = val;
354
- break;
355
- case "align":
356
- case "autocapitalize":
357
- case "checked":
358
- case "dir":
359
- case "draggable":
360
- case "hidden":
361
- case "id":
362
- case "lang":
363
- case "namespaceURI":
364
- case "scrollTop":
365
- case "scrollLeft":
366
- case "title":
367
- el[id] = val;
368
- break;
369
- default:
370
- isListener
371
- ? setListener(el, id.substr(2), val)
372
- : el.setAttribute(id, val === true ? "" : val);
373
- }
374
- }
375
- else {
376
- el[id] != null ? (el[id] = null) : el.removeAttribute(id);
377
- }
378
- return el;
379
- };
380
- const updateValueAttrib = (el, value) => {
381
- let ev;
382
- switch (el.type) {
383
- case "text":
384
- case "textarea":
385
- case "password":
386
- case "search":
387
- case "number":
388
- case "email":
389
- case "url":
390
- case "tel":
391
- case "date":
392
- case "datetime-local":
393
- case "time":
394
- case "week":
395
- case "month":
396
- if ((ev = el.value) !== undefined && typeof value === "string") {
397
- const off = value.length - (ev.length - (el.selectionStart || 0));
398
- el.value = value;
399
- el.selectionStart = el.selectionEnd = off;
400
- break;
401
- }
402
- default:
403
- el.value = value;
404
- }
405
- };
406
- const removeAttribs = (el, attribs, prev) => {
407
- for (let i = attribs.length; --i >= 0;) {
408
- const a = attribs[i];
409
- if (a[0] === "o" && a[1] === "n") {
410
- removeListener(el, a.substr(2), prev[a]);
411
- }
412
- else {
413
- el.hasAttribute(a) ? el.removeAttribute(a) : (el[a] = null);
414
- }
415
- }
416
- };
417
- const setStyle = (el, styles) => (el.setAttribute("style", hiccup.css(styles)), el);
418
- const setListener = (el, id, listener) => isString(listener)
419
- ? el.setAttribute("on" + id, listener)
420
- : isArray$1(listener)
421
- ? el.addEventListener(id, ...listener)
422
- : el.addEventListener(id, listener);
423
- const removeListener = (el, id, listener) => isArray$1(listener)
424
- ? el.removeEventListener(id, ...listener)
425
- : el.removeEventListener(id, listener);
426
- const clearDOM = (el) => (el.innerHTML = "");
427
- const removeChild = (parent, childIdx) => {
428
- const n = parent.children[childIdx];
429
- n !== undefined && parent.removeChild(n);
430
- };
431
-
432
- const isArray = checks.isArray;
433
- const isNotStringAndIterable = checks.isNotStringAndIterable;
434
- const isPlainObject = checks.isPlainObject;
435
- const normalizeElement = (spec, keys) => {
436
- let tag = spec[0];
437
- let hasAttribs = isPlainObject(spec[1]);
438
- let match;
439
- let name;
440
- let attribs;
441
- if (typeof tag !== "string" || !(match = hiccup.RE_TAG.exec(tag))) {
442
- errors.illegalArgs(`${tag} is not a valid tag name`);
443
- }
444
- name = match[1];
445
- if (tag === name && hasAttribs && (!keys || spec[1].key)) {
446
- return spec;
447
- }
448
- attribs = hiccup.mergeEmmetAttribs(hasAttribs ? Object.assign({}, spec[1]) : {}, match[2], match[3]);
449
- return attribs.__skip && spec.length < 3
450
- ? [name, attribs]
451
- : [name, attribs, ...spec.slice(hasAttribs ? 2 : 1)];
452
- };
453
- const normalizeTree = (opts, tree) => _normalizeTree(tree, opts, opts.ctx, [0], opts.keys !== false, opts.span !== false);
454
- const _normalizeTree = (tree, opts, ctx, path, keys, span) => {
455
- if (tree == null) {
456
- return;
457
- }
458
- if (isArray(tree)) {
459
- if (tree.length === 0) {
460
- return;
461
- }
462
- let norm, nattribs = tree[1], impl;
463
- if (nattribs &&
464
- (impl = nattribs.__impl) &&
465
- (impl = impl.normalizeTree)) {
466
- return impl(opts, tree);
467
- }
468
- const tag = tree[0];
469
- if (typeof tag === "function") {
470
- return _normalizeTree(tag.apply(null, [ctx, ...tree.slice(1)]), opts, ctx, path, keys, span);
471
- }
472
- if (typeof tag.render === "function") {
473
- const args = [ctx, ...tree.slice(1)];
474
- norm = _normalizeTree(tag.render.apply(tag, args), opts, ctx, path, keys, span);
475
- if (isArray(norm)) {
476
- norm.__this = tag;
477
- norm.__init = tag.init;
478
- norm.__release = tag.release;
479
- norm.__args = args;
480
- }
481
- return norm;
482
- }
483
- norm = normalizeElement(tree, keys);
484
- nattribs = norm[1];
485
- if (nattribs.__normalize === false) {
486
- return norm;
487
- }
488
- if (keys && nattribs.key === undefined) {
489
- nattribs.key = path.join("-");
490
- }
491
- return norm.length > 2
492
- ? normalizeChildren(norm, nattribs, opts, ctx, path, keys, span)
493
- : norm;
494
- }
495
- return typeof tree === "function"
496
- ? _normalizeTree(tree(ctx), opts, ctx, path, keys, span)
497
- : typeof tree.toHiccup === "function"
498
- ? _normalizeTree(tree.toHiccup(opts.ctx), opts, ctx, path, keys, span)
499
- : typeof tree.deref === "function"
500
- ? _normalizeTree(tree.deref(), opts, ctx, path, keys, span)
501
- : span
502
- ? ["span", keys ? { key: path.join("-") } : {}, tree.toString()]
503
- : tree.toString();
504
- };
505
- const normalizeChildren = (norm, nattribs, opts, ctx, path, keys, span) => {
506
- const tag = norm[0];
507
- const res = [tag, nattribs];
508
- span = span && !hiccup.NO_SPANS[tag];
509
- for (let i = 2, j = 2, k = 0, n = norm.length; i < n; i++) {
510
- let el = norm[i];
511
- if (el != null) {
512
- const isarray = isArray(el);
513
- if ((isarray && isArray(el[0])) ||
514
- (!isarray && isNotStringAndIterable(el))) {
515
- for (let c of el) {
516
- c = _normalizeTree(c, opts, ctx, path.concat(k), keys, span);
517
- if (c !== undefined) {
518
- res[j++] = c;
519
- }
520
- k++;
521
- }
522
- }
523
- else {
524
- el = _normalizeTree(el, opts, ctx, path.concat(k), keys, span);
525
- if (el !== undefined) {
526
- res[j++] = el;
527
- }
528
- k++;
529
- }
530
- }
531
- }
532
- return res;
533
- };
534
-
535
- const DEFAULT_IMPL = {
536
- createTree(opts, parent, tree, child, init) {
537
- return createTree(opts, this, parent, tree, child, init);
538
- },
539
- hydrateTree(opts, parent, tree, child) {
540
- return hydrateTree(opts, this, parent, tree, child);
541
- },
542
- diffTree(opts, parent, prev, curr, child) {
543
- diffTree(opts, this, parent, prev, curr, child);
544
- },
545
- normalizeTree,
546
- getElementById(id) {
547
- return document.getElementById(id);
548
- },
549
- getChild,
550
- createElement,
551
- createTextElement,
552
- replaceChild(opts, parent, child, tree, init) {
553
- replaceChild(opts, this, parent, child, tree, init);
554
- },
555
- removeChild,
556
- setContent,
557
- removeAttribs,
558
- setAttrib,
559
- };
560
-
561
- exports.LOGGER = api.NULL_LOGGER;
562
- const setLogger = (logger) => (exports.LOGGER = logger);
563
-
564
- const resolveRoot = (root, impl) => checks.isString(root) ? impl.getElementById(root) : root;
565
-
566
- const renderOnce = (tree, opts = {}, impl = DEFAULT_IMPL) => {
567
- opts = Object.assign({ root: "app" }, opts);
568
- opts.ctx = hiccup.derefContext(opts.ctx, opts.autoDerefKeys);
569
- const root = resolveRoot(opts.root, impl);
570
- tree = impl.normalizeTree(opts, tree);
571
- if (!tree)
572
- return;
573
- opts.hydrate
574
- ? impl.hydrateTree(opts, root, tree)
575
- : impl.createTree(opts, root, tree);
576
- };
577
-
578
- const start = (tree, opts = {}, impl = DEFAULT_IMPL) => {
579
- const _opts = Object.assign({ root: "app" }, opts);
580
- let prev = [];
581
- let isActive = true;
582
- const root = resolveRoot(_opts.root, impl);
583
- const update = () => {
584
- if (isActive) {
585
- _opts.ctx = hiccup.derefContext(opts.ctx, _opts.autoDerefKeys);
586
- const curr = impl.normalizeTree(_opts, tree);
587
- if (curr != null) {
588
- if (_opts.hydrate) {
589
- impl.hydrateTree(_opts, root, curr);
590
- _opts.hydrate = false;
591
- }
592
- else {
593
- impl.diffTree(_opts, root, prev, curr);
594
- }
595
- prev = curr;
596
- }
597
- isActive && requestAnimationFrame(update);
598
- }
599
- };
600
- requestAnimationFrame(update);
601
- return () => (isActive = false);
602
- };
603
-
604
- exports.DEFAULT_IMPL = DEFAULT_IMPL;
605
- exports.addChild = addChild;
606
- exports.clearDOM = clearDOM;
607
- exports.cloneWithNewAttribs = cloneWithNewAttribs;
608
- exports.createElement = createElement;
609
- exports.createTextElement = createTextElement;
610
- exports.createTree = createTree;
611
- exports.diffAttributes = diffAttributes;
612
- exports.diffTree = diffTree;
613
- exports.equiv = equiv;
614
- exports.getChild = getChild;
615
- exports.hydrateTree = hydrateTree;
616
- exports.normalizeElement = normalizeElement;
617
- exports.normalizeTree = normalizeTree;
618
- exports.releaseTree = releaseTree;
619
- exports.removeAttribs = removeAttribs;
620
- exports.removeChild = removeChild;
621
- exports.removeListener = removeListener;
622
- exports.renderOnce = renderOnce;
623
- exports.replaceChild = replaceChild;
624
- exports.resolveRoot = resolveRoot;
625
- exports.setAttrib = setAttrib;
626
- exports.setAttribs = setAttribs;
627
- exports.setContent = setContent;
628
- exports.setListener = setListener;
629
- exports.setLogger = setLogger;
630
- exports.setStyle = setStyle;
631
- exports.start = start;
632
- exports.updateValueAttrib = updateValueAttrib;
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../diff.js","../dom.js","../normalize.js","../default.js","../logger.js","../utils.js","../render-once.js","../start.js"],"sourcesContent":null,"names":["isArray","diffArray","diffObject","_equiv","SEMAPHORE","equivObject","equivArrayLike","equivSet","equivMap","isa","isNotStringAndIterable","isi","iss","SVG_TAGS","XML_SVG","formatPrefixes","css","iso","RE_TAG","illegalArgs","mergeEmmetAttribs","NO_SPANS","LOGGER","NULL_LOGGER","isString","derefContext"],"mappings":"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"}