@dashkite/joy 0.3.15 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,202 +1,281 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- exports.words = exports.w = exports.underscores = exports.underscored = exports.underscore = exports.uncase = exports.truncate = exports.trim = exports.toUpperCase = exports.toString = exports.toLowerCase = exports.toBase = exports.titleCase = exports.template = exports.startsWith = exports.squote = exports.split = exports.snakeCase = exports.replace = exports.repeat = exports.quote = exports.parseNumber = exports.padStart = exports.padEnd = exports.pad = exports.normalize = exports.match = exports.isMatch = exports.isBlank = exports.gloss = exports.fromBase = exports.endsWith = exports.enclose = exports.elide = exports.dquote = exports.dashes = exports.dashed = exports.dash = exports.collapse = exports.capitalize = exports.camelCase = void 0;
7
-
8
- var _function = require("./function.js");
9
-
10
- var _type = require("./type.js");
11
-
12
- var _value = require("./value.js");
13
-
14
- var camelCase, capitalize, collapse, dash, dashed, dashes, dquote, elide, enclose, endsWith, fromBase, gloss, isBlank, isMatch, match, normalize, pad, padEnd, padStart, parseNumber, quote, repeat, replace, snakeCase, split, squote, startsWith, template, titleCase, toBase, toLower, toLowerCase, toString, toUpper, toUpperCase, trim, trimEnd, trimStart, truncate, uncase, underscore, underscored, underscores, w, words;
15
- exports.words = words;
16
- exports.w = w;
17
- exports.underscores = underscores;
18
- exports.underscored = underscored;
19
- exports.underscore = underscore;
20
- exports.uncase = uncase;
21
- exports.truncate = truncate;
22
- exports.trim = trim;
23
- exports.toUpperCase = toUpperCase;
24
- exports.toString = toString;
25
- exports.toLowerCase = toLowerCase;
26
- exports.toBase = toBase;
27
- exports.titleCase = titleCase;
28
- exports.template = template;
29
- exports.startsWith = startsWith;
30
- exports.squote = squote;
31
- exports.split = split;
32
- exports.snakeCase = snakeCase;
33
- exports.replace = replace;
34
- exports.repeat = repeat;
35
- exports.quote = quote;
36
- exports.parseNumber = parseNumber;
37
- exports.padStart = padStart;
38
- exports.padEnd = padEnd;
39
- exports.pad = pad;
40
- exports.normalize = normalize;
41
- exports.match = match;
42
- exports.isMatch = isMatch;
43
- exports.isBlank = isBlank;
44
- exports.gloss = gloss;
45
- exports.fromBase = fromBase;
46
- exports.endsWith = endsWith;
47
- exports.enclose = enclose;
48
- exports.elide = elide;
49
- exports.dquote = dquote;
50
- exports.dashes = dashes;
51
- exports.dashed = dashed;
52
- exports.dash = dash;
53
- exports.collapse = collapse;
54
- exports.capitalize = capitalize;
55
- exports.camelCase = camelCase;
56
-
57
- exports.toString = toString = function (x) {
58
- return x.toString();
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ camelCase: function() {
13
+ return camelCase;
14
+ },
15
+ capitalize: function() {
16
+ return capitalize;
17
+ },
18
+ collapse: function() {
19
+ return collapse;
20
+ },
21
+ dash: function() {
22
+ return dash;
23
+ },
24
+ dashed: function() {
25
+ return dashed;
26
+ },
27
+ dashes: function() {
28
+ return dashes;
29
+ },
30
+ dquote: function() {
31
+ return dquote;
32
+ },
33
+ elide: function() {
34
+ return elide;
35
+ },
36
+ enclose: function() {
37
+ return enclose;
38
+ },
39
+ endsWith: function() {
40
+ return endsWith;
41
+ },
42
+ fromBase: function() {
43
+ return fromBase;
44
+ },
45
+ gloss: function() {
46
+ return gloss;
47
+ },
48
+ interpolate: function() {
49
+ return interpolate;
50
+ },
51
+ isBlank: function() {
52
+ return isBlank;
53
+ },
54
+ isMatch: function() {
55
+ return isMatch;
56
+ },
57
+ match: function() {
58
+ return match;
59
+ },
60
+ normalize: function() {
61
+ return normalize;
62
+ },
63
+ pad: function() {
64
+ return pad;
65
+ },
66
+ padEnd: function() {
67
+ return padEnd;
68
+ },
69
+ padStart: function() {
70
+ return padStart;
71
+ },
72
+ parseNumber: function() {
73
+ return parseNumber;
74
+ },
75
+ quote: function() {
76
+ return quote;
77
+ },
78
+ repeat: function() {
79
+ return repeat;
80
+ },
81
+ replace: function() {
82
+ return replace;
83
+ },
84
+ snakeCase: function() {
85
+ return snakeCase;
86
+ },
87
+ split: function() {
88
+ return split;
89
+ },
90
+ squote: function() {
91
+ return squote;
92
+ },
93
+ startsWith: function() {
94
+ return startsWith;
95
+ },
96
+ titleCase: function() {
97
+ return titleCase;
98
+ },
99
+ toBase: function() {
100
+ return toBase;
101
+ },
102
+ toLowerCase: function() {
103
+ return toLowerCase;
104
+ },
105
+ toString: function() {
106
+ return toString;
107
+ },
108
+ toUpperCase: function() {
109
+ return toUpperCase;
110
+ },
111
+ trim: function() {
112
+ return trim;
113
+ },
114
+ truncate: function() {
115
+ return truncate;
116
+ },
117
+ uncase: function() {
118
+ return uncase;
119
+ },
120
+ underscore: function() {
121
+ return underscore;
122
+ },
123
+ underscored: function() {
124
+ return underscored;
125
+ },
126
+ underscores: function() {
127
+ return underscores;
128
+ },
129
+ w: function() {
130
+ return w;
131
+ },
132
+ words: function() {
133
+ return words;
134
+ }
135
+ });
136
+ const _function = require("./function");
137
+ const _type = require("./type");
138
+ const _value = require("./value");
139
+ var camelCase, capitalize, collapse, dash, dashed, dashes, dquote, elide, enclose, endsWith, fromBase, gloss, interpolate, isBlank, isMatch, match, normalize, pad, padEnd, padStart, parseNumber, quote, repeat, replace, snakeCase, split, squote, startsWith, titleCase, toBase, toLower, toLowerCase, toString, toUpper, toUpperCase, trim, trimEnd, trimStart, truncate, uncase, underscore, underscored, underscores, w, words;
140
+ toString = function(x) {
141
+ return x.toString();
59
142
  };
