bry-biometric-collector 2.2.0-RC02 → 2.2.1

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,643 +0,0 @@
1
- import { ay as ae, S as z, r as q, t as K, w as F, x as r, y as T, z as N, B as j, D as U, a8 as J, ba as C, bb as V, bc as P, aJ as A, aK as I, aV as v, aL as p, aQ as f, bd as k, aS as E, be as O, aW as g, b0 as M, bf as S, bg as oe, bh as Q, at as L, I as Z, aT as ne, aX as ie, aY as ce, aP as ue, aN as re, aZ as fe, ab as me } from "./main_a9bb653b_2.2.0-RC02.js";
2
- var y = /* @__PURE__ */ ((i) => (i.OK = "OK", i.DEVICE_NOT_FOUND_ERROR = "DEVICE_NOT_FOUND_ERROR", i.CAMERA_DENIED_ERROR = "CAMERA_DENIED_ERROR", i.CAMERA_IN_USE_ERROR = "CAMERA_IN_USE_ERROR", i.CAMERA_CLOSED_ERROR = "CAMERA_CLOSED_ERROR", i.CAMERA_UNSUPPORTED = "CAMERA_UNSUPPORTED", i.CAMERA_ORIENTATION_PORTRAIT = "CAMERA_ORIENTATION_PORTRAIT", i.CAMERA_ORIENTATION_LANDSCAPE = "CAMERA_ORIENTATION_LANDSCAPE", i))(y || {});
3
- const H = ae(
4
- "OK"
5
- /* OK */
6
- ), w = "src/lib/faceTab/cameraStatus/CameraStatus.svelte";
7
- function W(i) {
8
- let t, c, u, a, _, l, m, o, d, h, x = [
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
- i[2]
16
- ], b = {};
17
- for (let n = 0; n < x.length; n += 1)
18
- b = C(b, x[n]);
19
- const R = {
20
- c: function() {
21
- t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "O dispositivo precisa estar na posição paisagem.", _ = E(), l = A("span"), l.textContent = "Por favor, vire o dispositivo ou pressione o botão abaixo.", m = E(), o = A("button"), o.textContent = "Ajustar Orientação", v(c, "fill", "currentColor"), v(c, "d", "M208 56h-27.72l-13.63-20.44A8 8 0 0 0 160 32H96a8 8 0 0 0-6.65 3.56L75.71 56H48a24 24 0 0 0-24 24v112a24 24 0 0 0 24 24h160a24 24 0 0 0 24-24V80a24 24 0 0 0-24-24m-51.19 110.4A48.21 48.21 0 0 1 96 163.77V168a8 8 0 0 1-16 0v-24a8 8 0 0 1 8-8h24a8 8 0 0 1 0 16h-5.15a32.12 32.12 0 0 0 40.34 1.61a8 8 0 0 1 9.62 12.79M176 120a8 8 0 0 1-8 8h-24a8 8 0 0 1 0-16h5.15a32.12 32.12 0 0 0-40.34-1.61a8 8 0 0 1-9.62-12.79a48.21 48.21 0 0 1 60.81 2.63V96a8 8 0 0 1 16 0Z"), p(c, w, 173, 6, 8313), O(t, b), p(t, w, 165, 4, 8138), v(a, "class", "text-xl font-bold text-center"), p(a, w, 178, 4, 8842), v(l, "class", "m-auto text-base block text-center"), p(l, w, 179, 4, 8946), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 180, 4, 9065);
22
- },
23
- m: function(e, s) {
24
- r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
25
- o,
26
- "click",
27
- /*click_handler_6*/
28
- i[9],
29
- !1,
30
- !1,
31
- !1,
32
- !1
33
- ), d = !0);
34
- },
35
- p: function(e, s) {
36
- O(t, b = S(x, [
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
- s & /*$$props*/
43
- 4 && /*$$props*/
44
- e[2]
45
- ]));
46
- },
47
- d: function(e) {
48
- e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
49
- }
50
- };
51
- return N("SvelteRegisterBlock", {
52
- block: R,
53
- id: W.name,
54
- type: "if",
55
- source: "(164:81) ",
56
- ctx: i
57
- }), R;
58
- }
59
- function X(i) {
60
- let t, c, u, a, _, l, m, o, d, h, x = [
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
- i[2]
68
- ], b = {};
69
- for (let n = 0; n < x.length; n += 1)
70
- b = C(b, x[n]);
71
- const R = {
72
- c: function() {
73
- t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "O dispositivo precisa estar na posição retrato.", _ = E(), l = A("span"), l.textContent = "Por favor, vire o dispositivo ou pressione o botão abaixo.", m = E(), o = A("button"), o.textContent = "Ajustar Orientação", v(c, "fill", "currentColor"), v(c, "d", "M208 56h-27.72l-13.63-20.44A8 8 0 0 0 160 32H96a8 8 0 0 0-6.65 3.56L75.71 56H48a24 24 0 0 0-24 24v112a24 24 0 0 0 24 24h160a24 24 0 0 0 24-24V80a24 24 0 0 0-24-24m-51.19 110.4A48.21 48.21 0 0 1 96 163.77V168a8 8 0 0 1-16 0v-24a8 8 0 0 1 8-8h24a8 8 0 0 1 0 16h-5.15a32.12 32.12 0 0 0 40.34 1.61a8 8 0 0 1 9.62 12.79M176 120a8 8 0 0 1-8 8h-24a8 8 0 0 1 0-16h5.15a32.12 32.12 0 0 0-40.34-1.61a8 8 0 0 1-9.62-12.79a48.21 48.21 0 0 1 60.81 2.63V96a8 8 0 0 1 16 0Z"), p(c, w, 150, 6, 7078), O(t, b), p(t, w, 142, 4, 6903), v(a, "class", "text-xl font-bold text-center"), p(a, w, 155, 4, 7607), v(l, "class", "m-auto text-base block text-center"), p(l, w, 156, 4, 7710), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 157, 4, 7829);
74
- },
75
- m: function(e, s) {
76
- r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
77
- o,
78
- "click",
79
- /*click_handler_5*/
80
- i[8],
81
- !1,
82
- !1,
83
- !1,
84
- !1
85
- ), d = !0);
86
- },
87
- p: function(e, s) {
88
- O(t, b = S(x, [
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
- s & /*$$props*/
95
- 4 && /*$$props*/
96
- e[2]
97
- ]));
98
- },
99
- d: function(e) {
100
- e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
101
- }
102
- };
103
- return N("SvelteRegisterBlock", {
104
- block: R,
105
- id: X.name,
106
- type: "if",
107
- source: "(141:80) ",
108
- ctx: i
109
- }), R;
110
- }
111
- function Y(i) {
112
- let t, c, u, a, _, l, m, o, d, h, x = [
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
- i[2]
120
- ], b = {};
121
- for (let n = 0; n < x.length; n += 1)
122
- b = C(b, x[n]);
123
- const R = {
124
- c: function() {
125
- t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "A câmera não atende os requisitos necessários.", _ = E(), l = A("span"), l.textContent = "Por favor, conecte outra câmera e tente novamente.", m = E(), o = A("button"), o.textContent = "Reiniciar", v(c, "fill", "currentColor"), v(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"), p(c, w, 127, 6, 5942), O(t, b), p(t, w, 119, 4, 5767), v(a, "class", "text-xl font-bold text-center"), p(a, w, 132, 4, 6398), v(l, "class", "m-auto text-base block text-center"), p(l, w, 133, 4, 6500), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 134, 4, 6611);
126
- },
127
- m: function(e, s) {
128
- r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
129
- o,
130
- "click",
131
- /*click_handler_4*/
132
- i[7],
133
- !1,
134
- !1,
135
- !1,
136
- !1
137
- ), d = !0);
138
- },
139
- p: function(e, s) {
140
- O(t, b = S(x, [
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
- s & /*$$props*/
147
- 4 && /*$$props*/
148
- e[2]
149
- ]));
150
- },
151
- d: function(e) {
152
- e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
153
- }
154
- };
155
- return N("SvelteRegisterBlock", {
156
- block: R,
157
- id: Y.name,
158
- type: "if",
159
- source: "(118:71) ",
160
- ctx: i
161
- }), R;
162
- }
163
- function G(i) {
164
- let t, c, u, a, _, l, m, o, d, h, x = [
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
- i[2]
172
- ], b = {};
173
- for (let n = 0; n < x.length; n += 1)
174
- b = C(b, x[n]);
175
- const R = {
176
- c: function() {
177
- t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "Por favor, permaneça na mesma aba durante a coleta biométrica.", _ = E(), l = A("span"), l.textContent = "Clique no botão Reiniciar para capturar novamente.", m = E(), o = A("button"), o.textContent = "Reiniciar", v(c, "fill", "currentColor"), v(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"), p(c, w, 104, 6, 4756), O(t, b), p(t, w, 96, 4, 4581), v(a, "class", "text-xl font-bold text-center"), p(a, w, 109, 4, 5255), v(l, "class", "m-auto text-base block text-center"), p(l, w, 110, 4, 5373), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 111, 4, 5484);
178
- },
179
- m: function(e, s) {
180
- r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
181
- o,
182
- "click",
183
- /*click_handler_3*/
184
- i[6],
185
- !1,
186
- !1,
187
- !1,
188
- !1
189
- ), d = !0);
190
- },
191
- p: function(e, s) {
192
- O(t, b = S(x, [
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
- s & /*$$props*/
199
- 4 && /*$$props*/
200
- e[2]
201
- ]));
202
- },
203
- d: function(e) {
204
- e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
205
- }
206
- };
207
- return N("SvelteRegisterBlock", {
208
- block: R,
209
- id: G.name,
210
- type: "if",
211
- source: "(95:72) ",
212
- ctx: i
213
- }), R;
214
- }
215
- function $(i) {
216
- let t, c, u, a, _, l, m, o, d, h, x = [
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
- i[2]
224
- ], b = {};
225
- for (let n = 0; n < x.length; n += 1)
226
- b = C(b, x[n]);
227
- const R = {
228
- c: function() {
229
- t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "A câmera está em uso.", _ = E(), l = A("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 = E(), o = A("button"), o.textContent = "Reiniciar", v(c, "fill", "currentColor"), v(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"), p(c, w, 76, 6, 3468), O(t, b), p(t, w, 68, 4, 3293), v(a, "class", "text-xl font-bold text-center"), p(a, w, 81, 4, 3960), v(l, "class", "m-auto text-base block text-center"), p(l, w, 82, 4, 4037), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 85, 4, 4218);
230
- },
231
- m: function(e, s) {
232
- r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
233
- o,
234
- "click",
235
- /*click_handler_2*/
236
- i[5],
237
- !1,
238
- !1,
239
- !1,
240
- !1
241
- ), d = !0);
242
- },
243
- p: function(e, s) {
244
- O(t, b = S(x, [
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
- s & /*$$props*/
251
- 4 && /*$$props*/
252
- e[2]
253
- ]));
254
- },
255
- d: function(e) {
256
- e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
257
- }
258
- };
259
- return N("SvelteRegisterBlock", {
260
- block: R,
261
- id: $.name,
262
- type: "if",
263
- source: "(67:72) ",
264
- ctx: i
265
- }), R;
266
- }
267
- function ee(i) {
268
- let t, c, u, a, _, l, m, o, d, h, x = [
269
- { class: "text-[8em] mx-auto" },
270
- { xmlns: "http://www.w3.org/2000/svg" },
271
- { width: "1em" },
272
- { height: "1em" },
273
- { viewBox: "0 0 256 256" },
274
- /*$$props*/
275
- i[2]
276
- ], b = {};
277
- for (let n = 0; n < x.length; n += 1)
278
- b = C(b, x[n]);
279
- const R = {
280
- c: function() {
281
- t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "A câmera não foi detectada.", _ = E(), l = A("span"), l.textContent = "Por favor, conecte a sua câmera, espere alguns instantes e clique no botão Reiniciar.", m = E(), o = A("button"), o.textContent = "Reiniciar", v(c, "fill", "currentColor"), v(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"), p(c, w, 47, 6, 1922), O(t, b), p(t, w, 39, 4, 1747), v(a, "class", "text-xl font-bold text-center"), p(a, w, 52, 4, 2654), v(l, "class", "m-auto text-base block text-center"), p(l, w, 53, 4, 2737), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 56, 4, 2895);
282
- },
283
- m: function(e, s) {
284
- r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
285
- o,
286
- "click",
287
- /*click_handler_1*/
288
- i[4],
289
- !1,
290
- !1,
291
- !1,
292
- !1
293
- ), d = !0);
294
- },
295
- p: function(e, s) {
296
- O(t, b = S(x, [
297
- { class: "text-[8em] mx-auto" },
298
- { xmlns: "http://www.w3.org/2000/svg" },
299
- { width: "1em" },
300
- { height: "1em" },
301
- { viewBox: "0 0 256 256" },
302
- s & /*$$props*/
303
- 4 && /*$$props*/
304
- e[2]
305
- ]));
306
- },
307
- d: function(e) {
308
- e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
309
- }
310
- };
311
- return N("SvelteRegisterBlock", {
312
- block: R,
313
- id: ee.name,
314
- type: "if",
315
- source: "(38:75) ",
316
- ctx: i
317
- }), R;
318
- }
319
- function te(i) {
320
- let t, c, u, a, _, l, m, o, d, h, x = [
321
- { class: "text-[8em] mx-auto" },
322
- { xmlns: "http://www.w3.org/2000/svg" },
323
- { width: "1em" },
324
- { height: "1em" },
325
- { viewBox: "0 0 256 256" },
326
- /*$$props*/
327
- i[2]
328
- ], b = {};
329
- for (let n = 0; n < x.length; n += 1)
330
- b = C(b, x[n]);
331
- const R = {
332
- c: function() {
333
- t = k("svg"), c = k("path"), u = E(), a = A("span"), a.textContent = "Por favor, conceda permissão de acesso à câmera.", _ = E(), l = A("span"), l.textContent = "Após conceder a permissão, clique no botão Reiniciar.", m = E(), o = A("button"), o.textContent = "Reiniciar", v(c, "fill", "currentColor"), v(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"), p(c, w, 20, 6, 658), O(t, b), p(t, w, 12, 4, 483), v(a, "class", "text-xl font-bold text-center"), p(a, w, 25, 4, 1114), v(l, "class", "m-auto text-base block text-center"), p(l, w, 26, 4, 1218), v(o, "class", "z-20 ce-dui-btn ce-dui-btn-outline ce-dui-btn-primary m-auto"), p(o, w, 27, 4, 1332);
334
- },
335
- m: function(e, s) {
336
- r(e, t, s), g(t, c), r(e, u, s), r(e, a, s), r(e, _, s), r(e, l, s), r(e, m, s), r(e, o, s), d || (h = M(
337
- o,
338
- "click",
339
- /*click_handler*/
340
- i[3],
341
- !1,
342
- !1,
343
- !1,
344
- !1
345
- ), d = !0);
346
- },
347
- p: function(e, s) {
348
- O(t, b = S(x, [
349
- { class: "text-[8em] mx-auto" },
350
- { xmlns: "http://www.w3.org/2000/svg" },
351
- { width: "1em" },
352
- { height: "1em" },
353
- { viewBox: "0 0 256 256" },
354
- s & /*$$props*/
355
- 4 && /*$$props*/
356
- e[2]
357
- ]));
358
- },
359
- d: function(e) {
360
- e && f(t), e && f(u), e && f(a), e && f(_), e && f(l), e && f(m), e && f(o), d = !1, h();
361
- }
362
- };
363
- return N("SvelteRegisterBlock", {
364
- block: R,
365
- id: te.name,
366
- type: "if",
367
- source: "(11:2) {#if $cameraStatusStore === CameraStatusEnum.CAMERA_DENIED_ERROR}",
368
- ctx: i
369
- }), R;
370
- }
371
- function se(i) {
372
- let t;
373
- function c(l, m) {
374
- if (
375
- /*$cameraStatusStore*/
376
- l[1] === y.CAMERA_DENIED_ERROR
377
- )
378
- return te;
379
- if (
380
- /*$cameraStatusStore*/
381
- l[1] === y.DEVICE_NOT_FOUND_ERROR
382
- )
383
- return ee;
384
- if (
385
- /*$cameraStatusStore*/
386
- l[1] === y.CAMERA_IN_USE_ERROR
387
- )
388
- return $;
389
- if (
390
- /*$cameraStatusStore*/
391
- l[1] === y.CAMERA_CLOSED_ERROR
392
- )
393
- return G;
394
- if (
395
- /*$cameraStatusStore*/
396
- l[1] === y.CAMERA_UNSUPPORTED
397
- )
398
- return Y;
399
- if (
400
- /*$cameraStatusStore*/
401
- l[1] === y.CAMERA_ORIENTATION_PORTRAIT
402
- )
403
- return X;
404
- if (
405
- /*$cameraStatusStore*/
406
- l[1] === y.CAMERA_ORIENTATION_LANDSCAPE
407
- )
408
- return W;
409
- }
410
- let u = c(i), a = u && u(i);
411
- const _ = {
412
- c: function() {
413
- t = A("div"), a && a.c(), this.c = I, v(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"), p(t, w, 7, 0, 222);
414
- },
415
- l: function(m) {
416
- throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
417
- },
418
- m: function(m, o) {
419
- r(m, t, o), a && a.m(t, null);
420
- },
421
- p: function(m, [o]) {
422
- u === (u = c(m)) && a ? a.p(m, o) : (a && a.d(1), a = u && u(m), a && (a.c(), a.m(t, null)));
423
- },
424
- i: I,
425
- o: I,
426
- d: function(m) {
427
- m && f(t), a && a.d();
428
- }
429
- };
430
- return N("SvelteRegisterBlock", {
431
- block: _,
432
- id: se.name,
433
- type: "component",
434
- source: "",
435
- ctx: i
436
- }), _;
437
- }
438
- function de(i, t, c) {
439
- let u;
440
- j(H, "cameraStatusStore"), U(i, H, (n) => c(1, u = n));
441
- let { $$slots: a = {}, $$scope: _ } = t;
442
- J("camera-status", a, []);
443
- let { handler: l = () => {
444
- } } = t;
445
- const m = () => {
446
- l(), console.log("canicna", l);
447
- }, o = () => {
448
- l(), console.log("canicna", l);
449
- }, d = () => {
450
- l(), console.log("canicna", l);
451
- }, h = () => {
452
- l();
453
- }, x = () => {
454
- l();
455
- }, b = () => {
456
- P(!0);
457
- }, R = () => {
458
- P(!1);
459
- };
460
- return i.$$set = (n) => {
461
- c(2, t = C(C({}, t), V(n))), "handler" in n && c(0, l = n.handler);
462
- }, i.$capture_state = () => ({
463
- handler: l,
464
- CameraStatusEnum: y,
465
- cameraStatusStore: H,
466
- lockScreen: P,
467
- $cameraStatusStore: u
468
- }), i.$inject_state = (n) => {
469
- c(2, t = C(C({}, t), n)), "handler" in t && c(0, l = n.handler);
470
- }, t && "$$inject" in t && i.$inject_state(t.$$inject), t = V(t), [
471
- l,
472
- u,
473
- t,
474
- m,
475
- o,
476
- d,
477
- h,
478
- x,
479
- b,
480
- R
481
- ];
482
- }
483
- class _e extends z {
484
- constructor(t) {
485
- super(), q(
486
- this,
487
- {
488
- target: this.shadowRoot,
489
- props: F(this.attributes),
490
- customElement: !0
491
- },
492
- de,
493
- se,
494
- K,
495
- { handler: 0 },
496
- null
497
- ), t && (t.target && r(t.target, this, t.anchor), t.props && (this.$set(t.props), T()));
498
- }
499
- static get observedAttributes() {
500
- return ["handler"];
501
- }
502
- get handler() {
503
- return this.$$.ctx[0];
504
- }
505
- set handler(t) {
506
- this.$$set({ handler: t }), T();
507
- }
508
- }
509
- customElements.define("camera-status", _e);
510
- function we(i, { delay: t = 0, duration: c = 400, easing: u = oe } = {}) {
511
- const a = +getComputedStyle(i).opacity;
512
- return {
513
- delay: t,
514
- duration: c,
515
- easing: u,
516
- css: (_) => `opacity: ${_ * a}`
517
- };
518
- }
519
- const D = "src/lib/conf/CameraBtn.svelte";
520
- function le(i) {
521
- let t, c, u, a, _, l, m, o, d, h, x;
522
- t = new Q({ $$inline: !0 });
523
- let b = [
524
- { xmlns: "http://www.w3.org/2000/svg" },
525
- { width: "3em" },
526
- { height: "3em" },
527
- { viewBox: "0 0 256 256" },
528
- /*$$props*/
529
- i[3]
530
- ], R = {};
531
- for (let e = 0; e < b.length; e += 1)
532
- R = C(R, b[e]);
533
- const n = {
534
- c: function() {
535
- ne(t.$$.fragment), c = E(), u = A("div"), a = A("label"), _ = k("svg"), l = k("path"), this.c = I, v(l, "fill", "currentColor"), v(l, "d", "M208 56h-27.72l-13.63-20.44A8 8 0 0 0 160 32H96a8 8 0 0 0-6.65 3.56L75.71 56H48a24 24 0 0 0-24 24v112a24 24 0 0 0 24 24h160a24 24 0 0 0 24-24V80a24 24 0 0 0-24-24m-51.19 110.4A48.21 48.21 0 0 1 96 163.77V168a8 8 0 0 1-16 0v-24a8 8 0 0 1 8-8h24a8 8 0 0 1 0 16h-5.15a32.12 32.12 0 0 0 40.34 1.61a8 8 0 0 1 9.62 12.79M176 120a8 8 0 0 1-8 8h-24a8 8 0 0 1 0-16h5.15a32.12 32.12 0 0 0-40.34-1.61a8 8 0 0 1-9.62-12.79a48.21 48.21 0 0 1 60.81 2.63V96a8 8 0 0 1 16 0Z"), p(l, D, 22, 6, 838), O(_, R), p(_, D, 21, 5, 731), v(a, "tabindex", "0"), a.hidden = m = /*$cameraDevicesStore*/
536
- i[2].length == 1, v(a, "class", "ce-dui-btn ce-dui-btn-ghost m-1"), p(a, D, 20, 2, 624), v(u, "class", o = "ce-dui-dropdown ce-dui-dropdown-top absolute z-10 right-0 sm:block " + /*className*/
537
- i[0]), p(u, D, 12, 0, 353);
538
- },
539
- l: function(s) {
540
- throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
541
- },
542
- m: function(s, B) {
543
- ie(t, s, B), r(s, c, B), r(s, u, B), g(u, a), g(a, _), g(_, l), d = !0, h || (x = M(
544
- u,
545
- "click",
546
- /*click_handler*/
547
- i[4],
548
- !1,
549
- !1,
550
- !1,
551
- !1
552
- ), h = !0);
553
- },
554
- p: function(s, [B]) {
555
- O(_, R = S(b, [
556
- { xmlns: "http://www.w3.org/2000/svg" },
557
- { width: "3em" },
558
- { height: "3em" },
559
- { viewBox: "0 0 256 256" },
560
- B & /*$$props*/
561
- 8 && /*$$props*/
562
- s[3]
563
- ])), (!d || B & /*$cameraDevicesStore*/
564
- 4 && m !== (m = /*$cameraDevicesStore*/
565
- s[2].length == 1)) && ce(a, "hidden", m), (!d || B & /*className*/
566
- 1 && o !== (o = "ce-dui-dropdown ce-dui-dropdown-top absolute z-10 right-0 sm:block " + /*className*/
567
- s[0])) && v(u, "class", o);
568
- },
569
- i: function(s) {
570
- d || (ue(t.$$.fragment, s), d = !0);
571
- },
572
- o: function(s) {
573
- re(t.$$.fragment, s), d = !1;
574
- },
575
- d: function(s) {
576
- fe(t, s), s && f(c), s && f(u), h = !1, x();
577
- }
578
- };
579
- return N("SvelteRegisterBlock", {
580
- block: n,
581
- id: le.name,
582
- type: "component",
583
- source: "",
584
- ctx: i
585
- }), n;
586
- }
587
- function ve(i, t, c) {
588
- let u, a;
589
- j(L, "swapCamera"), U(i, L, (d) => c(1, u = d)), j(Z, "cameraDevicesStore"), U(i, Z, (d) => c(2, a = d));
590
- let { $$slots: _ = {}, $$scope: l } = t;
591
- J("camera-btn", _, []);
592
- let { className: m = "" } = t;
593
- const o = () => {
594
- me(L, u = !u, u);
595
- };
596
- return i.$$set = (d) => {
597
- c(3, t = C(C({}, t), V(d))), "className" in d && c(0, m = d.className);
598
- }, i.$capture_state = () => ({
599
- swapCamera: L,
600
- ConfModal: Q,
601
- cameraDevicesStore: Z,
602
- className: m,
603
- $swapCamera: u,
604
- $cameraDevicesStore: a
605
- }), i.$inject_state = (d) => {
606
- c(3, t = C(C({}, t), d)), "className" in t && c(0, m = d.className);
607
- }, t && "$$inject" in t && i.$inject_state(t.$$inject), t = V(t), [m, u, a, t, o];
608
- }
609
- class be extends z {
610
- constructor(t) {
611
- super(), q(
612
- this,
613
- {
614
- target: this.shadowRoot,
615
- props: F(this.attributes),
616
- customElement: !0
617
- },
618
- ve,
619
- le,
620
- K,
621
- { className: 0 },
622
- null
623
- ), t && (t.target && r(t.target, this, t.anchor), t.props && (this.$set(t.props), T()));
624
- }
625
- static get observedAttributes() {
626
- return ["className"];
627
- }
628
- get className() {
629
- return this.$$.ctx[0];
630
- }
631
- set className(t) {
632
- this.$$set({ className: t }), T();
633
- }
634
- }
635
- customElements.define("camera-btn", be);
636
- export {
637
- y as C,
638
- _e as a,
639
- be as b,
640
- H as c,
641
- we as f
642
- };
643
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FtZXJhQnRuX2NmNTVlZDQ3XzIuMi4wLVJDMDIuanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9saWIvZmFjZVRhYi9jYW1lcmFTdGF0dXMvY2FtZXJhU3RhdHVzU3RvcmUudHMiLCIuLi9zcmMvbGliL2ZhY2VUYWIvY2FtZXJhU3RhdHVzL0NhbWVyYVN0YXR1cy5zdmVsdGUiLCIuLi9ub2RlX21vZHVsZXMvc3ZlbHRlL3RyYW5zaXRpb24vaW5kZXgubWpzIiwiLi4vc3JjL2xpYi9jb25mL0NhbWVyYUJ0bi5zdmVsdGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd3JpdGFibGUgfSBmcm9tICdzdmVsdGUvc3RvcmUnO1xuXG5leHBvcnQgY29uc3QgZW51bSBDYW1lcmFTdGF0dXNFbnVtIHtcbiAgT0sgPSAnT0snLFxuICBERVZJQ0VfTk9UX0ZPVU5EX0VSUk9SID0gJ0RFVklDRV9OT1RfRk9VTkRfRVJST1InLFxuICBDQU1FUkFfREVOSUVEX0VSUk9SID0gJ0NBTUVSQV9ERU5JRURfRVJST1InLCAvLyBvciBkaXNtaXNzZWRcbiAgQ0FNRVJBX0lOX1VTRV9FUlJPUiA9ICdDQU1FUkFfSU5fVVNFX0VSUk9SJyxcbiAgQ0FNRVJBX0NMT1NFRF9FUlJPUiA9ICdDQU1FUkFfQ0xPU0VEX0VSUk9SJyxcbiAgQ0FNRVJBX1VOU1VQUE9SVEVEID0gJ0NBTUVSQV9VTlNVUFBPUlRFRCcsXG4gIENBTUVSQV9PUklFTlRBVElPTl9QT1JUUkFJVCA9ICdDQU1FUkFfT1JJRU5UQVRJT05fUE9SVFJBSVQnLFxuICBDQU1FUkFfT1JJRU5UQVRJT05fTEFORFNDQVBFID0gJ0NBTUVSQV9PUklFTlRBVElPTl9MQU5EU0NBUEUnLFxufVxuXG5leHBvcnQgY29uc3QgY2FtZXJhU3RhdHVzU3RvcmUgPSB3cml0YWJsZTxDYW1lcmFTdGF0dXNFbnVtPihDYW1lcmFTdGF0dXNFbnVtLk9LKTtcbiIsIjxzdmVsdGU6b3B0aW9ucyB0YWc9XCJjYW1lcmEtc3RhdHVzXCIgLz5cblxuPHNjcmlwdCBsYW5nPVwidHNcIj5cbiAgZXhwb3J0IGxldCBoYW5kbGVyOiBGdW5jdGlvbiA9ICgpID0+IHt9O1xuICBpbXBvcnQgeyBDYW1lcmFTdGF0dXNFbnVtLCBjYW1lcmFTdGF0dXNTdG9yZSB9IGZyb20gJy4vY2FtZXJhU3RhdHVzU3RvcmUnO1xuICBpbXBvcnQgeyBsb2NrU2NyZWVuIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbjwvc2NyaXB0PlxuXG48ZGl2XG4gIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNCBqdXN0aWZ5LWNlbnRlciBhYnNvbHV0ZSAtdHJhbnNsYXRlLXktMS8yIC10cmFuc2xhdGUteC0xLzIgdG9wLTEvMiBsZWZ0LTEvMiBvdmVyZmxvdy12aXNpYmxlIHRleHQtbm93cmFwXCJcbj5cbiAgeyNpZiAkY2FtZXJhU3RhdHVzU3RvcmUgPT09IENhbWVyYVN0YXR1c0VudW0uQ0FNRVJBX0RFTklFRF9FUlJPUn1cbiAgICA8IS0tIGljb25pZnkgcGg6dmlkZW8tY2FtZXJhLXNsYXNoLWJvbGQgLS0+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJ0ZXh0LVs4ZW1dIG14LWF1dG9cIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB3aWR0aD1cIjFlbVwiXG4gICAgICBoZWlnaHQ9XCIxZW1cIlxuICAgICAgdmlld0JveD1cIjAgMCAyNTYgMjU2XCJcbiAgICAgIHsuLi4kJHByb3BzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBkPVwiTTI0OS40NSA2OS4zMWExMiAxMiAwIDAgMC0xMi41MSAxTDIxMiA4OC40M1Y3MmEyMCAyMCAwIDAgMC0yMC0yMGgtNjguMTJhMTIgMTIgMCAwIDAgMCAyNEgxODh2NjhhMTIgMTIgMCAwIDAgNC40NiA5LjMzYy4xNS4xMy4zMS4yNS40OC4zOGw0NCAzMkExMiAxMiAwIDAgMCAyNTYgMTc2VjgwYTEyIDEyIDAgMCAwLTYuNTUtMTAuNjlNMjMyIDE1Mi40M2wtMjAtMTQuNTR2LTE5Ljc4bDIwLTE0LjU0Wk01Ni44OCAzMS45M2ExMiAxMiAwIDEgMC0xNy43NiAxNi4xNEw0Mi42OSA1MkgzMmEyMCAyMCAwIDAgMC0yMCAyMHYxMTJhMjAgMjAgMCAwIDAgMjAgMjBoMTQ4Ljg3bDE4LjI1IDIwLjA3YTEyIDEyIDAgMCAwIDE3Ljc2LTE2LjE0Wk0zNiAxODBWNzZoMjguNTFsOTQuNTUgMTA0WlwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC1jZW50ZXJcIj5Qb3IgZmF2b3IsIGNvbmNlZGEgcGVybWlzc8OjbyBkZSBhY2Vzc28gw6AgY8OibWVyYS48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJtLWF1dG8gdGV4dC1iYXNlIGJsb2NrIHRleHQtY2VudGVyXCI+QXDDs3MgY29uY2VkZXIgYSBwZXJtaXNzw6NvLCBjbGlxdWUgbm8gYm90w6NvIFJlaW5pY2lhci48L3NwYW4+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJ6LTIwIGNlLWR1aS1idG4gY2UtZHVpLWJ0bi1vdXRsaW5lIGNlLWR1aS1idG4tcHJpbWFyeSBtLWF1dG9cIlxuICAgICAgb246Y2xpY2s9eygpID0+IHtcbiAgICAgICAgaGFuZGxlcigpO1xuICAgICAgICBjb25zb2xlLmxvZygnY2FuaWNuYScsIGhhbmRsZXIpO1xuICAgICAgICAvLyBjYXB0dXJpbmcgPSB0cnVlO1xuICAgICAgICAvLyBjYW1lcmFEZW5pZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gb3BlbkNhbWVyYSgpO1xuICAgICAgfX0+UmVpbmljaWFyPC9idXR0b25cbiAgICA+XG4gIHs6ZWxzZSBpZiAkY2FtZXJhU3RhdHVzU3RvcmUgPT09IENhbWVyYVN0YXR1c0VudW0uREVWSUNFX05PVF9GT1VORF9FUlJPUn1cbiAgICA8IS0tIGljb25pZnkgcGg6dmlkZW8tY2FtZXJhLXNsYXNoLWJvbGQgLS0+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJ0ZXh0LVs4ZW1dIG14LWF1dG9cIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB3aWR0aD1cIjFlbVwiXG4gICAgICBoZWlnaHQ9XCIxZW1cIlxuICAgICAgdmlld0JveD1cIjAgMCAyNTYgMjU2XCJcbiAgICAgIHsuLi4kJHByb3BzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBkPVwibTEzNyAxNjhsMTEuNTItMTEuNTFhMTIgMTIgMCAwIDAtMTctMTdMMTIwIDE1MWwtMTUtMTVsMTEuNTItMTEuNTFhMTIgMTIgMCAwIDAtMTctMTdMODggMTE5bC0xNS41MS0xNS40OWExMiAxMiAwIDAgMC0xNyAxN0w1OSAxMjRsLTIwLjQ2IDIwLjQ5YTM2IDM2IDAgMCAwIDAgNTAuOTFsMi41NSAyLjU0bC0yNS41OCAyNS41N2ExMiAxMiAwIDAgMCAxNyAxN2wyNS41Ny0yNS41OGwyLjU0IDIuNTVhMzYuMDYgMzYuMDYgMCAwIDAgNTAuOTEgMEwxMzIgMTk3bDMuNTEgMy41MmExMiAxMiAwIDAgMCAxNy0xN1ptLTQyLjQ2IDMyLjQ5YTEyIDEyIDAgMCAxLTE3IDBsLTIyLjAzLTIyLjA2YTEyIDEyIDAgMCAxIDAtMTdMNzYgMTQxbDM5IDM5Wm0xNDYtMTg1YTEyIDEyIDAgMCAwLTE3IDBsLTI1LjYgMjUuNmwtMi41NC0yLjU1YTM2LjA1IDM2LjA1IDAgMCAwLTUwLjkxIDBMMTI0IDU5bC0zLjUxLTMuNTJhMTIgMTIgMCAwIDAtMTcgMTdsODAgODBhMTIgMTIgMCAwIDAgMTctMTdMMTk3IDEzMmwyMC40OS0yMC40OWEzNiAzNiAwIDAgMCAwLTUwLjkxbC0yLjU1LTIuNTRsMjUuNTgtMjUuNTdhMTIgMTIgMCAwIDAtLjAzLTE2Ljk4Wm0tNDAgNzlMMTgwIDExNWwtMzktMzlsMjAuNDktMjAuNDlhMTIgMTIgMCAwIDEgMTcgMGwyMi4wNiAyMi4wNmExMiAxMiAwIDAgMSAwIDE3WlwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC1jZW50ZXJcIj5BIGPDom1lcmEgbsOjbyBmb2kgZGV0ZWN0YWRhLjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cIm0tYXV0byB0ZXh0LWJhc2UgYmxvY2sgdGV4dC1jZW50ZXJcIlxuICAgICAgPlBvciBmYXZvciwgY29uZWN0ZSBhIHN1YSBjw6JtZXJhLCBlc3BlcmUgYWxndW5zIGluc3RhbnRlcyBlIGNsaXF1ZSBubyBib3TDo28gUmVpbmljaWFyLjwvc3BhblxuICAgID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInotMjAgY2UtZHVpLWJ0biBjZS1kdWktYnRuLW91dGxpbmUgY2UtZHVpLWJ0bi1wcmltYXJ5IG0tYXV0b1wiXG4gICAgICBvbjpjbGljaz17KCkgPT4ge1xuICAgICAgICBoYW5kbGVyKCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjYW5pY25hJywgaGFuZGxlcik7XG4gICAgICAgIC8vIGNhcHR1cmluZyA9IHRydWU7XG4gICAgICAgIC8vIGRldmljZU5vdEZvdW5kID0gZmFsc2U7XG4gICAgICAgIC8vIG9wZW5DYW1lcmEoKTtcbiAgICAgIH19PlJlaW5pY2lhcjwvYnV0dG9uXG4gICAgPlxuICB7OmVsc2UgaWYgJGNhbWVyYVN0YXR1c1N0b3JlID09PSBDYW1lcmFTdGF0dXNFbnVtLkNBTUVSQV9JTl9VU0VfRVJST1J9XG4gICAgPCEtLSBpY29uaWZ5IHBoOndhcm5pbmcgLS0+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJ0ZXh0LVs4ZW1dIG14LWF1dG9cIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB3aWR0aD1cIjFlbVwiXG4gICAgICBoZWlnaHQ9XCIxZW1cIlxuICAgICAgdmlld0JveD1cIjAgMCAyNTYgMjU2XCJcbiAgICAgIHsuLi4kJHByb3BzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBkPVwiTTU2Ljg4IDMxLjkzYTEyIDEyIDAgMSAwLTE3Ljc2IDE2LjE0bDQgNC4zN0EyOCAyOCAwIDAgMCAyMCA4MHYxMTJhMjggMjggMCAwIDAgMjggMjhoMTQ3LjQybDMuNyA0LjA3YTEyIDEyIDAgMCAwIDE3Ljc2LTE2LjE0Wm00OS4zNSA5MEwxMzYgMTU0LjY0YTI0IDI0IDAgMCAxLTI5Ljc3LTMyLjc1Wk00OCAxOTZhNCA0IDAgMCAxLTQtNFY4MGE0IDQgMCAwIDEgNC00aDE2LjUxbDI0LjkyIDI3LjQxYTQ4IDQ4IDAgMCAwIDYzLjM0IDY5LjY3TDE3My42IDE5NlpNMjM2IDgwdjk0LjE0YTEyIDEyIDAgMCAxLTI0IDBWODBhNCA0IDAgMCAwLTQtNGgtMzJhMTIgMTIgMCAwIDEtMTAtNS4zNEwxNTMuNTcgNTJoLTUxLjUxYTEyIDEyIDAgMCAxIDAtMjRIMTYwYTEyIDEyIDAgMCAxIDEwIDUuMzRMMTgyLjQyIDUySDIwOGEyOCAyOCAwIDAgMSAyOCAyOFwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC1jZW50ZXJcIj5BIGPDom1lcmEgZXN0w6EgZW0gdXNvLjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cIm0tYXV0byB0ZXh0LWJhc2UgYmxvY2sgdGV4dC1jZW50ZXJcIlxuICAgICAgPkNlcnRpZmlxdWUtc2UgZGUgcXVlIGEgY8OibWVyYSBuw6NvIGVzdMOhIHNlbmRvIHV0aWxpemFkYSBwb3IgbmVuaHVtYSBvdXRyYSBhcGxpY2HDp8OjbyBlIGNsaXF1ZSBubyBib3TDo28gYWJhaXhvLjwvc3BhblxuICAgID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInotMjAgY2UtZHVpLWJ0biBjZS1kdWktYnRuLW91dGxpbmUgY2UtZHVpLWJ0bi1wcmltYXJ5IG0tYXV0b1wiXG4gICAgICBvbjpjbGljaz17KCkgPT4ge1xuICAgICAgICBoYW5kbGVyKCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjYW5pY25hJywgaGFuZGxlcik7XG4gICAgICAgIC8vIGNhcHR1cmluZyA9IHRydWU7XG4gICAgICAgIC8vIG9wZW5DYW1lcmEoKTtcbiAgICAgIH19PlJlaW5pY2lhcjwvYnV0dG9uXG4gICAgPlxuICB7OmVsc2UgaWYgJGNhbWVyYVN0YXR1c1N0b3JlID09PSBDYW1lcmFTdGF0dXNFbnVtLkNBTUVSQV9DTE9TRURfRVJST1J9XG4gICAgPCEtLSBpY29uaWZ5IHBoOndhcm5pbmcgLS0+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJ0ZXh0LVs4ZW1dIG14LWF1dG9cIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB3aWR0aD1cIjFlbVwiXG4gICAgICBoZWlnaHQ9XCIxZW1cIlxuICAgICAgdmlld0JveD1cIjAgMCAyNTYgMjU2XCJcbiAgICAgIHsuLi4kJHByb3BzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBkPVwiTTIzNi44IDE4OC4wOUwxNDkuMzUgMzYuMjJhMjQuNzYgMjQuNzYgMCAwIDAtNDIuNyAwTDE5LjIgMTg4LjA5YTIzLjUxIDIzLjUxIDAgMCAwIDAgMjMuNzJBMjQuMzUgMjQuMzUgMCAwIDAgNDAuNTUgMjI0aDE3NC45YTI0LjM1IDI0LjM1IDAgMCAwIDIxLjMzLTEyLjE5YTIzLjUxIDIzLjUxIDAgMCAwIC4wMi0yMy43Mm0tMTMuODcgMTUuNzFhOC41IDguNSAwIDAgMS03LjQ4IDQuMkg0MC41NWE4LjUgOC41IDAgMCAxLTcuNDgtNC4yYTcuNTkgNy41OSAwIDAgMSAwLTcuNzJsODcuNDUtMTUxLjg3YTguNzUgOC43NSAwIDAgMSAxNSAwbDg3LjQ1IDE1MS44N2E3LjU5IDcuNTkgMCAwIDEtLjA0IDcuNzJNMTIwIDE0NHYtNDBhOCA4IDAgMCAxIDE2IDB2NDBhOCA4IDAgMCAxLTE2IDBtMjAgMzZhMTIgMTIgMCAxIDEtMTItMTJhMTIgMTIgMCAwIDEgMTIgMTJcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHRleHQtY2VudGVyXCI+UG9yIGZhdm9yLCBwZXJtYW5lw6dhIG5hIG1lc21hIGFiYSBkdXJhbnRlIGEgY29sZXRhIGJpb23DqXRyaWNhLjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cIm0tYXV0byB0ZXh0LWJhc2UgYmxvY2sgdGV4dC1jZW50ZXJcIj5DbGlxdWUgbm8gYm90w6NvIFJlaW5pY2lhciBwYXJhIGNhcHR1cmFyIG5vdmFtZW50ZS48L3NwYW4+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJ6LTIwIGNlLWR1aS1idG4gY2UtZHVpLWJ0bi1vdXRsaW5lIGNlLWR1aS1idG4tcHJpbWFyeSBtLWF1dG9cIlxuICAgICAgb246Y2xpY2s9eygpID0+IHtcbiAgICAgICAgaGFuZGxlcigpO1xuICAgICAgfX0+UmVpbmljaWFyPC9idXR0b25cbiAgICA+XG4gIHs6ZWxzZSBpZiAkY2FtZXJhU3RhdHVzU3RvcmUgPT09IENhbWVyYVN0YXR1c0VudW0uQ0FNRVJBX1VOU1VQUE9SVEVEfVxuICAgIDwhLS0gaWNvbmlmeSBwaDp2aWRlby1jYW1lcmEtc2xhc2gtYm9sZCAtLT5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cInRleHQtWzhlbV0gbXgtYXV0b1wiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIHdpZHRoPVwiMWVtXCJcbiAgICAgIGhlaWdodD1cIjFlbVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI1NiAyNTZcIlxuICAgICAgey4uLiQkcHJvcHN9XG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIGQ9XCJNMjQ5LjQ1IDY5LjMxYTEyIDEyIDAgMCAwLTEyLjUxIDFMMjEyIDg4LjQzVjcyYTIwIDIwIDAgMCAwLTIwLTIwaC02OC4xMmExMiAxMiAwIDAgMCAwIDI0SDE4OHY2OGExMiAxMiAwIDAgMCA0LjQ2IDkuMzNjLjE1LjEzLjMxLjI1LjQ4LjM4bDQ0IDMyQTEyIDEyIDAgMCAwIDI1NiAxNzZWODBhMTIgMTIgMCAwIDAtNi41NS0xMC42OU0yMzIgMTUyLjQzbC0yMC0xNC41NHYtMTkuNzhsMjAtMTQuNTRaTTU2Ljg4IDMxLjkzYTEyIDEyIDAgMSAwLTE3Ljc2IDE2LjE0TDQyLjY5IDUySDMyYTIwIDIwIDAgMCAwLTIwIDIwdjExMmEyMCAyMCAwIDAgMCAyMCAyMGgxNDguODdsMTguMjUgMjAuMDdhMTIgMTIgMCAwIDAgMTcuNzYtMTYuMTRaTTM2IDE4MFY3NmgyOC41MWw5NC41NSAxMDRaXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LWNlbnRlclwiPkEgY8OibWVyYSBuw6NvIGF0ZW5kZSBvcyByZXF1aXNpdG9zIG5lY2Vzc8Ohcmlvcy48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJtLWF1dG8gdGV4dC1iYXNlIGJsb2NrIHRleHQtY2VudGVyXCI+UG9yIGZhdm9yLCBjb25lY3RlIG91dHJhIGPDom1lcmEgZSB0ZW50ZSBub3ZhbWVudGUuPC9zcGFuPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiei0yMCBjZS1kdWktYnRuIGNlLWR1aS1idG4tb3V0bGluZSBjZS1kdWktYnRuLXByaW1hcnkgbS1hdXRvXCJcbiAgICAgIG9uOmNsaWNrPXsoKSA9PiB7XG4gICAgICAgIGhhbmRsZXIoKTtcbiAgICAgIH19PlJlaW5pY2lhcjwvYnV0dG9uXG4gICAgPlxuICB7OmVsc2UgaWYgJGNhbWVyYVN0YXR1c1N0b3JlID09PSBDYW1lcmFTdGF0dXNFbnVtLkNBTUVSQV9PUklFTlRBVElPTl9QT1JUUkFJVH1cbiAgICA8IS0tIGljb25pZnkgcGg6dmlkZW8tY2FtZXJhLXNsYXNoLWJvbGQgLS0+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJ0ZXh0LVs4ZW1dIG14LWF1dG9cIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB3aWR0aD1cIjFlbVwiXG4gICAgICBoZWlnaHQ9XCIxZW1cIlxuICAgICAgdmlld0JveD1cIjAgMCAyNTYgMjU2XCJcbiAgICAgIHsuLi4kJHByb3BzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBkPVwiTTIwOCA1NmgtMjcuNzJsLTEzLjYzLTIwLjQ0QTggOCAwIDAgMCAxNjAgMzJIOTZhOCA4IDAgMCAwLTYuNjUgMy41Nkw3NS43MSA1Nkg0OGEyNCAyNCAwIDAgMC0yNCAyNHYxMTJhMjQgMjQgMCAwIDAgMjQgMjRoMTYwYTI0IDI0IDAgMCAwIDI0LTI0VjgwYTI0IDI0IDAgMCAwLTI0LTI0bS01MS4xOSAxMTAuNEE0OC4yMSA0OC4yMSAwIDAgMSA5NiAxNjMuNzdWMTY4YTggOCAwIDAgMS0xNiAwdi0yNGE4IDggMCAwIDEgOC04aDI0YTggOCAwIDAgMSAwIDE2aC01LjE1YTMyLjEyIDMyLjEyIDAgMCAwIDQwLjM0IDEuNjFhOCA4IDAgMCAxIDkuNjIgMTIuNzlNMTc2IDEyMGE4IDggMCAwIDEtOCA4aC0yNGE4IDggMCAwIDEgMC0xNmg1LjE1YTMyLjEyIDMyLjEyIDAgMCAwLTQwLjM0LTEuNjFhOCA4IDAgMCAxLTkuNjItMTIuNzlhNDguMjEgNDguMjEgMCAwIDEgNjAuODEgMi42M1Y5NmE4IDggMCAwIDEgMTYgMFpcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHRleHQtY2VudGVyXCI+TyBkaXNwb3NpdGl2byBwcmVjaXNhIGVzdGFyIG5hIHBvc2nDp8OjbyByZXRyYXRvLjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cIm0tYXV0byB0ZXh0LWJhc2UgYmxvY2sgdGV4dC1jZW50ZXJcIj5Qb3IgZmF2b3IsIHZpcmUgbyBkaXNwb3NpdGl2byBvdSBwcmVzc2lvbmUgbyBib3TDo28gYWJhaXhvLjwvc3Bhbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInotMjAgY2UtZHVpLWJ0biBjZS1kdWktYnRuLW91dGxpbmUgY2UtZHVpLWJ0bi1wcmltYXJ5IG0tYXV0b1wiXG4gICAgICBvbjpjbGljaz17KCkgPT4ge1xuICAgICAgICBsb2NrU2NyZWVuKHRydWUpO1xuICAgICAgfX0+QWp1c3RhciBPcmllbnRhw6fDo288L2J1dHRvblxuICAgID5cbiAgezplbHNlIGlmICRjYW1lcmFTdGF0dXNTdG9yZSA9PT0gQ2FtZXJhU3RhdHVzRW51bS5DQU1FUkFfT1JJRU5UQVRJT05fTEFORFNDQVBFfVxuICAgIDwhLS0gaWNvbmlmeSBwaDp2aWRlby1jYW1lcmEtc2xhc2gtYm9sZCAtLT5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cInRleHQtWzhlbV0gbXgtYXV0b1wiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIHdpZHRoPVwiMWVtXCJcbiAgICAgIGhlaWdodD1cIjFlbVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI1NiAyNTZcIlxuICAgICAgey4uLiQkcHJvcHN9XG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIGQ9XCJNMjA4IDU2aC0yNy43MmwtMTMuNjMtMjAuNDRBOCA4IDAgMCAwIDE2MCAzMkg5NmE4IDggMCAwIDAtNi42NSAzLjU2TDc1LjcxIDU2SDQ4YTI0IDI0IDAgMCAwLTI0IDI0djExMmEyNCAyNCAwIDAgMCAyNCAyNGgxNjBhMjQgMjQgMCAwIDAgMjQtMjRWODBhMjQgMjQgMCAwIDAtMjQtMjRtLTUxLjE5IDExMC40QTQ4LjIxIDQ4LjIxIDAgMCAxIDk2IDE2My43N1YxNjhhOCA4IDAgMCAxLTE2IDB2LTI0YTggOCAwIDAgMSA4LThoMjRhOCA4IDAgMCAxIDAgMTZoLTUuMTVhMzIuMTIgMzIuMTIgMCAwIDAgNDAuMzQgMS42MWE4IDggMCAwIDEgOS42MiAxMi43OU0xNzYgMTIwYTggOCAwIDAgMS04IDhoLTI0YTggOCAwIDAgMSAwLTE2aDUuMTVhMzIuMTIgMzIuMTIgMCAwIDAtNDAuMzQtMS42MWE4IDggMCAwIDEtOS42Mi0xMi43OWE0OC4yMSA0OC4yMSAwIDAgMSA2MC44MSAyLjYzVjk2YTggOCAwIDAgMSAxNiAwWlwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC1jZW50ZXJcIj5PIGRpc3Bvc2l0aXZvIHByZWNpc2EgZXN0YXIgbmEgcG9zacOnw6NvIHBhaXNhZ2VtLjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cIm0tYXV0byB0ZXh0LWJhc2UgYmxvY2sgdGV4dC1jZW50ZXJcIj5Qb3IgZmF2b3IsIHZpcmUgbyBkaXNwb3NpdGl2byBvdSBwcmVzc2lvbmUgbyBib3TDo28gYWJhaXhvLjwvc3Bhbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInotMjAgY2UtZHVpLWJ0biBjZS1kdWktYnRuLW91dGxpbmUgY2UtZHVpLWJ0bi1wcmltYXJ5IG0tYXV0b1wiXG4gICAgICBvbjpjbGljaz17KCkgPT4ge1xuICAgICAgICBsb2NrU2NyZWVuKGZhbHNlKTtcbiAgICAgIH19PkFqdXN0YXIgT3JpZW50YcOnw6NvPC9idXR0b25cbiAgICA+XG4gIHsvaWZ9XG48L2Rpdj5cbiIsImltcG9ydCB7IGN1YmljSW5PdXQsIGxpbmVhciwgY3ViaWNPdXQgfSBmcm9tICcuLi9lYXNpbmcvaW5kZXgubWpzJztcbmltcG9ydCB7IHNwbGl0X2Nzc191bml0LCBpc19mdW5jdGlvbiwgYXNzaWduIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW5kZXgubWpzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcblxyXG5mdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxyXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cblxuZnVuY3Rpb24gYmx1cihub2RlLCB7IGRlbGF5ID0gMCwgZHVyYXRpb24gPSA0MDAsIGVhc2luZyA9IGN1YmljSW5PdXQsIGFtb3VudCA9IDUsIG9wYWNpdHkgPSAwIH0gPSB7fSkge1xuICAgIGNvbnN0IHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgICBjb25zdCB0YXJnZXRfb3BhY2l0eSA9ICtzdHlsZS5vcGFjaXR5O1xuICAgIGNvbnN0IGYgPSBzdHlsZS5maWx0ZXIgPT09ICdub25lJyA/ICcnIDogc3R5bGUuZmlsdGVyO1xuICAgIGNvbnN0IG9kID0gdGFyZ2V0X29wYWNpdHkgKiAoMSAtIG9wYWNpdHkpO1xuICAgIGNvbnN0IFt2YWx1ZSwgdW5pdF0gPSBzcGxpdF9jc3NfdW5pdChhbW91bnQpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGRlbGF5LFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgZWFzaW5nLFxuICAgICAgICBjc3M6IChfdCwgdSkgPT4gYG9wYWNpdHk6ICR7dGFyZ2V0X29wYWNpdHkgLSAob2QgKiB1KX07IGZpbHRlcjogJHtmfSBibHVyKCR7dSAqIHZhbHVlfSR7dW5pdH0pO2BcbiAgICB9O1xufVxuZnVuY3Rpb24gZmFkZShub2RlLCB7IGRlbGF5ID0gMCwgZHVyYXRpb24gPSA0MDAsIGVhc2luZyA9IGxpbmVhciB9ID0ge30pIHtcbiAgICBjb25zdCBvID0gK2dldENvbXB1dGVkU3R5bGUobm9kZSkub3BhY2l0eTtcbiAgICByZXR1cm4ge1xuICAgICAgICBkZWxheSxcbiAgICAgICAgZHVyYXRpb24sXG4gICAgICAgIGVhc2luZyxcbiAgICAgICAgY3NzOiB0ID0+IGBvcGFjaXR5OiAke3QgKiBvfWBcbiAgICB9O1xufVxuZnVuY3Rpb24gZmx5KG5vZGUsIHsgZGVsYXkgPSAwLCBkdXJhdGlvbiA9IDQwMCwgZWFzaW5nID0gY3ViaWNPdXQsIHggPSAwLCB5ID0gMCwgb3BhY2l0eSA9IDAgfSA9IHt9KSB7XG4gICAgY29uc3Qgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICAgIGNvbnN0IHRhcmdldF9vcGFjaXR5ID0gK3N0eWxlLm9wYWNpdHk7XG4gICAgY29uc3QgdHJhbnNmb3JtID0gc3R5bGUudHJhbnNmb3JtID09PSAnbm9uZScgPyAnJyA6IHN0eWxlLnRyYW5zZm9ybTtcbiAgICBjb25zdCBvZCA9IHRhcmdldF9vcGFjaXR5ICogKDEgLSBvcGFjaXR5KTtcbiAgICBjb25zdCBbeFZhbHVlLCB4VW5pdF0gPSBzcGxpdF9jc3NfdW5pdCh4KTtcbiAgICBjb25zdCBbeVZhbHVlLCB5VW5pdF0gPSBzcGxpdF9jc3NfdW5pdCh5KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBkZWxheSxcbiAgICAgICAgZHVyYXRpb24sXG4gICAgICAgIGVhc2luZyxcbiAgICAgICAgY3NzOiAodCwgdSkgPT4gYFxuXHRcdFx0dHJhbnNmb3JtOiAke3RyYW5zZm9ybX0gdHJhbnNsYXRlKCR7KDEgLSB0KSAqIHhWYWx1ZX0ke3hVbml0fSwgJHsoMSAtIHQpICogeVZhbHVlfSR7eVVuaXR9KTtcblx0XHRcdG9wYWNpdHk6ICR7dGFyZ2V0X29wYWNpdHkgLSAob2QgKiB1KX1gXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHNsaWRlKG5vZGUsIHsgZGVsYXkgPSAwLCBkdXJhdGlvbiA9IDQwMCwgZWFzaW5nID0gY3ViaWNPdXQsIGF4aXMgPSAneScgfSA9IHt9KSB7XG4gICAgY29uc3Qgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICAgIGNvbnN0IG9wYWNpdHkgPSArc3R5bGUub3BhY2l0eTtcbiAgICBjb25zdCBwcmltYXJ5X3Byb3BlcnR5ID0gYXhpcyA9PT0gJ3knID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuICAgIGNvbnN0IHByaW1hcnlfcHJvcGVydHlfdmFsdWUgPSBwYXJzZUZsb2F0KHN0eWxlW3ByaW1hcnlfcHJvcGVydHldKTtcbiAgICBjb25zdCBzZWNvbmRhcnlfcHJvcGVydGllcyA9IGF4aXMgPT09ICd5JyA/IFsndG9wJywgJ2JvdHRvbSddIDogWydsZWZ0JywgJ3JpZ2h0J107XG4gICAgY29uc3QgY2FwaXRhbGl6ZWRfc2Vjb25kYXJ5X3Byb3BlcnRpZXMgPSBzZWNvbmRhcnlfcHJvcGVydGllcy5tYXAoKGUpID0+IGAke2VbMF0udG9VcHBlckNhc2UoKX0ke2Uuc2xpY2UoMSl9YCk7XG4gICAgY29uc3QgcGFkZGluZ19zdGFydF92YWx1ZSA9IHBhcnNlRmxvYXQoc3R5bGVbYHBhZGRpbmcke2NhcGl0YWxpemVkX3NlY29uZGFyeV9wcm9wZXJ0aWVzWzBdfWBdKTtcbiAgICBjb25zdCBwYWRkaW5nX2VuZF92YWx1ZSA9IHBhcnNlRmxvYXQoc3R5bGVbYHBhZGRpbmcke2NhcGl0YWxpemVkX3NlY29uZGFyeV9wcm9wZXJ0aWVzWzFdfWBdKTtcbiAgICBjb25zdCBtYXJnaW5fc3RhcnRfdmFsdWUgPSBwYXJzZUZsb2F0KHN0eWxlW2BtYXJnaW4ke2NhcGl0YWxpemVkX3NlY29uZGFyeV9wcm9wZXJ0aWVzWzBdfWBdKTtcbiAgICBjb25zdCBtYXJnaW5fZW5kX3ZhbHVlID0gcGFyc2VGbG9hdChzdHlsZVtgbWFyZ2luJHtjYXBpdGFsaXplZF9zZWNvbmRhcnlfcHJvcGVydGllc1sxXX1gXSk7XG4gICAgY29uc3QgYm9yZGVyX3dpZHRoX3N0YXJ0X3ZhbHVlID0gcGFyc2VGbG9hdChzdHlsZVtgYm9yZGVyJHtjYXBpdGFsaXplZF9zZWNvbmRhcnlfcHJvcGVydGllc1swXX1XaWR0aGBdKTtcbiAgICBjb25zdCBib3JkZXJfd2lkdGhfZW5kX3ZhbHVlID0gcGFyc2VGbG9hdChzdHlsZVtgYm9yZGVyJHtjYXBpdGFsaXplZF9zZWNvbmRhcnlfcHJvcGVydGllc1sxXX1XaWR0aGBdKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBkZWxheSxcbiAgICAgICAgZHVyYXRpb24sXG4gICAgICAgIGVhc2luZyxcbiAgICAgICAgY3NzOiB0ID0+ICdvdmVyZmxvdzogaGlkZGVuOycgK1xuICAgICAgICAgICAgYG9wYWNpdHk6ICR7TWF0aC5taW4odCAqIDIwLCAxKSAqIG9wYWNpdHl9O2AgK1xuICAgICAgICAgICAgYCR7cHJpbWFyeV9wcm9wZXJ0eX06ICR7dCAqIHByaW1hcnlfcHJvcGVydHlfdmFsdWV9cHg7YCArXG4gICAgICAgICAgICBgcGFkZGluZy0ke3NlY29uZGFyeV9wcm9wZXJ0aWVzWzBdfTogJHt0ICogcGFkZGluZ19zdGFydF92YWx1ZX1weDtgICtcbiAgICAgICAgICAgIGBwYWRkaW5nLSR7c2Vjb25kYXJ5X3Byb3BlcnRpZXNbMV19OiAke3QgKiBwYWRkaW5nX2VuZF92YWx1ZX1weDtgICtcbiAgICAgICAgICAgIGBtYXJnaW4tJHtzZWNvbmRhcnlfcHJvcGVydGllc1swXX06ICR7dCAqIG1hcmdpbl9zdGFydF92YWx1ZX1weDtgICtcbiAgICAgICAgICAgIGBtYXJnaW4tJHtzZWNvbmRhcnlfcHJvcGVydGllc1sxXX06ICR7dCAqIG1hcmdpbl9lbmRfdmFsdWV9cHg7YCArXG4gICAgICAgICAgICBgYm9yZGVyLSR7c2Vjb25kYXJ5X3Byb3BlcnRpZXNbMF19LXdpZHRoOiAke3QgKiBib3JkZXJfd2lkdGhfc3RhcnRfdmFsdWV9cHg7YCArXG4gICAgICAgICAgICBgYm9yZGVyLSR7c2Vjb25kYXJ5X3Byb3BlcnRpZXNbMV19LXdpZHRoOiAke3QgKiBib3JkZXJfd2lkdGhfZW5kX3ZhbHVlfXB4O2BcbiAgICB9O1xufVxuZnVuY3Rpb24gc2NhbGUobm9kZSwgeyBkZWxheSA9IDAsIGR1cmF0aW9uID0gNDAwLCBlYXNpbmcgPSBjdWJpY091dCwgc3RhcnQgPSAwLCBvcGFjaXR5ID0gMCB9ID0ge30pIHtcbiAgICBjb25zdCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUobm9kZSk7XG4gICAgY29uc3QgdGFyZ2V0X29wYWNpdHkgPSArc3R5bGUub3BhY2l0eTtcbiAgICBjb25zdCB0cmFuc2Zvcm0gPSBzdHlsZS50cmFuc2Zvcm0gPT09ICdub25lJyA/ICcnIDogc3R5bGUudHJhbnNmb3JtO1xuICAgIGNvbnN0IHNkID0gMSAtIHN0YXJ0O1xuICAgIGNvbnN0IG9kID0gdGFyZ2V0X29wYWNpdHkgKiAoMSAtIG9wYWNpdHkpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGRlbGF5LFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgZWFzaW5nLFxuICAgICAgICBjc3M6IChfdCwgdSkgPT4gYFxuXHRcdFx0dHJhbnNmb3JtOiAke3RyYW5zZm9ybX0gc2NhbGUoJHsxIC0gKHNkICogdSl9KTtcblx0XHRcdG9wYWNpdHk6ICR7dGFyZ2V0X29wYWNpdHkgLSAob2QgKiB1KX1cblx0XHRgXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGRyYXcobm9kZSwgeyBkZWxheSA9IDAsIHNwZWVkLCBkdXJhdGlvbiwgZWFzaW5nID0gY3ViaWNJbk91dCB9ID0ge30pIHtcbiAgICBsZXQgbGVuID0gbm9kZS5nZXRUb3RhbExlbmd0aCgpO1xuICAgIGNvbnN0IHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgICBpZiAoc3R5bGUuc3Ryb2tlTGluZWNhcCAhPT0gJ2J1dHQnKSB7XG4gICAgICAgIGxlbiArPSBwYXJzZUludChzdHlsZS5zdHJva2VXaWR0aCk7XG4gICAgfVxuICAgIGlmIChkdXJhdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChzcGVlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IDgwMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGR1cmF0aW9uID0gbGVuIC8gc3BlZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGR1cmF0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGR1cmF0aW9uID0gZHVyYXRpb24obGVuKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZGVsYXksXG4gICAgICAgIGR1cmF0aW9uLFxuICAgICAgICBlYXNpbmcsXG4gICAgICAgIGNzczogKF8sIHUpID0+IGBcblx0XHRcdHN0cm9rZS1kYXNoYXJyYXk6ICR7bGVufTtcblx0XHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAke3UgKiBsZW59O1xuXHRcdGBcbiAgICB9O1xufVxuZnVuY3Rpb24gY3Jvc3NmYWRlKF9hKSB7XG4gICAgdmFyIHsgZmFsbGJhY2sgfSA9IF9hLCBkZWZhdWx0cyA9IF9fcmVzdChfYSwgW1wiZmFsbGJhY2tcIl0pO1xuICAgIGNvbnN0IHRvX3JlY2VpdmUgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgdG9fc2VuZCA9IG5ldyBNYXAoKTtcbiAgICBmdW5jdGlvbiBjcm9zc2ZhZGUoZnJvbV9ub2RlLCBub2RlLCBwYXJhbXMpIHtcbiAgICAgICAgY29uc3QgeyBkZWxheSA9IDAsIGR1cmF0aW9uID0gZCA9PiBNYXRoLnNxcnQoZCkgKiAzMCwgZWFzaW5nID0gY3ViaWNPdXQgfSA9IGFzc2lnbihhc3NpZ24oe30sIGRlZmF1bHRzKSwgcGFyYW1zKTtcbiAgICAgICAgY29uc3QgZnJvbSA9IGZyb21fbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdG8gPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBkeCA9IGZyb20ubGVmdCAtIHRvLmxlZnQ7XG4gICAgICAgIGNvbnN0IGR5ID0gZnJvbS50b3AgLSB0by50b3A7XG4gICAgICAgIGNvbnN0IGR3ID0gZnJvbS53aWR0aCAvIHRvLndpZHRoO1xuICAgICAgICBjb25zdCBkaCA9IGZyb20uaGVpZ2h0IC8gdG8uaGVpZ2h0O1xuICAgICAgICBjb25zdCBkID0gTWF0aC5zcXJ0KGR4ICogZHggKyBkeSAqIGR5KTtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm0gPSBzdHlsZS50cmFuc2Zvcm0gPT09ICdub25lJyA/ICcnIDogc3R5bGUudHJhbnNmb3JtO1xuICAgICAgICBjb25zdCBvcGFjaXR5ID0gK3N0eWxlLm9wYWNpdHk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWxheSxcbiAgICAgICAgICAgIGR1cmF0aW9uOiBpc19mdW5jdGlvbihkdXJhdGlvbikgPyBkdXJhdGlvbihkKSA6IGR1cmF0aW9uLFxuICAgICAgICAgICAgZWFzaW5nLFxuICAgICAgICAgICAgY3NzOiAodCwgdSkgPT4gYFxuXHRcdFx0XHRvcGFjaXR5OiAke3QgKiBvcGFjaXR5fTtcblx0XHRcdFx0dHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG5cdFx0XHRcdHRyYW5zZm9ybTogJHt0cmFuc2Zvcm19IHRyYW5zbGF0ZSgke3UgKiBkeH1weCwke3UgKiBkeX1weCkgc2NhbGUoJHt0ICsgKDEgLSB0KSAqIGR3fSwgJHt0ICsgKDEgLSB0KSAqIGRofSk7XG5cdFx0XHRgXG4gICAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYW5zaXRpb24oaXRlbXMsIGNvdW50ZXJwYXJ0cywgaW50cm8pIHtcbiAgICAgICAgcmV0dXJuIChub2RlLCBwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGl0ZW1zLnNldChwYXJhbXMua2V5LCBub2RlKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvdW50ZXJwYXJ0cy5oYXMocGFyYW1zLmtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3RoZXJfbm9kZSA9IGNvdW50ZXJwYXJ0cy5nZXQocGFyYW1zLmtleSk7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJwYXJ0cy5kZWxldGUocGFyYW1zLmtleSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjcm9zc2ZhZGUob3RoZXJfbm9kZSwgbm9kZSwgcGFyYW1zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIG5vZGUgaXMgZGlzYXBwZWFyaW5nIGFsdG9nZXRoZXJcbiAgICAgICAgICAgICAgICAvLyAoaS5lLiB3YXNuJ3QgY2xhaW1lZCBieSB0aGUgb3RoZXIgbGlzdClcbiAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIG5lZWQgdG8gc3VwcGx5IGFuIG91dHJvXG4gICAgICAgICAgICAgICAgaXRlbXMuZGVsZXRlKHBhcmFtcy5rZXkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxsYmFjayAmJiBmYWxsYmFjayhub2RlLCBwYXJhbXMsIGludHJvKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICAgIHRyYW5zaXRpb24odG9fc2VuZCwgdG9fcmVjZWl2ZSwgZmFsc2UpLFxuICAgICAgICB0cmFuc2l0aW9uKHRvX3JlY2VpdmUsIHRvX3NlbmQsIHRydWUpXG4gICAgXTtcbn1cblxuZXhwb3J0IHsgYmx1ciwgY3Jvc3NmYWRlLCBkcmF3LCBmYWRlLCBmbHksIHNjYWxlLCBzbGlkZSB9O1xuIiwiPCEtLSBzdmVsdGUtaWdub3JlIG1pc3NpbmctZGVjbGFyYXRpb24gLS0+XG48c3ZlbHRlOm9wdGlvbnMgdGFnPVwiY2FtZXJhLWJ0blwiIC8+XG5cbjxzY3JpcHQgbGFuZz1cInRzXCI+XG4gIGltcG9ydCB7IHN3YXBDYW1lcmEgfSBmcm9tICcuL2NvbmZTdG9yZSc7XG4gIGltcG9ydCBDb25mTW9kYWwgZnJvbSAnLi9Db25mTW9kYWwuc3ZlbHRlJztcbiAgaW1wb3J0IHsgY2FtZXJhRGV2aWNlc1N0b3JlIH0gZnJvbSAnLi4vZmFjZVRhYi9mYWNlU3RvcmUnO1xuICBleHBvcnQgbGV0IGNsYXNzTmFtZSA9ICcnO1xuPC9zY3JpcHQ+XG5cbjxDb25mTW9kYWwgLz5cblxuPCEtLSBzdmVsdGUtaWdub3JlIGExMXktY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAtLT5cbjxkaXZcbiAgb246Y2xpY2s9eygpID0+IHtcbiAgICAkc3dhcENhbWVyYSA9ICEkc3dhcENhbWVyYTtcbiAgfX1cbiAgY2xhc3M9XCJjZS1kdWktZHJvcGRvd24gY2UtZHVpLWRyb3Bkb3duLXRvcCBhYnNvbHV0ZSB6LTEwIHJpZ2h0LTAgc206YmxvY2sge2NsYXNzTmFtZX1cIlxuPlxuICA8IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS1sYWJlbC1oYXMtYXNzb2NpYXRlZC1jb250cm9sIC0tPlxuICA8IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS1uby1ub25pbnRlcmFjdGl2ZS10YWJpbmRleCAtLT5cbiAgPGxhYmVsIHRhYmluZGV4PVwiMFwiIGhpZGRlbj17JGNhbWVyYURldmljZXNTdG9yZS5sZW5ndGggPT0gMX0gIGNsYXNzPVwiY2UtZHVpLWJ0biBjZS1kdWktYnRuLWdob3N0IG0tMVwiXG4gICAgPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiM2VtXCIgaGVpZ2h0PVwiM2VtXCIgdmlld0JveD1cIjAgMCAyNTYgMjU2XCIgey4uLiQkcHJvcHN9PlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIGQ9XCJNMjA4IDU2aC0yNy43MmwtMTMuNjMtMjAuNDRBOCA4IDAgMCAwIDE2MCAzMkg5NmE4IDggMCAwIDAtNi42NSAzLjU2TDc1LjcxIDU2SDQ4YTI0IDI0IDAgMCAwLTI0IDI0djExMmEyNCAyNCAwIDAgMCAyNCAyNGgxNjBhMjQgMjQgMCAwIDAgMjQtMjRWODBhMjQgMjQgMCAwIDAtMjQtMjRtLTUxLjE5IDExMC40QTQ4LjIxIDQ4LjIxIDAgMCAxIDk2IDE2My43N1YxNjhhOCA4IDAgMCAxLTE2IDB2LTI0YTggOCAwIDAgMSA4LThoMjRhOCA4IDAgMCAxIDAgMTZoLTUuMTVhMzIuMTIgMzIuMTIgMCAwIDAgNDAuMzQgMS42MWE4IDggMCAwIDEgOS42MiAxMi43OU0xNzYgMTIwYTggOCAwIDAgMS04IDhoLTI0YTggOCAwIDAgMSAwLTE2aDUuMTVhMzIuMTIgMzIuMTIgMCAwIDAtNDAuMzQtMS42MWE4IDggMCAwIDEtOS42Mi0xMi43OWE0OC4yMSA0OC4yMSAwIDAgMSA2MC44MSAyLjYzVjk2YTggOCAwIDAgMSAxNiAwWlwiXG4gICAgICAvPlxuICAgIDwvc3ZnPjwvbGFiZWxcbiAgPlxuPC9kaXY+XG4iXSwibmFtZXMiOlsiQ2FtZXJhU3RhdHVzRW51bSIsImNhbWVyYVN0YXR1c1N0b3JlIiwid3JpdGFibGUiLCJjdHgiLCJpbnNlcnRfZGV2IiwidGFyZ2V0Iiwic3ZnIiwiYW5jaG9yIiwiYXBwZW5kX2RldiIsInBhdGgiLCJzcGFuMCIsInNwYW4xIiwiYnV0dG9uIiwiY3JlYXRlX2lmX2Jsb2NrIiwiY3JlYXRlX2lmX2Jsb2NrXzEiLCJjcmVhdGVfaWZfYmxvY2tfMiIsImNyZWF0ZV9pZl9ibG9ja18zIiwiY3JlYXRlX2lmX2Jsb2NrXzQiLCJjcmVhdGVfaWZfYmxvY2tfNSIsImNyZWF0ZV9pZl9ibG9ja182IiwiZGl2IiwiaGFuZGxlciIsImxvY2tTY3JlZW4iLCJmYWRlIiwibm9kZSIsImRlbGF5IiwiZHVyYXRpb24iLCJlYXNpbmciLCJsaW5lYXIiLCJvIiwidCIsImxhYmVsIiwiY2xhc3NOYW1lIiwiJCRwcm9wcyIsInNldF9zdG9yZV92YWx1ZSIsInN3YXBDYW1lcmEiLCIkc3dhcENhbWVyYSJdLCJtYXBwaW5ncyI6IjtBQUVrQixJQUFBQSxzQkFBQUEsT0FDaEJBLEVBQUEsS0FBSyxNQUNMQSxFQUFBLHlCQUF5QiwwQkFDekJBLEVBQUEsc0JBQXNCLHVCQUN0QkEsRUFBQSxzQkFBc0IsdUJBQ3RC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