bry-biometric-collector 2.1.0-RC16 → 2.1.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.
@@ -237,4 +237,3 @@ export {
237
237
  f as unconformities,
238
238
  a as unknownDuplicateFingerSwal
239
239
  };
240
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtYnJfNjRkZWZjYWFfMi4xLjAtUkMxNi5qcyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "bry-biometric-collector",
3
3
  "private": false,
4
4
  "description": "BRy web-collector component for biometric capture.",
5
- "version": "2.1.0-RC16",
5
+ "version": "2.1.0",
6
6
  "main": "dist/bry-biometric-collector-main.js",
7
7
  "type": "module",
8
8
  "author": {
@@ -1,394 +0,0 @@
1
- import { as as T, S as j, r as z, t as F, w as K, x as u, y as N, B as M, D as G, G as J, a8 as Y, b1 as O, b2 as Z, aC as E, aG as B, aH as d, aI as v, aR as f, aY as k, aD as C, b3 as A, aJ as S, aV as D, b4 as L } from "./main_282e49c1_2.1.0-RC16.js";
2
- var y = /* @__PURE__ */ ((o) => (o.OK = "OK", o.DEVICE_NOT_FOUND_ERROR = "DEVICE_NOT_FOUND_ERROR", o.CAMERA_DENIED_ERROR = "CAMERA_DENIED_ERROR", o.CAMERA_IN_USE_ERROR = "CAMERA_IN_USE_ERROR", o.CAMERA_CLOSED_ERROR = "CAMERA_CLOSED_ERROR", o.CAMERA_UNSUPPORTED = "CAMERA_UNSUPPORTED", o))(y || {});
3
- const g = T(
4
- "OK"
5
- /* OK */
6
- ), b = "src/lib/faceTab/cameraStatus/CameraStatus.svelte";
7
- function U(o) {
8
- let t, c, _, s, p, l, m, n, x, w, R = [
9
- { class: "text-[8em] mx-auto" },
10
- { xmlns: "http://www.w3.org/2000/svg" },
11
- { width: "1em" },
12
- { height: "1em" },
13
- { viewBox: "0 0 256 256" },
14
- /*$$props*/
15
- o[2]
16
- ], r = {};
17
- for (let i = 0; i < R.length; i += 1)
18
- r = O(r, R[i]);
19
- const h = {
20
- c: function() {
21
- t = k("svg"), c = k("path"), _ = C(), s = E("span"), s.textContent = "A câmera não atende os requisitos necessários.", p = C(), l = E("span"), l.textContent = "Por favor, conecte outra câmera e tente novamente.", m = C(), n = E("button"), n.textContent = "Reiniciar", d(c, "fill", "currentColor"), d(c, "d", "M249.45 69.31a12 12 0 0 0-12.51 1L212 88.43V72a20 20 0 0 0-20-20h-68.12a12 12 0 0 0 0 24H188v68a12 12 0 0 0 4.46 9.33c.15.13.31.25.48.38l44 32A12 12 0 0 0 256 176V80a12 12 0 0 0-6.55-10.69M232 152.43l-20-14.54v-19.78l20-14.54ZM56.88 31.93a12 12 0 1 0-17.76 16.14L42.69 52H32a20 20 0 0 0-20 20v112a20 20 0 0 0 20 20h148.87l18.25 20.07a12 12 0 0 0 17.76-16.14ZM36 180V76h28.51l94.55 104Z"), v(c, b, 126, 6, 5896), A(t, r), v(t, b, 118, 4, 5721), d(s, "class", "text-xl font-bold text-center"), v(s, b, 131, 4, 6352), d(l, "class", "m-auto text-base block text-center"), v(l, b, 132, 4, 6454), d(n, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), v(n, b, 133, 4, 6565);
22
- },
23
- m: function(e, a) {
24
- u(e, t, a), S(t, c), u(e, _, a), u(e, s, a), u(e, p, a), u(e, l, a), u(e, m, a), u(e, n, a), x || (w = D(
25
- n,
26
- "click",
27
- /*click_handler_4*/
28
- o[7],
29
- !1,
30
- !1,
31
- !1,
32
- !1
33
- ), x = !0);
34
- },
35
- p: function(e, a) {
36
- A(t, r = L(R, [
37
- { class: "text-[8em] mx-auto" },
38
- { xmlns: "http://www.w3.org/2000/svg" },
39
- { width: "1em" },
40
- { height: "1em" },
41
- { viewBox: "0 0 256 256" },
42
- a & /*$$props*/
43
- 4 && /*$$props*/
44
- e[2]
45
- ]));
46
- },
47
- d: function(e) {
48
- e && f(t), e && f(_), e && f(s), e && f(p), e && f(l), e && f(m), e && f(n), x = !1, w();
49
- }
50
- };
51
- return M("SvelteRegisterBlock", {
52
- block: h,
53
- id: U.name,
54
- type: "if",
55
- source: "(117:71) ",
56
- ctx: o
57
- }), h;
58
- }
59
- function V(o) {
60
- let t, c, _, s, p, l, m, n, x, w, R = [
61
- { class: "text-[8em] mx-auto" },
62
- { xmlns: "http://www.w3.org/2000/svg" },
63
- { width: "1em" },
64
- { height: "1em" },
65
- { viewBox: "0 0 256 256" },
66
- /*$$props*/
67
- o[2]
68
- ], r = {};
69
- for (let i = 0; i < R.length; i += 1)
70
- r = O(r, R[i]);
71
- const h = {
72
- c: function() {
73
- t = k("svg"), c = k("path"), _ = C(), s = E("span"), s.textContent = "Por favor, permaneça na mesma aba durante a coleta biométrica.", p = C(), l = E("span"), l.textContent = "Clique no botão Reiniciar para capturar novamente.", m = C(), n = E("button"), n.textContent = "Reiniciar", d(c, "fill", "currentColor"), d(c, "d", "M236.8 188.09L149.35 36.22a24.76 24.76 0 0 0-42.7 0L19.2 188.09a23.51 23.51 0 0 0 0 23.72A24.35 24.35 0 0 0 40.55 224h174.9a24.35 24.35 0 0 0 21.33-12.19a23.51 23.51 0 0 0 .02-23.72m-13.87 15.71a8.5 8.5 0 0 1-7.48 4.2H40.55a8.5 8.5 0 0 1-7.48-4.2a7.59 7.59 0 0 1 0-7.72l87.45-151.87a8.75 8.75 0 0 1 15 0l87.45 151.87a7.59 7.59 0 0 1-.04 7.72M120 144v-40a8 8 0 0 1 16 0v40a8 8 0 0 1-16 0m20 36a12 12 0 1 1-12-12a12 12 0 0 1 12 12"), v(c, b, 103, 6, 4710), A(t, r), v(t, b, 95, 4, 4535), d(s, "class", "text-xl font-bold text-center"), v(s, b, 108, 4, 5209), d(l, "class", "m-auto text-base block text-center"), v(l, b, 109, 4, 5327), d(n, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), v(n, b, 110, 4, 5438);
74
- },
75
- m: function(e, a) {
76
- u(e, t, a), S(t, c), u(e, _, a), u(e, s, a), u(e, p, a), u(e, l, a), u(e, m, a), u(e, n, a), x || (w = D(
77
- n,
78
- "click",
79
- /*click_handler_3*/
80
- o[6],
81
- !1,
82
- !1,
83
- !1,
84
- !1
85
- ), x = !0);
86
- },
87
- p: function(e, a) {
88
- A(t, r = L(R, [
89
- { class: "text-[8em] mx-auto" },
90
- { xmlns: "http://www.w3.org/2000/svg" },
91
- { width: "1em" },
92
- { height: "1em" },
93
- { viewBox: "0 0 256 256" },
94
- a & /*$$props*/
95
- 4 && /*$$props*/
96
- e[2]
97
- ]));
98
- },
99
- d: function(e) {
100
- e && f(t), e && f(_), e && f(s), e && f(p), e && f(l), e && f(m), e && f(n), x = !1, w();
101
- }
102
- };
103
- return M("SvelteRegisterBlock", {
104
- block: h,
105
- id: V.name,
106
- type: "if",
107
- source: "(94:72) ",
108
- ctx: o
109
- }), h;
110
- }
111
- function I(o) {
112
- let t, c, _, s, p, l, m, n, x, w, R = [
113
- { class: "text-[8em] mx-auto" },
114
- { xmlns: "http://www.w3.org/2000/svg" },
115
- { width: "1em" },
116
- { height: "1em" },
117
- { viewBox: "0 0 256 256" },
118
- /*$$props*/
119
- o[2]
120
- ], r = {};
121
- for (let i = 0; i < R.length; i += 1)
122
- r = O(r, R[i]);
123
- const h = {
124
- c: function() {
125
- t = k("svg"), c = k("path"), _ = C(), s = E("span"), s.textContent = "A câmera está em uso.", p = C(), l = E("span"), l.textContent = "Certifique-se de que a câmera não está sendo utilizada por nenhuma outra aplicação e clique no botão abaixo.", m = C(), n = E("button"), n.textContent = "Reiniciar", d(c, "fill", "currentColor"), d(c, "d", "M56.88 31.93a12 12 0 1 0-17.76 16.14l4 4.37A28 28 0 0 0 20 80v112a28 28 0 0 0 28 28h147.42l3.7 4.07a12 12 0 0 0 17.76-16.14Zm49.35 90L136 154.64a24 24 0 0 1-29.77-32.75ZM48 196a4 4 0 0 1-4-4V80a4 4 0 0 1 4-4h16.51l24.92 27.41a48 48 0 0 0 63.34 69.67L173.6 196ZM236 80v94.14a12 12 0 0 1-24 0V80a4 4 0 0 0-4-4h-32a12 12 0 0 1-10-5.34L153.57 52h-51.51a12 12 0 0 1 0-24H160a12 12 0 0 1 10 5.34L182.42 52H208a28 28 0 0 1 28 28"), v(c, b, 75, 6, 3422), A(t, r), v(t, b, 67, 4, 3247), d(s, "class", "text-xl font-bold text-center"), v(s, b, 80, 4, 3914), d(l, "class", "m-auto text-base block text-center"), v(l, b, 81, 4, 3991), d(n, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), v(n, b, 84, 4, 4172);
126
- },
127
- m: function(e, a) {
128
- u(e, t, a), S(t, c), u(e, _, a), u(e, s, a), u(e, p, a), u(e, l, a), u(e, m, a), u(e, n, a), x || (w = D(
129
- n,
130
- "click",
131
- /*click_handler_2*/
132
- o[5],
133
- !1,
134
- !1,
135
- !1,
136
- !1
137
- ), x = !0);
138
- },
139
- p: function(e, a) {
140
- A(t, r = L(R, [
141
- { class: "text-[8em] mx-auto" },
142
- { xmlns: "http://www.w3.org/2000/svg" },
143
- { width: "1em" },
144
- { height: "1em" },
145
- { viewBox: "0 0 256 256" },
146
- a & /*$$props*/
147
- 4 && /*$$props*/
148
- e[2]
149
- ]));
150
- },
151
- d: function(e) {
152
- e && f(t), e && f(_), e && f(s), e && f(p), e && f(l), e && f(m), e && f(n), x = !1, w();
153
- }
154
- };
155
- return M("SvelteRegisterBlock", {
156
- block: h,
157
- id: I.name,
158
- type: "if",
159
- source: "(66:72) ",
160
- ctx: o
161
- }), h;
162
- }
163
- function P(o) {
164
- let t, c, _, s, p, l, m, n, x, w, R = [
165
- { class: "text-[8em] mx-auto" },
166
- { xmlns: "http://www.w3.org/2000/svg" },
167
- { width: "1em" },
168
- { height: "1em" },
169
- { viewBox: "0 0 256 256" },
170
- /*$$props*/
171
- o[2]
172
- ], r = {};
173
- for (let i = 0; i < R.length; i += 1)
174
- r = O(r, R[i]);
175
- const h = {
176
- c: function() {
177
- t = k("svg"), c = k("path"), _ = C(), s = E("span"), s.textContent = "A câmera não foi detectada.", p = C(), l = E("span"), l.textContent = "Por favor, conecte a sua câmera, espere alguns instantes e clique no botão Reiniciar.", m = C(), n = E("button"), n.textContent = "Reiniciar", d(c, "fill", "currentColor"), d(c, "d", "m137 168l11.52-11.51a12 12 0 0 0-17-17L120 151l-15-15l11.52-11.51a12 12 0 0 0-17-17L88 119l-15.51-15.49a12 12 0 0 0-17 17L59 124l-20.46 20.49a36 36 0 0 0 0 50.91l2.55 2.54l-25.58 25.57a12 12 0 0 0 17 17l25.57-25.58l2.54 2.55a36.06 36.06 0 0 0 50.91 0L132 197l3.51 3.52a12 12 0 0 0 17-17Zm-42.46 32.49a12 12 0 0 1-17 0l-22.03-22.06a12 12 0 0 1 0-17L76 141l39 39Zm146-185a12 12 0 0 0-17 0l-25.6 25.6l-2.54-2.55a36.05 36.05 0 0 0-50.91 0L124 59l-3.51-3.52a12 12 0 0 0-17 17l80 80a12 12 0 0 0 17-17L197 132l20.49-20.49a36 36 0 0 0 0-50.91l-2.55-2.54l25.58-25.57a12 12 0 0 0-.03-16.98Zm-40 79L180 115l-39-39l20.49-20.49a12 12 0 0 1 17 0l22.06 22.06a12 12 0 0 1 0 17Z"), v(c, b, 46, 6, 1876), A(t, r), v(t, b, 38, 4, 1701), d(s, "class", "text-xl font-bold text-center"), v(s, b, 51, 4, 2608), d(l, "class", "m-auto text-base block text-center"), v(l, b, 52, 4, 2691), d(n, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), v(n, b, 55, 4, 2849);
178
- },
179
- m: function(e, a) {
180
- u(e, t, a), S(t, c), u(e, _, a), u(e, s, a), u(e, p, a), u(e, l, a), u(e, m, a), u(e, n, a), x || (w = D(
181
- n,
182
- "click",
183
- /*click_handler_1*/
184
- o[4],
185
- !1,
186
- !1,
187
- !1,
188
- !1
189
- ), x = !0);
190
- },
191
- p: function(e, a) {
192
- A(t, r = L(R, [
193
- { class: "text-[8em] mx-auto" },
194
- { xmlns: "http://www.w3.org/2000/svg" },
195
- { width: "1em" },
196
- { height: "1em" },
197
- { viewBox: "0 0 256 256" },
198
- a & /*$$props*/
199
- 4 && /*$$props*/
200
- e[2]
201
- ]));
202
- },
203
- d: function(e) {
204
- e && f(t), e && f(_), e && f(s), e && f(p), e && f(l), e && f(m), e && f(n), x = !1, w();
205
- }
206
- };
207
- return M("SvelteRegisterBlock", {
208
- block: h,
209
- id: P.name,
210
- type: "if",
211
- source: "(37:75) ",
212
- ctx: o
213
- }), h;
214
- }
215
- function q(o) {
216
- let t, c, _, s, p, l, m, n, x, w, R = [
217
- { class: "text-[8em] mx-auto" },
218
- { xmlns: "http://www.w3.org/2000/svg" },
219
- { width: "1em" },
220
- { height: "1em" },
221
- { viewBox: "0 0 256 256" },
222
- /*$$props*/
223
- o[2]
224
- ], r = {};
225
- for (let i = 0; i < R.length; i += 1)
226
- r = O(r, R[i]);
227
- const h = {
228
- c: function() {
229
- t = k("svg"), c = k("path"), _ = C(), s = E("span"), s.textContent = "Por favor, conceda permissão de acesso à câmera.", p = C(), l = E("span"), l.textContent = "Após conceder a permissão, clique no botão Reiniciar.", m = C(), n = E("button"), n.textContent = "Reiniciar", d(c, "fill", "currentColor"), d(c, "d", "M249.45 69.31a12 12 0 0 0-12.51 1L212 88.43V72a20 20 0 0 0-20-20h-68.12a12 12 0 0 0 0 24H188v68a12 12 0 0 0 4.46 9.33c.15.13.31.25.48.38l44 32A12 12 0 0 0 256 176V80a12 12 0 0 0-6.55-10.69M232 152.43l-20-14.54v-19.78l20-14.54ZM56.88 31.93a12 12 0 1 0-17.76 16.14L42.69 52H32a20 20 0 0 0-20 20v112a20 20 0 0 0 20 20h148.87l18.25 20.07a12 12 0 0 0 17.76-16.14ZM36 180V76h28.51l94.55 104Z"), v(c, b, 19, 6, 612), A(t, r), v(t, b, 11, 4, 437), d(s, "class", "text-xl font-bold text-center"), v(s, b, 24, 4, 1068), d(l, "class", "m-auto text-base block text-center"), v(l, b, 25, 4, 1172), d(n, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), v(n, b, 26, 4, 1286);
230
- },
231
- m: function(e, a) {
232
- u(e, t, a), S(t, c), u(e, _, a), u(e, s, a), u(e, p, a), u(e, l, a), u(e, m, a), u(e, n, a), x || (w = D(
233
- n,
234
- "click",
235
- /*click_handler*/
236
- o[3],
237
- !1,
238
- !1,
239
- !1,
240
- !1
241
- ), x = !0);
242
- },
243
- p: function(e, a) {
244
- A(t, r = L(R, [
245
- { class: "text-[8em] mx-auto" },
246
- { xmlns: "http://www.w3.org/2000/svg" },
247
- { width: "1em" },
248
- { height: "1em" },
249
- { viewBox: "0 0 256 256" },
250
- a & /*$$props*/
251
- 4 && /*$$props*/
252
- e[2]
253
- ]));
254
- },
255
- d: function(e) {
256
- e && f(t), e && f(_), e && f(s), e && f(p), e && f(l), e && f(m), e && f(n), x = !1, w();
257
- }
258
- };
259
- return M("SvelteRegisterBlock", {
260
- block: h,
261
- id: q.name,
262
- type: "if",
263
- source: "(10:2) {#if $cameraStatusStore === CameraStatusEnum.CAMERA_DENIED_ERROR}",
264
- ctx: o
265
- }), h;
266
- }
267
- function H(o) {
268
- let t;
269
- function c(l, m) {
270
- if (
271
- /*$cameraStatusStore*/
272
- l[1] === y.CAMERA_DENIED_ERROR
273
- )
274
- return q;
275
- if (
276
- /*$cameraStatusStore*/
277
- l[1] === y.DEVICE_NOT_FOUND_ERROR
278
- )
279
- return P;
280
- if (
281
- /*$cameraStatusStore*/
282
- l[1] === y.CAMERA_IN_USE_ERROR
283
- )
284
- return I;
285
- if (
286
- /*$cameraStatusStore*/
287
- l[1] === y.CAMERA_CLOSED_ERROR
288
- )
289
- return V;
290
- if (
291
- /*$cameraStatusStore*/
292
- l[1] === y.CAMERA_UNSUPPORTED
293
- )
294
- return U;
295
- }
296
- let _ = c(o), s = _ && _(o);
297
- const p = {
298
- c: function() {
299
- t = E("div"), s && s.c(), this.c = B, d(t, "class", "flex flex-col gap-4 justify-center absolute -translate-y-1/2 -translate-x-1/2 top-1/2 left-1/2 overflow-visible text-nowrap"), v(t, b, 6, 0, 176);
300
- },
301
- l: function(m) {
302
- throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
303
- },
304
- m: function(m, n) {
305
- u(m, t, n), s && s.m(t, null);
306
- },
307
- p: function(m, [n]) {
308
- _ === (_ = c(m)) && s ? s.p(m, n) : (s && s.d(1), s = _ && _(m), s && (s.c(), s.m(t, null)));
309
- },
310
- i: B,
311
- o: B,
312
- d: function(m) {
313
- m && f(t), s && s.d();
314
- }
315
- };
316
- return M("SvelteRegisterBlock", {
317
- block: p,
318
- id: H.name,
319
- type: "component",
320
- source: "",
321
- ctx: o
322
- }), p;
323
- }
324
- function Q(o, t, c) {
325
- let _;
326
- G(g, "cameraStatusStore"), J(o, g, (r) => c(1, _ = r));
327
- let { $$slots: s = {}, $$scope: p } = t;
328
- Y("camera-status", s, []);
329
- let { handler: l = () => {
330
- } } = t;
331
- const m = () => {
332
- l(), console.log("canicna", l);
333
- }, n = () => {
334
- l(), console.log("canicna", l);
335
- }, x = () => {
336
- l(), console.log("canicna", l);
337
- }, w = () => {
338
- l();
339
- }, R = () => {
340
- l();
341
- };
342
- return o.$$set = (r) => {
343
- c(2, t = O(O({}, t), Z(r))), "handler" in r && c(0, l = r.handler);
344
- }, o.$capture_state = () => ({
345
- handler: l,
346
- CameraStatusEnum: y,
347
- cameraStatusStore: g,
348
- $cameraStatusStore: _
349
- }), o.$inject_state = (r) => {
350
- c(2, t = O(O({}, t), r)), "handler" in t && c(0, l = r.handler);
351
- }, t && "$$inject" in t && o.$inject_state(t.$$inject), t = Z(t), [
352
- l,
353
- _,
354
- t,
355
- m,
356
- n,
357
- x,
358
- w,
359
- R
360
- ];
361
- }
362
- class W extends j {
363
- constructor(t) {
364
- super(), z(
365
- this,
366
- {
367
- target: this.shadowRoot,
368
- props: K(this.attributes),
369
- customElement: !0
370
- },
371
- Q,
372
- H,
373
- F,
374
- { handler: 0 },
375
- null
376
- ), t && (t.target && u(t.target, this, t.anchor), t.props && (this.$set(t.props), N()));
377
- }
378
- static get observedAttributes() {
379
- return ["handler"];
380
- }
381
- get handler() {
382
- return this.$$.ctx[0];
383
- }
384
- set handler(t) {
385
- this.$$set({ handler: t }), N();
386
- }
387
- }
388
- customElements.define("camera-status", W);
389
- export {
390
- y as C,
391
- W as a,
392
- g as c
393
- };
394
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FtZXJhU3RhdHVzX2MxYWY3N2NjXzIuMS4wLVJDMTYuanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9saWIvZmFjZVRhYi9jYW1lcmFTdGF0dXMvY2FtZXJhU3RhdHVzU3RvcmUudHMiLCIuLi9zcmMvbGliL2ZhY2VUYWIvY2FtZXJhU3RhdHVzL0NhbWVyYVN0YXR1cy5zdmVsdGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd3JpdGFibGUgfSBmcm9tICdzdmVsdGUvc3RvcmUnO1xuXG5leHBvcnQgY29uc3QgZW51bSBDYW1lcmFTdGF0dXNFbnVtIHtcbiAgT0sgPSAnT0snLFxuICBERVZJQ0VfTk9UX0ZPVU5EX0VSUk9SID0gJ0RFVklDRV9OT1RfRk9VTkRfRVJST1InLFxuICBDQU1FUkFfREVOSUVEX0VSUk9SID0gJ0NBTUVSQV9ERU5JRURfRVJST1InLCAvLyBvciBkaXNtaXNzZWRcbiAgQ0FNRVJBX0lOX1VTRV9FUlJPUiA9ICdDQU1FUkFfSU5fVVNFX0VSUk9SJyxcbiAgQ0FNRVJBX0NMT1NFRF9FUlJPUiA9ICdDQU1FUkFfQ0xPU0VEX0VSUk9SJyxcbiAgQ0FNRVJBX1VOU1VQUE9SVEVEID0gJ0NBTUVSQV9VTlNVUFBPUlRFRCcsXG59XG5cbmV4cG9ydCBjb25zdCBjYW1lcmFTdGF0dXNTdG9yZSA9IHdyaXRhYmxlPENhbWVyYVN0YXR1c0VudW0+KENhbWVyYVN0YXR1c0VudW0uT0spO1xuIiwiPHN2ZWx0ZTpvcHRpb25zIHRhZz1cImNhbWVyYS1zdGF0dXNcIiAvPlxuXG48c2NyaXB0IGxhbmc9XCJ0c1wiPlxuICBleHBvcnQgbGV0IGhhbmRsZXI6IEZ1bmN0aW9uID0gKCkgPT4ge307XG4gIGltcG9ydCB7IENhbWVyYVN0YXR1c0VudW0sIGNhbWVyYVN0YXR1c1N0b3JlIH0gZnJvbSAnLi9jYW1lcmFTdGF0dXNTdG9yZSc7XG48L3NjcmlwdD5cblxuPGRpdlxuICBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTQganVzdGlmeS1jZW50ZXIgYWJzb2x1dGUgLXRyYW5zbGF0ZS15LTEvMiAtdHJhbnNsYXRlLXgtMS8yIHRvcC0xLzIgbGVmdC0xLzIgb3ZlcmZsb3ctdmlzaWJsZSB0ZXh0LW5vd3JhcFwiXG4+XG4gIHsjaWYgJGNhbWVyYVN0YXR1c1N0b3JlID09PSBDYW1lcmFTdGF0dXNFbnVtLkNBTUVSQV9ERU5JRURfRVJST1J9XG4gICAgPCEtLSBpY29uaWZ5IHBoOnZpZGVvLWNhbWVyYS1zbGFzaC1ib2xkIC0tPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwidGV4dC1bOGVtXSBteC1hdXRvXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgd2lkdGg9XCIxZW1cIlxuICAgICAgaGVpZ2h0PVwiMWVtXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjU2IDI1NlwiXG4gICAgICB7Li4uJCRwcm9wc31cbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgZD1cIk0yNDkuNDUgNjkuMzFhMTIgMTIgMCAwIDAtMTIuNTEgMUwyMTIgODguNDNWNzJhMjAgMjAgMCAwIDAtMjAtMjBoLTY4LjEyYTEyIDEyIDAgMCAwIDAgMjRIMTg4djY4YTEyIDEyIDAgMCAwIDQuNDYgOS4zM2MuMTUuMTMuMzEuMjUuNDguMzhsNDQgMzJBMTIgMTIgMCAwIDAgMjU2IDE3NlY4MGExMiAxMiAwIDAgMC02LjU1LTEwLjY5TTIzMiAxNTIuNDNsLTIwLTE0LjU0di0xOS43OGwyMC0xNC41NFpNNTYuODggMzEuOTNhMTIgMTIgMCAxIDAtMTcuNzYgMTYuMTRMNDIuNjkgNTJIMzJhMjAgMjAgMCAwIDAtMjAgMjB2MTEyYTIwIDIwIDAgMCAwIDIwIDIwaDE0OC44N2wxOC4yNSAyMC4wN2ExMiAxMiAwIDAgMCAxNy43Ni0xNi4xNFpNMzYgMTgwVjc2aDI4LjUxbDk0LjU1IDEwNFpcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHRleHQtY2VudGVyXCI+UG9yIGZhdm9yLCBjb25jZWRhIHBlcm1pc3PDo28gZGUgYWNlc3NvIMOgIGPDom1lcmEuPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwibS1hdXRvIHRleHQtYmFzZSBibG9jayB0ZXh0LWNlbnRlclwiPkFww7NzIGNvbmNlZGVyIGEgcGVybWlzc8OjbywgY2xpcXVlIG5vIGJvdMOjbyBSZWluaWNpYXIuPC9zcGFuPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiei0yMCBjZS1kdWktYnRuIGNlLWR1aS1idG4tb3V0bGluZSBjZS1kdWktYnRuLXByaW1hcnkgbS1hdXRvXCJcbiAgICAgIG9uOmNsaWNrPXsoKSA9PiB7XG4gICAgICAgIGhhbmRsZXIoKTtcbiAgICAgICAgY29uc29sZS5sb2coJ2NhbmljbmEnLCBoYW5kbGVyKTtcbiAgICAgICAgLy8gY2FwdHVyaW5nID0gdHJ1ZTtcbiAgICAgICAgLy8gY2FtZXJhRGVuaWVkID0gZmFsc2U7XG4gICAgICAgIC8vIG9wZW5DYW1lcmEoKTtcbiAgICAgIH19PlJlaW5pY2lhcjwvYnV0dG9uXG4gICAgPlxuICB7OmVsc2UgaWYgJGNhbWVyYVN0YXR1c1N0b3JlID09PSBDYW1lcmFTdGF0dXNFbnVtLkRFVklDRV9OT1RfRk9VTkRfRVJST1J9XG4gICAgPCEtLSBpY29uaWZ5IHBoOnZpZGVvLWNhbWVyYS1zbGFzaC1ib2xkIC0tPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwidGV4dC1bOGVtXSBteC1hdXRvXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgd2lkdGg9XCIxZW1cIlxuICAgICAgaGVpZ2h0PVwiMWVtXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjU2IDI1NlwiXG4gICAgICB7Li4uJCRwcm9wc31cbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgZD1cIm0xMzcgMTY4bDExLjUyLTExLjUxYTEyIDEyIDAgMCAwLTE3LTE3TDEyMCAxNTFsLTE1LTE1bDExLjUyLTExLjUxYTEyIDEyIDAgMCAwLTE3LTE3TDg4IDExOWwtMTUuNTEtMTUuNDlhMTIgMTIgMCAwIDAtMTcgMTdMNTkgMTI0bC0yMC40NiAyMC40OWEzNiAzNiAwIDAgMCAwIDUwLjkxbDIuNTUgMi41NGwtMjUuNTggMjUuNTdhMTIgMTIgMCAwIDAgMTcgMTdsMjUuNTctMjUuNThsMi41NCAyLjU1YTM2LjA2IDM2LjA2IDAgMCAwIDUwLjkxIDBMMTMyIDE5N2wzLjUxIDMuNTJhMTIgMTIgMCAwIDAgMTctMTdabS00Mi40NiAzMi40OWExMiAxMiAwIDAgMS0xNyAwbC0yMi4wMy0yMi4wNmExMiAxMiAwIDAgMSAwLTE3TDc2IDE0MWwzOSAzOVptMTQ2LTE4NWExMiAxMiAwIDAgMC0xNyAwbC0yNS42IDI1LjZsLTIuNTQtMi41NWEzNi4wNSAzNi4wNSAwIDAgMC01MC45MSAwTDEyNCA1OWwtMy41MS0zLjUyYTEyIDEyIDAgMCAwLTE3IDE3bDgwIDgwYTEyIDEyIDAgMCAwIDE3LTE3TDE5NyAxMzJsMjAuNDktMjAuNDlhMzYgMzYgMCAwIDAgMC01MC45MWwtMi41NS0yLjU0bDI1LjU4LTI1LjU3YTEyIDEyIDAgMCAwLS4wMy0xNi45OFptLTQwIDc5TDE4MCAxMTVsLTM5LTM5bDIwLjQ5LTIwLjQ5YTEyIDEyIDAgMCAxIDE3IDBsMjIuMDYgMjIuMDZhMTIgMTIgMCAwIDEgMCAxN1pcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHRleHQtY2VudGVyXCI+QSBjw6JtZXJhIG7Do28gZm9pIGRldGVjdGFkYS48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJtLWF1dG8gdGV4dC1iYXNlIGJsb2NrIHRleHQtY2VudGVyXCJcbiAgICAgID5Qb3IgZmF2b3IsIGNvbmVjdGUgYSBzdWEgY8OibWVyYSwgZXNwZXJlIGFsZ3VucyBpbnN0YW50ZXMgZSBjbGlxdWUgbm8gYm90w6NvIFJlaW5pY2lhci48L3NwYW5cbiAgICA+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJ6LTIwIGNlLWR1aS1idG4gY2UtZHVpLWJ0bi1vdXRsaW5lIGNlLWR1aS1idG4tcHJpbWFyeSBtLWF1dG9cIlxuICAgICAgb246Y2xpY2s9eygpID0+IHtcbiAgICAgICAgaGFuZGxlcigpO1xuICAgICAgICBjb25zb2xlLmxvZygnY2FuaWNuYScsIGhhbmRsZXIpO1xuICAgICAgICAvLyBjYXB0dXJpbmcgPSB0cnVlO1xuICAgICAgICAvLyBkZXZpY2VOb3RGb3VuZCA9IGZhbHNlO1xuICAgICAgICAvLyBvcGVuQ2FtZXJhKCk7XG4gICAgICB9fT5SZWluaWNpYXI8L2J1dHRvblxuICAgID5cbiAgezplbHNlIGlmICRjYW1lcmFTdGF0dXNTdG9yZSA9PT0gQ2FtZXJhU3RhdHVzRW51bS5DQU1FUkFfSU5fVVNFX0VSUk9SfVxuICAgIDwhLS0gaWNvbmlmeSBwaDp3YXJuaW5nIC0tPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwidGV4dC1bOGVtXSBteC1hdXRvXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgd2lkdGg9XCIxZW1cIlxuICAgICAgaGVpZ2h0PVwiMWVtXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjU2IDI1NlwiXG4gICAgICB7Li4uJCRwcm9wc31cbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgZD1cIk01Ni44OCAzMS45M2ExMiAxMiAwIDEgMC0xNy43NiAxNi4xNGw0IDQuMzdBMjggMjggMCAwIDAgMjAgODB2MTEyYTI4IDI4IDAgMCAwIDI4IDI4aDE0Ny40MmwzLjcgNC4wN2ExMiAxMiAwIDAgMCAxNy43Ni0xNi4xNFptNDkuMzUgOTBMMTM2IDE1NC42NGEyNCAyNCAwIDAgMS0yOS43Ny0zMi43NVpNNDggMTk2YTQgNCAwIDAgMS00LTRWODBhNCA0IDAgMCAxIDQtNGgxNi41MWwyNC45MiAyNy40MWE0OCA0OCAwIDAgMCA2My4zNCA2OS42N0wxNzMuNiAxOTZaTTIzNiA4MHY5NC4xNGExMiAxMiAwIDAgMS0yNCAwVjgwYTQgNCAwIDAgMC00LTRoLTMyYTEyIDEyIDAgMCAxLTEwLTUuMzRMMTUzLjU3IDUyaC01MS41MWExMiAxMiAwIDAgMSAwLTI0SDE2MGExMiAxMiAwIDAgMSAxMCA1LjM0TDE4Mi40MiA1MkgyMDhhMjggMjggMCAwIDEgMjggMjhcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHRleHQtY2VudGVyXCI+QSBjw6JtZXJhIGVzdMOhIGVtIHVzby48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJtLWF1dG8gdGV4dC1iYXNlIGJsb2NrIHRleHQtY2VudGVyXCJcbiAgICAgID5DZXJ0aWZpcXVlLXNlIGRlIHF1ZSBhIGPDom1lcmEgbsOjbyBlc3TDoSBzZW5kbyB1dGlsaXphZGEgcG9yIG5lbmh1bWEgb3V0cmEgYXBsaWNhw6fDo28gZSBjbGlxdWUgbm8gYm90w6NvIGFiYWl4by48L3NwYW5cbiAgICA+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJ6LTIwIGNlLWR1aS1idG4gY2UtZHVpLWJ0bi1vdXRsaW5lIGNlLWR1aS1idG4tcHJpbWFyeSBtLWF1dG9cIlxuICAgICAgb246Y2xpY2s9eygpID0+IHtcbiAgICAgICAgaGFuZGxlcigpO1xuICAgICAgICBjb25zb2xlLmxvZygnY2FuaWNuYScsIGhhbmRsZXIpO1xuICAgICAgICAvLyBjYXB0dXJpbmcgPSB0cnVlO1xuICAgICAgICAvLyBvcGVuQ2FtZXJhKCk7XG4gICAgICB9fT5SZWluaWNpYXI8L2J1dHRvblxuICAgID5cbiAgezplbHNlIGlmICRjYW1lcmFTdGF0dXNTdG9yZSA9PT0gQ2FtZXJhU3RhdHVzRW51bS5DQU1FUkFfQ0xPU0VEX0VSUk9SfVxuICAgIDwhLS0gaWNvbmlmeSBwaDp3YXJuaW5nIC0tPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwidGV4dC1bOGVtXSBteC1hdXRvXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgd2lkdGg9XCIxZW1cIlxuICAgICAgaGVpZ2h0PVwiMWVtXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjU2IDI1NlwiXG4gICAgICB7Li4uJCRwcm9wc31cbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgZD1cIk0yMzYuOCAxODguMDlMMTQ5LjM1IDM2LjIyYTI0Ljc2IDI0Ljc2IDAgMCAwLTQyLjcgMEwxOS4yIDE4OC4wOWEyMy41MSAyMy41MSAwIDAgMCAwIDIzLjcyQTI0LjM1IDI0LjM1IDAgMCAwIDQwLjU1IDIyNGgxNzQuOWEyNC4zNSAyNC4zNSAwIDAgMCAyMS4zMy0xMi4xOWEyMy41MSAyMy41MSAwIDAgMCAuMDItMjMuNzJtLTEzLjg3IDE1LjcxYTguNSA4LjUgMCAwIDEtNy40OCA0LjJINDAuNTVhOC41IDguNSAwIDAgMS03LjQ4LTQuMmE3LjU5IDcuNTkgMCAwIDEgMC03LjcybDg3LjQ1LTE1MS44N2E4Ljc1IDguNzUgMCAwIDEgMTUgMGw4Ny40NSAxNTEuODdhNy41OSA3LjU5IDAgMCAxLS4wNCA3LjcyTTEyMCAxNDR2LTQwYTggOCAwIDAgMSAxNiAwdjQwYTggOCAwIDAgMS0xNiAwbTIwIDM2YTEyIDEyIDAgMSAxLTEyLTEyYTEyIDEyIDAgMCAxIDEyIDEyXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LWNlbnRlclwiPlBvciBmYXZvciwgcGVybWFuZcOnYSBuYSBtZXNtYSBhYmEgZHVyYW50ZSBhIGNvbGV0YSBiaW9tw6l0cmljYS48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJtLWF1dG8gdGV4dC1iYXNlIGJsb2NrIHRleHQtY2VudGVyXCI+Q2xpcXVlIG5vIGJvdMOjbyBSZWluaWNpYXIgcGFyYSBjYXB0dXJhciBub3ZhbWVudGUuPC9zcGFuPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiei0yMCBjZS1kdWktYnRuIGNlLWR1aS1idG4tb3V0bGluZSBjZS1kdWktYnRuLXByaW1hcnkgbS1hdXRvXCJcbiAgICAgIG9uOmNsaWNrPXsoKSA9PiB7XG4gICAgICAgIGhhbmRsZXIoKTtcbiAgICAgIH19PlJlaW5pY2lhcjwvYnV0dG9uXG4gICAgPlxuICB7OmVsc2UgaWYgJGNhbWVyYVN0YXR1c1N0b3JlID09PSBDYW1lcmFTdGF0dXNFbnVtLkNBTUVSQV9VTlNVUFBPUlRFRH1cbiAgICA8IS0tIGljb25pZnkgcGg6dmlkZW8tY2FtZXJhLXNsYXNoLWJvbGQgLS0+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJ0ZXh0LVs4ZW1dIG14LWF1dG9cIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB3aWR0aD1cIjFlbVwiXG4gICAgICBoZWlnaHQ9XCIxZW1cIlxuICAgICAgdmlld0JveD1cIjAgMCAyNTYgMjU2XCJcbiAgICAgIHsuLi4kJHByb3BzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBkPVwiTTI0OS40NSA2OS4zMWExMiAxMiAwIDAgMC0xMi41MSAxTDIxMiA4OC40M1Y3MmEyMCAyMCAwIDAgMC0yMC0yMGgtNjguMTJhMTIgMTIgMCAwIDAgMCAyNEgxODh2NjhhMTIgMTIgMCAwIDAgNC40NiA5LjMzYy4xNS4xMy4zMS4yNS40OC4zOGw0NCAzMkExMiAxMiAwIDAgMCAyNTYgMTc2VjgwYTEyIDEyIDAgMCAwLTYuNTUtMTAuNjlNMjMyIDE1Mi40M2wtMjAtMTQuNTR2LTE5Ljc4bDIwLTE0LjU0Wk01Ni44OCAzMS45M2ExMiAxMiAwIDEgMC0xNy43NiAxNi4xNEw0Mi42OSA1MkgzMmEyMCAyMCAwIDAgMC0yMCAyMHYxMTJhMjAgMjAgMCAwIDAgMjAgMjBoMTQ4Ljg3bDE4LjI1IDIwLjA3YTEyIDEyIDAgMCAwIDE3Ljc2LTE2LjE0Wk0zNiAxODBWNzZoMjguNTFsOTQuNTUgMTA0WlwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC1jZW50ZXJcIj5BIGPDom1lcmEgbsOjbyBhdGVuZGUgb3MgcmVxdWlzaXRvcyBuZWNlc3PDoXJpb3MuPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwibS1hdXRvIHRleHQtYmFzZSBibG9jayB0ZXh0LWNlbnRlclwiPlBvciBmYXZvciwgY29uZWN0ZSBvdXRyYSBjw6JtZXJhIGUgdGVudGUgbm92YW1lbnRlLjwvc3Bhbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInotMjAgY2UtZHVpLWJ0biBjZS1kdWktYnRuLW91dGxpbmUgY2UtZHVpLWJ0bi1wcmltYXJ5IG0tYXV0b1wiXG4gICAgICBvbjpjbGljaz17KCkgPT4ge1xuICAgICAgICBoYW5kbGVyKCk7XG4gICAgICB9fT5SZWluaWNpYXI8L2J1dHRvblxuICAgID5cbiAgey9pZn1cbjwvZGl2PlxuIl0sIm5hbWVzIjpbIkNhbWVyYVN0YXR1c0VudW0iLCJjYW1lcmFTdGF0dXNTdG9yZSIsIndyaXRhYmxlIiwiY3R4IiwiaW5zZXJ0X2RldiIsInRhcmdldCIsInN2ZyIsImFuY2hvciIsImFwcGVuZF9kZXYiLCJwYXRoIiwic3BhbjAiLCJzcGFuMSIsImJ1dHRvbiIsImNyZWF0ZV9pZl9ibG9jayIsImNyZWF0ZV9pZl9ibG9ja18xIiwiY3JlYXRlX2lmX2Jsb2NrXzIiLCJjcmVhdGVfaWZfYmxvY2tfMyIsImNyZWF0ZV9pZl9ibG9ja180IiwiZGl2IiwiaGFuZGxlciJdLCJtYXBwaW5ncyI6IjtBQUVrQixJQUFBQSxzQkFBQUEsT0FDaEJBLEVBQUEsS0FBSyxNQUNMQSxFQUFBLHlCQUF5QiwwQkFDekJBLEVBQUEsc0JBQXNCLHVCQUN0QkEsRUFBQSxzQkFBc0IsdUJBQ3RCQSxFQUFBLHNCQUFzQix1QkFDdEJBLEVBQUEscUJBQXFCLHNCQU5MQSxJQUFBQSxLQUFB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