60
-
61
- exports.toBase = toBase = (0, _function.curry)(function (radix, number) {
62
- if ((0, _type.isNumber)(radix) && ((0, _type.isNumber)(number) || (0, _type.isBigInt)(number))) {
63
- if (2 <= radix && radix <= 36) {
64
- return number.toString(radix);
143
+ toBase = (0, _function.curry)(function(radix, number) {
144
+ if ((0, _type.isNumber)(radix) && ((0, _type.isNumber)(number) || (0, _type.isBigInt)(number))) {
145
+ if (2 <= radix && radix <= 36) {
146
+ return number.toString(radix);
147
+ } else {
148
+ throw new TypeError("toBase: radix must between 2 and 36");
149
+ }
65
150
  } else {
66
- throw new TypeError("toBase: radix must between 2 and 36");
151
+ throw new TypeError("toBase: arguments must be numbers");
67
152
  }
68
- } else {
69
- throw new TypeError("toBase: arguments must be numbers");
70
- }
71
153
  });
72
- exports.fromBase = fromBase = (0, _function.curry)(function (radix, string) {
73
- return Number.parseInt(string, radix);
154
+ fromBase = (0, _function.curry)(function(radix, string) {
155
+ return Number.parseInt(string, radix);
74
156
  });
75
-
76
- exports.parseNumber = parseNumber = function (string) {
77
- return Number(string);
157
+ parseNumber = function(string) {
158
+ return Number(string);
78
159
  };
79
-
80
- exports.match = match = (0, _function.curry)(function (pattern, string) {
81
- return string.match(pattern);
160
+ match = (0, _function.curry)(function(pattern, string) {
161
+ return string.match(pattern);
82
162
  });
83
- exports.isMatch = isMatch = (0, _function.curry)(function (pattern, string) {
84
- return pattern.test(string);
163
+ isMatch = (0, _function.curry)(function(pattern, string) {
164
+ return pattern.test(string);
85
165
  });
86
- exports.replace = replace = (0, _function.curry)(function (pattern, replacement, string) {
87
- return string.replace(pattern, replacement);
166
+ replace = (0, _function.curry)(function(pattern, replacement, string) {
167
+ return string.replace(pattern, replacement);
88
168
  });
89
- exports.toUpperCase = toUpperCase = toUpper = (0, _function.detach)(String.prototype.toUpperCase);
90
- exports.toLowerCase = toLowerCase = toLower = (0, _function.detach)(String.prototype.toLowerCase);
91
- exports.trim = trim = (0, _function.detach)(String.prototype.trim);
169
+ toUpperCase = toUpper = (0, _function.detach)(String.prototype.toUpperCase);
170
+ toLowerCase = toLower = (0, _function.detach)(String.prototype.toLowerCase);
171
+ trim = (0, _function.detach)(String.prototype.trim);
92
172
  trimStart = (0, _function.detach)(String.prototype.trimStart);
93
173
  trimEnd = (0, _function.detach)(String.prototype.trimEnd);
94
-
95
- exports.collapse = collapse = function (s) {
96
- return replace(/\s+/g, " ", trim(s));
97
- }; // adapted from https://github.com/VitorLuizC/normalize-text
98
-
99
-
100
- exports.normalize = normalize = function (string) {
101
- return string.normalize("NFKD").replace(/[\u0300-\u036F]/g, "");
174
+ collapse = function(s) {
175
+ return replace(/\s+/g, " ", trim(s));
102
176
  };
103
-
104
- exports.uncase = uncase = (0, _function.pipe)([replace(/^[A-Z]/g, function (c) {
105
- return c.toLowerCase();
106
- }), replace(/[A-Z]/g, function (c) {
107
- return ` ${c.toLowerCase()}`;
108
- }), replace(/[_-]/g, " ")]);
109
- exports.gloss = gloss = (0, _function.pipe)([normalize, collapse, toLowerCase, replace(/[^A-Za-z0-9 ]+/g, "")]);
110
- exports.camelCase = camelCase = (0, _function.pipe)([uncase, gloss, replace(/\s\w/g, (0, _function.pipe)([trim, toUpperCase]))]);
111
- exports.dashed = dashed = exports.dashes = dashes = exports.dash = dash = (0, _function.pipe)([uncase, gloss, replace(/\s/g, function (s) {
112
- return "-";
113
- })]);
114
- exports.underscored = underscored = exports.underscores = underscores = exports.underscore = underscore = exports.snakeCase = snakeCase = (0, _function.pipe)([uncase, gloss, replace(/\s/g, function (s) {
115
- return "_";
116
- })]);
117
-
118
- exports.capitalize = capitalize = function (string) {
119
- return toUpperCase(string[0]) + string.slice(1);
177
+ // adapted from https://github.com/VitorLuizC/normalize-text
178
+ normalize = function(string) {
179
+ return string.normalize("NFKD").replace(/[\u0300-\u036F]/g, "");
120
180
  };
121
-
122
- exports.titleCase = titleCase = replace(/\b\w/g, toUpperCase);
123
- exports.startsWith = startsWith = (0, _function.curry)(function (target, string) {
124
- return string.startsWith(target);
181
+ uncase = (0, _function.pipe)([
182
+ replace(/^[A-Z]/g, function(c) {
183
+ return c.toLowerCase();
184
+ }),
185
+ replace(/[A-Z]/g, function(c) {
186
+ return ` ${c.toLowerCase()}`;
187
+ }),
188
+ replace(/[_-]/g, " ")
189
+ ]);
190
+ gloss = (0, _function.pipe)([
191
+ normalize,
192
+ collapse,
193
+ toLowerCase,
194
+ replace(/[^A-Za-z0-9 ]+/g, "")
195
+ ]);
196
+ camelCase = (0, _function.pipe)([
197
+ uncase,
198
+ gloss,
199
+ replace(/\s\w/g, (0, _function.pipe)([
200
+ trim,
201
+ toUpperCase
202
+ ]))
203
+ ]);
204
+ dashed = dashes = dash = (0, _function.pipe)([
205
+ uncase,
206
+ gloss,
207
+ replace(/\s/g, function(s) {
208
+ return "-";
209
+ })
210
+ ]);
211
+ underscored = underscores = underscore = snakeCase = (0, _function.pipe)([
212
+ uncase,
213
+ gloss,
214
+ replace(/\s/g, function(s) {
215
+ return "_";
216
+ })
217
+ ]);
218
+ capitalize = function(string) {
219
+ return toUpperCase(string[0]) + string.slice(1);
220
+ };
221
+ titleCase = replace(/\b\w/g, toUpperCase);
222
+ startsWith = (0, _function.curry)(function(target, string) {
223
+ return string.startsWith(target);
125
224
  });
126
- exports.endsWith = endsWith = (0, _function.curry)(function (target, string) {
127
- return string.endsWith(target);
225
+ endsWith = (0, _function.curry)(function(target, string) {
226
+ return string.endsWith(target);
128
227
  });
129
- exports.padEnd = padEnd = (0, _function.curry)(function (n, padding, string) {
130
- return string.padEnd(n, padding);
228
+ padEnd = (0, _function.curry)(function(n, padding, string) {
229
+ return string.padEnd(n, padding);
131
230
  });
132
- exports.padStart = padStart = (0, _function.curry)(function (n, padding, string) {
133
- return string.padStart(n, padding);
231
+ padStart = (0, _function.curry)(function(n, padding, string) {
232
+ return string.padStart(n, padding);
134
233
  });
135
- exports.pad = pad = (0, _function.curry)(function (n, padding, string) {
136
- return padStart(n, padding, padEnd(Math.ceil((n - string.length) / 2) + string.length, padding, string));
234
+ pad = (0, _function.curry)(function(n, padding, string) {
235
+ return padStart(n, padding, padEnd(Math.ceil((n - string.length) / 2) + string.length, padding, string));
137
236
  });
138
- exports.repeat = repeat = (0, _function.curry)(function (n, string) {
139
- return string.repeat(n);
237
+ repeat = (0, _function.curry)(function(n, string) {
238
+ return string.repeat(n);
140
239
  });
141
- exports.enclose = enclose = (0, _function.curry)(function (delimiter, string) {
142
- return function ({
143
- start,
144
- end
145
- }) {
146
- if (delimiter.length > 1) {
147
- [start, end] = delimiter;
148
- } else {
149
- start = end = delimiter;
150
- }
151
-
152
- return start + string + end;
153
- }({});
240
+ enclose = (0, _function.curry)(function(delimiter, string) {
241
+ return function({ start, end }) {
242
+ if (delimiter.length > 1) {
243
+ [start, end] = delimiter;
244
+ } else {
245
+ start = end = delimiter;
246
+ }
247
+ return start + string + end;
248
+ }({});
154
249
  });
155
- exports.quote = quote = exports.dquote = dquote = enclose('"');
156
- exports.squote = squote = enclose("'");
157
- exports.truncate = truncate = (0, _function.curry)(function (n, string) {
158
- return string.slice(0, n);
250
+ quote = dquote = enclose('"');
251
+ squote = enclose("'");
252
+ truncate = (0, _function.curry)(function(n, string) {
253
+ return string.slice(0, n);
159
254
  });
160
- exports.elide = elide = (0, _function.curry)(function (n, end, string) {
161
- if (string.length > n) {
162
- return replace(/\W+\w*$/, end, truncate(n - end.length + 1, string));
163
- } else {
164
- return string;
165
- }
255
+ elide = (0, _function.curry)(function(n, end, string) {
256
+ if (string.length > n) {
257
+ return replace(/\W+\w*$/, end, truncate(n - end.length + 1, string));
258
+ } else {
259
+ return string;
260
+ }
166
261
  });
167
- exports.split = split = (0, _function.curry)(function (re, s) {
168
- return s.split(re);
262
+ split = (0, _function.curry)(function(re, s) {
263
+ return s.split(re);
169
264
  });
170
- exports.w = w = exports.words = words = (0, _function.pipe)([trim, split(/\s+/)]);
171
-
172
- exports.isBlank = isBlank = function (s) {
173
- return (0, _type.isString)(s) && (0, _value.isEmpty)(s);
265
+ w = words = (0, _function.pipe)([
266
+ trim,
267
+ split(/\s+/)
268
+ ]);
269
+ isBlank = function(s) {
270
+ return (0, _type.isString)(s) && (0, _value.isEmpty)(s);
174
271
  };
272
+ interpolate = (0, _function.curry)(function(template, context) {
273
+ var f, parameters;
274
+ parameters = Object.keys(context);
275
+ f = new Function(`{${parameters}}`, `return \`${template}\``);
276
+ return f(context);
277
+ });
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS9qb3kvc3JjL3RleHQuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUEsU0FBQSxFQUFBLFVBQUEsRUFBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLE1BQUEsRUFBQSxNQUFBLEVBQUEsTUFBQSxFQUFBLEtBQUEsRUFBQSxPQUFBLEVBQUEsUUFBQSxFQUFBLFFBQUEsRUFBQSxLQUFBLEVBQUEsV0FBQSxFQUFBLE9BQUEsRUFBQSxPQUFBLEVBQUEsS0FBQSxFQUFBLFNBQUEsRUFBQSxHQUFBLEVBQUEsTUFBQSxFQUFBLFFBQUEsRUFBQSxXQUFBLEVBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBQUEsU0FBQSxFQUFBLEtBQUEsRUFBQSxNQUFBLEVBQUEsVUFBQSxFQUFBLFNBQUEsRUFBQSxNQUFBLEVBQUEsT0FBQSxFQUFBLFdBQUEsRUFBQSxRQUFBLEVBQUEsT0FBQSxFQUFBLFdBQUEsRUFBQSxJQUFBLEVBQUEsT0FBQSxFQUFBLFNBQUEsRUFBQSxRQUFBLEVBQUEsTUFBQSxFQUFBLFVBQUEsRUFBQSxXQUFBLEVBQUEsV0FBQSxFQUFBLENBQUEsRUFBQTs7QUFBQSxPQUFBO0VBQVEsS0FBUjtFQUFlLElBQWY7RUFBcUIsTUFBckI7Q0FBQSxNQUFBOztBQUNBLE9BQUE7RUFBUyxRQUFUO0VBQW1CLFFBQW5CO0VBQTZCLFFBQTdCO0NBQUEsTUFBQTs7QUFDQSxPQUFBO0VBQVEsT0FBUjtDQUFBLE1BQUE7O0FBRUEsUUFBQSxHQUFXLFFBQUEsQ0FBQyxDQUFELENBQUE7U0FBTyxDQUFDLENBQUMsUUFBRixDQUFBO0FBQVA7O0FBRVgsTUFBQSxHQUFTLEtBQUEsQ0FBTSxRQUFBLENBQUMsS0FBRCxFQUFRLE1BQVIsQ0FBQTtFQUNiLElBQUcsQ0FBQyxRQUFBLENBQVMsS0FBVCxDQUFELENBQUEsSUFBb0IsQ0FBQyxDQUFDLFFBQUEsQ0FBUyxNQUFULENBQUQsQ0FBQSxJ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R0E5QkY7RUErQkUsTUEvQkY7RUFnQ0UsUUFoQ0Y7RUFpQ0UsTUFqQ0Y7RUFrQ0UsS0FsQ0Y7RUFtQ0UsQ0FuQ0Y7RUFvQ0UsS0FwQ0Y7RUFxQ0UsT0FyQ0Y7RUFzQ0UsS0F0Q0Y7RUF1Q0UsT0F2Q0Y7RUF3Q0UsT0F4Q0Y7RUF5Q0UsV0F6Q0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2N1cnJ5LCBwaXBlLCBkZXRhY2h9IGZyb20gXCIuL2Z1bmN0aW9uXCJcbmltcG9ydCB7IGlzU3RyaW5nLCBpc051bWJlciwgaXNCaWdJbnQgfSBmcm9tIFwiLi90eXBlXCJcbmltcG9ydCB7aXNFbXB0eX0gZnJvbSBcIi4vdmFsdWVcIlxuXG50b1N0cmluZyA9ICh4KSAtPiB4LnRvU3RyaW5nKClcblxudG9CYXNlID0gY3VycnkgKHJhZGl4LCBudW1iZXIpIC0+XG4gIGlmIChpc051bWJlciByYWRpeCkgJiYgKChpc051bWJlciBudW1iZXIpIHx8IGlzQmlnSW50IG51bWJlcilcbiAgICBpZiAyIDw9IHJhZGl4IDw9IDM2XG4gICAgICBudW1iZXIudG9TdHJpbmcgcmFkaXhcbiAgICBlbHNlXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yIFwidG9CYXNlOiByYWRpeCBtdXN0IGJldHdlZW4gMiBhbmQgMzZcIlxuICBlbHNlXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvciBcInRvQmFzZTogYXJndW1lbnRzIG11c3QgYmUgbnVtYmVyc1wiXG5cbmZyb21CYXNlID0gY3VycnkgKHJhZGl4LCBzdHJpbmcpIC0+IE51bWJlci5wYXJzZUludCBzdHJpbmcsIHJhZGl4XG5cbnBhcnNlTnVtYmVyID0gKHN0cmluZykgLT4gTnVtYmVyIHN0cmluZ1xuXG5tYXRjaCA9IGN1cnJ5IChwYXR0ZXJuLCBzdHJpbmcpIC0+IHN0cmluZy5tYXRjaCBwYXR0ZXJuXG5cbmlzTWF0Y2ggPSBjdXJyeSAocGF0dGVybiwgc3RyaW5nKSAtPiBwYXR0ZXJuLnRlc3Qgc3RyaW5nXG5cbnJlcGxhY2UgPSBjdXJyeSAocGF0dGVybiwgcmVwbGFjZW1lbnQsIHN0cmluZykgLT5cbiAgc3RyaW5nLnJlcGxhY2UgcGF0dGVybiwgcmVwbGFjZW1lbnRcblxudG9VcHBlckNhc2UgPSB0b1VwcGVyID0gZGV0YWNoIFN0cmluZzo6dG9VcHBlckNhc2VcblxudG9Mb3dlckNhc2UgPSB0b0xvd2VyID0gZGV0YWNoIFN0cmluZzo6dG9Mb3dlckNhc2VcblxudHJpbSA9IGRldGFjaCBTdHJpbmc6OnRyaW1cblxudHJpbVN0YXJ0ID0gZGV0YWNoIFN0cmluZzo6dHJpbVN0YXJ0XG5cbnRyaW1FbmQgPSBkZXRhY2ggU3RyaW5nOjp0cmltRW5kXG5cbmNvbGxhcHNlID0gKHMpIC0+IHJlcGxhY2UgL1xccysvZywgXCIgXCIsIHRyaW0gc1xuXG4jIGFkYXB0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vVml0b3JMdWl6Qy9ub3JtYWxpemUtdGV4dFxubm9ybWFsaXplID0gKHN0cmluZykgLT5cbiAgc3RyaW5nXG4gIC5ub3JtYWxpemUgXCJORktEXCJcbiAgLnJlcGxhY2UgL1tcXHUwMzAwLVxcdTAzNkZdL2csIFwiXCJcblxudW5jYXNlID0gcGlwZSBbXG4gIHJlcGxhY2UgL15bQS1aXS9nLCAoYykgLT4gYy50b0xvd2VyQ2FzZSgpXG4gIHJlcGxhY2UgL1tBLVpdL2csIChjKSAtPiBcIiAje2MudG9Mb3dlckNhc2UoKX1cIlxuICByZXBsYWNlIC9bXy1dL2csIFwiIFwiXG5dXG5cbmdsb3NzID0gcGlwZSBbXG4gIG5vcm1hbGl6ZVxuICBjb2xsYXBzZVxuICB0b0xvd2VyQ2FzZVxuICByZXBsYWNlIC9bXkEtWmEtejAtOSBdKy9nLCBcIlwiXG5dXG5cbmNhbWVsQ2FzZSA9IHBpcGUgW1xuICB1bmNhc2VcbiAgZ2xvc3NcbiAgcmVwbGFjZSAvXFxzXFx3L2csIHBpcGUgW1xuICAgIHRyaW1cbiAgICB0b1VwcGVyQ2FzZVxuICBdXG5dXG5cbmRhc2hlZCA9IGRhc2hlcyA9IGRhc2ggPSBwaXBlIFtcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIHJlcGxhY2UgL1xccy9nLCAocykgLT4gXCItXCJcbl1cblxudW5kZXJzY29yZWQgPSB1bmRlcnNjb3JlcyA9IHVuZGVyc2NvcmUgPSBzbmFrZUNhc2UgPSBwaXBlIFtcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIHJlcGxhY2UgL1xccy9nLCAocykgLT4gXCJfXCJcbl1cblxuY2FwaXRhbGl6ZSA9IChzdHJpbmcpIC0+ICh0b1VwcGVyQ2FzZSBzdHJpbmdbMF0pICsgc3RyaW5nWzEuLl1cblxudGl0bGVDYXNlID0gcmVwbGFjZSAvXFxiXFx3L2csIHRvVXBwZXJDYXNlXG5cbnN0YXJ0c1dpdGggPSBjdXJyeSAodGFyZ2V0LCBzdHJpbmcpIC0+IHN0cmluZy5zdGFydHNXaXRoIHRhcmdldFxuXG5lbmRzV2l0aCA9IGN1cnJ5ICh0YXJnZXQsIHN0cmluZykgLT4gc3RyaW5nLmVuZHNXaXRoIHRhcmdldFxuXG5wYWRFbmQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPiBzdHJpbmcucGFkRW5kIG4sIHBhZGRpbmdcblxucGFkU3RhcnQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPiBzdHJpbmcucGFkU3RhcnQgbiwgcGFkZGluZ1xuXG5wYWQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPlxuICBwYWRTdGFydCBuLCBwYWRkaW5nLFxuICAgIHBhZEVuZCAoTWF0aC5jZWlsIChuIC0gc3RyaW5nLmxlbmd0aCkvMikgKyBzdHJpbmcubGVuZ3RoLCBwYWRkaW5nLCBzdHJpbmdcblxucmVwZWF0ID0gY3VycnkgKG4sIHN0cmluZykgLT4gc3RyaW5nLnJlcGVhdCBuXG5cbmVuY2xvc2UgPSBjdXJyeSAoZGVsaW1pdGVyLCBzdHJpbmcpIC0+XG4gIGRvICh7c3RhcnQsIGVuZH0gPSB7fSkgLT5cbiAgICBpZiBkZWxpbWl0ZXIubGVuZ3RoID4gMVxuICAgICAgWyBzdGFydCwgZW5kIF0gPSBkZWxpbWl0ZXJcbiAgICBlbHNlXG4gICAgICBzdGFydCA9IGVuZCA9IGRlbGltaXRlclxuICAgIHN0YXJ0ICsgc3RyaW5nICsgZW5kXG5cbnF1b3RlID0gZHF1b3RlID0gZW5jbG9zZSAnXCInXG5cbnNxdW90ZSA9IGVuY2xvc2UgXCInXCJcblxudHJ1bmNhdGUgPSBjdXJyeSAobiwgc3RyaW5nKSAtPiBzdHJpbmdbMC4uLm5dXG5cbmVsaWRlID0gY3VycnkgKG4sIGVuZCwgc3RyaW5nKSAtPlxuICBpZiBzdHJpbmcubGVuZ3RoID4gblxuICAgIHJlcGxhY2UgL1xcVytcXHcqJC8sIGVuZCwgdHJ1bmNhdGUgbiAtIGVuZC5sZW5ndGggKyAxLCBzdHJpbmdcbiAgZWxzZVxuICAgIHN0cmluZ1xuXG5zcGxpdCA9IGN1cnJ5IChyZSwgcykgLT4gcy5zcGxpdCByZVxuXG53ID0gd29yZHMgPSBwaXBlIFtcbiAgdHJpbVxuICBzcGxpdCAvXFxzKy9cbl1cblxuaXNCbGFuayA9IChzKSAtPiAoaXNTdHJpbmcgcykgJiYgKGlzRW1wdHkgcylcblxuaW50ZXJwb2xhdGUgPSBjdXJyeSAoIHRlbXBsYXRlLCBjb250ZXh0ICkgLT5cbiAgcGFyYW1ldGVycyA9IE9iamVjdC5rZXlzIGNvbnRleHRcbiAgZiA9IG5ldyBGdW5jdGlvbiBcInsjeyBwYXJhbWV0ZXJzIH19XCIsIFwicmV0dXJuIGAjeyB0ZW1wbGF0ZSB9YFwiXG4gIGYgY29udGV4dFxuXG5leHBvcnQge1xuICB0b1N0cmluZ1xuICB0b0Jhc2VcbiAgZnJvbUJhc2VcbiAgcGFyc2VOdW1iZXJcbiAgdG9VcHBlckNhc2VcbiAgdG9Mb3dlckNhc2VcbiAgY29sbGFwc2VcbiAgbm9ybWFsaXplXG4gIHVuY2FzZVxuICBnbG9zc1xuICBjYW1lbENhc2VcbiAgZGFzaGVkXG4gIGRhc2hlc1xuICBkYXNoXG4gIHVuZGVyc2NvcmVkXG4gIHVuZGVyc2NvcmVzXG4gIHVuZGVyc2NvcmVcbiAgc25ha2VDYXNlXG4gIGNhcGl0YWxpemVcbiAgdGl0bGVDYXNlXG4gIHRyaW1cbiAgdHJ1bmNhdGVcbiAgZWxpZGVcbiAgZW5jbG9zZVxuICBxdW90ZVxuICBkcXVvdGVcbiAgc3F1b3RlXG4gIHN0YXJ0c1dpdGhcbiAgZW5kc1dpdGhcbiAgcGFkXG4gIHBhZEVuZFxuICBwYWRTdGFydFxuICByZXBlYXRcbiAgc3BsaXRcbiAgd1xuICB3b3Jkc1xuICBpc0JsYW5rXG4gIG1hdGNoXG4gIGlzTWF0Y2hcbiAgcmVwbGFjZVxuICBpbnRlcnBvbGF0ZVxufVxuIl19
279
+ //# sourceURL=/@dashkite/joy/src/text.coffee
175
280
 
176
- exports.template = template = function (string, filters = {}) {
177
- return function ({
178
- key,
179
- apply
180
- }) {
181
- filters = Object.assign({}, {
182
- toString,
183
- toUpperCase,
184
- toLowerCase,
185
- trim
186
- }, filters);
187
-
188
- apply = function (string, name) {
189
- return filters[name](string);
190
- };
191
-
192
- return function (context) {
193
- return string.replace(/\{\{([^}]+)\}\}/g, function (_, target) {
194
- var names;
195
- [key, ...names] = target.split("|").map(trim);
196
- return names.reduce(apply, context[key]);
197
- });
198
- };
199
- }({});
200
- };
201
- //# sourceMappingURL=data:application/json;base64,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cnQge2N1cnJ5LCBwaXBlLCBkZXRhY2h9IGZyb20gXCIuL2Z1bmN0aW9uXCJcbmltcG9ydCB7IGlzU3RyaW5nLCBpc051bWJlciwgaXNCaWdJbnQgfSBmcm9tIFwiLi90eXBlXCJcbmltcG9ydCB7aXNFbXB0eX0gZnJvbSBcIi4vdmFsdWVcIlxuXG50b1N0cmluZyA9ICh4KSAtPiB4LnRvU3RyaW5nKClcblxudG9CYXNlID0gY3VycnkgKHJhZGl4LCBudW1iZXIpIC0+XG4gIGlmIChpc051bWJlciByYWRpeCkgJiYgKChpc051bWJlciBudW1iZXIpIHx8IGlzQmlnSW50IG51bWJlcilcbiAgICBpZiAyIDw9IHJhZGl4IDw9IDM2XG4gICAgICBudW1iZXIudG9TdHJpbmcgcmFkaXhcbiAgICBlbHNlXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yIFwidG9CYXNlOiByYWRpeCBtdXN0IGJldHdlZW4gMiBhbmQgMzZcIlxuICBlbHNlXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvciBcInRvQmFzZTogYXJndW1lbnRzIG11c3QgYmUgbnVtYmVyc1wiXG5cbmZyb21CYXNlID0gY3VycnkgKHJhZGl4LCBzdHJpbmcpIC0+IE51bWJlci5wYXJzZUludCBzdHJpbmcsIHJhZGl4XG5cbnBhcnNlTnVtYmVyID0gKHN0cmluZykgLT4gTnVtYmVyIHN0cmluZ1xuXG5tYXRjaCA9IGN1cnJ5IChwYXR0ZXJuLCBzdHJpbmcpIC0+IHN0cmluZy5tYXRjaCBwYXR0ZXJuXG5cbmlzTWF0Y2ggPSBjdXJyeSAocGF0dGVybiwgc3RyaW5nKSAtPiBwYXR0ZXJuLnRlc3Qgc3RyaW5nXG5cbnJlcGxhY2UgPSBjdXJyeSAocGF0dGVybiwgcmVwbGFjZW1lbnQsIHN0cmluZykgLT5cbiAgc3RyaW5nLnJlcGxhY2UgcGF0dGVybiwgcmVwbGFjZW1lbnRcblxudG9VcHBlckNhc2UgPSB0b1VwcGVyID0gZGV0YWNoIFN0cmluZzo6dG9VcHBlckNhc2VcblxudG9Mb3dlckNhc2UgPSB0b0xvd2VyID0gZGV0YWNoIFN0cmluZzo6dG9Mb3dlckNhc2VcblxudHJpbSA9IGRldGFjaCBTdHJpbmc6OnRyaW1cblxudHJpbVN0YXJ0ID0gZGV0YWNoIFN0cmluZzo6dHJpbVN0YXJ0XG5cbnRyaW1FbmQgPSBkZXRhY2ggU3RyaW5nOjp0cmltRW5kXG5cbmNvbGxhcHNlID0gKHMpIC0+IHJlcGxhY2UgL1xccysvZywgXCIgXCIsIHRyaW0gc1xuXG4jIGFkYXB0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vVml0b3JMdWl6Qy9ub3JtYWxpemUtdGV4dFxubm9ybWFsaXplID0gKHN0cmluZykgLT5cbiAgc3RyaW5nXG4gIC5ub3JtYWxpemUgXCJORktEXCJcbiAgLnJlcGxhY2UgL1tcXHUwMzAwLVxcdTAzNkZdL2csIFwiXCJcblxudW5jYXNlID0gcGlwZSBbXG4gIHJlcGxhY2UgL15bQS1aXS9nLCAoYykgLT4gYy50b0xvd2VyQ2FzZSgpXG4gIHJlcGxhY2UgL1tBLVpdL2csIChjKSAtPiBcIiAje2MudG9Mb3dlckNhc2UoKX1cIlxuICByZXBsYWNlIC9bXy1dL2csIFwiIFwiXG5dXG5cbmdsb3NzID0gcGlwZSBbXG4gIG5vcm1hbGl6ZVxuICBjb2xsYXBzZVxuICB0b0xvd2VyQ2FzZVxuICByZXBsYWNlIC9bXkEtWmEtejAtOSBdKy9nLCBcIlwiXG5dXG5cbmNhbWVsQ2FzZSA9IHBpcGUgW1xuICB1bmNhc2VcbiAgZ2xvc3NcbiAgcmVwbGFjZSAvXFxzXFx3L2csIHBpcGUgW1xuICAgIHRyaW1cbiAgICB0b1VwcGVyQ2FzZVxuICBdXG5dXG5cbmRhc2hlZCA9IGRhc2hlcyA9IGRhc2ggPSBwaXBlIFtcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIHJlcGxhY2UgL1xccy9nLCAocykgLT4gXCItXCJcbl1cblxudW5kZXJzY29yZWQgPSB1bmRlcnNjb3JlcyA9IHVuZGVyc2NvcmUgPSBzbmFrZUNhc2UgPSBwaXBlIFtcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIHJlcGxhY2UgL1xccy9nLCAocykgLT4gXCJfXCJcbl1cblxuY2FwaXRhbGl6ZSA9IChzdHJpbmcpIC0+ICh0b1VwcGVyQ2FzZSBzdHJpbmdbMF0pICsgc3RyaW5nWzEuLl1cblxudGl0bGVDYXNlID0gcmVwbGFjZSAvXFxiXFx3L2csIHRvVXBwZXJDYXNlXG5cbnN0YXJ0c1dpdGggPSBjdXJyeSAodGFyZ2V0LCBzdHJpbmcpIC0+IHN0cmluZy5zdGFydHNXaXRoIHRhcmdldFxuXG5lbmRzV2l0aCA9IGN1cnJ5ICh0YXJnZXQsIHN0cmluZykgLT4gc3RyaW5nLmVuZHNXaXRoIHRhcmdldFxuXG5wYWRFbmQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPiBzdHJpbmcucGFkRW5kIG4sIHBhZGRpbmdcblxucGFkU3RhcnQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPiBzdHJpbmcucGFkU3RhcnQgbiwgcGFkZGluZ1xuXG5wYWQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPlxuICBwYWRTdGFydCBuLCBwYWRkaW5nLFxuICAgIHBhZEVuZCAoTWF0aC5jZWlsIChuIC0gc3RyaW5nLmxlbmd0aCkvMikgKyBzdHJpbmcubGVuZ3RoLCBwYWRkaW5nLCBzdHJpbmdcblxucmVwZWF0ID0gY3VycnkgKG4sIHN0cmluZykgLT4gc3RyaW5nLnJlcGVhdCBuXG5cbmVuY2xvc2UgPSBjdXJyeSAoZGVsaW1pdGVyLCBzdHJpbmcpIC0+XG4gIGRvICh7c3RhcnQsIGVuZH0gPSB7fSkgLT5cbiAgICBpZiBkZWxpbWl0ZXIubGVuZ3RoID4gMVxuICAgICAgWyBzdGFydCwgZW5kIF0gPSBkZWxpbWl0ZXJcbiAgICBlbHNlXG4gICAgICBzdGFydCA9IGVuZCA9IGRlbGltaXRlclxuICAgIHN0YXJ0ICsgc3RyaW5nICsgZW5kXG5cbnF1b3RlID0gZHF1b3RlID0gZW5jbG9zZSAnXCInXG5cbnNxdW90ZSA9IGVuY2xvc2UgXCInXCJcblxudHJ1bmNhdGUgPSBjdXJyeSAobiwgc3RyaW5nKSAtPiBzdHJpbmdbMC4uLm5dXG5cbmVsaWRlID0gY3VycnkgKG4sIGVuZCwgc3RyaW5nKSAtPlxuICBpZiBzdHJpbmcubGVuZ3RoID4gblxuICAgIHJlcGxhY2UgL1xcVytcXHcqJC8sIGVuZCwgdHJ1bmNhdGUgbiAtIGVuZC5sZW5ndGggKyAxLCBzdHJpbmdcbiAgZWxzZVxuICAgIHN0cmluZ1xuXG5zcGxpdCA9IGN1cnJ5IChyZSwgcykgLT4gcy5zcGxpdCByZVxuXG53ID0gd29yZHMgPSBwaXBlIFtcbiAgdHJpbVxuICBzcGxpdCAvXFxzKy9cbl1cblxuaXNCbGFuayA9IChzKSAtPiAoaXNTdHJpbmcgcykgJiYgKGlzRW1wdHkgcylcblxudGVtcGxhdGUgPSAoc3RyaW5nLCBmaWx0ZXJzID0ge30pIC0+XG4gIGRvICh7IGtleSwgYXBwbHkgfSA9IHt9KSAtPlxuICAgIGZpbHRlcnMgPSBPYmplY3QuYXNzaWduIHt9LFxuICAgICAge3RvU3RyaW5nLCB0b1VwcGVyQ2FzZSwgdG9Mb3dlckNhc2UsIHRyaW19LFxuICAgICAgZmlsdGVyc1xuICAgIGFwcGx5ID0gKHN0cmluZywgbmFtZSkgLT4gZmlsdGVyc1tuYW1lXSBzdHJpbmdcbiAgICAoY29udGV4dCkgLT5cbiAgICAgIHN0cmluZy5yZXBsYWNlIC9cXHtcXHsoW159XSspXFx9XFx9L2csIChfLCB0YXJnZXQpIC0+XG4gICAgICAgIFtrZXksIG5hbWVzLi4uXSA9IHRhcmdldC5zcGxpdChcInxcIikubWFwIHRyaW1cbiAgICAgICAgbmFtZXMucmVkdWNlIGFwcGx5LCBjb250ZXh0W2tleV1cblxuZXhwb3J0IHtcbiAgdG9TdHJpbmdcbiAgdG9CYXNlXG4gIGZyb21CYXNlXG4gIHBhcnNlTnVtYmVyXG4gIHRvVXBwZXJDYXNlXG4gIHRvTG93ZXJDYXNlXG4gIGNvbGxhcHNlXG4gIG5vcm1hbGl6ZVxuICB1bmNhc2VcbiAgZ2xvc3NcbiAgY2FtZWxDYXNlXG4gIGRhc2hlZFxuICBkYXNoZXNcbiAgZGFzaFxuICB1bmRlcnNjb3JlZFxuICB1bmRlcnNjb3Jlc1xuICB1bmRlcnNjb3JlXG4gIHNuYWtlQ2FzZVxuICBjYXBpdGFsaXplXG4gIHRpdGxlQ2FzZVxuICB0cmltXG4gIHRydW5jYXRlXG4gIGVsaWRlXG4gIGVuY2xvc2VcbiAgcXVvdGVcbiAgZHF1b3RlXG4gIHNxdW90ZVxuICBzdGFydHNXaXRoXG4gIGVuZHNXaXRoXG4gIHBhZFxuICBwYWRFbmRcbiAgcGFkU3RhcnRcbiAgcmVwZWF0XG4gIHNwbGl0XG4gIHdcbiAgd29yZHNcbiAgaXNCbGFua1xuICBtYXRjaFxuICBpc01hdGNoXG4gIHJlcGxhY2VcbiAgdGVtcGxhdGVcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
202
- //# sourceURL=src/text.coffee
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9AZGFzaGtpdGUvam95L3NyYy90ZXh0LmNvZmZlZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2N1cnJ5LCBwaXBlLCBkZXRhY2h9IGZyb20gXCIuL2Z1bmN0aW9uXCJcbmltcG9ydCB7IGlzU3RyaW5nLCBpc051bWJlciwgaXNCaWdJbnQgfSBmcm9tIFwiLi90eXBlXCJcbmltcG9ydCB7aXNFbXB0eX0gZnJvbSBcIi4vdmFsdWVcIlxuXG50b1N0cmluZyA9ICh4KSAtPiB4LnRvU3RyaW5nKClcblxudG9CYXNlID0gY3VycnkgKHJhZGl4LCBudW1iZXIpIC0+XG4gIGlmIChpc051bWJlciByYWRpeCkgJiYgKChpc051bWJlciBudW1iZXIpIHx8IGlzQmlnSW50IG51bWJlcilcbiAgICBpZiAyIDw9IHJhZGl4IDw9IDM2XG4gICAgICBudW1iZXIudG9TdHJpbmcgcmFkaXhcbiAgICBlbHNlXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yIFwidG9CYXNlOiByYWRpeCBtdXN0IGJldHdlZW4gMiBhbmQgMzZcIlxuICBlbHNlXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvciBcInRvQmFzZTogYXJndW1lbnRzIG11c3QgYmUgbnVtYmVyc1wiXG5cbmZyb21CYXNlID0gY3VycnkgKHJhZGl4LCBzdHJpbmcpIC0+IE51bWJlci5wYXJzZUludCBzdHJpbmcsIHJhZGl4XG5cbnBhcnNlTnVtYmVyID0gKHN0cmluZykgLT4gTnVtYmVyIHN0cmluZ1xuXG5tYXRjaCA9IGN1cnJ5IChwYXR0ZXJuLCBzdHJpbmcpIC0+IHN0cmluZy5tYXRjaCBwYXR0ZXJuXG5cbmlzTWF0Y2ggPSBjdXJyeSAocGF0dGVybiwgc3RyaW5nKSAtPiBwYXR0ZXJuLnRlc3Qgc3RyaW5nXG5cbnJlcGxhY2UgPSBjdXJyeSAocGF0dGVybiwgcmVwbGFjZW1lbnQsIHN0cmluZykgLT5cbiAgc3RyaW5nLnJlcGxhY2UgcGF0dGVybiwgcmVwbGFjZW1lbnRcblxudG9VcHBlckNhc2UgPSB0b1VwcGVyID0gZGV0YWNoIFN0cmluZzo6dG9VcHBlckNhc2VcblxudG9Mb3dlckNhc2UgPSB0b0xvd2VyID0gZGV0YWNoIFN0cmluZzo6dG9Mb3dlckNhc2VcblxudHJpbSA9IGRldGFjaCBTdHJpbmc6OnRyaW1cblxudHJpbVN0YXJ0ID0gZGV0YWNoIFN0cmluZzo6dHJpbVN0YXJ0XG5cbnRyaW1FbmQgPSBkZXRhY2ggU3RyaW5nOjp0cmltRW5kXG5cbmNvbGxhcHNlID0gKHMpIC0+IHJlcGxhY2UgL1xccysvZywgXCIgXCIsIHRyaW0gc1xuXG4jIGFkYXB0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vVml0b3JMdWl6Qy9ub3JtYWxpemUtdGV4dFxubm9ybWFsaXplID0gKHN0cmluZykgLT5cbiAgc3RyaW5nXG4gIC5ub3JtYWxpemUgXCJORktEXCJcbiAgLnJlcGxhY2UgL1tcXHUwMzAwLVxcdTAzNkZdL2csIFwiXCJcblxudW5jYXNlID0gcGlwZSBbXG4gIHJlcGxhY2UgL15bQS1aXS9nLCAoYykgLT4gYy50b0xvd2VyQ2FzZSgpXG4gIHJlcGxhY2UgL1tBLVpdL2csIChjKSAtPiBcIiAje2MudG9Mb3dlckNhc2UoKX1cIlxuICByZXBsYWNlIC9bXy1dL2csIFwiIFwiXG5dXG5cbmdsb3NzID0gcGlwZSBbXG4gIG5vcm1hbGl6ZVxuICBjb2xsYXBzZVxuICB0b0xvd2VyQ2FzZVxuICByZXBsYWNlIC9bXkEtWmEtejAtOSBdKy9nLCBcIlwiXG5dXG5cbmNhbWVsQ2FzZSA9IHBpcGUgW1xuICB1bmNhc2VcbiAgZ2xvc3NcbiAgcmVwbGFjZSAvXFxzXFx3L2csIHBpcGUgW1xuICAgIHRyaW1cbiAgICB0b1VwcGVyQ2FzZVxuICBdXG5dXG5cbmRhc2hlZCA9IGRhc2hlcyA9IGRhc2ggPSBwaXBlIFtcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIHJlcGxhY2UgL1xccy9nLCAocykgLT4gXCItXCJcbl1cblxudW5kZXJzY29yZWQgPSB1bmRlcnNjb3JlcyA9IHVuZGVyc2NvcmUgPSBzbmFrZUNhc2UgPSBwaXBlIFtcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIHJlcGxhY2UgL1xccy9nLCAocykgLT4gXCJfXCJcbl1cblxuY2FwaXRhbGl6ZSA9IChzdHJpbmcpIC0+ICh0b1VwcGVyQ2FzZSBzdHJpbmdbMF0pICsgc3RyaW5nWzEuLl1cblxudGl0bGVDYXNlID0gcmVwbGFjZSAvXFxiXFx3L2csIHRvVXBwZXJDYXNlXG5cbnN0YXJ0c1dpdGggPSBjdXJyeSAodGFyZ2V0LCBzdHJpbmcpIC0+IHN0cmluZy5zdGFydHNXaXRoIHRhcmdldFxuXG5lbmRzV2l0aCA9IGN1cnJ5ICh0YXJnZXQsIHN0cmluZykgLT4gc3RyaW5nLmVuZHNXaXRoIHRhcmdldFxuXG5wYWRFbmQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPiBzdHJpbmcucGFkRW5kIG4sIHBhZGRpbmdcblxucGFkU3RhcnQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPiBzdHJpbmcucGFkU3RhcnQgbiwgcGFkZGluZ1xuXG5wYWQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPlxuICBwYWRTdGFydCBuLCBwYWRkaW5nLFxuICAgIHBhZEVuZCAoTWF0aC5jZWlsIChuIC0gc3RyaW5nLmxlbmd0aCkvMikgKyBzdHJpbmcubGVuZ3RoLCBwYWRkaW5nLCBzdHJpbmdcblxucmVwZWF0ID0gY3VycnkgKG4sIHN0cmluZykgLT4gc3RyaW5nLnJlcGVhdCBuXG5cbmVuY2xvc2UgPSBjdXJyeSAoZGVsaW1pdGVyLCBzdHJpbmcpIC0+XG4gIGRvICh7c3RhcnQsIGVuZH0gPSB7fSkgLT5cbiAgICBpZiBkZWxpbWl0ZXIubGVuZ3RoID4gMVxuICAgICAgWyBzdGFydCwgZW5kIF0gPSBkZWxpbWl0ZXJcbiAgICBlbHNlXG4gICAgICBzdGFydCA9IGVuZCA9IGRlbGltaXRlclxuICAgIHN0YXJ0ICsgc3RyaW5nICsgZW5kXG5cbnF1b3RlID0gZHF1b3RlID0gZW5jbG9zZSAnXCInXG5cbnNxdW90ZSA9IGVuY2xvc2UgXCInXCJcblxudHJ1bmNhdGUgPSBjdXJyeSAobiwgc3RyaW5nKSAtPiBzdHJpbmdbMC4uLm5dXG5cbmVsaWRlID0gY3VycnkgKG4sIGVuZCwgc3RyaW5nKSAtPlxuICBpZiBzdHJpbmcubGVuZ3RoID4gblxuICAgIHJlcGxhY2UgL1xcVytcXHcqJC8sIGVuZCwgdHJ1bmNhdGUgbiAtIGVuZC5sZW5ndGggKyAxLCBzdHJpbmdcbiAgZWxzZVxuICAgIHN0cmluZ1xuXG5zcGxpdCA9IGN1cnJ5IChyZSwgcykgLT4gcy5zcGxpdCByZVxuXG53ID0gd29yZHMgPSBwaXBlIFtcbiAgdHJpbVxuICBzcGxpdCAvXFxzKy9cbl1cblxuaXNCbGFuayA9IChzKSAtPiAoaXNTdHJpbmcgcykgJiYgKGlzRW1wdHkgcylcblxuaW50ZXJwb2xhdGUgPSBjdXJyeSAoIHRlbXBsYXRlLCBjb250ZXh0ICkgLT5cbiAgcGFyYW1ldGVycyA9IE9iamVjdC5rZXlzIGNvbnRleHRcbiAgZiA9IG5ldyBGdW5jdGlvbiBcInsjeyBwYXJhbWV0ZXJzIH19XCIsIFwicmV0dXJuIGAjeyB0ZW1wbGF0ZSB9YFwiXG4gIGYgY29udGV4dFxuXG5leHBvcnQge1xuICB0b1N0cmluZ1xuICB0b0Jhc2VcbiAgZnJvbUJhc2VcbiAgcGFyc2VOdW1iZXJcbiAgdG9VcHBlckNhc2VcbiAgdG9Mb3dlckNhc2VcbiAgY29sbGFwc2VcbiAgbm9ybWFsaXplXG4gIHVuY2FzZVxuICBnbG9zc1xuICBjYW1lbENhc2VcbiAgZGFzaGVkXG4gIGRhc2hlc1xuICBkYXNoXG4gIHVuZGVyc2NvcmVkXG4gIHVuZGVyc2NvcmVzXG4gIHVuZGVyc2NvcmVcbiAgc25ha2VDYXNlXG4gIGNhcGl0YWxpemVcbiAgdGl0bGVDYXNlXG4gIHRyaW1cbiAgdHJ1bmNhdGVcbiAgZWxpZGVcbiAgZW5jbG9zZVxuICBxdW90ZVxuICBkcXVvdGVcbiAgc3F1b3RlXG4gIHN0YXJ0c1dpdGhcbiAgZW5kc1dpdGhcbiAgcGFkXG4gIHBhZEVuZFxuICBwYWRTdGFydFxuICByZXBlYXRcbiAgc3BsaXRcbiAgd1xuICB3b3Jkc1xuICBpc0JsYW5rXG4gIG1hdGNoXG4gIGlzTWF0Y2hcbiAgcmVwbGFjZVxuICBpbnRlcnBvbGF0ZVxufVxuIl0sIm5hbWVzIjpbImNhbWVsQ2FzZSIsImNhcGl0YWxpemUiLCJjb2xsYXBzZSIsImRhc2giLCJkYXNoZWQiLCJkYXNoZXMiLCJkcXVvdGUiLCJlbGlkZSIsImVuY2xvc2UiLCJlbmRzV2l0aCIsImZyb21CYXNlIiwiZ2xvc3MiLCJpbnRlcnBvbGF0ZSIsImlzQmxhbmsiLCJpc01hdGNoIiwibWF0Y2giLCJub3JtYWxpemUiLCJwYWQiLCJwYWRFbmQiLCJwYWRTdGFydCIsInBhcnNlTnVtYmVyIiwicXVvdGUiLCJyZXBlYXQiLCJyZXBsYWNlIiwic25ha2VDYXNlIiwic3BsaXQiLCJzcXVvdGUiLCJzdGFydHNXaXRoIiwidGl0bGVDYXNlIiwidG9CYXNlIiwidG9Mb3dlckNhc2UiLCJ0b1N0cmluZyIsInRvVXBwZXJDYXNlIiwidHJpbSIsInRydW5jYXRlIiwidW5jYXNlIiwidW5kZXJzY29yZSIsInVuZGVyc2NvcmVkIiwidW5kZXJzY29yZXMiLCJ3Iiwid29yZHMiLCJ0b0xvd2VyIiwidG9VcHBlciIsInRyaW1FbmQiLCJ0cmltU3RhcnQiLCJ4IiwiY3VycnkiLCJyYWRpeCIsIm51bWJlciIsImlzTnVtYmVyIiwiaXNCaWdJbnQiLCJUeXBlRXJyb3IiLCJzdHJpbmciLCJOdW1iZXIiLCJwYXJzZUludCIsInBhdHRlcm4iLCJ0ZXN0IiwicmVwbGFjZW1lbnQiLCJkZXRhY2giLCJTdHJpbmciLCJwcm90b3R5cGUiLCJzIiwicGlwZSIsImMiLCJzbGljZSIsInRhcmdldCIsIm4iLCJwYWRkaW5nIiwiTWF0aCIsImNlaWwiLCJsZW5ndGgiLCJkZWxpbWl0ZXIiLCJzdGFydCIsImVuZCIsInJlIiwiaXNTdHJpbmciLCJpc0VtcHR5IiwidGVtcGxhdGUiLCJjb250ZXh0IiwiZiIsInBhcmFtZXRlcnMiLCJPYmplY3QiLCJrZXlzIiwiRnVuY3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7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