@githolon/dsl 0.108.0 → 0.108.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dart/CHANGELOG.md +5 -0
- package/dart/lib/src/application_framework_calls.dart +299 -0
- package/dart/lib/src/generated_call.dart +96 -0
- package/dart/lib/src/nms_generated_runtime.dart +29 -0
- package/dart/lib/src/node_runner_transport.dart +77 -1
- package/dart/lib/src/result_usda.dart +487 -0
- package/dart/lib/src/runner/node-entry.mjs +6401 -2102
- package/dart/lib/src/runner/offline-install.mjs +1538 -163
- package/dart/lib/src/runtime_v2_gateway.dart +54 -0
- package/dart/lib/src/runtime_v2_transport.dart +117 -0
- package/dart/lib/src/session_bound.dart +7 -2
- package/dart/lib/src/test_harness.dart +193 -112
- package/dart/lib/src/webview_bridge.dart +2120 -569
- package/dart/pubspec.yaml +2 -2
- package/dart/test/acquire_session_credentials_test.dart +1 -1
- package/dart/test/acquire_session_test.dart +68 -14
- package/dart/test/adv_realm_interference_test.dart +6 -4
- package/dart/test/cluster_births_test.dart +11 -8
- package/dart/test/cluster_local_autosync_test.dart +1 -1
- package/dart/test/cluster_scale_test.dart +3 -2
- package/dart/test/dlq_session_surface_test.dart +52 -35
- package/dart/test/first_app_gauntlet_test.dart +1 -1
- package/dart/test/local_sync_inert_test.dart +23 -26
- package/dart/test/offer_authentication_proof_test.dart +193 -0
- package/dart/test/result_usda_test.dart +49 -0
- package/dart/test/session_bound_test.dart +8 -11
- package/dart/test/stale_bundle_test.dart +18 -3
- package/dart/test/test_harness_test.dart +14 -27
- package/dart/test/webview_bridge_test.dart +504 -83
- package/dart_types/CHANGELOG.md +7 -0
- package/dart_types/lib/nomos_kernel_protocol.dart +3 -2
- package/dart_types/lib/src/custody.dart +64 -19
- package/dart_types/lib/src/local_work_rejected.dart +30 -45
- package/dart_types/lib/src/proto/nomos/custody/v1/snapshot.pb.dart +169 -0
- package/dart_types/lib/src/proto/nomos/custody/v1/snapshot.pbenum.dart +11 -0
- package/dart_types/lib/src/proto/nomos/kernel/v1/kernel.pb.dart +2021 -234
- package/dart_types/lib/src/proto/nomos/kernel/v1/kernel.pbenum.dart +175 -8
- package/dart_types/lib/src/proto/nomos/runtime/v2/runtime.pb.dart +8664 -0
- package/dart_types/lib/src/proto/nomos/runtime/v2/runtime.pbenum.dart +369 -0
- package/dart_types/lib/src/surfaced.dart +30 -25
- package/dart_types/pubspec.yaml +1 -1
- package/dart_types/test/surfaced_test.dart +2 -1
- package/package.json +1 -1
- package/runtime/generated-application-host.js +5736 -2047
- package/src/authoring.ts +3 -2
- package/src/births.ts +21 -0
- package/src/build_package.ts +30 -0
- package/src/business_birth.ts +39 -35
- package/src/codegen_call_usda.ts +1111 -0
- package/src/codegen_dart.ts +207 -282
- package/src/codegen_dart_application.ts +195 -252
- package/src/codegen_dart_client.ts +1978 -593
- package/src/codegen_dart_framework_calls.ts +291 -0
- package/src/codegen_dart_scenario.ts +7 -0
- package/src/codegen_proof.ts +3 -4
- package/src/codegen_provider_dart.ts +21 -7
- package/src/codegen_query_usda.ts +214 -0
- package/src/codegen_result_usda.ts +685 -0
- package/src/codegen_ts.ts +3945 -1111
- package/src/compile_package_main.ts +360 -32
- package/src/directive.ts +19 -4
- package/src/engine_entry.ts +45 -4
- package/src/framework/application_home.ts +2 -0
- package/src/framework/auth_provider_law.ts +262 -20
- package/src/framework/home.ts +32 -28
- package/src/framework/owned_custody.ts +19 -11
- package/src/framework/owned_custody_value.ts +51 -0
- package/src/framework/relations.ts +47 -21
- package/src/framework/signing_identity.ts +34 -0
- package/src/framework/workspaces.ts +31 -9
- package/src/framework_call_definitions.ts +53 -0
- package/src/framework_read_definitions.ts +45 -0
- package/src/identity_frontier.ts +58 -0
- package/src/index.ts +20 -1
- package/src/intent.ts +216 -16
- package/src/law_check.ts +19 -1
- package/src/law_graph.ts +57 -8
- package/src/law_graph_usda.ts +73 -5
- package/src/law_value_type.ts +106 -19
- package/src/read.ts +47 -0
- package/src/read_projection_namespace.ts +7 -0
- package/src/shape_compat.ts +38 -39
- package/src/stable_ids.ts +37 -2
- package/src/test_call_usda.ts +83 -0
- package/src/wire.ts +36 -2
- package/src/wire_encode.ts +45 -1
- package/src/workspace_sharing.ts +27 -10
- package/dart_types/lib/src/proto/nomos/kernel/v1/kernel.pbjson.dart +0 -6096
- package/dart_types/lib/src/proto/nomos/kernel/v1/kernel.pbserver.dart +0 -50
- package/dart_types/lib/src/proto/nomos/kernel/v1/progress.pbjson.dart +0 -178
- package/dart_types/lib/src/proto/nomos/runtime/v1/runtime.pb.dart +0 -828
- package/dart_types/lib/src/proto/nomos/runtime/v1/runtime.pbenum.dart +0 -465
- package/dart_types/lib/src/proto/nomos/runtime/v1/runtime.pbjson.dart +0 -573
- package/dart_types/lib/src/proto/nomos/runtime/v1/runtime.pbserver.dart +0 -50
|
@@ -4092,6 +4092,13 @@ function capabilityByNamespace(capabilities, namespace) {
|
|
|
4092
4092
|
}
|
|
4093
4093
|
return matches[0];
|
|
4094
4094
|
}
|
|
4095
|
+
function optionalCapabilityByNamespace(capabilities, namespace) {
|
|
4096
|
+
const matches = capabilities.filter((capability) => capability.namespace === namespace);
|
|
4097
|
+
if (matches.length > 1) {
|
|
4098
|
+
throw new Error(`OSGi resource needs at most one ${namespace} capability`);
|
|
4099
|
+
}
|
|
4100
|
+
return matches[0];
|
|
4101
|
+
}
|
|
4095
4102
|
function required(attributes2, name) {
|
|
4096
4103
|
const value = attributes2.get(name)?.value;
|
|
4097
4104
|
if (value === void 0 || value.length === 0) throw new Error(`OSGi capability has no ${name} attribute`);
|
|
@@ -4119,6 +4126,35 @@ function parseOsgiRepository(xml) {
|
|
|
4119
4126
|
const contentSize = Number(sizeText);
|
|
4120
4127
|
if (!Number.isSafeInteger(contentSize) || contentSize < 1) throw new Error("osgi.content size is invalid");
|
|
4121
4128
|
const contentMime = required(contentAttributes, "mime");
|
|
4129
|
+
const companion = optionalCapabilityByNamespace(capabilities, "nomos.kernel.companion");
|
|
4130
|
+
let stageZeroLaw;
|
|
4131
|
+
if (companion !== void 0) {
|
|
4132
|
+
const companionAttributes = attributes(companion);
|
|
4133
|
+
const companionKind = required(companionAttributes, "nomos.kernel.companion");
|
|
4134
|
+
const companionSha256 = required(companionAttributes, "osgi.content");
|
|
4135
|
+
const companionUrl = required(companionAttributes, "url");
|
|
4136
|
+
const companionSize = Number(required(companionAttributes, "size"));
|
|
4137
|
+
const companionMime = required(companionAttributes, "mime");
|
|
4138
|
+
if (companionKind !== "stage-zero-law") {
|
|
4139
|
+
throw new Error(`unsupported kernel companion ${companionKind}`);
|
|
4140
|
+
}
|
|
4141
|
+
if (!SHA256.test(companionSha256)) {
|
|
4142
|
+
throw new Error("kernel companion osgi.content is not a lowercase SHA-256");
|
|
4143
|
+
}
|
|
4144
|
+
if (!Number.isSafeInteger(companionSize) || companionSize < 1) {
|
|
4145
|
+
throw new Error("kernel companion size is invalid");
|
|
4146
|
+
}
|
|
4147
|
+
if (companionMime !== "model/vnd.usdz+zip") {
|
|
4148
|
+
throw new Error(`stage-zero law companion declares ${companionMime}`);
|
|
4149
|
+
}
|
|
4150
|
+
stageZeroLaw = {
|
|
4151
|
+
kind: "stage-zero-law",
|
|
4152
|
+
contentSha256: companionSha256,
|
|
4153
|
+
contentUrl: companionUrl,
|
|
4154
|
+
contentSize: companionSize,
|
|
4155
|
+
contentMime: "model/vnd.usdz+zip"
|
|
4156
|
+
};
|
|
4157
|
+
}
|
|
4122
4158
|
const contracts = capabilities.filter((capability) => capability.namespace === "osgi.contract").map((capability) => {
|
|
4123
4159
|
const values = attributes(capability);
|
|
4124
4160
|
const name = required(values, "osgi.contract");
|
|
@@ -4141,6 +4177,7 @@ function parseOsgiRepository(xml) {
|
|
|
4141
4177
|
contentUrl,
|
|
4142
4178
|
contentSize,
|
|
4143
4179
|
contentMime,
|
|
4180
|
+
...stageZeroLaw === void 0 ? {} : { stageZeroLaw },
|
|
4144
4181
|
contracts
|
|
4145
4182
|
};
|
|
4146
4183
|
});
|
|
@@ -4193,6 +4230,7 @@ function readSelectedResource(dir, repositoryFile, identityType) {
|
|
|
4193
4230
|
return resource;
|
|
4194
4231
|
}
|
|
4195
4232
|
function runtimeCompatibilityMismatch(dir, requirements = NOMOS_KERNEL_REQUIREMENTS) {
|
|
4233
|
+
let selectedStageZeroLaw;
|
|
4196
4234
|
for (const [label, repositoryFile, identityType, artifactFile] of [
|
|
4197
4235
|
["production", PRODUCTION_REPOSITORY, "nomos.kernel.production", "holon.wasm"],
|
|
4198
4236
|
["test-mint", TEST_MINT_REPOSITORY, "nomos.kernel.test-mint", "holon-testmint.wasm"]
|
|
@@ -4213,10 +4251,32 @@ function runtimeCompatibilityMismatch(dir, requirements = NOMOS_KERNEL_REQUIREME
|
|
|
4213
4251
|
if (actual !== resource.contentSha256) {
|
|
4214
4252
|
return `${label} kernel ${actual.slice(0, 12)}\u2026 does not match OSGi content ${resource.contentSha256.slice(0, 12)}\u2026`;
|
|
4215
4253
|
}
|
|
4254
|
+
const resourceStageZeroLaw = resource.stageZeroLaw;
|
|
4255
|
+
if (resourceStageZeroLaw === void 0) {
|
|
4256
|
+
return `${label} OSGi resource has no stage-zero law companion`;
|
|
4257
|
+
}
|
|
4258
|
+
if (selectedStageZeroLaw !== void 0 && selectedStageZeroLaw.contentSha256 !== resourceStageZeroLaw.contentSha256) {
|
|
4259
|
+
return `${label} OSGi resource selects a different stage-zero law companion`;
|
|
4260
|
+
}
|
|
4261
|
+
selectedStageZeroLaw = resourceStageZeroLaw;
|
|
4216
4262
|
} catch (error) {
|
|
4217
4263
|
return `${label} runtime custody is incomplete (${error.message})`;
|
|
4218
4264
|
}
|
|
4219
4265
|
}
|
|
4266
|
+
try {
|
|
4267
|
+
const companion = selectedStageZeroLaw;
|
|
4268
|
+
if (companion === void 0) return "runtime has no selected stage-zero law companion";
|
|
4269
|
+
const bytes = readFileSync(join(dir, "bootstrap.law.usdz"));
|
|
4270
|
+
if (bytes.byteLength !== companion.contentSize) {
|
|
4271
|
+
return `stage-zero law has ${bytes.byteLength} bytes; OSGi companion declares ${companion.contentSize}`;
|
|
4272
|
+
}
|
|
4273
|
+
const actual = sha256(bytes);
|
|
4274
|
+
if (actual !== companion.contentSha256) {
|
|
4275
|
+
return `stage-zero law ${actual.slice(0, 12)}\u2026 does not match OSGi companion ${companion.contentSha256.slice(0, 12)}\u2026`;
|
|
4276
|
+
}
|
|
4277
|
+
} catch (error) {
|
|
4278
|
+
return `stage-zero law custody is incomplete (${error.message})`;
|
|
4279
|
+
}
|
|
4220
4280
|
return void 0;
|
|
4221
4281
|
}
|
|
4222
4282
|
async function fetchSelectedResource(fetchImpl, repositoryUrl, identityType, requirements) {
|
|
@@ -4278,18 +4338,27 @@ async function refreshRuntimeDir(cloud, dir, {
|
|
|
4278
4338
|
"nomos.kernel.test-mint",
|
|
4279
4339
|
requirements
|
|
4280
4340
|
);
|
|
4281
|
-
const
|
|
4341
|
+
const productionCompanion = production.resource.stageZeroLaw;
|
|
4342
|
+
const testMintCompanion = testMint.resource.stageZeroLaw;
|
|
4343
|
+
if (productionCompanion === void 0 || testMintCompanion === void 0) {
|
|
4344
|
+
throw new Error("selected kernel resource has no stage-zero law companion");
|
|
4345
|
+
}
|
|
4346
|
+
if (productionCompanion.contentSha256 !== testMintCompanion.contentSha256) {
|
|
4347
|
+
throw new Error("production and test-mint resources select different stage-zero law companions");
|
|
4348
|
+
}
|
|
4349
|
+
const companion = productionCompanion;
|
|
4350
|
+
const [productionBytes, testMintBytes, bootstrapBytes, nomosResponse] = await Promise.all([
|
|
4282
4351
|
fetchVerifiedBytes(fetchImpl, productionUrl, production.resource),
|
|
4283
4352
|
fetchVerifiedBytes(fetchImpl, testMintUrl, testMint.resource),
|
|
4284
|
-
fetchImpl
|
|
4353
|
+
fetchVerifiedBytes(fetchImpl, productionUrl, {
|
|
4354
|
+
contentUrl: companion.contentUrl,
|
|
4355
|
+
contentSize: companion.contentSize,
|
|
4356
|
+
contentSha256: companion.contentSha256
|
|
4357
|
+
}),
|
|
4285
4358
|
fetchImpl(`${base}/v1/runtime/nomos.law.usdz`)
|
|
4286
4359
|
]);
|
|
4287
|
-
if (!bootstrapResponse.ok) throw new Error(`bootstrap law \u2192 ${bootstrapResponse.status}`);
|
|
4288
4360
|
if (!nomosResponse.ok) throw new Error(`Nomos law \u2192 ${nomosResponse.status}`);
|
|
4289
|
-
const
|
|
4290
|
-
bootstrapResponse.arrayBuffer().then((bytes) => new Uint8Array(bytes)),
|
|
4291
|
-
nomosResponse.arrayBuffer().then((bytes) => new Uint8Array(bytes))
|
|
4292
|
-
]);
|
|
4361
|
+
const nomosBytes = new Uint8Array(await nomosResponse.arrayBuffer());
|
|
4293
4362
|
mkdirSync(dir, { recursive: true });
|
|
4294
4363
|
atomicWrite(join(dir, "holon.wasm"), productionBytes);
|
|
4295
4364
|
atomicWrite(join(dir, "holon-testmint.wasm"), testMintBytes);
|
|
@@ -4315,16 +4384,19 @@ __export(engine_exports, {
|
|
|
4315
4384
|
admitAll: () => admitAll,
|
|
4316
4385
|
admitIntentOffers: () => admitIntentOffers,
|
|
4317
4386
|
applyIntentBytes: () => applyIntentBytes,
|
|
4387
|
+
applyWorkspaceEffect: () => applyWorkspaceEffect,
|
|
4318
4388
|
archiveRefusedMain: () => archiveRefusedMain,
|
|
4319
4389
|
attestationSign: () => attestationSign,
|
|
4320
4390
|
author: () => author,
|
|
4321
4391
|
authorEphemeral: () => authorEphemeral,
|
|
4322
4392
|
authorKeygen: () => authorKeygen,
|
|
4323
4393
|
authorOn: () => authorOn,
|
|
4394
|
+
authorOperatorCall: () => authorOperatorCall,
|
|
4324
4395
|
backupHead: () => backupHead,
|
|
4325
4396
|
backupToCustody: () => backupToCustody,
|
|
4326
4397
|
birthCertificateLawPayload: () => birthCertificateLawPayload,
|
|
4327
4398
|
boot: () => boot2,
|
|
4399
|
+
callKernel: () => callKernel,
|
|
4328
4400
|
certSign: () => certSign,
|
|
4329
4401
|
check: () => check,
|
|
4330
4402
|
checkpointStateHash: () => checkpointStateHash,
|
|
@@ -4346,6 +4418,7 @@ __export(engine_exports, {
|
|
|
4346
4418
|
cryptoSealField: () => cryptoSealField,
|
|
4347
4419
|
cryptoUnwrapKey: () => cryptoUnwrapKey,
|
|
4348
4420
|
cryptoWrapKey: () => cryptoWrapKey,
|
|
4421
|
+
currentControllerLawHash: () => currentControllerLawHash,
|
|
4349
4422
|
currentLaw: () => currentLaw,
|
|
4350
4423
|
custodyConfirmedMain: () => custodyConfirmedMain,
|
|
4351
4424
|
custodyFetch: () => custodyFetch,
|
|
@@ -4376,6 +4449,7 @@ __export(engine_exports, {
|
|
|
4376
4449
|
importCheckpoint: () => importCheckpoint,
|
|
4377
4450
|
importCustodyObjects: () => importCustodyObjects,
|
|
4378
4451
|
ingestPackAsCustody: () => ingestPackAsCustody,
|
|
4452
|
+
initializeWorkspace: () => initializeWorkspace,
|
|
4379
4453
|
installedLaw: () => installedLaw,
|
|
4380
4454
|
intentOfferResidencies: () => intentOfferResidencies,
|
|
4381
4455
|
intentOfferSizeRefusal: () => intentOfferSizeRefusal,
|
|
@@ -4398,11 +4472,12 @@ __export(engine_exports, {
|
|
|
4398
4472
|
offerAdmit: () => offerAdmit,
|
|
4399
4473
|
offerIntent: () => offerIntent,
|
|
4400
4474
|
offerRequest: () => offerRequest,
|
|
4475
|
+
offerRequestResponse: () => offerRequestResponse,
|
|
4401
4476
|
outboundOffers: () => outboundOffers,
|
|
4402
4477
|
packBornChildren: () => packBornChildren,
|
|
4403
4478
|
packDelta: () => packDelta,
|
|
4404
|
-
|
|
4405
|
-
|
|
4479
|
+
pendingConflictSummaryUsda: () => pendingConflictSummaryUsda,
|
|
4480
|
+
pendingConflictsUsda: () => pendingConflictsUsda,
|
|
4406
4481
|
placementDirectives: () => placementDirectives,
|
|
4407
4482
|
prepareRemoteOffer: () => prepareRemoteOffer,
|
|
4408
4483
|
projectionStats: () => projectionStats,
|
|
@@ -4414,7 +4489,10 @@ __export(engine_exports, {
|
|
|
4414
4489
|
pushStagedCheckpoint: () => pushStagedCheckpoint,
|
|
4415
4490
|
qById: () => qById,
|
|
4416
4491
|
query: () => query,
|
|
4492
|
+
queryByIdUsda: () => queryByIdUsda,
|
|
4493
|
+
queryByTypeUsda: () => queryByTypeUsda,
|
|
4417
4494
|
queryEphemeral: () => queryEphemeral,
|
|
4495
|
+
queryGeneratedUsda: () => queryGeneratedUsda,
|
|
4418
4496
|
queryPage: () => queryPage,
|
|
4419
4497
|
queryProfile: () => queryProfile,
|
|
4420
4498
|
queryStructured: () => queryStructured,
|
|
@@ -6262,6 +6340,1067 @@ function prepareManagedRestoration(report, currentHash, priorHash, domain, opts
|
|
|
6262
6340
|
};
|
|
6263
6341
|
}
|
|
6264
6342
|
|
|
6343
|
+
// src/_adapter/lifecycle-calls.ts
|
|
6344
|
+
var lifecycle_calls_exports = {};
|
|
6345
|
+
__export(lifecycle_calls_exports, {
|
|
6346
|
+
bootstrapInstallCall: () => bootstrapInstallCall,
|
|
6347
|
+
installDomainCall: () => installDomainCall,
|
|
6348
|
+
promoteDomainCall: () => promoteDomainCall,
|
|
6349
|
+
rollbackDomainCall: () => rollbackDomainCall,
|
|
6350
|
+
stageDomainCall: () => stageDomainCall
|
|
6351
|
+
});
|
|
6352
|
+
|
|
6353
|
+
// src/_adapter/generated/domain_bootstrap.operator.mjs
|
|
6354
|
+
var _nmsGeneratedCall = (domain, directive, canonicalUsda, routingCandidates) => ({ domain, directive, canonicalUsda, routingCandidates: [...new Set(routingCandidates)] });
|
|
6355
|
+
var _nmsUsdaUtf8 = (value) => {
|
|
6356
|
+
const bytes = [];
|
|
6357
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
6358
|
+
let point = value.charCodeAt(index);
|
|
6359
|
+
if (point >= 55296 && point <= 56319 && index + 1 < value.length) {
|
|
6360
|
+
const low = value.charCodeAt(index + 1);
|
|
6361
|
+
if (low >= 56320 && low <= 57343) {
|
|
6362
|
+
point = 65536 + (point - 55296 << 10) + (low - 56320);
|
|
6363
|
+
index += 1;
|
|
6364
|
+
}
|
|
6365
|
+
}
|
|
6366
|
+
if (point <= 127) bytes.push(point);
|
|
6367
|
+
else if (point <= 2047) bytes.push(192 | point >> 6, 128 | point & 63);
|
|
6368
|
+
else if (point <= 65535) bytes.push(224 | point >> 12, 128 | point >> 6 & 63, 128 | point & 63);
|
|
6369
|
+
else bytes.push(240 | point >> 18, 128 | point >> 12 & 63, 128 | point >> 6 & 63, 128 | point & 63);
|
|
6370
|
+
}
|
|
6371
|
+
return Uint8Array.from(bytes);
|
|
6372
|
+
};
|
|
6373
|
+
var _nmsUsdaQuote = (value) => {
|
|
6374
|
+
let out = '"';
|
|
6375
|
+
for (const character of value) {
|
|
6376
|
+
const point = character.codePointAt(0);
|
|
6377
|
+
if (character === '"') out += '\\"';
|
|
6378
|
+
else if (character === "\\") out += "\\\\";
|
|
6379
|
+
else if (character === "\n") out += "\\n";
|
|
6380
|
+
else if (character === "\r") out += "\\r";
|
|
6381
|
+
else if (character === " ") out += "\\t";
|
|
6382
|
+
else if (character === "\b") out += "\\b";
|
|
6383
|
+
else if (character === "\f") out += "\\f";
|
|
6384
|
+
else if (point < 32 || point >= 127 && point <= 159) out += "\\u" + point.toString(16).padStart(4, "0");
|
|
6385
|
+
else out += character;
|
|
6386
|
+
}
|
|
6387
|
+
return out + '"';
|
|
6388
|
+
};
|
|
6389
|
+
var _nmsUsdaLine = (out, depth, value) => {
|
|
6390
|
+
out.push(" ".repeat(depth) + value);
|
|
6391
|
+
};
|
|
6392
|
+
var _nmsUsdaBegin = (out, depth, type, path) => {
|
|
6393
|
+
const name = path.slice(path.lastIndexOf("/") + 1);
|
|
6394
|
+
_nmsUsdaLine(out, depth, "def " + type + " " + _nmsUsdaQuote(name));
|
|
6395
|
+
_nmsUsdaLine(out, depth, "{");
|
|
6396
|
+
};
|
|
6397
|
+
var _nmsUsdaRel = (out, depth, name, target) => _nmsUsdaLine(out, depth, "custom rel " + name + " = <" + target + ">");
|
|
6398
|
+
var _nmsUsdaString = (out, depth, type, name, value) => _nmsUsdaLine(out, depth, "custom uniform " + type + " " + name + " = " + _nmsUsdaQuote(value));
|
|
6399
|
+
var _nmsUsdaClose = (out, depth) => _nmsUsdaLine(out, depth, "}");
|
|
6400
|
+
var _nmsUsdaChildren = (out, children2) => {
|
|
6401
|
+
if (children2.length > 0) {
|
|
6402
|
+
out.push("");
|
|
6403
|
+
out.push(...children2);
|
|
6404
|
+
}
|
|
6405
|
+
};
|
|
6406
|
+
var sha256Digest = (value) => {
|
|
6407
|
+
if (!/^[0-9a-f]{64}$/.test(value)) throw new TypeError("expected a 64-character lowercase hexadecimal SHA-256 digest");
|
|
6408
|
+
return value;
|
|
6409
|
+
};
|
|
6410
|
+
function _nmsCallUsda_bootstrap_installDomain(payload, nmsInternalWorkspace) {
|
|
6411
|
+
const _nmsRoutingCandidates = [];
|
|
6412
|
+
const out = [
|
|
6413
|
+
"#usda 1.0",
|
|
6414
|
+
"(",
|
|
6415
|
+
' defaultPrim = "Change"',
|
|
6416
|
+
")",
|
|
6417
|
+
"",
|
|
6418
|
+
'def NomosChange "Change"',
|
|
6419
|
+
"{",
|
|
6420
|
+
" custom rel nomos:directive = </Nomos/Domains/d_c7835210310784d1/Intents/i_e1c3bae0bfc84298>",
|
|
6421
|
+
"",
|
|
6422
|
+
' def NomosCall "Call"',
|
|
6423
|
+
" {",
|
|
6424
|
+
" custom rel nomos:contract = </Nomos/Domains/d_c7835210310784d1/Contracts/c_8ca67a115267b806>",
|
|
6425
|
+
"",
|
|
6426
|
+
' def NomosRecordValue "Payload"',
|
|
6427
|
+
" {",
|
|
6428
|
+
" custom rel nomos:type = </Nomos/Domains/d_c7835210310784d1/Contracts/c_8ca67a115267b806>"
|
|
6429
|
+
];
|
|
6430
|
+
const _payloadChildren0 = [];
|
|
6431
|
+
{
|
|
6432
|
+
const _out1 = _payloadChildren0;
|
|
6433
|
+
_nmsRoutingCandidates.push(payload["installedBy"]);
|
|
6434
|
+
_nmsUsdaBegin(_out1, 3, "NomosStringValue", "/Change/Call/Payload/f_28a9cce94405c516");
|
|
6435
|
+
_nmsUsdaRel(_out1, 4, "nomos:field", "/Nomos/Domains/d_c7835210310784d1/Contracts/c_8ca67a115267b806/Fields/f_28a9cce94405c516");
|
|
6436
|
+
_nmsUsdaRel(_out1, 4, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
6437
|
+
_nmsUsdaString(_out1, 4, "string", "nomos:value", payload["installedBy"]);
|
|
6438
|
+
_nmsUsdaClose(_out1, 3);
|
|
6439
|
+
}
|
|
6440
|
+
{
|
|
6441
|
+
const _out2 = _payloadChildren0;
|
|
6442
|
+
_nmsRoutingCandidates.push(payload["lawClosureIdentity"]);
|
|
6443
|
+
_nmsUsdaBegin(_out2, 3, "NomosStringValue", "/Change/Call/Payload/f_2fee70506458fe3d");
|
|
6444
|
+
_nmsUsdaRel(_out2, 4, "nomos:field", "/Nomos/Domains/d_c7835210310784d1/Contracts/c_8ca67a115267b806/Fields/f_2fee70506458fe3d");
|
|
6445
|
+
_nmsUsdaRel(_out2, 4, "nomos:type", "/Nomos/Domains/d_c7835210310784d1/Types/t_0102ed3ff09dbe61");
|
|
6446
|
+
_nmsUsdaString(_out2, 4, "string", "nomos:value", payload["lawClosureIdentity"]);
|
|
6447
|
+
_nmsUsdaClose(_out2, 3);
|
|
6448
|
+
}
|
|
6449
|
+
if (payload["authorityScope"] !== void 0) {
|
|
6450
|
+
const _optional3 = payload["authorityScope"];
|
|
6451
|
+
{
|
|
6452
|
+
const _out4 = _payloadChildren0;
|
|
6453
|
+
{
|
|
6454
|
+
const _out5 = _payloadChildren0;
|
|
6455
|
+
_nmsRoutingCandidates.push(_optional3);
|
|
6456
|
+
_nmsUsdaBegin(_out5, 3, "NomosStringValue", "/Change/Call/Payload/f_5e8eb1e0ff2cc489");
|
|
6457
|
+
_nmsUsdaRel(_out5, 4, "nomos:field", "/Nomos/Domains/d_c7835210310784d1/Contracts/c_8ca67a115267b806/Fields/f_5e8eb1e0ff2cc489");
|
|
6458
|
+
_nmsUsdaRel(_out5, 4, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
6459
|
+
_nmsUsdaString(_out5, 4, "string", "nomos:value", _optional3);
|
|
6460
|
+
_nmsUsdaClose(_out5, 3);
|
|
6461
|
+
}
|
|
6462
|
+
}
|
|
6463
|
+
}
|
|
6464
|
+
{
|
|
6465
|
+
const _out6 = _payloadChildren0;
|
|
6466
|
+
_nmsRoutingCandidates.push(payload["domainHash"]);
|
|
6467
|
+
_nmsUsdaBegin(_out6, 3, "NomosStringValue", "/Change/Call/Payload/f_9e8f11531dc7caee");
|
|
6468
|
+
_nmsUsdaRel(_out6, 4, "nomos:field", "/Nomos/Domains/d_c7835210310784d1/Contracts/c_8ca67a115267b806/Fields/f_9e8f11531dc7caee");
|
|
6469
|
+
_nmsUsdaRel(_out6, 4, "nomos:type", "/Nomos/Domains/d_c7835210310784d1/Types/t_0102ed3ff09dbe61");
|
|
6470
|
+
_nmsUsdaString(_out6, 4, "string", "nomos:value", payload["domainHash"]);
|
|
6471
|
+
_nmsUsdaClose(_out6, 3);
|
|
6472
|
+
}
|
|
6473
|
+
if (payload["dependencies"] !== void 0) {
|
|
6474
|
+
const _optional7 = payload["dependencies"];
|
|
6475
|
+
{
|
|
6476
|
+
const _out8 = _payloadChildren0;
|
|
6477
|
+
_nmsUsdaBegin(_out8, 3, "NomosListValue", "/Change/Call/Payload/f_a5a0e42489a6fcbd");
|
|
6478
|
+
_nmsUsdaRel(_out8, 4, "nomos:field", "/Nomos/Domains/d_c7835210310784d1/Contracts/c_8ca67a115267b806/Fields/f_a5a0e42489a6fcbd");
|
|
6479
|
+
_nmsUsdaRel(_out8, 4, "nomos:type", "/Nomos/Domains/d_c7835210310784d1/Types/t_0e8d650bd2880938");
|
|
6480
|
+
const _children9 = [];
|
|
6481
|
+
for (let _index10 = 0; _index10 < _optional7.length; _index10++) {
|
|
6482
|
+
{
|
|
6483
|
+
const _out11 = _children9;
|
|
6484
|
+
_nmsRoutingCandidates.push(_optional7[_index10]);
|
|
6485
|
+
_nmsUsdaBegin(_out11, 4, "NomosStringValue", "/Change/Call/Payload/f_a5a0e42489a6fcbd/i_" + String(_index10).padStart(8, "0"));
|
|
6486
|
+
_nmsUsdaRel(_out11, 5, "nomos:type", "/Nomos/Domains/d_c7835210310784d1/Types/t_0102ed3ff09dbe61");
|
|
6487
|
+
_nmsUsdaString(_out11, 5, "string", "nomos:value", _optional7[_index10]);
|
|
6488
|
+
_nmsUsdaClose(_out11, 4);
|
|
6489
|
+
}
|
|
6490
|
+
}
|
|
6491
|
+
_nmsUsdaChildren(_out8, _children9);
|
|
6492
|
+
_nmsUsdaClose(_out8, 3);
|
|
6493
|
+
}
|
|
6494
|
+
}
|
|
6495
|
+
if (payload["finalizers"] !== void 0) {
|
|
6496
|
+
const _optional12 = payload["finalizers"];
|
|
6497
|
+
{
|
|
6498
|
+
const _out13 = _payloadChildren0;
|
|
6499
|
+
_nmsUsdaBegin(_out13, 3, "NomosListValue", "/Change/Call/Payload/f_c7c8d352a3a2e55e");
|
|
6500
|
+
_nmsUsdaRel(_out13, 4, "nomos:field", "/Nomos/Domains/d_c7835210310784d1/Contracts/c_8ca67a115267b806/Fields/f_c7c8d352a3a2e55e");
|
|
6501
|
+
_nmsUsdaRel(_out13, 4, "nomos:type", "/Nomos/Domains/d_c7835210310784d1/Types/t_0e8d650bd2880938");
|
|
6502
|
+
const _children14 = [];
|
|
6503
|
+
for (let _index15 = 0; _index15 < _optional12.length; _index15++) {
|
|
6504
|
+
{
|
|
6505
|
+
const _out16 = _children14;
|
|
6506
|
+
_nmsRoutingCandidates.push(_optional12[_index15]);
|
|
6507
|
+
_nmsUsdaBegin(_out16, 4, "NomosStringValue", "/Change/Call/Payload/f_c7c8d352a3a2e55e/i_" + String(_index15).padStart(8, "0"));
|
|
6508
|
+
_nmsUsdaRel(_out16, 5, "nomos:type", "/Nomos/Domains/d_c7835210310784d1/Types/t_0102ed3ff09dbe61");
|
|
6509
|
+
_nmsUsdaString(_out16, 5, "string", "nomos:value", _optional12[_index15]);
|
|
6510
|
+
_nmsUsdaClose(_out16, 4);
|
|
6511
|
+
}
|
|
6512
|
+
}
|
|
6513
|
+
_nmsUsdaChildren(_out13, _children14);
|
|
6514
|
+
_nmsUsdaClose(_out13, 3);
|
|
6515
|
+
}
|
|
6516
|
+
}
|
|
6517
|
+
_nmsUsdaChildren(out, _payloadChildren0);
|
|
6518
|
+
_nmsUsdaClose(out, 2);
|
|
6519
|
+
_nmsUsdaClose(out, 1);
|
|
6520
|
+
_nmsUsdaClose(out, 0);
|
|
6521
|
+
return _nmsGeneratedCall("bootstrap", "installDomain", _nmsUsdaUtf8(out.join("\n") + "\n"), _nmsRoutingCandidates);
|
|
6522
|
+
}
|
|
6523
|
+
var nomosOperatorCalls = {
|
|
6524
|
+
installDomain(input) {
|
|
6525
|
+
const { domain, workspace: workspace2, ...payload } = input;
|
|
6526
|
+
switch (domain) {
|
|
6527
|
+
case "bootstrap":
|
|
6528
|
+
return _nmsCallUsda_bootstrap_installDomain(payload, workspace2);
|
|
6529
|
+
default:
|
|
6530
|
+
throw new Error("This law package has no 'installDomain' call in domain '" + domain + "'.");
|
|
6531
|
+
}
|
|
6532
|
+
}
|
|
6533
|
+
};
|
|
6534
|
+
|
|
6535
|
+
// src/_adapter/generated/nomos.operator.mjs
|
|
6536
|
+
var _nmsGeneratedCall2 = (domain, directive, canonicalUsda, routingCandidates) => ({ domain, directive, canonicalUsda, routingCandidates: [...new Set(routingCandidates)] });
|
|
6537
|
+
var _nmsUsdaUtf82 = (value) => {
|
|
6538
|
+
const bytes = [];
|
|
6539
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
6540
|
+
let point = value.charCodeAt(index);
|
|
6541
|
+
if (point >= 55296 && point <= 56319 && index + 1 < value.length) {
|
|
6542
|
+
const low = value.charCodeAt(index + 1);
|
|
6543
|
+
if (low >= 56320 && low <= 57343) {
|
|
6544
|
+
point = 65536 + (point - 55296 << 10) + (low - 56320);
|
|
6545
|
+
index += 1;
|
|
6546
|
+
}
|
|
6547
|
+
}
|
|
6548
|
+
if (point <= 127) bytes.push(point);
|
|
6549
|
+
else if (point <= 2047) bytes.push(192 | point >> 6, 128 | point & 63);
|
|
6550
|
+
else if (point <= 65535) bytes.push(224 | point >> 12, 128 | point >> 6 & 63, 128 | point & 63);
|
|
6551
|
+
else bytes.push(240 | point >> 18, 128 | point >> 12 & 63, 128 | point >> 6 & 63, 128 | point & 63);
|
|
6552
|
+
}
|
|
6553
|
+
return Uint8Array.from(bytes);
|
|
6554
|
+
};
|
|
6555
|
+
var _nmsUsdaQuote2 = (value) => {
|
|
6556
|
+
let out = '"';
|
|
6557
|
+
for (const character of value) {
|
|
6558
|
+
const point = character.codePointAt(0);
|
|
6559
|
+
if (character === '"') out += '\\"';
|
|
6560
|
+
else if (character === "\\") out += "\\\\";
|
|
6561
|
+
else if (character === "\n") out += "\\n";
|
|
6562
|
+
else if (character === "\r") out += "\\r";
|
|
6563
|
+
else if (character === " ") out += "\\t";
|
|
6564
|
+
else if (character === "\b") out += "\\b";
|
|
6565
|
+
else if (character === "\f") out += "\\f";
|
|
6566
|
+
else if (point < 32 || point >= 127 && point <= 159) out += "\\u" + point.toString(16).padStart(4, "0");
|
|
6567
|
+
else out += character;
|
|
6568
|
+
}
|
|
6569
|
+
return out + '"';
|
|
6570
|
+
};
|
|
6571
|
+
var _nmsUsdaLine2 = (out, depth, value) => {
|
|
6572
|
+
out.push(" ".repeat(depth) + value);
|
|
6573
|
+
};
|
|
6574
|
+
var _nmsUsdaBegin2 = (out, depth, type, path) => {
|
|
6575
|
+
const name = path.slice(path.lastIndexOf("/") + 1);
|
|
6576
|
+
_nmsUsdaLine2(out, depth, "def " + type + " " + _nmsUsdaQuote2(name));
|
|
6577
|
+
_nmsUsdaLine2(out, depth, "{");
|
|
6578
|
+
};
|
|
6579
|
+
var _nmsUsdaRel2 = (out, depth, name, target) => _nmsUsdaLine2(out, depth, "custom rel " + name + " = <" + target + ">");
|
|
6580
|
+
var _nmsUsdaString2 = (out, depth, type, name, value) => _nmsUsdaLine2(out, depth, "custom uniform " + type + " " + name + " = " + _nmsUsdaQuote2(value));
|
|
6581
|
+
var _nmsUsdaScalar = (out, depth, type, name, value) => _nmsUsdaLine2(out, depth, "custom uniform " + type + " " + name + " = " + value);
|
|
6582
|
+
var _nmsUsdaClose2 = (out, depth) => _nmsUsdaLine2(out, depth, "}");
|
|
6583
|
+
var _nmsUsdaChildren2 = (out, children2) => {
|
|
6584
|
+
if (children2.length > 0) {
|
|
6585
|
+
out.push("");
|
|
6586
|
+
out.push(...children2);
|
|
6587
|
+
}
|
|
6588
|
+
};
|
|
6589
|
+
var sha256Digest2 = (value) => {
|
|
6590
|
+
if (!/^[0-9a-f]{64}$/.test(value)) throw new TypeError("expected a 64-character lowercase hexadecimal SHA-256 digest");
|
|
6591
|
+
return value;
|
|
6592
|
+
};
|
|
6593
|
+
var gitObjectId = (value) => {
|
|
6594
|
+
if (!/^[0-9a-f]{40}$/.test(value)) throw new TypeError("expected a 40-character lowercase hexadecimal Git object id");
|
|
6595
|
+
return value;
|
|
6596
|
+
};
|
|
6597
|
+
function _nmsCallUsda_nomos_installDomain(payload, nmsInternalWorkspace) {
|
|
6598
|
+
const _nmsRoutingCandidates = [];
|
|
6599
|
+
const out = [
|
|
6600
|
+
"#usda 1.0",
|
|
6601
|
+
"(",
|
|
6602
|
+
' defaultPrim = "Change"',
|
|
6603
|
+
")",
|
|
6604
|
+
"",
|
|
6605
|
+
'def NomosChange "Change"',
|
|
6606
|
+
"{",
|
|
6607
|
+
" custom rel nomos:directive = </Nomos/Domains/d_a0c452a9439bb87f/Intents/i_5c39a2e2d3e58351>",
|
|
6608
|
+
"",
|
|
6609
|
+
' def NomosCall "Call"',
|
|
6610
|
+
" {",
|
|
6611
|
+
" custom rel nomos:contract = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a>",
|
|
6612
|
+
"",
|
|
6613
|
+
' def NomosRecordValue "Payload"',
|
|
6614
|
+
" {",
|
|
6615
|
+
" custom rel nomos:type = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a>"
|
|
6616
|
+
];
|
|
6617
|
+
const _payloadChildren0 = [];
|
|
6618
|
+
if (payload["finalizers"] !== void 0) {
|
|
6619
|
+
const _optional1 = payload["finalizers"];
|
|
6620
|
+
{
|
|
6621
|
+
const _out2 = _payloadChildren0;
|
|
6622
|
+
_nmsUsdaBegin2(_out2, 3, "NomosListValue", "/Change/Call/Payload/f_05bb8d9567092cad");
|
|
6623
|
+
_nmsUsdaRel2(_out2, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a/Fields/f_05bb8d9567092cad");
|
|
6624
|
+
_nmsUsdaRel2(_out2, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_8f49dab37fd06574");
|
|
6625
|
+
const _children3 = [];
|
|
6626
|
+
for (let _index4 = 0; _index4 < _optional1.length; _index4++) {
|
|
6627
|
+
{
|
|
6628
|
+
const _out5 = _children3;
|
|
6629
|
+
_nmsRoutingCandidates.push(_optional1[_index4]);
|
|
6630
|
+
_nmsUsdaBegin2(_out5, 4, "NomosStringValue", "/Change/Call/Payload/f_05bb8d9567092cad/i_" + String(_index4).padStart(8, "0"));
|
|
6631
|
+
_nmsUsdaRel2(_out5, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
6632
|
+
_nmsUsdaString2(_out5, 5, "string", "nomos:value", _optional1[_index4]);
|
|
6633
|
+
_nmsUsdaClose2(_out5, 4);
|
|
6634
|
+
}
|
|
6635
|
+
}
|
|
6636
|
+
_nmsUsdaChildren2(_out2, _children3);
|
|
6637
|
+
_nmsUsdaClose2(_out2, 3);
|
|
6638
|
+
}
|
|
6639
|
+
}
|
|
6640
|
+
{
|
|
6641
|
+
const _out6 = _payloadChildren0;
|
|
6642
|
+
_nmsRoutingCandidates.push(payload["installedBy"]);
|
|
6643
|
+
_nmsUsdaBegin2(_out6, 3, "NomosStringValue", "/Change/Call/Payload/f_0958548a07a18849");
|
|
6644
|
+
_nmsUsdaRel2(_out6, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a/Fields/f_0958548a07a18849");
|
|
6645
|
+
_nmsUsdaRel2(_out6, 4, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
6646
|
+
_nmsUsdaString2(_out6, 4, "string", "nomos:value", payload["installedBy"]);
|
|
6647
|
+
_nmsUsdaClose2(_out6, 3);
|
|
6648
|
+
}
|
|
6649
|
+
if (payload["dependencies"] !== void 0) {
|
|
6650
|
+
const _optional7 = payload["dependencies"];
|
|
6651
|
+
{
|
|
6652
|
+
const _out8 = _payloadChildren0;
|
|
6653
|
+
_nmsUsdaBegin2(_out8, 3, "NomosListValue", "/Change/Call/Payload/f_3b9973d06216a427");
|
|
6654
|
+
_nmsUsdaRel2(_out8, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a/Fields/f_3b9973d06216a427");
|
|
6655
|
+
_nmsUsdaRel2(_out8, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_8f49dab37fd06574");
|
|
6656
|
+
const _children9 = [];
|
|
6657
|
+
for (let _index10 = 0; _index10 < _optional7.length; _index10++) {
|
|
6658
|
+
{
|
|
6659
|
+
const _out11 = _children9;
|
|
6660
|
+
_nmsRoutingCandidates.push(_optional7[_index10]);
|
|
6661
|
+
_nmsUsdaBegin2(_out11, 4, "NomosStringValue", "/Change/Call/Payload/f_3b9973d06216a427/i_" + String(_index10).padStart(8, "0"));
|
|
6662
|
+
_nmsUsdaRel2(_out11, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
6663
|
+
_nmsUsdaString2(_out11, 5, "string", "nomos:value", _optional7[_index10]);
|
|
6664
|
+
_nmsUsdaClose2(_out11, 4);
|
|
6665
|
+
}
|
|
6666
|
+
}
|
|
6667
|
+
_nmsUsdaChildren2(_out8, _children9);
|
|
6668
|
+
_nmsUsdaClose2(_out8, 3);
|
|
6669
|
+
}
|
|
6670
|
+
}
|
|
6671
|
+
{
|
|
6672
|
+
const _out12 = _payloadChildren0;
|
|
6673
|
+
_nmsRoutingCandidates.push(payload["lawClosureIdentity"]);
|
|
6674
|
+
_nmsUsdaBegin2(_out12, 3, "NomosStringValue", "/Change/Call/Payload/f_3d0a30b32a3bf736");
|
|
6675
|
+
_nmsUsdaRel2(_out12, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a/Fields/f_3d0a30b32a3bf736");
|
|
6676
|
+
_nmsUsdaRel2(_out12, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
6677
|
+
_nmsUsdaString2(_out12, 4, "string", "nomos:value", payload["lawClosureIdentity"]);
|
|
6678
|
+
_nmsUsdaClose2(_out12, 3);
|
|
6679
|
+
}
|
|
6680
|
+
if (payload["authorityScope"] !== void 0) {
|
|
6681
|
+
const _optional13 = payload["authorityScope"];
|
|
6682
|
+
{
|
|
6683
|
+
const _out14 = _payloadChildren0;
|
|
6684
|
+
{
|
|
6685
|
+
const _out15 = _payloadChildren0;
|
|
6686
|
+
_nmsRoutingCandidates.push(_optional13);
|
|
6687
|
+
_nmsUsdaBegin2(_out15, 3, "NomosStringValue", "/Change/Call/Payload/f_8c175f0470bde233");
|
|
6688
|
+
_nmsUsdaRel2(_out15, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a/Fields/f_8c175f0470bde233");
|
|
6689
|
+
_nmsUsdaRel2(_out15, 4, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
6690
|
+
_nmsUsdaString2(_out15, 4, "string", "nomos:value", _optional13);
|
|
6691
|
+
_nmsUsdaClose2(_out15, 3);
|
|
6692
|
+
}
|
|
6693
|
+
}
|
|
6694
|
+
}
|
|
6695
|
+
{
|
|
6696
|
+
const _out16 = _payloadChildren0;
|
|
6697
|
+
_nmsRoutingCandidates.push(payload["domainHash"]);
|
|
6698
|
+
_nmsUsdaBegin2(_out16, 3, "NomosStringValue", "/Change/Call/Payload/f_ecdc06bc9b8ae826");
|
|
6699
|
+
_nmsUsdaRel2(_out16, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a/Fields/f_ecdc06bc9b8ae826");
|
|
6700
|
+
_nmsUsdaRel2(_out16, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
6701
|
+
_nmsUsdaString2(_out16, 4, "string", "nomos:value", payload["domainHash"]);
|
|
6702
|
+
_nmsUsdaClose2(_out16, 3);
|
|
6703
|
+
}
|
|
6704
|
+
_nmsUsdaChildren2(out, _payloadChildren0);
|
|
6705
|
+
_nmsUsdaClose2(out, 2);
|
|
6706
|
+
_nmsUsdaClose2(out, 1);
|
|
6707
|
+
_nmsUsdaClose2(out, 0);
|
|
6708
|
+
return _nmsGeneratedCall2("nomos", "installDomain", _nmsUsdaUtf82(out.join("\n") + "\n"), _nmsRoutingCandidates);
|
|
6709
|
+
}
|
|
6710
|
+
function _nmsCallUsda_nomos_stageDomain(payload, nmsInternalWorkspace) {
|
|
6711
|
+
const _nmsRoutingCandidates = [];
|
|
6712
|
+
const out = [
|
|
6713
|
+
"#usda 1.0",
|
|
6714
|
+
"(",
|
|
6715
|
+
' defaultPrim = "Change"',
|
|
6716
|
+
")",
|
|
6717
|
+
"",
|
|
6718
|
+
'def NomosChange "Change"',
|
|
6719
|
+
"{",
|
|
6720
|
+
" custom rel nomos:directive = </Nomos/Domains/d_a0c452a9439bb87f/Intents/i_d1e20244ccbcde0e>",
|
|
6721
|
+
"",
|
|
6722
|
+
' def NomosCall "Call"',
|
|
6723
|
+
" {",
|
|
6724
|
+
" custom rel nomos:contract = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b>",
|
|
6725
|
+
"",
|
|
6726
|
+
' def NomosRecordValue "Payload"',
|
|
6727
|
+
" {",
|
|
6728
|
+
" custom rel nomos:type = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b>"
|
|
6729
|
+
];
|
|
6730
|
+
const _payloadChildren0 = [];
|
|
6731
|
+
if (payload["supersedes"] !== void 0) {
|
|
6732
|
+
const _optional1 = payload["supersedes"];
|
|
6733
|
+
{
|
|
6734
|
+
const _out2 = _payloadChildren0;
|
|
6735
|
+
_nmsRoutingCandidates.push(_optional1);
|
|
6736
|
+
_nmsUsdaBegin2(_out2, 3, "NomosStringValue", "/Change/Call/Payload/f_7299aada560ca0fe");
|
|
6737
|
+
_nmsUsdaRel2(_out2, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_7299aada560ca0fe");
|
|
6738
|
+
_nmsUsdaRel2(_out2, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
6739
|
+
_nmsUsdaString2(_out2, 4, "string", "nomos:value", _optional1);
|
|
6740
|
+
_nmsUsdaClose2(_out2, 3);
|
|
6741
|
+
}
|
|
6742
|
+
}
|
|
6743
|
+
{
|
|
6744
|
+
const _out3 = _payloadChildren0;
|
|
6745
|
+
_nmsRoutingCandidates.push(payload["installedBy"]);
|
|
6746
|
+
_nmsUsdaBegin2(_out3, 3, "NomosStringValue", "/Change/Call/Payload/f_8ae27ff159721deb");
|
|
6747
|
+
_nmsUsdaRel2(_out3, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_8ae27ff159721deb");
|
|
6748
|
+
_nmsUsdaRel2(_out3, 4, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
6749
|
+
_nmsUsdaString2(_out3, 4, "string", "nomos:value", payload["installedBy"]);
|
|
6750
|
+
_nmsUsdaClose2(_out3, 3);
|
|
6751
|
+
}
|
|
6752
|
+
{
|
|
6753
|
+
const _out4 = _payloadChildren0;
|
|
6754
|
+
_nmsRoutingCandidates.push(payload["domainHash"]);
|
|
6755
|
+
_nmsUsdaBegin2(_out4, 3, "NomosStringValue", "/Change/Call/Payload/f_8fa1bfa0d6235238");
|
|
6756
|
+
_nmsUsdaRel2(_out4, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_8fa1bfa0d6235238");
|
|
6757
|
+
_nmsUsdaRel2(_out4, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
6758
|
+
_nmsUsdaString2(_out4, 4, "string", "nomos:value", payload["domainHash"]);
|
|
6759
|
+
_nmsUsdaClose2(_out4, 3);
|
|
6760
|
+
}
|
|
6761
|
+
if (payload["dependencies"] !== void 0) {
|
|
6762
|
+
const _optional5 = payload["dependencies"];
|
|
6763
|
+
{
|
|
6764
|
+
const _out6 = _payloadChildren0;
|
|
6765
|
+
_nmsUsdaBegin2(_out6, 3, "NomosListValue", "/Change/Call/Payload/f_90c6d0512feef3c5");
|
|
6766
|
+
_nmsUsdaRel2(_out6, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_90c6d0512feef3c5");
|
|
6767
|
+
_nmsUsdaRel2(_out6, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_8f49dab37fd06574");
|
|
6768
|
+
const _children7 = [];
|
|
6769
|
+
for (let _index8 = 0; _index8 < _optional5.length; _index8++) {
|
|
6770
|
+
{
|
|
6771
|
+
const _out9 = _children7;
|
|
6772
|
+
_nmsRoutingCandidates.push(_optional5[_index8]);
|
|
6773
|
+
_nmsUsdaBegin2(_out9, 4, "NomosStringValue", "/Change/Call/Payload/f_90c6d0512feef3c5/i_" + String(_index8).padStart(8, "0"));
|
|
6774
|
+
_nmsUsdaRel2(_out9, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
6775
|
+
_nmsUsdaString2(_out9, 5, "string", "nomos:value", _optional5[_index8]);
|
|
6776
|
+
_nmsUsdaClose2(_out9, 4);
|
|
6777
|
+
}
|
|
6778
|
+
}
|
|
6779
|
+
_nmsUsdaChildren2(_out6, _children7);
|
|
6780
|
+
_nmsUsdaClose2(_out6, 3);
|
|
6781
|
+
}
|
|
6782
|
+
}
|
|
6783
|
+
if (payload["authorityScope"] !== void 0) {
|
|
6784
|
+
const _optional10 = payload["authorityScope"];
|
|
6785
|
+
{
|
|
6786
|
+
const _out11 = _payloadChildren0;
|
|
6787
|
+
{
|
|
6788
|
+
const _out12 = _payloadChildren0;
|
|
6789
|
+
_nmsRoutingCandidates.push(_optional10);
|
|
6790
|
+
_nmsUsdaBegin2(_out12, 3, "NomosStringValue", "/Change/Call/Payload/f_973daecb96bc05df");
|
|
6791
|
+
_nmsUsdaRel2(_out12, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_973daecb96bc05df");
|
|
6792
|
+
_nmsUsdaRel2(_out12, 4, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
6793
|
+
_nmsUsdaString2(_out12, 4, "string", "nomos:value", _optional10);
|
|
6794
|
+
_nmsUsdaClose2(_out12, 3);
|
|
6795
|
+
}
|
|
6796
|
+
}
|
|
6797
|
+
}
|
|
6798
|
+
{
|
|
6799
|
+
const _out13 = _payloadChildren0;
|
|
6800
|
+
_nmsRoutingCandidates.push(payload["lawClosureIdentity"]);
|
|
6801
|
+
_nmsUsdaBegin2(_out13, 3, "NomosStringValue", "/Change/Call/Payload/f_b89e206d03838b3f");
|
|
6802
|
+
_nmsUsdaRel2(_out13, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_b89e206d03838b3f");
|
|
6803
|
+
_nmsUsdaRel2(_out13, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
6804
|
+
_nmsUsdaString2(_out13, 4, "string", "nomos:value", payload["lawClosureIdentity"]);
|
|
6805
|
+
_nmsUsdaClose2(_out13, 3);
|
|
6806
|
+
}
|
|
6807
|
+
if (payload["finalizers"] !== void 0) {
|
|
6808
|
+
const _optional14 = payload["finalizers"];
|
|
6809
|
+
{
|
|
6810
|
+
const _out15 = _payloadChildren0;
|
|
6811
|
+
_nmsUsdaBegin2(_out15, 3, "NomosListValue", "/Change/Call/Payload/f_ba5c0ccfec7ef978");
|
|
6812
|
+
_nmsUsdaRel2(_out15, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_ba5c0ccfec7ef978");
|
|
6813
|
+
_nmsUsdaRel2(_out15, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_8f49dab37fd06574");
|
|
6814
|
+
const _children16 = [];
|
|
6815
|
+
for (let _index17 = 0; _index17 < _optional14.length; _index17++) {
|
|
6816
|
+
{
|
|
6817
|
+
const _out18 = _children16;
|
|
6818
|
+
_nmsRoutingCandidates.push(_optional14[_index17]);
|
|
6819
|
+
_nmsUsdaBegin2(_out18, 4, "NomosStringValue", "/Change/Call/Payload/f_ba5c0ccfec7ef978/i_" + String(_index17).padStart(8, "0"));
|
|
6820
|
+
_nmsUsdaRel2(_out18, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
6821
|
+
_nmsUsdaString2(_out18, 5, "string", "nomos:value", _optional14[_index17]);
|
|
6822
|
+
_nmsUsdaClose2(_out18, 4);
|
|
6823
|
+
}
|
|
6824
|
+
}
|
|
6825
|
+
_nmsUsdaChildren2(_out15, _children16);
|
|
6826
|
+
_nmsUsdaClose2(_out15, 3);
|
|
6827
|
+
}
|
|
6828
|
+
}
|
|
6829
|
+
_nmsUsdaChildren2(out, _payloadChildren0);
|
|
6830
|
+
_nmsUsdaClose2(out, 2);
|
|
6831
|
+
_nmsUsdaClose2(out, 1);
|
|
6832
|
+
_nmsUsdaClose2(out, 0);
|
|
6833
|
+
return _nmsGeneratedCall2("nomos", "stageDomain", _nmsUsdaUtf82(out.join("\n") + "\n"), _nmsRoutingCandidates);
|
|
6834
|
+
}
|
|
6835
|
+
function _nmsCallUsda_nomos_promoteDomain(payload, nmsInternalWorkspace) {
|
|
6836
|
+
const _nmsRoutingCandidates = [];
|
|
6837
|
+
const out = [
|
|
6838
|
+
"#usda 1.0",
|
|
6839
|
+
"(",
|
|
6840
|
+
' defaultPrim = "Change"',
|
|
6841
|
+
")",
|
|
6842
|
+
"",
|
|
6843
|
+
'def NomosChange "Change"',
|
|
6844
|
+
"{",
|
|
6845
|
+
" custom rel nomos:directive = </Nomos/Domains/d_a0c452a9439bb87f/Intents/i_19fadc014ad1a29f>",
|
|
6846
|
+
"",
|
|
6847
|
+
' def NomosCall "Call"',
|
|
6848
|
+
" {",
|
|
6849
|
+
" custom rel nomos:contract = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1>",
|
|
6850
|
+
"",
|
|
6851
|
+
' def NomosRecordValue "Payload"',
|
|
6852
|
+
" {",
|
|
6853
|
+
" custom rel nomos:type = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1>"
|
|
6854
|
+
];
|
|
6855
|
+
const _payloadChildren0 = [];
|
|
6856
|
+
{
|
|
6857
|
+
const _out1 = _payloadChildren0;
|
|
6858
|
+
_nmsUsdaBegin2(_out1, 3, "NomosRecordValue", "/Change/Call/Payload/f_2b09f552be69963e");
|
|
6859
|
+
_nmsUsdaRel2(_out1, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1/Fields/f_2b09f552be69963e");
|
|
6860
|
+
_nmsUsdaRel2(_out1, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce");
|
|
6861
|
+
const _children2 = [];
|
|
6862
|
+
{
|
|
6863
|
+
const _out3 = _children2;
|
|
6864
|
+
_nmsRoutingCandidates.push(payload["preflight"]["atHash"]);
|
|
6865
|
+
_nmsUsdaBegin2(_out3, 4, "NomosStringValue", "/Change/Call/Payload/f_2b09f552be69963e/f_bcd35c7741e77072");
|
|
6866
|
+
_nmsUsdaRel2(_out3, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_bcd35c7741e77072");
|
|
6867
|
+
_nmsUsdaRel2(_out3, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_2cb4f34cab8c95cb");
|
|
6868
|
+
_nmsUsdaString2(_out3, 5, "string", "nomos:value", payload["preflight"]["atHash"]);
|
|
6869
|
+
_nmsUsdaClose2(_out3, 4);
|
|
6870
|
+
}
|
|
6871
|
+
{
|
|
6872
|
+
const _out4 = _children2;
|
|
6873
|
+
_nmsUsdaBegin2(_out4, 4, "NomosBoolValue", "/Change/Call/Payload/f_2b09f552be69963e/f_7dc8402a5b449a87");
|
|
6874
|
+
_nmsUsdaRel2(_out4, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_7dc8402a5b449a87");
|
|
6875
|
+
_nmsUsdaRel2(_out4, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_7e69f1a92bd07181");
|
|
6876
|
+
_nmsUsdaScalar(_out4, 5, "bool", "nomos:value", "true");
|
|
6877
|
+
_nmsUsdaClose2(_out4, 4);
|
|
6878
|
+
}
|
|
6879
|
+
{
|
|
6880
|
+
const _out5 = _children2;
|
|
6881
|
+
_nmsRoutingCandidates.push(payload["preflight"]["atStateRoot"]);
|
|
6882
|
+
_nmsUsdaBegin2(_out5, 4, "NomosStringValue", "/Change/Call/Payload/f_2b09f552be69963e/f_2e3db9abeea3b26d");
|
|
6883
|
+
_nmsUsdaRel2(_out5, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_2e3db9abeea3b26d");
|
|
6884
|
+
_nmsUsdaRel2(_out5, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_2cb4f34cab8c95cb");
|
|
6885
|
+
_nmsUsdaString2(_out5, 5, "string", "nomos:value", payload["preflight"]["atStateRoot"]);
|
|
6886
|
+
_nmsUsdaClose2(_out5, 4);
|
|
6887
|
+
}
|
|
6888
|
+
{
|
|
6889
|
+
const _out6 = _children2;
|
|
6890
|
+
_nmsRoutingCandidates.push(payload["preflight"]["domain"]);
|
|
6891
|
+
_nmsUsdaBegin2(_out6, 4, "NomosStringValue", "/Change/Call/Payload/f_2b09f552be69963e/f_d9e172710a2c05dd");
|
|
6892
|
+
_nmsUsdaRel2(_out6, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_d9e172710a2c05dd");
|
|
6893
|
+
_nmsUsdaRel2(_out6, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_1f5af3cc2413c969");
|
|
6894
|
+
_nmsUsdaString2(_out6, 5, "string", "nomos:value", payload["preflight"]["domain"]);
|
|
6895
|
+
_nmsUsdaClose2(_out6, 4);
|
|
6896
|
+
}
|
|
6897
|
+
const _optional7 = payload["preflight"]["acceptanceReason"];
|
|
6898
|
+
if (_optional7 !== void 0) {
|
|
6899
|
+
{
|
|
6900
|
+
const _out8 = _children2;
|
|
6901
|
+
_nmsRoutingCandidates.push(_optional7);
|
|
6902
|
+
_nmsUsdaBegin2(_out8, 4, "NomosStringValue", "/Change/Call/Payload/f_2b09f552be69963e/f_c35bafa9ae6c1ea6");
|
|
6903
|
+
_nmsUsdaRel2(_out8, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_c35bafa9ae6c1ea6");
|
|
6904
|
+
_nmsUsdaRel2(_out8, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_1f5af3cc2413c969");
|
|
6905
|
+
_nmsUsdaString2(_out8, 5, "string", "nomos:value", _optional7);
|
|
6906
|
+
_nmsUsdaClose2(_out8, 4);
|
|
6907
|
+
}
|
|
6908
|
+
}
|
|
6909
|
+
{
|
|
6910
|
+
const _out9 = _children2;
|
|
6911
|
+
_nmsRoutingCandidates.push(payload["preflight"]["candidateHash"]);
|
|
6912
|
+
_nmsUsdaBegin2(_out9, 4, "NomosStringValue", "/Change/Call/Payload/f_2b09f552be69963e/f_a45372ee1ddb7298");
|
|
6913
|
+
_nmsUsdaRel2(_out9, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_a45372ee1ddb7298");
|
|
6914
|
+
_nmsUsdaRel2(_out9, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
6915
|
+
_nmsUsdaString2(_out9, 5, "string", "nomos:value", payload["preflight"]["candidateHash"]);
|
|
6916
|
+
_nmsUsdaClose2(_out9, 4);
|
|
6917
|
+
}
|
|
6918
|
+
_nmsUsdaChildren2(_out1, _children2);
|
|
6919
|
+
_nmsUsdaClose2(_out1, 3);
|
|
6920
|
+
}
|
|
6921
|
+
if (payload["replaces"] !== void 0) {
|
|
6922
|
+
const _optional10 = payload["replaces"];
|
|
6923
|
+
{
|
|
6924
|
+
const _out11 = _payloadChildren0;
|
|
6925
|
+
_nmsRoutingCandidates.push(_optional10);
|
|
6926
|
+
_nmsUsdaBegin2(_out11, 3, "NomosStringValue", "/Change/Call/Payload/f_2cbeb64696e8e239");
|
|
6927
|
+
_nmsUsdaRel2(_out11, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1/Fields/f_2cbeb64696e8e239");
|
|
6928
|
+
_nmsUsdaRel2(_out11, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
6929
|
+
_nmsUsdaString2(_out11, 4, "string", "nomos:value", _optional10);
|
|
6930
|
+
_nmsUsdaClose2(_out11, 3);
|
|
6931
|
+
}
|
|
6932
|
+
}
|
|
6933
|
+
if (payload["dispositions"] !== void 0) {
|
|
6934
|
+
const _optional12 = payload["dispositions"];
|
|
6935
|
+
{
|
|
6936
|
+
const _out13 = _payloadChildren0;
|
|
6937
|
+
_nmsUsdaBegin2(_out13, 3, "NomosRecordValue", "/Change/Call/Payload/f_71c39cf1862f933f");
|
|
6938
|
+
_nmsUsdaRel2(_out13, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1/Fields/f_71c39cf1862f933f");
|
|
6939
|
+
_nmsUsdaRel2(_out13, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a");
|
|
6940
|
+
const _children14 = [];
|
|
6941
|
+
const _optional15 = _optional12["ackBy"];
|
|
6942
|
+
if (_optional15 !== void 0) {
|
|
6943
|
+
{
|
|
6944
|
+
const _out16 = _children14;
|
|
6945
|
+
_nmsRoutingCandidates.push(_optional15);
|
|
6946
|
+
_nmsUsdaBegin2(_out16, 4, "NomosStringValue", "/Change/Call/Payload/f_71c39cf1862f933f/f_1e5bbaa9f06e7ee0");
|
|
6947
|
+
_nmsUsdaRel2(_out16, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_1e5bbaa9f06e7ee0");
|
|
6948
|
+
_nmsUsdaRel2(_out16, 5, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
6949
|
+
_nmsUsdaString2(_out16, 5, "string", "nomos:value", _optional15);
|
|
6950
|
+
_nmsUsdaClose2(_out16, 4);
|
|
6951
|
+
}
|
|
6952
|
+
}
|
|
6953
|
+
const _optional17 = _optional12["rebinds"];
|
|
6954
|
+
if (_optional17 !== void 0) {
|
|
6955
|
+
{
|
|
6956
|
+
const _out18 = _children14;
|
|
6957
|
+
_nmsUsdaBegin2(_out18, 4, "NomosMapValue", "/Change/Call/Payload/f_71c39cf1862f933f/f_b01f60d0e2740d56");
|
|
6958
|
+
_nmsUsdaRel2(_out18, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_b01f60d0e2740d56");
|
|
6959
|
+
_nmsUsdaRel2(_out18, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_045984fbf3b46411");
|
|
6960
|
+
const _children19 = [];
|
|
6961
|
+
const _entries20 = Object.entries(_optional17).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0);
|
|
6962
|
+
for (let _index21 = 0; _index21 < _entries20.length; _index21++) {
|
|
6963
|
+
const [_key22, _value23] = _entries20[_index21];
|
|
6964
|
+
_nmsRoutingCandidates.push(_key22);
|
|
6965
|
+
const _entryPath24 = "/Change/Call/Payload/f_71c39cf1862f933f/f_b01f60d0e2740d56/e_" + String(_index21).padStart(8, "0");
|
|
6966
|
+
_nmsUsdaBegin2(_children19, 5, "NomosMapEntry", _entryPath24);
|
|
6967
|
+
_nmsUsdaString2(_children19, 6, "string", "nomos:key", _key22);
|
|
6968
|
+
if (7 > 0) _children19.push("");
|
|
6969
|
+
{
|
|
6970
|
+
const _out25 = _children19;
|
|
6971
|
+
_nmsRoutingCandidates.push(_value23);
|
|
6972
|
+
_nmsUsdaBegin2(_out25, 6, "NomosStringValue", _entryPath24 + "/Value");
|
|
6973
|
+
_nmsUsdaRel2(_out25, 7, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
6974
|
+
_nmsUsdaString2(_out25, 7, "string", "nomos:value", _value23);
|
|
6975
|
+
_nmsUsdaClose2(_out25, 6);
|
|
6976
|
+
}
|
|
6977
|
+
_nmsUsdaClose2(_children19, 5);
|
|
6978
|
+
}
|
|
6979
|
+
_nmsUsdaChildren2(_out18, _children19);
|
|
6980
|
+
_nmsUsdaClose2(_out18, 4);
|
|
6981
|
+
}
|
|
6982
|
+
}
|
|
6983
|
+
const _optional26 = _optional12["retired"];
|
|
6984
|
+
if (_optional26 !== void 0) {
|
|
6985
|
+
{
|
|
6986
|
+
const _out27 = _children14;
|
|
6987
|
+
_nmsUsdaBegin2(_out27, 4, "NomosListValue", "/Change/Call/Payload/f_71c39cf1862f933f/f_cb7f3511be108b94");
|
|
6988
|
+
_nmsUsdaRel2(_out27, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_cb7f3511be108b94");
|
|
6989
|
+
_nmsUsdaRel2(_out27, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_4ac964a743207b02");
|
|
6990
|
+
const _children28 = [];
|
|
6991
|
+
for (let _index29 = 0; _index29 < _optional26.length; _index29++) {
|
|
6992
|
+
{
|
|
6993
|
+
const _out30 = _children28;
|
|
6994
|
+
_nmsRoutingCandidates.push(_optional26[_index29]);
|
|
6995
|
+
_nmsUsdaBegin2(_out30, 5, "NomosStringValue", "/Change/Call/Payload/f_71c39cf1862f933f/f_cb7f3511be108b94/i_" + String(_index29).padStart(8, "0"));
|
|
6996
|
+
_nmsUsdaRel2(_out30, 6, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
6997
|
+
_nmsUsdaString2(_out30, 6, "string", "nomos:value", _optional26[_index29]);
|
|
6998
|
+
_nmsUsdaClose2(_out30, 5);
|
|
6999
|
+
}
|
|
7000
|
+
}
|
|
7001
|
+
_nmsUsdaChildren2(_out27, _children28);
|
|
7002
|
+
_nmsUsdaClose2(_out27, 4);
|
|
7003
|
+
}
|
|
7004
|
+
}
|
|
7005
|
+
const _optional31 = _optional12["retyped"];
|
|
7006
|
+
if (_optional31 !== void 0) {
|
|
7007
|
+
{
|
|
7008
|
+
const _out32 = _children14;
|
|
7009
|
+
_nmsUsdaBegin2(_out32, 4, "NomosMapValue", "/Change/Call/Payload/f_71c39cf1862f933f/f_e22ae9fd11240338");
|
|
7010
|
+
_nmsUsdaRel2(_out32, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_e22ae9fd11240338");
|
|
7011
|
+
_nmsUsdaRel2(_out32, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_045984fbf3b46411");
|
|
7012
|
+
const _children33 = [];
|
|
7013
|
+
const _entries34 = Object.entries(_optional31).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0);
|
|
7014
|
+
for (let _index35 = 0; _index35 < _entries34.length; _index35++) {
|
|
7015
|
+
const [_key36, _value37] = _entries34[_index35];
|
|
7016
|
+
_nmsRoutingCandidates.push(_key36);
|
|
7017
|
+
const _entryPath38 = "/Change/Call/Payload/f_71c39cf1862f933f/f_e22ae9fd11240338/e_" + String(_index35).padStart(8, "0");
|
|
7018
|
+
_nmsUsdaBegin2(_children33, 5, "NomosMapEntry", _entryPath38);
|
|
7019
|
+
_nmsUsdaString2(_children33, 6, "string", "nomos:key", _key36);
|
|
7020
|
+
if (7 > 0) _children33.push("");
|
|
7021
|
+
{
|
|
7022
|
+
const _out39 = _children33;
|
|
7023
|
+
_nmsRoutingCandidates.push(_value37);
|
|
7024
|
+
_nmsUsdaBegin2(_out39, 6, "NomosStringValue", _entryPath38 + "/Value");
|
|
7025
|
+
_nmsUsdaRel2(_out39, 7, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
7026
|
+
_nmsUsdaString2(_out39, 7, "string", "nomos:value", _value37);
|
|
7027
|
+
_nmsUsdaClose2(_out39, 6);
|
|
7028
|
+
}
|
|
7029
|
+
_nmsUsdaClose2(_children33, 5);
|
|
7030
|
+
}
|
|
7031
|
+
_nmsUsdaChildren2(_out32, _children33);
|
|
7032
|
+
_nmsUsdaClose2(_out32, 4);
|
|
7033
|
+
}
|
|
7034
|
+
}
|
|
7035
|
+
_nmsUsdaChildren2(_out13, _children14);
|
|
7036
|
+
_nmsUsdaClose2(_out13, 3);
|
|
7037
|
+
}
|
|
7038
|
+
}
|
|
7039
|
+
if (payload["retireReplaced"] !== void 0) {
|
|
7040
|
+
const _optional40 = payload["retireReplaced"];
|
|
7041
|
+
{
|
|
7042
|
+
const _out41 = _payloadChildren0;
|
|
7043
|
+
{
|
|
7044
|
+
const _out42 = _payloadChildren0;
|
|
7045
|
+
_nmsUsdaBegin2(_out42, 3, "NomosBoolValue", "/Change/Call/Payload/f_866a5da30aaeaa59");
|
|
7046
|
+
_nmsUsdaRel2(_out42, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1/Fields/f_866a5da30aaeaa59");
|
|
7047
|
+
_nmsUsdaRel2(_out42, 4, "nomos:type", "/Nomos/Framework/Types/t_0000000000000004");
|
|
7048
|
+
_nmsUsdaScalar(_out42, 4, "bool", "nomos:value", _optional40 ? "true" : "false");
|
|
7049
|
+
_nmsUsdaClose2(_out42, 3);
|
|
7050
|
+
}
|
|
7051
|
+
}
|
|
7052
|
+
}
|
|
7053
|
+
{
|
|
7054
|
+
const _out43 = _payloadChildren0;
|
|
7055
|
+
_nmsRoutingCandidates.push(payload["domainHash"]);
|
|
7056
|
+
_nmsUsdaBegin2(_out43, 3, "NomosStringValue", "/Change/Call/Payload/f_8f7ab82f65eec9b4");
|
|
7057
|
+
_nmsUsdaRel2(_out43, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1/Fields/f_8f7ab82f65eec9b4");
|
|
7058
|
+
_nmsUsdaRel2(_out43, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
7059
|
+
_nmsUsdaString2(_out43, 4, "string", "nomos:value", payload["domainHash"]);
|
|
7060
|
+
_nmsUsdaClose2(_out43, 3);
|
|
7061
|
+
}
|
|
7062
|
+
_nmsUsdaChildren2(out, _payloadChildren0);
|
|
7063
|
+
_nmsUsdaClose2(out, 2);
|
|
7064
|
+
_nmsUsdaClose2(out, 1);
|
|
7065
|
+
_nmsUsdaClose2(out, 0);
|
|
7066
|
+
return _nmsGeneratedCall2("nomos", "promoteDomain", _nmsUsdaUtf82(out.join("\n") + "\n"), _nmsRoutingCandidates);
|
|
7067
|
+
}
|
|
7068
|
+
function _nmsCallUsda_nomos_rollbackDomain(payload, nmsInternalWorkspace) {
|
|
7069
|
+
const _nmsRoutingCandidates = [];
|
|
7070
|
+
const out = [
|
|
7071
|
+
"#usda 1.0",
|
|
7072
|
+
"(",
|
|
7073
|
+
' defaultPrim = "Change"',
|
|
7074
|
+
")",
|
|
7075
|
+
"",
|
|
7076
|
+
'def NomosChange "Change"',
|
|
7077
|
+
"{",
|
|
7078
|
+
" custom rel nomos:directive = </Nomos/Domains/d_a0c452a9439bb87f/Intents/i_4425c0a08f105321>",
|
|
7079
|
+
"",
|
|
7080
|
+
' def NomosCall "Call"',
|
|
7081
|
+
" {",
|
|
7082
|
+
" custom rel nomos:contract = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_2d8585a3a3734daa>",
|
|
7083
|
+
"",
|
|
7084
|
+
' def NomosRecordValue "Payload"',
|
|
7085
|
+
" {",
|
|
7086
|
+
" custom rel nomos:type = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_2d8585a3a3734daa>"
|
|
7087
|
+
];
|
|
7088
|
+
const _payloadChildren0 = [];
|
|
7089
|
+
{
|
|
7090
|
+
const _out1 = _payloadChildren0;
|
|
7091
|
+
_nmsUsdaBegin2(_out1, 3, "NomosRecordValue", "/Change/Call/Payload/f_143aee879824faff");
|
|
7092
|
+
_nmsUsdaRel2(_out1, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_2d8585a3a3734daa/Fields/f_143aee879824faff");
|
|
7093
|
+
_nmsUsdaRel2(_out1, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce");
|
|
7094
|
+
const _children2 = [];
|
|
7095
|
+
{
|
|
7096
|
+
const _out3 = _children2;
|
|
7097
|
+
_nmsRoutingCandidates.push(payload["preflight"]["atStateRoot"]);
|
|
7098
|
+
_nmsUsdaBegin2(_out3, 4, "NomosStringValue", "/Change/Call/Payload/f_143aee879824faff/f_2e3db9abeea3b26d");
|
|
7099
|
+
_nmsUsdaRel2(_out3, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_2e3db9abeea3b26d");
|
|
7100
|
+
_nmsUsdaRel2(_out3, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_2cb4f34cab8c95cb");
|
|
7101
|
+
_nmsUsdaString2(_out3, 5, "string", "nomos:value", payload["preflight"]["atStateRoot"]);
|
|
7102
|
+
_nmsUsdaClose2(_out3, 4);
|
|
7103
|
+
}
|
|
7104
|
+
{
|
|
7105
|
+
const _out4 = _children2;
|
|
7106
|
+
_nmsUsdaBegin2(_out4, 4, "NomosBoolValue", "/Change/Call/Payload/f_143aee879824faff/f_7dc8402a5b449a87");
|
|
7107
|
+
_nmsUsdaRel2(_out4, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_7dc8402a5b449a87");
|
|
7108
|
+
_nmsUsdaRel2(_out4, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_7e69f1a92bd07181");
|
|
7109
|
+
_nmsUsdaScalar(_out4, 5, "bool", "nomos:value", "true");
|
|
7110
|
+
_nmsUsdaClose2(_out4, 4);
|
|
7111
|
+
}
|
|
7112
|
+
{
|
|
7113
|
+
const _out5 = _children2;
|
|
7114
|
+
_nmsRoutingCandidates.push(payload["preflight"]["candidateHash"]);
|
|
7115
|
+
_nmsUsdaBegin2(_out5, 4, "NomosStringValue", "/Change/Call/Payload/f_143aee879824faff/f_a45372ee1ddb7298");
|
|
7116
|
+
_nmsUsdaRel2(_out5, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_a45372ee1ddb7298");
|
|
7117
|
+
_nmsUsdaRel2(_out5, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
7118
|
+
_nmsUsdaString2(_out5, 5, "string", "nomos:value", payload["preflight"]["candidateHash"]);
|
|
7119
|
+
_nmsUsdaClose2(_out5, 4);
|
|
7120
|
+
}
|
|
7121
|
+
{
|
|
7122
|
+
const _out6 = _children2;
|
|
7123
|
+
_nmsRoutingCandidates.push(payload["preflight"]["atHash"]);
|
|
7124
|
+
_nmsUsdaBegin2(_out6, 4, "NomosStringValue", "/Change/Call/Payload/f_143aee879824faff/f_bcd35c7741e77072");
|
|
7125
|
+
_nmsUsdaRel2(_out6, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_bcd35c7741e77072");
|
|
7126
|
+
_nmsUsdaRel2(_out6, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_2cb4f34cab8c95cb");
|
|
7127
|
+
_nmsUsdaString2(_out6, 5, "string", "nomos:value", payload["preflight"]["atHash"]);
|
|
7128
|
+
_nmsUsdaClose2(_out6, 4);
|
|
7129
|
+
}
|
|
7130
|
+
const _optional7 = payload["preflight"]["acceptanceReason"];
|
|
7131
|
+
if (_optional7 !== void 0) {
|
|
7132
|
+
{
|
|
7133
|
+
const _out8 = _children2;
|
|
7134
|
+
_nmsRoutingCandidates.push(_optional7);
|
|
7135
|
+
_nmsUsdaBegin2(_out8, 4, "NomosStringValue", "/Change/Call/Payload/f_143aee879824faff/f_c35bafa9ae6c1ea6");
|
|
7136
|
+
_nmsUsdaRel2(_out8, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_c35bafa9ae6c1ea6");
|
|
7137
|
+
_nmsUsdaRel2(_out8, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_1f5af3cc2413c969");
|
|
7138
|
+
_nmsUsdaString2(_out8, 5, "string", "nomos:value", _optional7);
|
|
7139
|
+
_nmsUsdaClose2(_out8, 4);
|
|
7140
|
+
}
|
|
7141
|
+
}
|
|
7142
|
+
{
|
|
7143
|
+
const _out9 = _children2;
|
|
7144
|
+
_nmsRoutingCandidates.push(payload["preflight"]["domain"]);
|
|
7145
|
+
_nmsUsdaBegin2(_out9, 4, "NomosStringValue", "/Change/Call/Payload/f_143aee879824faff/f_d9e172710a2c05dd");
|
|
7146
|
+
_nmsUsdaRel2(_out9, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_d9e172710a2c05dd");
|
|
7147
|
+
_nmsUsdaRel2(_out9, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_1f5af3cc2413c969");
|
|
7148
|
+
_nmsUsdaString2(_out9, 5, "string", "nomos:value", payload["preflight"]["domain"]);
|
|
7149
|
+
_nmsUsdaClose2(_out9, 4);
|
|
7150
|
+
}
|
|
7151
|
+
_nmsUsdaChildren2(_out1, _children2);
|
|
7152
|
+
_nmsUsdaClose2(_out1, 3);
|
|
7153
|
+
}
|
|
7154
|
+
{
|
|
7155
|
+
const _out10 = _payloadChildren0;
|
|
7156
|
+
_nmsRoutingCandidates.push(payload["priorHash"]);
|
|
7157
|
+
_nmsUsdaBegin2(_out10, 3, "NomosStringValue", "/Change/Call/Payload/f_63bbe900a232095c");
|
|
7158
|
+
_nmsUsdaRel2(_out10, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_2d8585a3a3734daa/Fields/f_63bbe900a232095c");
|
|
7159
|
+
_nmsUsdaRel2(_out10, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
7160
|
+
_nmsUsdaString2(_out10, 4, "string", "nomos:value", payload["priorHash"]);
|
|
7161
|
+
_nmsUsdaClose2(_out10, 3);
|
|
7162
|
+
}
|
|
7163
|
+
{
|
|
7164
|
+
const _out11 = _payloadChildren0;
|
|
7165
|
+
_nmsRoutingCandidates.push(payload["candidateHash"]);
|
|
7166
|
+
_nmsUsdaBegin2(_out11, 3, "NomosStringValue", "/Change/Call/Payload/f_d10378a500b26e97");
|
|
7167
|
+
_nmsUsdaRel2(_out11, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_2d8585a3a3734daa/Fields/f_d10378a500b26e97");
|
|
7168
|
+
_nmsUsdaRel2(_out11, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
7169
|
+
_nmsUsdaString2(_out11, 4, "string", "nomos:value", payload["candidateHash"]);
|
|
7170
|
+
_nmsUsdaClose2(_out11, 3);
|
|
7171
|
+
}
|
|
7172
|
+
if (payload["dispositions"] !== void 0) {
|
|
7173
|
+
const _optional12 = payload["dispositions"];
|
|
7174
|
+
{
|
|
7175
|
+
const _out13 = _payloadChildren0;
|
|
7176
|
+
_nmsUsdaBegin2(_out13, 3, "NomosRecordValue", "/Change/Call/Payload/f_e015910b0a119d84");
|
|
7177
|
+
_nmsUsdaRel2(_out13, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_2d8585a3a3734daa/Fields/f_e015910b0a119d84");
|
|
7178
|
+
_nmsUsdaRel2(_out13, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a");
|
|
7179
|
+
const _children14 = [];
|
|
7180
|
+
const _optional15 = _optional12["retyped"];
|
|
7181
|
+
if (_optional15 !== void 0) {
|
|
7182
|
+
{
|
|
7183
|
+
const _out16 = _children14;
|
|
7184
|
+
_nmsUsdaBegin2(_out16, 4, "NomosMapValue", "/Change/Call/Payload/f_e015910b0a119d84/f_e22ae9fd11240338");
|
|
7185
|
+
_nmsUsdaRel2(_out16, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_e22ae9fd11240338");
|
|
7186
|
+
_nmsUsdaRel2(_out16, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_045984fbf3b46411");
|
|
7187
|
+
const _children17 = [];
|
|
7188
|
+
const _entries18 = Object.entries(_optional15).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0);
|
|
7189
|
+
for (let _index19 = 0; _index19 < _entries18.length; _index19++) {
|
|
7190
|
+
const [_key20, _value21] = _entries18[_index19];
|
|
7191
|
+
_nmsRoutingCandidates.push(_key20);
|
|
7192
|
+
const _entryPath22 = "/Change/Call/Payload/f_e015910b0a119d84/f_e22ae9fd11240338/e_" + String(_index19).padStart(8, "0");
|
|
7193
|
+
_nmsUsdaBegin2(_children17, 5, "NomosMapEntry", _entryPath22);
|
|
7194
|
+
_nmsUsdaString2(_children17, 6, "string", "nomos:key", _key20);
|
|
7195
|
+
if (7 > 0) _children17.push("");
|
|
7196
|
+
{
|
|
7197
|
+
const _out23 = _children17;
|
|
7198
|
+
_nmsRoutingCandidates.push(_value21);
|
|
7199
|
+
_nmsUsdaBegin2(_out23, 6, "NomosStringValue", _entryPath22 + "/Value");
|
|
7200
|
+
_nmsUsdaRel2(_out23, 7, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
7201
|
+
_nmsUsdaString2(_out23, 7, "string", "nomos:value", _value21);
|
|
7202
|
+
_nmsUsdaClose2(_out23, 6);
|
|
7203
|
+
}
|
|
7204
|
+
_nmsUsdaClose2(_children17, 5);
|
|
7205
|
+
}
|
|
7206
|
+
_nmsUsdaChildren2(_out16, _children17);
|
|
7207
|
+
_nmsUsdaClose2(_out16, 4);
|
|
7208
|
+
}
|
|
7209
|
+
}
|
|
7210
|
+
const _optional24 = _optional12["rebinds"];
|
|
7211
|
+
if (_optional24 !== void 0) {
|
|
7212
|
+
{
|
|
7213
|
+
const _out25 = _children14;
|
|
7214
|
+
_nmsUsdaBegin2(_out25, 4, "NomosMapValue", "/Change/Call/Payload/f_e015910b0a119d84/f_b01f60d0e2740d56");
|
|
7215
|
+
_nmsUsdaRel2(_out25, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_b01f60d0e2740d56");
|
|
7216
|
+
_nmsUsdaRel2(_out25, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_045984fbf3b46411");
|
|
7217
|
+
const _children26 = [];
|
|
7218
|
+
const _entries27 = Object.entries(_optional24).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0);
|
|
7219
|
+
for (let _index28 = 0; _index28 < _entries27.length; _index28++) {
|
|
7220
|
+
const [_key29, _value30] = _entries27[_index28];
|
|
7221
|
+
_nmsRoutingCandidates.push(_key29);
|
|
7222
|
+
const _entryPath31 = "/Change/Call/Payload/f_e015910b0a119d84/f_b01f60d0e2740d56/e_" + String(_index28).padStart(8, "0");
|
|
7223
|
+
_nmsUsdaBegin2(_children26, 5, "NomosMapEntry", _entryPath31);
|
|
7224
|
+
_nmsUsdaString2(_children26, 6, "string", "nomos:key", _key29);
|
|
7225
|
+
if (7 > 0) _children26.push("");
|
|
7226
|
+
{
|
|
7227
|
+
const _out32 = _children26;
|
|
7228
|
+
_nmsRoutingCandidates.push(_value30);
|
|
7229
|
+
_nmsUsdaBegin2(_out32, 6, "NomosStringValue", _entryPath31 + "/Value");
|
|
7230
|
+
_nmsUsdaRel2(_out32, 7, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
7231
|
+
_nmsUsdaString2(_out32, 7, "string", "nomos:value", _value30);
|
|
7232
|
+
_nmsUsdaClose2(_out32, 6);
|
|
7233
|
+
}
|
|
7234
|
+
_nmsUsdaClose2(_children26, 5);
|
|
7235
|
+
}
|
|
7236
|
+
_nmsUsdaChildren2(_out25, _children26);
|
|
7237
|
+
_nmsUsdaClose2(_out25, 4);
|
|
7238
|
+
}
|
|
7239
|
+
}
|
|
7240
|
+
const _optional33 = _optional12["retired"];
|
|
7241
|
+
if (_optional33 !== void 0) {
|
|
7242
|
+
{
|
|
7243
|
+
const _out34 = _children14;
|
|
7244
|
+
_nmsUsdaBegin2(_out34, 4, "NomosListValue", "/Change/Call/Payload/f_e015910b0a119d84/f_cb7f3511be108b94");
|
|
7245
|
+
_nmsUsdaRel2(_out34, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_cb7f3511be108b94");
|
|
7246
|
+
_nmsUsdaRel2(_out34, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_4ac964a743207b02");
|
|
7247
|
+
const _children35 = [];
|
|
7248
|
+
for (let _index36 = 0; _index36 < _optional33.length; _index36++) {
|
|
7249
|
+
{
|
|
7250
|
+
const _out37 = _children35;
|
|
7251
|
+
_nmsRoutingCandidates.push(_optional33[_index36]);
|
|
7252
|
+
_nmsUsdaBegin2(_out37, 5, "NomosStringValue", "/Change/Call/Payload/f_e015910b0a119d84/f_cb7f3511be108b94/i_" + String(_index36).padStart(8, "0"));
|
|
7253
|
+
_nmsUsdaRel2(_out37, 6, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
7254
|
+
_nmsUsdaString2(_out37, 6, "string", "nomos:value", _optional33[_index36]);
|
|
7255
|
+
_nmsUsdaClose2(_out37, 5);
|
|
7256
|
+
}
|
|
7257
|
+
}
|
|
7258
|
+
_nmsUsdaChildren2(_out34, _children35);
|
|
7259
|
+
_nmsUsdaClose2(_out34, 4);
|
|
7260
|
+
}
|
|
7261
|
+
}
|
|
7262
|
+
const _optional38 = _optional12["ackBy"];
|
|
7263
|
+
if (_optional38 !== void 0) {
|
|
7264
|
+
{
|
|
7265
|
+
const _out39 = _children14;
|
|
7266
|
+
_nmsRoutingCandidates.push(_optional38);
|
|
7267
|
+
_nmsUsdaBegin2(_out39, 4, "NomosStringValue", "/Change/Call/Payload/f_e015910b0a119d84/f_1e5bbaa9f06e7ee0");
|
|
7268
|
+
_nmsUsdaRel2(_out39, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_1e5bbaa9f06e7ee0");
|
|
7269
|
+
_nmsUsdaRel2(_out39, 5, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
7270
|
+
_nmsUsdaString2(_out39, 5, "string", "nomos:value", _optional38);
|
|
7271
|
+
_nmsUsdaClose2(_out39, 4);
|
|
7272
|
+
}
|
|
7273
|
+
}
|
|
7274
|
+
_nmsUsdaChildren2(_out13, _children14);
|
|
7275
|
+
_nmsUsdaClose2(_out13, 3);
|
|
7276
|
+
}
|
|
7277
|
+
}
|
|
7278
|
+
_nmsUsdaChildren2(out, _payloadChildren0);
|
|
7279
|
+
_nmsUsdaClose2(out, 2);
|
|
7280
|
+
_nmsUsdaClose2(out, 1);
|
|
7281
|
+
_nmsUsdaClose2(out, 0);
|
|
7282
|
+
return _nmsGeneratedCall2("nomos", "rollbackDomain", _nmsUsdaUtf82(out.join("\n") + "\n"), _nmsRoutingCandidates);
|
|
7283
|
+
}
|
|
7284
|
+
var nomosOperatorCalls2 = {
|
|
7285
|
+
installDomain(input) {
|
|
7286
|
+
const { domain, workspace: workspace2, ...payload } = input;
|
|
7287
|
+
switch (domain) {
|
|
7288
|
+
case "nomos":
|
|
7289
|
+
return _nmsCallUsda_nomos_installDomain(payload, workspace2);
|
|
7290
|
+
default:
|
|
7291
|
+
throw new Error("This law package has no 'installDomain' call in domain '" + domain + "'.");
|
|
7292
|
+
}
|
|
7293
|
+
},
|
|
7294
|
+
stageDomain(input) {
|
|
7295
|
+
const { domain, workspace: workspace2, ...payload } = input;
|
|
7296
|
+
switch (domain) {
|
|
7297
|
+
case "nomos":
|
|
7298
|
+
return _nmsCallUsda_nomos_stageDomain(payload, workspace2);
|
|
7299
|
+
default:
|
|
7300
|
+
throw new Error("This law package has no 'stageDomain' call in domain '" + domain + "'.");
|
|
7301
|
+
}
|
|
7302
|
+
},
|
|
7303
|
+
promoteDomain(input) {
|
|
7304
|
+
const { domain, workspace: workspace2, ...payload } = input;
|
|
7305
|
+
switch (domain) {
|
|
7306
|
+
case "nomos":
|
|
7307
|
+
return _nmsCallUsda_nomos_promoteDomain(payload, workspace2);
|
|
7308
|
+
default:
|
|
7309
|
+
throw new Error("This law package has no 'promoteDomain' call in domain '" + domain + "'.");
|
|
7310
|
+
}
|
|
7311
|
+
},
|
|
7312
|
+
rollbackDomain(input) {
|
|
7313
|
+
const { domain, workspace: workspace2, ...payload } = input;
|
|
7314
|
+
switch (domain) {
|
|
7315
|
+
case "nomos":
|
|
7316
|
+
return _nmsCallUsda_nomos_rollbackDomain(payload, workspace2);
|
|
7317
|
+
default:
|
|
7318
|
+
throw new Error("This law package has no 'rollbackDomain' call in domain '" + domain + "'.");
|
|
7319
|
+
}
|
|
7320
|
+
}
|
|
7321
|
+
};
|
|
7322
|
+
|
|
7323
|
+
// src/_adapter/lifecycle-calls.ts
|
|
7324
|
+
var digestList = (values) => values?.map(sha256Digest2);
|
|
7325
|
+
var generatedDispositions = (value) => value === void 0 ? void 0 : {
|
|
7326
|
+
retired: [...value.retired],
|
|
7327
|
+
retyped: { ...value.retyped },
|
|
7328
|
+
rebinds: { ...value.rebinds },
|
|
7329
|
+
...value.ackBy === void 0 ? {} : { ackBy: value.ackBy }
|
|
7330
|
+
};
|
|
7331
|
+
function bootstrapInstallCall(workspace2, payload) {
|
|
7332
|
+
return nomosOperatorCalls.installDomain({
|
|
7333
|
+
domain: "bootstrap",
|
|
7334
|
+
workspace: workspace2,
|
|
7335
|
+
domainHash: sha256Digest(payload.domainHash),
|
|
7336
|
+
installedBy: payload.installedBy,
|
|
7337
|
+
lawClosureIdentity: sha256Digest(payload.lawClosureIdentity),
|
|
7338
|
+
...payload.authorityScope === void 0 ? {} : { authorityScope: payload.authorityScope },
|
|
7339
|
+
...payload.dependencies === void 0 ? {} : { dependencies: payload.dependencies.map(sha256Digest) },
|
|
7340
|
+
...payload.finalizers === void 0 ? {} : { finalizers: payload.finalizers.map(sha256Digest) }
|
|
7341
|
+
});
|
|
7342
|
+
}
|
|
7343
|
+
function installDomainCall(workspace2, payload) {
|
|
7344
|
+
return nomosOperatorCalls2.installDomain({
|
|
7345
|
+
domain: "nomos",
|
|
7346
|
+
workspace: workspace2,
|
|
7347
|
+
domainHash: sha256Digest2(payload.domainHash),
|
|
7348
|
+
installedBy: payload.installedBy,
|
|
7349
|
+
lawClosureIdentity: sha256Digest2(payload.lawClosureIdentity),
|
|
7350
|
+
...payload.authorityScope === void 0 ? {} : { authorityScope: payload.authorityScope },
|
|
7351
|
+
...payload.dependencies === void 0 ? {} : { dependencies: digestList(payload.dependencies) },
|
|
7352
|
+
...payload.finalizers === void 0 ? {} : { finalizers: digestList(payload.finalizers) }
|
|
7353
|
+
});
|
|
7354
|
+
}
|
|
7355
|
+
function stageDomainCall(workspace2, payload) {
|
|
7356
|
+
return nomosOperatorCalls2.stageDomain({
|
|
7357
|
+
domain: "nomos",
|
|
7358
|
+
workspace: workspace2,
|
|
7359
|
+
domainHash: sha256Digest2(payload.domainHash),
|
|
7360
|
+
installedBy: payload.installedBy,
|
|
7361
|
+
lawClosureIdentity: sha256Digest2(payload.lawClosureIdentity),
|
|
7362
|
+
...payload.authorityScope === void 0 ? {} : { authorityScope: payload.authorityScope },
|
|
7363
|
+
...payload.dependencies === void 0 ? {} : { dependencies: digestList(payload.dependencies) },
|
|
7364
|
+
...payload.finalizers === void 0 ? {} : { finalizers: digestList(payload.finalizers) },
|
|
7365
|
+
...payload.supersedes === void 0 ? {} : { supersedes: sha256Digest2(payload.supersedes) }
|
|
7366
|
+
});
|
|
7367
|
+
}
|
|
7368
|
+
function promoteDomainCall(workspace2, payload) {
|
|
7369
|
+
return nomosOperatorCalls2.promoteDomain({
|
|
7370
|
+
domain: "nomos",
|
|
7371
|
+
workspace: workspace2,
|
|
7372
|
+
domainHash: sha256Digest2(payload.domainHash),
|
|
7373
|
+
...payload.replaces === void 0 ? {} : { replaces: sha256Digest2(payload.replaces) },
|
|
7374
|
+
retireReplaced: payload.retireReplaced,
|
|
7375
|
+
dispositions: generatedDispositions(payload.dispositions),
|
|
7376
|
+
preflight: {
|
|
7377
|
+
candidateHash: sha256Digest2(payload.preflight.candidateHash),
|
|
7378
|
+
domain: payload.preflight.domain,
|
|
7379
|
+
atHash: gitObjectId(payload.preflight.atHash),
|
|
7380
|
+
atStateRoot: gitObjectId(payload.preflight.atStateRoot),
|
|
7381
|
+
evolveOk: true,
|
|
7382
|
+
...payload.preflight.acceptanceReason === void 0 ? {} : { acceptanceReason: payload.preflight.acceptanceReason }
|
|
7383
|
+
}
|
|
7384
|
+
});
|
|
7385
|
+
}
|
|
7386
|
+
function rollbackDomainCall(workspace2, payload) {
|
|
7387
|
+
return nomosOperatorCalls2.rollbackDomain({
|
|
7388
|
+
domain: "nomos",
|
|
7389
|
+
workspace: workspace2,
|
|
7390
|
+
candidateHash: sha256Digest2(payload.candidateHash),
|
|
7391
|
+
priorHash: sha256Digest2(payload.priorHash),
|
|
7392
|
+
dispositions: generatedDispositions(payload.dispositions),
|
|
7393
|
+
preflight: {
|
|
7394
|
+
candidateHash: sha256Digest2(payload.preflight.candidateHash),
|
|
7395
|
+
domain: payload.preflight.domain,
|
|
7396
|
+
atHash: gitObjectId(payload.preflight.atHash),
|
|
7397
|
+
atStateRoot: gitObjectId(payload.preflight.atStateRoot),
|
|
7398
|
+
evolveOk: true,
|
|
7399
|
+
...payload.preflight.acceptanceReason === void 0 ? {} : { acceptanceReason: payload.preflight.acceptanceReason }
|
|
7400
|
+
}
|
|
7401
|
+
});
|
|
7402
|
+
}
|
|
7403
|
+
|
|
6265
7404
|
// ../../node_modules/@bufbuild/protobuf/dist/esm/reflect/names.js
|
|
6266
7405
|
function protoCamelCase(snakeCase) {
|
|
6267
7406
|
let capNext = false;
|
|
@@ -9745,79 +10884,87 @@ function fileDesc(b64, imports) {
|
|
|
9745
10884
|
}
|
|
9746
10885
|
|
|
9747
10886
|
// src/_adapter/proto/nomos/kernel/v1/kernel_pb.js
|
|
9748
|
-
var file_nomos_kernel_v1_kernel = /* @__PURE__ */ fileDesc("Chxub21vcy9rZXJuZWwvdjEva2VybmVsLnByb3RvEg9ub21vcy5rZXJuZWwudjEizgUKC0NhbGxSZXF1ZXN0EhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoCRIsCgRvcGVuGAogASgLMhwubm9tb3Mua2VybmVsLnYxLk9wZW5SZXF1ZXN0SAASLgoFb2ZmZXIYCyABKAsyHS5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZXF1ZXN0SAASLgoFcXVlcnkYDCABKAsyHS5ub21vcy5rZXJuZWwudjEuUXVlcnlSZXF1ZXN0SAASMAoGb3V0Ym94GA0gASgLMh4ubm9tb3Mua2VybmVsLnYxLk91dGJveFJlcXVlc3RIABIsCgRzeW5jGA4gASgLMhwubm9tb3Mua2VybmVsLnYxLlN5bmNSZXF1ZXN0SAASMgoHY3VzdG9keRgPIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5DdXN0b2R5UmVxdWVzdEgAEiwKBHRlc3QYECABKAsyHC5ub21vcy5rZXJuZWwudjEuVGVzdFJlcXVlc3RIABJIChNzaWduX3ByZXBhcmVkX29mZmVyGBEgASgLMikubm9tb3Mua2VybmVsLnYxLlNpZ25QcmVwYXJlZE9mZmVyUmVxdWVzdEgAEkoKFHByZXBhcmVfcmVtb3RlX29mZmVyGBIgASgLMioubm9tb3Mua2VybmVsLnYxLlByZXBhcmVSZW1vdGVPZmZlclJlcXVlc3RIABJOChZzaWduX29mZmVyX3ByZXBhcmF0aW9uGBMgASgLMiwubm9tb3Mua2VybmVsLnYxLlNpZ25PZmZlclByZXBhcmF0aW9uUmVxdWVzdEgAEk4KFnNpZ25fYmlydGhfY2VydGlmaWNhdGUYFCABKAsyLC5ub21vcy5rZXJuZWwudjEuU2lnbkJpcnRoQ2VydGlmaWNhdGVSZXF1ZXN0SABCCwoJb3BlcmF0aW9uIoUGCgxDYWxsUmVzcG9uc2USGAoQcHJvdG9jb2xfdmVyc2lvbhgBIAEoDRISCgpyZXF1ZXN0X2lkGAIgASgJEisKB2ZhaWx1cmUYCiABKAsyGC5ub21vcy5rZXJuZWwudjEuRmFpbHVyZUgAEi0KBG9wZW4YCyABKAsyHS5ub21vcy5rZXJuZWwudjEuT3BlblJlc3BvbnNlSAASLwoFb2ZmZXIYDCABKAsyHi5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZXNwb25zZUgAEi8KBXF1ZXJ5GA0gASgLMh4ubm9tb3Mua2VybmVsLnYxLlF1ZXJ5UmVzcG9uc2VIABIxCgZvdXRib3gYDiABKAsyHy5ub21vcy5rZXJuZWwudjEuT3V0Ym94UmVzcG9uc2VIABItCgRzeW5jGA8gASgLMh0ubm9tb3Mua2VybmVsLnYxLlN5bmNSZXNwb25zZUgAEjMKB2N1c3RvZHkYECABKAsyIC5ub21vcy5rZXJuZWwudjEuQ3VzdG9keVJlc3BvbnNlSAASLQoEdGVzdBgRIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5UZXN0UmVzcG9uc2VIABJJChNzaWduX3ByZXBhcmVkX29mZmVyGBIgASgLMioubm9tb3Mua2VybmVsLnYxLlNpZ25QcmVwYXJlZE9mZmVyUmVzcG9uc2VIABJLChRwcmVwYXJlX3JlbW90ZV9vZmZlchgTIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5QcmVwYXJlUmVtb3RlT2ZmZXJSZXNwb25zZUgAEk8KFnNpZ25fb2ZmZXJfcHJlcGFyYXRpb24YFCABKAsyLS5ub21vcy5rZXJuZWwudjEuU2lnbk9mZmVyUHJlcGFyYXRpb25SZXNwb25zZUgAEk8KFnNpZ25fYmlydGhfY2VydGlmaWNhdGUYFSABKAsyLS5ub21vcy5rZXJuZWwudjEuU2lnbkJpcnRoQ2VydGlmaWNhdGVSZXNwb25zZUgAQgkKB291dGNvbWUiVwoHRmFpbHVyZRIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSLQoHZGV0YWlscxgDIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCI8CgxPcGVuUmVzcG9uc2USLAoGcmVzdWx0GAEgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0IvcCCg1PZmZlclJlc3BvbnNlEjIKCGFkbWl0dGVkGAEgASgLMh4ubm9tb3Mua2VybmVsLnYxLk9mZmVyQWRtaXR0ZWRIABIwCgdyZWZ1c2VkGAIgASgLMh0ubm9tb3Mua2VybmVsLnYxLk9mZmVyUmVmdXNlZEgAEjsKDWRlYWRfbGV0dGVyZWQYAyABKAsyIi5ub21vcy5rZXJuZWwudjEuT2ZmZXJEZWFkTGV0dGVyZWRIABI4CgtxdWFyYW50aW5lZBgEIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5PZmZlclF1YXJhbnRpbmVkSAASSgoVYmxvY2tlZF9vbl9kZXBlbmRlbmN5GAUgASgLMikubm9tb3Mua2VybmVsLnYxLk9mZmVyQmxvY2tlZE9uRGVwZW5kZW5jeUgAEjIKCHByZXBhcmVkGAYgASgLMh4ubm9tb3Mua2VybmVsLnYxLk9mZmVyUHJlcGFyZWRIAEIJCgdvdXRjb21lIoMDCg1PZmZlckFkbWl0dGVkEgwKBGhlYWQYASABKAkSEQoJaW50ZW50X2lkGAIgASgJEhcKCmludGVudF9vdXQYAyABKAlIAIgBARIzCgdjcmVhdGVkGAQgAygLMiIubm9tb3Mua2VybmVsLnYxLk9mZmVyQWdncmVnYXRlUmVmEjQKCGFmZmVjdGVkGAUgAygLMiIubm9tb3Mua2VybmVsLnYxLk9mZmVyQWdncmVnYXRlUmVmEiwKBGJvcm4YBiADKAsyHi5ub21vcy5rZXJuZWwudjEuQm9ybldvcmtzcGFjZRI1Cg5iaXJ0aF9vdXRjb21lcxgHIAMoCzIdLm5vbW9zLmtlcm5lbC52MS5CaXJ0aE91dGNvbWUSNwoMa2VybmVsX3NwYW5zGAggASgLMhwubm9tb3Mua2VybmVsLnYxLktlcm5lbFNwYW5zSAGIAQESDwoHZHJ5X3J1bhgJIAEoCEINCgtfaW50ZW50X291dEIPCg1fa2VybmVsX3NwYW5zIi0KEU9mZmVyQWdncmVnYXRlUmVmEgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkiMAoNQm9ybldvcmtzcGFjZRIRCgl3b3Jrc3BhY2UYASABKAkSDAoEaGVhZBgCIAEoCSKJAwoMQmlydGhPdXRjb21lEhYKCXdvcmtzcGFjZRgBIAEoCUgAiAEBEjMKBnN0YXR1cxgCIAEoDjIjLm5vbW9zLmtlcm5lbC52MS5CaXJ0aE91dGNvbWVTdGF0dXMSEwoGcmVhc29uGAMgASgJSAGIAQESEQoEY29kZRgEIAEoCUgCiAEBEhAKCHJlcGxheWVkGAUgASgIEhUKCGxhd19oYXNoGAYgASgJSAOIAQESHQoQcGFyZW50X3dvcmtzcGFjZRgHIAEoCUgEiAEBEhwKD2NoaWxkX3dvcmtzcGFjZRgIIAEoCUgFiAEBEicKGmNlcnRpZmljYXRlX3JlZnVzYWxfcmVhc29uGAkgASgJSAaIAQFCDAoKX3dvcmtzcGFjZUIJCgdfcmVhc29uQgcKBV9jb2RlQgsKCV9sYXdfaGFzaEITChFfcGFyZW50X3dvcmtzcGFjZUISChBfY2hpbGRfd29ya3NwYWNlQh0KG19jZXJ0aWZpY2F0ZV9yZWZ1c2FsX3JlYXNvbiIvChBLZXJuZWxTcGFuTWV0cmljEgwKBG5hbWUYASABKAkSDQoFdmFsdWUYAiABKAQiowEKCktlcm5lbFNwYW4SDQoFbGFiZWwYASABKAkSEAoIdG90YWxfdXMYAiABKAQSDwoHcmVjb3JkcxgDIAEoBBIxCgZwaGFzZXMYBCADKAsyIS5ub21vcy5rZXJuZWwudjEuS2VybmVsU3Bhbk1ldHJpYxIwCgVub3RlcxgFIAMoCzIhLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxTcGFuTWV0cmljInEKC0tlcm5lbFNwYW5zEi8KCm9wZXJhdGlvbnMYASADKAsyGy5ub21vcy5rZXJuZWwudjEuS2VybmVsU3BhbhIxCgZlbmdpbmUYAiADKAsyIS5ub21vcy5rZXJuZWwudjEuS2VybmVsU3Bhbk1ldHJpYyKWAQoMT2ZmZXJSZWZ1c2VkEhUKCG9mZmVyX2lkGAEgASgJSACIAQESLwoHcmVmdXNhbBgCIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxSZWZ1c2FsEjEKC2RpYWdub3N0aWNzGAMgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0QgsKCV9vZmZlcl9pZCJ6ChFPZmZlckRlYWRMZXR0ZXJlZBIVCghvZmZlcl9pZBgBIAEoCUgAiAEBEg4KBnJlYXNvbhgCIAEoCRIxCgtkaWFnbm9zdGljcxgDIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdEILCglfb2ZmZXJfaWQirgEKEE9mZmVyUXVhcmFudGluZWQSFQoIb2ZmZXJfaWQYASABKAlIAIgBARIZChFhdXRob3JlZF9sYXdfaGFzaBgCIAEoCRIYChBjdXJyZW50X2xhd19oYXNoGAMgASgJEg4KBnJlYXNvbhgEIAEoCRIxCgtkaWFnbm9zdGljcxgFIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdEILCglfb2ZmZXJfaWQigQEKGE9mZmVyQmxvY2tlZE9uRGVwZW5kZW5jeRIVCghvZmZlcl9pZBgBIAEoCUgAiAEBEg4KBmRldGFpbBgCIAEoCRIxCgtkaWFnbm9zdGljcxgDIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdEILCglfb2ZmZXJfaWQihQEKDU9mZmVyUHJlcGFyZWQSHAoUYXV0aG9yZWRfY2hhbmdlX3VzZGEYASABKAwSGQoRd29ya3NwYWNlX2JpbmRpbmcYAiABKAkSGAoQcHJlcGFyZWRfYXRfaGVhZBgDIAEoCRIhChlhdXRob3Jfc2lnbmF0dXJlX3JlcXVpcmVkGAQgASgIImoKGFNpZ25QcmVwYXJlZE9mZmVyUmVxdWVzdBIcChRhdXRob3JlZF9jaGFuZ2VfdXNkYRgBIAEoDBIZChF3b3Jrc3BhY2VfYmluZGluZxgCIAEoCRIVCg1hdXRob3Jfc2VjcmV0GAMgASgMIjcKGVNpZ25QcmVwYXJlZE9mZmVyUmVzcG9uc2USGgoSc2lnbmVkX2NoYW5nZV91c2RhGAEgASgMIq0BChlQcmVwYXJlUmVtb3RlT2ZmZXJSZXF1ZXN0EhUKDW9mZmVyX3JlcXVlc3QYASABKAwSGQoRd29ya3NwYWNlX2JpbmRpbmcYAiABKAkSGAoQcHJlcGFyZWRfYXRfaGVhZBgDIAEoCRISCgpwdWJsaWNfa2V5GAQgASgMEhEKCXNpZ25hdHVyZRgFIAEoDBIdChVyZXF1aXJlZF9jdXN0b2R5X2hlYWQYBiABKAkiUAoZT2ZmZXJQcmVwYXJhdGlvbkNoYWxsZW5nZRIZChF3b3Jrc3BhY2VfYmluZGluZxgBIAEoCRIYChBwcmVwYXJlZF9hdF9oZWFkGAIgASgJIpkBChpQcmVwYXJlUmVtb3RlT2ZmZXJSZXNwb25zZRI/CgljaGFsbGVuZ2UYASABKAsyKi5ub21vcy5rZXJuZWwudjEuT2ZmZXJQcmVwYXJhdGlvbkNoYWxsZW5nZUgAEi8KBW9mZmVyGAIgASgLMh4ubm9tb3Mua2VybmVsLnYxLk9mZmVyUmVzcG9uc2VIAEIJCgdvdXRjb21lIoABChtTaWduT2ZmZXJQcmVwYXJhdGlvblJlcXVlc3QSFQoNb2ZmZXJfcmVxdWVzdBgBIAEoDBIZChF3b3Jrc3BhY2VfYmluZGluZxgCIAEoCRIYChBwcmVwYXJlZF9hdF9oZWFkGAMgASgJEhUKDWF1dGhvcl9zZWNyZXQYBCABKAwiRQocU2lnbk9mZmVyUHJlcGFyYXRpb25SZXNwb25zZRISCgpwdWJsaWNfa2V5GAEgASgMEhEKCXNpZ25hdHVyZRgCIAEoDCKBAQoNS2VybmVsUmVmdXNhbBIwCgRjb2RlGAEgASgOMiIubm9tb3Mua2VybmVsLnYxLktlcm5lbFJlZnVzYWxDb2RlEg8KB21lc3NhZ2UYAiABKAkSLQoHZGV0YWlscxgDIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCK4AwoNUXVlcnlSZXNwb25zZRIsCgV2YWx1ZRgBIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5Ob21vc1ZhbHVlSAASSgoTYXV0aG9yaXphdGlvbl9jaGVjaxgKIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ2hlY2tSZXNwb25zZUgAEkwKFGF1dGhvcml6YXRpb25fZXhwYW5kGAsgASgLMiwubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBhbmRSZXNwb25zZUgAEj4KDW9zZ2lfcmVzb3VyY2UYDCABKAsyJS5ub21vcy5rZXJuZWwudjEuT3NnaVJlc291cmNlUmVzcG9uc2VIABJKChNmcm9udGllcl90cmFuc2l0aW9uGA0gASgLMisubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvblJlc3BvbnNlSAASSQoYdmVyaWZ5X2NoYWluX2RpYWdub3N0aWNzGBQgASgLMicubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluRGlhZ25vc3RpY3NCCAoGcmVzdWx0IkgKDU9zZ2lBdHRyaWJ1dGUSDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCRIRCgR0eXBlGAMgASgJSACIAQFCBwoFX3R5cGUiLAoNT3NnaURpcmVjdGl2ZRIMCgRuYW1lGAEgASgJEg0KBXZhbHVlGAIgASgJIosBCg5Pc2dpQ2FwYWJpbGl0eRIRCgluYW1lc3BhY2UYASABKAkSMgoKYXR0cmlidXRlcxgCIAMoCzIeLm5vbW9zLmtlcm5lbC52MS5Pc2dpQXR0cmlidXRlEjIKCmRpcmVjdGl2ZXMYAyADKAsyHi5ub21vcy5rZXJuZWwudjEuT3NnaURpcmVjdGl2ZSKMAQoPT3NnaVJlcXVpcmVtZW50EhEKCW5hbWVzcGFjZRgBIAEoCRIyCgphdHRyaWJ1dGVzGAIgAygLMh4ubm9tb3Mua2VybmVsLnYxLk9zZ2lBdHRyaWJ1dGUSMgoKZGlyZWN0aXZlcxgDIAMoCzIeLm5vbW9zLmtlcm5lbC52MS5Pc2dpRGlyZWN0aXZlIpoBChRPc2dpUmVzb3VyY2VSZXNwb25zZRITCgtzb3VyY2VfdXNkYRgBIAEoDBI1CgxjYXBhYmlsaXRpZXMYAiADKAsyHy5ub21vcy5rZXJuZWwudjEuT3NnaUNhcGFiaWxpdHkSNgoMcmVxdWlyZW1lbnRzGAMgAygLMiAubm9tb3Mua2VybmVsLnYxLk9zZ2lSZXF1aXJlbWVudCLnAQoTVmVyaWZ5Q2hhaW5TdGVwU3BhbhINCgVpbmRleBgBIAEoBBISCgpjb21taXRfb2lkGAIgASgJEg4KBmRvbWFpbhgDIAEoCRIRCglkaXJlY3RpdmUYBCABKAkSEAoIdG90YWxfdXMYBSABKAQSNgoGcGhhc2VzGAYgASgLMiYubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluU3RlcFBoYXNlcxJACg5lbmdpbmVfdGltaW5ncxgHIAMoCzIoLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpbkVuZ2luZVRpbWluZyKYAgoVVmVyaWZ5Q2hhaW5TdGVwUGhhc2VzEh4KFnJ1bnRpbWVfbGF3X3JlZnJlc2hfdXMYASABKAQSEwoLbWFuaWZlc3RfdXMYAiABKAQSGQoRbGF3X3Jlc29sdXRpb25fdXMYAyABKAQSHQoVbWFuYWdlZF90cmFuc2l0aW9uX3VzGAQgASgEEhQKDHByaW5jaXBhbF91cxgFIAEoBBIUCgxldm9sdXRpb25fdXMYBiABKAQSGgoSY29sb2NhdGVkX3JlYWRzX3VzGAcgASgEEiEKGXR5cGVkX2luc3RhbGxfdmVyaWZpZXJfdXMYCCABKAQSFAoMYWRtaXNzaW9uX3VzGAkgASgEEg8KB2ZvbGRfdXMYCiABKAQi2gUKFlZlcmlmeUNoYWluRGlhZ25vc3RpY3MSLgoEd2FsaxgBIAEoDjIgLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpbldhbGsSEAoIdG90YWxfdXMYAiABKAQSGwoTcmVmZXJlbmNlX2xvb2t1cF91cxgDIAEoBBIaChJyZXBvc2l0b3J5X29wZW5fdXMYBCABKAQSFQoNY2hhaW5fcmVhZF91cxgFIAEoBBIWCg5lbmdpbmVfaW5pdF91cxgGIAEoBBIYChB0aW1lbGluZV9yZWFkX3VzGAcgASgEEhgKEGxhd19oeWRyYXRpb25fdXMYCCABKAQSGwoTcmVjb3ZlcnlfcHJlc2Nhbl91cxgJIAEoBBIYChBmb2xkX2Zyb250aWVyX3VzGAogASgEEjMKBXN0ZXBzGAsgAygLMiQubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluU3RlcFNwYW4SQAoOZW5naW5lX3RpbWluZ3MYDCADKAsyKC5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5FbmdpbmVUaW1pbmcSTQoVbGF3X2h5ZHJhdGlvbl90aW1pbmdzGA0gAygLMi4ubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluTGF3SHlkcmF0aW9uVGltaW5nEhkKEWxhd19jbG9zdXJlX2NvdW50GA4gASgEEh4KFmxhd19jbG9zdXJlX2NhY2hlX2hpdHMYDyABKAQSIAoYbGF3X2Nsb3N1cmVfY2FjaGVfbWlzc2VzGBAgASgEEhIKCnN0ZXBfY291bnQYESABKAQSFQoNc3RlcF90b3RhbF91cxgSIAEoBBJBChFzdGVwX3BoYXNlX3RvdGFscxgTIAEoCzImLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpblN0ZXBQaGFzZXMSGgoSb21pdHRlZF9zdGVwX2NvdW50GBQgASgEIjoKF1ZlcmlmeUNoYWluRW5naW5lVGltaW5nEg0KBXBoYXNlGAEgASgJEhAKCHRvdGFsX3VzGAIgASgEIkAKHVZlcmlmeUNoYWluTGF3SHlkcmF0aW9uVGltaW5nEg0KBXBoYXNlGAEgASgJEhAKCHRvdGFsX3VzGAIgASgEIrYCCg1PdXRib3VuZE9mZmVyEgoKAmlkGAEgASgJEhMKC2Rlc3RpbmF0aW9uGAIgASgJEhQKDHNlYWxlZF9vZmZlchgDIAEoDBIUCgxjb250ZW50X3R5cGUYBCABKAkSGAoQc291cmNlX3dvcmtzcGFjZRgFIAEoCRIUCgxjdXN0b2R5X2hlYWQYBiABKAkSFwoPY2F1c2VkX2J5X29mZmVyGAcgASgJEhsKE3NjaGVkdWxlZF9hdF9taWxsaXMYCCABKAQSGgoSZGVhZGxpbmVfYXRfbWlsbGlzGAkgASgEEhQKDGN1c3RvZHlfcGF0aBgKIAEoCRITCgtjdXN0b2R5X29pZBgLIAEoCRIUCgxkZWxpdmVyeV9yZWYYDCABKAkSFQoNb2JsaWdhdGlvbl9pZBgNIAEoCSJ4Cg5PdXRib3hSZXNwb25zZRIuCgZvZmZlcnMYASADKAsyHi5ub21vcy5rZXJuZWwudjEuT3V0Ym91bmRPZmZlchIfChJuZXh0X2R1ZV9hdF9taWxsaXMYAiABKARIAIgBAUIVChNfbmV4dF9kdWVfYXRfbWlsbGlzIjwKDFN5bmNSZXNwb25zZRIsCgZyZXN1bHQYASABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QiQgoPV29ya3NwYWNlVGFyZ2V0EgwKBHJlcG8YASABKAkSEQoJd29ya3NwYWNlGAIgASgJEg4KBmJyYW5jaBgDIAEoCSJOCgtPcGVuUmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0Eg0KBXNwYW5zGAIgASgIImEKDURpcmVjdGl2ZUNhbGwSDgoGZG9tYWluGAEgASgJEhEKCWRpcmVjdGl2ZRgCIAEoCRItCgdwYXlsb2FkGAMgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0ItYCChBBdXRob3JpbmdPcHRpb25zEg0KBWFjdG9yGAEgASgJEhIKCmF1dGhfdG9rZW4YAiABKAwSFQoNYXV0aG9yX3NlY3JldBgDIAEoDBIdChB2YWxpZF9mcm9tX2Vwb2NoGAQgASgESACIAQESHwoScHJpbmNpcGFsX3ZlcmlmaWVkGAUgASgISAGIAQESCwoDcm5nGAYgAygBEhgKEGRlZmVyX3Byb2plY3Rpb24YByABKAgSDQoFc3BhbnMYCCABKAgSDwoHZHJ5X3J1bhgJIAEoCBIQCghzZXF1ZW5jZRgKIAEoBBItCgVjbG9jaxgLIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5DYXB0dXJlZENsb2NrEhQKDHByZXBhcmVfb25seRgMIAEoCEITChFfdmFsaWRfZnJvbV9lcG9jaEIVChNfcHJpbmNpcGFsX3ZlcmlmaWVkIkoKDUNhcHR1cmVkQ2xvY2sSFwoPcGh5c2ljYWxfbWlsbGlzGAEgASgEEg8KB2xvZ2ljYWwYAiABKA0SDwoHcmVwbGljYRgDIAEoBCLDAwoQQmlydGhDZXJ0aWZpY2F0ZRINCgVjaGlsZBgBIAEoCRIPCgdmb3VuZGVyGAIgASgJEhAKCHZlcmlmaWVkGAMgASgIEhIKCnBhcmVudF9rZXkYBCABKAwSEQoJcGFyZW50X2lkGAUgASgJEg0KBWVwb2NoGAYgASgDEhEKCXNpZ25hdHVyZRgHIAEoDBIZCgx2ZXJpZmllZF92aWEYCCABKAlIAIgBARIWCglpZHBfdG9rZW4YCSABKAlIAYgBARIbCg5jYXB0dXJlZF9jbG9jaxgKIAEoA0gCiAEBEiEKFGF1dGhfcHJvdmlkZXJfaXNzdWVyGAsgASgJSAOIAQESHwoSYXV0aF9wcm92aWRlcl9qd2tzGAwgASgJSASIAQESIwoWYXV0aF9wcm92aWRlcl9hdWRpZW5jZRgNIAEoCUgFiAEBQg8KDV92ZXJpZmllZF92aWFCDAoKX2lkcF90b2tlbkIRCg9fY2FwdHVyZWRfY2xvY2tCFwoVX2F1dGhfcHJvdmlkZXJfaXNzdWVyQhUKE19hdXRoX3Byb3ZpZGVyX2p3a3NCGQoXX2F1dGhfcHJvdmlkZXJfYXVkaWVuY2UibAobU2lnbkJpcnRoQ2VydGlmaWNhdGVSZXF1ZXN0EjYKC2NlcnRpZmljYXRlGAEgASgLMiEubm9tb3Mua2VybmVsLnYxLkJpcnRoQ2VydGlmaWNhdGUSFQoNc2lnbmVyX3NlY3JldBgCIAEoDCJWChxTaWduQmlydGhDZXJ0aWZpY2F0ZVJlc3BvbnNlEjYKC2NlcnRpZmljYXRlGAEgASgLMiEubm9tb3Mua2VybmVsLnYxLkJpcnRoQ2VydGlmaWNhdGUinAQKDE9mZmVyUmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0Ei4KBGNhbGwYAiABKAsyHi5ub21vcy5rZXJuZWwudjEuRGlyZWN0aXZlQ2FsbEgAEhwKEnNlYWxlZF9jaGFuZ2VfdXNkYRgHIAEoDEgAEjQKCWF1dGhvcmluZxgDIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpbmdPcHRpb25zEhAKCGxhd191c2R6GAQgASgMEjMKDGF0dGVzdGF0aW9ucxgFIAMoCzIdLm5vbW9zLmtlcm5lbC52MS5BdHRlc3RlZFJlYWQSPQoSY29uZmxpY3Rfc25hcHNob3RzGAYgAygLMiEubm9tb3Mua2VybmVsLnYxLkNvbmZsaWN0U25hcHNob3QSGgoSZXhlY3V0aW9uX2xhd191c2R6GAggASgMEiAKE2NvbnRyb2xsZXJfbGF3X2hhc2gYCSABKAlIAYgBARIdChBjYW5kaWRhdGVfY29tbWl0GAogASgJSAKIAQESPAoRYmlydGhfY2VydGlmaWNhdGUYCyABKAsyIS5ub21vcy5rZXJuZWwudjEuQmlydGhDZXJ0aWZpY2F0ZUIICgZpbnRlbnRCFgoUX2NvbnRyb2xsZXJfbGF3X2hhc2hCEwoRX2NhbmRpZGF0ZV9jb21taXQikwEKDEF0dGVzdGVkUmVhZBIQCghxdWVyeV9pZBgBIAEoCRIvCglhcmd1bWVudHMYAiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSKwoGcmVzdWx0GAMgASgLMhsubm9tb3Mua2VybmVsLnYxLk5vbW9zVmFsdWUSEwoLYXR0ZXN0YXRpb24YBCABKAwidQoQQ29uZmxpY3RTbmFwc2hvdBIWCg5hZ2dyZWdhdGVfdHlwZRgBIAEoCRIUCgxhZ2dyZWdhdGVfaWQYAiABKAkSDQoFZmllbGQYAyABKAkSFQoNdGFyZ2V0X3NjaGVtYRgEIAEoCRINCgV0b2tlbhgFIAEoCSKwBgoMUXVlcnlSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSMgoJYXV0aG9yaXR5GAIgASgLMh8ubm9tb3Mua2VybmVsLnYxLlF1ZXJ5QXV0aG9yaXR5Eg0KBXNwYW5zGAMgASgIEioKBHJvd3MYCiABKAsyGi5ub21vcy5rZXJuZWwudjEuUm93c1F1ZXJ5SAASKgoEcGFnZRgLIAEoCzIaLm5vbW9zLmtlcm5lbC52MS5QYWdlUXVlcnlIABIrCgVieV9pZBgMIAEoCzIaLm5vbW9zLmtlcm5lbC52MS5CeUlkUXVlcnlIABI5CgxyZXNvbHZlX3JlZnMYDSABKAsyIS5ub21vcy5rZXJuZWwudjEuUmVzb2x2ZVJlZnNRdWVyeUgAEkUKEnJlZmVyZW5jZV92ZXJzaW9ucxgOIAEoCzInLm5vbW9zLmtlcm5lbC52MS5SZWZlcmVuY2VWZXJzaW9uc1F1ZXJ5SAASLAoFY291bnQYDyABKAsyGy5ub21vcy5rZXJuZWwudjEuVGFsbHlRdWVyeUgAEioKA3N1bRgQIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5UYWxseVF1ZXJ5SAASMAoHc3BhdGlhbBgRIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5TcGF0aWFsUXVlcnlIABIsCgVuYW1lZBgSIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5OYW1lZFF1ZXJ5SAASSQoTYXV0aG9yaXphdGlvbl9jaGVjaxgTIAEoCzIqLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ2hlY2tSZXF1ZXN0SAASSwoUYXV0aG9yaXphdGlvbl9leHBhbmQYFCABKAsyKy5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkV4cGFuZFJlcXVlc3RIABJJChNmcm9udGllcl90cmFuc2l0aW9uGBUgASgLMioubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvblJlcXVlc3RIAEIHCgVxdWVyeSKSAQoOUXVlcnlBdXRob3JpdHkSFwoPcHJpbmNpcGFsX2NsYWltGAEgASgJEhIKCmF1dGhfdG9rZW4YAiABKAwSEAoIbm93X3VuaXgYAyABKAQSFQoNYXV0aG9yX3NlY3JldBgEIAEoDBIqCgRrZXlzGAUgAygLMhwubm9tb3Mua2VybmVsLnYxLkluamVjdGVkS2V5IjgKC0luamVjdGVkS2V5Eg0KBXNjb3BlGAEgASgJEg0KBWVwb2NoGAIgASgEEgsKA2tleRgDIAEoDCJbCglSb3dzUXVlcnkSCgoCaWQYASABKAkSLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EhEKCXByaW5jaXBhbBgDIAEoCSJ5CglQYWdlUXVlcnkSCgoCaWQYASABKAkSLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0Eg0KBWxpbWl0GAMgASgNEg0KBWFmdGVyGAQgASgJEhEKCXByaW5jaXBhbBgFIAEoCSJMCglCeUlkUXVlcnkSFgoOYWdncmVnYXRlX3R5cGUYASABKAkSFAoMYWdncmVnYXRlX2lkGAIgASgJEhEKCXByaW5jaXBhbBgDIAEoCSJcCghOb21vc1JlZhIRCgl3b3Jrc3BhY2UYASABKAkSFgoOYWdncmVnYXRlX3R5cGUYAiABKAkSFAoMYWdncmVnYXRlX2lkGAMgASgJEg8KB3ZlcnNpb24YBCABKAkiTgoQUmVzb2x2ZVJlZnNRdWVyeRInCgRyZWZzGAEgAygLMhkubm9tb3Mua2VybmVsLnYxLk5vbW9zUmVmEhEKCXByaW5jaXBhbBgCIAEoCSJOChZSZWZlcmVuY2VWZXJzaW9uc1F1ZXJ5EjQKBHJlZnMYASADKAsyJi5ub21vcy5rZXJuZWwudjEuUmVmZXJlbmNlVmVyc2lvbkNoZWNrIoQBChVSZWZlcmVuY2VWZXJzaW9uQ2hlY2sSKQoGcGlubmVkGAEgASgLMhkubm9tb3Mua2VybmVsLnYxLk5vbW9zUmVmEikKBnNlcmllcxgCIAEoCzIZLm5vbW9zLmtlcm5lbC52MS5Ob21vc1JlZhIVCg1jdXJyZW50X2ZpZWxkGAMgASgJIlwKClRhbGx5UXVlcnkSCgoCaWQYASABKAkSLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EhEKCXByaW5jaXBhbBgDIAEoCSJeCgxTcGF0aWFsUXVlcnkSCgoCaWQYASABKAkSLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EhEKCXByaW5jaXBhbBgDIAEoCSJxCgpOYW1lZFF1ZXJ5EjIKCW9wZXJhdGlvbhgBIAEoDjIfLm5vbW9zLmtlcm5lbC52MS5RdWVyeU9wZXJhdGlvbhIvCglhcmd1bWVudHMYAiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QisQEKGUZyb250aWVyVHJhbnNpdGlvblJlcXVlc3QSDgoGZG9tYWluGAEgASgJEhYKDmNhbmRpZGF0ZV9oYXNoGAIgASgJEg8KB2F0X2hhc2gYAyABKAkSIQoZYWNrbm93bGVkZ2VtZW50X3ByaW5jaXBhbBgEIAEoCRIgChNyZXN0b3JlX3ByZXZpb3VzX29mGAUgASgJSACIAQFCFgoUX3Jlc3RvcmVfcHJldmlvdXNfb2YiWgolRnJvbnRpZXJUcmFuc2l0aW9uRGlzcG9zaXRpb25NYXBFbnRyeRIYChBzb3VyY2Vfc3RhYmxlX2lkGAEgASgJEhcKD2Fja25vd2xlZGdlbWVudBgCIAEoCSL1AQoeRnJvbnRpZXJUcmFuc2l0aW9uRGlzcG9zaXRpb25zEg8KB3JldGlyZWQYASADKAkSRwoHcmV0eXBlZBgCIAMoCzI2Lm5vbW9zLmtlcm5lbC52MS5Gcm9udGllclRyYW5zaXRpb25EaXNwb3NpdGlvbk1hcEVudHJ5EkcKB3JlYmluZHMYAyADKAsyNi5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uRGlzcG9zaXRpb25NYXBFbnRyeRIcCg9hY2tub3dsZWRnZWRfYnkYBCABKAlIAIgBAUISChBfYWNrbm93bGVkZ2VkX2J5Ij0KG0Zyb250aWVyVHJhbnNpdGlvblZpb2xhdGlvbhIOCgZkb21haW4YASABKAkSDgoGZGV0YWlsGAIgASgJItcCChpGcm9udGllclRyYW5zaXRpb25SZXNwb25zZRIPCgdhdF9oYXNoGAEgASgJEhkKDGN1cnJlbnRfaGFzaBgCIAEoCUgAiAEBEhUKDWF0X3N0YXRlX3Jvb3QYAyABKAkSFgoOY2FuZGlkYXRlX2hhc2gYBCABKAkSDgoGZG9tYWluGAUgASgJEg8KB2RvbWFpbnMYBiADKAkSDQoFcmVhZHkYByABKAgSQAoKdmlvbGF0aW9ucxgIIAMoCzIsLm5vbW9zLmtlcm5lbC52MS5Gcm9udGllclRyYW5zaXRpb25WaW9sYXRpb24SSgoMZGlzcG9zaXRpb25zGAkgASgLMi8ubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvbkRpc3Bvc2l0aW9uc0gBiAEBQg8KDV9jdXJyZW50X2hhc2hCDwoNX2Rpc3Bvc2l0aW9ucyIvChNBdXRob3JpemF0aW9uT2JqZWN0EgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkiVAoUQXV0aG9yaXphdGlvblN1YmplY3QSDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCRIVCghyZWxhdGlvbhgDIAEoCUgAiAEBQgsKCV9yZWxhdGlvbiKcAQoYUmVsYXRpb25zaGlwVHVwbGVBZGRyZXNzEjYKCHJlc291cmNlGAEgASgLMiQubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25PYmplY3QSEAoIcmVsYXRpb24YAiABKAkSNgoHc3ViamVjdBgDIAEoCzIlLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uU3ViamVjdCKBAQoYQXV0aG9yaXphdGlvbkNvbnNpc3RlbmN5EiMKGWN1cnJlbnRfdmVyaWZpZWRfZnJvbnRpZXIYASABKAhIABIZCg9hdF9sZWFzdF9jb21taXQYAiABKAlIABIWCgxleGFjdF9jb21taXQYAyABKAlIAEINCgtyZXF1aXJlbWVudCJmCh1BdXRob3JpemF0aW9uQ29uZGl0aW9uQ29udGV4dBIUCgxjb25kaXRpb25faWQYASABKAkSLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0IvcCChlBdXRob3JpemF0aW9uQ2hlY2tSZXF1ZXN0EjYKCHJlc291cmNlGAEgASgLMiQubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25PYmplY3QSEgoKcGVybWlzc2lvbhgCIAEoCRI2CgdzdWJqZWN0GAMgASgLMiUubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25TdWJqZWN0Ej4KC2NvbnNpc3RlbmN5GAQgASgLMikubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25Db25zaXN0ZW5jeRI/Cgdjb250ZXh0GAUgAygLMi4ubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25Db25kaXRpb25Db250ZXh0EiAKE2V4cGVjdGVkX21vZGVsX2hhc2gYBiABKAlIAIgBARIbChNpbmNsdWRlX2V4cGxhbmF0aW9uGAcgASgIQhYKFF9leHBlY3RlZF9tb2RlbF9oYXNoIu0CChpBdXRob3JpemF0aW9uRXhwYW5kUmVxdWVzdBI2CghyZXNvdXJjZRgBIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uT2JqZWN0EhIKCnBlcm1pc3Npb24YAiABKAkSPgoLY29uc2lzdGVuY3kYAyABKAsyKS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkNvbnNpc3RlbmN5Ej8KB2NvbnRleHQYBCADKAsyLi5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkNvbmRpdGlvbkNvbnRleHQSIAoTZXhwZWN0ZWRfbW9kZWxfaGFzaBgFIAEoCUgAiAEBEg0KBWxpbWl0GAYgASgNEhIKBWFmdGVyGAcgASgJSAGIAQESGwoTaW5jbHVkZV9leHBsYW5hdGlvbhgIIAEoCEIWChRfZXhwZWN0ZWRfbW9kZWxfaGFzaEIICgZfYWZ0ZXIivQEKGVJlbGF0aW9uc2hpcFR1cGxlRXZpZGVuY2USOAoFdHVwbGUYASABKAsyKS5ub21vcy5rZXJuZWwudjEuUmVsYXRpb25zaGlwVHVwbGVBZGRyZXNzEhAKCHR1cGxlX2lkGAIgASgJEhoKEmFzc2VydGlvbl9ldmVudF9pZBgDIAEoCRIgChNyZXZvY2F0aW9uX2V2ZW50X2lkGAQgASgJSACIAQFCFgoUX3Jldm9jYXRpb25fZXZlbnRfaWQi4QMKGEF1dGhvcml6YXRpb25FeHBsYW5hdGlvbhJGCglvcGVyYXRpb24YASABKA4yMy5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkV4cGxhbmF0aW9uLk9wZXJhdGlvbhIQCghyZWxhdGlvbhgCIAEoCRIOCgZyZXN1bHQYAyABKAgSPAoIZXZpZGVuY2UYBCADKAsyKi5ub21vcy5rZXJuZWwudjEuUmVsYXRpb25zaGlwVHVwbGVFdmlkZW5jZRI7CghjaGlsZHJlbhgFIAMoCzIpLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRXhwbGFuYXRpb24i3wEKCU9wZXJhdGlvbhIZChVPUEVSQVRJT05fVU5TUEVDSUZJRUQQABIUChBPUEVSQVRJT05fRElSRUNUEAESHgoaT1BFUkFUSU9OX0NPTVBVVEVEX1VTRVJTRVQQAhIeChpPUEVSQVRJT05fVFVQTEVfVE9fVVNFUlNFVBADEhMKD09QRVJBVElPTl9VTklPThAEEhoKFk9QRVJBVElPTl9JTlRFUlNFQ1RJT04QBRIXChNPUEVSQVRJT05fRVhDTFVTSU9OEAYSFwoTT1BFUkFUSU9OX0NPTkRJVElPThAHIncKGkF1dGhvcml6YXRpb25EZWNpc2lvbkJhc2lzEiAKGGF1dGhvcml6YXRpb25fbW9kZWxfaGFzaBgBIAEoCRIhChlyZWxhdGlvbnNoaXBfc3RhdGVfY29tbWl0GAIgASgJEhQKDGNvbnRleHRfaGFzaBgDIAEoDCK+AQoaQXV0aG9yaXphdGlvbkNoZWNrUmVzcG9uc2USDwoHYWxsb3dlZBgBIAEoCBI6CgViYXNpcxgCIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRGVjaXNpb25CYXNpcxJDCgtleHBsYW5hdGlvbhgDIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRXhwbGFuYXRpb25IAIgBAUIOCgxfZXhwbGFuYXRpb24igwIKG0F1dGhvcml6YXRpb25FeHBhbmRSZXNwb25zZRI3CghzdWJqZWN0cxgBIAMoCzIlLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uU3ViamVjdBI6CgViYXNpcxgCIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRGVjaXNpb25CYXNpcxIRCgRuZXh0GAMgASgJSACIAQESQwoLZXhwbGFuYXRpb24YBCABKAsyKS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkV4cGxhbmF0aW9uSAGIAQFCBwoFX25leHRCDgoMX2V4cGxhbmF0aW9uInAKDU91dGJveFJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBItCgVjbG9jaxgCIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5DYXB0dXJlZENsb2NrImMKC1N5bmNSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSEQoJZnJvbV9iYXNlGAIgASgJEg8KB3RvX2hlYWQYAyABKAkiUwoLVGVzdFJlcXVlc3QSNwoIc2V0X3Jvb3QYASABKAsyIy5ub21vcy5rZXJuZWwudjEuU2V0VGVzdFJvb3RSZXF1ZXN0SABCCwoJb3BlcmF0aW9uIigKElNldFRlc3RSb290UmVxdWVzdBISCgpwdWJsaWNfa2V5GAEgASgMIj0KDFRlc3RSZXNwb25zZRItCgZyZXN1bHQYASABKAsyHS5ub21vcy5rZXJuZWwudjEuQWNrbm93bGVkZ2VkItULCg5DdXN0b2R5UmVxdWVzdBI3CgpwYWNrX2RlbHRhGAogASgLMiEubm9tb3Mua2VybmVsLnYxLlBhY2tEZWx0YVJlcXVlc3RIABI3CgphcHBseV9wYWNrGAsgASgLMiEubm9tb3Mua2VybmVsLnYxLkFwcGx5UGFja1JlcXVlc3RIABI3CgpyZXBvX3N0YXRzGAwgASgLMiEubm9tb3Mua2VybmVsLnYxLlJlcG9TdGF0c1JlcXVlc3RIABI9Cg1pbnRlbnRzX2Fib3ZlGA0gASgLMiQubm9tb3Mua2VybmVsLnYxLkludGVudHNBYm92ZVJlcXVlc3RIABI/Cg5pbnNwZWN0X2NoYW5nZRgOIAEoCzIlLm5vbW9zLmtlcm5lbC52MS5JbnNwZWN0Q2hhbmdlUmVxdWVzdEgAEk4KFmVuY29kZV9yZWZ1c2FsX3ZlcmRpY3QYDyABKAsyLC5ub21vcy5rZXJuZWwudjEuRW5jb2RlUmVmdXNhbFZlcmRpY3RSZXF1ZXN0SAASUAoXaW5zcGVjdF9yZWZ1c2FsX3ZlcmRpY3QYECABKAsyLS5ub21vcy5rZXJuZWwudjEuSW5zcGVjdFJlZnVzYWxWZXJkaWN0UmVxdWVzdEgAEjUKCXJlYWRfYmxvYhgRIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5SZWFkQmxvYlJlcXVlc3RIABI5CgtyZXNvbHZlX3JlZhgSIAEoCzIiLm5vbW9zLmtlcm5lbC52MS5SZXNvbHZlUmVmUmVxdWVzdEgAEjUKCWxpc3RfcmVmcxgTIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5MaXN0UmVmc1JlcXVlc3RIABI1Cgl3cml0ZV9yZWYYFCABKAsyIC5ub21vcy5rZXJuZWwudjEuV3JpdGVSZWZSZXF1ZXN0SAASNwoKZGVsZXRlX3JlZhgVIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5EZWxldGVSZWZSZXF1ZXN0SAASRAoRd3JpdGVfbWV0YV9jb21taXQYFiABKAsyJy5ub21vcy5rZXJuZWwudjEuV3JpdGVNZXRhQ29tbWl0UmVxdWVzdEgAEkIKEGxhd19jbG9zdXJlX2luZm8YFyABKAsyJi5ub21vcy5rZXJuZWwudjEuTGF3Q2xvc3VyZUluZm9SZXF1ZXN0SAASRQoRY2hlY2twb2ludF9leHBvcnQYGCABKAsyKC5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludEV4cG9ydFJlcXVlc3RIABJFChFjaGVja3BvaW50X2ltcG9ydBgZIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50SW1wb3J0UmVxdWVzdEgAEkMKEGNhcGFjaXR5X3Jlc2VydmUYGiABKAsyJy5ub21vcy5rZXJuZWwudjEuQ2FwYWNpdHlSZXNlcnZlUmVxdWVzdEgAEjsKDHJlc3RvcmVfbWFpbhgbIAEoCzIjLm5vbW9zLmtlcm5lbC52MS5SZXN0b3JlTWFpblJlcXVlc3RIABJOChZyZXNvbHZlX3N0YXRlX3Bvc2l0aW9uGBwgASgLMiwubm9tb3Mua2VybmVsLnYxLlJlc29sdmVTdGF0ZVBvc2l0aW9uUmVxdWVzdEgAEkcKEnJlc2lkZW50X2Zvb3RwcmludBgdIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5SZXNpZGVudEZvb3RwcmludFJlcXVlc3RIABJBCg9oaXN0b3J5X3N1bW1hcnkYHiABKAsyJi5ub21vcy5rZXJuZWwudjEuSGlzdG9yeVN1bW1hcnlSZXF1ZXN0SAASWgoccHJvdmVfY29tcGFjdGlvbl9lcXVpdmFsZW5jZRgfIAEoCzIyLm5vbW9zLmtlcm5lbC52MS5Qcm92ZUNvbXBhY3Rpb25FcXVpdmFsZW5jZVJlcXVlc3RIAEILCglvcGVyYXRpb24iKAoYUmVzaWRlbnRGb290cHJpbnRSZXF1ZXN0EgwKBGRlZXAYASABKAginwIKEVJlc2lkZW50Rm9vdHByaW50EhEKCXdvcmtzcGFjZRgBIAEoCRIOCgZicmFuY2gYAiABKAkSGAoQcmVhZF9tb2RlbF9ieXRlcxgDIAEoBBIdChVyZWFkX21vZGVsX3J1c3RfYnl0ZXMYBCABKAQSGAoQZm9sZF9zdGF0ZV9ieXRlcxgFIAEoBBITCgtmb2xkX2ltYWdlcxgGIAEoDRIfChdzaGFyZWRfYXR0cmlidXRlZF9ieXRlcxgHIAEoBBISCgphZ2dyZWdhdGVzGAggASgEEjYKCmNvbXBvbmVudHMYCSADKAsyIi5ub21vcy5rZXJuZWwudjEuUmVzaWRlbnRDb21wb25lbnQSEgoKY29tcHV0ZV91cxgKIAEoBCJpChFSZXNpZGVudENvbXBvbmVudBI0CgRraW5kGAEgASgOMiYubm9tb3Mua2VybmVsLnYxLlJlc2lkZW50Q29tcG9uZW50S2luZBINCgVieXRlcxgCIAEoBBIPCgdjZWlsaW5nGAMgASgIIsoBChlSZXNpZGVudEZvb3RwcmludFJlc3BvbnNlEjUKCXJlc2lkZW50cxgBIAMoCzIiLm5vbW9zLmtlcm5lbC52MS5SZXNpZGVudEZvb3RwcmludBIcChRhbGxvY2F0b3JfbGl2ZV9ieXRlcxgCIAEoBBIYChBhdHRyaWJ1dGVkX2J5dGVzGAMgASgEEhkKEXVuYWNjb3VudGVkX2J5dGVzGAQgASgEEhUKDWFjY291bnRpbmdfdXMYBSABKAQSDAoEZGVlcBgGIAEoCCKcAQoQUGFja0RlbHRhUmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKBGhlYWQYAiABKAlIAIgBARIRCgRiYXNlGAMgASgJSAGIAQESDgoGYnJhbmNoGAQgASgJEh0KEHN0YWdlZF9wYWNrX2ZpbGUYBSABKAlIAogBAUIHCgVfaGVhZEIHCgVfYmFzZUITChFfc3RhZ2VkX3BhY2tfZmlsZSJyChBBcHBseVBhY2tSZXF1ZXN0EgwKBHJlcG8YASABKAkSDgoEcGFjaxgCIAEoDEgAEhoKEHN0YWdlZF9wYWNrX2ZpbGUYBCABKAlIABIRCgRoZWFkGAMgASgJSAGIAQFCCAoGc291cmNlQgcKBV9oZWFkIiAKEFJlcG9TdGF0c1JlcXVlc3QSDAoEcmVwbxgBIAEoCSKsAQoTSW50ZW50c0Fib3ZlUmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKBGhlYWQYAiABKAlIAIgBARIRCgRiYXNlGAMgASgJSAGIAQESDgoGYnJhbmNoGAQgASgJEg0KBWxpbWl0GAUgASgEEhgKEGNvbXBsZXRlX2xvZ2ljYWwYBiABKAgSFgoOY29tcGFjdF9zdG9yZWQYByABKAhCBwoFX2hlYWRCBwoFX2Jhc2UibQoVSGlzdG9yeVN1bW1hcnlSZXF1ZXN0EgwKBHJlcG8YASABKAkSEQoEaGVhZBgCIAEoCUgAiAEBEg4KBmJyYW5jaBgDIAEoCRIRCgRiYXNlGAQgASgJSAGIAQFCBwoFX2hlYWRCBwoFX2Jhc2UiKwoUSW5zcGVjdENoYW5nZVJlcXVlc3QSEwoLY2hhbmdlX3VzZGEYASABKAwi3wEKDlJlZnVzYWxWZXJkaWN0EhUKCG9mZmVyX2lkGAEgASgJSACIAQESEAoDb2lkGAIgASgJSAGIAQESEwoGZG9tYWluGAMgASgJSAKIAQESGQoMZGlyZWN0aXZlX2lkGAQgASgJSAOIAQESFAoHc2Vzc2lvbhgFIAEoCUgEiAEBEhEKCXBhcmtlZF9hdBgGIAEoCRIOCgZyZWFzb24YByABKAlCCwoJX29mZmVyX2lkQgYKBF9vaWRCCQoHX2RvbWFpbkIPCg1fZGlyZWN0aXZlX2lkQgoKCF9zZXNzaW9uIk8KG0VuY29kZVJlZnVzYWxWZXJkaWN0UmVxdWVzdBIwCgd2ZXJkaWN0GAEgASgLMh8ubm9tb3Mua2VybmVsLnYxLlJlZnVzYWxWZXJkaWN0IjQKHEluc3BlY3RSZWZ1c2FsVmVyZGljdFJlcXVlc3QSFAoMdmVyZGljdF91c2RhGAEgASgMItQBChVDb21wYWN0aW9uRXF1aXZhbGVuY2USEwoLc291cmNlX2hlYWQYASABKAkSFgoOc291cmNlX2dlbmVzaXMYAiABKAkSFgoOY2FuZGlkYXRlX2hlYWQYAyABKAkSGQoRY2FuZGlkYXRlX2dlbmVzaXMYBCABKAkSFgoOc291cmNlX2ludGVudHMYBSABKAQSFwoPY2FycmllZF9pbnRlbnRzGAYgASgEEhYKDnBhcmtlZF9pbnRlbnRzGAcgASgEEhIKCmVxdWl2YWxlbnQYCCABKAgifQohUHJvdmVDb21wYWN0aW9uRXF1aXZhbGVuY2VSZXF1ZXN0EhMKC3NvdXJjZV9yZXBvGAEgASgJEhMKC3NvdXJjZV9oZWFkGAIgASgJEhYKDmNhbmRpZGF0ZV9yZXBvGAMgASgJEhYKDmNhbmRpZGF0ZV9oZWFkGAQgASgJIjoKD1JlYWRCbG9iUmVxdWVzdBIMCgRyZXBvGAEgASgJEgsKA29pZBgCIAEoCRIMCgRwYXRoGAMgASgJIjQKEVJlc29sdmVSZWZSZXF1ZXN0EgwKBHJlcG8YASABKAkSEQoJcmVmZXJlbmNlGAIgASgJIi8KD0xpc3RSZWZzUmVxdWVzdBIMCgRyZXBvGAEgASgJEg4KBnByZWZpeBgCIAEoCSJCCg9Xcml0ZVJlZlJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCglyZWZlcmVuY2UYAiABKAkSDgoGdGFyZ2V0GAMgASgJIjMKEERlbGV0ZVJlZlJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCglyZWZlcmVuY2UYAiABKAkiKQoITWV0YUZpbGUSDAoEcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgMIq4BChZXcml0ZU1ldGFDb21taXRSZXF1ZXN0EgwKBHJlcG8YASABKAkSDwoHcGFyZW50cxgCIAMoCRIoCgVmaWxlcxgDIAMoCzIZLm5vbW9zLmtlcm5lbC52MS5NZXRhRmlsZRIPCgdtZXNzYWdlGAQgASgJEhQKDHRpbWVfc2Vjb25kcxgFIAEoEhIWCglyZWZlcmVuY2UYBiABKAlIAIgBAUIMCgpfcmVmZXJlbmNlImcKFUxhd0Nsb3N1cmVJbmZvUmVxdWVzdBIUCgxjbG9zdXJlX2ZpbGUYASABKAkSOAoKY2FwYWJpbGl0eRgCIAEoDjIkLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxMYXdDYXBhYmlsaXR5IocBChdDaGVja3BvaW50RXhwb3J0UmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EiEKFHN0YWdlZF9mcm9udGllcl9maWxlGAIgASgJSACIAQFCFwoVX3N0YWdlZF9mcm9udGllcl9maWxlIkEKC0Zyb250aWVySGxjEhAKCHBoeXNpY2FsGAEgASgEEg8KB2xvZ2ljYWwYAiABKA0SDwoHcmVwbGljYRgDIAEoBCLdBAoXVmVyaWZpZWRGcm9udGllclJlY2VpcHQSFgoOZm9ybWF0X3ZlcnNpb24YASABKA0SCwoDb2lkGAIgASgJEg8KB2ludGVudHMYAyABKAQSEwoLcGxhbnNfcmVydW4YBCABKAQSHAoPY29udHJvbGxlcl9oYXNoGAUgASgJSACIAQESGQoRaW5zdGFsbGVkX2RvbWFpbnMYBiADKAkSDgoGbGluZWFyGAcgASgIEjMKCGxhc3RfaGxjGAggASgLMhwubm9tb3Mua2VybmVsLnYxLkZyb250aWVySGxjSAGIAQESFAoHbGFzdF9pZBgJIAEoCUgCiAEBEhEKCXN0YXRlX29pZBgKIAEoCRIUCgxzdGF0ZV9zaGEyNTYYCyABKAkSOQoOc3RhdGVfbGFzdF9obGMYDCABKAsyHC5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJIbGNIA4gBARIaCg1zdGF0ZV9sYXN0X2lkGA0gASgJSASIAQESFwoPbWFuaWZlc3Rfc2hhMjU2GA4gASgJEh4KFmxhd19jbG9zdXJlX2lkZW50aXRpZXMYDyADKAkSGgoScmVzb2x2YWJsZV9kb21haW5zGBAgAygJEiIKFXByb2plY3Rpb25fc3RhdGVfcm9vdBgRIAEoCUgFiAEBQhIKEF9jb250cm9sbGVyX2hhc2hCCwoJX2xhc3RfaGxjQgoKCF9sYXN0X2lkQhEKD19zdGF0ZV9sYXN0X2hsY0IQCg5fc3RhdGVfbGFzdF9pZEIYChZfcHJvamVjdGlvbl9zdGF0ZV9yb290IkUKFUZvbGRGcm9udGllckFnZ3JlZ2F0ZRIUCgxhZ2dyZWdhdGVfaWQYASABKAkSFgoOYWdncmVnYXRlX3VzZGEYAiABKAwiQQoXRm9sZEZyb250aWVyRmluZ2VycHJpbnQSEQoJaW50ZW50X2lkGAEgASgJEhMKC2ZpbmdlcnByaW50GAIgASgJItYDChRGb2xkRnJvbnRpZXJTbmFwc2hvdBIWCg5mb3JtYXRfdmVyc2lvbhgBIAEoDRILCgN0aXAYAiABKAkSDwoHZ2VuZXNpcxgDIAEoCRIVCg1oaXN0b3J5X2RlcHRoGAQgASgEEjoKCmFnZ3JlZ2F0ZXMYBSADKAsyJi5ub21vcy5rZXJuZWwudjEuRm9sZEZyb250aWVyQWdncmVnYXRlEjgKDWhsY193YXRlcm1hcmsYBiABKAsyHC5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJIbGNIAIgBARIzCghsYXN0X2hsYxgHIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Gcm9udGllckhsY0gBiAEBEhQKB2xhc3RfaWQYCCABKAlIAogBARIWCg5zdHJpa2VfdGFyZ2V0cxgJIAMoCRJFChNpbnRlbnRfZmluZ2VycHJpbnRzGAogAygLMigubm9tb3Mua2VybmVsLnYxLkZvbGRGcm9udGllckZpbmdlcnByaW50EhcKCnN0YXRlX3Jvb3QYCyABKAlIA4gBAUIQCg5faGxjX3dhdGVybWFya0ILCglfbGFzdF9obGNCCgoIX2xhc3RfaWRCDQoLX3N0YXRlX3Jvb3QimwMKGFN0b3JlZENoZWNrcG9pbnRNYW5pZmVzdBIWCg5mb3JtYXRfdmVyc2lvbhgBIAEoDRITCgZjdXJzb3IYAiABKAlIAIgBARIYChBjaGVja3BvaW50X2J5dGVzGAMgASgEEhAKCGxhd19oYXNoGAQgASgJEjsKC2NvbXByZXNzaW9uGAUgASgOMiYubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRDb21wcmVzc2lvbhIRCglyYXdfYnl0ZXMYBiABKAQSFAoMc3RvcmVkX2J5dGVzGAcgASgEEh0KFWZyb250aWVyX3N0b3JlZF9ieXRlcxgIIAEoBBIXCgpzdGF0ZV9yb290GAkgASgJSAGIAQESUAoZdmVyaWZpZWRfZnJvbnRpZXJfcmVjZWlwdBgKIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5WZXJpZmllZEZyb250aWVyUmVjZWlwdEgCiAEBQgkKB19jdXJzb3JCDQoLX3N0YXRlX3Jvb3RCHAoaX3ZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQiwQMKF0NoZWNrcG9pbnRJbXBvcnRSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSEgoIZnJvbnRpZXIYAiABKAxIABIeChRzdGFnZWRfZnJvbnRpZXJfZmlsZRgGIAEoCUgAEhMKBmN1cnNvchgDIAEoCUgBiAEBEhcKCnN0YXRlX3Jvb3QYBCABKAlIAogBARINCgVzcGFucxgFIAEoCBIRCgRoZWFkGAcgASgJSAOIAQESUAoZdmVyaWZpZWRfZnJvbnRpZXJfcmVjZWlwdBgIIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5WZXJpZmllZEZyb250aWVyUmVjZWlwdEgEiAEBEkoKE3ZlcmlmaWNhdGlvbl9wb2xpY3kYCSABKA4yLS5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludFZlcmlmaWNhdGlvblBvbGljeUIRCg9mcm9udGllcl9zb3VyY2VCCQoHX2N1cnNvckINCgtfc3RhdGVfcm9vdEIHCgVfaGVhZEIcChpfdmVyaWZpZWRfZnJvbnRpZXJfcmVjZWlwdCIxChZDYXBhY2l0eVJlc2VydmVSZXF1ZXN0EhcKD2FnZ3JlZ2F0ZV9jb3VudBgBIAEoBCJpChJSZXN0b3JlTWFpblJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBIMCgRoZWFkGAIgASgJEhMKC2RpYWdub3N0aWNzGAMgASgIImkKG1Jlc29sdmVTdGF0ZVBvc2l0aW9uUmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKCW1haW5faGVhZBgCIAEoCRIVCg1oaW50ZWRfY29tbWl0GAMgASgJEhIKCnN0YXRlX3Jvb3QYBCABKAki4wsKD0N1c3RvZHlSZXNwb25zZRI4CgpwYWNrX2RlbHRhGAogASgLMiIubm9tb3Mua2VybmVsLnYxLlBhY2tEZWx0YVJlc3BvbnNlSAASOAoKYXBwbHlfcGFjaxgLIAEoCzIiLm5vbW9zLmtlcm5lbC52MS5BcHBseVBhY2tSZXNwb25zZUgAEjgKCnJlcG9fc3RhdHMYDCABKAsyIi5ub21vcy5rZXJuZWwudjEuUmVwb1N0YXRzUmVzcG9uc2VIABI+Cg1pbnRlbnRzX2Fib3ZlGA0gASgLMiUubm9tb3Mua2VybmVsLnYxLkludGVudHNBYm92ZVJlc3BvbnNlSAASQAoOaW5zcGVjdF9jaGFuZ2UYDiABKAsyJi5ub21vcy5rZXJuZWwudjEuSW5zcGVjdENoYW5nZVJlc3BvbnNlSAASTwoWZW5jb2RlX3JlZnVzYWxfdmVyZGljdBgPIAEoCzItLm5vbW9zLmtlcm5lbC52MS5FbmNvZGVSZWZ1c2FsVmVyZGljdFJlc3BvbnNlSAASUQoXaW5zcGVjdF9yZWZ1c2FsX3ZlcmRpY3QYECABKAsyLi5ub21vcy5rZXJuZWwudjEuSW5zcGVjdFJlZnVzYWxWZXJkaWN0UmVzcG9uc2VIABI2CglyZWFkX2Jsb2IYESABKAsyIS5ub21vcy5rZXJuZWwudjEuUmVhZEJsb2JSZXNwb25zZUgAEjoKC3Jlc29sdmVfcmVmGBIgASgLMiMubm9tb3Mua2VybmVsLnYxLlJlc29sdmVSZWZSZXNwb25zZUgAEjYKCWxpc3RfcmVmcxgTIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5MaXN0UmVmc1Jlc3BvbnNlSAASMgoJd3JpdGVfcmVmGBQgASgLMh0ubm9tb3Mua2VybmVsLnYxLkFja25vd2xlZGdlZEgAEjMKCmRlbGV0ZV9yZWYYFSABKAsyHS5ub21vcy5rZXJuZWwudjEuQWNrbm93bGVkZ2VkSAASRQoRd3JpdGVfbWV0YV9jb21taXQYFiABKAsyKC5ub21vcy5rZXJuZWwudjEuV3JpdGVNZXRhQ29tbWl0UmVzcG9uc2VIABJDChBsYXdfY2xvc3VyZV9pbmZvGBcgASgLMicubm9tb3Mua2VybmVsLnYxLkxhd0Nsb3N1cmVJbmZvUmVzcG9uc2VIABJGChFjaGVja3BvaW50X2V4cG9ydBgYIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50RXhwb3J0UmVzcG9uc2VIABJGChFjaGVja3BvaW50X2ltcG9ydBgZIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50SW1wb3J0UmVzcG9uc2VIABJEChBjYXBhY2l0eV9yZXNlcnZlGBogASgLMigubm9tb3Mua2VybmVsLnYxLkNhcGFjaXR5UmVzZXJ2ZVJlc3BvbnNlSAASPAoMcmVzdG9yZV9tYWluGBsgASgLMiQubm9tb3Mua2VybmVsLnYxLlJlc3RvcmVNYWluUmVzcG9uc2VIABJPChZyZXNvbHZlX3N0YXRlX3Bvc2l0aW9uGBwgASgLMi0ubm9tb3Mua2VybmVsLnYxLlJlc29sdmVTdGF0ZVBvc2l0aW9uUmVzcG9uc2VIABJIChJyZXNpZGVudF9mb290cHJpbnQYHSABKAsyKi5ub21vcy5rZXJuZWwudjEuUmVzaWRlbnRGb290cHJpbnRSZXNwb25zZUgAEkIKD2hpc3Rvcnlfc3VtbWFyeRgeIAEoCzInLm5vbW9zLmtlcm5lbC52MS5IaXN0b3J5U3VtbWFyeVJlc3BvbnNlSAASWwoccHJvdmVfY29tcGFjdGlvbl9lcXVpdmFsZW5jZRgfIAEoCzIzLm5vbW9zLmtlcm5lbC52MS5Qcm92ZUNvbXBhY3Rpb25FcXVpdmFsZW5jZVJlc3BvbnNlSABCCwoJb3BlcmF0aW9uIjAKEVBhY2tEZWx0YVJlc3BvbnNlEgwKBHBhY2sYASABKAwSDQoFYnl0ZXMYAiABKAQiPAoRQXBwbHlQYWNrUmVzcG9uc2USFAoMb2JqZWN0X2NvdW50GAEgASgEEhEKCXBhY2tfaGFzaBgCIAEoCSKnAQoRUmVwb1N0YXRzUmVzcG9uc2USEwoLdG90YWxfYnl0ZXMYASABKAQSFAoMb2JqZWN0X2J5dGVzGAIgASgEEhUKDWxvb3NlX29iamVjdHMYAyABKAQSEwoLbG9vc2VfYnl0ZXMYBCABKAQSEgoKcGFja19maWxlcxgFIAEoBBISCgpwYWNrX2J5dGVzGAYgASgEEhMKC2luZGV4X2J5dGVzGAcgASgEIuIBCgxJbnRlbnRSZWNvcmQSCwoDb2lkGAEgASgJEhEKCWludGVudF9pZBgCIAEoCRIOCgZkb21haW4YAyABKAkSEQoJZGlyZWN0aXZlGAQgASgJEhMKC2NoYW5nZV91c2RhGAUgASgMEi4KCHNlbWFudGljGAYgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EkoKFXRyYW5zcG9ydF9yZXF1aXJlbWVudBgHIAEoDjIrLm5vbW9zLmtlcm5lbC52MS5JbnRlbnRUcmFuc3BvcnRSZXF1aXJlbWVudCJGChRJbnRlbnRzQWJvdmVSZXNwb25zZRIuCgdpbnRlbnRzGAEgAygLMh0ubm9tb3Mua2VybmVsLnYxLkludGVudFJlY29yZCJ0ChZIaXN0b3J5U3VtbWFyeVJlc3BvbnNlEgwKBGhlYWQYASABKAkSDgoGb2xkZXN0GAIgASgJEhQKDGNvbW1pdF9jb3VudBgDIAEoBBIQCghjb21wbGV0ZRgEIAEoCBIUCgxyZWFjaGVkX2Jhc2UYBSABKAgiQgoTTm9taW5hbENhbGxJZGVudGl0eRITCgtkb21haW5fcGF0aBgBIAEoCRIWCg5kaXJlY3RpdmVfcGF0aBgCIAEoCSKIAQoYTGlmZWN5Y2xlSW5zdGFsbElkZW50aXR5Eh8KF3RhcmdldF9jbG9zdXJlX2lkZW50aXR5GAEgASgJEhQKDGluc3RhbGxlZF9ieRgCIAEoCRI1CgVwaGFzZRgDIAEoDjImLm5vbW9zLmtlcm5lbC52MS5MaWZlY3ljbGVJbnN0YWxsUGhhc2UiWgodV29ya3NwYWNlUmVzaWRlbmN5UmVxdWlyZW1lbnQSEQoJd29ya3NwYWNlGAEgASgJEhMKC3NvdXJjZV9oZWFkGAIgASgJEhEKCWZvbGRfcm9vdBgDIAEoCSK0AgoVSW5zcGVjdENoYW5nZVJlc3BvbnNlEi4KCHNlbWFudGljGAEgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EhEKCWludGVudF9pZBgCIAEoCRIyCgRjYWxsGAMgASgLMiQubm9tb3Mua2VybmVsLnYxLk5vbWluYWxDYWxsSWRlbnRpdHkSEAoIYXV0aG9yZWQYBCABKAgSRAoRbGlmZWN5Y2xlX2luc3RhbGwYBSABKAsyKS5ub21vcy5rZXJuZWwudjEuTGlmZWN5Y2xlSW5zdGFsbElkZW50aXR5EkwKFHJlcXVpcmVkX3Jlc2lkZW5jaWVzGAYgAygLMi4ubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVJlc2lkZW5jeVJlcXVpcmVtZW50IkwKHFJlc29sdmVTdGF0ZVBvc2l0aW9uUmVzcG9uc2USGgoNcmVzb2x2ZWRfaGVhZBgBIAEoCUgAiAEBQhAKDl9yZXNvbHZlZF9oZWFkIjQKHEVuY29kZVJlZnVzYWxWZXJkaWN0UmVzcG9uc2USFAoMdmVyZGljdF91c2RhGAEgASgMIlEKHUluc3BlY3RSZWZ1c2FsVmVyZGljdFJlc3BvbnNlEjAKB3ZlcmRpY3QYASABKAsyHy5ub21vcy5rZXJuZWwudjEuUmVmdXNhbFZlcmRpY3QidQoiUHJvdmVDb21wYWN0aW9uRXF1aXZhbGVuY2VSZXNwb25zZRI4CghldmlkZW5jZRgBIAEoCzImLm5vbW9zLmtlcm5lbC52MS5Db21wYWN0aW9uRXF1aXZhbGVuY2USFQoNZXZpZGVuY2VfdXNkYRgCIAEoDCIvChBSZWFkQmxvYlJlc3BvbnNlEg0KBWZvdW5kGAEgASgIEgwKBGJsb2IYAiABKAwiLgoSUmVzb2x2ZVJlZlJlc3BvbnNlEhAKA29pZBgBIAEoCUgAiAEBQgYKBF9vaWQiKwoJUmVmUmVjb3JkEhEKCXJlZmVyZW5jZRgBIAEoCRILCgNvaWQYAiABKAkiPAoQTGlzdFJlZnNSZXNwb25zZRIoCgRyZWZzGAEgAygLMhoubm9tb3Mua2VybmVsLnYxLlJlZlJlY29yZCIOCgxBY2tub3dsZWRnZWQiJgoXV3JpdGVNZXRhQ29tbWl0UmVzcG9uc2USCwoDb2lkGAEgASgJIoMBChZMYXdDbG9zdXJlSW5mb1Jlc3BvbnNlEhAKCGlkZW50aXR5GAEgASgJEhkKEXJvb3RfbG9naWNhbF9wYXRoGAIgASgJEhMKC2Fzc2V0X2NvdW50GAMgASgEEhIKCnByaW1fY291bnQYBCABKAQSEwoLZG9tYWluX2tleXMYBSADKAki3wMKGENoZWNrcG9pbnRFeHBvcnRSZXNwb25zZRINCgVlbXB0eRgBIAEoCBITCgZjdXJzb3IYAiABKAlIAIgBARIQCghmcm9udGllchgDIAEoDBIXCgpzdGF0ZV9yb290GAQgASgJSAGIAQESEgoKc3RhdGVfdHJlZRgFIAEoCBIOCgZwaW5uZWQYBiABKAgSGwoTcmVhZF9pbmRleF9zbmFwc2hvdBgHIAEoCBIjChtyZWFkX2luZGV4X3NuYXBzaG90X3BlbmRpbmcYCCABKAgSJAoXcmVhZF9pbmRleF9zcWxpdGVfYnl0ZXMYCSABKARIAogBARIlChhyZWFkX2luZGV4X2N1c3RvZHlfYnl0ZXMYCiABKARIA4gBARJQChl2ZXJpZmllZF9mcm9udGllcl9yZWNlaXB0GAsgASgLMigubm9tb3Mua2VybmVsLnYxLlZlcmlmaWVkRnJvbnRpZXJSZWNlaXB0SASIAQFCCQoHX2N1cnNvckINCgtfc3RhdGVfcm9vdEIaChhfcmVhZF9pbmRleF9zcWxpdGVfYnl0ZXNCGwoZX3JlYWRfaW5kZXhfY3VzdG9keV9ieXRlc0IcChpfdmVyaWZpZWRfZnJvbnRpZXJfcmVjZWlwdCLXAgoYQ2hlY2twb2ludEltcG9ydFJlc3BvbnNlEhAKCHJlc3RvcmVkGAEgASgIEhMKBnJlYXNvbhgCIAEoCUgAiAEBEhcKD2Zyb250aWVyX3NlZWRlZBgDIAEoCBIlCh1mcm9udGllcl92ZXJpZmljYXRpb25fcGVuZGluZxgEIAEoCBIXCg9hZ2dyZWdhdGVfY291bnQYBSABKAQSKwoFc3BhbnMYBiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSEwoGY3Vyc29yGAcgASgJSAGIAQESEQoJcmVhZF9vbmx5GAggASgIEhcKD2xhenlfcmVhZF9pbmRleBgJIAEoCBI3Cglhc3N1cmFuY2UYCiABKA4yJC5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludEFzc3VyYW5jZUIJCgdfcmVhc29uQgkKB19jdXJzb3IiSgoXQ2FwYWNpdHlSZXNlcnZlUmVzcG9uc2USFwoPYWdncmVnYXRlX2NvdW50GAEgASgEEhYKDnJlc2VydmVkX2J5dGVzGAIgASgEIvkCChBSZXN0b3JlTWFpblNwYW5zEhAKCHRvdGFsX3VzGAEgASgEEhoKEmxpdmVfcmVmX2xvb2t1cF91cxgCIAEoBBIYChB0YXJnZXRfZGVjb2RlX3VzGAMgASgEEiQKHGN1c3RvZHlfY29tcGxldGVuZXNzX3JlYWRfdXMYBCABKAQSGQoRcXVhcmFudGluZV9yZWZfdXMYBSABKAQSJQodY2hhaW5fc2lnbmF0dXJlX2xhd19yZXBsYXlfdXMYBiABKAQSGQoRdmVyZGljdF9kZWNvZGVfdXMYByABKAQSIwobcHJvbW90ZV9hbmRfY2xlYW51cF9yZWZzX3VzGAggASgEEhsKE2Zyb250aWVyX3JlYnVpbGRfdXMYCSABKAQSGQoRZnJvbnRpZXJfc3RvcmVfdXMYCiABKAQSPQoMdmVyaWZpY2F0aW9uGAsgASgLMicubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluRGlhZ25vc3RpY3Mi7wEKE1Jlc3RvcmVNYWluUmVzcG9uc2USDAoEaGVhZBgBIAEoCRIQCgh2ZXJpZmllZBgCIAEoCBIMCgR3YWxrGAMgASgJEjAKBXNwYW5zGAQgASgLMiEubm9tb3Mua2VybmVsLnYxLlJlc3RvcmVNYWluU3BhbnMSLQoHdmVyZGljdBgFIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBI3Cglhc3N1cmFuY2UYBiABKA4yJC5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludEFzc3VyYW5jZRIQCghhY2NlcHRlZBgHIAEoCCKbAgoKTm9tb3NWYWx1ZRIlCgRudWxsGAEgASgLMhUubm9tb3Mua2VybmVsLnYxLk51bGxIABIRCgdib29sZWFuGAIgASgISAASGAoOc2lnbmVkX2ludGVnZXIYAyABKBJIABIaChB1bnNpZ25lZF9pbnRlZ2VyGAQgASgESAASGAoOZmxvYXRpbmdfcG9pbnQYBSABKAFIABIOCgR0ZXh0GAYgASgJSAASDwoFYnl0ZXMYByABKAxIABIqCgRsaXN0GAggASgLMhoubm9tb3Mua2VybmVsLnYxLk5vbW9zTGlzdEgAEi4KBm9iamVjdBgJIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdEgAQgYKBGtpbmQiBgoETnVsbCI4CglOb21vc0xpc3QSKwoGdmFsdWVzGAEgAygLMhsubm9tb3Mua2VybmVsLnYxLk5vbW9zVmFsdWUikwEKC05vbW9zU3RydWN0EjgKBmZpZWxkcxgBIAMoCzIoLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdC5GaWVsZHNFbnRyeRpKCgtGaWVsZHNFbnRyeRILCgNrZXkYASABKAkSKgoFdmFsdWUYAiABKAsyGy5ub21vcy5rZXJuZWwudjEuTm9tb3NWYWx1ZToCOAEq6gEKEkJpcnRoT3V0Y29tZVN0YXR1cxIkCiBCSVJUSF9PVVRDT01FX1NUQVRVU19VTlNQRUNJRklFRBAAEh0KGUJJUlRIX09VVENPTUVfU1RBVFVTX0JPUk4QARIhCh1CSVJUSF9PVVRDT01FX1NUQVRVU19ERUZFUlJFRBACEh8KG0JJUlRIX09VVENPTUVfU1RBVFVTX0ZBSUxFRBADEiAKHEJJUlRIX09VVENPTUVfU1RBVFVTX1JFRlVTRUQQBBIpCiVCSVJUSF9PVVRDT01FX1NUQVRVU19VTldBUlJBTlRFRF9DRVJUEAUq6RIKEUtlcm5lbFJlZnVzYWxDb2RlEiMKH0tFUk5FTF9SRUZVU0FMX0NPREVfVU5TUEVDSUZJRUQQABIlCiFLRVJORUxfUkVGVVNBTF9DT0RFX0JBRF9TSUdOQVRVUkUQARIkCiBLRVJORUxfUkVGVVNBTF9DT0RFX1VOQVVUSE9SSVpFRBACEicKI0tFUk5FTF9SRUZVU0FMX0NPREVfUE9MSUNZX0RJU0FCTEVEEAMSKgomS0VSTkVMX1JFRlVTQUxfQ09ERV9VTkNFUlRJRklFRF9QT0xJQ1kQBBIjCh9LRVJORUxfUkVGVVNBTF9DT0RFX1JFRkVSRU5USUFMEAUSLworS0VSTkVMX1JFRlVTQUxfQ09ERV9QT0lOVF9TVEFURV9VTkFWQUlMQUJMRRAGEiQKIEtFUk5FTF9SRUZVU0FMX0NPREVfQ0FQX0VYQ0VFREVEEAcSLQopS0VSTkVMX1JFRlVTQUxfQ09ERV9DQVBfQ09VTlRfVU5BVkFJTEFCTEUQCBIpCiVLRVJORUxfUkVGVVNBTF9DT0RFX0VWSURFTkNFX1VOQkFDS0VEEAkSJgoiS0VSTkVMX1JFRlVTQUxfQ09ERV9PUlBIQU5fUkVDRUlQVBAKEjYKMktFUk5FTF9SRUZVU0FMX0NPREVfUkVDRUlQVF9PTl9URVJNSU5BTF9PQkxJR0FUSU9OEAsSIgoeS0VSTkVMX1JFRlVTQUxfQ09ERV9OT1RfTUlOVEVEEAwSKAokS0VSTkVMX1JFRlVTQUxfQ09ERV9ET01BSU5fTElGRUNZQ0xFEA0SKQolS0VSTkVMX1JFRlVTQUxfQ09ERV9UWVBFX1RBR19NSVNNQVRDSBAOEiwKKEtFUk5FTF9SRUZVU0FMX0NPREVfUkVUSVJFRF9SRUFEX1NVUkZBQ0UQDxIwCixLRVJORUxfUkVGVVNBTF9DT0RFX0NST1NTX1dPUktTUEFDRV9ERUNMSU5FRBAQEisKJ0tFUk5FTF9SRUZVU0FMX0NPREVfQUdHUkVHQVRFX0lOVkFSSUFOVBAREisKJ0tFUk5FTF9SRUZVU0FMX0NPREVfV09SS1NQQUNFX0lOVkFSSUFOVBASEi4KKktFUk5FTF9SRUZVU0FMX0NPREVfQ0FQVFVSRURfUkVBRF9DT05GTElDVBATEjIKLktFUk5FTF9SRUZVU0FMX0NPREVfQ09ORkxJQ1RfU05BUFNIT1RfUkVRVUlSRUQQFBI0CjBLRVJORUxfUkVGVVNBTF9DT0RFX0NPTkZMSUNUX1NOQVBTSE9UX1VOREVDTEFSRUQQFRIxCi1LRVJORUxfUkVGVVNBTF9DT0RFX0NPTkZMSUNUX1NOQVBTSE9UX0lOVkFMSUQQFhIvCitLRVJORUxfUkVGVVNBTF9DT0RFX0NPTkZMSUNUX1NOQVBTSE9UX1NUQUxFEBcSMAosS0VSTkVMX1JFRlVTQUxfQ09ERV9DQVBUVVJFRF9SRUFEX1VOREVDTEFSRUQQGBItCilLRVJORUxfUkVGVVNBTF9DT0RFX0NBUFRVUkVEX1JFQURfUFJJVkFURRAZEjAKLEtFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNURURfUkVBRF9VTkRFQ0xBUkVEEBoSMwovS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX1VOVFJVU1RFRF9LRVkQGxI2CjJLRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEVEX1JFQURfVU5UUlVTVEVEX1NPVVJDRRAcEiwKKEtFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNURURfUkVBRF9GT1JHRUQQHRIrCidLRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEVEX1JFQURfU1RBTEUQHhIuCipLRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEVEX1JFQURfT1ZFUlNJWkUQHxI3CjNLRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEVEX1JFQURfRElTSE9OT1JFRF9TT1VSQ0UQIBI1CjFLRVJORUxfUkVGVVNBTF9DT0RFX0VRVUlWT0NBVElPTl9FVklERU5DRV9JTlZBTElEECESMwovS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RBVElPTl9SRUNFSVBUX0lOVkFMSUQQIhIrCidLRVJORUxfUkVGVVNBTF9DT0RFX0tFWV9ST1NURVJfTUlTTUFUQ0gQIxIvCitLRVJORUxfUkVGVVNBTF9DT0RFX0tFWV9FUE9DSF9OT1RfTU9OT1RPTklDECQSKQolS0VSTkVMX1JFRlVTQUxfQ09ERV9XUklURV9FUE9DSF9TVEFMRRAlEi0KKUtFUk5FTF9SRUZVU0FMX0NPREVfRU5WRUxPUEVfU0lEX01JU01BVENIECYSMgouS0VSTkVMX1JFRlVTQUxfQ09ERV9SRVZPS0VEX01FTUJFUl9SRVNVUlJFQ1RFRBAnEigKJEtFUk5FTF9SRUZVU0FMX0NPREVfRk9SR0VEX1BSSU5DSVBBTBAoEigKJEtFUk5FTF9SRUZVU0FMX0NPREVfT1dORURfS0VZX0FOQ0hPUhApEiYKIktFUk5FTF9SRUZVU0FMX0NPREVfT1dORURfUkVDT1ZFUlkQKhIsCihLRVJORUxfUkVGVVNBTF9DT0RFX1NVUkZBQ0VEX0JBU0lTX0FIRUFEECsSMgouS0VSTkVMX1JFRlVTQUxfQ09ERV9TSUdORVJfRVBPQ0hfT1VUX09GX1dJTkRPVxAsEiYKIktFUk5FTF9SRUZVU0FMX0NPREVfRVZPTFZFX1JFRlVTRUQQLRIrCidLRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEFUSU9OX0lOVkFMSUQQLhItCilLRVJORUxfUkVGVVNBTF9DT0RFX1BBUkVOVF9ESURfTk9UX0FUVEVTVBAvEikKJUtFUk5FTF9SRUZVU0FMX0NPREVfQ0VSVF9DSEFJTl9CUk9LRU4QMBIqCiZLRVJORUxfUkVGVVNBTF9DT0RFX05PVF9ST09URURfQVRfUk9PVBAxEioKJktFUk5FTF9SRUZVU0FMX0NPREVfREVMRUdBVElPTl9JTlZBTElEEDISJQohS0VSTkVMX1JFRlVTQUxfQ09ERV9QTEFOX1JFSkVDVEVEEDMqigEKD1ZlcmlmeUNoYWluV2FsaxIhCh1WRVJJRllfQ0hBSU5fV0FMS19VTlNQRUNJRklFRBAAEhoKFlZFUklGWV9DSEFJTl9XQUxLX0ZVTEwQARIcChhWRVJJRllfQ0hBSU5fV0FMS19TVUZGSVgQAhIaChZWRVJJRllfQ0hBSU5fV0FMS19NRU1PEAMqiAwKDlF1ZXJ5T3BlcmF0aW9uEh8KG1FVRVJZX09QRVJBVElPTl9VTlNQRUNJRklFRBAAEhwKGFFVRVJZX09QRVJBVElPTl9FWFRSRU1VTRABEiUKIVFVRVJZX09QRVJBVElPTl9QRU5ESU5HX0NPTkZMSUNUUxACEiwKKFFVRVJZX09QRVJBVElPTl9QRU5ESU5HX0NPTkZMSUNUX1NVTU1BUlkQAxIgChxRVUVSWV9PUEVSQVRJT05fUkVBRF9QT1NUVVJFEAQSHwobUVVFUllfT1BFUkFUSU9OX0NVUlJFTlRfTEFXEAUSIwofUVVFUllfT1BFUkFUSU9OX0lOVEVSRkFDRV9PRkZFUhAGEicKI1FVRVJZX09QRVJBVElPTl9SRUxBVElPTl9HQVRFX09GRkVSEAcSHQoZUVVFUllfT1BFUkFUSU9OX1NDRU5FX0xBVxAIEiEKHVFVRVJZX09QRVJBVElPTl9JTlNUQUxMRURfTEFXEAkSHAoYUVVFUllfT1BFUkFUSU9OX0RFU0NSSUJFEAoSIwofUVVFUllfT1BFUkFUSU9OX0tFUk5FTF9SRVNPVVJDRRALEiMKH1FVRVJZX09QRVJBVElPTl9ERVZFTE9QRVJfU1BBTlMQDBIpCiVRVUVSWV9PUEVSQVRJT05fREVDTEFSRURfQ0FQQUJJTElUSUVTEA0SHQoZUVVFUllfT1BFUkFUSU9OX1JFQURJTkVTUxAOEiQKIFFVRVJZX09QRVJBVElPTl9QUk9KRUNUSU9OX1NUQVRTEA8SJQohUVVFUllfT1BFUkFUSU9OX01FTU9SWV9EUk9QX1BST0JFEBASGAoUUVVFUllfT1BFUkFUSU9OX1dBUk0QERIbChdRVUVSWV9PUEVSQVRJT05fUkVGUkVTSBASEiAKHFFVRVJZX09QRVJBVElPTl9WRVJJRllfQ0hBSU4QExIlCiFRVUVSWV9PUEVSQVRJT05fSElTVE9SWV9QUkVGTElHSFQQFBIZChVRVUVSWV9PUEVSQVRJT05fUk9VVEUQFRIYChRRVUVSWV9PUEVSQVRJT05fTUlOVBAWEiEKHVFVRVJZX09QRVJBVElPTl9DUllQVE9fS0VZR0VOEBcSJQohUVVFUllfT1BFUkFUSU9OX0NSWVBUT19TRUFMX0ZJRUxEEBgSLAooUVVFUllfT1BFUkFUSU9OX0NSWVBUT19CTElORF9JTkRFWF9UT0tFThAZEioKJlFVRVJZX09QRVJBVElPTl9DUllQVE9fT1dORURfU0NPUEVfS0VZEBoSLworUVVFUllfT1BFUkFUSU9OX0NSWVBUT19PV05FRF9ERVZJQ0VfUkVRVUVTVBAbEjEKLVFVRVJZX09QRVJBVElPTl9DUllQVE9fT1dORURfUFJFUEFSRV9BUFBST1ZBTBAcEjEKLVFVRVJZX09QRVJBVElPTl9DUllQVE9fT1dORURfUFJFUEFSRV9SRUNPVkVSWRAdEiMKH1FVRVJZX09QRVJBVElPTl9DUllQVE9fV1JBUF9LRVkQHhIlCiFRVUVSWV9PUEVSQVRJT05fQ1JZUFRPX1VOV1JBUF9LRVkQHxIhCh1RVUVSWV9PUEVSQVRJT05fQVVUSE9SX0tFWUdFThAgEiQKIFFVRVJZX09QRVJBVElPTl9BVFRFU1RBVElPTl9TSUdOECESIAocUVVFUllfT1BFUkFUSU9OX1JFQ0VJUFRfUEFUSBAiEh0KGVFVRVJZX09QRVJBVElPTl9DRVJUX1NJR04QIxIlCiFRVUVSWV9PUEVSQVRJT05fQklSVEhfVFJVU1RfU1RBVEUQJBIhCh1RVUVSWV9PUEVSQVRJT05fRVJBX0NFUlRfU0lHThAlEigKJFFVRVJZX09QRVJBVElPTl9ERUxFR0FUSU9OX0NFUlRfU0lHThAmEikKJVFVRVJZX09QRVJBVElPTl9DQU5PTklDQUxJWkVfRlJPTlRJRVIQJxIrCidRVUVSWV9PUEVSQVRJT05fQ0FOT05JQ0FMSVpFX1BST0pFQ1RJT04QKCrSAgoVUmVzaWRlbnRDb21wb25lbnRLaW5kEicKI1JFU0lERU5UX0NPTVBPTkVOVF9LSU5EX1VOU1BFQ0lGSUVEEAASJgoiUkVTSURFTlRfQ09NUE9ORU5UX0tJTkRfRk9MRF9TVEFURRABEi0KKVJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX1JFQURfTU9ERUxfU1FMSVRFEAISLgoqUkVTSURFTlRfQ09NUE9ORU5UX0tJTkRfUkVBRF9NT0RFTF9JTkRFWEVTEAMSLQopUkVTSURFTlRfQ09NUE9ORU5UX0tJTkRfU0hBUkVEX0FUVFJJQlVURUQQBBIsCihSRVNJREVOVF9DT01QT05FTlRfS0lORF9XT1JLU1BBQ0VfQ0FDSEVTEAUSLAooUkVTSURFTlRfQ09NUE9ORU5UX0tJTkRfR0lUX09CSkVDVF9DQUNIRRAGKmwKE0tlcm5lbExhd0NhcGFiaWxpdHkSJQohS0VSTkVMX0xBV19DQVBBQklMSVRZX1VOU1BFQ0lGSUVEEAASLgoqS0VSTkVMX0xBV19DQVBBQklMSVRZX1NUQUdFX1pFUk9fQk9PVFNUUkFQEAEqWQoVQ2hlY2twb2ludENvbXByZXNzaW9uEh8KG0NIRUNLUE9JTlRfQ09NUFJFU1NJT05fTk9ORRAAEh8KG0NIRUNLUE9JTlRfQ09NUFJFU1NJT05fR1pJUBABKpEBChxDaGVja3BvaW50VmVyaWZpY2F0aW9uUG9saWN5EjMKL0NIRUNLUE9JTlRfVkVSSUZJQ0FUSU9OX1BPTElDWV9WRVJJRllfQ0FOT05JQ0FMEAASPAo4Q0hFQ0tQT0lOVF9WRVJJRklDQVRJT05fUE9MSUNZX1RSVVNUX1BSRVZJT1VTTFlfVkVSSUZJRUQQASqAAQoTQ2hlY2twb2ludEFzc3VyYW5jZRIkCiBDSEVDS1BPSU5UX0FTU1VSQU5DRV9VTlNQRUNJRklFRBAAEiAKHENIRUNLUE9JTlRfQVNTVVJBTkNFX1RSVVNURUQQARIhCh1DSEVDS1BPSU5UX0FTU1VSQU5DRV9WRVJJRklFRBACKqgBChpJbnRlbnRUcmFuc3BvcnRSZXF1aXJlbWVudBIsCihJTlRFTlRfVFJBTlNQT1JUX1JFUVVJUkVNRU5UX1VOU1BFQ0lGSUVEEAASLgoqSU5URU5UX1RSQU5TUE9SVF9SRVFVSVJFTUVOVF9TRUFMRURfQ0hBTkdFEAESLAooSU5URU5UX1RSQU5TUE9SVF9SRVFVSVJFTUVOVF9DT01NSVRfVFJFRRACKokBChVMaWZlY3ljbGVJbnN0YWxsUGhhc2USJwojTElGRUNZQ0xFX0lOU1RBTExfUEhBU0VfVU5TUEVDSUZJRUQQABIiCh5MSUZFQ1lDTEVfSU5TVEFMTF9QSEFTRV9BQ1RJVkUQARIjCh9MSUZFQ1lDTEVfSU5TVEFMTF9QSEFTRV9QRU5ESU5HEAIyWQoSTm9tb3NLZXJuZWxTZXJ2aWNlEkMKBENhbGwSHC5ub21vcy5rZXJuZWwudjEuQ2FsbFJlcXVlc3QaHS5ub21vcy5rZXJuZWwudjEuQ2FsbFJlc3BvbnNlYgZwcm90bzM");
|
|
10887
|
+
var file_nomos_kernel_v1_kernel = /* @__PURE__ */ fileDesc("Chxub21vcy9rZXJuZWwvdjEva2VybmVsLnByb3RvEg9ub21vcy5rZXJuZWwudjEi6wYKC0NhbGxSZXF1ZXN0EhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoCRIsCgRvcGVuGAogASgLMhwubm9tb3Mua2VybmVsLnYxLk9wZW5SZXF1ZXN0SAASLgoFb2ZmZXIYCyABKAsyHS5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZXF1ZXN0SAASLgoFcXVlcnkYDCABKAsyHS5ub21vcy5rZXJuZWwudjEuUXVlcnlSZXF1ZXN0SAASMAoGb3V0Ym94GA0gASgLMh4ubm9tb3Mua2VybmVsLnYxLk91dGJveFJlcXVlc3RIABIsCgRzeW5jGA4gASgLMhwubm9tb3Mua2VybmVsLnYxLlN5bmNSZXF1ZXN0SAASMgoHY3VzdG9keRgPIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5DdXN0b2R5UmVxdWVzdEgAEiwKBHRlc3QYECABKAsyHC5ub21vcy5rZXJuZWwudjEuVGVzdFJlcXVlc3RIABJIChNzaWduX3ByZXBhcmVkX29mZmVyGBEgASgLMikubm9tb3Mua2VybmVsLnYxLlNpZ25QcmVwYXJlZE9mZmVyUmVxdWVzdEgAEkoKFHByZXBhcmVfcmVtb3RlX29mZmVyGBIgASgLMioubm9tb3Mua2VybmVsLnYxLlByZXBhcmVSZW1vdGVPZmZlclJlcXVlc3RIABJOChZzaWduX29mZmVyX3ByZXBhcmF0aW9uGBMgASgLMiwubm9tb3Mua2VybmVsLnYxLlNpZ25PZmZlclByZXBhcmF0aW9uUmVxdWVzdEgAEk4KFnNpZ25fYmlydGhfY2VydGlmaWNhdGUYFCABKAsyLC5ub21vcy5rZXJuZWwudjEuU2lnbkJpcnRoQ2VydGlmaWNhdGVSZXF1ZXN0SAASSwoUaW5pdGlhbGl6ZV93b3Jrc3BhY2UYFSABKAsyKy5ub21vcy5rZXJuZWwudjEuSW5pdGlhbGl6ZVdvcmtzcGFjZVJlcXVlc3RIABJOChZhcHBseV93b3Jrc3BhY2VfZWZmZWN0GBYgASgLMiwubm9tb3Mua2VybmVsLnYxLkFwcGx5V29ya3NwYWNlRWZmZWN0UmVxdWVzdEgAQgsKCW9wZXJhdGlvbiKkBwoMQ2FsbFJlc3BvbnNlEhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoCRIrCgdmYWlsdXJlGAogASgLMhgubm9tb3Mua2VybmVsLnYxLkZhaWx1cmVIABItCgRvcGVuGAsgASgLMh0ubm9tb3Mua2VybmVsLnYxLk9wZW5SZXNwb25zZUgAEi8KBW9mZmVyGAwgASgLMh4ubm9tb3Mua2VybmVsLnYxLk9mZmVyUmVzcG9uc2VIABIvCgVxdWVyeRgNIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5RdWVyeVJlc3BvbnNlSAASMQoGb3V0Ym94GA4gASgLMh8ubm9tb3Mua2VybmVsLnYxLk91dGJveFJlc3BvbnNlSAASLQoEc3luYxgPIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5TeW5jUmVzcG9uc2VIABIzCgdjdXN0b2R5GBAgASgLMiAubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlSZXNwb25zZUgAEi0KBHRlc3QYESABKAsyHS5ub21vcy5rZXJuZWwudjEuVGVzdFJlc3BvbnNlSAASSQoTc2lnbl9wcmVwYXJlZF9vZmZlchgSIAEoCzIqLm5vbW9zLmtlcm5lbC52MS5TaWduUHJlcGFyZWRPZmZlclJlc3BvbnNlSAASSwoUcHJlcGFyZV9yZW1vdGVfb2ZmZXIYEyABKAsyKy5ub21vcy5rZXJuZWwudjEuUHJlcGFyZVJlbW90ZU9mZmVyUmVzcG9uc2VIABJPChZzaWduX29mZmVyX3ByZXBhcmF0aW9uGBQgASgLMi0ubm9tb3Mua2VybmVsLnYxLlNpZ25PZmZlclByZXBhcmF0aW9uUmVzcG9uc2VIABJPChZzaWduX2JpcnRoX2NlcnRpZmljYXRlGBUgASgLMi0ubm9tb3Mua2VybmVsLnYxLlNpZ25CaXJ0aENlcnRpZmljYXRlUmVzcG9uc2VIABJMChRpbml0aWFsaXplX3dvcmtzcGFjZRgWIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5Jbml0aWFsaXplV29ya3NwYWNlUmVzcG9uc2VIABJPChZhcHBseV93b3Jrc3BhY2VfZWZmZWN0GBcgASgLMi0ubm9tb3Mua2VybmVsLnYxLkFwcGx5V29ya3NwYWNlRWZmZWN0UmVzcG9uc2VIAEIJCgdvdXRjb21lIlcKB0ZhaWx1cmUSDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEi0KB2RldGFpbHMYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QiPAoMT3BlblJlc3BvbnNlEiwKBnJlc3VsdBgBIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCL3AgoNT2ZmZXJSZXNwb25zZRIyCghhZG1pdHRlZBgBIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5PZmZlckFkbWl0dGVkSAASMAoHcmVmdXNlZBgCIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5PZmZlclJlZnVzZWRIABI7Cg1kZWFkX2xldHRlcmVkGAMgASgLMiIubm9tb3Mua2VybmVsLnYxLk9mZmVyRGVhZExldHRlcmVkSAASOAoLcXVhcmFudGluZWQYBCABKAsyIS5ub21vcy5rZXJuZWwudjEuT2ZmZXJRdWFyYW50aW5lZEgAEkoKFWJsb2NrZWRfb25fZGVwZW5kZW5jeRgFIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5PZmZlckJsb2NrZWRPbkRlcGVuZGVuY3lIABIyCghwcmVwYXJlZBgGIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5PZmZlclByZXBhcmVkSABCCQoHb3V0Y29tZSKDAwoNT2ZmZXJBZG1pdHRlZBIMCgRoZWFkGAEgASgJEhEKCWludGVudF9pZBgCIAEoCRIXCgppbnRlbnRfb3V0GAMgASgJSACIAQESMwoHY3JlYXRlZBgEIAMoCzIiLm5vbW9zLmtlcm5lbC52MS5PZmZlckFnZ3JlZ2F0ZVJlZhI0CghhZmZlY3RlZBgFIAMoCzIiLm5vbW9zLmtlcm5lbC52MS5PZmZlckFnZ3JlZ2F0ZVJlZhIsCgRib3JuGAYgAygLMh4ubm9tb3Mua2VybmVsLnYxLkJvcm5Xb3Jrc3BhY2USNQoOYmlydGhfb3V0Y29tZXMYByADKAsyHS5ub21vcy5rZXJuZWwudjEuQmlydGhPdXRjb21lEjcKDGtlcm5lbF9zcGFucxgIIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxTcGFuc0gBiAEBEg8KB2RyeV9ydW4YCSABKAhCDQoLX2ludGVudF9vdXRCDwoNX2tlcm5lbF9zcGFucyItChFPZmZlckFnZ3JlZ2F0ZVJlZhIMCgR0eXBlGAEgASgJEgoKAmlkGAIgASgJIjAKDUJvcm5Xb3Jrc3BhY2USEQoJd29ya3NwYWNlGAEgASgJEgwKBGhlYWQYAiABKAkiiQMKDEJpcnRoT3V0Y29tZRIWCgl3b3Jrc3BhY2UYASABKAlIAIgBARIzCgZzdGF0dXMYAiABKA4yIy5ub21vcy5rZXJuZWwudjEuQmlydGhPdXRjb21lU3RhdHVzEhMKBnJlYXNvbhgDIAEoCUgBiAEBEhEKBGNvZGUYBCABKAlIAogBARIQCghyZXBsYXllZBgFIAEoCBIVCghsYXdfaGFzaBgGIAEoCUgDiAEBEh0KEHBhcmVudF93b3Jrc3BhY2UYByABKAlIBIgBARIcCg9jaGlsZF93b3Jrc3BhY2UYCCABKAlIBYgBARInChpjZXJ0aWZpY2F0ZV9yZWZ1c2FsX3JlYXNvbhgJIAEoCUgGiAEBQgwKCl93b3Jrc3BhY2VCCQoHX3JlYXNvbkIHCgVfY29kZUILCglfbGF3X2hhc2hCEwoRX3BhcmVudF93b3Jrc3BhY2VCEgoQX2NoaWxkX3dvcmtzcGFjZUIdChtfY2VydGlmaWNhdGVfcmVmdXNhbF9yZWFzb24iLwoQS2VybmVsU3Bhbk1ldHJpYxIMCgRuYW1lGAEgASgJEg0KBXZhbHVlGAIgASgEIqMBCgpLZXJuZWxTcGFuEg0KBWxhYmVsGAEgASgJEhAKCHRvdGFsX3VzGAIgASgEEg8KB3JlY29yZHMYAyABKAQSMQoGcGhhc2VzGAQgAygLMiEubm9tb3Mua2VybmVsLnYxLktlcm5lbFNwYW5NZXRyaWMSMAoFbm90ZXMYBSADKAsyIS5ub21vcy5rZXJuZWwudjEuS2VybmVsU3Bhbk1ldHJpYyJxCgtLZXJuZWxTcGFucxIvCgpvcGVyYXRpb25zGAEgAygLMhsubm9tb3Mua2VybmVsLnYxLktlcm5lbFNwYW4SMQoGZW5naW5lGAIgAygLMiEubm9tb3Mua2VybmVsLnYxLktlcm5lbFNwYW5NZXRyaWMilgEKDE9mZmVyUmVmdXNlZBIVCghvZmZlcl9pZBgBIAEoCUgAiAEBEi8KB3JlZnVzYWwYAiABKAsyHi5ub21vcy5rZXJuZWwudjEuS2VybmVsUmVmdXNhbBIxCgtkaWFnbm9zdGljcxgDIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdEILCglfb2ZmZXJfaWQiegoRT2ZmZXJEZWFkTGV0dGVyZWQSFQoIb2ZmZXJfaWQYASABKAlIAIgBARIOCgZyZWFzb24YAiABKAkSMQoLZGlhZ25vc3RpY3MYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3RCCwoJX29mZmVyX2lkIq4BChBPZmZlclF1YXJhbnRpbmVkEhUKCG9mZmVyX2lkGAEgASgJSACIAQESGQoRYXV0aG9yZWRfbGF3X2hhc2gYAiABKAkSGAoQY3VycmVudF9sYXdfaGFzaBgDIAEoCRIOCgZyZWFzb24YBCABKAkSMQoLZGlhZ25vc3RpY3MYBSABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3RCCwoJX29mZmVyX2lkIoEBChhPZmZlckJsb2NrZWRPbkRlcGVuZGVuY3kSFQoIb2ZmZXJfaWQYASABKAlIAIgBARIOCgZkZXRhaWwYAiABKAkSMQoLZGlhZ25vc3RpY3MYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3RCCwoJX29mZmVyX2lkIoUBCg1PZmZlclByZXBhcmVkEhwKFGF1dGhvcmVkX2NoYW5nZV91c2RhGAEgASgMEhkKEXdvcmtzcGFjZV9iaW5kaW5nGAIgASgJEhgKEHByZXBhcmVkX2F0X2hlYWQYAyABKAkSIQoZYXV0aG9yX3NpZ25hdHVyZV9yZXF1aXJlZBgEIAEoCCJqChhTaWduUHJlcGFyZWRPZmZlclJlcXVlc3QSHAoUYXV0aG9yZWRfY2hhbmdlX3VzZGEYASABKAwSGQoRd29ya3NwYWNlX2JpbmRpbmcYAiABKAkSFQoNYXV0aG9yX3NlY3JldBgDIAEoDCI3ChlTaWduUHJlcGFyZWRPZmZlclJlc3BvbnNlEhoKEnNpZ25lZF9jaGFuZ2VfdXNkYRgBIAEoDCKtAQoZUHJlcGFyZVJlbW90ZU9mZmVyUmVxdWVzdBIVCg1vZmZlcl9yZXF1ZXN0GAEgASgMEhkKEXdvcmtzcGFjZV9iaW5kaW5nGAIgASgJEhgKEHByZXBhcmVkX2F0X2hlYWQYAyABKAkSEgoKcHVibGljX2tleRgEIAEoDBIRCglzaWduYXR1cmUYBSABKAwSHQoVcmVxdWlyZWRfY3VzdG9keV9oZWFkGAYgASgJIlAKGU9mZmVyUHJlcGFyYXRpb25DaGFsbGVuZ2USGQoRd29ya3NwYWNlX2JpbmRpbmcYASABKAkSGAoQcHJlcGFyZWRfYXRfaGVhZBgCIAEoCSKZAQoaUHJlcGFyZVJlbW90ZU9mZmVyUmVzcG9uc2USPwoJY2hhbGxlbmdlGAEgASgLMioubm9tb3Mua2VybmVsLnYxLk9mZmVyUHJlcGFyYXRpb25DaGFsbGVuZ2VIABIvCgVvZmZlchgCIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5PZmZlclJlc3BvbnNlSABCCQoHb3V0Y29tZSKAAQobU2lnbk9mZmVyUHJlcGFyYXRpb25SZXF1ZXN0EhUKDW9mZmVyX3JlcXVlc3QYASABKAwSGQoRd29ya3NwYWNlX2JpbmRpbmcYAiABKAkSGAoQcHJlcGFyZWRfYXRfaGVhZBgDIAEoCRIVCg1hdXRob3Jfc2VjcmV0GAQgASgMIkUKHFNpZ25PZmZlclByZXBhcmF0aW9uUmVzcG9uc2USEgoKcHVibGljX2tleRgBIAEoDBIRCglzaWduYXR1cmUYAiABKAwigQEKDUtlcm5lbFJlZnVzYWwSMAoEY29kZRgBIAEoDjIiLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxSZWZ1c2FsQ29kZRIPCgdtZXNzYWdlGAIgASgJEi0KB2RldGFpbHMYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3Qi2AUKDVF1ZXJ5UmVzcG9uc2USFQoLcmVzdWx0X3VzZGEYAiABKAxIABIsCgV2YWx1ZRgBIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5Ob21vc1ZhbHVlSAASSgoTYXV0aG9yaXphdGlvbl9jaGVjaxgKIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ2hlY2tSZXNwb25zZUgAEkwKFGF1dGhvcml6YXRpb25fZXhwYW5kGAsgASgLMiwubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBhbmRSZXNwb25zZUgAEj4KDW9zZ2lfcmVzb3VyY2UYDCABKAsyJS5ub21vcy5rZXJuZWwudjEuT3NnaVJlc291cmNlUmVzcG9uc2VIABJKChNmcm9udGllcl90cmFuc2l0aW9uGA0gASgLMisubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvblJlc3BvbnNlSAASSwoUb3duZWRfZGV2aWNlX3JlcXVlc3QYDiABKAsyKy5ub21vcy5rZXJuZWwudjEuT3duZWREZXZpY2VSZXF1ZXN0UmVzcG9uc2VIABJPChZvd25lZF9wcmVwYXJlX2FwcHJvdmFsGA8gASgLMi0ubm9tb3Mua2VybmVsLnYxLk93bmVkUHJlcGFyZUFwcHJvdmFsUmVzcG9uc2VIABIXCg1pbnRlZ2VyX3ZhbHVlGBAgASgSSAASUAoWYXV0aGVudGljYXRpb25fcG9zdHVyZRgRIAEoCzIuLm5vbW9zLmtlcm5lbC52MS5BdXRoZW50aWNhdGlvblBvc3R1cmVSZXNwb25zZUgAEkkKGHZlcmlmeV9jaGFpbl9kaWFnbm9zdGljcxgUIAEoCzInLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpbkRpYWdub3N0aWNzQggKBnJlc3VsdCJICg1Pc2dpQXR0cmlidXRlEgwKBG5hbWUYASABKAkSDQoFdmFsdWUYAiABKAkSEQoEdHlwZRgDIAEoCUgAiAEBQgcKBV90eXBlIiwKDU9zZ2lEaXJlY3RpdmUSDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCSKLAQoOT3NnaUNhcGFiaWxpdHkSEQoJbmFtZXNwYWNlGAEgASgJEjIKCmF0dHJpYnV0ZXMYAiADKAsyHi5ub21vcy5rZXJuZWwudjEuT3NnaUF0dHJpYnV0ZRIyCgpkaXJlY3RpdmVzGAMgAygLMh4ubm9tb3Mua2VybmVsLnYxLk9zZ2lEaXJlY3RpdmUijAEKD09zZ2lSZXF1aXJlbWVudBIRCgluYW1lc3BhY2UYASABKAkSMgoKYXR0cmlidXRlcxgCIAMoCzIeLm5vbW9zLmtlcm5lbC52MS5Pc2dpQXR0cmlidXRlEjIKCmRpcmVjdGl2ZXMYAyADKAsyHi5ub21vcy5rZXJuZWwudjEuT3NnaURpcmVjdGl2ZSKaAQoUT3NnaVJlc291cmNlUmVzcG9uc2USEwoLc291cmNlX3VzZGEYASABKAwSNQoMY2FwYWJpbGl0aWVzGAIgAygLMh8ubm9tb3Mua2VybmVsLnYxLk9zZ2lDYXBhYmlsaXR5EjYKDHJlcXVpcmVtZW50cxgDIAMoCzIgLm5vbW9zLmtlcm5lbC52MS5Pc2dpUmVxdWlyZW1lbnQi5wEKE1ZlcmlmeUNoYWluU3RlcFNwYW4SDQoFaW5kZXgYASABKAQSEgoKY29tbWl0X29pZBgCIAEoCRIOCgZkb21haW4YAyABKAkSEQoJZGlyZWN0aXZlGAQgASgJEhAKCHRvdGFsX3VzGAUgASgEEjYKBnBoYXNlcxgGIAEoCzImLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpblN0ZXBQaGFzZXMSQAoOZW5naW5lX3RpbWluZ3MYByADKAsyKC5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5FbmdpbmVUaW1pbmcimAIKFVZlcmlmeUNoYWluU3RlcFBoYXNlcxIeChZydW50aW1lX2xhd19yZWZyZXNoX3VzGAEgASgEEhMKC21hbmlmZXN0X3VzGAIgASgEEhkKEWxhd19yZXNvbHV0aW9uX3VzGAMgASgEEh0KFW1hbmFnZWRfdHJhbnNpdGlvbl91cxgEIAEoBBIUCgxwcmluY2lwYWxfdXMYBSABKAQSFAoMZXZvbHV0aW9uX3VzGAYgASgEEhoKEmNvbG9jYXRlZF9yZWFkc191cxgHIAEoBBIhChl0eXBlZF9pbnN0YWxsX3ZlcmlmaWVyX3VzGAggASgEEhQKDGFkbWlzc2lvbl91cxgJIAEoBBIPCgdmb2xkX3VzGAogASgEItoFChZWZXJpZnlDaGFpbkRpYWdub3N0aWNzEi4KBHdhbGsYASABKA4yIC5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5XYWxrEhAKCHRvdGFsX3VzGAIgASgEEhsKE3JlZmVyZW5jZV9sb29rdXBfdXMYAyABKAQSGgoScmVwb3NpdG9yeV9vcGVuX3VzGAQgASgEEhUKDWNoYWluX3JlYWRfdXMYBSABKAQSFgoOZW5naW5lX2luaXRfdXMYBiABKAQSGAoQdGltZWxpbmVfcmVhZF91cxgHIAEoBBIYChBsYXdfaHlkcmF0aW9uX3VzGAggASgEEhsKE3JlY292ZXJ5X3ByZXNjYW5fdXMYCSABKAQSGAoQZm9sZF9mcm9udGllcl91cxgKIAEoBBIzCgVzdGVwcxgLIAMoCzIkLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpblN0ZXBTcGFuEkAKDmVuZ2luZV90aW1pbmdzGAwgAygLMigubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluRW5naW5lVGltaW5nEk0KFWxhd19oeWRyYXRpb25fdGltaW5ncxgNIAMoCzIuLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpbkxhd0h5ZHJhdGlvblRpbWluZxIZChFsYXdfY2xvc3VyZV9jb3VudBgOIAEoBBIeChZsYXdfY2xvc3VyZV9jYWNoZV9oaXRzGA8gASgEEiAKGGxhd19jbG9zdXJlX2NhY2hlX21pc3NlcxgQIAEoBBISCgpzdGVwX2NvdW50GBEgASgEEhUKDXN0ZXBfdG90YWxfdXMYEiABKAQSQQoRc3RlcF9waGFzZV90b3RhbHMYEyABKAsyJi5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5TdGVwUGhhc2VzEhoKEm9taXR0ZWRfc3RlcF9jb3VudBgUIAEoBCI6ChdWZXJpZnlDaGFpbkVuZ2luZVRpbWluZxINCgVwaGFzZRgBIAEoCRIQCgh0b3RhbF91cxgCIAEoBCJACh1WZXJpZnlDaGFpbkxhd0h5ZHJhdGlvblRpbWluZxINCgVwaGFzZRgBIAEoCRIQCgh0b3RhbF91cxgCIAEoBCIhChJIdHRwc091dGJvdW5kUm91dGUSCwoDdXJsGAEgASgJIisKFldvcmtzcGFjZU91dGJvdW5kUm91dGUSEQoJd29ya3NwYWNlGAEgASgJIvYBChtBcHBseVdvcmtzcGFjZUVmZmVjdFJlcXVlc3QSMAoGc291cmNlGAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBIVCg1zb3VyY2VfY29tbWl0GAIgASgJEhkKEXNvdXJjZV9vZmZlcl9wYXRoGAMgASgJEjAKBnRhcmdldBgEIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSHAoUc291cmNlX2V2aWRlbmNlX3BhY2sYBSABKAwSIwobYWRtaXNzaW9uX2NoZWNrcG9pbnRfc2VjcmV0GAYgASgMImcKHEFwcGx5V29ya3NwYWNlRWZmZWN0UmVzcG9uc2USLgoGcmVzdWx0GAEgASgLMh4ubm9tb3Mua2VybmVsLnYxLk9mZmVyUmVzcG9uc2USFwoPYWxyZWFkeV9hcHBsaWVkGAIgASgIIpMECg1PdXRib3VuZE9mZmVyEgoKAmlkGAEgASgJEhcKC2Rlc3RpbmF0aW9uGAIgASgJQgIYARIUCgxzZWFsZWRfb2ZmZXIYAyABKAwSFAoMY29udGVudF90eXBlGAQgASgJEhgKEHNvdXJjZV93b3Jrc3BhY2UYBSABKAkSFAoMY3VzdG9keV9oZWFkGAYgASgJEhcKD2NhdXNlZF9ieV9vZmZlchgHIAEoCRIbChNzY2hlZHVsZWRfYXRfbWlsbGlzGAggASgEEhoKEmRlYWRsaW5lX2F0X21pbGxpcxgJIAEoBBIUCgxjdXN0b2R5X3BhdGgYCiABKAkSEwoLY3VzdG9keV9vaWQYCyABKAkSFAoMZGVsaXZlcnlfcmVmGAwgASgJEhUKDW9ibGlnYXRpb25faWQYDSABKAkSOgoLaHR0cHNfcm91dGUYDiABKAsyIy5ub21vcy5rZXJuZWwudjEuSHR0cHNPdXRib3VuZFJvdXRlSAASQgoPd29ya3NwYWNlX3JvdXRlGA8gASgLMicubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZU91dGJvdW5kUm91dGVIABIVCg1zb3VyY2VfY29tbWl0GBAgASgJEhwKFHNvdXJjZV9ldmlkZW5jZV9wYWNrGBEgASgMEhkKEXNvdXJjZV9vZmZlcl9wYXRoGBIgASgJQgcKBXJvdXRlIngKDk91dGJveFJlc3BvbnNlEi4KBm9mZmVycxgBIAMoCzIeLm5vbW9zLmtlcm5lbC52MS5PdXRib3VuZE9mZmVyEh8KEm5leHRfZHVlX2F0X21pbGxpcxgCIAEoBEgAiAEBQhUKE19uZXh0X2R1ZV9hdF9taWxsaXMiPAoMU3luY1Jlc3BvbnNlEiwKBnJlc3VsdBgBIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCJCCg9Xb3Jrc3BhY2VUYXJnZXQSDAoEcmVwbxgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkSDgoGYnJhbmNoGAMgASgJIk4KC09wZW5SZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSDQoFc3BhbnMYAiABKAgioQEKGkluaXRpYWxpemVXb3Jrc3BhY2VSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSGwoTY29udHJvbGxlcl9sYXdfdXNkehgCIAEoDBI0CglhdXRob3JpbmcYAyABKAsyIS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaW5nT3B0aW9ucyJIChtJbml0aWFsaXplV29ya3NwYWNlUmVzcG9uc2USDAoEaGVhZBgBIAEoCRIbChNjb250cm9sbGVyX2xhd19oYXNoGAIgASgJIm4KDURpcmVjdGl2ZUNhbGwSDgoGZG9tYWluGAEgASgJEhEKCWRpcmVjdGl2ZRgCIAEoCRITCgljYWxsX3VzZGEYAyABKAxIAEIGCgRib2R5SgQIBBAFUgdwYXlsb2FkUg5sZWdhY3lfcGF5bG9hZCLWAgoQQXV0aG9yaW5nT3B0aW9ucxINCgVhY3RvchgBIAEoCRISCgphdXRoX3Rva2VuGAIgASgMEhUKDWF1dGhvcl9zZWNyZXQYAyABKAwSHQoQdmFsaWRfZnJvbV9lcG9jaBgEIAEoBEgAiAEBEh8KEnByaW5jaXBhbF92ZXJpZmllZBgFIAEoCEgBiAEBEgsKA3JuZxgGIAMoARIYChBkZWZlcl9wcm9qZWN0aW9uGAcgASgIEg0KBXNwYW5zGAggASgIEg8KB2RyeV9ydW4YCSABKAgSEAoIc2VxdWVuY2UYCiABKAQSLQoFY2xvY2sYCyABKAsyHi5ub21vcy5rZXJuZWwudjEuQ2FwdHVyZWRDbG9jaxIUCgxwcmVwYXJlX29ubHkYDCABKAhCEwoRX3ZhbGlkX2Zyb21fZXBvY2hCFQoTX3ByaW5jaXBhbF92ZXJpZmllZCJKCg1DYXB0dXJlZENsb2NrEhcKD3BoeXNpY2FsX21pbGxpcxgBIAEoBBIPCgdsb2dpY2FsGAIgASgNEg8KB3JlcGxpY2EYAyABKAQiwwMKEEJpcnRoQ2VydGlmaWNhdGUSDQoFY2hpbGQYASABKAkSDwoHZm91bmRlchgCIAEoCRIQCgh2ZXJpZmllZBgDIAEoCBISCgpwYXJlbnRfa2V5GAQgASgMEhEKCXBhcmVudF9pZBgFIAEoCRINCgVlcG9jaBgGIAEoAxIRCglzaWduYXR1cmUYByABKAwSGQoMdmVyaWZpZWRfdmlhGAggASgJSACIAQESFgoJaWRwX3Rva2VuGAkgASgJSAGIAQESGwoOY2FwdHVyZWRfY2xvY2sYCiABKANIAogBARIhChRhdXRoX3Byb3ZpZGVyX2lzc3VlchgLIAEoCUgDiAEBEh8KEmF1dGhfcHJvdmlkZXJfandrcxgMIAEoCUgEiAEBEiMKFmF1dGhfcHJvdmlkZXJfYXVkaWVuY2UYDSABKAlIBYgBAUIPCg1fdmVyaWZpZWRfdmlhQgwKCl9pZHBfdG9rZW5CEQoPX2NhcHR1cmVkX2Nsb2NrQhcKFV9hdXRoX3Byb3ZpZGVyX2lzc3VlckIVChNfYXV0aF9wcm92aWRlcl9qd2tzQhkKF19hdXRoX3Byb3ZpZGVyX2F1ZGllbmNlImwKG1NpZ25CaXJ0aENlcnRpZmljYXRlUmVxdWVzdBI2CgtjZXJ0aWZpY2F0ZRgBIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5CaXJ0aENlcnRpZmljYXRlEhUKDXNpZ25lcl9zZWNyZXQYAiABKAwiVgocU2lnbkJpcnRoQ2VydGlmaWNhdGVSZXNwb25zZRI2CgtjZXJ0aWZpY2F0ZRgBIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5CaXJ0aENlcnRpZmljYXRlIsACChRNb2RlbExpZmVjeWNsZUludGVudBI7CglvcGVyYXRpb24YASABKA4yKC5ub21vcy5rZXJuZWwudjEuTW9kZWxMaWZlY3ljbGVPcGVyYXRpb24SFAoMaW5zdGFsbGVkX2J5GAIgASgJEhcKCnN1cGVyc2VkZXMYAyABKAlIAIgBARJECgp0cmFuc2l0aW9uGAQgASgLMisubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvblJlc3BvbnNlSAGIAQESFQoIcmVwbGFjZXMYBSABKAlIAogBARIeChFhY2NlcHRhbmNlX3JlYXNvbhgGIAEoCUgDiAEBQg0KC19zdXBlcnNlZGVzQg0KC190cmFuc2l0aW9uQgsKCV9yZXBsYWNlc0IUChJfYWNjZXB0YW5jZV9yZWFzb24i3gQKDE9mZmVyUmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0Ei4KBGNhbGwYAiABKAsyHi5ub21vcy5rZXJuZWwudjEuRGlyZWN0aXZlQ2FsbEgAEhwKEnNlYWxlZF9jaGFuZ2VfdXNkYRgHIAEoDEgAEkAKD21vZGVsX2xpZmVjeWNsZRgMIAEoCzIlLm5vbW9zLmtlcm5lbC52MS5Nb2RlbExpZmVjeWNsZUludGVudEgAEjQKCWF1dGhvcmluZxgDIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpbmdPcHRpb25zEhAKCGxhd191c2R6GAQgASgMEjMKDGF0dGVzdGF0aW9ucxgFIAMoCzIdLm5vbW9zLmtlcm5lbC52MS5BdHRlc3RlZFJlYWQSPQoSY29uZmxpY3Rfc25hcHNob3RzGAYgAygLMiEubm9tb3Mua2VybmVsLnYxLkNvbmZsaWN0U25hcHNob3QSGgoSZXhlY3V0aW9uX2xhd191c2R6GAggASgMEiAKE2NvbnRyb2xsZXJfbGF3X2hhc2gYCSABKAlIAYgBARIdChBjYW5kaWRhdGVfY29tbWl0GAogASgJSAKIAQESPAoRYmlydGhfY2VydGlmaWNhdGUYCyABKAsyIS5ub21vcy5rZXJuZWwudjEuQmlydGhDZXJ0aWZpY2F0ZUIICgZpbnRlbnRCFgoUX2NvbnRyb2xsZXJfbGF3X2hhc2hCEwoRX2NhbmRpZGF0ZV9jb21taXQikwEKDEF0dGVzdGVkUmVhZBIQCghxdWVyeV9pZBgBIAEoCRIvCglhcmd1bWVudHMYAiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSKwoGcmVzdWx0GAMgASgLMhsubm9tb3Mua2VybmVsLnYxLk5vbW9zVmFsdWUSEwoLYXR0ZXN0YXRpb24YBCABKAwidQoQQ29uZmxpY3RTbmFwc2hvdBIWCg5hZ2dyZWdhdGVfdHlwZRgBIAEoCRIUCgxhZ2dyZWdhdGVfaWQYAiABKAkSDQoFZmllbGQYAyABKAkSFQoNdGFyZ2V0X3NjaGVtYRgEIAEoCRINCgV0b2tlbhgFIAEoCSKaCgoMUXVlcnlSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSMgoJYXV0aG9yaXR5GAIgASgLMh8ubm9tb3Mua2VybmVsLnYxLlF1ZXJ5QXV0aG9yaXR5Eg0KBXNwYW5zGAMgASgIEjkKDXJlc3VsdF9mb3JtYXQYBCABKA4yIi5ub21vcy5rZXJuZWwudjEuUXVlcnlSZXN1bHRGb3JtYXQSKgoEcm93cxgKIAEoCzIaLm5vbW9zLmtlcm5lbC52MS5Sb3dzUXVlcnlIABIqCgRwYWdlGAsgASgLMhoubm9tb3Mua2VybmVsLnYxLlBhZ2VRdWVyeUgAEisKBWJ5X2lkGAwgASgLMhoubm9tb3Mua2VybmVsLnYxLkJ5SWRRdWVyeUgAEjkKDHJlc29sdmVfcmVmcxgNIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5SZXNvbHZlUmVmc1F1ZXJ5SAASRQoScmVmZXJlbmNlX3ZlcnNpb25zGA4gASgLMicubm9tb3Mua2VybmVsLnYxLlJlZmVyZW5jZVZlcnNpb25zUXVlcnlIABIsCgVjb3VudBgPIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5UYWxseVF1ZXJ5SAASKgoDc3VtGBAgASgLMhsubm9tb3Mua2VybmVsLnYxLlRhbGx5UXVlcnlIABIwCgdzcGF0aWFsGBEgASgLMh0ubm9tb3Mua2VybmVsLnYxLlNwYXRpYWxRdWVyeUgAEiwKBW5hbWVkGBIgASgLMhsubm9tb3Mua2VybmVsLnYxLk5hbWVkUXVlcnlIABJJChNhdXRob3JpemF0aW9uX2NoZWNrGBMgASgLMioubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25DaGVja1JlcXVlc3RIABJLChRhdXRob3JpemF0aW9uX2V4cGFuZBgUIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRXhwYW5kUmVxdWVzdEgAEkkKE2Zyb250aWVyX3RyYW5zaXRpb24YFSABKAsyKi5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uUmVxdWVzdEgAEi8KB2J5X3R5cGUYFiABKAsyHC5ub21vcy5rZXJuZWwudjEuQnlUeXBlUXVlcnlIABJIChRvd25lZF9kZXZpY2VfcmVxdWVzdBgXIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5Pd25lZERldmljZVJlcXVlc3RRdWVyeUgAEkwKFm93bmVkX3ByZXBhcmVfYXBwcm92YWwYGCABKAsyKi5ub21vcy5rZXJuZWwudjEuT3duZWRQcmVwYXJlQXBwcm92YWxRdWVyeUgAEkMKEXBlbmRpbmdfY29uZmxpY3RzGBkgASgLMiYubm9tb3Mua2VybmVsLnYxLlBlbmRpbmdDb25mbGljdHNRdWVyeUgAElAKGHBlbmRpbmdfY29uZmxpY3Rfc3VtbWFyeRgaIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5QZW5kaW5nQ29uZmxpY3RTdW1tYXJ5UXVlcnlIABJNChZhdXRoZW50aWNhdGlvbl9wb3N0dXJlGBsgASgLMisubm9tb3Mua2VybmVsLnYxLkF1dGhlbnRpY2F0aW9uUG9zdHVyZVF1ZXJ5SABCBwoFcXVlcnkiHAoaQXV0aGVudGljYXRpb25Qb3N0dXJlUXVlcnkingEKHUF1dGhlbnRpY2F0aW9uUG9zdHVyZVJlc3BvbnNlEkgKDnByb3ZpZGVyX3Rva2VuGAEgASgOMjAubm9tb3Mua2VybmVsLnYxLlByb3ZpZGVyVG9rZW5WZXJpZmljYXRpb25TdGF0dXMSFwoPZW5yb2xsZWRfZGV2aWNlGAIgASgIEhoKEnJlc29sdmVkX3ByaW5jaXBhbBgDIAEoCSIoChdPd25lZERldmljZVJlcXVlc3RRdWVyeRINCgVzY29wZRgBIAEoCSIyChpPd25lZERldmljZVJlcXVlc3RSZXNwb25zZRIUCgxyZXF1ZXN0X3VzZGEYASABKAwiQAoZT3duZWRQcmVwYXJlQXBwcm92YWxRdWVyeRINCgVzY29wZRgBIAEoCRIUCgxyZXF1ZXN0X3VzZGEYAiABKAwivwEKHE93bmVkUHJlcGFyZUFwcHJvdmFsUmVzcG9uc2USFwoPbmV3X2tleV9zdWJqZWN0GAEgASgJEhoKEm93bmVkX2N1c3RvZHlfdXNkYRgCIAEoDBIUCgx2ZXJpZmllZF92aWEYAyABKAkSGAoQdmFsaWRfZnJvbV9lcG9jaBgEIAEoBBIfChdhcHByb3ZlZF9hdF91bml4X21pbGxpcxgFIAEoBBIZChFvd25lZF9rZXlfc3ViamVjdBgGIAEoCSKSAQoOUXVlcnlBdXRob3JpdHkSFwoPcHJpbmNpcGFsX2NsYWltGAEgASgJEhIKCmF1dGhfdG9rZW4YAiABKAwSEAoIbm93X3VuaXgYAyABKAQSFQoNYXV0aG9yX3NlY3JldBgEIAEoDBIqCgRrZXlzGAUgAygLMhwubm9tb3Mua2VybmVsLnYxLkluamVjdGVkS2V5IjgKC0luamVjdGVkS2V5Eg0KBXNjb3BlGAEgASgJEg0KBWVwb2NoGAIgASgEEgsKA2tleRgDIAEoDCJzCglSb3dzUXVlcnkSCgoCaWQYASABKAkSLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EhEKCXByaW5jaXBhbBgDIAEoCRIWCg5hcmd1bWVudHNfdXNkYRgEIAEoDCKRAQoJUGFnZVF1ZXJ5EgoKAmlkGAEgASgJEi8KCWFyZ3VtZW50cxgCIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBINCgVsaW1pdBgDIAEoDRINCgVhZnRlchgEIAEoCRIRCglwcmluY2lwYWwYBSABKAkSFgoOYXJndW1lbnRzX3VzZGEYBiABKAwiTAoJQnlJZFF1ZXJ5EhYKDmFnZ3JlZ2F0ZV90eXBlGAEgASgJEhQKDGFnZ3JlZ2F0ZV9pZBgCIAEoCRIRCglwcmluY2lwYWwYAyABKAkiOAoLQnlUeXBlUXVlcnkSFgoOYWdncmVnYXRlX3R5cGUYASABKAkSEQoJcHJpbmNpcGFsGAIgASgJIlwKCE5vbW9zUmVmEhEKCXdvcmtzcGFjZRgBIAEoCRIWCg5hZ2dyZWdhdGVfdHlwZRgCIAEoCRIUCgxhZ2dyZWdhdGVfaWQYAyABKAkSDwoHdmVyc2lvbhgEIAEoCSJOChBSZXNvbHZlUmVmc1F1ZXJ5EicKBHJlZnMYASADKAsyGS5ub21vcy5rZXJuZWwudjEuTm9tb3NSZWYSEQoJcHJpbmNpcGFsGAIgASgJIk4KFlJlZmVyZW5jZVZlcnNpb25zUXVlcnkSNAoEcmVmcxgBIAMoCzImLm5vbW9zLmtlcm5lbC52MS5SZWZlcmVuY2VWZXJzaW9uQ2hlY2sihAEKFVJlZmVyZW5jZVZlcnNpb25DaGVjaxIpCgZwaW5uZWQYASABKAsyGS5ub21vcy5rZXJuZWwudjEuTm9tb3NSZWYSKQoGc2VyaWVzGAIgASgLMhkubm9tb3Mua2VybmVsLnYxLk5vbW9zUmVmEhUKDWN1cnJlbnRfZmllbGQYAyABKAkiYgoKVGFsbHlRdWVyeRIKCgJpZBgBIAEoCRIRCglwcmluY2lwYWwYAyABKAkSFgoJZ3JvdXBfa2V5GAQgASgJSACIAQFCDAoKX2dyb3VwX2tleUoECAIQA1IJYXJndW1lbnRzInoKDFNwYXRpYWxRdWVyeRIKCgJpZBgBIAEoCRIRCglwcmluY2lwYWwYAyABKAkSDQoFbWluX3gYBCABKAESDQoFbWluX3kYBSABKAESDQoFbWF4X3gYBiABKAESDQoFbWF4X3kYByABKAFKBAgCEANSCWFyZ3VtZW50cyJaChVQZW5kaW5nQ29uZmxpY3RzUXVlcnkSGwoOYWdncmVnYXRlX3R5cGUYASABKAlIAIgBARIRCglwcmluY2lwYWwYAiABKAlCEQoPX2FnZ3JlZ2F0ZV90eXBlIjAKG1BlbmRpbmdDb25mbGljdFN1bW1hcnlRdWVyeRIRCglwcmluY2lwYWwYASABKAkicQoKTmFtZWRRdWVyeRIyCglvcGVyYXRpb24YASABKA4yHy5ub21vcy5rZXJuZWwudjEuUXVlcnlPcGVyYXRpb24SLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0IrEBChlGcm9udGllclRyYW5zaXRpb25SZXF1ZXN0Eg4KBmRvbWFpbhgBIAEoCRIWCg5jYW5kaWRhdGVfaGFzaBgCIAEoCRIPCgdhdF9oYXNoGAMgASgJEiEKGWFja25vd2xlZGdlbWVudF9wcmluY2lwYWwYBCABKAkSIAoTcmVzdG9yZV9wcmV2aW91c19vZhgFIAEoCUgAiAEBQhYKFF9yZXN0b3JlX3ByZXZpb3VzX29mIloKJUZyb250aWVyVHJhbnNpdGlvbkRpc3Bvc2l0aW9uTWFwRW50cnkSGAoQc291cmNlX3N0YWJsZV9pZBgBIAEoCRIXCg9hY2tub3dsZWRnZW1lbnQYAiABKAki9QEKHkZyb250aWVyVHJhbnNpdGlvbkRpc3Bvc2l0aW9ucxIPCgdyZXRpcmVkGAEgAygJEkcKB3JldHlwZWQYAiADKAsyNi5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uRGlzcG9zaXRpb25NYXBFbnRyeRJHCgdyZWJpbmRzGAMgAygLMjYubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvbkRpc3Bvc2l0aW9uTWFwRW50cnkSHAoPYWNrbm93bGVkZ2VkX2J5GAQgASgJSACIAQFCEgoQX2Fja25vd2xlZGdlZF9ieSI9ChtGcm9udGllclRyYW5zaXRpb25WaW9sYXRpb24SDgoGZG9tYWluGAEgASgJEg4KBmRldGFpbBgCIAEoCSLXAgoaRnJvbnRpZXJUcmFuc2l0aW9uUmVzcG9uc2USDwoHYXRfaGFzaBgBIAEoCRIZCgxjdXJyZW50X2hhc2gYAiABKAlIAIgBARIVCg1hdF9zdGF0ZV9yb290GAMgASgJEhYKDmNhbmRpZGF0ZV9oYXNoGAQgASgJEg4KBmRvbWFpbhgFIAEoCRIPCgdkb21haW5zGAYgAygJEg0KBXJlYWR5GAcgASgIEkAKCnZpb2xhdGlvbnMYCCADKAsyLC5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uVmlvbGF0aW9uEkoKDGRpc3Bvc2l0aW9ucxgJIAEoCzIvLm5vbW9zLmtlcm5lbC52MS5Gcm9udGllclRyYW5zaXRpb25EaXNwb3NpdGlvbnNIAYgBAUIPCg1fY3VycmVudF9oYXNoQg8KDV9kaXNwb3NpdGlvbnMiLwoTQXV0aG9yaXphdGlvbk9iamVjdBIMCgR0eXBlGAEgASgJEgoKAmlkGAIgASgJIlQKFEF1dGhvcml6YXRpb25TdWJqZWN0EgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkSFQoIcmVsYXRpb24YAyABKAlIAIgBAUILCglfcmVsYXRpb24inAEKGFJlbGF0aW9uc2hpcFR1cGxlQWRkcmVzcxI2CghyZXNvdXJjZRgBIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uT2JqZWN0EhAKCHJlbGF0aW9uGAIgASgJEjYKB3N1YmplY3QYAyABKAsyJS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvblN1YmplY3QigQEKGEF1dGhvcml6YXRpb25Db25zaXN0ZW5jeRIjChljdXJyZW50X3ZlcmlmaWVkX2Zyb250aWVyGAEgASgISAASGQoPYXRfbGVhc3RfY29tbWl0GAIgASgJSAASFgoMZXhhY3RfY29tbWl0GAMgASgJSABCDQoLcmVxdWlyZW1lbnQiZgodQXV0aG9yaXphdGlvbkNvbmRpdGlvbkNvbnRleHQSFAoMY29uZGl0aW9uX2lkGAEgASgJEi8KCWFyZ3VtZW50cxgCIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCL3AgoZQXV0aG9yaXphdGlvbkNoZWNrUmVxdWVzdBI2CghyZXNvdXJjZRgBIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uT2JqZWN0EhIKCnBlcm1pc3Npb24YAiABKAkSNgoHc3ViamVjdBgDIAEoCzIlLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uU3ViamVjdBI+Cgtjb25zaXN0ZW5jeRgEIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ29uc2lzdGVuY3kSPwoHY29udGV4dBgFIAMoCzIuLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ29uZGl0aW9uQ29udGV4dBIgChNleHBlY3RlZF9tb2RlbF9oYXNoGAYgASgJSACIAQESGwoTaW5jbHVkZV9leHBsYW5hdGlvbhgHIAEoCEIWChRfZXhwZWN0ZWRfbW9kZWxfaGFzaCLtAgoaQXV0aG9yaXphdGlvbkV4cGFuZFJlcXVlc3QSNgoIcmVzb3VyY2UYASABKAsyJC5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbk9iamVjdBISCgpwZXJtaXNzaW9uGAIgASgJEj4KC2NvbnNpc3RlbmN5GAMgASgLMikubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25Db25zaXN0ZW5jeRI/Cgdjb250ZXh0GAQgAygLMi4ubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25Db25kaXRpb25Db250ZXh0EiAKE2V4cGVjdGVkX21vZGVsX2hhc2gYBSABKAlIAIgBARINCgVsaW1pdBgGIAEoDRISCgVhZnRlchgHIAEoCUgBiAEBEhsKE2luY2x1ZGVfZXhwbGFuYXRpb24YCCABKAhCFgoUX2V4cGVjdGVkX21vZGVsX2hhc2hCCAoGX2FmdGVyIr0BChlSZWxhdGlvbnNoaXBUdXBsZUV2aWRlbmNlEjgKBXR1cGxlGAEgASgLMikubm9tb3Mua2VybmVsLnYxLlJlbGF0aW9uc2hpcFR1cGxlQWRkcmVzcxIQCgh0dXBsZV9pZBgCIAEoCRIaChJhc3NlcnRpb25fZXZlbnRfaWQYAyABKAkSIAoTcmV2b2NhdGlvbl9ldmVudF9pZBgEIAEoCUgAiAEBQhYKFF9yZXZvY2F0aW9uX2V2ZW50X2lkIuEDChhBdXRob3JpemF0aW9uRXhwbGFuYXRpb24SRgoJb3BlcmF0aW9uGAEgASgOMjMubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBsYW5hdGlvbi5PcGVyYXRpb24SEAoIcmVsYXRpb24YAiABKAkSDgoGcmVzdWx0GAMgASgIEjwKCGV2aWRlbmNlGAQgAygLMioubm9tb3Mua2VybmVsLnYxLlJlbGF0aW9uc2hpcFR1cGxlRXZpZGVuY2USOwoIY2hpbGRyZW4YBSADKAsyKS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkV4cGxhbmF0aW9uIt8BCglPcGVyYXRpb24SGQoVT1BFUkFUSU9OX1VOU1BFQ0lGSUVEEAASFAoQT1BFUkFUSU9OX0RJUkVDVBABEh4KGk9QRVJBVElPTl9DT01QVVRFRF9VU0VSU0VUEAISHgoaT1BFUkFUSU9OX1RVUExFX1RPX1VTRVJTRVQQAxITCg9PUEVSQVRJT05fVU5JT04QBBIaChZPUEVSQVRJT05fSU5URVJTRUNUSU9OEAUSFwoTT1BFUkFUSU9OX0VYQ0xVU0lPThAGEhcKE09QRVJBVElPTl9DT05ESVRJT04QByJ3ChpBdXRob3JpemF0aW9uRGVjaXNpb25CYXNpcxIgChhhdXRob3JpemF0aW9uX21vZGVsX2hhc2gYASABKAkSIQoZcmVsYXRpb25zaGlwX3N0YXRlX2NvbW1pdBgCIAEoCRIUCgxjb250ZXh0X2hhc2gYAyABKAwivgEKGkF1dGhvcml6YXRpb25DaGVja1Jlc3BvbnNlEg8KB2FsbG93ZWQYASABKAgSOgoFYmFzaXMYAiABKAsyKy5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkRlY2lzaW9uQmFzaXMSQwoLZXhwbGFuYXRpb24YAyABKAsyKS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkV4cGxhbmF0aW9uSACIAQFCDgoMX2V4cGxhbmF0aW9uIoMCChtBdXRob3JpemF0aW9uRXhwYW5kUmVzcG9uc2USNwoIc3ViamVjdHMYASADKAsyJS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvblN1YmplY3QSOgoFYmFzaXMYAiABKAsyKy5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkRlY2lzaW9uQmFzaXMSEQoEbmV4dBgDIAEoCUgAiAEBEkMKC2V4cGxhbmF0aW9uGAQgASgLMikubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBsYW5hdGlvbkgBiAEBQgcKBV9uZXh0Qg4KDF9leHBsYW5hdGlvbiJwCg1PdXRib3hSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSLQoFY2xvY2sYAiABKAsyHi5ub21vcy5rZXJuZWwudjEuQ2FwdHVyZWRDbG9jayJjCgtTeW5jUmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EhEKCWZyb21fYmFzZRgCIAEoCRIPCgd0b19oZWFkGAMgASgJIlMKC1Rlc3RSZXF1ZXN0EjcKCHNldF9yb290GAEgASgLMiMubm9tb3Mua2VybmVsLnYxLlNldFRlc3RSb290UmVxdWVzdEgAQgsKCW9wZXJhdGlvbiIoChJTZXRUZXN0Um9vdFJlcXVlc3QSEgoKcHVibGljX2tleRgBIAEoDCI9CgxUZXN0UmVzcG9uc2USLQoGcmVzdWx0GAEgASgLMh0ubm9tb3Mua2VybmVsLnYxLkFja25vd2xlZGdlZCLVCwoOQ3VzdG9keVJlcXVlc3QSNwoKcGFja19kZWx0YRgKIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5QYWNrRGVsdGFSZXF1ZXN0SAASNwoKYXBwbHlfcGFjaxgLIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5BcHBseVBhY2tSZXF1ZXN0SAASNwoKcmVwb19zdGF0cxgMIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5SZXBvU3RhdHNSZXF1ZXN0SAASPQoNaW50ZW50c19hYm92ZRgNIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5JbnRlbnRzQWJvdmVSZXF1ZXN0SAASPwoOaW5zcGVjdF9jaGFuZ2UYDiABKAsyJS5ub21vcy5rZXJuZWwudjEuSW5zcGVjdENoYW5nZVJlcXVlc3RIABJOChZlbmNvZGVfcmVmdXNhbF92ZXJkaWN0GA8gASgLMiwubm9tb3Mua2VybmVsLnYxLkVuY29kZVJlZnVzYWxWZXJkaWN0UmVxdWVzdEgAElAKF2luc3BlY3RfcmVmdXNhbF92ZXJkaWN0GBAgASgLMi0ubm9tb3Mua2VybmVsLnYxLkluc3BlY3RSZWZ1c2FsVmVyZGljdFJlcXVlc3RIABI1CglyZWFkX2Jsb2IYESABKAsyIC5ub21vcy5rZXJuZWwudjEuUmVhZEJsb2JSZXF1ZXN0SAASOQoLcmVzb2x2ZV9yZWYYEiABKAsyIi5ub21vcy5rZXJuZWwudjEuUmVzb2x2ZVJlZlJlcXVlc3RIABI1CglsaXN0X3JlZnMYEyABKAsyIC5ub21vcy5rZXJuZWwudjEuTGlzdFJlZnNSZXF1ZXN0SAASNQoJd3JpdGVfcmVmGBQgASgLMiAubm9tb3Mua2VybmVsLnYxLldyaXRlUmVmUmVxdWVzdEgAEjcKCmRlbGV0ZV9yZWYYFSABKAsyIS5ub21vcy5rZXJuZWwudjEuRGVsZXRlUmVmUmVxdWVzdEgAEkQKEXdyaXRlX21ldGFfY29tbWl0GBYgASgLMicubm9tb3Mua2VybmVsLnYxLldyaXRlTWV0YUNvbW1pdFJlcXVlc3RIABJCChBsYXdfY2xvc3VyZV9pbmZvGBcgASgLMiYubm9tb3Mua2VybmVsLnYxLkxhd0Nsb3N1cmVJbmZvUmVxdWVzdEgAEkUKEWNoZWNrcG9pbnRfZXhwb3J0GBggASgLMigubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRFeHBvcnRSZXF1ZXN0SAASRQoRY2hlY2twb2ludF9pbXBvcnQYGSABKAsyKC5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludEltcG9ydFJlcXVlc3RIABJDChBjYXBhY2l0eV9yZXNlcnZlGBogASgLMicubm9tb3Mua2VybmVsLnYxLkNhcGFjaXR5UmVzZXJ2ZVJlcXVlc3RIABI7CgxyZXN0b3JlX21haW4YGyABKAsyIy5ub21vcy5rZXJuZWwudjEuUmVzdG9yZU1haW5SZXF1ZXN0SAASTgoWcmVzb2x2ZV9zdGF0ZV9wb3NpdGlvbhgcIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5SZXNvbHZlU3RhdGVQb3NpdGlvblJlcXVlc3RIABJHChJyZXNpZGVudF9mb290cHJpbnQYHSABKAsyKS5ub21vcy5rZXJuZWwudjEuUmVzaWRlbnRGb290cHJpbnRSZXF1ZXN0SAASQQoPaGlzdG9yeV9zdW1tYXJ5GB4gASgLMiYubm9tb3Mua2VybmVsLnYxLkhpc3RvcnlTdW1tYXJ5UmVxdWVzdEgAEloKHHByb3ZlX2NvbXBhY3Rpb25fZXF1aXZhbGVuY2UYHyABKAsyMi5ub21vcy5rZXJuZWwudjEuUHJvdmVDb21wYWN0aW9uRXF1aXZhbGVuY2VSZXF1ZXN0SABCCwoJb3BlcmF0aW9uIigKGFJlc2lkZW50Rm9vdHByaW50UmVxdWVzdBIMCgRkZWVwGAEgASgIIp8CChFSZXNpZGVudEZvb3RwcmludBIRCgl3b3Jrc3BhY2UYASABKAkSDgoGYnJhbmNoGAIgASgJEhgKEHJlYWRfbW9kZWxfYnl0ZXMYAyABKAQSHQoVcmVhZF9tb2RlbF9ydXN0X2J5dGVzGAQgASgEEhgKEGZvbGRfc3RhdGVfYnl0ZXMYBSABKAQSEwoLZm9sZF9pbWFnZXMYBiABKA0SHwoXc2hhcmVkX2F0dHJpYnV0ZWRfYnl0ZXMYByABKAQSEgoKYWdncmVnYXRlcxgIIAEoBBI2Cgpjb21wb25lbnRzGAkgAygLMiIubm9tb3Mua2VybmVsLnYxLlJlc2lkZW50Q29tcG9uZW50EhIKCmNvbXB1dGVfdXMYCiABKAQiaQoRUmVzaWRlbnRDb21wb25lbnQSNAoEa2luZBgBIAEoDjImLm5vbW9zLmtlcm5lbC52MS5SZXNpZGVudENvbXBvbmVudEtpbmQSDQoFYnl0ZXMYAiABKAQSDwoHY2VpbGluZxgDIAEoCCLKAQoZUmVzaWRlbnRGb290cHJpbnRSZXNwb25zZRI1CglyZXNpZGVudHMYASADKAsyIi5ub21vcy5rZXJuZWwudjEuUmVzaWRlbnRGb290cHJpbnQSHAoUYWxsb2NhdG9yX2xpdmVfYnl0ZXMYAiABKAQSGAoQYXR0cmlidXRlZF9ieXRlcxgDIAEoBBIZChF1bmFjY291bnRlZF9ieXRlcxgEIAEoBBIVCg1hY2NvdW50aW5nX3VzGAUgASgEEgwKBGRlZXAYBiABKAginAEKEFBhY2tEZWx0YVJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCgRoZWFkGAIgASgJSACIAQESEQoEYmFzZRgDIAEoCUgBiAEBEg4KBmJyYW5jaBgEIAEoCRIdChBzdGFnZWRfcGFja19maWxlGAUgASgJSAKIAQFCBwoFX2hlYWRCBwoFX2Jhc2VCEwoRX3N0YWdlZF9wYWNrX2ZpbGUicgoQQXBwbHlQYWNrUmVxdWVzdBIMCgRyZXBvGAEgASgJEg4KBHBhY2sYAiABKAxIABIaChBzdGFnZWRfcGFja19maWxlGAQgASgJSAASEQoEaGVhZBgDIAEoCUgBiAEBQggKBnNvdXJjZUIHCgVfaGVhZCIgChBSZXBvU3RhdHNSZXF1ZXN0EgwKBHJlcG8YASABKAkirAEKE0ludGVudHNBYm92ZVJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCgRoZWFkGAIgASgJSACIAQESEQoEYmFzZRgDIAEoCUgBiAEBEg4KBmJyYW5jaBgEIAEoCRINCgVsaW1pdBgFIAEoBBIYChBjb21wbGV0ZV9sb2dpY2FsGAYgASgIEhYKDmNvbXBhY3Rfc3RvcmVkGAcgASgIQgcKBV9oZWFkQgcKBV9iYXNlIm0KFUhpc3RvcnlTdW1tYXJ5UmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKBGhlYWQYAiABKAlIAIgBARIOCgZicmFuY2gYAyABKAkSEQoEYmFzZRgEIAEoCUgBiAEBQgcKBV9oZWFkQgcKBV9iYXNlIisKFEluc3BlY3RDaGFuZ2VSZXF1ZXN0EhMKC2NoYW5nZV91c2RhGAEgASgMIt8BCg5SZWZ1c2FsVmVyZGljdBIVCghvZmZlcl9pZBgBIAEoCUgAiAEBEhAKA29pZBgCIAEoCUgBiAEBEhMKBmRvbWFpbhgDIAEoCUgCiAEBEhkKDGRpcmVjdGl2ZV9pZBgEIAEoCUgDiAEBEhQKB3Nlc3Npb24YBSABKAlIBIgBARIRCglwYXJrZWRfYXQYBiABKAkSDgoGcmVhc29uGAcgASgJQgsKCV9vZmZlcl9pZEIGCgRfb2lkQgkKB19kb21haW5CDwoNX2RpcmVjdGl2ZV9pZEIKCghfc2Vzc2lvbiJPChtFbmNvZGVSZWZ1c2FsVmVyZGljdFJlcXVlc3QSMAoHdmVyZGljdBgBIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5SZWZ1c2FsVmVyZGljdCI0ChxJbnNwZWN0UmVmdXNhbFZlcmRpY3RSZXF1ZXN0EhQKDHZlcmRpY3RfdXNkYRgBIAEoDCLUAQoVQ29tcGFjdGlvbkVxdWl2YWxlbmNlEhMKC3NvdXJjZV9oZWFkGAEgASgJEhYKDnNvdXJjZV9nZW5lc2lzGAIgASgJEhYKDmNhbmRpZGF0ZV9oZWFkGAMgASgJEhkKEWNhbmRpZGF0ZV9nZW5lc2lzGAQgASgJEhYKDnNvdXJjZV9pbnRlbnRzGAUgASgEEhcKD2NhcnJpZWRfaW50ZW50cxgGIAEoBBIWCg5wYXJrZWRfaW50ZW50cxgHIAEoBBISCgplcXVpdmFsZW50GAggASgIIn0KIVByb3ZlQ29tcGFjdGlvbkVxdWl2YWxlbmNlUmVxdWVzdBITCgtzb3VyY2VfcmVwbxgBIAEoCRITCgtzb3VyY2VfaGVhZBgCIAEoCRIWCg5jYW5kaWRhdGVfcmVwbxgDIAEoCRIWCg5jYW5kaWRhdGVfaGVhZBgEIAEoCSI6Cg9SZWFkQmxvYlJlcXVlc3QSDAoEcmVwbxgBIAEoCRILCgNvaWQYAiABKAkSDAoEcGF0aBgDIAEoCSI0ChFSZXNvbHZlUmVmUmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKCXJlZmVyZW5jZRgCIAEoCSIvCg9MaXN0UmVmc1JlcXVlc3QSDAoEcmVwbxgBIAEoCRIOCgZwcmVmaXgYAiABKAkiQgoPV3JpdGVSZWZSZXF1ZXN0EgwKBHJlcG8YASABKAkSEQoJcmVmZXJlbmNlGAIgASgJEg4KBnRhcmdldBgDIAEoCSIzChBEZWxldGVSZWZSZXF1ZXN0EgwKBHJlcG8YASABKAkSEQoJcmVmZXJlbmNlGAIgASgJIikKCE1ldGFGaWxlEgwKBHBhdGgYASABKAkSDwoHY29udGVudBgCIAEoDCKuAQoWV3JpdGVNZXRhQ29tbWl0UmVxdWVzdBIMCgRyZXBvGAEgASgJEg8KB3BhcmVudHMYAiADKAkSKAoFZmlsZXMYAyADKAsyGS5ub21vcy5rZXJuZWwudjEuTWV0YUZpbGUSDwoHbWVzc2FnZRgEIAEoCRIUCgx0aW1lX3NlY29uZHMYBSABKBISFgoJcmVmZXJlbmNlGAYgASgJSACIAQFCDAoKX3JlZmVyZW5jZSJnChVMYXdDbG9zdXJlSW5mb1JlcXVlc3QSFAoMY2xvc3VyZV9maWxlGAEgASgJEjgKCmNhcGFiaWxpdHkYAiABKA4yJC5ub21vcy5rZXJuZWwudjEuS2VybmVsTGF3Q2FwYWJpbGl0eSKHAQoXQ2hlY2twb2ludEV4cG9ydFJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBIhChRzdGFnZWRfZnJvbnRpZXJfZmlsZRgCIAEoCUgAiAEBQhcKFV9zdGFnZWRfZnJvbnRpZXJfZmlsZSJBCgtGcm9udGllckhsYxIQCghwaHlzaWNhbBgBIAEoBBIPCgdsb2dpY2FsGAIgASgNEg8KB3JlcGxpY2EYAyABKAQi3QQKF1ZlcmlmaWVkRnJvbnRpZXJSZWNlaXB0EhYKDmZvcm1hdF92ZXJzaW9uGAEgASgNEgsKA29pZBgCIAEoCRIPCgdpbnRlbnRzGAMgASgEEhMKC3BsYW5zX3JlcnVuGAQgASgEEhwKD2NvbnRyb2xsZXJfaGFzaBgFIAEoCUgAiAEBEhkKEWluc3RhbGxlZF9kb21haW5zGAYgAygJEg4KBmxpbmVhchgHIAEoCBIzCghsYXN0X2hsYxgIIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Gcm9udGllckhsY0gBiAEBEhQKB2xhc3RfaWQYCSABKAlIAogBARIRCglzdGF0ZV9vaWQYCiABKAkSFAoMc3RhdGVfc2hhMjU2GAsgASgJEjkKDnN0YXRlX2xhc3RfaGxjGAwgASgLMhwubm9tb3Mua2VybmVsLnYxLkZyb250aWVySGxjSAOIAQESGgoNc3RhdGVfbGFzdF9pZBgNIAEoCUgEiAEBEhcKD21hbmlmZXN0X3NoYTI1NhgOIAEoCRIeChZsYXdfY2xvc3VyZV9pZGVudGl0aWVzGA8gAygJEhoKEnJlc29sdmFibGVfZG9tYWlucxgQIAMoCRIiChVwcm9qZWN0aW9uX3N0YXRlX3Jvb3QYESABKAlIBYgBAUISChBfY29udHJvbGxlcl9oYXNoQgsKCV9sYXN0X2hsY0IKCghfbGFzdF9pZEIRCg9fc3RhdGVfbGFzdF9obGNCEAoOX3N0YXRlX2xhc3RfaWRCGAoWX3Byb2plY3Rpb25fc3RhdGVfcm9vdCJFChVGb2xkRnJvbnRpZXJBZ2dyZWdhdGUSFAoMYWdncmVnYXRlX2lkGAEgASgJEhYKDmFnZ3JlZ2F0ZV91c2RhGAIgASgMIkEKF0ZvbGRGcm9udGllckZpbmdlcnByaW50EhEKCWludGVudF9pZBgBIAEoCRITCgtmaW5nZXJwcmludBgCIAEoCSLWAwoURm9sZEZyb250aWVyU25hcHNob3QSFgoOZm9ybWF0X3ZlcnNpb24YASABKA0SCwoDdGlwGAIgASgJEg8KB2dlbmVzaXMYAyABKAkSFQoNaGlzdG9yeV9kZXB0aBgEIAEoBBI6CgphZ2dyZWdhdGVzGAUgAygLMiYubm9tb3Mua2VybmVsLnYxLkZvbGRGcm9udGllckFnZ3JlZ2F0ZRI4Cg1obGNfd2F0ZXJtYXJrGAYgASgLMhwubm9tb3Mua2VybmVsLnYxLkZyb250aWVySGxjSACIAQESMwoIbGFzdF9obGMYByABKAsyHC5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJIbGNIAYgBARIUCgdsYXN0X2lkGAggASgJSAKIAQESFgoOc3RyaWtlX3RhcmdldHMYCSADKAkSRQoTaW50ZW50X2ZpbmdlcnByaW50cxgKIAMoCzIoLm5vbW9zLmtlcm5lbC52MS5Gb2xkRnJvbnRpZXJGaW5nZXJwcmludBIXCgpzdGF0ZV9yb290GAsgASgJSAOIAQFCEAoOX2hsY193YXRlcm1hcmtCCwoJX2xhc3RfaGxjQgoKCF9sYXN0X2lkQg0KC19zdGF0ZV9yb290IpsDChhTdG9yZWRDaGVja3BvaW50TWFuaWZlc3QSFgoOZm9ybWF0X3ZlcnNpb24YASABKA0SEwoGY3Vyc29yGAIgASgJSACIAQESGAoQY2hlY2twb2ludF9ieXRlcxgDIAEoBBIQCghsYXdfaGFzaBgEIAEoCRI7Cgtjb21wcmVzc2lvbhgFIAEoDjImLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50Q29tcHJlc3Npb24SEQoJcmF3X2J5dGVzGAYgASgEEhQKDHN0b3JlZF9ieXRlcxgHIAEoBBIdChVmcm9udGllcl9zdG9yZWRfYnl0ZXMYCCABKAQSFwoKc3RhdGVfcm9vdBgJIAEoCUgBiAEBElAKGXZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQYCiABKAsyKC5ub21vcy5rZXJuZWwudjEuVmVyaWZpZWRGcm9udGllclJlY2VpcHRIAogBAUIJCgdfY3Vyc29yQg0KC19zdGF0ZV9yb290QhwKGl92ZXJpZmllZF9mcm9udGllcl9yZWNlaXB0IsEDChdDaGVja3BvaW50SW1wb3J0UmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EhIKCGZyb250aWVyGAIgASgMSAASHgoUc3RhZ2VkX2Zyb250aWVyX2ZpbGUYBiABKAlIABITCgZjdXJzb3IYAyABKAlIAYgBARIXCgpzdGF0ZV9yb290GAQgASgJSAKIAQESDQoFc3BhbnMYBSABKAgSEQoEaGVhZBgHIAEoCUgDiAEBElAKGXZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQYCCABKAsyKC5ub21vcy5rZXJuZWwudjEuVmVyaWZpZWRGcm9udGllclJlY2VpcHRIBIgBARJKChN2ZXJpZmljYXRpb25fcG9saWN5GAkgASgOMi0ubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRWZXJpZmljYXRpb25Qb2xpY3lCEQoPZnJvbnRpZXJfc291cmNlQgkKB19jdXJzb3JCDQoLX3N0YXRlX3Jvb3RCBwoFX2hlYWRCHAoaX3ZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQiMQoWQ2FwYWNpdHlSZXNlcnZlUmVxdWVzdBIXCg9hZ2dyZWdhdGVfY291bnQYASABKAQiaQoSUmVzdG9yZU1haW5SZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSDAoEaGVhZBgCIAEoCRITCgtkaWFnbm9zdGljcxgDIAEoCCJpChtSZXNvbHZlU3RhdGVQb3NpdGlvblJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCgltYWluX2hlYWQYAiABKAkSFQoNaGludGVkX2NvbW1pdBgDIAEoCRISCgpzdGF0ZV9yb290GAQgASgJIuMLCg9DdXN0b2R5UmVzcG9uc2USOAoKcGFja19kZWx0YRgKIAEoCzIiLm5vbW9zLmtlcm5lbC52MS5QYWNrRGVsdGFSZXNwb25zZUgAEjgKCmFwcGx5X3BhY2sYCyABKAsyIi5ub21vcy5rZXJuZWwudjEuQXBwbHlQYWNrUmVzcG9uc2VIABI4CgpyZXBvX3N0YXRzGAwgASgLMiIubm9tb3Mua2VybmVsLnYxLlJlcG9TdGF0c1Jlc3BvbnNlSAASPgoNaW50ZW50c19hYm92ZRgNIAEoCzIlLm5vbW9zLmtlcm5lbC52MS5JbnRlbnRzQWJvdmVSZXNwb25zZUgAEkAKDmluc3BlY3RfY2hhbmdlGA4gASgLMiYubm9tb3Mua2VybmVsLnYxLkluc3BlY3RDaGFuZ2VSZXNwb25zZUgAEk8KFmVuY29kZV9yZWZ1c2FsX3ZlcmRpY3QYDyABKAsyLS5ub21vcy5rZXJuZWwudjEuRW5jb2RlUmVmdXNhbFZlcmRpY3RSZXNwb25zZUgAElEKF2luc3BlY3RfcmVmdXNhbF92ZXJkaWN0GBAgASgLMi4ubm9tb3Mua2VybmVsLnYxLkluc3BlY3RSZWZ1c2FsVmVyZGljdFJlc3BvbnNlSAASNgoJcmVhZF9ibG9iGBEgASgLMiEubm9tb3Mua2VybmVsLnYxLlJlYWRCbG9iUmVzcG9uc2VIABI6CgtyZXNvbHZlX3JlZhgSIAEoCzIjLm5vbW9zLmtlcm5lbC52MS5SZXNvbHZlUmVmUmVzcG9uc2VIABI2CglsaXN0X3JlZnMYEyABKAsyIS5ub21vcy5rZXJuZWwudjEuTGlzdFJlZnNSZXNwb25zZUgAEjIKCXdyaXRlX3JlZhgUIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5BY2tub3dsZWRnZWRIABIzCgpkZWxldGVfcmVmGBUgASgLMh0ubm9tb3Mua2VybmVsLnYxLkFja25vd2xlZGdlZEgAEkUKEXdyaXRlX21ldGFfY29tbWl0GBYgASgLMigubm9tb3Mua2VybmVsLnYxLldyaXRlTWV0YUNvbW1pdFJlc3BvbnNlSAASQwoQbGF3X2Nsb3N1cmVfaW5mbxgXIAEoCzInLm5vbW9zLmtlcm5lbC52MS5MYXdDbG9zdXJlSW5mb1Jlc3BvbnNlSAASRgoRY2hlY2twb2ludF9leHBvcnQYGCABKAsyKS5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludEV4cG9ydFJlc3BvbnNlSAASRgoRY2hlY2twb2ludF9pbXBvcnQYGSABKAsyKS5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludEltcG9ydFJlc3BvbnNlSAASRAoQY2FwYWNpdHlfcmVzZXJ2ZRgaIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5DYXBhY2l0eVJlc2VydmVSZXNwb25zZUgAEjwKDHJlc3RvcmVfbWFpbhgbIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5SZXN0b3JlTWFpblJlc3BvbnNlSAASTwoWcmVzb2x2ZV9zdGF0ZV9wb3NpdGlvbhgcIAEoCzItLm5vbW9zLmtlcm5lbC52MS5SZXNvbHZlU3RhdGVQb3NpdGlvblJlc3BvbnNlSAASSAoScmVzaWRlbnRfZm9vdHByaW50GB0gASgLMioubm9tb3Mua2VybmVsLnYxLlJlc2lkZW50Rm9vdHByaW50UmVzcG9uc2VIABJCCg9oaXN0b3J5X3N1bW1hcnkYHiABKAsyJy5ub21vcy5rZXJuZWwudjEuSGlzdG9yeVN1bW1hcnlSZXNwb25zZUgAElsKHHByb3ZlX2NvbXBhY3Rpb25fZXF1aXZhbGVuY2UYHyABKAsyMy5ub21vcy5rZXJuZWwudjEuUHJvdmVDb21wYWN0aW9uRXF1aXZhbGVuY2VSZXNwb25zZUgAQgsKCW9wZXJhdGlvbiIwChFQYWNrRGVsdGFSZXNwb25zZRIMCgRwYWNrGAEgASgMEg0KBWJ5dGVzGAIgASgEIjwKEUFwcGx5UGFja1Jlc3BvbnNlEhQKDG9iamVjdF9jb3VudBgBIAEoBBIRCglwYWNrX2hhc2gYAiABKAkipwEKEVJlcG9TdGF0c1Jlc3BvbnNlEhMKC3RvdGFsX2J5dGVzGAEgASgEEhQKDG9iamVjdF9ieXRlcxgCIAEoBBIVCg1sb29zZV9vYmplY3RzGAMgASgEEhMKC2xvb3NlX2J5dGVzGAQgASgEEhIKCnBhY2tfZmlsZXMYBSABKAQSEgoKcGFja19ieXRlcxgGIAEoBBITCgtpbmRleF9ieXRlcxgHIAEoBCLiAQoMSW50ZW50UmVjb3JkEgsKA29pZBgBIAEoCRIRCglpbnRlbnRfaWQYAiABKAkSDgoGZG9tYWluGAMgASgJEhEKCWRpcmVjdGl2ZRgEIAEoCRITCgtjaGFuZ2VfdXNkYRgFIAEoDBIuCghzZW1hbnRpYxgGIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBJKChV0cmFuc3BvcnRfcmVxdWlyZW1lbnQYByABKA4yKy5ub21vcy5rZXJuZWwudjEuSW50ZW50VHJhbnNwb3J0UmVxdWlyZW1lbnQiRgoUSW50ZW50c0Fib3ZlUmVzcG9uc2USLgoHaW50ZW50cxgBIAMoCzIdLm5vbW9zLmtlcm5lbC52MS5JbnRlbnRSZWNvcmQidAoWSGlzdG9yeVN1bW1hcnlSZXNwb25zZRIMCgRoZWFkGAEgASgJEg4KBm9sZGVzdBgCIAEoCRIUCgxjb21taXRfY291bnQYAyABKAQSEAoIY29tcGxldGUYBCABKAgSFAoMcmVhY2hlZF9iYXNlGAUgASgIIkIKE05vbWluYWxDYWxsSWRlbnRpdHkSEwoLZG9tYWluX3BhdGgYASABKAkSFgoOZGlyZWN0aXZlX3BhdGgYAiABKAkiiAEKGExpZmVjeWNsZUluc3RhbGxJZGVudGl0eRIfChd0YXJnZXRfY2xvc3VyZV9pZGVudGl0eRgBIAEoCRIUCgxpbnN0YWxsZWRfYnkYAiABKAkSNQoFcGhhc2UYAyABKA4yJi5ub21vcy5rZXJuZWwudjEuTGlmZWN5Y2xlSW5zdGFsbFBoYXNlIloKHVdvcmtzcGFjZVJlc2lkZW5jeVJlcXVpcmVtZW50EhEKCXdvcmtzcGFjZRgBIAEoCRITCgtzb3VyY2VfaGVhZBgCIAEoCRIRCglmb2xkX3Jvb3QYAyABKAkitAIKFUluc3BlY3RDaGFuZ2VSZXNwb25zZRIuCghzZW1hbnRpYxgBIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBIRCglpbnRlbnRfaWQYAiABKAkSMgoEY2FsbBgDIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5Ob21pbmFsQ2FsbElkZW50aXR5EhAKCGF1dGhvcmVkGAQgASgIEkQKEWxpZmVjeWNsZV9pbnN0YWxsGAUgASgLMikubm9tb3Mua2VybmVsLnYxLkxpZmVjeWNsZUluc3RhbGxJZGVudGl0eRJMChRyZXF1aXJlZF9yZXNpZGVuY2llcxgGIAMoCzIuLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VSZXNpZGVuY3lSZXF1aXJlbWVudCJMChxSZXNvbHZlU3RhdGVQb3NpdGlvblJlc3BvbnNlEhoKDXJlc29sdmVkX2hlYWQYASABKAlIAIgBAUIQCg5fcmVzb2x2ZWRfaGVhZCI0ChxFbmNvZGVSZWZ1c2FsVmVyZGljdFJlc3BvbnNlEhQKDHZlcmRpY3RfdXNkYRgBIAEoDCJRCh1JbnNwZWN0UmVmdXNhbFZlcmRpY3RSZXNwb25zZRIwCgd2ZXJkaWN0GAEgASgLMh8ubm9tb3Mua2VybmVsLnYxLlJlZnVzYWxWZXJkaWN0InUKIlByb3ZlQ29tcGFjdGlvbkVxdWl2YWxlbmNlUmVzcG9uc2USOAoIZXZpZGVuY2UYASABKAsyJi5ub21vcy5rZXJuZWwudjEuQ29tcGFjdGlvbkVxdWl2YWxlbmNlEhUKDWV2aWRlbmNlX3VzZGEYAiABKAwiLwoQUmVhZEJsb2JSZXNwb25zZRINCgVmb3VuZBgBIAEoCBIMCgRibG9iGAIgASgMIi4KElJlc29sdmVSZWZSZXNwb25zZRIQCgNvaWQYASABKAlIAIgBAUIGCgRfb2lkIisKCVJlZlJlY29yZBIRCglyZWZlcmVuY2UYASABKAkSCwoDb2lkGAIgASgJIjwKEExpc3RSZWZzUmVzcG9uc2USKAoEcmVmcxgBIAMoCzIaLm5vbW9zLmtlcm5lbC52MS5SZWZSZWNvcmQiDgoMQWNrbm93bGVkZ2VkIiYKF1dyaXRlTWV0YUNvbW1pdFJlc3BvbnNlEgsKA29pZBgBIAEoCSKDAQoWTGF3Q2xvc3VyZUluZm9SZXNwb25zZRIQCghpZGVudGl0eRgBIAEoCRIZChFyb290X2xvZ2ljYWxfcGF0aBgCIAEoCRITCgthc3NldF9jb3VudBgDIAEoBBISCgpwcmltX2NvdW50GAQgASgEEhMKC2RvbWFpbl9rZXlzGAUgAygJIt8DChhDaGVja3BvaW50RXhwb3J0UmVzcG9uc2USDQoFZW1wdHkYASABKAgSEwoGY3Vyc29yGAIgASgJSACIAQESEAoIZnJvbnRpZXIYAyABKAwSFwoKc3RhdGVfcm9vdBgEIAEoCUgBiAEBEhIKCnN0YXRlX3RyZWUYBSABKAgSDgoGcGlubmVkGAYgASgIEhsKE3JlYWRfaW5kZXhfc25hcHNob3QYByABKAgSIwobcmVhZF9pbmRleF9zbmFwc2hvdF9wZW5kaW5nGAggASgIEiQKF3JlYWRfaW5kZXhfc3FsaXRlX2J5dGVzGAkgASgESAKIAQESJQoYcmVhZF9pbmRleF9jdXN0b2R5X2J5dGVzGAogASgESAOIAQESUAoZdmVyaWZpZWRfZnJvbnRpZXJfcmVjZWlwdBgLIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5WZXJpZmllZEZyb250aWVyUmVjZWlwdEgEiAEBQgkKB19jdXJzb3JCDQoLX3N0YXRlX3Jvb3RCGgoYX3JlYWRfaW5kZXhfc3FsaXRlX2J5dGVzQhsKGV9yZWFkX2luZGV4X2N1c3RvZHlfYnl0ZXNCHAoaX3ZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQi1wIKGENoZWNrcG9pbnRJbXBvcnRSZXNwb25zZRIQCghyZXN0b3JlZBgBIAEoCBITCgZyZWFzb24YAiABKAlIAIgBARIXCg9mcm9udGllcl9zZWVkZWQYAyABKAgSJQodZnJvbnRpZXJfdmVyaWZpY2F0aW9uX3BlbmRpbmcYBCABKAgSFwoPYWdncmVnYXRlX2NvdW50GAUgASgEEisKBXNwYW5zGAYgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EhMKBmN1cnNvchgHIAEoCUgBiAEBEhEKCXJlYWRfb25seRgIIAEoCBIXCg9sYXp5X3JlYWRfaW5kZXgYCSABKAgSNwoJYXNzdXJhbmNlGAogASgOMiQubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRBc3N1cmFuY2VCCQoHX3JlYXNvbkIJCgdfY3Vyc29yIkoKF0NhcGFjaXR5UmVzZXJ2ZVJlc3BvbnNlEhcKD2FnZ3JlZ2F0ZV9jb3VudBgBIAEoBBIWCg5yZXNlcnZlZF9ieXRlcxgCIAEoBCL5AgoQUmVzdG9yZU1haW5TcGFucxIQCgh0b3RhbF91cxgBIAEoBBIaChJsaXZlX3JlZl9sb29rdXBfdXMYAiABKAQSGAoQdGFyZ2V0X2RlY29kZV91cxgDIAEoBBIkChxjdXN0b2R5X2NvbXBsZXRlbmVzc19yZWFkX3VzGAQgASgEEhkKEXF1YXJhbnRpbmVfcmVmX3VzGAUgASgEEiUKHWNoYWluX3NpZ25hdHVyZV9sYXdfcmVwbGF5X3VzGAYgASgEEhkKEXZlcmRpY3RfZGVjb2RlX3VzGAcgASgEEiMKG3Byb21vdGVfYW5kX2NsZWFudXBfcmVmc191cxgIIAEoBBIbChNmcm9udGllcl9yZWJ1aWxkX3VzGAkgASgEEhkKEWZyb250aWVyX3N0b3JlX3VzGAogASgEEj0KDHZlcmlmaWNhdGlvbhgLIAEoCzInLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpbkRpYWdub3N0aWNzIu8BChNSZXN0b3JlTWFpblJlc3BvbnNlEgwKBGhlYWQYASABKAkSEAoIdmVyaWZpZWQYAiABKAgSDAoEd2FsaxgDIAEoCRIwCgVzcGFucxgEIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5SZXN0b3JlTWFpblNwYW5zEi0KB3ZlcmRpY3QYBSABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSNwoJYXNzdXJhbmNlGAYgASgOMiQubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRBc3N1cmFuY2USEAoIYWNjZXB0ZWQYByABKAgimwIKCk5vbW9zVmFsdWUSJQoEbnVsbBgBIAEoCzIVLm5vbW9zLmtlcm5lbC52MS5OdWxsSAASEQoHYm9vbGVhbhgCIAEoCEgAEhgKDnNpZ25lZF9pbnRlZ2VyGAMgASgSSAASGgoQdW5zaWduZWRfaW50ZWdlchgEIAEoBEgAEhgKDmZsb2F0aW5nX3BvaW50GAUgASgBSAASDgoEdGV4dBgGIAEoCUgAEg8KBWJ5dGVzGAcgASgMSAASKgoEbGlzdBgIIAEoCzIaLm5vbW9zLmtlcm5lbC52MS5Ob21vc0xpc3RIABIuCgZvYmplY3QYCSABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3RIAEIGCgRraW5kIgYKBE51bGwiOAoJTm9tb3NMaXN0EisKBnZhbHVlcxgBIAMoCzIbLm5vbW9zLmtlcm5lbC52MS5Ob21vc1ZhbHVlIpMBCgtOb21vc1N0cnVjdBI4CgZmaWVsZHMYASADKAsyKC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QuRmllbGRzRW50cnkaSgoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEioKBXZhbHVlGAIgASgLMhsubm9tb3Mua2VybmVsLnYxLk5vbW9zVmFsdWU6AjgBKuoBChJCaXJ0aE91dGNvbWVTdGF0dXMSJAogQklSVEhfT1VUQ09NRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIdChlCSVJUSF9PVVRDT01FX1NUQVRVU19CT1JOEAESIQodQklSVEhfT1VUQ09NRV9TVEFUVVNfREVGRVJSRUQQAhIfChtCSVJUSF9PVVRDT01FX1NUQVRVU19GQUlMRUQQAxIgChxCSVJUSF9PVVRDT01FX1NUQVRVU19SRUZVU0VEEAQSKQolQklSVEhfT1VUQ09NRV9TVEFUVVNfVU5XQVJSQU5URURfQ0VSVBAFKukSChFLZXJuZWxSZWZ1c2FsQ29kZRIjCh9LRVJORUxfUkVGVVNBTF9DT0RFX1VOU1BFQ0lGSUVEEAASJQohS0VSTkVMX1JFRlVTQUxfQ09ERV9CQURfU0lHTkFUVVJFEAESJAogS0VSTkVMX1JFRlVTQUxfQ09ERV9VTkFVVEhPUklaRUQQAhInCiNLRVJORUxfUkVGVVNBTF9DT0RFX1BPTElDWV9ESVNBQkxFRBADEioKJktFUk5FTF9SRUZVU0FMX0NPREVfVU5DRVJUSUZJRURfUE9MSUNZEAQSIwofS0VSTkVMX1JFRlVTQUxfQ09ERV9SRUZFUkVOVElBTBAFEi8KK0tFUk5FTF9SRUZVU0FMX0NPREVfUE9JTlRfU1RBVEVfVU5BVkFJTEFCTEUQBhIkCiBLRVJORUxfUkVGVVNBTF9DT0RFX0NBUF9FWENFRURFRBAHEi0KKUtFUk5FTF9SRUZVU0FMX0NPREVfQ0FQX0NPVU5UX1VOQVZBSUxBQkxFEAgSKQolS0VSTkVMX1JFRlVTQUxfQ09ERV9FVklERU5DRV9VTkJBQ0tFRBAJEiYKIktFUk5FTF9SRUZVU0FMX0NPREVfT1JQSEFOX1JFQ0VJUFQQChI2CjJLRVJORUxfUkVGVVNBTF9DT0RFX1JFQ0VJUFRfT05fVEVSTUlOQUxfT0JMSUdBVElPThALEiIKHktFUk5FTF9SRUZVU0FMX0NPREVfTk9UX01JTlRFRBAMEigKJEtFUk5FTF9SRUZVU0FMX0NPREVfRE9NQUlOX0xJRkVDWUNMRRANEikKJUtFUk5FTF9SRUZVU0FMX0NPREVfVFlQRV9UQUdfTUlTTUFUQ0gQDhIsCihLRVJORUxfUkVGVVNBTF9DT0RFX1JFVElSRURfUkVBRF9TVVJGQUNFEA8SMAosS0VSTkVMX1JFRlVTQUxfQ09ERV9DUk9TU19XT1JLU1BBQ0VfREVDTElORUQQEBIrCidLRVJORUxfUkVGVVNBTF9DT0RFX0FHR1JFR0FURV9JTlZBUklBTlQQERIrCidLRVJORUxfUkVGVVNBTF9DT0RFX1dPUktTUEFDRV9JTlZBUklBTlQQEhIuCipLRVJORUxfUkVGVVNBTF9DT0RFX0NBUFRVUkVEX1JFQURfQ09ORkxJQ1QQExIyCi5LRVJORUxfUkVGVVNBTF9DT0RFX0NPTkZMSUNUX1NOQVBTSE9UX1JFUVVJUkVEEBQSNAowS0VSTkVMX1JFRlVTQUxfQ09ERV9DT05GTElDVF9TTkFQU0hPVF9VTkRFQ0xBUkVEEBUSMQotS0VSTkVMX1JFRlVTQUxfQ09ERV9DT05GTElDVF9TTkFQU0hPVF9JTlZBTElEEBYSLworS0VSTkVMX1JFRlVTQUxfQ09ERV9DT05GTElDVF9TTkFQU0hPVF9TVEFMRRAXEjAKLEtFUk5FTF9SRUZVU0FMX0NPREVfQ0FQVFVSRURfUkVBRF9VTkRFQ0xBUkVEEBgSLQopS0VSTkVMX1JFRlVTQUxfQ09ERV9DQVBUVVJFRF9SRUFEX1BSSVZBVEUQGRIwCixLRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEVEX1JFQURfVU5ERUNMQVJFRBAaEjMKL0tFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNURURfUkVBRF9VTlRSVVNURURfS0VZEBsSNgoyS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX1VOVFJVU1RFRF9TT1VSQ0UQHBIsCihLRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEVEX1JFQURfRk9SR0VEEB0SKwonS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX1NUQUxFEB4SLgoqS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX09WRVJTSVpFEB8SNwozS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX0RJU0hPTk9SRURfU09VUkNFECASNQoxS0VSTkVMX1JFRlVTQUxfQ09ERV9FUVVJVk9DQVRJT05fRVZJREVOQ0VfSU5WQUxJRBAhEjMKL0tFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNUQVRJT05fUkVDRUlQVF9JTlZBTElEECISKwonS0VSTkVMX1JFRlVTQUxfQ09ERV9LRVlfUk9TVEVSX01JU01BVENIECMSLworS0VSTkVMX1JFRlVTQUxfQ09ERV9LRVlfRVBPQ0hfTk9UX01PTk9UT05JQxAkEikKJUtFUk5FTF9SRUZVU0FMX0NPREVfV1JJVEVfRVBPQ0hfU1RBTEUQJRItCilLRVJORUxfUkVGVVNBTF9DT0RFX0VOVkVMT1BFX1NJRF9NSVNNQVRDSBAmEjIKLktFUk5FTF9SRUZVU0FMX0NPREVfUkVWT0tFRF9NRU1CRVJfUkVTVVJSRUNURUQQJxIoCiRLRVJORUxfUkVGVVNBTF9DT0RFX0ZPUkdFRF9QUklOQ0lQQUwQKBIoCiRLRVJORUxfUkVGVVNBTF9DT0RFX09XTkVEX0tFWV9BTkNIT1IQKRImCiJLRVJORUxfUkVGVVNBTF9DT0RFX09XTkVEX1JFQ09WRVJZECoSLAooS0VSTkVMX1JFRlVTQUxfQ09ERV9TVVJGQUNFRF9CQVNJU19BSEVBRBArEjIKLktFUk5FTF9SRUZVU0FMX0NPREVfU0lHTkVSX0VQT0NIX09VVF9PRl9XSU5ET1cQLBImCiJLRVJORUxfUkVGVVNBTF9DT0RFX0VWT0xWRV9SRUZVU0VEEC0SKwonS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RBVElPTl9JTlZBTElEEC4SLQopS0VSTkVMX1JFRlVTQUxfQ09ERV9QQVJFTlRfRElEX05PVF9BVFRFU1QQLxIpCiVLRVJORUxfUkVGVVNBTF9DT0RFX0NFUlRfQ0hBSU5fQlJPS0VOEDASKgomS0VSTkVMX1JFRlVTQUxfQ09ERV9OT1RfUk9PVEVEX0FUX1JPT1QQMRIqCiZLRVJORUxfUkVGVVNBTF9DT0RFX0RFTEVHQVRJT05fSU5WQUxJRBAyEiUKIUtFUk5FTF9SRUZVU0FMX0NPREVfUExBTl9SRUpFQ1RFRBAzKooBCg9WZXJpZnlDaGFpbldhbGsSIQodVkVSSUZZX0NIQUlOX1dBTEtfVU5TUEVDSUZJRUQQABIaChZWRVJJRllfQ0hBSU5fV0FMS19GVUxMEAESHAoYVkVSSUZZX0NIQUlOX1dBTEtfU1VGRklYEAISGgoWVkVSSUZZX0NIQUlOX1dBTEtfTUVNTxADKrcBChdNb2RlbExpZmVjeWNsZU9wZXJhdGlvbhIpCiVNT0RFTF9MSUZFQ1lDTEVfT1BFUkFUSU9OX1VOU1BFQ0lGSUVEEAASJQohTU9ERUxfTElGRUNZQ0xFX09QRVJBVElPTl9JTlNUQUxMEAESIwofTU9ERUxfTElGRUNZQ0xFX09QRVJBVElPTl9TVEFHRRACEiUKIU1PREVMX0xJRkVDWUNMRV9PUEVSQVRJT05fUFJPTU9URRADKosGCh9Qcm92aWRlclRva2VuVmVyaWZpY2F0aW9uU3RhdHVzEjIKLlBST1ZJREVSX1RPS0VOX1ZFUklGSUNBVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIsCihQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX1ZBTElEEAESNgoyUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19OT19NQVRDSElOR19LRVkQAhIuCipQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX0VYUElSRUQQAxI0CjBQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX05PVF9ZRVRfVkFMSUQQBBI2CjJQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX0lTU1VFUl9NSVNNQVRDSBAFEjgKNFBST1ZJREVSX1RPS0VOX1ZFUklGSUNBVElPTl9TVEFUVVNfQVVESUVOQ0VfTUlTTUFUQ0gQBhI0CjBQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX0JBRF9TSUdOQVRVUkUQBxIwCixQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX01BTEZPUk1FRBAIEjwKOFBST1ZJREVSX1RPS0VOX1ZFUklGSUNBVElPTl9TVEFUVVNfVU5TVVBQT1JURURfQUxHT1JJVEhNEAkSLgoqUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19CQURfS0VZEAoSNgoyUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19NSVNTSU5HX1NVQkpFQ1QQCxIyCi5QUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX05PX1ZFUklGSUVSEAwSNAowUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19NSVNTSU5HX1RPS0VOEA0qhAEKEVF1ZXJ5UmVzdWx0Rm9ybWF0EiMKH1FVRVJZX1JFU1VMVF9GT1JNQVRfVU5TUEVDSUZJRUQQABIkCiBRVUVSWV9SRVNVTFRfRk9STUFUX0xFR0FDWV9WQUxVRRABEiQKIFFVRVJZX1JFU1VMVF9GT1JNQVRfTk9NSU5BTF9VU0RBEAIqjAwKDlF1ZXJ5T3BlcmF0aW9uEh8KG1FVRVJZX09QRVJBVElPTl9VTlNQRUNJRklFRBAAEhwKGFFVRVJZX09QRVJBVElPTl9FWFRSRU1VTRABEiAKHFFVRVJZX09QRVJBVElPTl9SRUFEX1BPU1RVUkUQBBIfChtRVUVSWV9PUEVSQVRJT05fQ1VSUkVOVF9MQVcQBRIjCh9RVUVSWV9PUEVSQVRJT05fSU5URVJGQUNFX09GRkVSEAYSJwojUVVFUllfT1BFUkFUSU9OX1JFTEFUSU9OX0dBVEVfT0ZGRVIQBxIdChlRVUVSWV9PUEVSQVRJT05fU0NFTkVfTEFXEAgSIQodUVVFUllfT1BFUkFUSU9OX0lOU1RBTExFRF9MQVcQCRIcChhRVUVSWV9PUEVSQVRJT05fREVTQ1JJQkUQChIjCh9RVUVSWV9PUEVSQVRJT05fS0VSTkVMX1JFU09VUkNFEAsSIwofUVVFUllfT1BFUkFUSU9OX0RFVkVMT1BFUl9TUEFOUxAMEikKJVFVRVJZX09QRVJBVElPTl9ERUNMQVJFRF9DQVBBQklMSVRJRVMQDRIdChlRVUVSWV9PUEVSQVRJT05fUkVBRElORVNTEA4SJAogUVVFUllfT1BFUkFUSU9OX1BST0pFQ1RJT05fU1RBVFMQDxIlCiFRVUVSWV9PUEVSQVRJT05fTUVNT1JZX0RST1BfUFJPQkUQEBIYChRRVUVSWV9PUEVSQVRJT05fV0FSTRAREhsKF1FVRVJZX09QRVJBVElPTl9SRUZSRVNIEBISIAocUVVFUllfT1BFUkFUSU9OX1ZFUklGWV9DSEFJThATEiUKIVFVRVJZX09QRVJBVElPTl9ISVNUT1JZX1BSRUZMSUdIVBAUEhkKFVFVRVJZX09QRVJBVElPTl9ST1VURRAVEhgKFFFVRVJZX09QRVJBVElPTl9NSU5UEBYSIQodUVVFUllfT1BFUkFUSU9OX0NSWVBUT19LRVlHRU4QFxIlCiFRVUVSWV9PUEVSQVRJT05fQ1JZUFRPX1NFQUxfRklFTEQQGBIsCihRVUVSWV9PUEVSQVRJT05fQ1JZUFRPX0JMSU5EX0lOREVYX1RPS0VOEBkSKgomUVVFUllfT1BFUkFUSU9OX0NSWVBUT19PV05FRF9TQ09QRV9LRVkQGhIvCitRVUVSWV9PUEVSQVRJT05fQ1JZUFRPX09XTkVEX0RFVklDRV9SRVFVRVNUEBsSMQotUVVFUllfT1BFUkFUSU9OX0NSWVBUT19PV05FRF9QUkVQQVJFX0FQUFJPVkFMEBwSMQotUVVFUllfT1BFUkFUSU9OX0NSWVBUT19PV05FRF9QUkVQQVJFX1JFQ09WRVJZEB0SIwofUVVFUllfT1BFUkFUSU9OX0NSWVBUT19XUkFQX0tFWRAeEiUKIVFVRVJZX09QRVJBVElPTl9DUllQVE9fVU5XUkFQX0tFWRAfEiEKHVFVRVJZX09QRVJBVElPTl9BVVRIT1JfS0VZR0VOECASJAogUVVFUllfT1BFUkFUSU9OX0FUVEVTVEFUSU9OX1NJR04QIRIgChxRVUVSWV9PUEVSQVRJT05fUkVDRUlQVF9QQVRIECISHQoZUVVFUllfT1BFUkFUSU9OX0NFUlRfU0lHThAjEiUKIVFVRVJZX09QRVJBVElPTl9CSVJUSF9UUlVTVF9TVEFURRAkEiEKHVFVRVJZX09QRVJBVElPTl9FUkFfQ0VSVF9TSUdOECUSKAokUVVFUllfT1BFUkFUSU9OX0RFTEVHQVRJT05fQ0VSVF9TSUdOECYSKQolUVVFUllfT1BFUkFUSU9OX0NBTk9OSUNBTElaRV9GUk9OVElFUhAnEisKJ1FVRVJZX09QRVJBVElPTl9DQU5PTklDQUxJWkVfUFJPSkVDVElPThAoIgQIAhACIgQIAxADKiFRVUVSWV9PUEVSQVRJT05fUEVORElOR19DT05GTElDVFMqKFFVRVJZX09QRVJBVElPTl9QRU5ESU5HX0NPTkZMSUNUX1NVTU1BUlkq0gIKFVJlc2lkZW50Q29tcG9uZW50S2luZBInCiNSRVNJREVOVF9DT01QT05FTlRfS0lORF9VTlNQRUNJRklFRBAAEiYKIlJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX0ZPTERfU1RBVEUQARItCilSRVNJREVOVF9DT01QT05FTlRfS0lORF9SRUFEX01PREVMX1NRTElURRACEi4KKlJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX1JFQURfTU9ERUxfSU5ERVhFUxADEi0KKVJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX1NIQVJFRF9BVFRSSUJVVEVEEAQSLAooUkVTSURFTlRfQ09NUE9ORU5UX0tJTkRfV09SS1NQQUNFX0NBQ0hFUxAFEiwKKFJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX0dJVF9PQkpFQ1RfQ0FDSEUQBipsChNLZXJuZWxMYXdDYXBhYmlsaXR5EiUKIUtFUk5FTF9MQVdfQ0FQQUJJTElUWV9VTlNQRUNJRklFRBAAEi4KKktFUk5FTF9MQVdfQ0FQQUJJTElUWV9TVEFHRV9aRVJPX0JPT1RTVFJBUBABKlkKFUNoZWNrcG9pbnRDb21wcmVzc2lvbhIfChtDSEVDS1BPSU5UX0NPTVBSRVNTSU9OX05PTkUQABIfChtDSEVDS1BPSU5UX0NPTVBSRVNTSU9OX0daSVAQASqRAQocQ2hlY2twb2ludFZlcmlmaWNhdGlvblBvbGljeRIzCi9DSEVDS1BPSU5UX1ZFUklGSUNBVElPTl9QT0xJQ1lfVkVSSUZZX0NBTk9OSUNBTBAAEjwKOENIRUNLUE9JTlRfVkVSSUZJQ0FUSU9OX1BPTElDWV9UUlVTVF9QUkVWSU9VU0xZX1ZFUklGSUVEEAEqgAEKE0NoZWNrcG9pbnRBc3N1cmFuY2USJAogQ0hFQ0tQT0lOVF9BU1NVUkFOQ0VfVU5TUEVDSUZJRUQQABIgChxDSEVDS1BPSU5UX0FTU1VSQU5DRV9UUlVTVEVEEAESIQodQ0hFQ0tQT0lOVF9BU1NVUkFOQ0VfVkVSSUZJRUQQAiqoAQoaSW50ZW50VHJhbnNwb3J0UmVxdWlyZW1lbnQSLAooSU5URU5UX1RSQU5TUE9SVF9SRVFVSVJFTUVOVF9VTlNQRUNJRklFRBAAEi4KKklOVEVOVF9UUkFOU1BPUlRfUkVRVUlSRU1FTlRfU0VBTEVEX0NIQU5HRRABEiwKKElOVEVOVF9UUkFOU1BPUlRfUkVRVUlSRU1FTlRfQ09NTUlUX1RSRUUQAiqJAQoVTGlmZWN5Y2xlSW5zdGFsbFBoYXNlEicKI0xJRkVDWUNMRV9JTlNUQUxMX1BIQVNFX1VOU1BFQ0lGSUVEEAASIgoeTElGRUNZQ0xFX0lOU1RBTExfUEhBU0VfQUNUSVZFEAESIwofTElGRUNZQ0xFX0lOU1RBTExfUEhBU0VfUEVORElORxACMlkKEk5vbW9zS2VybmVsU2VydmljZRJDCgRDYWxsEhwubm9tb3Mua2VybmVsLnYxLkNhbGxSZXF1ZXN0Gh0ubm9tb3Mua2VybmVsLnYxLkNhbGxSZXNwb25zZWIGcHJvdG8z");
|
|
9749
10888
|
var CallRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 0);
|
|
9750
10889
|
var CallResponseSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 1);
|
|
9751
10890
|
var PrepareRemoteOfferRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 19);
|
|
9752
10891
|
var PrepareRemoteOfferResponseSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 21);
|
|
9753
|
-
var
|
|
9754
|
-
var
|
|
9755
|
-
var
|
|
9756
|
-
var
|
|
9757
|
-
var
|
|
9758
|
-
var
|
|
9759
|
-
var
|
|
9760
|
-
var
|
|
9761
|
-
var
|
|
9762
|
-
var
|
|
9763
|
-
var
|
|
9764
|
-
var
|
|
9765
|
-
var
|
|
9766
|
-
var
|
|
9767
|
-
var
|
|
9768
|
-
var
|
|
9769
|
-
var
|
|
9770
|
-
var
|
|
9771
|
-
var
|
|
9772
|
-
var
|
|
9773
|
-
var
|
|
9774
|
-
var
|
|
9775
|
-
var
|
|
9776
|
-
var
|
|
9777
|
-
var
|
|
9778
|
-
var
|
|
9779
|
-
var
|
|
9780
|
-
var
|
|
9781
|
-
var
|
|
9782
|
-
var
|
|
9783
|
-
var
|
|
9784
|
-
var
|
|
9785
|
-
var
|
|
9786
|
-
var
|
|
9787
|
-
var
|
|
9788
|
-
var
|
|
9789
|
-
var
|
|
9790
|
-
var
|
|
9791
|
-
var
|
|
9792
|
-
var
|
|
9793
|
-
var
|
|
9794
|
-
var
|
|
9795
|
-
var
|
|
9796
|
-
var
|
|
9797
|
-
var
|
|
9798
|
-
var
|
|
9799
|
-
var
|
|
9800
|
-
var
|
|
9801
|
-
var
|
|
9802
|
-
var
|
|
9803
|
-
var
|
|
9804
|
-
var
|
|
9805
|
-
var
|
|
10892
|
+
var ApplyWorkspaceEffectRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 38);
|
|
10893
|
+
var ApplyWorkspaceEffectResponseSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 39);
|
|
10894
|
+
var WorkspaceTargetSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 43);
|
|
10895
|
+
var InitializeWorkspaceRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 45);
|
|
10896
|
+
var DirectiveCallSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 47);
|
|
10897
|
+
var AuthoringOptionsSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 48);
|
|
10898
|
+
var CapturedClockSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 49);
|
|
10899
|
+
var BirthCertificateSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 50);
|
|
10900
|
+
var SignBirthCertificateRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 51);
|
|
10901
|
+
var OfferRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 54);
|
|
10902
|
+
var QueryRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 57);
|
|
10903
|
+
var QueryAuthoritySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 64);
|
|
10904
|
+
var InjectedKeySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 65);
|
|
10905
|
+
var RowsQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 66);
|
|
10906
|
+
var PageQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 67);
|
|
10907
|
+
var ByIdQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 68);
|
|
10908
|
+
var ByTypeQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 69);
|
|
10909
|
+
var TallyQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 74);
|
|
10910
|
+
var SpatialQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 75);
|
|
10911
|
+
var PendingConflictsQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 76);
|
|
10912
|
+
var PendingConflictSummaryQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 77);
|
|
10913
|
+
var NamedQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 78);
|
|
10914
|
+
var FrontierTransitionRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 79);
|
|
10915
|
+
var AuthorizationObjectSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 84);
|
|
10916
|
+
var AuthorizationSubjectSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 85);
|
|
10917
|
+
var AuthorizationConsistencySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 87);
|
|
10918
|
+
var AuthorizationCheckRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 89);
|
|
10919
|
+
var AuthorizationExpandRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 90);
|
|
10920
|
+
var OutboxRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 96);
|
|
10921
|
+
var SyncRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 97);
|
|
10922
|
+
var TestRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 98);
|
|
10923
|
+
var SetTestRootRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 99);
|
|
10924
|
+
var CustodyRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 101);
|
|
10925
|
+
var ResidentFootprintRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 102);
|
|
10926
|
+
var PackDeltaRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 106);
|
|
10927
|
+
var ApplyPackRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 107);
|
|
10928
|
+
var RepoStatsRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 108);
|
|
10929
|
+
var IntentsAboveRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 109);
|
|
10930
|
+
var InspectChangeRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 111);
|
|
10931
|
+
var RefusalVerdictSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 112);
|
|
10932
|
+
var EncodeRefusalVerdictRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 113);
|
|
10933
|
+
var InspectRefusalVerdictRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 114);
|
|
10934
|
+
var ProveCompactionEquivalenceRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 116);
|
|
10935
|
+
var ReadBlobRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 117);
|
|
10936
|
+
var ResolveRefRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 118);
|
|
10937
|
+
var ListRefsRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 119);
|
|
10938
|
+
var WriteRefRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 120);
|
|
10939
|
+
var DeleteRefRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 121);
|
|
10940
|
+
var WriteMetaCommitRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 123);
|
|
10941
|
+
var LawClosureInfoRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 124);
|
|
10942
|
+
var CheckpointExportRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 125);
|
|
10943
|
+
var VerifiedFrontierReceiptSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 127);
|
|
10944
|
+
var StoredCheckpointManifestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 131);
|
|
10945
|
+
var CheckpointImportRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 132);
|
|
10946
|
+
var CapacityReserveRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 133);
|
|
10947
|
+
var RestoreMainRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 134);
|
|
10948
|
+
var ResolveStatePositionRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 135);
|
|
10949
|
+
var NomosValueSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 163);
|
|
10950
|
+
var NomosStructSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 166);
|
|
9806
10951
|
var BirthOutcomeStatusSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 0);
|
|
9807
10952
|
var BirthOutcomeStatus = /* @__PURE__ */ tsEnum(BirthOutcomeStatusSchema);
|
|
9808
|
-
var
|
|
10953
|
+
var QueryResultFormatSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 5);
|
|
10954
|
+
var QueryResultFormat = /* @__PURE__ */ tsEnum(QueryResultFormatSchema);
|
|
10955
|
+
var QueryOperationSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 6);
|
|
9809
10956
|
var QueryOperation = /* @__PURE__ */ tsEnum(QueryOperationSchema);
|
|
9810
|
-
var KernelLawCapabilitySchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel,
|
|
10957
|
+
var KernelLawCapabilitySchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 8);
|
|
9811
10958
|
var KernelLawCapability = /* @__PURE__ */ tsEnum(KernelLawCapabilitySchema);
|
|
9812
|
-
var CheckpointCompressionSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel,
|
|
10959
|
+
var CheckpointCompressionSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 9);
|
|
9813
10960
|
var CheckpointCompression = /* @__PURE__ */ tsEnum(CheckpointCompressionSchema);
|
|
9814
|
-
var CheckpointVerificationPolicySchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel,
|
|
10961
|
+
var CheckpointVerificationPolicySchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 10);
|
|
9815
10962
|
var CheckpointVerificationPolicy = /* @__PURE__ */ tsEnum(CheckpointVerificationPolicySchema);
|
|
9816
|
-
var CheckpointAssuranceSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel,
|
|
10963
|
+
var CheckpointAssuranceSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 11);
|
|
9817
10964
|
var CheckpointAssurance = /* @__PURE__ */ tsEnum(CheckpointAssuranceSchema);
|
|
9818
|
-
var IntentTransportRequirementSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel,
|
|
10965
|
+
var IntentTransportRequirementSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 12);
|
|
9819
10966
|
var IntentTransportRequirement = /* @__PURE__ */ tsEnum(IntentTransportRequirementSchema);
|
|
9820
|
-
var LifecycleInstallPhaseSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel,
|
|
10967
|
+
var LifecycleInstallPhaseSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 13);
|
|
9821
10968
|
var LifecycleInstallPhase = /* @__PURE__ */ tsEnum(LifecycleInstallPhaseSchema);
|
|
9822
10969
|
|
|
9823
10970
|
// src/_adapter/offer-result.ts
|
|
@@ -9985,13 +11132,7 @@ function osEntropyBuffer(n) {
|
|
|
9985
11132
|
return out;
|
|
9986
11133
|
}
|
|
9987
11134
|
var log = (evt, fields = {}) => console.log(JSON.stringify({ evt, t: Date.now(), ...fields }));
|
|
9988
|
-
function
|
|
9989
|
-
const requestId = `adapter-${++protoRequestSequence}`;
|
|
9990
|
-
const request = create(CallRequestSchema, {
|
|
9991
|
-
protocolVersion: PROTO_ABI_VERSION,
|
|
9992
|
-
requestId,
|
|
9993
|
-
operation
|
|
9994
|
-
});
|
|
11135
|
+
function invokeCallRequest(ex, request, STDERR) {
|
|
9995
11136
|
const bytes = toBinary(CallRequestSchema, request);
|
|
9996
11137
|
const requestPtr = ex.git_holon_alloc(bytes.length) >>> 0;
|
|
9997
11138
|
try {
|
|
@@ -10010,8 +11151,11 @@ function callProto(ex, operation, STDERR) {
|
|
|
10010
11151
|
if (response.protocolVersion !== PROTO_ABI_VERSION) {
|
|
10011
11152
|
throw new Error(`kernel protobuf ABI ${response.protocolVersion}; expected ${PROTO_ABI_VERSION}`);
|
|
10012
11153
|
}
|
|
10013
|
-
if (response.requestId !== requestId) {
|
|
10014
|
-
|
|
11154
|
+
if (response.requestId !== request.requestId) {
|
|
11155
|
+
const failure = response.outcome.case === "failure" ? `; kernel failure ${response.outcome.value.code}: ${response.outcome.value.message}` : "";
|
|
11156
|
+
throw new Error(
|
|
11157
|
+
`kernel protobuf response id ${response.requestId || "<empty>"}; expected ${request.requestId}${failure}`
|
|
11158
|
+
);
|
|
10015
11159
|
}
|
|
10016
11160
|
if (response.outcome.case === "failure") {
|
|
10017
11161
|
throw new Error(`${response.outcome.value.code}: ${response.outcome.value.message}`);
|
|
@@ -10024,6 +11168,20 @@ function callProto(ex, operation, STDERR) {
|
|
|
10024
11168
|
ex.git_holon_dealloc(requestPtr, bytes.length);
|
|
10025
11169
|
}
|
|
10026
11170
|
}
|
|
11171
|
+
function callKernel(eng2, request) {
|
|
11172
|
+
if (request.protocolVersion !== PROTO_ABI_VERSION) {
|
|
11173
|
+
throw new Error(`kernel protobuf ABI ${request.protocolVersion}; expected ${PROTO_ABI_VERSION}`);
|
|
11174
|
+
}
|
|
11175
|
+
if (!request.requestId) throw new Error("kernel protobuf request id is required");
|
|
11176
|
+
return invokeCallRequest(eng2.ex, request, eng2.STDERR);
|
|
11177
|
+
}
|
|
11178
|
+
function callProto(ex, operation, STDERR) {
|
|
11179
|
+
return invokeCallRequest(ex, create(CallRequestSchema, {
|
|
11180
|
+
protocolVersion: PROTO_ABI_VERSION,
|
|
11181
|
+
requestId: `adapter-${++protoRequestSequence}`,
|
|
11182
|
+
operation
|
|
11183
|
+
}), STDERR);
|
|
11184
|
+
}
|
|
10027
11185
|
function protoValue(value) {
|
|
10028
11186
|
if (value === null || value === void 0) {
|
|
10029
11187
|
return create(NomosValueSchema, { kind: { case: "null", value: {} } });
|
|
@@ -10208,6 +11366,32 @@ function applicationQueryProto(eng2, ws, query2, options = {}) {
|
|
|
10208
11366
|
if (result.case === "value") return jsValue(result.value);
|
|
10209
11367
|
throw new Error(`kernel returned ${result.case || "empty"} for application query`);
|
|
10210
11368
|
}
|
|
11369
|
+
function applicationQueryUsda(eng2, ws, query2, options = {}) {
|
|
11370
|
+
const response = callProto(eng2.ex, {
|
|
11371
|
+
case: "query",
|
|
11372
|
+
value: create(QueryRequestSchema, {
|
|
11373
|
+
target: protoTarget(ws, options.branch ?? BRANCH),
|
|
11374
|
+
authority: protoAuthority(
|
|
11375
|
+
options.principal,
|
|
11376
|
+
options.keys,
|
|
11377
|
+
options.authToken,
|
|
11378
|
+
options.nowUnix ?? 0,
|
|
11379
|
+
options.authorSecret
|
|
11380
|
+
),
|
|
11381
|
+
spans: options.spans ?? false,
|
|
11382
|
+
resultFormat: QueryResultFormat.NOMINAL_USDA,
|
|
11383
|
+
query: query2
|
|
11384
|
+
})
|
|
11385
|
+
}, eng2.STDERR);
|
|
11386
|
+
if (response.outcome.case !== "query") {
|
|
11387
|
+
throw new Error(`kernel returned ${response.outcome.case || "empty"} for USDA query`);
|
|
11388
|
+
}
|
|
11389
|
+
const result = response.outcome.value.result;
|
|
11390
|
+
if (result.case !== "resultUsda") {
|
|
11391
|
+
throw new Error(`kernel returned ${result.case || "empty"} for USDA query`);
|
|
11392
|
+
}
|
|
11393
|
+
return result.value;
|
|
11394
|
+
}
|
|
10211
11395
|
function namedQueryProto(eng2, ws, operation, arguments_ = {}, options = {}) {
|
|
10212
11396
|
return applicationQueryProto(eng2, ws, {
|
|
10213
11397
|
case: "named",
|
|
@@ -10394,11 +11578,52 @@ function workspaceGenesis(eng2, ws) {
|
|
|
10394
11578
|
var closureInstallPayload = (hash, installedBy, options = {}) => ({
|
|
10395
11579
|
domainHash: hash,
|
|
10396
11580
|
installedBy,
|
|
11581
|
+
lawClosureIdentity: hash,
|
|
10397
11582
|
dependencies: [],
|
|
10398
11583
|
...options.supersedes ? { supersedes: options.supersedes } : {},
|
|
10399
|
-
...options.dispositions ? { dispositions: options.dispositions } : {},
|
|
10400
11584
|
finalizers: []
|
|
10401
11585
|
});
|
|
11586
|
+
function authorOperatorCall(eng2, ws, call, controllerHash, opts = {}) {
|
|
11587
|
+
return author(eng2, ws, call.domain, call.directive, call.canonicalUsda, controllerHash, opts);
|
|
11588
|
+
}
|
|
11589
|
+
function initializeWorkspace(eng2, ws, installedBy = eng2.installedBy) {
|
|
11590
|
+
const sequence = eng2.seq++;
|
|
11591
|
+
const captured = {
|
|
11592
|
+
physical: Date.now(),
|
|
11593
|
+
logical: 0,
|
|
11594
|
+
replica: eng2.replica
|
|
11595
|
+
};
|
|
11596
|
+
const response = callProto(eng2.ex, {
|
|
11597
|
+
case: "initializeWorkspace",
|
|
11598
|
+
value: create(InitializeWorkspaceRequestSchema, {
|
|
11599
|
+
target: protoTarget(ws),
|
|
11600
|
+
controllerLawUsdz: eng2.nomosLawUsdz,
|
|
11601
|
+
authoring: create(AuthoringOptionsSchema, {
|
|
11602
|
+
actor: installedBy,
|
|
11603
|
+
sequence: BigInt(sequence),
|
|
11604
|
+
clock: create(CapturedClockSchema, {
|
|
11605
|
+
physicalMillis: BigInt(captured.physical),
|
|
11606
|
+
logical: captured.logical,
|
|
11607
|
+
replica: BigInt(captured.replica)
|
|
11608
|
+
})
|
|
11609
|
+
})
|
|
11610
|
+
})
|
|
11611
|
+
}, eng2.STDERR);
|
|
11612
|
+
if (response.outcome.case !== "initializeWorkspace") {
|
|
11613
|
+
throw new Error(
|
|
11614
|
+
`kernel returned ${response.outcome.case || "empty"} for initialize_workspace`
|
|
11615
|
+
);
|
|
11616
|
+
}
|
|
11617
|
+
if (response.outcome.value.controllerLawHash !== eng2.hashes.nomos) {
|
|
11618
|
+
throw new Error(
|
|
11619
|
+
`kernel initialized controller ${response.outcome.value.controllerLawHash}; expected ${eng2.hashes.nomos}`
|
|
11620
|
+
);
|
|
11621
|
+
}
|
|
11622
|
+
return {
|
|
11623
|
+
head: response.outcome.value.head,
|
|
11624
|
+
controllerLawHash: response.outcome.value.controllerLawHash
|
|
11625
|
+
};
|
|
11626
|
+
}
|
|
10402
11627
|
async function createEngine({ wasmModule: wasmModule2, bootstrapLawUsdz: bootstrapLawUsdz2, nomosLawUsdz: nomosLawUsdz2, replica: replica2, installedBy = "nomos-cloud" }) {
|
|
10403
11628
|
const assertUsdz = (name, bytes) => {
|
|
10404
11629
|
if (!(bytes instanceof Uint8Array) || bytes.length < 4 || bytes[0] !== 80 || bytes[1] !== 75 || bytes[2] !== 3 || bytes[3] !== 4) {
|
|
@@ -11199,7 +12424,8 @@ async function admitIntentOffers(eng2, ws, ledger, offers, { receiptFence = null
|
|
|
11199
12424
|
}
|
|
11200
12425
|
const cap = summaryCtx ? beginSummaryCapture(eng2, ws, summaryCtx, doc) : null;
|
|
11201
12426
|
const _tOffer = Date.now();
|
|
11202
|
-
const
|
|
12427
|
+
const kernelVerdict = offer?.sealedOffer ? offerRequestResponse(eng2, offer.sealedOffer) : void 0;
|
|
12428
|
+
const res = kernelVerdict ? offerResult(kernelVerdict) : offerAdmit(eng2, ws, blob, { defer: false });
|
|
11203
12429
|
log("offer-admit-ms", { ws, ms: Date.now() - _tOffer, deferred: false, ok: res.ok });
|
|
11204
12430
|
if (res.ok) {
|
|
11205
12431
|
if (intentId) main.ids.add(intentId);
|
|
@@ -11210,7 +12436,8 @@ async function admitIntentOffers(eng2, ws, ledger, offers, { receiptFence = null
|
|
|
11210
12436
|
intent: intentId,
|
|
11211
12437
|
head: res.head,
|
|
11212
12438
|
created: res.created,
|
|
11213
|
-
affected: res.affected
|
|
12439
|
+
affected: res.affected,
|
|
12440
|
+
...kernelVerdict ? { kernelVerdict } : {}
|
|
11214
12441
|
});
|
|
11215
12442
|
admittedTotal += 1;
|
|
11216
12443
|
if (Array.isArray(res.born) && res.born.length) born.push(...res.born);
|
|
@@ -11229,7 +12456,7 @@ async function admitIntentOffers(eng2, ws, ledger, offers, { receiptFence = null
|
|
|
11229
12456
|
});
|
|
11230
12457
|
}
|
|
11231
12458
|
const error = `${String(res.error || "").slice(0, 300)} \u2014 dead-lettered; fix the law (or the payload), then POST /v1/workspaces/${ws}/dead-letters/retry`;
|
|
11232
|
-
rec.rejected.push({ oid, error, deadLettered: true });
|
|
12459
|
+
rec.rejected.push({ oid, error, deadLettered: true, ...kernelVerdict ? { kernelVerdict } : {} });
|
|
11233
12460
|
deadLetters.push({
|
|
11234
12461
|
intentId,
|
|
11235
12462
|
oid,
|
|
@@ -11506,13 +12733,19 @@ async function mountEphemeralWorkspace(eng2, ws, { domainHash = "", lawUsdz } =
|
|
|
11506
12733
|
}
|
|
11507
12734
|
if (!nomosActive(eng2, ws)) {
|
|
11508
12735
|
assertAuthored(
|
|
11509
|
-
|
|
12736
|
+
initializeWorkspace(eng2, ws, eng2.installedBy),
|
|
11510
12737
|
`ephemeral workspace '${ws}' bootstrap`
|
|
11511
12738
|
);
|
|
11512
12739
|
}
|
|
11513
12740
|
if (domainHash && lawUsdz && qById(eng2, ws, `domain-installation:${domainHash}`).length === 0) {
|
|
11514
12741
|
assertAuthored(
|
|
11515
|
-
|
|
12742
|
+
authorOperatorCall(
|
|
12743
|
+
eng2,
|
|
12744
|
+
ws,
|
|
12745
|
+
installDomainCall(ws, closureInstallPayload(domainHash, eng2.installedBy)),
|
|
12746
|
+
requireCurrentControllerLawHash(eng2, ws),
|
|
12747
|
+
{ lawUsdz, deferProjection: false, rngDraws: 8 }
|
|
12748
|
+
),
|
|
11516
12749
|
`ephemeral workspace '${ws}' installDomain(${domainHash.slice(0, 12)})`
|
|
11517
12750
|
);
|
|
11518
12751
|
}
|
|
@@ -11547,6 +12780,15 @@ function currentLaw(eng2, ws) {
|
|
|
11547
12780
|
const out = namedQueryProto(eng2, ws, QueryOperation.CURRENT_LAW);
|
|
11548
12781
|
return out.keyMap || {};
|
|
11549
12782
|
}
|
|
12783
|
+
function currentControllerLawHash(eng2, ws) {
|
|
12784
|
+
const hash = currentLaw(eng2, ws).nomos;
|
|
12785
|
+
return typeof hash === "string" && /^[0-9a-f]{64}$/i.test(hash) ? hash : null;
|
|
12786
|
+
}
|
|
12787
|
+
function requireCurrentControllerLawHash(eng2, ws) {
|
|
12788
|
+
const hash = currentControllerLawHash(eng2, ws);
|
|
12789
|
+
if (hash) return hash;
|
|
12790
|
+
throw new Error(`workspace '${ws}' has no kernel-folded current Nomos controller law`);
|
|
12791
|
+
}
|
|
11550
12792
|
function installedLaw(eng2, ws) {
|
|
11551
12793
|
return namedQueryProto(eng2, ws, QueryOperation.INSTALLED_LAW);
|
|
11552
12794
|
}
|
|
@@ -11594,21 +12836,49 @@ function outboundOffers(eng2, ws, nowMillis = Date.now()) {
|
|
|
11594
12836
|
}
|
|
11595
12837
|
return response.outcome.value;
|
|
11596
12838
|
}
|
|
12839
|
+
async function applyWorkspaceEffect(eng2, ws, ledger, requestBytes, admissionCheckpointSecret) {
|
|
12840
|
+
const request = fromBinary(ApplyWorkspaceEffectRequestSchema, requestBytes);
|
|
12841
|
+
if (request.target?.workspace !== ws || request.target.repo !== repoArgOf(ws)) {
|
|
12842
|
+
throw new Error("workspace-effect protobuf target does not match the mounted target custody");
|
|
12843
|
+
}
|
|
12844
|
+
if (admissionCheckpointSecret.byteLength !== 32) {
|
|
12845
|
+
throw new Error("target runtime admission checkpoint credential is missing or malformed");
|
|
12846
|
+
}
|
|
12847
|
+
request.admissionCheckpointSecret = admissionCheckpointSecret;
|
|
12848
|
+
const response = callProto(eng2.ex, {
|
|
12849
|
+
case: "applyWorkspaceEffect",
|
|
12850
|
+
value: request
|
|
12851
|
+
}, eng2.STDERR);
|
|
12852
|
+
if (response.outcome.case !== "applyWorkspaceEffect") {
|
|
12853
|
+
throw new Error(`kernel returned ${response.outcome.case || "empty"} for workspace effect`);
|
|
12854
|
+
}
|
|
12855
|
+
const result = response.outcome.value.result;
|
|
12856
|
+
if (!result || result.outcome.case !== "admitted") {
|
|
12857
|
+
const outcome = result?.outcome.case || "empty";
|
|
12858
|
+
throw new Error(`target kernel ${outcome} the workspace effect`);
|
|
12859
|
+
}
|
|
12860
|
+
await custodyPush(eng2, ws, ledger, { remoteRef: "refs/heads/main", ffOnly: true });
|
|
12861
|
+
return toBinary(ApplyWorkspaceEffectResponseSchema, response.outcome.value);
|
|
12862
|
+
}
|
|
11597
12863
|
function evolveDryRun(eng2, ws, lawUsdz, domainHash, dispositions = null) {
|
|
11598
12864
|
const before = currentLaw(eng2, ws);
|
|
12865
|
+
const controllerHash = requireCurrentControllerLawHash(eng2, ws);
|
|
11599
12866
|
const tenantHashes = [...new Set(Object.values(before).filter(
|
|
11600
|
-
(hash) => typeof hash === "string" && hash !== eng2.hashes.bootstrap && hash !==
|
|
12867
|
+
(hash) => typeof hash === "string" && hash !== eng2.hashes.bootstrap && hash !== controllerHash
|
|
11601
12868
|
))];
|
|
11602
12869
|
const upgrade = tenantHashes.length > 0;
|
|
11603
12870
|
const supersedes = upgrade && tenantHashes.length === 1 ? tenantHashes[0] : void 0;
|
|
11604
12871
|
if (upgrade && supersedes === void 0) {
|
|
11605
12872
|
return { admits: false, detail: `deploy-predecessor-ambiguous: workspace serves ${tenantHashes.length} business models` };
|
|
11606
12873
|
}
|
|
12874
|
+
if (!upgrade && dispositions !== null) {
|
|
12875
|
+
return { admits: false, detail: "an initial installation cannot carry replacement dispositions" };
|
|
12876
|
+
}
|
|
11607
12877
|
const payload = closureInstallPayload(domainHash, eng2.installedBy, {
|
|
11608
|
-
...supersedes ? { supersedes } : {}
|
|
11609
|
-
...!upgrade && dispositions ? { dispositions } : {}
|
|
12878
|
+
...supersedes ? { supersedes } : {}
|
|
11610
12879
|
});
|
|
11611
|
-
const
|
|
12880
|
+
const call = upgrade ? stageDomainCall(ws, payload) : installDomainCall(ws, payload);
|
|
12881
|
+
const r = authorOperatorCall(eng2, ws, call, controllerHash, {
|
|
11612
12882
|
lawUsdz,
|
|
11613
12883
|
dryRun: true,
|
|
11614
12884
|
deferProjection: false
|
|
@@ -11623,8 +12893,8 @@ function author(eng2, ws, domain, directiveId, payload, controllerHash, opts = {
|
|
|
11623
12893
|
const seq = eng2.seq++;
|
|
11624
12894
|
const capPorts = { clock: { physical: Date.now(), logical: 0, replica: eng2.replica }, rng: osEntropyBuffer(opts.rngDraws ?? 64) };
|
|
11625
12895
|
const genesis = !controllerHash;
|
|
11626
|
-
if (payload
|
|
11627
|
-
throw new
|
|
12896
|
+
if (!(payload instanceof Uint8Array)) {
|
|
12897
|
+
throw new TypeError(`directive ${domain}/${directiveId} requires compiler-generated USDA bytes`);
|
|
11628
12898
|
}
|
|
11629
12899
|
const defer = opts.deferProjection !== false;
|
|
11630
12900
|
const offerOnce = () => {
|
|
@@ -11637,7 +12907,7 @@ function author(eng2, ws, domain, directiveId, payload, controllerHash, opts = {
|
|
|
11637
12907
|
value: create(DirectiveCallSchema, {
|
|
11638
12908
|
domain,
|
|
11639
12909
|
directive: directiveId,
|
|
11640
|
-
|
|
12910
|
+
body: { case: "callUsda", value: payload }
|
|
11641
12911
|
})
|
|
11642
12912
|
},
|
|
11643
12913
|
authoring: create(AuthoringOptionsSchema, {
|
|
@@ -12201,6 +13471,33 @@ var queryStructured = (eng2, ws, queryId, arguments_, principal = "", keys = [],
|
|
|
12201
13471
|
case: "rows",
|
|
12202
13472
|
value: create(RowsQuerySchema, { id: queryId, arguments: protoStruct(arguments_), principal })
|
|
12203
13473
|
}, queryAuthorityOptions(principal, keys, authToken, nowUnix, authorSecret));
|
|
13474
|
+
var queryGeneratedUsda = (eng2, ws, generated, principal = "") => applicationQueryUsda(eng2, ws, {
|
|
13475
|
+
case: "rows",
|
|
13476
|
+
value: create(RowsQuerySchema, {
|
|
13477
|
+
id: generated.query,
|
|
13478
|
+
argumentsUsda: generated.canonicalArgumentsUsda,
|
|
13479
|
+
principal
|
|
13480
|
+
})
|
|
13481
|
+
}, { principal });
|
|
13482
|
+
var queryByIdUsda = (eng2, ws, aggregateType, aggregateId, principal = "") => applicationQueryUsda(eng2, ws, {
|
|
13483
|
+
case: "byId",
|
|
13484
|
+
value: create(ByIdQuerySchema, { aggregateType, aggregateId, principal })
|
|
13485
|
+
}, { principal });
|
|
13486
|
+
var queryByTypeUsda = (eng2, ws, aggregateType, principal = "") => applicationQueryUsda(eng2, ws, {
|
|
13487
|
+
case: "byType",
|
|
13488
|
+
value: create(ByTypeQuerySchema, { aggregateType, principal })
|
|
13489
|
+
}, { principal });
|
|
13490
|
+
var pendingConflictsUsda = (eng2, ws, aggregateType = "", principal = "") => applicationQueryUsda(eng2, ws, {
|
|
13491
|
+
case: "pendingConflicts",
|
|
13492
|
+
value: create(PendingConflictsQuerySchema, {
|
|
13493
|
+
aggregateType: aggregateType || void 0,
|
|
13494
|
+
principal
|
|
13495
|
+
})
|
|
13496
|
+
}, { principal });
|
|
13497
|
+
var pendingConflictSummaryUsda = (eng2, ws, principal = "") => applicationQueryUsda(eng2, ws, {
|
|
13498
|
+
case: "pendingConflictSummary",
|
|
13499
|
+
value: create(PendingConflictSummaryQuerySchema, { principal })
|
|
13500
|
+
}, { principal });
|
|
12204
13501
|
var queryPage = (eng2, ws, queryId, paramsJson, page = {}, principal = "", keys = [], authToken = "", nowUnix = 0, authorSecret = "") => applicationQueryProto(eng2, ws, {
|
|
12205
13502
|
case: "page",
|
|
12206
13503
|
value: create(PageQuerySchema, {
|
|
@@ -12443,33 +13740,26 @@ var readPosture = (eng2, ws, principal = "", authToken = "", nowUnix = 0, author
|
|
|
12443
13740
|
);
|
|
12444
13741
|
var count = (eng2, ws, countId, groupKey, principal = "", authToken = "", nowUnix = 0, authorSecret = "") => applicationQueryProto(eng2, ws, {
|
|
12445
13742
|
case: "count",
|
|
12446
|
-
value: create(TallyQuerySchema, { id: countId,
|
|
13743
|
+
value: create(TallyQuerySchema, { id: countId, groupKey, principal })
|
|
12447
13744
|
}, queryAuthorityOptions(principal, [], authToken, nowUnix, authorSecret));
|
|
12448
13745
|
var sum = (eng2, ws, sumId, groupKey, principal = "", authToken = "", nowUnix = 0, authorSecret = "") => applicationQueryProto(eng2, ws, {
|
|
12449
13746
|
case: "sum",
|
|
12450
|
-
value: create(TallyQuerySchema, { id: sumId,
|
|
13747
|
+
value: create(TallyQuerySchema, { id: sumId, groupKey, principal })
|
|
12451
13748
|
}, queryAuthorityOptions(principal, [], authToken, nowUnix, authorSecret));
|
|
12452
|
-
var pendingConflicts = (eng2, ws, principal = "", aggregateType = "", authToken = "", nowUnix = 0, authorSecret = "") => namedQueryProto(
|
|
12453
|
-
eng2,
|
|
12454
|
-
ws,
|
|
12455
|
-
QueryOperation.PENDING_CONFLICTS,
|
|
12456
|
-
{ aggregateType },
|
|
12457
|
-
queryAuthorityOptions(principal, [], authToken, nowUnix, authorSecret)
|
|
12458
|
-
);
|
|
12459
|
-
var pendingConflictSummary = (eng2, ws, principal = "", authToken = "", nowUnix = 0, authorSecret = "") => namedQueryProto(
|
|
12460
|
-
eng2,
|
|
12461
|
-
ws,
|
|
12462
|
-
QueryOperation.PENDING_CONFLICT_SUMMARY,
|
|
12463
|
-
{},
|
|
12464
|
-
queryAuthorityOptions(principal, [], authToken, nowUnix, authorSecret)
|
|
12465
|
-
);
|
|
12466
13749
|
var spatialBboxParams = (bbox) => {
|
|
12467
13750
|
const minX = bbox.minX ?? bbox.minLng, minY = bbox.minY ?? bbox.minLat, maxX = bbox.maxX ?? bbox.maxLng, maxY = bbox.maxY ?? bbox.maxLat;
|
|
12468
13751
|
return { minX, minY, maxX, maxY, minLng: minX, minLat: minY, maxLng: maxX, maxLat: maxY };
|
|
12469
13752
|
};
|
|
12470
13753
|
var spatialWithin = (eng2, ws, spatialId, bbox, principal = "", authToken = "", nowUnix = 0, authorSecret = "") => applicationQueryProto(eng2, ws, {
|
|
12471
13754
|
case: "spatial",
|
|
12472
|
-
value: create(SpatialQuerySchema, {
|
|
13755
|
+
value: create(SpatialQuerySchema, {
|
|
13756
|
+
id: spatialId,
|
|
13757
|
+
minX: bbox.minX ?? bbox.minLng,
|
|
13758
|
+
minY: bbox.minY ?? bbox.minLat,
|
|
13759
|
+
maxX: bbox.maxX ?? bbox.maxLng,
|
|
13760
|
+
maxY: bbox.maxY ?? bbox.maxLat,
|
|
13761
|
+
principal
|
|
13762
|
+
})
|
|
12473
13763
|
}, queryAuthorityOptions(principal, [], authToken, nowUnix, authorSecret));
|
|
12474
13764
|
var extremum = (eng2, ws, extremumId, kind, groupKey, principal = "", authToken = "", nowUnix = 0, authorSecret = "") => namedQueryProto(
|
|
12475
13765
|
eng2,
|
|
@@ -12600,13 +13890,16 @@ async function ingestPackAsCustody(eng2, ws, packBytes, head, options = {}) {
|
|
|
12600
13890
|
spans: restored.spans
|
|
12601
13891
|
};
|
|
12602
13892
|
}
|
|
12603
|
-
var nomosActive = (eng2, ws) =>
|
|
13893
|
+
var nomosActive = (eng2, ws) => currentControllerLawHash(eng2, ws) !== null;
|
|
12604
13894
|
function offerRequest(eng2, request) {
|
|
13895
|
+
return offerResult(offerRequestResponse(eng2, request));
|
|
13896
|
+
}
|
|
13897
|
+
function offerRequestResponse(eng2, request) {
|
|
12605
13898
|
const response = callProto(eng2.ex, { case: "offer", value: request }, eng2.STDERR);
|
|
12606
13899
|
if (response.outcome.case !== "offer") {
|
|
12607
13900
|
throw new Error(`kernel returned ${response.outcome.case || "empty"} for sealed offer request`);
|
|
12608
13901
|
}
|
|
12609
|
-
return
|
|
13902
|
+
return response.outcome.value;
|
|
12610
13903
|
}
|
|
12611
13904
|
function offerIntent(eng2, ws, bytes, opts = {}) {
|
|
12612
13905
|
const seq = eng2.seq++;
|
|
@@ -13164,10 +14457,16 @@ function promotePreflighted(eng2, ws, domain, candidateHash, opts = {}) {
|
|
|
13164
14457
|
acceptanceReason: _acceptance,
|
|
13165
14458
|
...authorOpts
|
|
13166
14459
|
} = opts;
|
|
13167
|
-
const result =
|
|
13168
|
-
|
|
13169
|
-
|
|
13170
|
-
|
|
14460
|
+
const result = authorOperatorCall(
|
|
14461
|
+
eng2,
|
|
14462
|
+
ws,
|
|
14463
|
+
promoteDomainCall(ws, prepared.payload),
|
|
14464
|
+
requireCurrentControllerLawHash(eng2, ws),
|
|
14465
|
+
{
|
|
14466
|
+
...authorOpts,
|
|
14467
|
+
...actingPrincipal ? { actor: actingPrincipal } : {}
|
|
14468
|
+
}
|
|
14469
|
+
);
|
|
13171
14470
|
return result.ok ? { ...result, stage: "promoted", report, receiptId: prepared.receiptId } : { ...result, stage: "admission", report, receiptId: prepared.receiptId };
|
|
13172
14471
|
}
|
|
13173
14472
|
function restorePreviousPreflighted(eng2, ws, domain, currentHash, opts = {}) {
|
|
@@ -13215,10 +14514,16 @@ function restorePreviousPreflighted(eng2, ws, domain, currentHash, opts = {}) {
|
|
|
13215
14514
|
const prepared = prepareManagedRestoration(report, currentHash, priorHash, domain, opts);
|
|
13216
14515
|
if (!prepared.ok) return prepared;
|
|
13217
14516
|
const { acceptanceReason: _acceptance, ...authorOpts } = opts;
|
|
13218
|
-
const result =
|
|
13219
|
-
|
|
13220
|
-
|
|
13221
|
-
|
|
14517
|
+
const result = authorOperatorCall(
|
|
14518
|
+
eng2,
|
|
14519
|
+
ws,
|
|
14520
|
+
rollbackDomainCall(ws, prepared.payload),
|
|
14521
|
+
requireCurrentControllerLawHash(eng2, ws),
|
|
14522
|
+
{
|
|
14523
|
+
...authorOpts,
|
|
14524
|
+
...actingPrincipal ? { actor: actingPrincipal } : {}
|
|
14525
|
+
}
|
|
14526
|
+
);
|
|
13222
14527
|
return result.ok ? { ...result, stage: "restored", report, receiptId: prepared.receiptId } : { ...result, stage: "admission", report, receiptId: prepared.receiptId };
|
|
13223
14528
|
}
|
|
13224
14529
|
async function rebirthCompact(eng2, ws, ledger, { reason = "", supersededAt = 0, parent = "" } = {}) {
|
|
@@ -13272,13 +14577,14 @@ async function rebirthCompact(eng2, ws, ledger, { reason = "", supersededAt = 0,
|
|
|
13272
14577
|
}
|
|
13273
14578
|
let foundation;
|
|
13274
14579
|
try {
|
|
13275
|
-
foundation =
|
|
14580
|
+
foundation = authorOperatorCall(
|
|
13276
14581
|
eng2,
|
|
13277
14582
|
incWs,
|
|
13278
|
-
|
|
13279
|
-
|
|
13280
|
-
|
|
13281
|
-
|
|
14583
|
+
installDomainCall(
|
|
14584
|
+
incWs,
|
|
14585
|
+
closureInstallPayload(lifecycle.targetClosureIdentity, lifecycle.installedBy)
|
|
14586
|
+
),
|
|
14587
|
+
requireCurrentControllerLawHash(eng2, incWs),
|
|
13282
14588
|
{
|
|
13283
14589
|
candidateCommit: c.oid,
|
|
13284
14590
|
deferProjection: false,
|
|
@@ -13572,7 +14878,7 @@ async function deleteRefusedRef(eng2, ws, ledger, offerId) {
|
|
|
13572
14878
|
}
|
|
13573
14879
|
return ref;
|
|
13574
14880
|
}
|
|
13575
|
-
async function emitOutbox(eng2, ws, ledger) {
|
|
14881
|
+
async function emitOutbox(eng2, ws, ledger, workspaceEffectBase = "", admissionCheckpointSecret) {
|
|
13576
14882
|
const outbox = outboundOffers(eng2, ws);
|
|
13577
14883
|
const nextDueAtMillis = outbox.nextDueAtMillis === void 0 ? void 0 : Number(outbox.nextDueAtMillis);
|
|
13578
14884
|
if (outbox.offers.length === 0) {
|
|
@@ -13583,24 +14889,90 @@ async function emitOutbox(eng2, ws, ledger) {
|
|
|
13583
14889
|
let errors = 0;
|
|
13584
14890
|
for (const offer of outbox.offers) {
|
|
13585
14891
|
try {
|
|
13586
|
-
|
|
13587
|
-
|
|
13588
|
-
|
|
13589
|
-
|
|
13590
|
-
|
|
13591
|
-
|
|
13592
|
-
|
|
13593
|
-
|
|
13594
|
-
|
|
13595
|
-
|
|
13596
|
-
|
|
13597
|
-
|
|
13598
|
-
|
|
13599
|
-
|
|
13600
|
-
|
|
13601
|
-
|
|
13602
|
-
|
|
13603
|
-
|
|
14892
|
+
switch (offer.route.case) {
|
|
14893
|
+
case "httpsRoute": {
|
|
14894
|
+
const destination = offer.route.value.url;
|
|
14895
|
+
const res = await fetch(destination, {
|
|
14896
|
+
method: "POST",
|
|
14897
|
+
headers: {
|
|
14898
|
+
"content-type": offer.contentType,
|
|
14899
|
+
"x-nomos-offer-id": offer.id,
|
|
14900
|
+
"x-nomos-obligation-id": offer.obligationId,
|
|
14901
|
+
"x-nomos-source-workspace": offer.sourceWorkspace,
|
|
14902
|
+
"x-nomos-custody-head": offer.custodyHead
|
|
14903
|
+
},
|
|
14904
|
+
// Fetch's DOM typing requires an ArrayBuffer-backed body; this copies opaque bytes without
|
|
14905
|
+
// decoding or re-authoring them. The receiving kernel sees the exact sealed USDA payload.
|
|
14906
|
+
body: Uint8Array.from(offer.sealedOffer).buffer,
|
|
14907
|
+
signal: AbortSignal.timeout(3e4)
|
|
14908
|
+
});
|
|
14909
|
+
if (!res.ok) {
|
|
14910
|
+
throw new Error(`HTTPS capability returned ${res.status}`);
|
|
14911
|
+
}
|
|
14912
|
+
break;
|
|
14913
|
+
}
|
|
14914
|
+
case "workspaceRoute": {
|
|
14915
|
+
const targetWorkspace = offer.route.value.workspace;
|
|
14916
|
+
const request = create(ApplyWorkspaceEffectRequestSchema, {
|
|
14917
|
+
source: protoTarget(ws),
|
|
14918
|
+
sourceCommit: offer.sourceCommit,
|
|
14919
|
+
sourceOfferPath: offer.sourceOfferPath,
|
|
14920
|
+
target: protoTarget(targetWorkspace),
|
|
14921
|
+
sourceEvidencePack: offer.sourceEvidencePack
|
|
14922
|
+
});
|
|
14923
|
+
const response = workspaceEffectBase ? fromBinary(
|
|
14924
|
+
ApplyWorkspaceEffectResponseSchema,
|
|
14925
|
+
new Uint8Array(await (async () => {
|
|
14926
|
+
const remote = await fetch(
|
|
14927
|
+
`${workspaceEffectBase.replace(/\/+$/, "")}/v2/workspaces/${encodeURIComponent(targetWorkspace)}/workspace-effect`,
|
|
14928
|
+
{
|
|
14929
|
+
method: "POST",
|
|
14930
|
+
headers: { "content-type": "application/vnd.nomos.workspace-effect+protobuf" },
|
|
14931
|
+
body: toBinary(ApplyWorkspaceEffectRequestSchema, request),
|
|
14932
|
+
signal: AbortSignal.timeout(3e4)
|
|
14933
|
+
}
|
|
14934
|
+
);
|
|
14935
|
+
if (!remote.ok) throw new Error(`workspace-effect receiver returned ${remote.status}: ${(await remote.text()).slice(0, 200)}`);
|
|
14936
|
+
return remote.arrayBuffer();
|
|
14937
|
+
})())
|
|
14938
|
+
) : (() => {
|
|
14939
|
+
if (admissionCheckpointSecret?.byteLength !== 32) {
|
|
14940
|
+
throw new Error("local target admission checkpoint credential is missing or malformed");
|
|
14941
|
+
}
|
|
14942
|
+
request.admissionCheckpointSecret = admissionCheckpointSecret;
|
|
14943
|
+
const local = callProto(eng2.ex, {
|
|
14944
|
+
case: "applyWorkspaceEffect",
|
|
14945
|
+
value: request
|
|
14946
|
+
}, eng2.STDERR);
|
|
14947
|
+
if (local.outcome.case !== "applyWorkspaceEffect") {
|
|
14948
|
+
throw new Error(`kernel returned ${local.outcome.case || "empty"} for workspace effect`);
|
|
14949
|
+
}
|
|
14950
|
+
return local.outcome.value;
|
|
14951
|
+
})();
|
|
14952
|
+
const targetResult = response.result;
|
|
14953
|
+
if (!targetResult || targetResult.outcome.case !== "admitted") {
|
|
14954
|
+
const outcome = targetResult?.outcome.case || "empty";
|
|
14955
|
+
throw new Error(`target kernel ${outcome} the workspace effect`);
|
|
14956
|
+
}
|
|
14957
|
+
break;
|
|
14958
|
+
}
|
|
14959
|
+
case void 0: {
|
|
14960
|
+
if (!offer.destination) throw new Error("legacy outbound offer has no HTTPS destination");
|
|
14961
|
+
const res = await fetch(offer.destination, {
|
|
14962
|
+
method: "POST",
|
|
14963
|
+
headers: {
|
|
14964
|
+
"content-type": offer.contentType,
|
|
14965
|
+
"x-nomos-offer-id": offer.id,
|
|
14966
|
+
"x-nomos-obligation-id": offer.obligationId,
|
|
14967
|
+
"x-nomos-source-workspace": offer.sourceWorkspace,
|
|
14968
|
+
"x-nomos-custody-head": offer.custodyHead
|
|
14969
|
+
},
|
|
14970
|
+
body: Uint8Array.from(offer.sealedOffer).buffer,
|
|
14971
|
+
signal: AbortSignal.timeout(3e4)
|
|
14972
|
+
});
|
|
14973
|
+
if (!res.ok) throw new Error(`legacy HTTPS capability returned ${res.status}`);
|
|
14974
|
+
break;
|
|
14975
|
+
}
|
|
13604
14976
|
}
|
|
13605
14977
|
kgit.writeRef(eng2, gitdir, offer.deliveryRef, offer.custodyOid);
|
|
13606
14978
|
try {
|
|
@@ -13611,7 +14983,8 @@ async function emitOutbox(eng2, ws, ledger) {
|
|
|
13611
14983
|
delivered.push(offer.id);
|
|
13612
14984
|
} catch (e) {
|
|
13613
14985
|
errors++;
|
|
13614
|
-
|
|
14986
|
+
const destination = offer.route.case === "httpsRoute" ? offer.route.value.url : offer.route.case === "workspaceRoute" ? offer.route.value.workspace : offer.destination;
|
|
14987
|
+
log("outbox-deliver-failed", { ws, offerId: offer.id, destination, error: String(e).slice(0, 200) });
|
|
13615
14988
|
}
|
|
13616
14989
|
}
|
|
13617
14990
|
if (delivered.length || errors) log("outbox", { ws, delivered: delivered.length, errors });
|
|
@@ -13627,7 +15000,14 @@ async function boot2(eng2, ws, ledger) {
|
|
|
13627
15000
|
`unwarranted-workspace: '${ws}' is booted but its genesis never landed a GenesisWarrant \u2014 an era-0 workspace is born ONLY by its parent's warranted+attested birth. This is a host-authored/legacy orphan and will not serve (author its birth on its parent to bring it into the holarchy lawfully).`
|
|
13628
15001
|
);
|
|
13629
15002
|
}
|
|
13630
|
-
|
|
15003
|
+
const controllerHash = requireCurrentControllerLawHash(eng2, ws);
|
|
15004
|
+
return {
|
|
15005
|
+
status: "already-initialized",
|
|
15006
|
+
head: m.remoteMain ?? void 0,
|
|
15007
|
+
controllerHash,
|
|
15008
|
+
rows: qById(eng2, ws, `domain-installation:${controllerHash}`),
|
|
15009
|
+
mount: m
|
|
15010
|
+
};
|
|
13631
15011
|
}
|
|
13632
15012
|
throw new Error(
|
|
13633
15013
|
`unborn-workspace: '${ws}' has no genesis and the host does not create workspaces \u2014 author its birth on its PARENT (birthChild/birthHome/an estate .births()); the parent's offer-effect materializes it in custody, then it serves from here. (root self-adopts via _ensureRootGenesis; this is not that path.)`
|
|
@@ -13710,8 +15090,10 @@ function warmKernelCaches(eng2, opts = {}) {
|
|
|
13710
15090
|
var HERE = dirname(fileURLToPath(import.meta.url));
|
|
13711
15091
|
var KERNEL_REQUIREMENTS = typeof define_NOMOS_KERNEL_RELEASE_default === "undefined" ? [{ name: "nomos.kernel.v1", version: "1.0.0" }] : Object.entries(define_NOMOS_KERNEL_RELEASE_default.contracts).map(([name, version]) => ({ name, version }));
|
|
13712
15092
|
var engineModule = process.env["NOMOS_ADAPTER_ENGINE"] ? await import(process.env["NOMOS_ADAPTER_ENGINE"]) : engine_exports;
|
|
15093
|
+
var lifecycleCallsModule = process.env["NOMOS_ADAPTER_LIFECYCLE_CALLS"] ? await import(process.env["NOMOS_ADAPTER_LIFECYCLE_CALLS"]) : lifecycle_calls_exports;
|
|
13713
15094
|
var treeModule = process.env["NOMOS_ADAPTER_TREE"] ? await import(process.env["NOMOS_ADAPTER_TREE"]) : { serializeTree };
|
|
13714
|
-
var { createEngine: createEngine2, mountWorkspace: mountWorkspace2,
|
|
15095
|
+
var { createEngine: createEngine2, mountWorkspace: mountWorkspace2, initializeWorkspace: initializeWorkspace2, authorOperatorCall: authorOperatorCall2, closureInstallPayload: closureInstallPayload2, authorKeygen: authorKeygen2, refreshProjection: refreshProjection2, currentLaw: currentLaw2, exportCheckpoint: exportCheckpoint2, stageLawClosure: stageLawClosure2 } = engineModule;
|
|
15096
|
+
var { installDomainCall: installDomainCall2 } = lifecycleCallsModule;
|
|
13715
15097
|
var { serializeTree: serializeTree2 } = treeModule;
|
|
13716
15098
|
var die = (msg) => {
|
|
13717
15099
|
process.stderr.write(`offline-install: ${msg}
|
|
@@ -13768,18 +15150,7 @@ var requireAdmission = (what, verdict) => {
|
|
|
13768
15150
|
if (result?.ok === true) return;
|
|
13769
15151
|
die(`${what} was refused by the candidate kernel: ${String(result?.error ?? "no admission verdict")}`);
|
|
13770
15152
|
};
|
|
13771
|
-
|
|
13772
|
-
"framework install",
|
|
13773
|
-
guarded(() => author2(
|
|
13774
|
-
eng,
|
|
13775
|
-
workspace,
|
|
13776
|
-
"bootstrap",
|
|
13777
|
-
"installDomain",
|
|
13778
|
-
closureInstallPayload2(eng.hashes.nomos, "nomos-test-harness"),
|
|
13779
|
-
"",
|
|
13780
|
-
{ lawUsdz: eng.nomosLawUsdz, deferProjection: false, rngDraws: 8 }
|
|
13781
|
-
))
|
|
13782
|
-
);
|
|
15153
|
+
guarded(() => initializeWorkspace2(eng, workspace, "nomos-test-harness"));
|
|
13783
15154
|
var lawHashes = [];
|
|
13784
15155
|
var expectedDomainLaw = /* @__PURE__ */ new Map();
|
|
13785
15156
|
for (const p of lawPaths) {
|
|
@@ -13790,14 +15161,18 @@ for (const p of lawPaths) {
|
|
|
13790
15161
|
if (!/^[0-9a-f]{64}$/.test(lawHash)) die(`kernel returned invalid law identity for ${p}`);
|
|
13791
15162
|
requireAdmission(
|
|
13792
15163
|
`application install from ${p}`,
|
|
13793
|
-
guarded(() =>
|
|
15164
|
+
guarded(() => authorOperatorCall2(
|
|
13794
15165
|
eng,
|
|
13795
15166
|
workspace,
|
|
13796
|
-
|
|
13797
|
-
|
|
13798
|
-
|
|
15167
|
+
installDomainCall2(
|
|
15168
|
+
workspace,
|
|
15169
|
+
closureInstallPayload2(lawHash, "nomos-test-harness")
|
|
15170
|
+
),
|
|
13799
15171
|
eng.hashes.nomos,
|
|
13800
|
-
|
|
15172
|
+
// Install every package into custody first, then perform one explicit projection refresh
|
|
15173
|
+
// below against the complete selected graph. Refreshing after each package both duplicated
|
|
15174
|
+
// work and briefly interpreted a deliberately incomplete application dependency set.
|
|
15175
|
+
{ lawUsdz, deferProjection: true, rngDraws: 8 }
|
|
13801
15176
|
))
|
|
13802
15177
|
);
|
|
13803
15178
|
lawHashes.push(lawHash);
|