@getopenpay/openpay-js 0.5.13 → 0.5.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ExportResult-B-YLKMaU.js → ExportResult-BacsqwKA.js} +1 -1
- package/dist/{Resource-BZeevyoh.js → Resource-Ds5bbQ3b.js} +4 -4
- package/dist/SimpleSpanProcessor-0bSccE1S.js +910 -0
- package/dist/_commonjsHelpers-CdLE1o9f.js +30 -0
- package/dist/detect-resources-UwRkF4Xd.js +862 -0
- package/dist/{diag-api-CHLb_Weo.js → diag-api-CMlZXyyv.js} +2 -2
- package/dist/index-1jECpTsg.js +147 -0
- package/dist/index-BZEpD-f0.js +6718 -0
- package/dist/index-BhZy-TW3.js +430 -0
- package/dist/index-BmKZeOoc.js +1619 -0
- package/dist/index-CDdbDQxQ.js +6 -0
- package/dist/index-CWTkU3J-.js +18 -0
- package/dist/index-DFO-DCsT.js +127 -0
- package/dist/index-DsxDp11a.js +28 -0
- package/dist/index-JNJd_YS1.js +1012 -0
- package/dist/index-j7i6AeZa.js +7005 -0
- package/dist/index.d.ts +29 -4
- package/dist/index.es.js +2 -2
- package/dist/index.umd.js +45 -45
- package/dist/lifecycle-D1BdEbZs.js +119 -0
- package/dist/{metrics-api-ClKmMX3Y.js → metrics-api-C9pRFfr-.js} +2 -2
- package/dist/sdk-info-ChuKu8zW.js +285 -0
- package/dist/suppress-tracing-B94rObkn.js +17 -0
- package/dist/url-CdPstDG9.js +798 -0
- package/dist/utils--M6ihaNw.js +101 -0
- package/dist/utils-De78ey-v.js +12 -0
- package/dist/utils-VJ-0MC7c.js +270 -0
- package/package.json +4 -4
- package/dist/SimpleSpanProcessor-CwJD-GjM.js +0 -957
- package/dist/_commonjsHelpers-f76XedMs.js +0 -25
- package/dist/detect-resources-BatabDmW.js +0 -854
- package/dist/index-ByaN1AdQ.js +0 -6685
- package/dist/index-CU4AI3HW.js +0 -52
- package/dist/index-Cb34s3AM.js +0 -1599
- package/dist/index-CmtkHZgE.js +0 -330
- package/dist/index-CtZ-xuHu.js +0 -7041
- package/dist/index-D5OCmVN-.js +0 -19
- package/dist/index-DLJd6nUV.js +0 -150
- package/dist/index-DjekHBls.js +0 -431
- package/dist/index-DoKHV9rR.js +0 -130
- package/dist/index-_ZTp3kCj.js +0 -830
- package/dist/lifecycle-BjQ-7GLm.js +0 -119
- package/dist/sdk-info-DYuuxEVK.js +0 -484
- package/dist/url-BAeEv8aD.js +0 -797
- package/dist/utils--qqdHZ_b.js +0 -142
- package/dist/utils-Bf8wDuNo.js +0 -381
- package/dist/utils-CX5YT7yI.js +0 -14
|
@@ -1,484 +0,0 @@
|
|
|
1
|
-
import { a } from "./index-CtZ-xuHu.js";
|
|
2
|
-
import { _ as N, c as R } from "./utils-CX5YT7yI.js";
|
|
3
|
-
var r;
|
|
4
|
-
(function(E) {
|
|
5
|
-
E.AlwaysOff = "always_off", E.AlwaysOn = "always_on", E.ParentBasedAlwaysOff = "parentbased_always_off", E.ParentBasedAlwaysOn = "parentbased_always_on", E.ParentBasedTraceIdRatio = "parentbased_traceidratio", E.TraceIdRatio = "traceidratio";
|
|
6
|
-
})(r || (r = {}));
|
|
7
|
-
var m_ = ",", W_ = ["OTEL_SDK_DISABLED"];
|
|
8
|
-
function g_(E) {
|
|
9
|
-
return W_.indexOf(E) > -1;
|
|
10
|
-
}
|
|
11
|
-
var w_ = [
|
|
12
|
-
"OTEL_BSP_EXPORT_TIMEOUT",
|
|
13
|
-
"OTEL_BSP_MAX_EXPORT_BATCH_SIZE",
|
|
14
|
-
"OTEL_BSP_MAX_QUEUE_SIZE",
|
|
15
|
-
"OTEL_BSP_SCHEDULE_DELAY",
|
|
16
|
-
"OTEL_BLRP_EXPORT_TIMEOUT",
|
|
17
|
-
"OTEL_BLRP_MAX_EXPORT_BATCH_SIZE",
|
|
18
|
-
"OTEL_BLRP_MAX_QUEUE_SIZE",
|
|
19
|
-
"OTEL_BLRP_SCHEDULE_DELAY",
|
|
20
|
-
"OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT",
|
|
21
|
-
"OTEL_ATTRIBUTE_COUNT_LIMIT",
|
|
22
|
-
"OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT",
|
|
23
|
-
"OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT",
|
|
24
|
-
"OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT",
|
|
25
|
-
"OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT",
|
|
26
|
-
"OTEL_SPAN_EVENT_COUNT_LIMIT",
|
|
27
|
-
"OTEL_SPAN_LINK_COUNT_LIMIT",
|
|
28
|
-
"OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT",
|
|
29
|
-
"OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT",
|
|
30
|
-
"OTEL_EXPORTER_OTLP_TIMEOUT",
|
|
31
|
-
"OTEL_EXPORTER_OTLP_TRACES_TIMEOUT",
|
|
32
|
-
"OTEL_EXPORTER_OTLP_METRICS_TIMEOUT",
|
|
33
|
-
"OTEL_EXPORTER_OTLP_LOGS_TIMEOUT",
|
|
34
|
-
"OTEL_EXPORTER_JAEGER_AGENT_PORT"
|
|
35
|
-
];
|
|
36
|
-
function y_(E) {
|
|
37
|
-
return w_.indexOf(E) > -1;
|
|
38
|
-
}
|
|
39
|
-
var Z_ = [
|
|
40
|
-
"OTEL_NO_PATCH_MODULES",
|
|
41
|
-
"OTEL_PROPAGATORS",
|
|
42
|
-
"OTEL_SEMCONV_STABILITY_OPT_IN"
|
|
43
|
-
];
|
|
44
|
-
function h_(E) {
|
|
45
|
-
return Z_.indexOf(E) > -1;
|
|
46
|
-
}
|
|
47
|
-
var M = 1 / 0, P = 128, k_ = 128, J_ = 128, I = {
|
|
48
|
-
OTEL_SDK_DISABLED: !1,
|
|
49
|
-
CONTAINER_NAME: "",
|
|
50
|
-
ECS_CONTAINER_METADATA_URI_V4: "",
|
|
51
|
-
ECS_CONTAINER_METADATA_URI: "",
|
|
52
|
-
HOSTNAME: "",
|
|
53
|
-
KUBERNETES_SERVICE_HOST: "",
|
|
54
|
-
NAMESPACE: "",
|
|
55
|
-
OTEL_BSP_EXPORT_TIMEOUT: 3e4,
|
|
56
|
-
OTEL_BSP_MAX_EXPORT_BATCH_SIZE: 512,
|
|
57
|
-
OTEL_BSP_MAX_QUEUE_SIZE: 2048,
|
|
58
|
-
OTEL_BSP_SCHEDULE_DELAY: 5e3,
|
|
59
|
-
OTEL_BLRP_EXPORT_TIMEOUT: 3e4,
|
|
60
|
-
OTEL_BLRP_MAX_EXPORT_BATCH_SIZE: 512,
|
|
61
|
-
OTEL_BLRP_MAX_QUEUE_SIZE: 2048,
|
|
62
|
-
OTEL_BLRP_SCHEDULE_DELAY: 5e3,
|
|
63
|
-
OTEL_EXPORTER_JAEGER_AGENT_HOST: "",
|
|
64
|
-
OTEL_EXPORTER_JAEGER_AGENT_PORT: 6832,
|
|
65
|
-
OTEL_EXPORTER_JAEGER_ENDPOINT: "",
|
|
66
|
-
OTEL_EXPORTER_JAEGER_PASSWORD: "",
|
|
67
|
-
OTEL_EXPORTER_JAEGER_USER: "",
|
|
68
|
-
OTEL_EXPORTER_OTLP_ENDPOINT: "",
|
|
69
|
-
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: "",
|
|
70
|
-
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: "",
|
|
71
|
-
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT: "",
|
|
72
|
-
OTEL_EXPORTER_OTLP_HEADERS: "",
|
|
73
|
-
OTEL_EXPORTER_OTLP_TRACES_HEADERS: "",
|
|
74
|
-
OTEL_EXPORTER_OTLP_METRICS_HEADERS: "",
|
|
75
|
-
OTEL_EXPORTER_OTLP_LOGS_HEADERS: "",
|
|
76
|
-
OTEL_EXPORTER_OTLP_TIMEOUT: 1e4,
|
|
77
|
-
OTEL_EXPORTER_OTLP_TRACES_TIMEOUT: 1e4,
|
|
78
|
-
OTEL_EXPORTER_OTLP_METRICS_TIMEOUT: 1e4,
|
|
79
|
-
OTEL_EXPORTER_OTLP_LOGS_TIMEOUT: 1e4,
|
|
80
|
-
OTEL_EXPORTER_ZIPKIN_ENDPOINT: "http://localhost:9411/api/v2/spans",
|
|
81
|
-
OTEL_LOG_LEVEL: a.INFO,
|
|
82
|
-
OTEL_NO_PATCH_MODULES: [],
|
|
83
|
-
OTEL_PROPAGATORS: ["tracecontext", "baggage"],
|
|
84
|
-
OTEL_RESOURCE_ATTRIBUTES: "",
|
|
85
|
-
OTEL_SERVICE_NAME: "",
|
|
86
|
-
OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT: M,
|
|
87
|
-
OTEL_ATTRIBUTE_COUNT_LIMIT: P,
|
|
88
|
-
OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT: M,
|
|
89
|
-
OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT: P,
|
|
90
|
-
OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT: M,
|
|
91
|
-
OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT: P,
|
|
92
|
-
OTEL_SPAN_EVENT_COUNT_LIMIT: 128,
|
|
93
|
-
OTEL_SPAN_LINK_COUNT_LIMIT: 128,
|
|
94
|
-
OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT: k_,
|
|
95
|
-
OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT: J_,
|
|
96
|
-
OTEL_TRACES_EXPORTER: "",
|
|
97
|
-
OTEL_TRACES_SAMPLER: r.ParentBasedAlwaysOn,
|
|
98
|
-
OTEL_TRACES_SAMPLER_ARG: "",
|
|
99
|
-
OTEL_LOGS_EXPORTER: "",
|
|
100
|
-
OTEL_EXPORTER_OTLP_INSECURE: "",
|
|
101
|
-
OTEL_EXPORTER_OTLP_TRACES_INSECURE: "",
|
|
102
|
-
OTEL_EXPORTER_OTLP_METRICS_INSECURE: "",
|
|
103
|
-
OTEL_EXPORTER_OTLP_LOGS_INSECURE: "",
|
|
104
|
-
OTEL_EXPORTER_OTLP_CERTIFICATE: "",
|
|
105
|
-
OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE: "",
|
|
106
|
-
OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE: "",
|
|
107
|
-
OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE: "",
|
|
108
|
-
OTEL_EXPORTER_OTLP_COMPRESSION: "",
|
|
109
|
-
OTEL_EXPORTER_OTLP_TRACES_COMPRESSION: "",
|
|
110
|
-
OTEL_EXPORTER_OTLP_METRICS_COMPRESSION: "",
|
|
111
|
-
OTEL_EXPORTER_OTLP_LOGS_COMPRESSION: "",
|
|
112
|
-
OTEL_EXPORTER_OTLP_CLIENT_KEY: "",
|
|
113
|
-
OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY: "",
|
|
114
|
-
OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY: "",
|
|
115
|
-
OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY: "",
|
|
116
|
-
OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE: "",
|
|
117
|
-
OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE: "",
|
|
118
|
-
OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE: "",
|
|
119
|
-
OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE: "",
|
|
120
|
-
OTEL_EXPORTER_OTLP_PROTOCOL: "http/protobuf",
|
|
121
|
-
OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: "http/protobuf",
|
|
122
|
-
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL: "http/protobuf",
|
|
123
|
-
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL: "http/protobuf",
|
|
124
|
-
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: "cumulative",
|
|
125
|
-
OTEL_SEMCONV_STABILITY_OPT_IN: []
|
|
126
|
-
};
|
|
127
|
-
function j_(E, T, A) {
|
|
128
|
-
if (!(typeof A[E] > "u")) {
|
|
129
|
-
var _ = String(A[E]);
|
|
130
|
-
T[E] = _.toLowerCase() === "true";
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
function x_(E, T, A, _, S) {
|
|
134
|
-
if (_ === void 0 && (_ = -1 / 0), S === void 0 && (S = 1 / 0), typeof A[E] < "u") {
|
|
135
|
-
var O = Number(A[E]);
|
|
136
|
-
isNaN(O) || (O < _ ? T[E] = _ : O > S ? T[E] = S : T[E] = O);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
function z_(E, T, A, _) {
|
|
140
|
-
_ === void 0 && (_ = m_);
|
|
141
|
-
var S = A[E];
|
|
142
|
-
typeof S == "string" && (T[E] = S.split(_).map(function(O) {
|
|
143
|
-
return O.trim();
|
|
144
|
-
}));
|
|
145
|
-
}
|
|
146
|
-
var Q_ = {
|
|
147
|
-
ALL: a.ALL,
|
|
148
|
-
VERBOSE: a.VERBOSE,
|
|
149
|
-
DEBUG: a.DEBUG,
|
|
150
|
-
INFO: a.INFO,
|
|
151
|
-
WARN: a.WARN,
|
|
152
|
-
ERROR: a.ERROR,
|
|
153
|
-
NONE: a.NONE
|
|
154
|
-
};
|
|
155
|
-
function q_(E, T, A) {
|
|
156
|
-
var _ = A[E];
|
|
157
|
-
if (typeof _ == "string") {
|
|
158
|
-
var S = Q_[_.toUpperCase()];
|
|
159
|
-
S != null && (T[E] = S);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
function U(E) {
|
|
163
|
-
var T = {};
|
|
164
|
-
for (var A in I) {
|
|
165
|
-
var _ = A;
|
|
166
|
-
switch (_) {
|
|
167
|
-
case "OTEL_LOG_LEVEL":
|
|
168
|
-
q_(_, T, E);
|
|
169
|
-
break;
|
|
170
|
-
default:
|
|
171
|
-
if (g_(_))
|
|
172
|
-
j_(_, T, E);
|
|
173
|
-
else if (y_(_))
|
|
174
|
-
x_(_, T, E);
|
|
175
|
-
else if (h_(_))
|
|
176
|
-
z_(_, T, E);
|
|
177
|
-
else {
|
|
178
|
-
var S = E[_];
|
|
179
|
-
typeof S < "u" && S !== null && (T[_] = String(S));
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
return T;
|
|
184
|
-
}
|
|
185
|
-
function OT() {
|
|
186
|
-
var E = U(N);
|
|
187
|
-
return Object.assign({}, I, E);
|
|
188
|
-
}
|
|
189
|
-
function LT() {
|
|
190
|
-
return U(N);
|
|
191
|
-
}
|
|
192
|
-
var $_ = "1.30.0", s = "cloud.provider", C = "cloud.account.id", v = "cloud.region", e = "cloud.availability_zone", D = "cloud.platform", n = "aws.ecs.container.arn", V = "aws.ecs.cluster.arn", t = "aws.ecs.launchtype", o = "aws.ecs.task.arn", i = "aws.ecs.task.family", G = "aws.ecs.task.revision", c = "aws.eks.cluster.arn", B = "aws.log.group.names", K = "aws.log.group.arns", Y = "aws.log.stream.names", d = "aws.log.stream.arns", u = "container.name", F = "container.id", p = "container.runtime", H = "container.image.name", X = "container.image.tag", l = "deployment.environment", f = "device.id", b = "device.model.identifier", m = "device.model.name", W = "faas.name", g = "faas.id", w = "faas.version", y = "faas.instance", Z = "faas.max_memory", h = "host.id", k = "host.name", J = "host.type", j = "host.arch", x = "host.image.name", z = "host.image.id", Q = "host.image.version", q = "k8s.cluster.name", $ = "k8s.node.name", EE = "k8s.node.uid", _E = "k8s.namespace.name", TE = "k8s.pod.uid", SE = "k8s.pod.name", AE = "k8s.container.name", aE = "k8s.replicaset.uid", RE = "k8s.replicaset.name", OE = "k8s.deployment.uid", LE = "k8s.deployment.name", ME = "k8s.statefulset.uid", PE = "k8s.statefulset.name", rE = "k8s.daemonset.uid", NE = "k8s.daemonset.name", IE = "k8s.job.uid", UE = "k8s.job.name", sE = "k8s.cronjob.uid", CE = "k8s.cronjob.name", vE = "os.type", eE = "os.description", DE = "os.name", nE = "os.version", VE = "process.pid", tE = "process.executable.name", oE = "process.executable.path", iE = "process.command", GE = "process.command_line", cE = "process.command_args", BE = "process.owner", KE = "process.runtime.name", YE = "process.runtime.version", dE = "process.runtime.description", uE = "service.name", FE = "service.namespace", pE = "service.instance.id", HE = "service.version", XE = "telemetry.sdk.name", lE = "telemetry.sdk.language", fE = "telemetry.sdk.version", bE = "telemetry.auto.version", mE = "webengine.name", WE = "webengine.version", gE = "webengine.description", MT = s, PT = C, rT = v, NT = e, IT = D, UT = n, sT = V, CT = t, vT = o, eT = i, DT = G, nT = c, VT = B, tT = K, oT = Y, iT = d, GT = u, cT = F, BT = p, KT = H, YT = X, dT = l, uT = f, FT = b, pT = m, HT = W, XT = g, lT = w, fT = y, bT = Z, mT = h, WT = k, gT = J, wT = j, yT = x, ZT = z, hT = Q, kT = q, JT = $, jT = EE, xT = _E, zT = TE, QT = SE, qT = AE, $T = aE, ES = RE, _S = OE, TS = LE, SS = ME, AS = PE, aS = rE, RS = NE, OS = IE, LS = UE, MS = sE, PS = CE, rS = vE, NS = eE, IS = DE, US = nE, sS = VE, CS = tE, vS = oE, eS = iE, DS = GE, nS = cE, VS = BE, ET = KE, tS = YE, oS = dE, iS = uE, GS = FE, cS = pE, BS = HE, _T = XE, TT = lE, ST = fE, KS = bE, YS = mE, dS = WE, uS = gE, FS = /* @__PURE__ */ R([
|
|
193
|
-
s,
|
|
194
|
-
C,
|
|
195
|
-
v,
|
|
196
|
-
e,
|
|
197
|
-
D,
|
|
198
|
-
n,
|
|
199
|
-
V,
|
|
200
|
-
t,
|
|
201
|
-
o,
|
|
202
|
-
i,
|
|
203
|
-
G,
|
|
204
|
-
c,
|
|
205
|
-
B,
|
|
206
|
-
K,
|
|
207
|
-
Y,
|
|
208
|
-
d,
|
|
209
|
-
u,
|
|
210
|
-
F,
|
|
211
|
-
p,
|
|
212
|
-
H,
|
|
213
|
-
X,
|
|
214
|
-
l,
|
|
215
|
-
f,
|
|
216
|
-
b,
|
|
217
|
-
m,
|
|
218
|
-
W,
|
|
219
|
-
g,
|
|
220
|
-
w,
|
|
221
|
-
y,
|
|
222
|
-
Z,
|
|
223
|
-
h,
|
|
224
|
-
k,
|
|
225
|
-
J,
|
|
226
|
-
j,
|
|
227
|
-
x,
|
|
228
|
-
z,
|
|
229
|
-
Q,
|
|
230
|
-
q,
|
|
231
|
-
$,
|
|
232
|
-
EE,
|
|
233
|
-
_E,
|
|
234
|
-
TE,
|
|
235
|
-
SE,
|
|
236
|
-
AE,
|
|
237
|
-
aE,
|
|
238
|
-
RE,
|
|
239
|
-
OE,
|
|
240
|
-
LE,
|
|
241
|
-
ME,
|
|
242
|
-
PE,
|
|
243
|
-
rE,
|
|
244
|
-
NE,
|
|
245
|
-
IE,
|
|
246
|
-
UE,
|
|
247
|
-
sE,
|
|
248
|
-
CE,
|
|
249
|
-
vE,
|
|
250
|
-
eE,
|
|
251
|
-
DE,
|
|
252
|
-
nE,
|
|
253
|
-
VE,
|
|
254
|
-
tE,
|
|
255
|
-
oE,
|
|
256
|
-
iE,
|
|
257
|
-
GE,
|
|
258
|
-
cE,
|
|
259
|
-
BE,
|
|
260
|
-
KE,
|
|
261
|
-
YE,
|
|
262
|
-
dE,
|
|
263
|
-
uE,
|
|
264
|
-
FE,
|
|
265
|
-
pE,
|
|
266
|
-
HE,
|
|
267
|
-
XE,
|
|
268
|
-
lE,
|
|
269
|
-
fE,
|
|
270
|
-
bE,
|
|
271
|
-
mE,
|
|
272
|
-
WE,
|
|
273
|
-
gE
|
|
274
|
-
]), wE = "alibaba_cloud", yE = "aws", ZE = "azure", hE = "gcp", pS = wE, HS = yE, XS = ZE, lS = hE, fS = /* @__PURE__ */ R([
|
|
275
|
-
wE,
|
|
276
|
-
yE,
|
|
277
|
-
ZE,
|
|
278
|
-
hE
|
|
279
|
-
]), kE = "alibaba_cloud_ecs", JE = "alibaba_cloud_fc", jE = "aws_ec2", xE = "aws_ecs", zE = "aws_eks", QE = "aws_lambda", qE = "aws_elastic_beanstalk", $E = "azure_vm", E_ = "azure_container_instances", __ = "azure_aks", T_ = "azure_functions", S_ = "azure_app_service", A_ = "gcp_compute_engine", a_ = "gcp_cloud_run", R_ = "gcp_kubernetes_engine", O_ = "gcp_cloud_functions", L_ = "gcp_app_engine", bS = kE, mS = JE, WS = jE, gS = xE, wS = zE, yS = QE, ZS = qE, hS = $E, kS = E_, JS = __, jS = T_, xS = S_, zS = A_, QS = a_, qS = R_, $S = O_, EA = L_, _A = /* @__PURE__ */ R([
|
|
280
|
-
kE,
|
|
281
|
-
JE,
|
|
282
|
-
jE,
|
|
283
|
-
xE,
|
|
284
|
-
zE,
|
|
285
|
-
QE,
|
|
286
|
-
qE,
|
|
287
|
-
$E,
|
|
288
|
-
E_,
|
|
289
|
-
__,
|
|
290
|
-
T_,
|
|
291
|
-
S_,
|
|
292
|
-
A_,
|
|
293
|
-
a_,
|
|
294
|
-
R_,
|
|
295
|
-
O_,
|
|
296
|
-
L_
|
|
297
|
-
]), M_ = "ec2", P_ = "fargate", TA = M_, SA = P_, AA = /* @__PURE__ */ R([
|
|
298
|
-
M_,
|
|
299
|
-
P_
|
|
300
|
-
]), r_ = "amd64", N_ = "arm32", I_ = "arm64", U_ = "ia64", s_ = "ppc32", C_ = "ppc64", v_ = "x86", aA = r_, RA = N_, OA = I_, LA = U_, MA = s_, PA = C_, rA = v_, NA = /* @__PURE__ */ R([
|
|
301
|
-
r_,
|
|
302
|
-
N_,
|
|
303
|
-
I_,
|
|
304
|
-
U_,
|
|
305
|
-
s_,
|
|
306
|
-
C_,
|
|
307
|
-
v_
|
|
308
|
-
]), e_ = "windows", D_ = "linux", n_ = "darwin", V_ = "freebsd", t_ = "netbsd", o_ = "openbsd", i_ = "dragonflybsd", G_ = "hpux", c_ = "aix", B_ = "solaris", K_ = "z_os", IA = e_, UA = D_, sA = n_, CA = V_, vA = t_, eA = o_, DA = i_, nA = G_, VA = c_, tA = B_, oA = K_, iA = /* @__PURE__ */ R([
|
|
309
|
-
e_,
|
|
310
|
-
D_,
|
|
311
|
-
n_,
|
|
312
|
-
V_,
|
|
313
|
-
t_,
|
|
314
|
-
o_,
|
|
315
|
-
i_,
|
|
316
|
-
G_,
|
|
317
|
-
c_,
|
|
318
|
-
B_,
|
|
319
|
-
K_
|
|
320
|
-
]), Y_ = "cpp", d_ = "dotnet", u_ = "erlang", F_ = "go", p_ = "java", H_ = "nodejs", X_ = "php", l_ = "python", f_ = "ruby", b_ = "webjs", GA = Y_, cA = d_, BA = u_, KA = F_, YA = p_, dA = H_, uA = X_, FA = l_, pA = f_, AT = b_, HA = /* @__PURE__ */ R([
|
|
321
|
-
Y_,
|
|
322
|
-
d_,
|
|
323
|
-
u_,
|
|
324
|
-
F_,
|
|
325
|
-
p_,
|
|
326
|
-
H_,
|
|
327
|
-
X_,
|
|
328
|
-
l_,
|
|
329
|
-
f_,
|
|
330
|
-
b_
|
|
331
|
-
]), L, XA = (L = {}, L[_T] = "opentelemetry", L[ET] = "browser", L[TT] = AT, L[ST] = $_, L);
|
|
332
|
-
export {
|
|
333
|
-
vA as $,
|
|
334
|
-
TA as A,
|
|
335
|
-
zS as B,
|
|
336
|
-
bS as C,
|
|
337
|
-
P as D,
|
|
338
|
-
qS as E,
|
|
339
|
-
pS as F,
|
|
340
|
-
HS as G,
|
|
341
|
-
XS as H,
|
|
342
|
-
lS as I,
|
|
343
|
-
_A as J,
|
|
344
|
-
fS as K,
|
|
345
|
-
aA as L,
|
|
346
|
-
RA as M,
|
|
347
|
-
OA as N,
|
|
348
|
-
LA as O,
|
|
349
|
-
MA as P,
|
|
350
|
-
PA as Q,
|
|
351
|
-
rA as R,
|
|
352
|
-
iS as S,
|
|
353
|
-
r as T,
|
|
354
|
-
NA as U,
|
|
355
|
-
VA as V,
|
|
356
|
-
sA as W,
|
|
357
|
-
DA as X,
|
|
358
|
-
CA as Y,
|
|
359
|
-
nA as Z,
|
|
360
|
-
UA as _,
|
|
361
|
-
TT as a,
|
|
362
|
-
rS as a$,
|
|
363
|
-
eA as a0,
|
|
364
|
-
tA as a1,
|
|
365
|
-
IA as a2,
|
|
366
|
-
oA as a3,
|
|
367
|
-
iA as a4,
|
|
368
|
-
sT as a5,
|
|
369
|
-
UT as a6,
|
|
370
|
-
CT as a7,
|
|
371
|
-
vT as a8,
|
|
372
|
-
eT as a9,
|
|
373
|
-
mT as aA,
|
|
374
|
-
ZT as aB,
|
|
375
|
-
yT as aC,
|
|
376
|
-
hT as aD,
|
|
377
|
-
WT as aE,
|
|
378
|
-
gT as aF,
|
|
379
|
-
kT as aG,
|
|
380
|
-
qT as aH,
|
|
381
|
-
PS as aI,
|
|
382
|
-
MS as aJ,
|
|
383
|
-
RS as aK,
|
|
384
|
-
aS as aL,
|
|
385
|
-
TS as aM,
|
|
386
|
-
_S as aN,
|
|
387
|
-
LS as aO,
|
|
388
|
-
OS as aP,
|
|
389
|
-
xT as aQ,
|
|
390
|
-
JT as aR,
|
|
391
|
-
jT as aS,
|
|
392
|
-
QT as aT,
|
|
393
|
-
zT as aU,
|
|
394
|
-
ES as aV,
|
|
395
|
-
$T as aW,
|
|
396
|
-
AS as aX,
|
|
397
|
-
SS as aY,
|
|
398
|
-
NS as aZ,
|
|
399
|
-
IS as a_,
|
|
400
|
-
DT as aa,
|
|
401
|
-
nT as ab,
|
|
402
|
-
tT as ac,
|
|
403
|
-
VT as ad,
|
|
404
|
-
iT as ae,
|
|
405
|
-
oT as af,
|
|
406
|
-
PT as ag,
|
|
407
|
-
NT as ah,
|
|
408
|
-
IT as ai,
|
|
409
|
-
MT as aj,
|
|
410
|
-
rT as ak,
|
|
411
|
-
cT as al,
|
|
412
|
-
KT as am,
|
|
413
|
-
YT as an,
|
|
414
|
-
GT as ao,
|
|
415
|
-
BT as ap,
|
|
416
|
-
dT as aq,
|
|
417
|
-
uT as ar,
|
|
418
|
-
FT as as,
|
|
419
|
-
pT as at,
|
|
420
|
-
XT as au,
|
|
421
|
-
fT as av,
|
|
422
|
-
bT as aw,
|
|
423
|
-
HT as ax,
|
|
424
|
-
lT as ay,
|
|
425
|
-
wT as az,
|
|
426
|
-
XA as b,
|
|
427
|
-
US as b0,
|
|
428
|
-
eS as b1,
|
|
429
|
-
nS as b2,
|
|
430
|
-
DS as b3,
|
|
431
|
-
CS as b4,
|
|
432
|
-
vS as b5,
|
|
433
|
-
VS as b6,
|
|
434
|
-
sS as b7,
|
|
435
|
-
cS as b8,
|
|
436
|
-
GS as b9,
|
|
437
|
-
BS as ba,
|
|
438
|
-
KS as bb,
|
|
439
|
-
uS as bc,
|
|
440
|
-
YS as bd,
|
|
441
|
-
dS as be,
|
|
442
|
-
FS as bf,
|
|
443
|
-
GA as bg,
|
|
444
|
-
cA as bh,
|
|
445
|
-
BA as bi,
|
|
446
|
-
KA as bj,
|
|
447
|
-
YA as bk,
|
|
448
|
-
dA as bl,
|
|
449
|
-
uA as bm,
|
|
450
|
-
FA as bn,
|
|
451
|
-
pA as bo,
|
|
452
|
-
AT as bp,
|
|
453
|
-
HA as bq,
|
|
454
|
-
I as br,
|
|
455
|
-
k_ as bs,
|
|
456
|
-
J_ as bt,
|
|
457
|
-
$_ as bu,
|
|
458
|
-
U as bv,
|
|
459
|
-
_T as c,
|
|
460
|
-
ST as d,
|
|
461
|
-
ET as e,
|
|
462
|
-
oS as f,
|
|
463
|
-
tS as g,
|
|
464
|
-
OT as h,
|
|
465
|
-
LT as i,
|
|
466
|
-
M as j,
|
|
467
|
-
SA as k,
|
|
468
|
-
AA as l,
|
|
469
|
-
mS as m,
|
|
470
|
-
WS as n,
|
|
471
|
-
gS as o,
|
|
472
|
-
wS as p,
|
|
473
|
-
ZS as q,
|
|
474
|
-
yS as r,
|
|
475
|
-
JS as s,
|
|
476
|
-
xS as t,
|
|
477
|
-
kS as u,
|
|
478
|
-
jS as v,
|
|
479
|
-
hS as w,
|
|
480
|
-
EA as x,
|
|
481
|
-
$S as y,
|
|
482
|
-
QS as z
|
|
483
|
-
};
|
|
484
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic2RrLWluZm8tIX57MDBifX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IGEgYXMgRGlhZ0xvZ0xldmVsIH0gZnJvbSAnLi9pbmRleC0hfnswMDZ9fi5qcyc7XG5pbXBvcnQgeyBfIGFzIF9nbG9iYWxUaGlzLCBjIGFzIGNyZWF0ZUNvbnN0TWFwIH0gZnJvbSAnLi91dGlscy0hfnswMGN9fi5qcyc7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgVHJhY2VzU2FtcGxlclZhbHVlcztcbihmdW5jdGlvbiAoVHJhY2VzU2FtcGxlclZhbHVlcykge1xuICAgIFRyYWNlc1NhbXBsZXJWYWx1ZXNbXCJBbHdheXNPZmZcIl0gPSBcImFsd2F5c19vZmZcIjtcbiAgICBUcmFjZXNTYW1wbGVyVmFsdWVzW1wiQWx3YXlzT25cIl0gPSBcImFsd2F5c19vblwiO1xuICAgIFRyYWNlc1NhbXBsZXJWYWx1ZXNbXCJQYXJlbnRCYXNlZEFsd2F5c09mZlwiXSA9IFwicGFyZW50YmFzZWRfYWx3YXlzX29mZlwiO1xuICAgIFRyYWNlc1NhbXBsZXJWYWx1ZXNbXCJQYXJlbnRCYXNlZEFsd2F5c09uXCJdID0gXCJwYXJlbnRiYXNlZF9hbHdheXNfb25cIjtcbiAgICBUcmFjZXNTYW1wbGVyVmFsdWVzW1wiUGFyZW50QmFzZWRUcmFjZUlkUmF0aW9cIl0gPSBcInBhcmVudGJhc2VkX3RyYWNlaWRyYXRpb1wiO1xuICAgIFRyYWNlc1NhbXBsZXJWYWx1ZXNbXCJUcmFjZUlkUmF0aW9cIl0gPSBcInRyYWNlaWRyYXRpb1wiO1xufSkoVHJhY2VzU2FtcGxlclZhbHVlcyB8fCAoVHJhY2VzU2FtcGxlclZhbHVlcyA9IHt9KSk7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgREVGQVVMVF9MSVNUX1NFUEFSQVRPUiA9ICcsJztcbi8qKlxuICogRW52aXJvbm1lbnQgaW50ZXJmYWNlIHRvIGRlZmluZSBhbGwgbmFtZXNcbiAqL1xudmFyIEVOVklST05NRU5UX0JPT0xFQU5fS0VZUyA9IFsnT1RFTF9TREtfRElTQUJMRUQnXTtcbmZ1bmN0aW9uIGlzRW52VmFyQUJvb2xlYW4oa2V5KSB7XG4gICAgcmV0dXJuIChFTlZJUk9OTUVOVF9CT09MRUFOX0tFWVMuaW5kZXhPZihrZXkpID4gLTEpO1xufVxudmFyIEVOVklST05NRU5UX05VTUJFUlNfS0VZUyA9IFtcbiAgICAnT1RFTF9CU1BfRVhQT1JUX1RJTUVPVVQnLFxuICAgICdPVEVMX0JTUF9NQVhfRVhQT1JUX0JBVENIX1NJWkUnLFxuICAgICdPVEVMX0JTUF9NQVhfUVVFVUVfU0laRScsXG4gICAgJ09URUxfQlNQX1NDSEVEVUxFX0RFTEFZJyxcbiAgICAnT1RFTF9CTFJQX0VYUE9SVF9USU1FT1VUJyxcbiAgICAnT1RFTF9CTFJQX01BWF9FWFBPUlRfQkFUQ0hfU0laRScsXG4gICAgJ09URUxfQkxSUF9NQVhfUVVFVUVfU0laRScsXG4gICAgJ09URUxfQkxSUF9TQ0hFRFVMRV9ERUxBWScsXG4gICAgJ09URUxfQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVCcsXG4gICAgJ09URUxfQVRUUklCVVRFX0NPVU5UX0xJTUlUJyxcbiAgICAnT1RFTF9TUEFOX0FUVFJJQlVURV9WQUxVRV9MRU5HVEhfTElNSVQnLFxuICAgICdPVEVMX1NQQU5fQVRUUklCVVRFX0NPVU5UX0xJTUlUJyxcbiAgICAnT1RFTF9MT0dSRUNPUkRfQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVCcsXG4gICAgJ09URUxfTE9HUkVDT1JEX0FUVFJJQlVURV9DT1VOVF9MSU1JVCcsXG4gICAgJ09URUxfU1BBTl9FVkVOVF9DT1VOVF9MSU1JVCcsXG4gICAgJ09URUxfU1BBTl9MSU5LX0NPVU5UX0xJTUlUJyxcbiAgICAnT1RFTF9TUEFOX0FUVFJJQlVURV9QRVJfRVZFTlRfQ09VTlRfTElNSVQnLFxuICAgICdPVEVMX1NQQU5fQVRUUklCVVRFX1BFUl9MSU5LX0NPVU5UX0xJTUlUJyxcbiAgICAnT1RFTF9FWFBPUlRFUl9PVExQX1RJTUVPVVQnLFxuICAgICdPVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX1RJTUVPVVQnLFxuICAgICdPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19USU1FT1VUJyxcbiAgICAnT1RFTF9FWFBPUlRFUl9PVExQX0xPR1NfVElNRU9VVCcsXG4gICAgJ09URUxfRVhQT1JURVJfSkFFR0VSX0FHRU5UX1BPUlQnLFxuXTtcbmZ1bmN0aW9uIGlzRW52VmFyQU51bWJlcihrZXkpIHtcbiAgICByZXR1cm4gKEVOVklST05NRU5UX05VTUJFUlNfS0VZUy5pbmRleE9mKGtleSkgPiAtMSk7XG59XG52YXIgRU5WSVJPTk1FTlRfTElTVFNfS0VZUyA9IFtcbiAgICAnT1RFTF9OT19QQVRDSF9NT0RVTEVTJyxcbiAgICAnT1RFTF9QUk9QQUdBVE9SUycsXG4gICAgJ09URUxfU0VNQ09OVl9TVEFCSUxJVFlfT1BUX0lOJyxcbl07XG5mdW5jdGlvbiBpc0VudlZhckFMaXN0KGtleSkge1xuICAgIHJldHVybiBFTlZJUk9OTUVOVF9MSVNUU19LRVlTLmluZGV4T2Yoa2V5KSA+IC0xO1xufVxudmFyIERFRkFVTFRfQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVCA9IEluZmluaXR5O1xudmFyIERFRkFVTFRfQVRUUklCVVRFX0NPVU5UX0xJTUlUID0gMTI4O1xudmFyIERFRkFVTFRfU1BBTl9BVFRSSUJVVEVfUEVSX0VWRU5UX0NPVU5UX0xJTUlUID0gMTI4O1xudmFyIERFRkFVTFRfU1BBTl9BVFRSSUJVVEVfUEVSX0xJTktfQ09VTlRfTElNSVQgPSAxMjg7XG4vKipcbiAqIERlZmF1bHQgZW52aXJvbm1lbnQgdmFyaWFibGVzXG4gKi9cbnZhciBERUZBVUxUX0VOVklST05NRU5UID0ge1xuICAgIE9URUxfU0RLX0RJU0FCTEVEOiBmYWxzZSxcbiAgICBDT05UQUlORVJfTkFNRTogJycsXG4gICAgRUNTX0NPTlRBSU5FUl9NRVRBREFUQV9VUklfVjQ6ICcnLFxuICAgIEVDU19DT05UQUlORVJfTUVUQURBVEFfVVJJOiAnJyxcbiAgICBIT1NUTkFNRTogJycsXG4gICAgS1VCRVJORVRFU19TRVJWSUNFX0hPU1Q6ICcnLFxuICAgIE5BTUVTUEFDRTogJycsXG4gICAgT1RFTF9CU1BfRVhQT1JUX1RJTUVPVVQ6IDMwMDAwLFxuICAgIE9URUxfQlNQX01BWF9FWFBPUlRfQkFUQ0hfU0laRTogNTEyLFxuICAgIE9URUxfQlNQX01BWF9RVUVVRV9TSVpFOiAyMDQ4LFxuICAgIE9URUxfQlNQX1NDSEVEVUxFX0RFTEFZOiA1MDAwLFxuICAgIE9URUxfQkxSUF9FWFBPUlRfVElNRU9VVDogMzAwMDAsXG4gICAgT1RFTF9CTFJQX01BWF9FWFBPUlRfQkFUQ0hfU0laRTogNTEyLFxuICAgIE9URUxfQkxSUF9NQVhfUVVFVUVfU0laRTogMjA0OCxcbiAgICBPVEVMX0JMUlBfU0NIRURVTEVfREVMQVk6IDUwMDAsXG4gICAgT1RFTF9FWFBPUlRFUl9KQUVHRVJfQUdFTlRfSE9TVDogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9KQUVHRVJfQUdFTlRfUE9SVDogNjgzMixcbiAgICBPVEVMX0VYUE9SVEVSX0pBRUdFUl9FTkRQT0lOVDogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9KQUVHRVJfUEFTU1dPUkQ6ICcnLFxuICAgIE9URUxfRVhQT1JURVJfSkFFR0VSX1VTRVI6ICcnLFxuICAgIE9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVDogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19FTkRQT0lOVDogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX01FVFJJQ1NfRU5EUE9JTlQ6ICcnLFxuICAgIE9URUxfRVhQT1JURVJfT1RMUF9MT0dTX0VORFBPSU5UOiAnJyxcbiAgICBPVEVMX0VYUE9SVEVSX09UTFBfSEVBREVSUzogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19IRUFERVJTOiAnJyxcbiAgICBPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19IRUFERVJTOiAnJyxcbiAgICBPVEVMX0VYUE9SVEVSX09UTFBfTE9HU19IRUFERVJTOiAnJyxcbiAgICBPVEVMX0VYUE9SVEVSX09UTFBfVElNRU9VVDogMTAwMDAsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19USU1FT1VUOiAxMDAwMCxcbiAgICBPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19USU1FT1VUOiAxMDAwMCxcbiAgICBPVEVMX0VYUE9SVEVSX09UTFBfTE9HU19USU1FT1VUOiAxMDAwMCxcbiAgICBPVEVMX0VYUE9SVEVSX1pJUEtJTl9FTkRQT0lOVDogJ2h0dHA6Ly9sb2NhbGhvc3Q6OTQxMS9hcGkvdjIvc3BhbnMnLFxuICAgIE9URUxfTE9HX0xFVkVMOiBEaWFnTG9nTGV2ZWwuSU5GTyxcbiAgICBPVEVMX05PX1BBVENIX01PRFVMRVM6IFtdLFxuICAgIE9URUxfUFJPUEFHQVRPUlM6IFsndHJhY2Vjb250ZXh0JywgJ2JhZ2dhZ2UnXSxcbiAgICBPVEVMX1JFU09VUkNFX0FUVFJJQlVURVM6ICcnLFxuICAgIE9URUxfU0VSVklDRV9OQU1FOiAnJyxcbiAgICBPVEVMX0FUVFJJQlVURV9WQUxVRV9MRU5HVEhfTElNSVQ6IERFRkFVTFRfQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVCxcbiAgICBPVEVMX0FUVFJJQlVURV9DT1VOVF9MSU1JVDogREVGQVVMVF9BVFRSSUJVVEVfQ09VTlRfTElNSVQsXG4gICAgT1RFTF9TUEFOX0FUVFJJQlVURV9WQUxVRV9MRU5HVEhfTElNSVQ6IERFRkFVTFRfQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVCxcbiAgICBPVEVMX1NQQU5fQVRUUklCVVRFX0NPVU5UX0xJTUlUOiBERUZBVUxUX0FUVFJJQlVURV9DT1VOVF9MSU1JVCxcbiAgICBPVEVMX0xPR1JFQ09SRF9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUOiBERUZBVUxUX0FUVFJJQlVURV9WQUxVRV9MRU5HVEhfTElNSVQsXG4gICAgT1RFTF9MT0dSRUNPUkRfQVRUUklCVVRFX0NPVU5UX0xJTUlUOiBERUZBVUxUX0FUVFJJQlVURV9DT1VOVF9MSU1JVCxcbiAgICBPVEVMX1NQQU5fRVZFTlRfQ09VTlRfTElNSVQ6IDEyOCxcbiAgICBPVEVMX1NQQU5fTElOS19DT1VOVF9MSU1JVDogMTI4LFxuICAgIE9URUxfU1BBTl9BVFRSSUJVVEVfUEVSX0VWRU5UX0NPVU5UX0xJTUlUOiBERUZBVUxUX1NQQU5fQVRUUklCVVRFX1BFUl9FVkVOVF9DT1VOVF9MSU1JVCxcbiAgICBPVEVMX1NQQU5fQVRUUklCVVRFX1BFUl9MSU5LX0NPVU5UX0xJTUlUOiBERUZBVUxUX1NQQU5fQVRUUklCVVRFX1BFUl9MSU5LX0NPVU5UX0xJTUlULFxuICAgIE9URUxfVFJBQ0VTX0VYUE9SVEVSOiAnJyxcbiAgICBPVEVMX1RSQUNFU19TQU1QTEVSOiBUcmFjZXNTYW1wbGVyVmFsdWVzLlBhcmVudEJhc2VkQWx3YXlzT24sXG4gICAgT1RFTF9UUkFDRVNfU0FNUExFUl9BUkc6ICcnLFxuICAgIE9URUxfTE9HU19FWFBPUlRFUjogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX0lOU0VDVVJFOiAnJyxcbiAgICBPVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX0lOU0VDVVJFOiAnJyxcbiAgICBPVEVMX0VYUE9SVEVSX09UTFBfTUVUUklDU19JTlNFQ1VSRTogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX0xPR1NfSU5TRUNVUkU6ICcnLFxuICAgIE9URUxfRVhQT1JURVJfT1RMUF9DRVJUSUZJQ0FURTogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19DRVJUSUZJQ0FURTogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX01FVFJJQ1NfQ0VSVElGSUNBVEU6ICcnLFxuICAgIE9URUxfRVhQT1JURVJfT1RMUF9MT0dTX0NFUlRJRklDQVRFOiAnJyxcbiAgICBPVEVMX0VYUE9SVEVSX09UTFBfQ09NUFJFU1NJT046ICcnLFxuICAgIE9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfQ09NUFJFU1NJT046ICcnLFxuICAgIE9URUxfRVhQT1JURVJfT1RMUF9NRVRSSUNTX0NPTVBSRVNTSU9OOiAnJyxcbiAgICBPVEVMX0VYUE9SVEVSX09UTFBfTE9HU19DT01QUkVTU0lPTjogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX0NMSUVOVF9LRVk6ICcnLFxuICAgIE9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfQ0xJRU5UX0tFWTogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX01FVFJJQ1NfQ0xJRU5UX0tFWTogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX0xPR1NfQ0xJRU5UX0tFWTogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX0NMSUVOVF9DRVJUSUZJQ0FURTogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19DTElFTlRfQ0VSVElGSUNBVEU6ICcnLFxuICAgIE9URUxfRVhQT1JURVJfT1RMUF9NRVRSSUNTX0NMSUVOVF9DRVJUSUZJQ0FURTogJycsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX0xPR1NfQ0xJRU5UX0NFUlRJRklDQVRFOiAnJyxcbiAgICBPVEVMX0VYUE9SVEVSX09UTFBfUFJPVE9DT0w6ICdodHRwL3Byb3RvYnVmJyxcbiAgICBPVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX1BST1RPQ09MOiAnaHR0cC9wcm90b2J1ZicsXG4gICAgT1RFTF9FWFBPUlRFUl9PVExQX01FVFJJQ1NfUFJPVE9DT0w6ICdodHRwL3Byb3RvYnVmJyxcbiAgICBPVEVMX0VYUE9SVEVSX09UTFBfTE9HU19QUk9UT0NPTDogJ2h0dHAvcHJvdG9idWYnLFxuICAgIE9URUxfRVhQT1JURVJfT1RMUF9NRVRSSUNTX1RFTVBPUkFMSVRZX1BSRUZFUkVOQ0U6ICdjdW11bGF0aXZlJyxcbiAgICBPVEVMX1NFTUNPTlZfU1RBQklMSVRZX09QVF9JTjogW10sXG59O1xuLyoqXG4gKiBAcGFyYW0ga2V5XG4gKiBAcGFyYW0gZW52aXJvbm1lbnRcbiAqIEBwYXJhbSB2YWx1ZXNcbiAqL1xuZnVuY3Rpb24gcGFyc2VCb29sZWFuKGtleSwgZW52aXJvbm1lbnQsIHZhbHVlcykge1xuICAgIGlmICh0eXBlb2YgdmFsdWVzW2tleV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHZhbHVlID0gU3RyaW5nKHZhbHVlc1trZXldKTtcbiAgICAvLyBzdXBwb3J0IGNhc2UtaW5zZW5zaXRpdmUgXCJ0cnVlXCJcbiAgICBlbnZpcm9ubWVudFtrZXldID0gdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xufVxuLyoqXG4gKiBQYXJzZXMgYSB2YXJpYWJsZSBhcyBudW1iZXIgd2l0aCBudW1iZXIgdmFsaWRhdGlvblxuICogQHBhcmFtIG5hbWVcbiAqIEBwYXJhbSBlbnZpcm9ubWVudFxuICogQHBhcmFtIHZhbHVlc1xuICogQHBhcmFtIG1pblxuICogQHBhcmFtIG1heFxuICovXG5mdW5jdGlvbiBwYXJzZU51bWJlcihuYW1lLCBlbnZpcm9ubWVudCwgdmFsdWVzLCBtaW4sIG1heCkge1xuICAgIGlmIChtaW4gPT09IHZvaWQgMCkgeyBtaW4gPSAtSW5maW5pdHk7IH1cbiAgICBpZiAobWF4ID09PSB2b2lkIDApIHsgbWF4ID0gSW5maW5pdHk7IH1cbiAgICBpZiAodHlwZW9mIHZhbHVlc1tuYW1lXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gTnVtYmVyKHZhbHVlc1tuYW1lXSk7XG4gICAgICAgIGlmICghaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgPCBtaW4pIHtcbiAgICAgICAgICAgICAgICBlbnZpcm9ubWVudFtuYW1lXSA9IG1pbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlID4gbWF4KSB7XG4gICAgICAgICAgICAgICAgZW52aXJvbm1lbnRbbmFtZV0gPSBtYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbnZpcm9ubWVudFtuYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLyoqXG4gKiBQYXJzZXMgbGlzdC1saWtlIHN0cmluZ3MgZnJvbSBpbnB1dCBpbnRvIG91dHB1dC5cbiAqIEBwYXJhbSBuYW1lXG4gKiBAcGFyYW0gZW52aXJvbm1lbnRcbiAqIEBwYXJhbSB2YWx1ZXNcbiAqIEBwYXJhbSBzZXBhcmF0b3JcbiAqL1xuZnVuY3Rpb24gcGFyc2VTdHJpbmdMaXN0KG5hbWUsIG91dHB1dCwgaW5wdXQsIHNlcGFyYXRvcikge1xuICAgIGlmIChzZXBhcmF0b3IgPT09IHZvaWQgMCkgeyBzZXBhcmF0b3IgPSBERUZBVUxUX0xJU1RfU0VQQVJBVE9SOyB9XG4gICAgdmFyIGdpdmVuVmFsdWUgPSBpbnB1dFtuYW1lXTtcbiAgICBpZiAodHlwZW9mIGdpdmVuVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG91dHB1dFtuYW1lXSA9IGdpdmVuVmFsdWUuc3BsaXQoc2VwYXJhdG9yKS5tYXAoZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHYudHJpbSgpOyB9KTtcbiAgICB9XG59XG4vLyBUaGUgc3VwcG9ydCBzdHJpbmcgLT4gRGlhZ0xvZ0xldmVsIG1hcHBpbmdzXG52YXIgbG9nTGV2ZWxNYXAgPSB7XG4gICAgQUxMOiBEaWFnTG9nTGV2ZWwuQUxMLFxuICAgIFZFUkJPU0U6IERpYWdMb2dMZXZlbC5WRVJCT1NFLFxuICAgIERFQlVHOiBEaWFnTG9nTGV2ZWwuREVCVUcsXG4gICAgSU5GTzogRGlhZ0xvZ0xldmVsLklORk8sXG4gICAgV0FSTjogRGlhZ0xvZ0xldmVsLldBUk4sXG4gICAgRVJST1I6IERpYWdMb2dMZXZlbC5FUlJPUixcbiAgICBOT05FOiBEaWFnTG9nTGV2ZWwuTk9ORSxcbn07XG4vKipcbiAqIEVudmlyb25tZW50YWxseSBzZXRzIGxvZyBsZXZlbCBpZiB2YWxpZCBsb2cgbGV2ZWwgc3RyaW5nIGlzIHByb3ZpZGVkXG4gKiBAcGFyYW0ga2V5XG4gKiBAcGFyYW0gZW52aXJvbm1lbnRcbiAqIEBwYXJhbSB2YWx1ZXNcbiAqL1xuZnVuY3Rpb24gc2V0TG9nTGV2ZWxGcm9tRW52KGtleSwgZW52aXJvbm1lbnQsIHZhbHVlcykge1xuICAgIHZhciB2YWx1ZSA9IHZhbHVlc1trZXldO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhciB0aGVMZXZlbCA9IGxvZ0xldmVsTWFwW3ZhbHVlLnRvVXBwZXJDYXNlKCldO1xuICAgICAgICBpZiAodGhlTGV2ZWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgZW52aXJvbm1lbnRba2V5XSA9IHRoZUxldmVsO1xuICAgICAgICB9XG4gICAgfVxufVxuLyoqXG4gKiBQYXJzZXMgZW52aXJvbm1lbnQgdmFsdWVzXG4gKiBAcGFyYW0gdmFsdWVzXG4gKi9cbmZ1bmN0aW9uIHBhcnNlRW52aXJvbm1lbnQodmFsdWVzKSB7XG4gICAgdmFyIGVudmlyb25tZW50ID0ge307XG4gICAgZm9yICh2YXIgZW52IGluIERFRkFVTFRfRU5WSVJPTk1FTlQpIHtcbiAgICAgICAgdmFyIGtleSA9IGVudjtcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ09URUxfTE9HX0xFVkVMJzpcbiAgICAgICAgICAgICAgICBzZXRMb2dMZXZlbEZyb21FbnYoa2V5LCBlbnZpcm9ubWVudCwgdmFsdWVzKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaWYgKGlzRW52VmFyQUJvb2xlYW4oa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJzZUJvb2xlYW4oa2V5LCBlbnZpcm9ubWVudCwgdmFsdWVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNFbnZWYXJBTnVtYmVyKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VOdW1iZXIoa2V5LCBlbnZpcm9ubWVudCwgdmFsdWVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNFbnZWYXJBTGlzdChrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlU3RyaW5nTGlzdChrZXksIGVudmlyb25tZW50LCB2YWx1ZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gdmFsdWVzW2tleV07XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudFtrZXldID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZW52aXJvbm1lbnQ7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIEdldHMgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlc1xuICovXG5mdW5jdGlvbiBnZXRFbnYoKSB7XG4gICAgdmFyIGdsb2JhbEVudiA9IHBhcnNlRW52aXJvbm1lbnQoX2dsb2JhbFRoaXMpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX0VOVklST05NRU5ULCBnbG9iYWxFbnYpO1xufVxuZnVuY3Rpb24gZ2V0RW52V2l0aG91dERlZmF1bHRzKCkge1xuICAgIHJldHVybiBwYXJzZUVudmlyb25tZW50KF9nbG9iYWxUaGlzKTtcbn1cblxuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vIHRoaXMgaXMgYXV0b2dlbmVyYXRlZCBmaWxlLCBzZWUgc2NyaXB0cy92ZXJzaW9uLXVwZGF0ZS5qc1xudmFyIFZFUlNJT04gPSAnMS4zMC4wJztcblxuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRE8gTk9UIEVESVQsIHRoaXMgaXMgYW4gQXV0by1nZW5lcmF0ZWQgZmlsZSBmcm9tIHNjcmlwdHMvc2VtY29udi90ZW1wbGF0ZXMvL3RlbXBsYXRlcy9TZW1hbnRpY0F0dHJpYnV0ZXMudHMuajJcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDb25zdGFudCB2YWx1ZXMgZm9yIFNlbWFudGljUmVzb3VyY2VBdHRyaWJ1dGVzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRlbXBvcmFyeSBsb2NhbCBjb25zdGFudHMgdG8gYXNzaWduIHRvIHRoZSBpbmRpdmlkdWFsIGV4cG9ydHMgYW5kIHRoZSBuYW1lc3BhY2VkIHZlcnNpb25cbi8vIFJlcXVpcmVkIHRvIGF2b2lkIHRoZSBuYW1lc3BhY2UgZXhwb3J0cyB1c2luZyB0aGUgdW5taW5pZmlhYmxlIGV4cG9ydCBuYW1lcyBmb3Igc29tZSBwYWNrYWdlIHR5cGVzXG52YXIgVE1QX0NMT1VEX1BST1ZJREVSID0gJ2Nsb3VkLnByb3ZpZGVyJztcbnZhciBUTVBfQ0xPVURfQUNDT1VOVF9JRCA9ICdjbG91ZC5hY2NvdW50LmlkJztcbnZhciBUTVBfQ0xPVURfUkVHSU9OID0gJ2Nsb3VkLnJlZ2lvbic7XG52YXIgVE1QX0NMT1VEX0FWQUlMQUJJTElUWV9aT05FID0gJ2Nsb3VkLmF2YWlsYWJpbGl0eV96b25lJztcbnZhciBUTVBfQ0xPVURfUExBVEZPUk0gPSAnY2xvdWQucGxhdGZvcm0nO1xudmFyIFRNUF9BV1NfRUNTX0NPTlRBSU5FUl9BUk4gPSAnYXdzLmVjcy5jb250YWluZXIuYXJuJztcbnZhciBUTVBfQVdTX0VDU19DTFVTVEVSX0FSTiA9ICdhd3MuZWNzLmNsdXN0ZXIuYXJuJztcbnZhciBUTVBfQVdTX0VDU19MQVVOQ0hUWVBFID0gJ2F3cy5lY3MubGF1bmNodHlwZSc7XG52YXIgVE1QX0FXU19FQ1NfVEFTS19BUk4gPSAnYXdzLmVjcy50YXNrLmFybic7XG52YXIgVE1QX0FXU19FQ1NfVEFTS19GQU1JTFkgPSAnYXdzLmVjcy50YXNrLmZhbWlseSc7XG52YXIgVE1QX0FXU19FQ1NfVEFTS19SRVZJU0lPTiA9ICdhd3MuZWNzLnRhc2sucmV2aXNpb24nO1xudmFyIFRNUF9BV1NfRUtTX0NMVVNURVJfQVJOID0gJ2F3cy5la3MuY2x1c3Rlci5hcm4nO1xudmFyIFRNUF9BV1NfTE9HX0dST1VQX05BTUVTID0gJ2F3cy5sb2cuZ3JvdXAubmFtZXMnO1xudmFyIFRNUF9BV1NfTE9HX0dST1VQX0FSTlMgPSAnYXdzLmxvZy5ncm91cC5hcm5zJztcbnZhciBUTVBfQVdTX0xPR19TVFJFQU1fTkFNRVMgPSAnYXdzLmxvZy5zdHJlYW0ubmFtZXMnO1xudmFyIFRNUF9BV1NfTE9HX1NUUkVBTV9BUk5TID0gJ2F3cy5sb2cuc3RyZWFtLmFybnMnO1xudmFyIFRNUF9DT05UQUlORVJfTkFNRSA9ICdjb250YWluZXIubmFtZSc7XG52YXIgVE1QX0NPTlRBSU5FUl9JRCA9ICdjb250YWluZXIuaWQnO1xudmFyIFRNUF9DT05UQUlORVJfUlVOVElNRSA9ICdjb250YWluZXIucnVudGltZSc7XG52YXIgVE1QX0NPTlRBSU5FUl9JTUFHRV9OQU1FID0gJ2NvbnRhaW5lci5pbWFnZS5uYW1lJztcbnZhciBUTVBfQ09OVEFJTkVSX0lNQUdFX1RBRyA9ICdjb250YWluZXIuaW1hZ2UudGFnJztcbnZhciBUTVBfREVQTE9ZTUVOVF9FTlZJUk9OTUVOVCA9ICdkZXBsb3ltZW50LmVudmlyb25tZW50JztcbnZhciBUTVBfREVWSUNFX0lEID0gJ2RldmljZS5pZCc7XG52YXIgVE1QX0RFVklDRV9NT0RFTF9JREVOVElGSUVSID0gJ2RldmljZS5tb2RlbC5pZGVudGlmaWVyJztcbnZhciBUTVBfREVWSUNFX01PREVMX05BTUUgPSAnZGV2aWNlLm1vZGVsLm5hbWUnO1xudmFyIFRNUF9GQUFTX05BTUUgPSAnZmFhcy5uYW1lJztcbnZhciBUTVBfRkFBU19JRCA9ICdmYWFzLmlkJztcbnZhciBUTVBfRkFBU19WRVJTSU9OID0gJ2ZhYXMudmVyc2lvbic7XG52YXIgVE1QX0ZBQVNfSU5TVEFOQ0UgPSAnZmFhcy5pbnN0YW5jZSc7XG52YXIgVE1QX0ZBQVNfTUFYX01FTU9SWSA9ICdmYWFzLm1heF9tZW1vcnknO1xudmFyIFRNUF9IT1NUX0lEID0gJ2hvc3QuaWQnO1xudmFyIFRNUF9IT1NUX05BTUUgPSAnaG9zdC5uYW1lJztcbnZhciBUTVBfSE9TVF9UWVBFID0gJ2hvc3QudHlwZSc7XG52YXIgVE1QX0hPU1RfQVJDSCA9ICdob3N0LmFyY2gnO1xudmFyIFRNUF9IT1NUX0lNQUdFX05BTUUgPSAnaG9zdC5pbWFnZS5uYW1lJztcbnZhciBUTVBfSE9TVF9JTUFHRV9JRCA9ICdob3N0LmltYWdlLmlkJztcbnZhciBUTVBfSE9TVF9JTUFHRV9WRVJTSU9OID0gJ2hvc3QuaW1hZ2UudmVyc2lvbic7XG52YXIgVE1QX0s4U19DTFVTVEVSX05BTUUgPSAnazhzLmNsdXN0ZXIubmFtZSc7XG52YXIgVE1QX0s4U19OT0RFX05BTUUgPSAnazhzLm5vZGUubmFtZSc7XG52YXIgVE1QX0s4U19OT0RFX1VJRCA9ICdrOHMubm9kZS51aWQnO1xudmFyIFRNUF9LOFNfTkFNRVNQQUNFX05BTUUgPSAnazhzLm5hbWVzcGFjZS5uYW1lJztcbnZhciBUTVBfSzhTX1BPRF9VSUQgPSAnazhzLnBvZC51aWQnO1xudmFyIFRNUF9LOFNfUE9EX05BTUUgPSAnazhzLnBvZC5uYW1lJztcbnZhciBUTVBfSzhTX0NPTlRBSU5FUl9OQU1FID0gJ2s4cy5jb250YWluZXIubmFtZSc7XG52YXIgVE1QX0s4U19SRVBMSUNBU0VUX1VJRCA9ICdrOHMucmVwbGljYXNldC51aWQnO1xudmFyIFRNUF9LOFNfUkVQTElDQVNFVF9OQU1FID0gJ2s4cy5yZXBsaWNhc2V0Lm5hbWUnO1xudmFyIFRNUF9LOFNfREVQTE9ZTUVOVF9VSUQgPSAnazhzLmRlcGxveW1lbnQudWlkJztcbnZhciBUTVBfSzhTX0RFUExPWU1FTlRfTkFNRSA9ICdrOHMuZGVwbG95bWVudC5uYW1lJztcbnZhciBUTVBfSzhTX1NUQVRFRlVMU0VUX1VJRCA9ICdrOHMuc3RhdGVmdWxzZXQudWlkJztcbnZhciBUTVBfSzhTX1NUQVRFRlVMU0VUX05BTUUgPSAnazhzLnN0YXRlZnVsc2V0Lm5hbWUnO1xudmFyIFRNUF9LOFNfREFFTU9OU0VUX1VJRCA9ICdrOHMuZGFlbW9uc2V0LnVpZCc7XG52YXIgVE1QX0s4U19EQUVNT05TRVRfTkFNRSA9ICdrOHMuZGFlbW9uc2V0Lm5hbWUnO1xudmFyIFRNUF9LOFNfSk9CX1VJRCA9ICdrOHMuam9iLnVpZCc7XG52YXIgVE1QX0s4U19KT0JfTkFNRSA9ICdrOHMuam9iLm5hbWUnO1xudmFyIFRNUF9LOFNfQ1JPTkpPQl9VSUQgPSAnazhzLmNyb25qb2IudWlkJztcbnZhciBUTVBfSzhTX0NST05KT0JfTkFNRSA9ICdrOHMuY3JvbmpvYi5uYW1lJztcbnZhciBUTVBfT1NfVFlQRSA9ICdvcy50eXBlJztcbnZhciBUTVBfT1NfREVTQ1JJUFRJT04gPSAnb3MuZGVzY3JpcHRpb24nO1xudmFyIFRNUF9PU19OQU1FID0gJ29zLm5hbWUnO1xudmFyIFRNUF9PU19WRVJTSU9OID0gJ29zLnZlcnNpb24nO1xudmFyIFRNUF9QUk9DRVNTX1BJRCA9ICdwcm9jZXNzLnBpZCc7XG52YXIgVE1QX1BST0NFU1NfRVhFQ1VUQUJMRV9OQU1FID0gJ3Byb2Nlc3MuZXhlY3V0YWJsZS5uYW1lJztcbnZhciBUTVBfUFJPQ0VTU19FWEVDVVRBQkxFX1BBVEggPSAncHJvY2Vzcy5leGVjdXRhYmxlLnBhdGgnO1xudmFyIFRNUF9QUk9DRVNTX0NPTU1BTkQgPSAncHJvY2Vzcy5jb21tYW5kJztcbnZhciBUTVBfUFJPQ0VTU19DT01NQU5EX0xJTkUgPSAncHJvY2Vzcy5jb21tYW5kX2xpbmUnO1xudmFyIFRNUF9QUk9DRVNTX0NPTU1BTkRfQVJHUyA9ICdwcm9jZXNzLmNvbW1hbmRfYXJncyc7XG52YXIgVE1QX1BST0NFU1NfT1dORVIgPSAncHJvY2Vzcy5vd25lcic7XG52YXIgVE1QX1BST0NFU1NfUlVOVElNRV9OQU1FID0gJ3Byb2Nlc3MucnVudGltZS5uYW1lJztcbnZhciBUTVBfUFJPQ0VTU19SVU5USU1FX1ZFUlNJT04gPSAncHJvY2Vzcy5ydW50aW1lLnZlcnNpb24nO1xudmFyIFRNUF9QUk9DRVNTX1JVTlRJTUVfREVTQ1JJUFRJT04gPSAncHJvY2Vzcy5ydW50aW1lLmRlc2NyaXB0aW9uJztcbnZhciBUTVBfU0VSVklDRV9OQU1FID0gJ3NlcnZpY2UubmFtZSc7XG52YXIgVE1QX1NFUlZJQ0VfTkFNRVNQQUNFID0gJ3NlcnZpY2UubmFtZXNwYWNlJztcbnZhciBUTVBfU0VSVklDRV9JTlNUQU5DRV9JRCA9ICdzZXJ2aWNlLmluc3RhbmNlLmlkJztcbnZhciBUTVBfU0VSVklDRV9WRVJTSU9OID0gJ3NlcnZpY2UudmVyc2lvbic7XG52YXIgVE1QX1RFTEVNRVRSWV9TREtfTkFNRSA9ICd0ZWxlbWV0cnkuc2RrLm5hbWUnO1xudmFyIFRNUF9URUxFTUVUUllfU0RLX0xBTkdVQUdFID0gJ3RlbGVtZXRyeS5zZGsubGFuZ3VhZ2UnO1xudmFyIFRNUF9URUxFTUVUUllfU0RLX1ZFUlNJT04gPSAndGVsZW1ldHJ5LnNkay52ZXJzaW9uJztcbnZhciBUTVBfVEVMRU1FVFJZX0FVVE9fVkVSU0lPTiA9ICd0ZWxlbWV0cnkuYXV0by52ZXJzaW9uJztcbnZhciBUTVBfV0VCRU5HSU5FX05BTUUgPSAnd2ViZW5naW5lLm5hbWUnO1xudmFyIFRNUF9XRUJFTkdJTkVfVkVSU0lPTiA9ICd3ZWJlbmdpbmUudmVyc2lvbic7XG52YXIgVE1QX1dFQkVOR0lORV9ERVNDUklQVElPTiA9ICd3ZWJlbmdpbmUuZGVzY3JpcHRpb24nO1xuLyoqXG4gKiBOYW1lIG9mIHRoZSBjbG91ZCBwcm92aWRlci5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9DTE9VRF9QUk9WSURFUiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQ0xPVURfUFJPVklERVIgPSBUTVBfQ0xPVURfUFJPVklERVI7XG4vKipcbiAqIFRoZSBjbG91ZCBhY2NvdW50IElEIHRoZSByZXNvdXJjZSBpcyBhc3NpZ25lZCB0by5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9DTE9VRF9BQ0NPVU5UX0lEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19DTE9VRF9BQ0NPVU5UX0lEID0gVE1QX0NMT1VEX0FDQ09VTlRfSUQ7XG4vKipcbiAqIFRoZSBnZW9ncmFwaGljYWwgcmVnaW9uIHRoZSByZXNvdXJjZSBpcyBydW5uaW5nLiBSZWZlciB0byB5b3VyIHByb3ZpZGVyJiMzOTtzIGRvY3MgdG8gc2VlIHRoZSBhdmFpbGFibGUgcmVnaW9ucywgZm9yIGV4YW1wbGUgW0FsaWJhYmEgQ2xvdWQgcmVnaW9uc10oaHR0cHM6Ly93d3cuYWxpYmFiYWNsb3VkLmNvbS9oZWxwL2RvYy1kZXRhaWwvNDA2NTQuaHRtKSwgW0FXUyByZWdpb25zXShodHRwczovL2F3cy5hbWF6b24uY29tL2Fib3V0LWF3cy9nbG9iYWwtaW5mcmFzdHJ1Y3R1cmUvcmVnaW9uc19hei8pLCBbQXp1cmUgcmVnaW9uc10oaHR0cHM6Ly9henVyZS5taWNyb3NvZnQuY29tL2VuLXVzL2dsb2JhbC1pbmZyYXN0cnVjdHVyZS9nZW9ncmFwaGllcy8pLCBvciBbR29vZ2xlIENsb3VkIHJlZ2lvbnNdKGh0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9hYm91dC9sb2NhdGlvbnMpLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0NMT1VEX1JFR0lPTiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQ0xPVURfUkVHSU9OID0gVE1QX0NMT1VEX1JFR0lPTjtcbi8qKlxuICogQ2xvdWQgcmVnaW9ucyBvZnRlbiBoYXZlIG11bHRpcGxlLCBpc29sYXRlZCBsb2NhdGlvbnMga25vd24gYXMgem9uZXMgdG8gaW5jcmVhc2UgYXZhaWxhYmlsaXR5LiBBdmFpbGFiaWxpdHkgem9uZSByZXByZXNlbnRzIHRoZSB6b25lIHdoZXJlIHRoZSByZXNvdXJjZSBpcyBydW5uaW5nLlxuICpcbiAqIE5vdGU6IEF2YWlsYWJpbGl0eSB6b25lcyBhcmUgY2FsbGVkICYjMzQ7em9uZXMmIzM0OyBvbiBBbGliYWJhIENsb3VkIGFuZCBHb29nbGUgQ2xvdWQuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfQ0xPVURfQVZBSUxBQklMSVRZX1pPTkUgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0NMT1VEX0FWQUlMQUJJTElUWV9aT05FID0gVE1QX0NMT1VEX0FWQUlMQUJJTElUWV9aT05FO1xuLyoqXG4gKiBUaGUgY2xvdWQgcGxhdGZvcm0gaW4gdXNlLlxuICpcbiAqIE5vdGU6IFRoZSBwcmVmaXggb2YgdGhlIHNlcnZpY2UgU0hPVUxEIG1hdGNoIHRoZSBvbmUgc3BlY2lmaWVkIGluIGBjbG91ZC5wcm92aWRlcmAuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfQ0xPVURfUExBVEZPUk0gaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0NMT1VEX1BMQVRGT1JNID0gVE1QX0NMT1VEX1BMQVRGT1JNO1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgYW4gW0VDUyBjb250YWluZXIgaW5zdGFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1MvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0VDU19pbnN0YW5jZXMuaHRtbCkuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfQVdTX0VDU19DT05UQUlORVJfQVJOIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19BV1NfRUNTX0NPTlRBSU5FUl9BUk4gPSBUTVBfQVdTX0VDU19DT05UQUlORVJfQVJOO1xuLyoqXG4gKiBUaGUgQVJOIG9mIGFuIFtFQ1MgY2x1c3Rlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvY2x1c3RlcnMuaHRtbCkuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfQVdTX0VDU19DTFVTVEVSX0FSTiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQVdTX0VDU19DTFVTVEVSX0FSTiA9IFRNUF9BV1NfRUNTX0NMVVNURVJfQVJOO1xuLyoqXG4gKiBUaGUgW2xhdW5jaCB0eXBlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9sYXVuY2hfdHlwZXMuaHRtbCkgZm9yIGFuIEVDUyB0YXNrLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0FXU19FQ1NfTEFVTkNIVFlQRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQVdTX0VDU19MQVVOQ0hUWVBFID0gVE1QX0FXU19FQ1NfTEFVTkNIVFlQRTtcbi8qKlxuICogVGhlIEFSTiBvZiBhbiBbRUNTIHRhc2sgZGVmaW5pdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdGFza19kZWZpbml0aW9ucy5odG1sKS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9BV1NfRUNTX1RBU0tfQVJOIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19BV1NfRUNTX1RBU0tfQVJOID0gVE1QX0FXU19FQ1NfVEFTS19BUk47XG4vKipcbiAqIFRoZSB0YXNrIGRlZmluaXRpb24gZmFtaWx5IHRoaXMgdGFzayBkZWZpbml0aW9uIGlzIGEgbWVtYmVyIG9mLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0FXU19FQ1NfVEFTS19GQU1JTFkgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0FXU19FQ1NfVEFTS19GQU1JTFkgPSBUTVBfQVdTX0VDU19UQVNLX0ZBTUlMWTtcbi8qKlxuICogVGhlIHJldmlzaW9uIGZvciB0aGlzIHRhc2sgZGVmaW5pdGlvbi5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9BV1NfRUNTX1RBU0tfUkVWSVNJT04gaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0FXU19FQ1NfVEFTS19SRVZJU0lPTiA9IFRNUF9BV1NfRUNTX1RBU0tfUkVWSVNJT047XG4vKipcbiAqIFRoZSBBUk4gb2YgYW4gRUtTIGNsdXN0ZXIuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfQVdTX0VLU19DTFVTVEVSX0FSTiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQVdTX0VLU19DTFVTVEVSX0FSTiA9IFRNUF9BV1NfRUtTX0NMVVNURVJfQVJOO1xuLyoqXG4gKiBUaGUgbmFtZShzKSBvZiB0aGUgQVdTIGxvZyBncm91cChzKSBhbiBhcHBsaWNhdGlvbiBpcyB3cml0aW5nIHRvLlxuICpcbiAqIE5vdGU6IE11bHRpcGxlIGxvZyBncm91cHMgbXVzdCBiZSBzdXBwb3J0ZWQgZm9yIGNhc2VzIGxpa2UgbXVsdGktY29udGFpbmVyIGFwcGxpY2F0aW9ucywgd2hlcmUgYSBzaW5nbGUgYXBwbGljYXRpb24gaGFzIHNpZGVjYXIgY29udGFpbmVycywgYW5kIGVhY2ggd3JpdGUgdG8gdGhlaXIgb3duIGxvZyBncm91cC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9BV1NfTE9HX0dST1VQX05BTUVTIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19BV1NfTE9HX0dST1VQX05BTUVTID0gVE1QX0FXU19MT0dfR1JPVVBfTkFNRVM7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZShzKSAoQVJOKSBvZiB0aGUgQVdTIGxvZyBncm91cChzKS5cbiAqXG4gKiBOb3RlOiBTZWUgdGhlIFtsb2cgZ3JvdXAgQVJOIGZvcm1hdCBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbG9ncy9pYW0tYWNjZXNzLWNvbnRyb2wtb3ZlcnZpZXctY3dsLmh0bWwjQ1dMX0FSTl9Gb3JtYXQpLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0FXU19MT0dfR1JPVVBfQVJOUyBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQVdTX0xPR19HUk9VUF9BUk5TID0gVE1QX0FXU19MT0dfR1JPVVBfQVJOUztcbi8qKlxuICogVGhlIG5hbWUocykgb2YgdGhlIEFXUyBsb2cgc3RyZWFtKHMpIGFuIGFwcGxpY2F0aW9uIGlzIHdyaXRpbmcgdG8uXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfQVdTX0xPR19TVFJFQU1fTkFNRVMgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0FXU19MT0dfU1RSRUFNX05BTUVTID0gVE1QX0FXU19MT0dfU1RSRUFNX05BTUVTO1xuLyoqXG4gKiBUaGUgQVJOKHMpIG9mIHRoZSBBV1MgbG9nIHN0cmVhbShzKS5cbiAqXG4gKiBOb3RlOiBTZWUgdGhlIFtsb2cgc3RyZWFtIEFSTiBmb3JtYXQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2xvZ3MvaWFtLWFjY2Vzcy1jb250cm9sLW92ZXJ2aWV3LWN3bC5odG1sI0NXTF9BUk5fRm9ybWF0KS4gT25lIGxvZyBncm91cCBjYW4gY29udGFpbiBzZXZlcmFsIGxvZyBzdHJlYW1zLCBzbyB0aGVzZSBBUk5zIG5lY2Vzc2FyaWx5IGlkZW50aWZ5IGJvdGggYSBsb2cgZ3JvdXAgYW5kIGEgbG9nIHN0cmVhbS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9BV1NfTE9HX1NUUkVBTV9BUk5TIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19BV1NfTE9HX1NUUkVBTV9BUk5TID0gVE1QX0FXU19MT0dfU1RSRUFNX0FSTlM7XG4vKipcbiAqIENvbnRhaW5lciBuYW1lLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0NPTlRBSU5FUl9OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19DT05UQUlORVJfTkFNRSA9IFRNUF9DT05UQUlORVJfTkFNRTtcbi8qKlxuICogQ29udGFpbmVyIElELiBVc3VhbGx5IGEgVVVJRCwgYXMgZm9yIGV4YW1wbGUgdXNlZCB0byBbaWRlbnRpZnkgRG9ja2VyIGNvbnRhaW5lcnNdKGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvcnVuLyNjb250YWluZXItaWRlbnRpZmljYXRpb24pLiBUaGUgVVVJRCBtaWdodCBiZSBhYmJyZXZpYXRlZC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9DT05UQUlORVJfSUQgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0NPTlRBSU5FUl9JRCA9IFRNUF9DT05UQUlORVJfSUQ7XG4vKipcbiAqIFRoZSBjb250YWluZXIgcnVudGltZSBtYW5hZ2luZyB0aGlzIGNvbnRhaW5lci5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9DT05UQUlORVJfUlVOVElNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQ09OVEFJTkVSX1JVTlRJTUUgPSBUTVBfQ09OVEFJTkVSX1JVTlRJTUU7XG4vKipcbiAqIE5hbWUgb2YgdGhlIGltYWdlIHRoZSBjb250YWluZXIgd2FzIGJ1aWx0IG9uLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0NPTlRBSU5FUl9JTUFHRV9OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19DT05UQUlORVJfSU1BR0VfTkFNRSA9IFRNUF9DT05UQUlORVJfSU1BR0VfTkFNRTtcbi8qKlxuICogQ29udGFpbmVyIGltYWdlIHRhZy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9DT05UQUlORVJfSU1BR0VfVEFHUyBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQ09OVEFJTkVSX0lNQUdFX1RBRyA9IFRNUF9DT05UQUlORVJfSU1BR0VfVEFHO1xuLyoqXG4gKiBOYW1lIG9mIHRoZSBbZGVwbG95bWVudCBlbnZpcm9ubWVudF0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRGVwbG95bWVudF9lbnZpcm9ubWVudCkgKGFrYSBkZXBsb3ltZW50IHRpZXIpLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0RFUExPWU1FTlRfRU5WSVJPTk1FTlQgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0RFUExPWU1FTlRfRU5WSVJPTk1FTlQgPSBUTVBfREVQTE9ZTUVOVF9FTlZJUk9OTUVOVDtcbi8qKlxuICogQSB1bmlxdWUgaWRlbnRpZmllciByZXByZXNlbnRpbmcgdGhlIGRldmljZS5cbiAqXG4gKiBOb3RlOiBUaGUgZGV2aWNlIGlkZW50aWZpZXIgTVVTVCBvbmx5IGJlIGRlZmluZWQgdXNpbmcgdGhlIHZhbHVlcyBvdXRsaW5lZCBiZWxvdy4gVGhpcyB2YWx1ZSBpcyBub3QgYW4gYWR2ZXJ0aXNpbmcgaWRlbnRpZmllciBhbmQgTVVTVCBOT1QgYmUgdXNlZCBhcyBzdWNoLiBPbiBpT1MgKFN3aWZ0IG9yIE9iamVjdGl2ZS1DKSwgdGhpcyB2YWx1ZSBNVVNUIGJlIGVxdWFsIHRvIHRoZSBbdmVuZG9yIGlkZW50aWZpZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3Vpa2l0L3VpZGV2aWNlLzE2MjAwNTktaWRlbnRpZmllcmZvcnZlbmRvcikuIE9uIEFuZHJvaWQgKEphdmEgb3IgS290bGluKSwgdGhpcyB2YWx1ZSBNVVNUIGJlIGVxdWFsIHRvIHRoZSBGaXJlYmFzZSBJbnN0YWxsYXRpb24gSUQgb3IgYSBnbG9iYWxseSB1bmlxdWUgVVVJRCB3aGljaCBpcyBwZXJzaXN0ZWQgYWNyb3NzIHNlc3Npb25zIGluIHlvdXIgYXBwbGljYXRpb24uIE1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS90cmFpbmluZy9hcnRpY2xlcy91c2VyLWRhdGEtaWRzKSBvbiBiZXN0IHByYWN0aWNlcyBhbmQgZXhhY3QgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gQ2F1dGlvbiBzaG91bGQgYmUgdGFrZW4gd2hlbiBzdG9yaW5nIHBlcnNvbmFsIGRhdGEgb3IgYW55dGhpbmcgd2hpY2ggY2FuIGlkZW50aWZ5IGEgdXNlci4gR0RQUiBhbmQgZGF0YSBwcm90ZWN0aW9uIGxhd3MgbWF5IGFwcGx5LCBlbnN1cmUgeW91IGRvIHlvdXIgb3duIGR1ZSBkaWxpZ2VuY2UuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfREVWSUNFX0lEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19ERVZJQ0VfSUQgPSBUTVBfREVWSUNFX0lEO1xuLyoqXG4gKiBUaGUgbW9kZWwgaWRlbnRpZmllciBmb3IgdGhlIGRldmljZS5cbiAqXG4gKiBOb3RlOiBJdCYjMzk7cyByZWNvbW1lbmRlZCB0aGlzIHZhbHVlIHJlcHJlc2VudHMgYSBtYWNoaW5lIHJlYWRhYmxlIHZlcnNpb24gb2YgdGhlIG1vZGVsIGlkZW50aWZpZXIgcmF0aGVyIHRoYW4gdGhlIG1hcmtldCBvciBjb25zdW1lci1mcmllbmRseSBuYW1lIG9mIHRoZSBkZXZpY2UuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfREVWSUNFX01PREVMX0lERU5USUZJRVIgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0RFVklDRV9NT0RFTF9JREVOVElGSUVSID0gVE1QX0RFVklDRV9NT0RFTF9JREVOVElGSUVSO1xuLyoqXG4gKiBUaGUgbWFya2V0aW5nIG5hbWUgZm9yIHRoZSBkZXZpY2UgbW9kZWwuXG4gKlxuICogTm90ZTogSXQmIzM5O3MgcmVjb21tZW5kZWQgdGhpcyB2YWx1ZSByZXByZXNlbnRzIGEgaHVtYW4gcmVhZGFibGUgdmVyc2lvbiBvZiB0aGUgZGV2aWNlIG1vZGVsIHJhdGhlciB0aGFuIGEgbWFjaGluZSByZWFkYWJsZSBhbHRlcm5hdGl2ZS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9ERVZJQ0VfTU9ERUxfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfREVWSUNFX01PREVMX05BTUUgPSBUTVBfREVWSUNFX01PREVMX05BTUU7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBzaW5nbGUgZnVuY3Rpb24gdGhhdCB0aGlzIHJ1bnRpbWUgaW5zdGFuY2UgZXhlY3V0ZXMuXG4gKlxuICogTm90ZTogVGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gYXMgY29uZmlndXJlZC9kZXBsb3llZCBvbiB0aGUgRmFhUyBwbGF0Zm9ybSBhbmQgaXMgdXN1YWxseSBkaWZmZXJlbnQgZnJvbSB0aGUgbmFtZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gKHdoaWNoIG1heSBiZSBzdG9yZWQgaW4gdGhlIFtgY29kZS5uYW1lc3BhY2VgL2Bjb2RlLmZ1bmN0aW9uYF0oLi4vLi4vdHJhY2Uvc2VtYW50aWNfY29udmVudGlvbnMvc3Bhbi1nZW5lcmFsLm1kI3NvdXJjZS1jb2RlLWF0dHJpYnV0ZXMpIHNwYW4gYXR0cmlidXRlcykuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfRkFBU19OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19GQUFTX05BTUUgPSBUTVBfRkFBU19OQU1FO1xuLyoqXG4qIFRoZSB1bmlxdWUgSUQgb2YgdGhlIHNpbmdsZSBmdW5jdGlvbiB0aGF0IHRoaXMgcnVudGltZSBpbnN0YW5jZSBleGVjdXRlcy5cbipcbiogTm90ZTogRGVwZW5kaW5nIG9uIHRoZSBjbG91ZCBwcm92aWRlciwgdXNlOlxuXG4qICoqQVdTIExhbWJkYToqKiBUaGUgZnVuY3Rpb24gW0FSTl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dlbmVyYWwvbGF0ZXN0L2dyL2F3cy1hcm5zLWFuZC1uYW1lc3BhY2VzLmh0bWwpLlxuVGFrZSBjYXJlIG5vdCB0byB1c2UgdGhlICYjMzQ7aW52b2tlZCBBUk4mIzM0OyBkaXJlY3RseSBidXQgcmVwbGFjZSBhbnlcblthbGlhcyBzdWZmaXhdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tYWxpYXNlcy5odG1sKSB3aXRoIHRoZSByZXNvbHZlZCBmdW5jdGlvbiB2ZXJzaW9uLCBhcyB0aGUgc2FtZSBydW50aW1lIGluc3RhbmNlIG1heSBiZSBpbnZva2FibGUgd2l0aCBtdWx0aXBsZVxuZGlmZmVyZW50IGFsaWFzZXMuXG4qICoqR0NQOioqIFRoZSBbVVJJIG9mIHRoZSByZXNvdXJjZV0oaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL2lhbS9kb2NzL2Z1bGwtcmVzb3VyY2UtbmFtZXMpXG4qICoqQXp1cmU6KiogVGhlIFtGdWxseSBRdWFsaWZpZWQgUmVzb3VyY2UgSURdKGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3Jlc3QvYXBpL3Jlc291cmNlcy9yZXNvdXJjZXMvZ2V0LWJ5LWlkKS5cblxuT24gc29tZSBwcm92aWRlcnMsIGl0IG1heSBub3QgYmUgcG9zc2libGUgdG8gZGV0ZXJtaW5lIHRoZSBmdWxsIElEIGF0IHN0YXJ0dXAsXG53aGljaCBpcyB3aHkgdGhpcyBmaWVsZCBjYW5ub3QgYmUgbWFkZSByZXF1aXJlZC4gRm9yIGV4YW1wbGUsIG9uIEFXUyB0aGUgYWNjb3VudCBJRFxucGFydCBvZiB0aGUgQVJOIGlzIG5vdCBhdmFpbGFibGUgd2l0aG91dCBjYWxsaW5nIGFub3RoZXIgQVdTIEFQSVxud2hpY2ggbWF5IGJlIGRlZW1lZCB0b28gc2xvdyBmb3IgYSBzaG9ydC1ydW5uaW5nIGxhbWJkYSBmdW5jdGlvbi5cbkFzIGFuIGFsdGVybmF0aXZlLCBjb25zaWRlciBzZXR0aW5nIGBmYWFzLmlkYCBhcyBhIHNwYW4gYXR0cmlidXRlIGluc3RlYWQuXG4qXG4qIEBkZXByZWNhdGVkIFVzZSBBVFRSX0NMT1VEX1JFU09VUkNFX0lEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4qL1xudmFyIFNFTVJFU0FUVFJTX0ZBQVNfSUQgPSBUTVBfRkFBU19JRDtcbi8qKlxuKiBUaGUgaW1tdXRhYmxlIHZlcnNpb24gb2YgdGhlIGZ1bmN0aW9uIGJlaW5nIGV4ZWN1dGVkLlxuKlxuKiBOb3RlOiBEZXBlbmRpbmcgb24gdGhlIGNsb3VkIHByb3ZpZGVyIGFuZCBwbGF0Zm9ybSwgdXNlOlxuXG4qICoqQVdTIExhbWJkYToqKiBUaGUgW2Z1bmN0aW9uIHZlcnNpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tdmVyc2lvbnMuaHRtbClcbiAgKGFuIGludGVnZXIgcmVwcmVzZW50ZWQgYXMgYSBkZWNpbWFsIHN0cmluZykuXG4qICoqR29vZ2xlIENsb3VkIFJ1bjoqKiBUaGUgW3JldmlzaW9uXShodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vcnVuL2RvY3MvbWFuYWdpbmcvcmV2aXNpb25zKVxuICAoaS5lLiwgdGhlIGZ1bmN0aW9uIG5hbWUgcGx1cyB0aGUgcmV2aXNpb24gc3VmZml4KS5cbiogKipHb29nbGUgQ2xvdWQgRnVuY3Rpb25zOioqIFRoZSB2YWx1ZSBvZiB0aGVcbiAgW2BLX1JFVklTSU9OYCBlbnZpcm9ubWVudCB2YXJpYWJsZV0oaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL2Z1bmN0aW9ucy9kb2NzL2Vudi12YXIjcnVudGltZV9lbnZpcm9ubWVudF92YXJpYWJsZXNfc2V0X2F1dG9tYXRpY2FsbHkpLlxuKiAqKkF6dXJlIEZ1bmN0aW9uczoqKiBOb3QgYXBwbGljYWJsZS4gRG8gbm90IHNldCB0aGlzIGF0dHJpYnV0ZS5cbipcbiogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfRkFBU19WRVJTSU9OIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4qL1xudmFyIFNFTVJFU0FUVFJTX0ZBQVNfVkVSU0lPTiA9IFRNUF9GQUFTX1ZFUlNJT047XG4vKipcbiAqIFRoZSBleGVjdXRpb24gZW52aXJvbm1lbnQgSUQgYXMgYSBzdHJpbmcsIHRoYXQgd2lsbCBiZSBwb3RlbnRpYWxseSByZXVzZWQgZm9yIG90aGVyIGludm9jYXRpb25zIHRvIHRoZSBzYW1lIGZ1bmN0aW9uL2Z1bmN0aW9uIHZlcnNpb24uXG4gKlxuICogTm90ZTogKiAqKkFXUyBMYW1iZGE6KiogVXNlIHRoZSAoZnVsbCkgbG9nIHN0cmVhbSBuYW1lLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0ZBQVNfSU5TVEFOQ0UgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0ZBQVNfSU5TVEFOQ0UgPSBUTVBfRkFBU19JTlNUQU5DRTtcbi8qKlxuICogVGhlIGFtb3VudCBvZiBtZW1vcnkgYXZhaWxhYmxlIHRvIHRoZSBzZXJ2ZXJsZXNzIGZ1bmN0aW9uIGluIE1pQi5cbiAqXG4gKiBOb3RlOiBJdCYjMzk7cyByZWNvbW1lbmRlZCB0byBzZXQgdGhpcyBhdHRyaWJ1dGUgc2luY2UgZS5nLiB0b28gbGl0dGxlIG1lbW9yeSBjYW4gZWFzaWx5IHN0b3AgYSBKYXZhIEFXUyBMYW1iZGEgZnVuY3Rpb24gZnJvbSB3b3JraW5nIGNvcnJlY3RseS4gT24gQVdTIExhbWJkYSwgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGBBV1NfTEFNQkRBX0ZVTkNUSU9OX01FTU9SWV9TSVpFYCBwcm92aWRlcyB0aGlzIGluZm9ybWF0aW9uLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0ZBQVNfTUFYX01FTU9SWSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfRkFBU19NQVhfTUVNT1JZID0gVE1QX0ZBQVNfTUFYX01FTU9SWTtcbi8qKlxuICogVW5pcXVlIGhvc3QgSUQuIEZvciBDbG91ZCwgdGhpcyBtdXN0IGJlIHRoZSBpbnN0YW5jZV9pZCBhc3NpZ25lZCBieSB0aGUgY2xvdWQgcHJvdmlkZXIuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSE9TVF9JRCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSE9TVF9JRCA9IFRNUF9IT1NUX0lEO1xuLyoqXG4gKiBOYW1lIG9mIHRoZSBob3N0LiBPbiBVbml4IHN5c3RlbXMsIGl0IG1heSBjb250YWluIHdoYXQgdGhlIGhvc3RuYW1lIGNvbW1hbmQgcmV0dXJucywgb3IgdGhlIGZ1bGx5IHF1YWxpZmllZCBob3N0bmFtZSwgb3IgYW5vdGhlciBuYW1lIHNwZWNpZmllZCBieSB0aGUgdXNlci5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9IT1NUX05BTUUgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0hPU1RfTkFNRSA9IFRNUF9IT1NUX05BTUU7XG4vKipcbiAqIFR5cGUgb2YgaG9zdC4gRm9yIENsb3VkLCB0aGlzIG11c3QgYmUgdGhlIG1hY2hpbmUgdHlwZS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9IT1NUX1RZUEUgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0hPU1RfVFlQRSA9IFRNUF9IT1NUX1RZUEU7XG4vKipcbiAqIFRoZSBDUFUgYXJjaGl0ZWN0dXJlIHRoZSBob3N0IHN5c3RlbSBpcyBydW5uaW5nIG9uLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0hPU1RfQVJDSCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSE9TVF9BUkNIID0gVE1QX0hPU1RfQVJDSDtcbi8qKlxuICogTmFtZSBvZiB0aGUgVk0gaW1hZ2Ugb3IgT1MgaW5zdGFsbCB0aGUgaG9zdCB3YXMgaW5zdGFudGlhdGVkIGZyb20uXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSE9TVF9JTUFHRV9OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19IT1NUX0lNQUdFX05BTUUgPSBUTVBfSE9TVF9JTUFHRV9OQU1FO1xuLyoqXG4gKiBWTSBpbWFnZSBJRC4gRm9yIENsb3VkLCB0aGlzIHZhbHVlIGlzIGZyb20gdGhlIHByb3ZpZGVyLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0hPU1RfSU1BR0VfSUQgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0hPU1RfSU1BR0VfSUQgPSBUTVBfSE9TVF9JTUFHRV9JRDtcbi8qKlxuICogVGhlIHZlcnNpb24gc3RyaW5nIG9mIHRoZSBWTSBpbWFnZSBhcyBkZWZpbmVkIGluIFtWZXJzaW9uIEF0dHJpYnV0ZXNdKFJFQURNRS5tZCN2ZXJzaW9uLWF0dHJpYnV0ZXMpLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0hPU1RfSU1BR0VfVkVSU0lPTiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSE9TVF9JTUFHRV9WRVJTSU9OID0gVE1QX0hPU1RfSU1BR0VfVkVSU0lPTjtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGNsdXN0ZXIuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX0NMVVNURVJfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX0NMVVNURVJfTkFNRSA9IFRNUF9LOFNfQ0xVU1RFUl9OQU1FO1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgTm9kZS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9LOFNfTk9ERV9OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19LOFNfTk9ERV9OQU1FID0gVE1QX0s4U19OT0RFX05BTUU7XG4vKipcbiAqIFRoZSBVSUQgb2YgdGhlIE5vZGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX05PREVfVUlEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19LOFNfTk9ERV9VSUQgPSBUTVBfSzhTX05PREVfVUlEO1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgdGhlIHBvZCBpcyBydW5uaW5nIGluLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0s4U19OQU1FU1BBQ0VfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX05BTUVTUEFDRV9OQU1FID0gVE1QX0s4U19OQU1FU1BBQ0VfTkFNRTtcbi8qKlxuICogVGhlIFVJRCBvZiB0aGUgUG9kLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0s4U19QT0RfVUlEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19LOFNfUE9EX1VJRCA9IFRNUF9LOFNfUE9EX1VJRDtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIFBvZC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9LOFNfUE9EX05BTUUgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0s4U19QT0RfTkFNRSA9IFRNUF9LOFNfUE9EX05BTUU7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBDb250YWluZXIgaW4gYSBQb2QgdGVtcGxhdGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX0NPTlRBSU5FUl9OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19LOFNfQ09OVEFJTkVSX05BTUUgPSBUTVBfSzhTX0NPTlRBSU5FUl9OQU1FO1xuLyoqXG4gKiBUaGUgVUlEIG9mIHRoZSBSZXBsaWNhU2V0LlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0s4U19SRVBMSUNBU0VUX1VJRCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX1JFUExJQ0FTRVRfVUlEID0gVE1QX0s4U19SRVBMSUNBU0VUX1VJRDtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIFJlcGxpY2FTZXQuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX1JFUExJQ0FTRVRfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX1JFUExJQ0FTRVRfTkFNRSA9IFRNUF9LOFNfUkVQTElDQVNFVF9OQU1FO1xuLyoqXG4gKiBUaGUgVUlEIG9mIHRoZSBEZXBsb3ltZW50LlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0s4U19ERVBMT1lNRU5UX1VJRCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX0RFUExPWU1FTlRfVUlEID0gVE1QX0s4U19ERVBMT1lNRU5UX1VJRDtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIERlcGxveW1lbnQuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX0RFUExPWU1FTlRfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX0RFUExPWU1FTlRfTkFNRSA9IFRNUF9LOFNfREVQTE9ZTUVOVF9OQU1FO1xuLyoqXG4gKiBUaGUgVUlEIG9mIHRoZSBTdGF0ZWZ1bFNldC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9LOFNfU1RBVEVGVUxTRVRfVUlEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19LOFNfU1RBVEVGVUxTRVRfVUlEID0gVE1QX0s4U19TVEFURUZVTFNFVF9VSUQ7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBTdGF0ZWZ1bFNldC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9LOFNfU1RBVEVGVUxTRVRfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX1NUQVRFRlVMU0VUX05BTUUgPSBUTVBfSzhTX1NUQVRFRlVMU0VUX05BTUU7XG4vKipcbiAqIFRoZSBVSUQgb2YgdGhlIERhZW1vblNldC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9LOFNfREFFTU9OU0VUX1VJRCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX0RBRU1PTlNFVF9VSUQgPSBUTVBfSzhTX0RBRU1PTlNFVF9VSUQ7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBEYWVtb25TZXQuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX0RBRU1PTlNFVF9OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19LOFNfREFFTU9OU0VUX05BTUUgPSBUTVBfSzhTX0RBRU1PTlNFVF9OQU1FO1xuLyoqXG4gKiBUaGUgVUlEIG9mIHRoZSBKb2IuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX0pPQl9VSUQgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0s4U19KT0JfVUlEID0gVE1QX0s4U19KT0JfVUlEO1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgSm9iLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0s4U19KT0JfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX0pPQl9OQU1FID0gVE1QX0s4U19KT0JfTkFNRTtcbi8qKlxuICogVGhlIFVJRCBvZiB0aGUgQ3JvbkpvYi5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9LOFNfQ1JPTkpPQl9VSUQgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0s4U19DUk9OSk9CX1VJRCA9IFRNUF9LOFNfQ1JPTkpPQl9VSUQ7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBDcm9uSm9iLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0s4U19DUk9OSk9CX05BTUUgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0s4U19DUk9OSk9CX05BTUUgPSBUTVBfSzhTX0NST05KT0JfTkFNRTtcbi8qKlxuICogVGhlIG9wZXJhdGluZyBzeXN0ZW0gdHlwZS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9PU19UWVBFIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19PU19UWVBFID0gVE1QX09TX1RZUEU7XG4vKipcbiAqIEh1bWFuIHJlYWRhYmxlIChub3QgaW50ZW5kZWQgdG8gYmUgcGFyc2VkKSBPUyB2ZXJzaW9uIGluZm9ybWF0aW9uLCBsaWtlIGUuZy4gcmVwb3J0ZWQgYnkgYHZlcmAgb3IgYGxzYl9yZWxlYXNlIC1hYCBjb21tYW5kcy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9PU19ERVNDUklQVElPTiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfT1NfREVTQ1JJUFRJT04gPSBUTVBfT1NfREVTQ1JJUFRJT047XG4vKipcbiAqIEh1bWFuIHJlYWRhYmxlIG9wZXJhdGluZyBzeXN0ZW0gbmFtZS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9PU19OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19PU19OQU1FID0gVE1QX09TX05BTUU7XG4vKipcbiAqIFRoZSB2ZXJzaW9uIHN0cmluZyBvZiB0aGUgb3BlcmF0aW5nIHN5c3RlbSBhcyBkZWZpbmVkIGluIFtWZXJzaW9uIEF0dHJpYnV0ZXNdKC4uLy4uL3Jlc291cmNlL3NlbWFudGljX2NvbnZlbnRpb25zL1JFQURNRS5tZCN2ZXJzaW9uLWF0dHJpYnV0ZXMpLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX09TX1ZFUlNJT04gaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX09TX1ZFUlNJT04gPSBUTVBfT1NfVkVSU0lPTjtcbi8qKlxuICogUHJvY2VzcyBpZGVudGlmaWVyIChQSUQpLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX1BST0NFU1NfUElEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19QUk9DRVNTX1BJRCA9IFRNUF9QUk9DRVNTX1BJRDtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIHByb2Nlc3MgZXhlY3V0YWJsZS4gT24gTGludXggYmFzZWQgc3lzdGVtcywgY2FuIGJlIHNldCB0byB0aGUgYE5hbWVgIGluIGBwcm9jL1twaWRdL3N0YXR1c2AuIE9uIFdpbmRvd3MsIGNhbiBiZSBzZXQgdG8gdGhlIGJhc2UgbmFtZSBvZiBgR2V0UHJvY2Vzc0ltYWdlRmlsZU5hbWVXYC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9QUk9DRVNTX0VYRUNVVEFCTEVfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfUFJPQ0VTU19FWEVDVVRBQkxFX05BTUUgPSBUTVBfUFJPQ0VTU19FWEVDVVRBQkxFX05BTUU7XG4vKipcbiAqIFRoZSBmdWxsIHBhdGggdG8gdGhlIHByb2Nlc3MgZXhlY3V0YWJsZS4gT24gTGludXggYmFzZWQgc3lzdGVtcywgY2FuIGJlIHNldCB0byB0aGUgdGFyZ2V0IG9mIGBwcm9jL1twaWRdL2V4ZWAuIE9uIFdpbmRvd3MsIGNhbiBiZSBzZXQgdG8gdGhlIHJlc3VsdCBvZiBgR2V0UHJvY2Vzc0ltYWdlRmlsZU5hbWVXYC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9QUk9DRVNTX0VYRUNVVEFCTEVfUEFUSCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfUFJPQ0VTU19FWEVDVVRBQkxFX1BBVEggPSBUTVBfUFJPQ0VTU19FWEVDVVRBQkxFX1BBVEg7XG4vKipcbiAqIFRoZSBjb21tYW5kIHVzZWQgdG8gbGF1bmNoIHRoZSBwcm9jZXNzIChpLmUuIHRoZSBjb21tYW5kIG5hbWUpLiBPbiBMaW51eCBiYXNlZCBzeXN0ZW1zLCBjYW4gYmUgc2V0IHRvIHRoZSB6ZXJvdGggc3RyaW5nIGluIGBwcm9jL1twaWRdL2NtZGxpbmVgLiBPbiBXaW5kb3dzLCBjYW4gYmUgc2V0IHRvIHRoZSBmaXJzdCBwYXJhbWV0ZXIgZXh0cmFjdGVkIGZyb20gYEdldENvbW1hbmRMaW5lV2AuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfUFJPQ0VTU19DT01NQU5EIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19QUk9DRVNTX0NPTU1BTkQgPSBUTVBfUFJPQ0VTU19DT01NQU5EO1xuLyoqXG4gKiBUaGUgZnVsbCBjb21tYW5kIHVzZWQgdG8gbGF1bmNoIHRoZSBwcm9jZXNzIGFzIGEgc2luZ2xlIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGZ1bGwgY29tbWFuZC4gT24gV2luZG93cywgY2FuIGJlIHNldCB0byB0aGUgcmVzdWx0IG9mIGBHZXRDb21tYW5kTGluZVdgLiBEbyBub3Qgc2V0IHRoaXMgaWYgeW91IGhhdmUgdG8gYXNzZW1ibGUgaXQganVzdCBmb3IgbW9uaXRvcmluZzsgdXNlIGBwcm9jZXNzLmNvbW1hbmRfYXJnc2AgaW5zdGVhZC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9QUk9DRVNTX0NPTU1BTkRfTElORSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfUFJPQ0VTU19DT01NQU5EX0xJTkUgPSBUTVBfUFJPQ0VTU19DT01NQU5EX0xJTkU7XG4vKipcbiAqIEFsbCB0aGUgY29tbWFuZCBhcmd1bWVudHMgKGluY2x1ZGluZyB0aGUgY29tbWFuZC9leGVjdXRhYmxlIGl0c2VsZikgYXMgcmVjZWl2ZWQgYnkgdGhlIHByb2Nlc3MuIE9uIExpbnV4LWJhc2VkIHN5c3RlbXMgKGFuZCBzb21lIG90aGVyIFVuaXhvaWQgc3lzdGVtcyBzdXBwb3J0aW5nIHByb2NmcyksIGNhbiBiZSBzZXQgYWNjb3JkaW5nIHRvIHRoZSBsaXN0IG9mIG51bGwtZGVsaW1pdGVkIHN0cmluZ3MgZXh0cmFjdGVkIGZyb20gYHByb2MvW3BpZF0vY21kbGluZWAuIEZvciBsaWJjLWJhc2VkIGV4ZWN1dGFibGVzLCB0aGlzIHdvdWxkIGJlIHRoZSBmdWxsIGFyZ3YgdmVjdG9yIHBhc3NlZCB0byBgbWFpbmAuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfUFJPQ0VTU19DT01NQU5EX0FSR1MgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX1BST0NFU1NfQ09NTUFORF9BUkdTID0gVE1QX1BST0NFU1NfQ09NTUFORF9BUkdTO1xuLyoqXG4gKiBUaGUgdXNlcm5hbWUgb2YgdGhlIHVzZXIgdGhhdCBvd25zIHRoZSBwcm9jZXNzLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX1BST0NFU1NfT1dORVIgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX1BST0NFU1NfT1dORVIgPSBUTVBfUFJPQ0VTU19PV05FUjtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIHJ1bnRpbWUgb2YgdGhpcyBwcm9jZXNzLiBGb3IgY29tcGlsZWQgbmF0aXZlIGJpbmFyaWVzLCB0aGlzIFNIT1VMRCBiZSB0aGUgbmFtZSBvZiB0aGUgY29tcGlsZXIuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfUFJPQ0VTU19SVU5USU1FX05BTUUgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX1BST0NFU1NfUlVOVElNRV9OQU1FID0gVE1QX1BST0NFU1NfUlVOVElNRV9OQU1FO1xuLyoqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgcnVudGltZSBvZiB0aGlzIHByb2Nlc3MsIGFzIHJldHVybmVkIGJ5IHRoZSBydW50aW1lIHdpdGhvdXQgbW9kaWZpY2F0aW9uLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX1BST0NFU1NfUlVOVElNRV9WRVJTSU9OIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19QUk9DRVNTX1JVTlRJTUVfVkVSU0lPTiA9IFRNUF9QUk9DRVNTX1JVTlRJTUVfVkVSU0lPTjtcbi8qKlxuICogQW4gYWRkaXRpb25hbCBkZXNjcmlwdGlvbiBhYm91dCB0aGUgcnVudGltZSBvZiB0aGUgcHJvY2VzcywgZm9yIGV4YW1wbGUgYSBzcGVjaWZpYyB2ZW5kb3IgY3VzdG9taXphdGlvbiBvZiB0aGUgcnVudGltZSBlbnZpcm9ubWVudC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9QUk9DRVNTX1JVTlRJTUVfREVTQ1JJUFRJT04gaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX1BST0NFU1NfUlVOVElNRV9ERVNDUklQVElPTiA9IFRNUF9QUk9DRVNTX1JVTlRJTUVfREVTQ1JJUFRJT047XG4vKipcbiAqIExvZ2ljYWwgbmFtZSBvZiB0aGUgc2VydmljZS5cbiAqXG4gKiBOb3RlOiBNVVNUIGJlIHRoZSBzYW1lIGZvciBhbGwgaW5zdGFuY2VzIG9mIGhvcml6b250YWxseSBzY2FsZWQgc2VydmljZXMuIElmIHRoZSB2YWx1ZSB3YXMgbm90IHNwZWNpZmllZCwgU0RLcyBNVVNUIGZhbGxiYWNrIHRvIGB1bmtub3duX3NlcnZpY2U6YCBjb25jYXRlbmF0ZWQgd2l0aCBbYHByb2Nlc3MuZXhlY3V0YWJsZS5uYW1lYF0ocHJvY2Vzcy5tZCNwcm9jZXNzKSwgZS5nLiBgdW5rbm93bl9zZXJ2aWNlOmJhc2hgLiBJZiBgcHJvY2Vzcy5leGVjdXRhYmxlLm5hbWVgIGlzIG5vdCBhdmFpbGFibGUsIHRoZSB2YWx1ZSBNVVNUIGJlIHNldCB0byBgdW5rbm93bl9zZXJ2aWNlYC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9TRVJWSUNFX05BTUUuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19TRVJWSUNFX05BTUUgPSBUTVBfU0VSVklDRV9OQU1FO1xuLyoqXG4gKiBBIG5hbWVzcGFjZSBmb3IgYHNlcnZpY2UubmFtZWAuXG4gKlxuICogTm90ZTogQSBzdHJpbmcgdmFsdWUgaGF2aW5nIGEgbWVhbmluZyB0aGF0IGhlbHBzIHRvIGRpc3Rpbmd1aXNoIGEgZ3JvdXAgb2Ygc2VydmljZXMsIGZvciBleGFtcGxlIHRoZSB0ZWFtIG5hbWUgdGhhdCBvd25zIGEgZ3JvdXAgb2Ygc2VydmljZXMuIGBzZXJ2aWNlLm5hbWVgIGlzIGV4cGVjdGVkIHRvIGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHNhbWUgbmFtZXNwYWNlLiBJZiBgc2VydmljZS5uYW1lc3BhY2VgIGlzIG5vdCBzcGVjaWZpZWQgaW4gdGhlIFJlc291cmNlIHRoZW4gYHNlcnZpY2UubmFtZWAgaXMgZXhwZWN0ZWQgdG8gYmUgdW5pcXVlIGZvciBhbGwgc2VydmljZXMgdGhhdCBoYXZlIG5vIGV4cGxpY2l0IG5hbWVzcGFjZSBkZWZpbmVkIChzbyB0aGUgZW1wdHkvdW5zcGVjaWZpZWQgbmFtZXNwYWNlIGlzIHNpbXBseSBvbmUgbW9yZSB2YWxpZCBuYW1lc3BhY2UpLiBaZXJvLWxlbmd0aCBuYW1lc3BhY2Ugc3RyaW5nIGlzIGFzc3VtZWQgZXF1YWwgdG8gdW5zcGVjaWZpZWQgbmFtZXNwYWNlLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX1NFUlZJQ0VfTkFNRVNQQUNFIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19TRVJWSUNFX05BTUVTUEFDRSA9IFRNUF9TRVJWSUNFX05BTUVTUEFDRTtcbi8qKlxuICogVGhlIHN0cmluZyBJRCBvZiB0aGUgc2VydmljZSBpbnN0YW5jZS5cbiAqXG4gKiBOb3RlOiBNVVNUIGJlIHVuaXF1ZSBmb3IgZWFjaCBpbnN0YW5jZSBvZiB0aGUgc2FtZSBgc2VydmljZS5uYW1lc3BhY2Usc2VydmljZS5uYW1lYCBwYWlyIChpbiBvdGhlciB3b3JkcyBgc2VydmljZS5uYW1lc3BhY2Usc2VydmljZS5uYW1lLHNlcnZpY2UuaW5zdGFuY2UuaWRgIHRyaXBsZXQgTVVTVCBiZSBnbG9iYWxseSB1bmlxdWUpLiBUaGUgSUQgaGVscHMgdG8gZGlzdGluZ3Vpc2ggaW5zdGFuY2VzIG9mIHRoZSBzYW1lIHNlcnZpY2UgdGhhdCBleGlzdCBhdCB0aGUgc2FtZSB0aW1lIChlLmcuIGluc3RhbmNlcyBvZiBhIGhvcml6b250YWxseSBzY2FsZWQgc2VydmljZSkuIEl0IGlzIHByZWZlcmFibGUgZm9yIHRoZSBJRCB0byBiZSBwZXJzaXN0ZW50IGFuZCBzdGF5IHRoZSBzYW1lIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIHNlcnZpY2UgaW5zdGFuY2UsIGhvd2V2ZXIgaXQgaXMgYWNjZXB0YWJsZSB0aGF0IHRoZSBJRCBpcyBlcGhlbWVyYWwgYW5kIGNoYW5nZXMgZHVyaW5nIGltcG9ydGFudCBsaWZldGltZSBldmVudHMgZm9yIHRoZSBzZXJ2aWNlIChlLmcuIHNlcnZpY2UgcmVzdGFydHMpLiBJZiB0aGUgc2VydmljZSBoYXMgbm8gaW5oZXJlbnQgdW5pcXVlIElEIHRoYXQgY2FuIGJlIHVzZWQgYXMgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGl0IGlzIHJlY29tbWVuZGVkIHRvIGdlbmVyYXRlIGEgcmFuZG9tIFZlcnNpb24gMSBvciBWZXJzaW9uIDQgUkZDIDQxMjIgVVVJRCAoc2VydmljZXMgYWltaW5nIGZvciByZXByb2R1Y2libGUgVVVJRHMgbWF5IGFsc28gdXNlIFZlcnNpb24gNSwgc2VlIFJGQyA0MTIyIGZvciBtb3JlIHJlY29tbWVuZGF0aW9ucykuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfU0VSVklDRV9JTlNUQU5DRV9JRCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfU0VSVklDRV9JTlNUQU5DRV9JRCA9IFRNUF9TRVJWSUNFX0lOU1RBTkNFX0lEO1xuLyoqXG4gKiBUaGUgdmVyc2lvbiBzdHJpbmcgb2YgdGhlIHNlcnZpY2UgQVBJIG9yIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX1NFUlZJQ0VfVkVSU0lPTi5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX1NFUlZJQ0VfVkVSU0lPTiA9IFRNUF9TRVJWSUNFX1ZFUlNJT047XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSB0ZWxlbWV0cnkgU0RLIGFzIGRlZmluZWQgYWJvdmUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfVEVMRU1FVFJZX1NES19OQU1FLlxuICovXG52YXIgU0VNUkVTQVRUUlNfVEVMRU1FVFJZX1NES19OQU1FID0gVE1QX1RFTEVNRVRSWV9TREtfTkFNRTtcbi8qKlxuICogVGhlIGxhbmd1YWdlIG9mIHRoZSB0ZWxlbWV0cnkgU0RLLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX1RFTEVNRVRSWV9TREtfTEFOR1VBR0UuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19URUxFTUVUUllfU0RLX0xBTkdVQUdFID0gVE1QX1RFTEVNRVRSWV9TREtfTEFOR1VBR0U7XG4vKipcbiAqIFRoZSB2ZXJzaW9uIHN0cmluZyBvZiB0aGUgdGVsZW1ldHJ5IFNESy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9URUxFTUVUUllfU0RLX1ZFUlNJT04uXG4gKi9cbnZhciBTRU1SRVNBVFRSU19URUxFTUVUUllfU0RLX1ZFUlNJT04gPSBUTVBfVEVMRU1FVFJZX1NES19WRVJTSU9OO1xuLyoqXG4gKiBUaGUgdmVyc2lvbiBzdHJpbmcgb2YgdGhlIGF1dG8gaW5zdHJ1bWVudGF0aW9uIGFnZW50LCBpZiB1c2VkLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX1RFTEVNRVRSWV9ESVNUUk9fVkVSU0lPTiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfVEVMRU1FVFJZX0FVVE9fVkVSU0lPTiA9IFRNUF9URUxFTUVUUllfQVVUT19WRVJTSU9OO1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgd2ViIGVuZ2luZS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9XRUJFTkdJTkVfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfV0VCRU5HSU5FX05BTUUgPSBUTVBfV0VCRU5HSU5FX05BTUU7XG4vKipcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSB3ZWIgZW5naW5lLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX1dFQkVOR0lORV9WRVJTSU9OIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19XRUJFTkdJTkVfVkVSU0lPTiA9IFRNUF9XRUJFTkdJTkVfVkVSU0lPTjtcbi8qKlxuICogQWRkaXRpb25hbCBkZXNjcmlwdGlvbiBvZiB0aGUgd2ViIGVuZ2luZSAoZS5nLiBkZXRhaWxlZCB2ZXJzaW9uIGFuZCBlZGl0aW9uIGluZm9ybWF0aW9uKS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9XRUJFTkdJTkVfREVTQ1JJUFRJT04gaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX1dFQkVOR0lORV9ERVNDUklQVElPTiA9IFRNUF9XRUJFTkdJTkVfREVTQ1JJUFRJT047XG4vKipcbiAqIENyZWF0ZSBleHBvcnRlZCBWYWx1ZSBNYXAgZm9yIFNlbWFudGljUmVzb3VyY2VBdHRyaWJ1dGVzIHZhbHVlc1xuICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBTRU1SRVNBVFRSU19YWFhYWCBjb25zdGFudHMgcmF0aGVyIHRoYW4gdGhlIFNlbWFudGljUmVzb3VyY2VBdHRyaWJ1dGVzLlhYWFhYIGZvciBidW5kbGUgbWluaWZpY2F0aW9uXG4gKi9cbnZhciBTZW1hbnRpY1Jlc291cmNlQXR0cmlidXRlcyA9IFxuLyojX19QVVJFX18qLyBjcmVhdGVDb25zdE1hcChbXG4gICAgVE1QX0NMT1VEX1BST1ZJREVSLFxuICAgIFRNUF9DTE9VRF9BQ0NPVU5UX0lELFxuICAgIFRNUF9DTE9VRF9SRUdJT04sXG4gICAgVE1QX0NMT1VEX0FWQUlMQUJJTElUWV9aT05FLFxuICAgIFRNUF9DTE9VRF9QTEFURk9STSxcbiAgICBUTVBfQVdTX0VDU19DT05UQUlORVJfQVJOLFxuICAgIFRNUF9BV1NfRUNTX0NMVVNURVJfQVJOLFxuICAgIFRNUF9BV1NfRUNTX0xBVU5DSFRZUEUsXG4gICAgVE1QX0FXU19FQ1NfVEFTS19BUk4sXG4gICAgVE1QX0FXU19FQ1NfVEFTS19GQU1JTFksXG4gICAgVE1QX0FXU19FQ1NfVEFTS19SRVZJU0lPTixcbiAgICBUTVBfQVdTX0VLU19DTFVTVEVSX0FSTixcbiAgICBUTVBfQVdTX0xPR19HUk9VUF9OQU1FUyxcbiAgICBUTVBfQVdTX0xPR19HUk9VUF9BUk5TLFxuICAgIFRNUF9BV1NfTE9HX1NUUkVBTV9OQU1FUyxcbiAgICBUTVBfQVdTX0xPR19TVFJFQU1fQVJOUyxcbiAgICBUTVBfQ09OVEFJTkVSX05BTUUsXG4gICAgVE1QX0NPTlRBSU5FUl9JRCxcbiAgICBUTVBfQ09OVEFJTkVSX1JVTlRJTUUsXG4gICAgVE1QX0NPTlRBSU5FUl9JTUFHRV9OQU1FLFxuICAgIFRNUF9DT05UQUlORVJfSU1BR0VfVEFHLFxuICAgIFRNUF9ERVBMT1lNRU5UX0VOVklST05NRU5ULFxuICAgIFRNUF9ERVZJQ0VfSUQsXG4gICAgVE1QX0RFVklDRV9NT0RFTF9JREVOVElGSUVSLFxuICAgIFRNUF9ERVZJQ0VfTU9ERUxfTkFNRSxcbiAgICBUTVBfRkFBU19OQU1FLFxuICAgIFRNUF9GQUFTX0lELFxuICAgIFRNUF9GQUFTX1ZFUlNJT04sXG4gICAgVE1QX0ZBQVNfSU5TVEFOQ0UsXG4gICAgVE1QX0ZBQVNfTUFYX01FTU9SWSxcbiAgICBUTVBfSE9TVF9JRCxcbiAgICBUTVBfSE9TVF9OQU1FLFxuICAgIFRNUF9IT1NUX1RZUEUsXG4gICAgVE1QX0hPU1RfQVJDSCxcbiAgICBUTVBfSE9TVF9JTUFHRV9OQU1FLFxuICAgIFRNUF9IT1NUX0lNQUdFX0lELFxuICAgIFRNUF9IT1NUX0lNQUdFX1ZFUlNJT04sXG4gICAgVE1QX0s4U19DTFVTVEVSX05BTUUsXG4gICAgVE1QX0s4U19OT0RFX05BTUUsXG4gICAgVE1QX0s4U19OT0RFX1VJRCxcbiAgICBUTVBfSzhTX05BTUVTUEFDRV9OQU1FLFxuICAgIFRNUF9LOFNfUE9EX1VJRCxcbiAgICBUTVBfSzhTX1BPRF9OQU1FLFxuICAgIFRNUF9LOFNfQ09OVEFJTkVSX05BTUUsXG4gICAgVE1QX0s4U19SRVBMSUNBU0VUX1VJRCxcbiAgICBUTVBfSzhTX1JFUExJQ0FTRVRfTkFNRSxcbiAgICBUTVBfSzhTX0RFUExPWU1FTlRfVUlELFxuICAgIFRNUF9LOFNfREVQTE9ZTUVOVF9OQU1FLFxuICAgIFRNUF9LOFNfU1RBVEVGVUxTRVRfVUlELFxuICAgIFRNUF9LOFNfU1RBVEVGVUxTRVRfTkFNRSxcbiAgICBUTVBfSzhTX0RBRU1PTlNFVF9VSUQsXG4gICAgVE1QX0s4U19EQUVNT05TRVRfTkFNRSxcbiAgICBUTVBfSzhTX0pPQl9VSUQsXG4gICAgVE1QX0s4U19KT0JfTkFNRSxcbiAgICBUTVBfSzhTX0NST05KT0JfVUlELFxuICAgIFRNUF9LOFNfQ1JPTkpPQl9OQU1FLFxuICAgIFRNUF9PU19UWVBFLFxuICAgIFRNUF9PU19ERVNDUklQVElPTixcbiAgICBUTVBfT1NfTkFNRSxcbiAgICBUTVBfT1NfVkVSU0lPTixcbiAgICBUTVBfUFJPQ0VTU19QSUQsXG4gICAgVE1QX1BST0NFU1NfRVhFQ1VUQUJMRV9OQU1FLFxuICAgIFRNUF9QUk9DRVNTX0VYRUNVVEFCTEVfUEFUSCxcbiAgICBUTVBfUFJPQ0VTU19DT01NQU5ELFxuICAgIFRNUF9QUk9DRVNTX0NPTU1BTkRfTElORSxcbiAgICBUTVBfUFJPQ0VTU19DT01NQU5EX0FSR1MsXG4gICAgVE1QX1BST0NFU1NfT1dORVIsXG4gICAgVE1QX1BST0NFU1NfUlVOVElNRV9OQU1FLFxuICAgIFRNUF9QUk9DRVNTX1JVTlRJTUVfVkVSU0lPTixcbiAgICBUTVBfUFJPQ0VTU19SVU5USU1FX0RFU0NSSVBUSU9OLFxuICAgIFRNUF9TRVJWSUNFX05BTUUsXG4gICAgVE1QX1NFUlZJQ0VfTkFNRVNQQUNFLFxuICAgIFRNUF9TRVJWSUNFX0lOU1RBTkNFX0lELFxuICAgIFRNUF9TRVJWSUNFX1ZFUlNJT04sXG4gICAgVE1QX1RFTEVNRVRSWV9TREtfTkFNRSxcbiAgICBUTVBfVEVMRU1FVFJZX1NES19MQU5HVUFHRSxcbiAgICBUTVBfVEVMRU1FVFJZX1NES19WRVJTSU9OLFxuICAgIFRNUF9URUxFTUVUUllfQVVUT19WRVJTSU9OLFxuICAgIFRNUF9XRUJFTkdJTkVfTkFNRSxcbiAgICBUTVBfV0VCRU5HSU5FX1ZFUlNJT04sXG4gICAgVE1QX1dFQkVOR0lORV9ERVNDUklQVElPTixcbl0pO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQ29uc3RhbnQgdmFsdWVzIGZvciBDbG91ZFByb3ZpZGVyVmFsdWVzIGVudW0gZGVmaW5pdGlvblxuICpcbiAqIE5hbWUgb2YgdGhlIGNsb3VkIHByb3ZpZGVyLlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLy8gVGVtcG9yYXJ5IGxvY2FsIGNvbnN0YW50cyB0byBhc3NpZ24gdG8gdGhlIGluZGl2aWR1YWwgZXhwb3J0cyBhbmQgdGhlIG5hbWVzcGFjZWQgdmVyc2lvblxuLy8gUmVxdWlyZWQgdG8gYXZvaWQgdGhlIG5hbWVzcGFjZSBleHBvcnRzIHVzaW5nIHRoZSB1bm1pbmlmaWFibGUgZXhwb3J0IG5hbWVzIGZvciBzb21lIHBhY2thZ2UgdHlwZXNcbnZhciBUTVBfQ0xPVURQUk9WSURFUlZBTFVFU19BTElCQUJBX0NMT1VEID0gJ2FsaWJhYmFfY2xvdWQnO1xudmFyIFRNUF9DTE9VRFBST1ZJREVSVkFMVUVTX0FXUyA9ICdhd3MnO1xudmFyIFRNUF9DTE9VRFBST1ZJREVSVkFMVUVTX0FaVVJFID0gJ2F6dXJlJztcbnZhciBUTVBfQ0xPVURQUk9WSURFUlZBTFVFU19HQ1AgPSAnZ2NwJztcbi8qKlxuICogTmFtZSBvZiB0aGUgY2xvdWQgcHJvdmlkZXIuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIENMT1VEX1BST1ZJREVSX1ZBTFVFX0FMSUJBQkFfQ0xPVUQgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIENMT1VEUFJPVklERVJWQUxVRVNfQUxJQkFCQV9DTE9VRCA9IFRNUF9DTE9VRFBST1ZJREVSVkFMVUVTX0FMSUJBQkFfQ0xPVUQ7XG4vKipcbiAqIE5hbWUgb2YgdGhlIGNsb3VkIHByb3ZpZGVyLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBDTE9VRF9QUk9WSURFUl9WQUxVRV9BV1MgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIENMT1VEUFJPVklERVJWQUxVRVNfQVdTID0gVE1QX0NMT1VEUFJPVklERVJWQUxVRVNfQVdTO1xuLyoqXG4gKiBOYW1lIG9mIHRoZSBjbG91ZCBwcm92aWRlci5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQ0xPVURfUFJPVklERVJfVkFMVUVfQVpVUkUgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIENMT1VEUFJPVklERVJWQUxVRVNfQVpVUkUgPSBUTVBfQ0xPVURQUk9WSURFUlZBTFVFU19BWlVSRTtcbi8qKlxuICogTmFtZSBvZiB0aGUgY2xvdWQgcHJvdmlkZXIuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIENMT1VEX1BST1ZJREVSX1ZBTFVFX0dDUCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgQ0xPVURQUk9WSURFUlZBTFVFU19HQ1AgPSBUTVBfQ0xPVURQUk9WSURFUlZBTFVFU19HQ1A7XG4vKipcbiAqIFRoZSBjb25zdGFudCBtYXAgb2YgdmFsdWVzIGZvciBDbG91ZFByb3ZpZGVyVmFsdWVzLlxuICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBDTE9VRFBST1ZJREVSVkFMVUVTX1hYWFhYIGNvbnN0YW50cyByYXRoZXIgdGhhbiB0aGUgQ2xvdWRQcm92aWRlclZhbHVlcy5YWFhYWCBmb3IgYnVuZGxlIG1pbmlmaWNhdGlvbi5cbiAqL1xudmFyIENsb3VkUHJvdmlkZXJWYWx1ZXMgPSBcbi8qI19fUFVSRV9fKi8gY3JlYXRlQ29uc3RNYXAoW1xuICAgIFRNUF9DTE9VRFBST1ZJREVSVkFMVUVTX0FMSUJBQkFfQ0xPVUQsXG4gICAgVE1QX0NMT1VEUFJPVklERVJWQUxVRVNfQVdTLFxuICAgIFRNUF9DTE9VRFBST1ZJREVSVkFMVUVTX0FaVVJFLFxuICAgIFRNUF9DTE9VRFBST1ZJREVSVkFMVUVTX0dDUCxcbl0pO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQ29uc3RhbnQgdmFsdWVzIGZvciBDbG91ZFBsYXRmb3JtVmFsdWVzIGVudW0gZGVmaW5pdGlvblxuICpcbiAqIFRoZSBjbG91ZCBwbGF0Zm9ybSBpbiB1c2UuXG4gKlxuICogTm90ZTogVGhlIHByZWZpeCBvZiB0aGUgc2VydmljZSBTSE9VTEQgbWF0Y2ggdGhlIG9uZSBzcGVjaWZpZWQgaW4gYGNsb3VkLnByb3ZpZGVyYC5cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8vIFRlbXBvcmFyeSBsb2NhbCBjb25zdGFudHMgdG8gYXNzaWduIHRvIHRoZSBpbmRpdmlkdWFsIGV4cG9ydHMgYW5kIHRoZSBuYW1lc3BhY2VkIHZlcnNpb25cbi8vIFJlcXVpcmVkIHRvIGF2b2lkIHRoZSBuYW1lc3BhY2UgZXhwb3J0cyB1c2luZyB0aGUgdW5taW5pZmlhYmxlIGV4cG9ydCBuYW1lcyBmb3Igc29tZSBwYWNrYWdlIHR5cGVzXG52YXIgVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQUxJQkFCQV9DTE9VRF9FQ1MgPSAnYWxpYmFiYV9jbG91ZF9lY3MnO1xudmFyIFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0FMSUJBQkFfQ0xPVURfRkMgPSAnYWxpYmFiYV9jbG91ZF9mYyc7XG52YXIgVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVdTX0VDMiA9ICdhd3NfZWMyJztcbnZhciBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BV1NfRUNTID0gJ2F3c19lY3MnO1xudmFyIFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0FXU19FS1MgPSAnYXdzX2Vrcyc7XG52YXIgVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVdTX0xBTUJEQSA9ICdhd3NfbGFtYmRhJztcbnZhciBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BV1NfRUxBU1RJQ19CRUFOU1RBTEsgPSAnYXdzX2VsYXN0aWNfYmVhbnN0YWxrJztcbnZhciBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9WTSA9ICdhenVyZV92bSc7XG52YXIgVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfQ09OVEFJTkVSX0lOU1RBTkNFUyA9ICdhenVyZV9jb250YWluZXJfaW5zdGFuY2VzJztcbnZhciBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9BS1MgPSAnYXp1cmVfYWtzJztcbnZhciBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9GVU5DVElPTlMgPSAnYXp1cmVfZnVuY3Rpb25zJztcbnZhciBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9BUFBfU0VSVklDRSA9ICdhenVyZV9hcHBfc2VydmljZSc7XG52YXIgVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfR0NQX0NPTVBVVEVfRU5HSU5FID0gJ2djcF9jb21wdXRlX2VuZ2luZSc7XG52YXIgVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfR0NQX0NMT1VEX1JVTiA9ICdnY3BfY2xvdWRfcnVuJztcbnZhciBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19HQ1BfS1VCRVJORVRFU19FTkdJTkUgPSAnZ2NwX2t1YmVybmV0ZXNfZW5naW5lJztcbnZhciBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19HQ1BfQ0xPVURfRlVOQ1RJT05TID0gJ2djcF9jbG91ZF9mdW5jdGlvbnMnO1xudmFyIFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9BUFBfRU5HSU5FID0gJ2djcF9hcHBfZW5naW5lJztcbi8qKlxuICogVGhlIGNsb3VkIHBsYXRmb3JtIGluIHVzZS5cbiAqXG4gKiBOb3RlOiBUaGUgcHJlZml4IG9mIHRoZSBzZXJ2aWNlIFNIT1VMRCBtYXRjaCB0aGUgb25lIHNwZWNpZmllZCBpbiBgY2xvdWQucHJvdmlkZXJgLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBDTE9VRF9QTEFURk9STV9WQUxVRV9BTElCQUJBX0NMT1VEX0VDUyBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgQ0xPVURQTEFURk9STVZBTFVFU19BTElCQUJBX0NMT1VEX0VDUyA9IFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0FMSUJBQkFfQ0xPVURfRUNTO1xuLyoqXG4gKiBUaGUgY2xvdWQgcGxhdGZvcm0gaW4gdXNlLlxuICpcbiAqIE5vdGU6IFRoZSBwcmVmaXggb2YgdGhlIHNlcnZpY2UgU0hPVUxEIG1hdGNoIHRoZSBvbmUgc3BlY2lmaWVkIGluIGBjbG91ZC5wcm92aWRlcmAuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIENMT1VEX1BMQVRGT1JNX1ZBTFVFX0FMSUJBQkFfQ0xPVURfRkMgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIENMT1VEUExBVEZPUk1WQUxVRVNfQUxJQkFCQV9DTE9VRF9GQyA9IFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0FMSUJBQkFfQ0xPVURfRkM7XG4vKipcbiAqIFRoZSBjbG91ZCBwbGF0Zm9ybSBpbiB1c2UuXG4gKlxuICogTm90ZTogVGhlIHByZWZpeCBvZiB0aGUgc2VydmljZSBTSE9VTEQgbWF0Y2ggdGhlIG9uZSBzcGVjaWZpZWQgaW4gYGNsb3VkLnByb3ZpZGVyYC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQ0xPVURfUExBVEZPUk1fVkFMVUVfQVdTX0VDMiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgQ0xPVURQTEFURk9STVZBTFVFU19BV1NfRUMyID0gVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVdTX0VDMjtcbi8qKlxuICogVGhlIGNsb3VkIHBsYXRmb3JtIGluIHVzZS5cbiAqXG4gKiBOb3RlOiBUaGUgcHJlZml4IG9mIHRoZSBzZXJ2aWNlIFNIT1VMRCBtYXRjaCB0aGUgb25lIHNwZWNpZmllZCBpbiBgY2xvdWQucHJvdmlkZXJgLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBDTE9VRF9QTEFURk9STV9WQUxVRV9BV1NfRUNTIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBDTE9VRFBMQVRGT1JNVkFMVUVTX0FXU19FQ1MgPSBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BV1NfRUNTO1xuLyoqXG4gKiBUaGUgY2xvdWQgcGxhdGZvcm0gaW4gdXNlLlxuICpcbiAqIE5vdGU6IFRoZSBwcmVmaXggb2YgdGhlIHNlcnZpY2UgU0hPVUxEIG1hdGNoIHRoZSBvbmUgc3BlY2lmaWVkIGluIGBjbG91ZC5wcm92aWRlcmAuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIENMT1VEX1BMQVRGT1JNX1ZBTFVFX0FXU19FS1MgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIENMT1VEUExBVEZPUk1WQUxVRVNfQVdTX0VLUyA9IFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0FXU19FS1M7XG4vKipcbiAqIFRoZSBjbG91ZCBwbGF0Zm9ybSBpbiB1c2UuXG4gKlxuICogTm90ZTogVGhlIHByZWZpeCBvZiB0aGUgc2VydmljZSBTSE9VTEQgbWF0Y2ggdGhlIG9uZSBzcGVjaWZpZWQgaW4gYGNsb3VkLnByb3ZpZGVyYC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQ0xPVURfUExBVEZPUk1fVkFMVUVfQVdTX0xBTUJEQSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgQ0xPVURQTEFURk9STVZBTFVFU19BV1NfTEFNQkRBID0gVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVdTX0xBTUJEQTtcbi8qKlxuICogVGhlIGNsb3VkIHBsYXRmb3JtIGluIHVzZS5cbiAqXG4gKiBOb3RlOiBUaGUgcHJlZml4IG9mIHRoZSBzZXJ2aWNlIFNIT1VMRCBtYXRjaCB0aGUgb25lIHNwZWNpZmllZCBpbiBgY2xvdWQucHJvdmlkZXJgLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBDTE9VRF9QTEFURk9STV9WQUxVRV9BV1NfRUxBU1RJQ19CRUFOU1RBTEsgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIENMT1VEUExBVEZPUk1WQUxVRVNfQVdTX0VMQVNUSUNfQkVBTlNUQUxLID0gVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVdTX0VMQVNUSUNfQkVBTlNUQUxLO1xuLyoqXG4gKiBUaGUgY2xvdWQgcGxhdGZvcm0gaW4gdXNlLlxuICpcbiAqIE5vdGU6IFRoZSBwcmVmaXggb2YgdGhlIHNlcnZpY2UgU0hPVUxEIG1hdGNoIHRoZSBvbmUgc3BlY2lmaWVkIGluIGBjbG91ZC5wcm92aWRlcmAuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIENMT1VEX1BMQVRGT1JNX1ZBTFVFX0FaVVJFX1ZNIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBDTE9VRFBMQVRGT1JNVkFMVUVTX0FaVVJFX1ZNID0gVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfVk07XG4vKipcbiAqIFRoZSBjbG91ZCBwbGF0Zm9ybSBpbiB1c2UuXG4gKlxuICogTm90ZTogVGhlIHByZWZpeCBvZiB0aGUgc2VydmljZSBTSE9VTEQgbWF0Y2ggdGhlIG9uZSBzcGVjaWZpZWQgaW4gYGNsb3VkLnByb3ZpZGVyYC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQ0xPVURfUExBVEZPUk1fVkFMVUVfQVpVUkVfQ09OVEFJTkVSX0lOU1RBTkNFUyBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9DT05UQUlORVJfSU5TVEFOQ0VTID0gVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfQ09OVEFJTkVSX0lOU1RBTkNFUztcbi8qKlxuICogVGhlIGNsb3VkIHBsYXRmb3JtIGluIHVzZS5cbiAqXG4gKiBOb3RlOiBUaGUgcHJlZml4IG9mIHRoZSBzZXJ2aWNlIFNIT1VMRCBtYXRjaCB0aGUgb25lIHNwZWNpZmllZCBpbiBgY2xvdWQucHJvdmlkZXJgLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBDTE9VRF9QTEFURk9STV9WQUxVRV9BWlVSRV9BS1MgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIENMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfQUtTID0gVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfQUtTO1xuLyoqXG4gKiBUaGUgY2xvdWQgcGxhdGZvcm0gaW4gdXNlLlxuICpcbiAqIE5vdGU6IFRoZSBwcmVmaXggb2YgdGhlIHNlcnZpY2UgU0hPVUxEIG1hdGNoIHRoZSBvbmUgc3BlY2lmaWVkIGluIGBjbG91ZC5wcm92aWRlcmAuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIENMT1VEX1BMQVRGT1JNX1ZBTFVFX0FaVVJFX0ZVTkNUSU9OUyBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9GVU5DVElPTlMgPSBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9GVU5DVElPTlM7XG4vKipcbiAqIFRoZSBjbG91ZCBwbGF0Zm9ybSBpbiB1c2UuXG4gKlxuICogTm90ZTogVGhlIHByZWZpeCBvZiB0aGUgc2VydmljZSBTSE9VTEQgbWF0Y2ggdGhlIG9uZSBzcGVjaWZpZWQgaW4gYGNsb3VkLnByb3ZpZGVyYC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQ0xPVURfUExBVEZPUk1fVkFMVUVfQVpVUkVfQVBQX1NFUlZJQ0UgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIENMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfQVBQX1NFUlZJQ0UgPSBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9BUFBfU0VSVklDRTtcbi8qKlxuICogVGhlIGNsb3VkIHBsYXRmb3JtIGluIHVzZS5cbiAqXG4gKiBOb3RlOiBUaGUgcHJlZml4IG9mIHRoZSBzZXJ2aWNlIFNIT1VMRCBtYXRjaCB0aGUgb25lIHNwZWNpZmllZCBpbiBgY2xvdWQucHJvdmlkZXJgLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBDTE9VRF9QTEFURk9STV9WQUxVRV9HQ1BfQ09NUFVURV9FTkdJTkUgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIENMT1VEUExBVEZPUk1WQUxVRVNfR0NQX0NPTVBVVEVfRU5HSU5FID0gVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfR0NQX0NPTVBVVEVfRU5HSU5FO1xuLyoqXG4gKiBUaGUgY2xvdWQgcGxhdGZvcm0gaW4gdXNlLlxuICpcbiAqIE5vdGU6IFRoZSBwcmVmaXggb2YgdGhlIHNlcnZpY2UgU0hPVUxEIG1hdGNoIHRoZSBvbmUgc3BlY2lmaWVkIGluIGBjbG91ZC5wcm92aWRlcmAuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIENMT1VEX1BMQVRGT1JNX1ZBTFVFX0dDUF9DTE9VRF9SVU4gaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIENMT1VEUExBVEZPUk1WQUxVRVNfR0NQX0NMT1VEX1JVTiA9IFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9DTE9VRF9SVU47XG4vKipcbiAqIFRoZSBjbG91ZCBwbGF0Zm9ybSBpbiB1c2UuXG4gKlxuICogTm90ZTogVGhlIHByZWZpeCBvZiB0aGUgc2VydmljZSBTSE9VTEQgbWF0Y2ggdGhlIG9uZSBzcGVjaWZpZWQgaW4gYGNsb3VkLnByb3ZpZGVyYC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQ0xPVURfUExBVEZPUk1fVkFMVUVfR0NQX0tVQkVSTkVURVNfRU5HSU5FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBDTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9LVUJFUk5FVEVTX0VOR0lORSA9IFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9LVUJFUk5FVEVTX0VOR0lORTtcbi8qKlxuICogVGhlIGNsb3VkIHBsYXRmb3JtIGluIHVzZS5cbiAqXG4gKiBOb3RlOiBUaGUgcHJlZml4IG9mIHRoZSBzZXJ2aWNlIFNIT1VMRCBtYXRjaCB0aGUgb25lIHNwZWNpZmllZCBpbiBgY2xvdWQucHJvdmlkZXJgLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBDTE9VRF9QTEFURk9STV9WQUxVRV9HQ1BfQ0xPVURfRlVOQ1RJT05TIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBDTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9DTE9VRF9GVU5DVElPTlMgPSBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19HQ1BfQ0xPVURfRlVOQ1RJT05TO1xuLyoqXG4gKiBUaGUgY2xvdWQgcGxhdGZvcm0gaW4gdXNlLlxuICpcbiAqIE5vdGU6IFRoZSBwcmVmaXggb2YgdGhlIHNlcnZpY2UgU0hPVUxEIG1hdGNoIHRoZSBvbmUgc3BlY2lmaWVkIGluIGBjbG91ZC5wcm92aWRlcmAuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIENMT1VEX1BMQVRGT1JNX1ZBTFVFX0dDUF9BUFBfRU5HSU5FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBDTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9BUFBfRU5HSU5FID0gVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfR0NQX0FQUF9FTkdJTkU7XG4vKipcbiAqIFRoZSBjb25zdGFudCBtYXAgb2YgdmFsdWVzIGZvciBDbG91ZFBsYXRmb3JtVmFsdWVzLlxuICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBDTE9VRFBMQVRGT1JNVkFMVUVTX1hYWFhYIGNvbnN0YW50cyByYXRoZXIgdGhhbiB0aGUgQ2xvdWRQbGF0Zm9ybVZhbHVlcy5YWFhYWCBmb3IgYnVuZGxlIG1pbmlmaWNhdGlvbi5cbiAqL1xudmFyIENsb3VkUGxhdGZvcm1WYWx1ZXMgPSBcbi8qI19fUFVSRV9fKi8gY3JlYXRlQ29uc3RNYXAoW1xuICAgIFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0FMSUJBQkFfQ0xPVURfRUNTLFxuICAgIFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0FMSUJBQkFfQ0xPVURfRkMsXG4gICAgVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVdTX0VDMixcbiAgICBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BV1NfRUNTLFxuICAgIFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0FXU19FS1MsXG4gICAgVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVdTX0xBTUJEQSxcbiAgICBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BV1NfRUxBU1RJQ19CRUFOU1RBTEssXG4gICAgVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfVk0sXG4gICAgVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfQ09OVEFJTkVSX0lOU1RBTkNFUyxcbiAgICBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9BS1MsXG4gICAgVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfRlVOQ1RJT05TLFxuICAgIFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0FaVVJFX0FQUF9TRVJWSUNFLFxuICAgIFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9DT01QVVRFX0VOR0lORSxcbiAgICBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19HQ1BfQ0xPVURfUlVOLFxuICAgIFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9LVUJFUk5FVEVTX0VOR0lORSxcbiAgICBUTVBfQ0xPVURQTEFURk9STVZBTFVFU19HQ1BfQ0xPVURfRlVOQ1RJT05TLFxuICAgIFRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9BUFBfRU5HSU5FLFxuXSk7XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBDb25zdGFudCB2YWx1ZXMgZm9yIEF3c0Vjc0xhdW5jaHR5cGVWYWx1ZXMgZW51bSBkZWZpbml0aW9uXG4gKlxuICogVGhlIFtsYXVuY2ggdHlwZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvbGF1bmNoX3R5cGVzLmh0bWwpIGZvciBhbiBFQ1MgdGFzay5cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8vIFRlbXBvcmFyeSBsb2NhbCBjb25zdGFudHMgdG8gYXNzaWduIHRvIHRoZSBpbmRpdmlkdWFsIGV4cG9ydHMgYW5kIHRoZSBuYW1lc3BhY2VkIHZlcnNpb25cbi8vIFJlcXVpcmVkIHRvIGF2b2lkIHRoZSBuYW1lc3BhY2UgZXhwb3J0cyB1c2luZyB0aGUgdW5taW5pZmlhYmxlIGV4cG9ydCBuYW1lcyBmb3Igc29tZSBwYWNrYWdlIHR5cGVzXG52YXIgVE1QX0FXU0VDU0xBVU5DSFRZUEVWQUxVRVNfRUMyID0gJ2VjMic7XG52YXIgVE1QX0FXU0VDU0xBVU5DSFRZUEVWQUxVRVNfRkFSR0FURSA9ICdmYXJnYXRlJztcbi8qKlxuICogVGhlIFtsYXVuY2ggdHlwZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvbGF1bmNoX3R5cGVzLmh0bWwpIGZvciBhbiBFQ1MgdGFzay5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVdTX0VDU19MQVVOQ0hUWVBFX1ZBTFVFX0VDMiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgQVdTRUNTTEFVTkNIVFlQRVZBTFVFU19FQzIgPSBUTVBfQVdTRUNTTEFVTkNIVFlQRVZBTFVFU19FQzI7XG4vKipcbiAqIFRoZSBbbGF1bmNoIHR5cGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1MvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2xhdW5jaF90eXBlcy5odG1sKSBmb3IgYW4gRUNTIHRhc2suXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFXU19FQ1NfTEFVTkNIVFlQRV9WQUxVRV9GQVJHQVRFIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBBV1NFQ1NMQVVOQ0hUWVBFVkFMVUVTX0ZBUkdBVEUgPSBUTVBfQVdTRUNTTEFVTkNIVFlQRVZBTFVFU19GQVJHQVRFO1xuLyoqXG4gKiBUaGUgY29uc3RhbnQgbWFwIG9mIHZhbHVlcyBmb3IgQXdzRWNzTGF1bmNodHlwZVZhbHVlcy5cbiAqIEBkZXByZWNhdGVkIFVzZSB0aGUgQVdTRUNTTEFVTkNIVFlQRVZBTFVFU19YWFhYWCBjb25zdGFudHMgcmF0aGVyIHRoYW4gdGhlIEF3c0Vjc0xhdW5jaHR5cGVWYWx1ZXMuWFhYWFggZm9yIGJ1bmRsZSBtaW5pZmljYXRpb24uXG4gKi9cbnZhciBBd3NFY3NMYXVuY2h0eXBlVmFsdWVzID0gXG4vKiNfX1BVUkVfXyovIGNyZWF0ZUNvbnN0TWFwKFtcbiAgICBUTVBfQVdTRUNTTEFVTkNIVFlQRVZBTFVFU19FQzIsXG4gICAgVE1QX0FXU0VDU0xBVU5DSFRZUEVWQUxVRVNfRkFSR0FURSxcbl0pO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQ29uc3RhbnQgdmFsdWVzIGZvciBIb3N0QXJjaFZhbHVlcyBlbnVtIGRlZmluaXRpb25cbiAqXG4gKiBUaGUgQ1BVIGFyY2hpdGVjdHVyZSB0aGUgaG9zdCBzeXN0ZW0gaXMgcnVubmluZyBvbi5cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8vIFRlbXBvcmFyeSBsb2NhbCBjb25zdGFudHMgdG8gYXNzaWduIHRvIHRoZSBpbmRpdmlkdWFsIGV4cG9ydHMgYW5kIHRoZSBuYW1lc3BhY2VkIHZlcnNpb25cbi8vIFJlcXVpcmVkIHRvIGF2b2lkIHRoZSBuYW1lc3BhY2UgZXhwb3J0cyB1c2luZyB0aGUgdW5taW5pZmlhYmxlIGV4cG9ydCBuYW1lcyBmb3Igc29tZSBwYWNrYWdlIHR5cGVzXG52YXIgVE1QX0hPU1RBUkNIVkFMVUVTX0FNRDY0ID0gJ2FtZDY0JztcbnZhciBUTVBfSE9TVEFSQ0hWQUxVRVNfQVJNMzIgPSAnYXJtMzInO1xudmFyIFRNUF9IT1NUQVJDSFZBTFVFU19BUk02NCA9ICdhcm02NCc7XG52YXIgVE1QX0hPU1RBUkNIVkFMVUVTX0lBNjQgPSAnaWE2NCc7XG52YXIgVE1QX0hPU1RBUkNIVkFMVUVTX1BQQzMyID0gJ3BwYzMyJztcbnZhciBUTVBfSE9TVEFSQ0hWQUxVRVNfUFBDNjQgPSAncHBjNjQnO1xudmFyIFRNUF9IT1NUQVJDSFZBTFVFU19YODYgPSAneDg2Jztcbi8qKlxuICogVGhlIENQVSBhcmNoaXRlY3R1cmUgdGhlIGhvc3Qgc3lzdGVtIGlzIHJ1bm5pbmcgb24uXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEhPU1RfQVJDSF9WQUxVRV9BTUQ2NCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgSE9TVEFSQ0hWQUxVRVNfQU1ENjQgPSBUTVBfSE9TVEFSQ0hWQUxVRVNfQU1ENjQ7XG4vKipcbiAqIFRoZSBDUFUgYXJjaGl0ZWN0dXJlIHRoZSBob3N0IHN5c3RlbSBpcyBydW5uaW5nIG9uLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBIT1NUX0FSQ0hfVkFMVUVfQVJNMzIgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIEhPU1RBUkNIVkFMVUVTX0FSTTMyID0gVE1QX0hPU1RBUkNIVkFMVUVTX0FSTTMyO1xuLyoqXG4gKiBUaGUgQ1BVIGFyY2hpdGVjdHVyZSB0aGUgaG9zdCBzeXN0ZW0gaXMgcnVubmluZyBvbi5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgSE9TVF9BUkNIX1ZBTFVFX0FSTTY0IGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBIT1NUQVJDSFZBTFVFU19BUk02NCA9IFRNUF9IT1NUQVJDSFZBTFVFU19BUk02NDtcbi8qKlxuICogVGhlIENQVSBhcmNoaXRlY3R1cmUgdGhlIGhvc3Qgc3lzdGVtIGlzIHJ1bm5pbmcgb24uXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEhPU1RfQVJDSF9WQUxVRV9JQTY0IGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBIT1NUQVJDSFZBTFVFU19JQTY0ID0gVE1QX0hPU1RBUkNIVkFMVUVTX0lBNjQ7XG4vKipcbiAqIFRoZSBDUFUgYXJjaGl0ZWN0dXJlIHRoZSBob3N0IHN5c3RlbSBpcyBydW5uaW5nIG9uLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBIT1NUX0FSQ0hfVkFMVUVfUFBDMzIgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIEhPU1RBUkNIVkFMVUVTX1BQQzMyID0gVE1QX0hPU1RBUkNIVkFMVUVTX1BQQzMyO1xuLyoqXG4gKiBUaGUgQ1BVIGFyY2hpdGVjdHVyZSB0aGUgaG9zdCBzeXN0ZW0gaXMgcnVubmluZyBvbi5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgSE9TVF9BUkNIX1ZBTFVFX1BQQzY0IGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBIT1NUQVJDSFZBTFVFU19QUEM2NCA9IFRNUF9IT1NUQVJDSFZBTFVFU19QUEM2NDtcbi8qKlxuICogVGhlIENQVSBhcmNoaXRlY3R1cmUgdGhlIGhvc3Qgc3lzdGVtIGlzIHJ1bm5pbmcgb24uXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEhPU1RfQVJDSF9WQUxVRV9YODYgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIEhPU1RBUkNIVkFMVUVTX1g4NiA9IFRNUF9IT1NUQVJDSFZBTFVFU19YODY7XG4vKipcbiAqIFRoZSBjb25zdGFudCBtYXAgb2YgdmFsdWVzIGZvciBIb3N0QXJjaFZhbHVlcy5cbiAqIEBkZXByZWNhdGVkIFVzZSB0aGUgSE9TVEFSQ0hWQUxVRVNfWFhYWFggY29uc3RhbnRzIHJhdGhlciB0aGFuIHRoZSBIb3N0QXJjaFZhbHVlcy5YWFhYWCBmb3IgYnVuZGxlIG1pbmlmaWNhdGlvbi5cbiAqL1xudmFyIEhvc3RBcmNoVmFsdWVzID0gXG4vKiNfX1BVUkVfXyovIGNyZWF0ZUNvbnN0TWFwKFtcbiAgICBUTVBfSE9TVEFSQ0hWQUxVRVNfQU1ENjQsXG4gICAgVE1QX0hPU1RBUkNIVkFMVUVTX0FSTTMyLFxuICAgIFRNUF9IT1NUQVJDSFZBTFVFU19BUk02NCxcbiAgICBUTVBfSE9TVEFSQ0hWQUxVRVNfSUE2NCxcbiAgICBUTVBfSE9TVEFSQ0hWQUxVRVNfUFBDMzIsXG4gICAgVE1QX0hPU1RBUkNIVkFMVUVTX1BQQzY0LFxuICAgIFRNUF9IT1NUQVJDSFZBTFVFU19YODYsXG5dKTtcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIENvbnN0YW50IHZhbHVlcyBmb3IgT3NUeXBlVmFsdWVzIGVudW0gZGVmaW5pdGlvblxuICpcbiAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHR5cGUuXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vLyBUZW1wb3JhcnkgbG9jYWwgY29uc3RhbnRzIHRvIGFzc2lnbiB0byB0aGUgaW5kaXZpZHVhbCBleHBvcnRzIGFuZCB0aGUgbmFtZXNwYWNlZCB2ZXJzaW9uXG4vLyBSZXF1aXJlZCB0byBhdm9pZCB0aGUgbmFtZXNwYWNlIGV4cG9ydHMgdXNpbmcgdGhlIHVubWluaWZpYWJsZSBleHBvcnQgbmFtZXMgZm9yIHNvbWUgcGFja2FnZSB0eXBlc1xudmFyIFRNUF9PU1RZUEVWQUxVRVNfV0lORE9XUyA9ICd3aW5kb3dzJztcbnZhciBUTVBfT1NUWVBFVkFMVUVTX0xJTlVYID0gJ2xpbnV4JztcbnZhciBUTVBfT1NUWVBFVkFMVUVTX0RBUldJTiA9ICdkYXJ3aW4nO1xudmFyIFRNUF9PU1RZUEVWQUxVRVNfRlJFRUJTRCA9ICdmcmVlYnNkJztcbnZhciBUTVBfT1NUWVBFVkFMVUVTX05FVEJTRCA9ICduZXRic2QnO1xudmFyIFRNUF9PU1RZUEVWQUxVRVNfT1BFTkJTRCA9ICdvcGVuYnNkJztcbnZhciBUTVBfT1NUWVBFVkFMVUVTX0RSQUdPTkZMWUJTRCA9ICdkcmFnb25mbHlic2QnO1xudmFyIFRNUF9PU1RZUEVWQUxVRVNfSFBVWCA9ICdocHV4JztcbnZhciBUTVBfT1NUWVBFVkFMVUVTX0FJWCA9ICdhaXgnO1xudmFyIFRNUF9PU1RZUEVWQUxVRVNfU09MQVJJUyA9ICdzb2xhcmlzJztcbnZhciBUTVBfT1NUWVBFVkFMVUVTX1pfT1MgPSAnel9vcyc7XG4vKipcbiAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHR5cGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIE9TX1RZUEVfVkFMVUVfV0lORE9XUyBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgT1NUWVBFVkFMVUVTX1dJTkRPV1MgPSBUTVBfT1NUWVBFVkFMVUVTX1dJTkRPV1M7XG4vKipcbiAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHR5cGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIE9TX1RZUEVfVkFMVUVfTElOVVggaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIE9TVFlQRVZBTFVFU19MSU5VWCA9IFRNUF9PU1RZUEVWQUxVRVNfTElOVVg7XG4vKipcbiAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHR5cGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIE9TX1RZUEVfVkFMVUVfREFSV0lOIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBPU1RZUEVWQUxVRVNfREFSV0lOID0gVE1QX09TVFlQRVZBTFVFU19EQVJXSU47XG4vKipcbiAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHR5cGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIE9TX1RZUEVfVkFMVUVfRlJFRUJTRCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgT1NUWVBFVkFMVUVTX0ZSRUVCU0QgPSBUTVBfT1NUWVBFVkFMVUVTX0ZSRUVCU0Q7XG4vKipcbiAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHR5cGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIE9TX1RZUEVfVkFMVUVfTkVUQlNEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBPU1RZUEVWQUxVRVNfTkVUQlNEID0gVE1QX09TVFlQRVZBTFVFU19ORVRCU0Q7XG4vKipcbiAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHR5cGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIE9TX1RZUEVfVkFMVUVfT1BFTkJTRCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgT1NUWVBFVkFMVUVTX09QRU5CU0QgPSBUTVBfT1NUWVBFVkFMVUVTX09QRU5CU0Q7XG4vKipcbiAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHR5cGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIE9TX1RZUEVfVkFMVUVfRFJBR09ORkxZQlNEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBPU1RZUEVWQUxVRVNfRFJBR09ORkxZQlNEID0gVE1QX09TVFlQRVZBTFVFU19EUkFHT05GTFlCU0Q7XG4vKipcbiAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHR5cGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIE9TX1RZUEVfVkFMVUVfSFBVWCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgT1NUWVBFVkFMVUVTX0hQVVggPSBUTVBfT1NUWVBFVkFMVUVTX0hQVVg7XG4vKipcbiAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHR5cGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIE9TX1RZUEVfVkFMVUVfQUlYIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBPU1RZUEVWQUxVRVNfQUlYID0gVE1QX09TVFlQRVZBTFVFU19BSVg7XG4vKipcbiAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHR5cGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIE9TX1RZUEVfVkFMVUVfU09MQVJJUyBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgT1NUWVBFVkFMVUVTX1NPTEFSSVMgPSBUTVBfT1NUWVBFVkFMVUVTX1NPTEFSSVM7XG4vKipcbiAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHR5cGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIE9TX1RZUEVfVkFMVUVfWl9PUyBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgT1NUWVBFVkFMVUVTX1pfT1MgPSBUTVBfT1NUWVBFVkFMVUVTX1pfT1M7XG4vKipcbiAqIFRoZSBjb25zdGFudCBtYXAgb2YgdmFsdWVzIGZvciBPc1R5cGVWYWx1ZXMuXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGhlIE9TVFlQRVZBTFVFU19YWFhYWCBjb25zdGFudHMgcmF0aGVyIHRoYW4gdGhlIE9zVHlwZVZhbHVlcy5YWFhYWCBmb3IgYnVuZGxlIG1pbmlmaWNhdGlvbi5cbiAqL1xudmFyIE9zVHlwZVZhbHVlcyA9IFxuLyojX19QVVJFX18qLyBjcmVhdGVDb25zdE1hcChbXG4gICAgVE1QX09TVFlQRVZBTFVFU19XSU5ET1dTLFxuICAgIFRNUF9PU1RZUEVWQUxVRVNfTElOVVgsXG4gICAgVE1QX09TVFlQRVZBTFVFU19EQVJXSU4sXG4gICAgVE1QX09TVFlQRVZBTFVFU19GUkVFQlNELFxuICAgIFRNUF9PU1RZUEVWQUxVRVNfTkVUQlNELFxuICAgIFRNUF9PU1RZUEVWQUxVRVNfT1BFTkJTRCxcbiAgICBUTVBfT1NUWVBFVkFMVUVTX0RSQUdPTkZMWUJTRCxcbiAgICBUTVBfT1NUWVBFVkFMVUVTX0hQVVgsXG4gICAgVE1QX09TVFlQRVZBTFVFU19BSVgsXG4gICAgVE1QX09TVFlQRVZBTFVFU19TT0xBUklTLFxuICAgIFRNUF9PU1RZUEVWQUxVRVNfWl9PUyxcbl0pO1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQ29uc3RhbnQgdmFsdWVzIGZvciBUZWxlbWV0cnlTZGtMYW5ndWFnZVZhbHVlcyBlbnVtIGRlZmluaXRpb25cbiAqXG4gKiBUaGUgbGFuZ3VhZ2Ugb2YgdGhlIHRlbGVtZXRyeSBTREsuXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vLyBUZW1wb3JhcnkgbG9jYWwgY29uc3RhbnRzIHRvIGFzc2lnbiB0byB0aGUgaW5kaXZpZHVhbCBleHBvcnRzIGFuZCB0aGUgbmFtZXNwYWNlZCB2ZXJzaW9uXG4vLyBSZXF1aXJlZCB0byBhdm9pZCB0aGUgbmFtZXNwYWNlIGV4cG9ydHMgdXNpbmcgdGhlIHVubWluaWZpYWJsZSBleHBvcnQgbmFtZXMgZm9yIHNvbWUgcGFja2FnZSB0eXBlc1xudmFyIFRNUF9URUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19DUFAgPSAnY3BwJztcbnZhciBUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfRE9UTkVUID0gJ2RvdG5ldCc7XG52YXIgVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX0VSTEFORyA9ICdlcmxhbmcnO1xudmFyIFRNUF9URUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19HTyA9ICdnbyc7XG52YXIgVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX0pBVkEgPSAnamF2YSc7XG52YXIgVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX05PREVKUyA9ICdub2RlanMnO1xudmFyIFRNUF9URUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19QSFAgPSAncGhwJztcbnZhciBUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfUFlUSE9OID0gJ3B5dGhvbic7XG52YXIgVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX1JVQlkgPSAncnVieSc7XG52YXIgVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX1dFQkpTID0gJ3dlYmpzJztcbi8qKlxuICogVGhlIGxhbmd1YWdlIG9mIHRoZSB0ZWxlbWV0cnkgU0RLLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBURUxFTUVUUllfU0RLX0xBTkdVQUdFX1ZBTFVFX0NQUC5cbiAqL1xudmFyIFRFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX0NQUCA9IFRNUF9URUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19DUFA7XG4vKipcbiAqIFRoZSBsYW5ndWFnZSBvZiB0aGUgdGVsZW1ldHJ5IFNESy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgVEVMRU1FVFJZX1NES19MQU5HVUFHRV9WQUxVRV9ET1RORVQuXG4gKi9cbnZhciBURUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19ET1RORVQgPSBUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfRE9UTkVUO1xuLyoqXG4gKiBUaGUgbGFuZ3VhZ2Ugb2YgdGhlIHRlbGVtZXRyeSBTREsuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIFRFTEVNRVRSWV9TREtfTEFOR1VBR0VfVkFMVUVfRVJMQU5HLlxuICovXG52YXIgVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfRVJMQU5HID0gVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX0VSTEFORztcbi8qKlxuICogVGhlIGxhbmd1YWdlIG9mIHRoZSB0ZWxlbWV0cnkgU0RLLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBURUxFTUVUUllfU0RLX0xBTkdVQUdFX1ZBTFVFX0dPLlxuICovXG52YXIgVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfR08gPSBUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfR087XG4vKipcbiAqIFRoZSBsYW5ndWFnZSBvZiB0aGUgdGVsZW1ldHJ5IFNESy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgVEVMRU1FVFJZX1NES19MQU5HVUFHRV9WQUxVRV9KQVZBLlxuICovXG52YXIgVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfSkFWQSA9IFRNUF9URUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19KQVZBO1xuLyoqXG4gKiBUaGUgbGFuZ3VhZ2Ugb2YgdGhlIHRlbGVtZXRyeSBTREsuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIFRFTEVNRVRSWV9TREtfTEFOR1VBR0VfVkFMVUVfTk9ERUpTLlxuICovXG52YXIgVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfTk9ERUpTID0gVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX05PREVKUztcbi8qKlxuICogVGhlIGxhbmd1YWdlIG9mIHRoZSB0ZWxlbWV0cnkgU0RLLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBURUxFTUVUUllfU0RLX0xBTkdVQUdFX1ZBTFVFX1BIUC5cbiAqL1xudmFyIFRFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX1BIUCA9IFRNUF9URUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19QSFA7XG4vKipcbiAqIFRoZSBsYW5ndWFnZSBvZiB0aGUgdGVsZW1ldHJ5IFNESy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgVEVMRU1FVFJZX1NES19MQU5HVUFHRV9WQUxVRV9QWVRIT04uXG4gKi9cbnZhciBURUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19QWVRIT04gPSBUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfUFlUSE9OO1xuLyoqXG4gKiBUaGUgbGFuZ3VhZ2Ugb2YgdGhlIHRlbGVtZXRyeSBTREsuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIFRFTEVNRVRSWV9TREtfTEFOR1VBR0VfVkFMVUVfUlVCWS5cbiAqL1xudmFyIFRFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX1JVQlkgPSBUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfUlVCWTtcbi8qKlxuICogVGhlIGxhbmd1YWdlIG9mIHRoZSB0ZWxlbWV0cnkgU0RLLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBURUxFTUVUUllfU0RLX0xBTkdVQUdFX1ZBTFVFX1dFQkpTLlxuICovXG52YXIgVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfV0VCSlMgPSBUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfV0VCSlM7XG4vKipcbiAqIFRoZSBjb25zdGFudCBtYXAgb2YgdmFsdWVzIGZvciBUZWxlbWV0cnlTZGtMYW5ndWFnZVZhbHVlcy5cbiAqIEBkZXByZWNhdGVkIFVzZSB0aGUgVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfWFhYWFggY29uc3RhbnRzIHJhdGhlciB0aGFuIHRoZSBUZWxlbWV0cnlTZGtMYW5ndWFnZVZhbHVlcy5YWFhYWCBmb3IgYnVuZGxlIG1pbmlmaWNhdGlvbi5cbiAqL1xudmFyIFRlbGVtZXRyeVNka0xhbmd1YWdlVmFsdWVzID0gXG4vKiNfX1BVUkVfXyovIGNyZWF0ZUNvbnN0TWFwKFtcbiAgICBUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfQ1BQLFxuICAgIFRNUF9URUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19ET1RORVQsXG4gICAgVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX0VSTEFORyxcbiAgICBUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfR08sXG4gICAgVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX0pBVkEsXG4gICAgVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX05PREVKUyxcbiAgICBUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfUEhQLFxuICAgIFRNUF9URUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19QWVRIT04sXG4gICAgVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX1JVQlksXG4gICAgVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX1dFQkpTLFxuXSk7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgX2E7XG4vKiogQ29uc3RhbnRzIGRlc2NyaWJpbmcgdGhlIFNESyBpbiB1c2UgKi9cbnZhciBTREtfSU5GTyA9IChfYSA9IHt9LFxuICAgIF9hW1NFTVJFU0FUVFJTX1RFTEVNRVRSWV9TREtfTkFNRV0gPSAnb3BlbnRlbGVtZXRyeScsXG4gICAgX2FbU0VNUkVTQVRUUlNfUFJPQ0VTU19SVU5USU1FX05BTUVdID0gJ2Jyb3dzZXInLFxuICAgIF9hW1NFTVJFU0FUVFJTX1RFTEVNRVRSWV9TREtfTEFOR1VBR0VdID0gVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfV0VCSlMsXG4gICAgX2FbU0VNUkVTQVRUUlNfVEVMRU1FVFJZX1NES19WRVJTSU9OXSA9IFZFUlNJT04sXG4gICAgX2EpO1xuXG5leHBvcnQgeyBPU1RZUEVWQUxVRVNfTkVUQlNEIGFzICQsIEFXU0VDU0xBVU5DSFRZUEVWQUxVRVNfRUMyIGFzIEEsIENMT1VEUExBVEZPUk1WQUxVRVNfR0NQX0NPTVBVVEVfRU5HSU5FIGFzIEIsIENMT1VEUExBVEZPUk1WQUxVRVNfQUxJQkFCQV9DTE9VRF9FQ1MgYXMgQywgREVGQVVMVF9BVFRSSUJVVEVfQ09VTlRfTElNSVQgYXMgRCwgQ0xPVURQTEFURk9STVZBTFVFU19HQ1BfS1VCRVJORVRFU19FTkdJTkUgYXMgRSwgQ0xPVURQUk9WSURFUlZBTFVFU19BTElCQUJBX0NMT1VEIGFzIEYsIENMT1VEUFJPVklERVJWQUxVRVNfQVdTIGFzIEcsIENMT1VEUFJPVklERVJWQUxVRVNfQVpVUkUgYXMgSCwgQ0xPVURQUk9WSURFUlZBTFVFU19HQ1AgYXMgSSwgQ2xvdWRQbGF0Zm9ybVZhbHVlcyBhcyBKLCBDbG91ZFByb3ZpZGVyVmFsdWVzIGFzIEssIEhPU1RBUkNIVkFMVUVTX0FNRDY0IGFzIEwsIEhPU1RBUkNIVkFMVUVTX0FSTTMyIGFzIE0sIEhPU1RBUkNIVkFMVUVTX0FSTTY0IGFzIE4sIEhPU1RBUkNIVkFMVUVTX0lBNjQgYXMgTywgSE9TVEFSQ0hWQUxVRVNfUFBDMzIgYXMgUCwgSE9TVEFSQ0hWQUxVRVNfUFBDNjQgYXMgUSwgSE9TVEFSQ0hWQUxVRVNfWDg2IGFzIFIsIFNFTVJFU0FUVFJTX1NFUlZJQ0VfTkFNRSBhcyBTLCBUcmFjZXNTYW1wbGVyVmFsdWVzIGFzIFQsIEhvc3RBcmNoVmFsdWVzIGFzIFUsIE9TVFlQRVZBTFVFU19BSVggYXMgViwgT1NUWVBFVkFMVUVTX0RBUldJTiBhcyBXLCBPU1RZUEVWQUxVRVNfRFJBR09ORkxZQlNEIGFzIFgsIE9TVFlQRVZBTFVFU19GUkVFQlNEIGFzIFksIE9TVFlQRVZBTFVFU19IUFVYIGFzIFosIE9TVFlQRVZBTFVFU19MSU5VWCBhcyBfLCBTRU1SRVNBVFRSU19URUxFTUVUUllfU0RLX0xBTkdVQUdFIGFzIGEsIFNFTVJFU0FUVFJTX09TX1RZUEUgYXMgYSQsIE9TVFlQRVZBTFVFU19PUEVOQlNEIGFzIGEwLCBPU1RZUEVWQUxVRVNfU09MQVJJUyBhcyBhMSwgT1NUWVBFVkFMVUVTX1dJTkRPV1MgYXMgYTIsIE9TVFlQRVZBTFVFU19aX09TIGFzIGEzLCBPc1R5cGVWYWx1ZXMgYXMgYTQsIFNFTVJFU0FUVFJTX0FXU19FQ1NfQ0xVU1RFUl9BUk4gYXMgYTUsIFNFTVJFU0FUVFJTX0FXU19FQ1NfQ09OVEFJTkVSX0FSTiBhcyBhNiwgU0VNUkVTQVRUUlNfQVdTX0VDU19MQVVOQ0hUWVBFIGFzIGE3LCBTRU1SRVNBVFRSU19BV1NfRUNTX1RBU0tfQVJOIGFzIGE4LCBTRU1SRVNBVFRSU19BV1NfRUNTX1RBU0tfRkFNSUxZIGFzIGE5LCBTRU1SRVNBVFRSU19IT1NUX0lEIGFzIGFBLCBTRU1SRVNBVFRSU19IT1NUX0lNQUdFX0lEIGFzIGFCLCBTRU1SRVNBVFRSU19IT1NUX0lNQUdFX05BTUUgYXMgYUMsIFNFTVJFU0FUVFJTX0hPU1RfSU1BR0VfVkVSU0lPTiBhcyBhRCwgU0VNUkVTQVRUUlNfSE9TVF9OQU1FIGFzIGFFLCBTRU1SRVNBVFRSU19IT1NUX1RZUEUgYXMgYUYsIFNFTVJFU0FUVFJTX0s4U19DTFVTVEVSX05BTUUgYXMgYUcsIFNFTVJFU0FUVFJTX0s4U19DT05UQUlORVJfTkFNRSBhcyBhSCwgU0VNUkVTQVRUUlNfSzhTX0NST05KT0JfTkFNRSBhcyBhSSwgU0VNUkVTQVRUUlNfSzhTX0NST05KT0JfVUlEIGFzIGFKLCBTRU1SRVNBVFRSU19LOFNfREFFTU9OU0VUX05BTUUgYXMgYUssIFNFTVJFU0FUVFJTX0s4U19EQUVNT05TRVRfVUlEIGFzIGFMLCBTRU1SRVNBVFRSU19LOFNfREVQTE9ZTUVOVF9OQU1FIGFzIGFNLCBTRU1SRVNBVFRSU19LOFNfREVQTE9ZTUVOVF9VSUQgYXMgYU4sIFNFTVJFU0FUVFJTX0s4U19KT0JfTkFNRSBhcyBhTywgU0VNUkVTQVRUUlNfSzhTX0pPQl9VSUQgYXMgYVAsIFNFTVJFU0FUVFJTX0s4U19OQU1FU1BBQ0VfTkFNRSBhcyBhUSwgU0VNUkVTQVRUUlNfSzhTX05PREVfTkFNRSBhcyBhUiwgU0VNUkVTQVRUUlNfSzhTX05PREVfVUlEIGFzIGFTLCBTRU1SRVNBVFRSU19LOFNfUE9EX05BTUUgYXMgYVQsIFNFTVJFU0FUVFJTX0s4U19QT0RfVUlEIGFzIGFVLCBTRU1SRVNBVFRSU19LOFNfUkVQTElDQVNFVF9OQU1FIGFzIGFWLCBTRU1SRVNBVFRSU19LOFNfUkVQTElDQVNFVF9VSUQgYXMgYVcsIFNFTVJFU0FUVFJTX0s4U19TVEFURUZVTFNFVF9OQU1FIGFzIGFYLCBTRU1SRVNBVFRSU19LOFNfU1RBVEVGVUxTRVRfVUlEIGFzIGFZLCBTRU1SRVNBVFRSU19PU19ERVNDUklQVElPTiBhcyBhWiwgU0VNUkVTQVRUUlNfT1NfTkFNRSBhcyBhXywgU0VNUkVTQVRUUlNfQVdTX0VDU19UQVNLX1JFVklTSU9OIGFzIGFhLCBTRU1SRVNBVFRSU19BV1NfRUtTX0NMVVNURVJfQVJOIGFzIGFiLCBTRU1SRVNBVFRSU19BV1NfTE9HX0dST1VQX0FSTlMgYXMgYWMsIFNFTVJFU0FUVFJTX0FXU19MT0dfR1JPVVBfTkFNRVMgYXMgYWQsIFNFTVJFU0FUVFJTX0FXU19MT0dfU1RSRUFNX0FSTlMgYXMgYWUsIFNFTVJFU0FUVFJTX0FXU19MT0dfU1RSRUFNX05BTUVTIGFzIGFmLCBTRU1SRVNBVFRSU19DTE9VRF9BQ0NPVU5UX0lEIGFzIGFnLCBTRU1SRVNBVFRSU19DTE9VRF9BVkFJTEFCSUxJVFlfWk9ORSBhcyBhaCwgU0VNUkVTQVRUUlNfQ0xPVURfUExBVEZPUk0gYXMgYWksIFNFTVJFU0FUVFJTX0NMT1VEX1BST1ZJREVSIGFzIGFqLCBTRU1SRVNBVFRSU19DTE9VRF9SRUdJT04gYXMgYWssIFNFTVJFU0FUVFJTX0NPTlRBSU5FUl9JRCBhcyBhbCwgU0VNUkVTQVRUUlNfQ09OVEFJTkVSX0lNQUdFX05BTUUgYXMgYW0sIFNFTVJFU0FUVFJTX0NPTlRBSU5FUl9JTUFHRV9UQUcgYXMgYW4sIFNFTVJFU0FUVFJTX0NPTlRBSU5FUl9OQU1FIGFzIGFvLCBTRU1SRVNBVFRSU19DT05UQUlORVJfUlVOVElNRSBhcyBhcCwgU0VNUkVTQVRUUlNfREVQTE9ZTUVOVF9FTlZJUk9OTUVOVCBhcyBhcSwgU0VNUkVTQVRUUlNfREVWSUNFX0lEIGFzIGFyLCBTRU1SRVNBVFRSU19ERVZJQ0VfTU9ERUxfSURFTlRJRklFUiBhcyBhcywgU0VNUkVTQVRUUlNfREVWSUNFX01PREVMX05BTUUgYXMgYXQsIFNFTVJFU0FUVFJTX0ZBQVNfSUQgYXMgYXUsIFNFTVJFU0FUVFJTX0ZBQVNfSU5TVEFOQ0UgYXMgYXYsIFNFTVJFU0FUVFJTX0ZBQVNfTUFYX01FTU9SWSBhcyBhdywgU0VNUkVTQVRUUlNfRkFBU19OQU1FIGFzIGF4LCBTRU1SRVNBVFRSU19GQUFTX1ZFUlNJT04gYXMgYXksIFNFTVJFU0FUVFJTX0hPU1RfQVJDSCBhcyBheiwgU0RLX0lORk8gYXMgYiwgU0VNUkVTQVRUUlNfT1NfVkVSU0lPTiBhcyBiMCwgU0VNUkVTQVRUUlNfUFJPQ0VTU19DT01NQU5EIGFzIGIxLCBTRU1SRVNBVFRSU19QUk9DRVNTX0NPTU1BTkRfQVJHUyBhcyBiMiwgU0VNUkVTQVRUUlNfUFJPQ0VTU19DT01NQU5EX0xJTkUgYXMgYjMsIFNFTVJFU0FUVFJTX1BST0NFU1NfRVhFQ1VUQUJMRV9OQU1FIGFzIGI0LCBTRU1SRVNBVFRSU19QUk9DRVNTX0VYRUNVVEFCTEVfUEFUSCBhcyBiNSwgU0VNUkVTQVRUUlNfUFJPQ0VTU19PV05FUiBhcyBiNiwgU0VNUkVTQVRUUlNfUFJPQ0VTU19QSUQgYXMgYjcsIFNFTVJFU0FUVFJTX1NFUlZJQ0VfSU5TVEFOQ0VfSUQgYXMgYjgsIFNFTVJFU0FUVFJTX1NFUlZJQ0VfTkFNRVNQQUNFIGFzIGI5LCBTRU1SRVNBVFRSU19TRVJWSUNFX1ZFUlNJT04gYXMgYmEsIFNFTVJFU0FUVFJTX1RFTEVNRVRSWV9BVVRPX1ZFUlNJT04gYXMgYmIsIFNFTVJFU0FUVFJTX1dFQkVOR0lORV9ERVNDUklQVElPTiBhcyBiYywgU0VNUkVTQVRUUlNfV0VCRU5HSU5FX05BTUUgYXMgYmQsIFNFTVJFU0FUVFJTX1dFQkVOR0lORV9WRVJTSU9OIGFzIGJlLCBTZW1hbnRpY1Jlc291cmNlQXR0cmlidXRlcyBhcyBiZiwgVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfQ1BQIGFzIGJnLCBURUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19ET1RORVQgYXMgYmgsIFRFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX0VSTEFORyBhcyBiaSwgVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfR08gYXMgYmosIFRFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX0pBVkEgYXMgYmssIFRFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX05PREVKUyBhcyBibCwgVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfUEhQIGFzIGJtLCBURUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19QWVRIT04gYXMgYm4sIFRFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX1JVQlkgYXMgYm8sIFRFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX1dFQkpTIGFzIGJwLCBUZWxlbWV0cnlTZGtMYW5ndWFnZVZhbHVlcyBhcyBicSwgREVGQVVMVF9FTlZJUk9OTUVOVCBhcyBiciwgREVGQVVMVF9TUEFOX0FUVFJJQlVURV9QRVJfRVZFTlRfQ09VTlRfTElNSVQgYXMgYnMsIERFRkFVTFRfU1BBTl9BVFRSSUJVVEVfUEVSX0xJTktfQ09VTlRfTElNSVQgYXMgYnQsIFZFUlNJT04gYXMgYnUsIHBhcnNlRW52aXJvbm1lbnQgYXMgYnYsIFNFTVJFU0FUVFJTX1RFTEVNRVRSWV9TREtfTkFNRSBhcyBjLCBTRU1SRVNBVFRSU19URUxFTUVUUllfU0RLX1ZFUlNJT04gYXMgZCwgU0VNUkVTQVRUUlNfUFJPQ0VTU19SVU5USU1FX05BTUUgYXMgZSwgU0VNUkVTQVRUUlNfUFJPQ0VTU19SVU5USU1FX0RFU0NSSVBUSU9OIGFzIGYsIFNFTVJFU0FUVFJTX1BST0NFU1NfUlVOVElNRV9WRVJTSU9OIGFzIGcsIGdldEVudiBhcyBoLCBnZXRFbnZXaXRob3V0RGVmYXVsdHMgYXMgaSwgREVGQVVMVF9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUIGFzIGosIEFXU0VDU0xBVU5DSFRZUEVWQUxVRVNfRkFSR0FURSBhcyBrLCBBd3NFY3NMYXVuY2h0eXBlVmFsdWVzIGFzIGwsIENMT1VEUExBVEZPUk1WQUxVRVNfQUxJQkFCQV9DTE9VRF9GQyBhcyBtLCBDTE9VRFBMQVRGT1JNVkFMVUVTX0FXU19FQzIgYXMgbiwgQ0xPVURQTEFURk9STVZBTFVFU19BV1NfRUNTIGFzIG8sIENMT1VEUExBVEZPUk1WQUxVRVNfQVdTX0VLUyBhcyBwLCBDTE9VRFBMQVRGT1JNVkFMVUVTX0FXU19FTEFTVElDX0JFQU5TVEFMSyBhcyBxLCBDTE9VRFBMQVRGT1JNVkFMVUVTX0FXU19MQU1CREEgYXMgciwgQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9BS1MgYXMgcywgQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9BUFBfU0VSVklDRSBhcyB0LCBDTE9VRFBMQVRGT1JNVkFMVUVTX0FaVVJFX0NPTlRBSU5FUl9JTlNUQU5DRVMgYXMgdSwgQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9GVU5DVElPTlMgYXMgdiwgQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9WTSBhcyB3LCBDTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9BUFBfRU5HSU5FIGFzIHgsIENMT1VEUExBVEZPUk1WQUxVRVNfR0NQX0NMT1VEX0ZVTkNUSU9OUyBhcyB5LCBDTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9DTE9VRF9SVU4gYXMgeiB9OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQVMsU0FBeUI7QUFDbEMsU0FBUyxLQUFLQSxHQUFhLEtBQUtDLFNBQXNCO0FBaUJ0RCxJQUFJQztBQUFBLENBQ0gsU0FBVUEsR0FBcUI7QUFDNUIsRUFBQUEsRUFBb0IsWUFBZSxjQUNuQ0EsRUFBb0IsV0FBYyxhQUNsQ0EsRUFBb0IsdUJBQTBCLDBCQUM5Q0EsRUFBb0Isc0JBQXlCLHlCQUM3Q0EsRUFBb0IsMEJBQTZCLDRCQUNqREEsRUFBb0IsZUFBa0I7QUFDMUMsR0FBR0EsTUFBd0JBLElBQXNCLENBQUMsRUFBRTtBQWlCcEQsSUFBSUMsS0FBeUIsS0FJekJDLEtBQTJCLENBQUMsbUJBQW1CO0FBQ25ELFNBQVNDLEdBQWlCQyxHQUFLO0FBQzNCLFNBQVFGLEdBQXlCLFFBQVFFLENBQUcsSUFBSTtBQUNwRDtBQUNBLElBQUlDLEtBQTJCO0FBQUEsRUFDM0I7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0o7QUFDQSxTQUFTQyxHQUFnQkYsR0FBSztBQUMxQixTQUFRQyxHQUF5QixRQUFRRCxDQUFHLElBQUk7QUFDcEQ7QUFDQSxJQUFJRyxLQUF5QjtBQUFBLEVBQ3pCO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDSjtBQUNBLFNBQVNDLEdBQWNKLEdBQUs7QUFDeEIsU0FBT0csR0FBdUIsUUFBUUgsQ0FBRyxJQUFJO0FBQ2pEO0FBQ0EsSUFBSUssSUFBdUMsT0FDdkNDLElBQWdDLEtBQ2hDQyxLQUErQyxLQUMvQ0MsS0FBOEMsS0FJOUNDLElBQXNCO0FBQUEsRUFDdEIsbUJBQW1CO0FBQUEsRUFDbkIsZ0JBQWdCO0FBQUEsRUFDaEIsK0JBQStCO0FBQUEsRUFDL0IsNEJBQTRCO0FBQUEsRUFDNUIsVUFBVTtBQUFBLEVBQ1YseUJBQXlCO0FBQUEsRUFDekIsV0FBVztBQUFBLEVBQ1gseUJBQXlCO0FBQUEsRUFDekIsZ0NBQWdDO0FBQUEsRUFDaEMseUJBQXlCO0FBQUEsRUFDekIseUJBQXlCO0FBQUEsRUFDekIsMEJBQTBCO0FBQUEsRUFDMUIsaUNBQWlDO0FBQUEsRUFDakMsMEJBQTBCO0FBQUEsRUFDMUIsMEJBQTBCO0FBQUEsRUFDMUIsaUNBQWlDO0FBQUEsRUFDakMsaUNBQWlDO0FBQUEsRUFDakMsK0JBQStCO0FBQUEsRUFDL0IsK0JBQStCO0FBQUEsRUFDL0IsMkJBQTJCO0FBQUEsRUFDM0IsNkJBQTZCO0FBQUEsRUFDN0Isb0NBQW9DO0FBQUEsRUFDcEMscUNBQXFDO0FBQUEsRUFDckMsa0NBQWtDO0FBQUEsRUFDbEMsNEJBQTRCO0FBQUEsRUFDNUIsbUNBQW1DO0FBQUEsRUFDbkMsb0NBQW9DO0FBQUEsRUFDcEMsaUNBQWlDO0FBQUEsRUFDakMsNEJBQTRCO0FBQUEsRUFDNUIsbUNBQW1DO0FBQUEsRUFDbkMsb0NBQW9DO0FBQUEsRUFDcEMsaUNBQWlDO0FBQUEsRUFDakMsK0JBQStCO0FBQUEsRUFDL0IsZ0JBQWdCQyxFQUFhO0FBQUEsRUFDN0IsdUJBQXVCLENBQUM7QUFBQSxFQUN4QixrQkFBa0IsQ0FBQyxnQkFBZ0IsU0FBUztBQUFBLEVBQzVDLDBCQUEwQjtBQUFBLEVBQzFCLG1CQUFtQjtBQUFBLEVBQ25CLG1DQUFtQ0w7QUFBQSxFQUNuQyw0QkFBNEJDO0FBQUEsRUFDNUIsd0NBQXdDRDtBQUFBLEVBQ3hDLGlDQUFpQ0M7QUFBQSxFQUNqQyw2Q0FBNkNEO0FBQUEsRUFDN0Msc0NBQXNDQztBQUFBLEVBQ3RDLDZCQUE2QjtBQUFBLEVBQzdCLDRCQUE0QjtBQUFBLEVBQzVCLDJDQUEyQ0M7QUFBQSxFQUMzQywwQ0FBMENDO0FBQUEsRUFDMUMsc0JBQXNCO0FBQUEsRUFDdEIscUJBQXFCWixFQUFvQjtBQUFBLEVBQ3pDLHlCQUF5QjtBQUFBLEVBQ3pCLG9CQUFvQjtBQUFBLEVBQ3BCLDZCQUE2QjtBQUFBLEVBQzdCLG9DQUFvQztBQUFBLEVBQ3BDLHFDQUFxQztBQUFBLEVBQ3JDLGtDQUFrQztBQUFBLEVBQ2xDLGdDQUFnQztBQUFBLEVBQ2hDLHVDQUF1QztBQUFBLEVBQ3ZDLHdDQUF3QztBQUFBLEVBQ3hDLHFDQUFxQztBQUFBLEVBQ3JDLGdDQUFnQztBQUFBLEVBQ2hDLHVDQUF1QztBQUFBLEVBQ3ZDLHdDQUF3QztBQUFBLEVBQ3hDLHFDQUFxQztBQUFBLEVBQ3JDLCtCQUErQjtBQUFBLEVBQy9CLHNDQUFzQztBQUFBLEVBQ3RDLHVDQUF1QztBQUFBLEVBQ3ZDLG9DQUFvQztBQUFBLEVBQ3BDLHVDQUF1QztBQUFBLEVBQ3ZDLDhDQUE4QztBQUFBLEVBQzlDLCtDQUErQztBQUFBLEVBQy9DLDRDQUE0QztBQUFBLEVBQzVDLDZCQUE2QjtBQUFBLEVBQzdCLG9DQUFvQztBQUFBLEVBQ3BDLHFDQUFxQztBQUFBLEVBQ3JDLGtDQUFrQztBQUFBLEVBQ2xDLG1EQUFtRDtBQUFBLEVBQ25ELCtCQUErQixDQUFDO0FBQ3BDO0FBTUEsU0FBU2UsR0FBYVgsR0FBS1ksR0FBYUMsR0FBUTtBQUM1QyxNQUFJLFNBQU9BLEVBQU9iLENBQUcsSUFBTSxNQUczQjtBQUFBLFFBQUljLElBQVEsT0FBT0QsRUFBT2IsQ0FBRyxDQUFDO0FBRTlCLElBQUFZLEVBQVlaLENBQUcsSUFBSWMsRUFBTSxZQUFZLE1BQU07QUFBQTtBQUMvQztBQVNBLFNBQVNDLEdBQVlDLEdBQU1KLEdBQWFDLEdBQVFJLEdBQUtDLEdBQUs7QUFHdEQsTUFGSUQsTUFBUSxXQUFVQSxJQUFNLFNBQ3hCQyxNQUFRLFdBQVVBLElBQU0sUUFDeEIsT0FBT0wsRUFBT0csQ0FBSSxJQUFNLEtBQWE7QUFDckMsUUFBSUYsSUFBUSxPQUFPRCxFQUFPRyxDQUFJLENBQUM7QUFDL0IsSUFBSyxNQUFNRixDQUFLLE1BQ1JBLElBQVFHLElBQ1JMLEVBQVlJLENBQUksSUFBSUMsSUFFZkgsSUFBUUksSUFDYk4sRUFBWUksQ0FBSSxJQUFJRSxJQUdwQk4sRUFBWUksQ0FBSSxJQUFJRjtBQUFBLEVBR2hDO0FBQ0o7QUFRQSxTQUFTSyxHQUFnQkgsR0FBTUksR0FBUUMsR0FBT0MsR0FBVztBQUNyRCxFQUFJQSxNQUFjLFdBQVVBLElBQVl6QjtBQUN4QyxNQUFJMEIsSUFBYUYsRUFBTUwsQ0FBSTtBQUMzQixFQUFJLE9BQU9PLEtBQWUsYUFDdEJILEVBQU9KLENBQUksSUFBSU8sRUFBVyxNQUFNRCxDQUFTLEVBQUUsSUFBSSxTQUFVRSxHQUFHO0FBQUUsV0FBT0EsRUFBRSxLQUFLO0FBQUEsRUFBRyxDQUFDO0FBRXhGO0FBRUEsSUFBSUMsS0FBYztBQUFBLEVBQ2QsS0FBS2YsRUFBYTtBQUFBLEVBQ2xCLFNBQVNBLEVBQWE7QUFBQSxFQUN0QixPQUFPQSxFQUFhO0FBQUEsRUFDcEIsTUFBTUEsRUFBYTtBQUFBLEVBQ25CLE1BQU1BLEVBQWE7QUFBQSxFQUNuQixPQUFPQSxFQUFhO0FBQUEsRUFDcEIsTUFBTUEsRUFBYTtBQUN2QjtBQU9BLFNBQVNnQixHQUFtQjFCLEdBQUtZLEdBQWFDLEdBQVE7QUFDbEQsTUFBSUMsSUFBUUQsRUFBT2IsQ0FBRztBQUN0QixNQUFJLE9BQU9jLEtBQVUsVUFBVTtBQUMzQixRQUFJYSxJQUFXRixHQUFZWCxFQUFNLFlBQVksQ0FBQztBQUM5QyxJQUFJYSxLQUFZLFNBQ1pmLEVBQVlaLENBQUcsSUFBSTJCO0FBQUEsRUFFM0I7QUFDSjtBQUtBLFNBQVNDLEVBQWlCZixHQUFRO0FBQzlCLE1BQUlELElBQWMsQ0FBQztBQUNuQixXQUFTaUIsS0FBT3BCLEdBQXFCO0FBQ2pDLFFBQUlULElBQU02QjtBQUNWLFlBQVE3QixHQUFLO0FBQUEsTUFDVCxLQUFLO0FBQ0QsUUFBQTBCLEdBQW1CMUIsR0FBS1ksR0FBYUMsQ0FBTTtBQUMzQztBQUFBLE1BQ0o7QUFDSSxZQUFJZCxHQUFpQkMsQ0FBRztBQUNwQixVQUFBVyxHQUFhWCxHQUFLWSxHQUFhQyxDQUFNO0FBQUEsaUJBRWhDWCxHQUFnQkYsQ0FBRztBQUN4QixVQUFBZSxHQUFZZixHQUFLWSxHQUFhQyxDQUFNO0FBQUEsaUJBRS9CVCxHQUFjSixDQUFHO0FBQ3RCLFVBQUFtQixHQUFnQm5CLEdBQUtZLEdBQWFDLENBQU07QUFBQSxhQUV2QztBQUNELGNBQUlDLElBQVFELEVBQU9iLENBQUc7QUFDdEIsVUFBSSxPQUFPYyxJQUFVLE9BQWVBLE1BQVUsU0FDMUNGLEVBQVlaLENBQUcsSUFBSSxPQUFPYyxDQUFLO0FBQUEsUUFFdkM7QUFBQSxJQUNSO0FBQUEsRUFDSjtBQUNBLFNBQU9GO0FBQ1g7QUFvQkEsU0FBU2tCLEtBQVM7QUFDZCxNQUFJQyxJQUFZSCxFQUFpQmxDLENBQVc7QUFDNUMsU0FBTyxPQUFPLE9BQU8sQ0FBQyxHQUFHZSxHQUFxQnNCLENBQVM7QUFDM0Q7QUFDQSxTQUFTQyxLQUF3QjtBQUM3QixTQUFPSixFQUFpQmxDLENBQVc7QUFDdkM7QUFrQkEsSUFBSXVDLEtBQVUsVUF5QlZDLElBQXFCLGtCQUNyQkMsSUFBdUIsb0JBQ3ZCQyxJQUFtQixnQkFDbkJDLElBQThCLDJCQUM5QkMsSUFBcUIsa0JBQ3JCQyxJQUE0Qix5QkFDNUJDLElBQTBCLHVCQUMxQkMsSUFBeUIsc0JBQ3pCQyxJQUF1QixvQkFDdkJDLElBQTBCLHVCQUMxQkMsSUFBNEIseUJBQzVCQyxJQUEwQix1QkFDMUJDLElBQTBCLHVCQUMxQkMsSUFBeUIsc0JBQ3pCQyxJQUEyQix3QkFDM0JDLElBQTBCLHVCQUMxQkMsSUFBcUIsa0JBQ3JCQyxJQUFtQixnQkFDbkJDLElBQXdCLHFCQUN4QkMsSUFBMkIsd0JBQzNCQyxJQUEwQix1QkFDMUJDLElBQTZCLDBCQUM3QkMsSUFBZ0IsYUFDaEJDLElBQThCLDJCQUM5QkMsSUFBd0IscUJBQ3hCQyxJQUFnQixhQUNoQkMsSUFBYyxXQUNkQyxJQUFtQixnQkFDbkJDLElBQW9CLGlCQUNwQkMsSUFBc0IsbUJBQ3RCQyxJQUFjLFdBQ2RDLElBQWdCLGFBQ2hCQyxJQUFnQixhQUNoQkMsSUFBZ0IsYUFDaEJDLElBQXNCLG1CQUN0QkMsSUFBb0IsaUJBQ3BCQyxJQUF5QixzQkFDekJDLElBQXVCLG9CQUN2QkMsSUFBb0IsaUJBQ3BCQyxLQUFtQixnQkFDbkJDLEtBQXlCLHNCQUN6QkMsS0FBa0IsZUFDbEJDLEtBQW1CLGdCQUNuQkMsS0FBeUIsc0JBQ3pCQyxLQUF5QixzQkFDekJDLEtBQTBCLHVCQUMxQkMsS0FBeUIsc0JBQ3pCQyxLQUEwQix1QkFDMUJDLEtBQTBCLHVCQUMxQkMsS0FBMkIsd0JBQzNCQyxLQUF3QixxQkFDeEJDLEtBQXlCLHNCQUN6QkMsS0FBa0IsZUFDbEJDLEtBQW1CLGdCQUNuQkMsS0FBc0IsbUJBQ3RCQyxLQUF1QixvQkFDdkJDLEtBQWMsV0FDZEMsS0FBcUIsa0JBQ3JCQyxLQUFjLFdBQ2RDLEtBQWlCLGNBQ2pCQyxLQUFrQixlQUNsQkMsS0FBOEIsMkJBQzlCQyxLQUE4QiwyQkFDOUJDLEtBQXNCLG1CQUN0QkMsS0FBMkIsd0JBQzNCQyxLQUEyQix3QkFDM0JDLEtBQW9CLGlCQUNwQkMsS0FBMkIsd0JBQzNCQyxLQUE4QiwyQkFDOUJDLEtBQWtDLCtCQUNsQ0MsS0FBbUIsZ0JBQ25CQyxLQUF3QixxQkFDeEJDLEtBQTBCLHVCQUMxQkMsS0FBc0IsbUJBQ3RCQyxLQUF5QixzQkFDekJDLEtBQTZCLDBCQUM3QkMsS0FBNEIseUJBQzVCQyxLQUE2QiwwQkFDN0JDLEtBQXFCLGtCQUNyQkMsS0FBd0IscUJBQ3hCQyxLQUE0Qix5QkFNNUJDLEtBQTZCakYsR0FNN0JrRixLQUErQmpGLEdBTS9Ca0YsS0FBMkJqRixHQVEzQmtGLEtBQXNDakYsR0FRdENrRixLQUE2QmpGLEdBTTdCa0YsS0FBb0NqRixHQU1wQ2tGLEtBQWtDakYsR0FNbENrRixLQUFpQ2pGLEdBTWpDa0YsS0FBK0JqRixHQU0vQmtGLEtBQWtDakYsR0FNbENrRixLQUFvQ2pGLEdBTXBDa0YsS0FBa0NqRixHQVFsQ2tGLEtBQWtDakYsR0FRbENrRixLQUFpQ2pGLEdBTWpDa0YsS0FBbUNqRixHQVFuQ2tGLEtBQWtDakYsR0FNbENrRixLQUE2QmpGLEdBTTdCa0YsS0FBMkJqRixHQU0zQmtGLEtBQWdDakYsR0FNaENrRixLQUFtQ2pGLEdBTW5Da0YsS0FBa0NqRixHQU1sQ2tGLEtBQXFDakYsR0FRckNrRixLQUF3QmpGLEdBUXhCa0YsS0FBc0NqRixHQVF0Q2tGLEtBQWdDakYsR0FRaENrRixLQUF3QmpGLEdBcUJ4QmtGLEtBQXNCakYsR0FnQnRCa0YsS0FBMkJqRixHQVEzQmtGLEtBQTRCakYsR0FRNUJrRixLQUE4QmpGLEdBTTlCa0YsS0FBc0JqRixHQU10QmtGLEtBQXdCakYsR0FNeEJrRixLQUF3QmpGLEdBTXhCa0YsS0FBd0JqRixHQU14QmtGLEtBQThCakYsR0FNOUJrRixLQUE0QmpGLEdBTTVCa0YsS0FBaUNqRixHQU1qQ2tGLEtBQStCakYsR0FNL0JrRixLQUE0QmpGLEdBTTVCa0YsS0FBMkJqRixJQU0zQmtGLEtBQWlDakYsSUFNakNrRixLQUEwQmpGLElBTTFCa0YsS0FBMkJqRixJQU0zQmtGLEtBQWlDakYsSUFNakNrRixLQUFpQ2pGLElBTWpDa0YsS0FBa0NqRixJQU1sQ2tGLEtBQWlDakYsSUFNakNrRixLQUFrQ2pGLElBTWxDa0YsS0FBa0NqRixJQU1sQ2tGLEtBQW1DakYsSUFNbkNrRixLQUFnQ2pGLElBTWhDa0YsS0FBaUNqRixJQU1qQ2tGLEtBQTBCakYsSUFNMUJrRixLQUEyQmpGLElBTTNCa0YsS0FBOEJqRixJQU05QmtGLEtBQStCakYsSUFNL0JrRixLQUFzQmpGLElBTXRCa0YsS0FBNkJqRixJQU03QmtGLEtBQXNCakYsSUFNdEJrRixLQUF5QmpGLElBTXpCa0YsS0FBMEJqRixJQU0xQmtGLEtBQXNDakYsSUFNdENrRixLQUFzQ2pGLElBTXRDa0YsS0FBOEJqRixJQU05QmtGLEtBQW1DakYsSUFNbkNrRixLQUFtQ2pGLElBTW5Da0YsS0FBNEJqRixJQU01QmtGLEtBQW1DakYsSUFNbkNrRixLQUFzQ2pGLElBTXRDa0YsS0FBMENqRixJQVExQ2tGLEtBQTJCakYsSUFRM0JrRixLQUFnQ2pGLElBUWhDa0YsS0FBa0NqRixJQU1sQ2tGLEtBQThCakYsSUFNOUJrRixLQUFpQ2pGLElBTWpDa0YsS0FBcUNqRixJQU1yQ2tGLEtBQW9DakYsSUFNcENrRixLQUFxQ2pGLElBTXJDa0YsS0FBNkJqRixJQU03QmtGLEtBQWdDakYsSUFNaENrRixLQUFvQ2pGLElBS3BDa0YsS0FDVSxnQkFBQXpNLEVBQWU7QUFBQSxFQUN6QnVDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUNKLENBQUMsR0FRR21GLEtBQXdDLGlCQUN4Q0MsS0FBOEIsT0FDOUJDLEtBQWdDLFNBQ2hDQyxLQUE4QixPQU05QkMsS0FBb0NKLElBTXBDSyxLQUEwQkosSUFNMUJLLEtBQTRCSixJQU01QkssS0FBMEJKLElBSzFCSyxLQUNVLGdCQUFBbE4sRUFBZTtBQUFBLEVBQ3pCME07QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFDSixDQUFDLEdBVUdNLEtBQTRDLHFCQUM1Q0MsS0FBMkMsb0JBQzNDQyxLQUFrQyxXQUNsQ0MsS0FBa0MsV0FDbENDLEtBQWtDLFdBQ2xDQyxLQUFxQyxjQUNyQ0MsS0FBZ0QseUJBQ2hEQyxLQUFtQyxZQUNuQ0MsS0FBb0QsNkJBQ3BEQyxLQUFvQyxhQUNwQ0MsS0FBMEMsbUJBQzFDQyxLQUE0QyxxQkFDNUNDLEtBQTZDLHNCQUM3Q0MsS0FBd0MsaUJBQ3hDQyxLQUFnRCx5QkFDaERDLEtBQThDLHVCQUM5Q0MsS0FBeUMsa0JBUXpDQyxLQUF3Q2pCLElBUXhDa0IsS0FBdUNqQixJQVF2Q2tCLEtBQThCakIsSUFROUJrQixLQUE4QmpCLElBUTlCa0IsS0FBOEJqQixJQVE5QmtCLEtBQWlDakIsSUFRakNrQixLQUE0Q2pCLElBUTVDa0IsS0FBK0JqQixJQVEvQmtCLEtBQWdEakIsSUFRaERrQixLQUFnQ2pCLElBUWhDa0IsS0FBc0NqQixJQVF0Q2tCLEtBQXdDakIsSUFReENrQixLQUF5Q2pCLElBUXpDa0IsS0FBb0NqQixJQVFwQ2tCLEtBQTRDakIsSUFRNUNrQixLQUEwQ2pCLElBUTFDa0IsS0FBcUNqQixJQUtyQ2tCLEtBQ1UsZ0JBQUFyUCxFQUFlO0FBQUEsRUFDekJtTjtBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQ0osQ0FBQyxHQVFHbUIsS0FBaUMsT0FDakNDLEtBQXFDLFdBTXJDQyxLQUE2QkYsSUFNN0JHLEtBQWlDRixJQUtqQ0csS0FDVSxnQkFBQTFQLEVBQWU7QUFBQSxFQUN6QnNQO0FBQUEsRUFDQUM7QUFDSixDQUFDLEdBUUdJLEtBQTJCLFNBQzNCQyxLQUEyQixTQUMzQkMsS0FBMkIsU0FDM0JDLEtBQTBCLFFBQzFCQyxLQUEyQixTQUMzQkMsS0FBMkIsU0FDM0JDLEtBQXlCLE9BTXpCQyxLQUF1QlAsSUFNdkJRLEtBQXVCUCxJQU12QlEsS0FBdUJQLElBTXZCUSxLQUFzQlAsSUFNdEJRLEtBQXVCUCxJQU12QlEsS0FBdUJQLElBTXZCUSxLQUFxQlAsSUFLckJRLEtBQ1UsZ0JBQUF6USxFQUFlO0FBQUEsRUFDekIyUDtBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUNKLENBQUMsR0FRR1MsS0FBMkIsV0FDM0JDLEtBQXlCLFNBQ3pCQyxLQUEwQixVQUMxQkMsS0FBMkIsV0FDM0JDLEtBQTBCLFVBQzFCQyxLQUEyQixXQUMzQkMsS0FBZ0MsZ0JBQ2hDQyxLQUF3QixRQUN4QkMsS0FBdUIsT0FDdkJDLEtBQTJCLFdBQzNCQyxLQUF3QixRQU14QkMsS0FBdUJYLElBTXZCWSxLQUFxQlgsSUFNckJZLEtBQXNCWCxJQU10QlksS0FBdUJYLElBTXZCWSxLQUFzQlgsSUFNdEJZLEtBQXVCWCxJQU12QlksS0FBNEJYLElBTTVCWSxLQUFvQlgsSUFNcEJZLEtBQW1CWCxJQU1uQlksS0FBdUJYLElBTXZCWSxLQUFvQlgsSUFLcEJZLEtBQ1UsZ0JBQUFoUyxFQUFlO0FBQUEsRUFDekIwUTtBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQ0osQ0FBQyxHQVFHYSxLQUFxQyxPQUNyQ0MsS0FBd0MsVUFDeENDLEtBQXdDLFVBQ3hDQyxLQUFvQyxNQUNwQ0MsS0FBc0MsUUFDdENDLEtBQXdDLFVBQ3hDQyxLQUFxQyxPQUNyQ0MsS0FBd0MsVUFDeENDLEtBQXNDLFFBQ3RDQyxLQUF1QyxTQU12Q0MsS0FBaUNWLElBTWpDVyxLQUFvQ1YsSUFNcENXLEtBQW9DVixJQU1wQ1csS0FBZ0NWLElBTWhDVyxLQUFrQ1YsSUFNbENXLEtBQW9DVixJQU1wQ1csS0FBaUNWLElBTWpDVyxLQUFvQ1YsSUFNcENXLEtBQWtDVixJQU1sQ1csS0FBbUNWLElBS25DVyxLQUNVLGdCQUFBclQsRUFBZTtBQUFBLEVBQ3pCaVM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFBQSxFQUNBQztBQUFBLEVBQ0FDO0FBQUEsRUFDQUM7QUFDSixDQUFDLEdBaUJHWSxHQUVBQyxNQUFZRCxJQUFLLENBQUMsR0FDbEJBLEVBQUdwSCxFQUE4QixJQUFJLGlCQUNyQ29ILEVBQUczSCxFQUFnQyxJQUFJLFdBQ3ZDMkgsRUFBR25ILEVBQWtDLElBQUlpSCxJQUN6Q0UsRUFBR2xILEVBQWlDLElBQUk5SixJQUN4Q2dSOyIsCiAgIm5hbWVzIjogWyJfZ2xvYmFsVGhpcyIsICJjcmVhdGVDb25zdE1hcCIsICJUcmFjZXNTYW1wbGVyVmFsdWVzIiwgIkRFRkFVTFRfTElTVF9TRVBBUkFUT1IiLCAiRU5WSVJPTk1FTlRfQk9PTEVBTl9LRVlTIiwgImlzRW52VmFyQUJvb2xlYW4iLCAia2V5IiwgIkVOVklST05NRU5UX05VTUJFUlNfS0VZUyIsICJpc0VudlZhckFOdW1iZXIiLCAiRU5WSVJPTk1FTlRfTElTVFNfS0VZUyIsICJpc0VudlZhckFMaXN0IiwgIkRFRkFVTFRfQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVCIsICJERUZBVUxUX0FUVFJJQlVURV9DT1VOVF9MSU1JVCIsICJERUZBVUxUX1NQQU5fQVRUUklCVVRFX1BFUl9FVkVOVF9DT1VOVF9MSU1JVCIsICJERUZBVUxUX1NQQU5fQVRUUklCVVRFX1BFUl9MSU5LX0NPVU5UX0xJTUlUIiwgIkRFRkFVTFRfRU5WSVJPTk1FTlQiLCAiRGlhZ0xvZ0xldmVsIiwgInBhcnNlQm9vbGVhbiIsICJlbnZpcm9ubWVudCIsICJ2YWx1ZXMiLCAidmFsdWUiLCAicGFyc2VOdW1iZXIiLCAibmFtZSIsICJtaW4iLCAibWF4IiwgInBhcnNlU3RyaW5nTGlzdCIsICJvdXRwdXQiLCAiaW5wdXQiLCAic2VwYXJhdG9yIiwgImdpdmVuVmFsdWUiLCAidiIsICJsb2dMZXZlbE1hcCIsICJzZXRMb2dMZXZlbEZyb21FbnYiLCAidGhlTGV2ZWwiLCAicGFyc2VFbnZpcm9ubWVudCIsICJlbnYiLCAiZ2V0RW52IiwgImdsb2JhbEVudiIsICJnZXRFbnZXaXRob3V0RGVmYXVsdHMiLCAiVkVSU0lPTiIsICJUTVBfQ0xPVURfUFJPVklERVIiLCAiVE1QX0NMT1VEX0FDQ09VTlRfSUQiLCAiVE1QX0NMT1VEX1JFR0lPTiIsICJUTVBfQ0xPVURfQVZBSUxBQklMSVRZX1pPTkUiLCAiVE1QX0NMT1VEX1BMQVRGT1JNIiwgIlRNUF9BV1NfRUNTX0NPTlRBSU5FUl9BUk4iLCAiVE1QX0FXU19FQ1NfQ0xVU1RFUl9BUk4iLCAiVE1QX0FXU19FQ1NfTEFVTkNIVFlQRSIsICJUTVBfQVdTX0VDU19UQVNLX0FSTiIsICJUTVBfQVdTX0VDU19UQVNLX0ZBTUlMWSIsICJUTVBfQVdTX0VDU19UQVNLX1JFVklTSU9OIiwgIlRNUF9BV1NfRUtTX0NMVVNURVJfQVJOIiwgIlRNUF9BV1NfTE9HX0dST1VQX05BTUVTIiwgIlRNUF9BV1NfTE9HX0dST1VQX0FSTlMiLCAiVE1QX0FXU19MT0dfU1RSRUFNX05BTUVTIiwgIlRNUF9BV1NfTE9HX1NUUkVBTV9BUk5TIiwgIlRNUF9DT05UQUlORVJfTkFNRSIsICJUTVBfQ09OVEFJTkVSX0lEIiwgIlRNUF9DT05UQUlORVJfUlVOVElNRSIsICJUTVBfQ09OVEFJTkVSX0lNQUdFX05BTUUiLCAiVE1QX0NPTlRBSU5FUl9JTUFHRV9UQUciLCAiVE1QX0RFUExPWU1FTlRfRU5WSVJPTk1FTlQiLCAiVE1QX0RFVklDRV9JRCIsICJUTVBfREVWSUNFX01PREVMX0lERU5USUZJRVIiLCAiVE1QX0RFVklDRV9NT0RFTF9OQU1FIiwgIlRNUF9GQUFTX05BTUUiLCAiVE1QX0ZBQVNfSUQiLCAiVE1QX0ZBQVNfVkVSU0lPTiIsICJUTVBfRkFBU19JTlNUQU5DRSIsICJUTVBfRkFBU19NQVhfTUVNT1JZIiwgIlRNUF9IT1NUX0lEIiwgIlRNUF9IT1NUX05BTUUiLCAiVE1QX0hPU1RfVFlQRSIsICJUTVBfSE9TVF9BUkNIIiwgIlRNUF9IT1NUX0lNQUdFX05BTUUiLCAiVE1QX0hPU1RfSU1BR0VfSUQiLCAiVE1QX0hPU1RfSU1BR0VfVkVSU0lPTiIsICJUTVBfSzhTX0NMVVNURVJfTkFNRSIsICJUTVBfSzhTX05PREVfTkFNRSIsICJUTVBfSzhTX05PREVfVUlEIiwgIlRNUF9LOFNfTkFNRVNQQUNFX05BTUUiLCAiVE1QX0s4U19QT0RfVUlEIiwgIlRNUF9LOFNfUE9EX05BTUUiLCAiVE1QX0s4U19DT05UQUlORVJfTkFNRSIsICJUTVBfSzhTX1JFUExJQ0FTRVRfVUlEIiwgIlRNUF9LOFNfUkVQTElDQVNFVF9OQU1FIiwgIlRNUF9LOFNfREVQTE9ZTUVOVF9VSUQiLCAiVE1QX0s4U19ERVBMT1lNRU5UX05BTUUiLCAiVE1QX0s4U19TVEFURUZVTFNFVF9VSUQiLCAiVE1QX0s4U19TVEFURUZVTFNFVF9OQU1FIiwgIlRNUF9LOFNfREFFTU9OU0VUX1VJRCIsICJUTVBfSzhTX0RBRU1PTlNFVF9OQU1FIiwgIlRNUF9LOFNfSk9CX1VJRCIsICJUTVBfSzhTX0pPQl9OQU1FIiwgIlRNUF9LOFNfQ1JPTkpPQl9VSUQiLCAiVE1QX0s4U19DUk9OSk9CX05BTUUiLCAiVE1QX09TX1RZUEUiLCAiVE1QX09TX0RFU0NSSVBUSU9OIiwgIlRNUF9PU19OQU1FIiwgIlRNUF9PU19WRVJTSU9OIiwgIlRNUF9QUk9DRVNTX1BJRCIsICJUTVBfUFJPQ0VTU19FWEVDVVRBQkxFX05BTUUiLCAiVE1QX1BST0NFU1NfRVhFQ1VUQUJMRV9QQVRIIiwgIlRNUF9QUk9DRVNTX0NPTU1BTkQiLCAiVE1QX1BST0NFU1NfQ09NTUFORF9MSU5FIiwgIlRNUF9QUk9DRVNTX0NPTU1BTkRfQVJHUyIsICJUTVBfUFJPQ0VTU19PV05FUiIsICJUTVBfUFJPQ0VTU19SVU5USU1FX05BTUUiLCAiVE1QX1BST0NFU1NfUlVOVElNRV9WRVJTSU9OIiwgIlRNUF9QUk9DRVNTX1JVTlRJTUVfREVTQ1JJUFRJT04iLCAiVE1QX1NFUlZJQ0VfTkFNRSIsICJUTVBfU0VSVklDRV9OQU1FU1BBQ0UiLCAiVE1QX1NFUlZJQ0VfSU5TVEFOQ0VfSUQiLCAiVE1QX1NFUlZJQ0VfVkVSU0lPTiIsICJUTVBfVEVMRU1FVFJZX1NES19OQU1FIiwgIlRNUF9URUxFTUVUUllfU0RLX0xBTkdVQUdFIiwgIlRNUF9URUxFTUVUUllfU0RLX1ZFUlNJT04iLCAiVE1QX1RFTEVNRVRSWV9BVVRPX1ZFUlNJT04iLCAiVE1QX1dFQkVOR0lORV9OQU1FIiwgIlRNUF9XRUJFTkdJTkVfVkVSU0lPTiIsICJUTVBfV0VCRU5HSU5FX0RFU0NSSVBUSU9OIiwgIlNFTVJFU0FUVFJTX0NMT1VEX1BST1ZJREVSIiwgIlNFTVJFU0FUVFJTX0NMT1VEX0FDQ09VTlRfSUQiLCAiU0VNUkVTQVRUUlNfQ0xPVURfUkVHSU9OIiwgIlNFTVJFU0FUVFJTX0NMT1VEX0FWQUlMQUJJTElUWV9aT05FIiwgIlNFTVJFU0FUVFJTX0NMT1VEX1BMQVRGT1JNIiwgIlNFTVJFU0FUVFJTX0FXU19FQ1NfQ09OVEFJTkVSX0FSTiIsICJTRU1SRVNBVFRSU19BV1NfRUNTX0NMVVNURVJfQVJOIiwgIlNFTVJFU0FUVFJTX0FXU19FQ1NfTEFVTkNIVFlQRSIsICJTRU1SRVNBVFRSU19BV1NfRUNTX1RBU0tfQVJOIiwgIlNFTVJFU0FUVFJTX0FXU19FQ1NfVEFTS19GQU1JTFkiLCAiU0VNUkVTQVRUUlNfQVdTX0VDU19UQVNLX1JFVklTSU9OIiwgIlNFTVJFU0FUVFJTX0FXU19FS1NfQ0xVU1RFUl9BUk4iLCAiU0VNUkVTQVRUUlNfQVdTX0xPR19HUk9VUF9OQU1FUyIsICJTRU1SRVNBVFRSU19BV1NfTE9HX0dST1VQX0FSTlMiLCAiU0VNUkVTQVRUUlNfQVdTX0xPR19TVFJFQU1fTkFNRVMiLCAiU0VNUkVTQVRUUlNfQVdTX0xPR19TVFJFQU1fQVJOUyIsICJTRU1SRVNBVFRSU19DT05UQUlORVJfTkFNRSIsICJTRU1SRVNBVFRSU19DT05UQUlORVJfSUQiLCAiU0VNUkVTQVRUUlNfQ09OVEFJTkVSX1JVTlRJTUUiLCAiU0VNUkVTQVRUUlNfQ09OVEFJTkVSX0lNQUdFX05BTUUiLCAiU0VNUkVTQVRUUlNfQ09OVEFJTkVSX0lNQUdFX1RBRyIsICJTRU1SRVNBVFRSU19ERVBMT1lNRU5UX0VOVklST05NRU5UIiwgIlNFTVJFU0FUVFJTX0RFVklDRV9JRCIsICJTRU1SRVNBVFRSU19ERVZJQ0VfTU9ERUxfSURFTlRJRklFUiIsICJTRU1SRVNBVFRSU19ERVZJQ0VfTU9ERUxfTkFNRSIsICJTRU1SRVNBVFRSU19GQUFTX05BTUUiLCAiU0VNUkVTQVRUUlNfRkFBU19JRCIsICJTRU1SRVNBVFRSU19GQUFTX1ZFUlNJT04iLCAiU0VNUkVTQVRUUlNfRkFBU19JTlNUQU5DRSIsICJTRU1SRVNBVFRSU19GQUFTX01BWF9NRU1PUlkiLCAiU0VNUkVTQVRUUlNfSE9TVF9JRCIsICJTRU1SRVNBVFRSU19IT1NUX05BTUUiLCAiU0VNUkVTQVRUUlNfSE9TVF9UWVBFIiwgIlNFTVJFU0FUVFJTX0hPU1RfQVJDSCIsICJTRU1SRVNBVFRSU19IT1NUX0lNQUdFX05BTUUiLCAiU0VNUkVTQVRUUlNfSE9TVF9JTUFHRV9JRCIsICJTRU1SRVNBVFRSU19IT1NUX0lNQUdFX1ZFUlNJT04iLCAiU0VNUkVTQVRUUlNfSzhTX0NMVVNURVJfTkFNRSIsICJTRU1SRVNBVFRSU19LOFNfTk9ERV9OQU1FIiwgIlNFTVJFU0FUVFJTX0s4U19OT0RFX1VJRCIsICJTRU1SRVNBVFRSU19LOFNfTkFNRVNQQUNFX05BTUUiLCAiU0VNUkVTQVRUUlNfSzhTX1BPRF9VSUQiLCAiU0VNUkVTQVRUUlNfSzhTX1BPRF9OQU1FIiwgIlNFTVJFU0FUVFJTX0s4U19DT05UQUlORVJfTkFNRSIsICJTRU1SRVNBVFRSU19LOFNfUkVQTElDQVNFVF9VSUQiLCAiU0VNUkVTQVRUUlNfSzhTX1JFUExJQ0FTRVRfTkFNRSIsICJTRU1SRVNBVFRSU19LOFNfREVQTE9ZTUVOVF9VSUQiLCAiU0VNUkVTQVRUUlNfSzhTX0RFUExPWU1FTlRfTkFNRSIsICJTRU1SRVNBVFRSU19LOFNfU1RBVEVGVUxTRVRfVUlEIiwgIlNFTVJFU0FUVFJTX0s4U19TVEFURUZVTFNFVF9OQU1FIiwgIlNFTVJFU0FUVFJTX0s4U19EQUVNT05TRVRfVUlEIiwgIlNFTVJFU0FUVFJTX0s4U19EQUVNT05TRVRfTkFNRSIsICJTRU1SRVNBVFRSU19LOFNfSk9CX1VJRCIsICJTRU1SRVNBVFRSU19LOFNfSk9CX05BTUUiLCAiU0VNUkVTQVRUUlNfSzhTX0NST05KT0JfVUlEIiwgIlNFTVJFU0FUVFJTX0s4U19DUk9OSk9CX05BTUUiLCAiU0VNUkVTQVRUUlNfT1NfVFlQRSIsICJTRU1SRVNBVFRSU19PU19ERVNDUklQVElPTiIsICJTRU1SRVNBVFRSU19PU19OQU1FIiwgIlNFTVJFU0FUVFJTX09TX1ZFUlNJT04iLCAiU0VNUkVTQVRUUlNfUFJPQ0VTU19QSUQiLCAiU0VNUkVTQVRUUlNfUFJPQ0VTU19FWEVDVVRBQkxFX05BTUUiLCAiU0VNUkVTQVRUUlNfUFJPQ0VTU19FWEVDVVRBQkxFX1BBVEgiLCAiU0VNUkVTQVRUUlNfUFJPQ0VTU19DT01NQU5EIiwgIlNFTVJFU0FUVFJTX1BST0NFU1NfQ09NTUFORF9MSU5FIiwgIlNFTVJFU0FUVFJTX1BST0NFU1NfQ09NTUFORF9BUkdTIiwgIlNFTVJFU0FUVFJTX1BST0NFU1NfT1dORVIiLCAiU0VNUkVTQVRUUlNfUFJPQ0VTU19SVU5USU1FX05BTUUiLCAiU0VNUkVTQVRUUlNfUFJPQ0VTU19SVU5USU1FX1ZFUlNJT04iLCAiU0VNUkVTQVRUUlNfUFJPQ0VTU19SVU5USU1FX0RFU0NSSVBUSU9OIiwgIlNFTVJFU0FUVFJTX1NFUlZJQ0VfTkFNRSIsICJTRU1SRVNBVFRSU19TRVJWSUNFX05BTUVTUEFDRSIsICJTRU1SRVNBVFRSU19TRVJWSUNFX0lOU1RBTkNFX0lEIiwgIlNFTVJFU0FUVFJTX1NFUlZJQ0VfVkVSU0lPTiIsICJTRU1SRVNBVFRSU19URUxFTUVUUllfU0RLX05BTUUiLCAiU0VNUkVTQVRUUlNfVEVMRU1FVFJZX1NES19MQU5HVUFHRSIsICJTRU1SRVNBVFRSU19URUxFTUVUUllfU0RLX1ZFUlNJT04iLCAiU0VNUkVTQVRUUlNfVEVMRU1FVFJZX0FVVE9fVkVSU0lPTiIsICJTRU1SRVNBVFRSU19XRUJFTkdJTkVfTkFNRSIsICJTRU1SRVNBVFRSU19XRUJFTkdJTkVfVkVSU0lPTiIsICJTRU1SRVNBVFRSU19XRUJFTkdJTkVfREVTQ1JJUFRJT04iLCAiU2VtYW50aWNSZXNvdXJjZUF0dHJpYnV0ZXMiLCAiVE1QX0NMT1VEUFJPVklERVJWQUxVRVNfQUxJQkFCQV9DTE9VRCIsICJUTVBfQ0xPVURQUk9WSURFUlZBTFVFU19BV1MiLCAiVE1QX0NMT1VEUFJPVklERVJWQUxVRVNfQVpVUkUiLCAiVE1QX0NMT1VEUFJPVklERVJWQUxVRVNfR0NQIiwgIkNMT1VEUFJPVklERVJWQUxVRVNfQUxJQkFCQV9DTE9VRCIsICJDTE9VRFBST1ZJREVSVkFMVUVTX0FXUyIsICJDTE9VRFBST1ZJREVSVkFMVUVTX0FaVVJFIiwgIkNMT1VEUFJPVklERVJWQUxVRVNfR0NQIiwgIkNsb3VkUHJvdmlkZXJWYWx1ZXMiLCAiVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQUxJQkFCQV9DTE9VRF9FQ1MiLCAiVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQUxJQkFCQV9DTE9VRF9GQyIsICJUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BV1NfRUMyIiwgIlRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0FXU19FQ1MiLCAiVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVdTX0VLUyIsICJUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BV1NfTEFNQkRBIiwgIlRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0FXU19FTEFTVElDX0JFQU5TVEFMSyIsICJUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9WTSIsICJUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9DT05UQUlORVJfSU5TVEFOQ0VTIiwgIlRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0FaVVJFX0FLUyIsICJUTVBfQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9GVU5DVElPTlMiLCAiVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfQVBQX1NFUlZJQ0UiLCAiVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfR0NQX0NPTVBVVEVfRU5HSU5FIiwgIlRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9DTE9VRF9SVU4iLCAiVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfR0NQX0tVQkVSTkVURVNfRU5HSU5FIiwgIlRNUF9DTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9DTE9VRF9GVU5DVElPTlMiLCAiVE1QX0NMT1VEUExBVEZPUk1WQUxVRVNfR0NQX0FQUF9FTkdJTkUiLCAiQ0xPVURQTEFURk9STVZBTFVFU19BTElCQUJBX0NMT1VEX0VDUyIsICJDTE9VRFBMQVRGT1JNVkFMVUVTX0FMSUJBQkFfQ0xPVURfRkMiLCAiQ0xPVURQTEFURk9STVZBTFVFU19BV1NfRUMyIiwgIkNMT1VEUExBVEZPUk1WQUxVRVNfQVdTX0VDUyIsICJDTE9VRFBMQVRGT1JNVkFMVUVTX0FXU19FS1MiLCAiQ0xPVURQTEFURk9STVZBTFVFU19BV1NfTEFNQkRBIiwgIkNMT1VEUExBVEZPUk1WQUxVRVNfQVdTX0VMQVNUSUNfQkVBTlNUQUxLIiwgIkNMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfVk0iLCAiQ0xPVURQTEFURk9STVZBTFVFU19BWlVSRV9DT05UQUlORVJfSU5TVEFOQ0VTIiwgIkNMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfQUtTIiwgIkNMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfRlVOQ1RJT05TIiwgIkNMT1VEUExBVEZPUk1WQUxVRVNfQVpVUkVfQVBQX1NFUlZJQ0UiLCAiQ0xPVURQTEFURk9STVZBTFVFU19HQ1BfQ09NUFVURV9FTkdJTkUiLCAiQ0xPVURQTEFURk9STVZBTFVFU19HQ1BfQ0xPVURfUlVOIiwgIkNMT1VEUExBVEZPUk1WQUxVRVNfR0NQX0tVQkVSTkVURVNfRU5HSU5FIiwgIkNMT1VEUExBVEZPUk1WQUxVRVNfR0NQX0NMT1VEX0ZVTkNUSU9OUyIsICJDTE9VRFBMQVRGT1JNVkFMVUVTX0dDUF9BUFBfRU5HSU5FIiwgIkNsb3VkUGxhdGZvcm1WYWx1ZXMiLCAiVE1QX0FXU0VDU0xBVU5DSFRZUEVWQUxVRVNfRUMyIiwgIlRNUF9BV1NFQ1NMQVVOQ0hUWVBFVkFMVUVTX0ZBUkdBVEUiLCAiQVdTRUNTTEFVTkNIVFlQRVZBTFVFU19FQzIiLCAiQVdTRUNTTEFVTkNIVFlQRVZBTFVFU19GQVJHQVRFIiwgIkF3c0Vjc0xhdW5jaHR5cGVWYWx1ZXMiLCAiVE1QX0hPU1RBUkNIVkFMVUVTX0FNRDY0IiwgIlRNUF9IT1NUQVJDSFZBTFVFU19BUk0zMiIsICJUTVBfSE9TVEFSQ0hWQUxVRVNfQVJNNjQiLCAiVE1QX0hPU1RBUkNIVkFMVUVTX0lBNjQiLCAiVE1QX0hPU1RBUkNIVkFMVUVTX1BQQzMyIiwgIlRNUF9IT1NUQVJDSFZBTFVFU19QUEM2NCIsICJUTVBfSE9TVEFSQ0hWQUxVRVNfWDg2IiwgIkhPU1RBUkNIVkFMVUVTX0FNRDY0IiwgIkhPU1RBUkNIVkFMVUVTX0FSTTMyIiwgIkhPU1RBUkNIVkFMVUVTX0FSTTY0IiwgIkhPU1RBUkNIVkFMVUVTX0lBNjQiLCAiSE9TVEFSQ0hWQUxVRVNfUFBDMzIiLCAiSE9TVEFSQ0hWQUxVRVNfUFBDNjQiLCAiSE9TVEFSQ0hWQUxVRVNfWDg2IiwgIkhvc3RBcmNoVmFsdWVzIiwgIlRNUF9PU1RZUEVWQUxVRVNfV0lORE9XUyIsICJUTVBfT1NUWVBFVkFMVUVTX0xJTlVYIiwgIlRNUF9PU1RZUEVWQUxVRVNfREFSV0lOIiwgIlRNUF9PU1RZUEVWQUxVRVNfRlJFRUJTRCIsICJUTVBfT1NUWVBFVkFMVUVTX05FVEJTRCIsICJUTVBfT1NUWVBFVkFMVUVTX09QRU5CU0QiLCAiVE1QX09TVFlQRVZBTFVFU19EUkFHT05GTFlCU0QiLCAiVE1QX09TVFlQRVZBTFVFU19IUFVYIiwgIlRNUF9PU1RZUEVWQUxVRVNfQUlYIiwgIlRNUF9PU1RZUEVWQUxVRVNfU09MQVJJUyIsICJUTVBfT1NUWVBFVkFMVUVTX1pfT1MiLCAiT1NUWVBFVkFMVUVTX1dJTkRPV1MiLCAiT1NUWVBFVkFMVUVTX0xJTlVYIiwgIk9TVFlQRVZBTFVFU19EQVJXSU4iLCAiT1NUWVBFVkFMVUVTX0ZSRUVCU0QiLCAiT1NUWVBFVkFMVUVTX05FVEJTRCIsICJPU1RZUEVWQUxVRVNfT1BFTkJTRCIsICJPU1RZUEVWQUxVRVNfRFJBR09ORkxZQlNEIiwgIk9TVFlQRVZBTFVFU19IUFVYIiwgIk9TVFlQRVZBTFVFU19BSVgiLCAiT1NUWVBFVkFMVUVTX1NPTEFSSVMiLCAiT1NUWVBFVkFMVUVTX1pfT1MiLCAiT3NUeXBlVmFsdWVzIiwgIlRNUF9URUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19DUFAiLCAiVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX0RPVE5FVCIsICJUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfRVJMQU5HIiwgIlRNUF9URUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19HTyIsICJUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfSkFWQSIsICJUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfTk9ERUpTIiwgIlRNUF9URUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19QSFAiLCAiVE1QX1RFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX1BZVEhPTiIsICJUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfUlVCWSIsICJUTVBfVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfV0VCSlMiLCAiVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfQ1BQIiwgIlRFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX0RPVE5FVCIsICJURUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19FUkxBTkciLCAiVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfR08iLCAiVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfSkFWQSIsICJURUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19OT0RFSlMiLCAiVEVMRU1FVFJZU0RLTEFOR1VBR0VWQUxVRVNfUEhQIiwgIlRFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX1BZVEhPTiIsICJURUxFTUVUUllTREtMQU5HVUFHRVZBTFVFU19SVUJZIiwgIlRFTEVNRVRSWVNES0xBTkdVQUdFVkFMVUVTX1dFQkpTIiwgIlRlbGVtZXRyeVNka0xhbmd1YWdlVmFsdWVzIiwgIl9hIiwgIlNES19JTkZPIl0KfQo=
|