githolon 0.107.4 → 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/dist/compile_mountability_entry.js +1632 -218
- package/dist/dev-server.mjs +1613 -243
- package/dist/framework/bootstrap.law.usdz +0 -0
- package/dist/framework/nomos.law.usdz +0 -0
- package/dist/full-cli.mjs +8554 -2625
- package/package.json +2 -2
package/dist/dev-server.mjs
CHANGED
|
@@ -357,71 +357,986 @@ var init_managed_promotion = __esm({
|
|
|
357
357
|
}
|
|
358
358
|
});
|
|
359
359
|
|
|
360
|
+
// ../adapter/generated/domain_bootstrap.operator.mjs
|
|
361
|
+
var init_domain_bootstrap_operator = __esm({
|
|
362
|
+
"../adapter/generated/domain_bootstrap.operator.mjs"() {
|
|
363
|
+
"use strict";
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
|
|
367
|
+
// ../adapter/generated/nomos.operator.mjs
|
|
368
|
+
function _nmsCallUsda_nomos_installDomain(payload, nmsInternalWorkspace) {
|
|
369
|
+
const _nmsRoutingCandidates = [];
|
|
370
|
+
const out = [
|
|
371
|
+
"#usda 1.0",
|
|
372
|
+
"(",
|
|
373
|
+
' defaultPrim = "Change"',
|
|
374
|
+
")",
|
|
375
|
+
"",
|
|
376
|
+
'def NomosChange "Change"',
|
|
377
|
+
"{",
|
|
378
|
+
" custom rel nomos:directive = </Nomos/Domains/d_a0c452a9439bb87f/Intents/i_5c39a2e2d3e58351>",
|
|
379
|
+
"",
|
|
380
|
+
' def NomosCall "Call"',
|
|
381
|
+
" {",
|
|
382
|
+
" custom rel nomos:contract = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a>",
|
|
383
|
+
"",
|
|
384
|
+
' def NomosRecordValue "Payload"',
|
|
385
|
+
" {",
|
|
386
|
+
" custom rel nomos:type = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a>"
|
|
387
|
+
];
|
|
388
|
+
const _payloadChildren0 = [];
|
|
389
|
+
if (payload["finalizers"] !== void 0) {
|
|
390
|
+
const _optional1 = payload["finalizers"];
|
|
391
|
+
{
|
|
392
|
+
const _out2 = _payloadChildren0;
|
|
393
|
+
_nmsUsdaBegin(_out2, 3, "NomosListValue", "/Change/Call/Payload/f_05bb8d9567092cad");
|
|
394
|
+
_nmsUsdaRel(_out2, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a/Fields/f_05bb8d9567092cad");
|
|
395
|
+
_nmsUsdaRel(_out2, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_8f49dab37fd06574");
|
|
396
|
+
const _children3 = [];
|
|
397
|
+
for (let _index4 = 0; _index4 < _optional1.length; _index4++) {
|
|
398
|
+
{
|
|
399
|
+
const _out5 = _children3;
|
|
400
|
+
_nmsRoutingCandidates.push(_optional1[_index4]);
|
|
401
|
+
_nmsUsdaBegin(_out5, 4, "NomosStringValue", "/Change/Call/Payload/f_05bb8d9567092cad/i_" + String(_index4).padStart(8, "0"));
|
|
402
|
+
_nmsUsdaRel(_out5, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
403
|
+
_nmsUsdaString(_out5, 5, "string", "nomos:value", _optional1[_index4]);
|
|
404
|
+
_nmsUsdaClose(_out5, 4);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
_nmsUsdaChildren(_out2, _children3);
|
|
408
|
+
_nmsUsdaClose(_out2, 3);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
{
|
|
412
|
+
const _out6 = _payloadChildren0;
|
|
413
|
+
_nmsRoutingCandidates.push(payload["installedBy"]);
|
|
414
|
+
_nmsUsdaBegin(_out6, 3, "NomosStringValue", "/Change/Call/Payload/f_0958548a07a18849");
|
|
415
|
+
_nmsUsdaRel(_out6, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a/Fields/f_0958548a07a18849");
|
|
416
|
+
_nmsUsdaRel(_out6, 4, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
417
|
+
_nmsUsdaString(_out6, 4, "string", "nomos:value", payload["installedBy"]);
|
|
418
|
+
_nmsUsdaClose(_out6, 3);
|
|
419
|
+
}
|
|
420
|
+
if (payload["dependencies"] !== void 0) {
|
|
421
|
+
const _optional7 = payload["dependencies"];
|
|
422
|
+
{
|
|
423
|
+
const _out8 = _payloadChildren0;
|
|
424
|
+
_nmsUsdaBegin(_out8, 3, "NomosListValue", "/Change/Call/Payload/f_3b9973d06216a427");
|
|
425
|
+
_nmsUsdaRel(_out8, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a/Fields/f_3b9973d06216a427");
|
|
426
|
+
_nmsUsdaRel(_out8, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_8f49dab37fd06574");
|
|
427
|
+
const _children9 = [];
|
|
428
|
+
for (let _index10 = 0; _index10 < _optional7.length; _index10++) {
|
|
429
|
+
{
|
|
430
|
+
const _out11 = _children9;
|
|
431
|
+
_nmsRoutingCandidates.push(_optional7[_index10]);
|
|
432
|
+
_nmsUsdaBegin(_out11, 4, "NomosStringValue", "/Change/Call/Payload/f_3b9973d06216a427/i_" + String(_index10).padStart(8, "0"));
|
|
433
|
+
_nmsUsdaRel(_out11, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
434
|
+
_nmsUsdaString(_out11, 5, "string", "nomos:value", _optional7[_index10]);
|
|
435
|
+
_nmsUsdaClose(_out11, 4);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
_nmsUsdaChildren(_out8, _children9);
|
|
439
|
+
_nmsUsdaClose(_out8, 3);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
{
|
|
443
|
+
const _out12 = _payloadChildren0;
|
|
444
|
+
_nmsRoutingCandidates.push(payload["lawClosureIdentity"]);
|
|
445
|
+
_nmsUsdaBegin(_out12, 3, "NomosStringValue", "/Change/Call/Payload/f_3d0a30b32a3bf736");
|
|
446
|
+
_nmsUsdaRel(_out12, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a/Fields/f_3d0a30b32a3bf736");
|
|
447
|
+
_nmsUsdaRel(_out12, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
448
|
+
_nmsUsdaString(_out12, 4, "string", "nomos:value", payload["lawClosureIdentity"]);
|
|
449
|
+
_nmsUsdaClose(_out12, 3);
|
|
450
|
+
}
|
|
451
|
+
if (payload["authorityScope"] !== void 0) {
|
|
452
|
+
const _optional13 = payload["authorityScope"];
|
|
453
|
+
{
|
|
454
|
+
const _out14 = _payloadChildren0;
|
|
455
|
+
{
|
|
456
|
+
const _out15 = _payloadChildren0;
|
|
457
|
+
_nmsRoutingCandidates.push(_optional13);
|
|
458
|
+
_nmsUsdaBegin(_out15, 3, "NomosStringValue", "/Change/Call/Payload/f_8c175f0470bde233");
|
|
459
|
+
_nmsUsdaRel(_out15, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a/Fields/f_8c175f0470bde233");
|
|
460
|
+
_nmsUsdaRel(_out15, 4, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
461
|
+
_nmsUsdaString(_out15, 4, "string", "nomos:value", _optional13);
|
|
462
|
+
_nmsUsdaClose(_out15, 3);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
{
|
|
467
|
+
const _out16 = _payloadChildren0;
|
|
468
|
+
_nmsRoutingCandidates.push(payload["domainHash"]);
|
|
469
|
+
_nmsUsdaBegin(_out16, 3, "NomosStringValue", "/Change/Call/Payload/f_ecdc06bc9b8ae826");
|
|
470
|
+
_nmsUsdaRel(_out16, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_451b564e4c35465a/Fields/f_ecdc06bc9b8ae826");
|
|
471
|
+
_nmsUsdaRel(_out16, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
472
|
+
_nmsUsdaString(_out16, 4, "string", "nomos:value", payload["domainHash"]);
|
|
473
|
+
_nmsUsdaClose(_out16, 3);
|
|
474
|
+
}
|
|
475
|
+
_nmsUsdaChildren(out, _payloadChildren0);
|
|
476
|
+
_nmsUsdaClose(out, 2);
|
|
477
|
+
_nmsUsdaClose(out, 1);
|
|
478
|
+
_nmsUsdaClose(out, 0);
|
|
479
|
+
return _nmsGeneratedCall("nomos", "installDomain", _nmsUsdaUtf8(out.join("\n") + "\n"), _nmsRoutingCandidates);
|
|
480
|
+
}
|
|
481
|
+
function _nmsCallUsda_nomos_stageDomain(payload, nmsInternalWorkspace) {
|
|
482
|
+
const _nmsRoutingCandidates = [];
|
|
483
|
+
const out = [
|
|
484
|
+
"#usda 1.0",
|
|
485
|
+
"(",
|
|
486
|
+
' defaultPrim = "Change"',
|
|
487
|
+
")",
|
|
488
|
+
"",
|
|
489
|
+
'def NomosChange "Change"',
|
|
490
|
+
"{",
|
|
491
|
+
" custom rel nomos:directive = </Nomos/Domains/d_a0c452a9439bb87f/Intents/i_d1e20244ccbcde0e>",
|
|
492
|
+
"",
|
|
493
|
+
' def NomosCall "Call"',
|
|
494
|
+
" {",
|
|
495
|
+
" custom rel nomos:contract = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b>",
|
|
496
|
+
"",
|
|
497
|
+
' def NomosRecordValue "Payload"',
|
|
498
|
+
" {",
|
|
499
|
+
" custom rel nomos:type = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b>"
|
|
500
|
+
];
|
|
501
|
+
const _payloadChildren0 = [];
|
|
502
|
+
if (payload["supersedes"] !== void 0) {
|
|
503
|
+
const _optional1 = payload["supersedes"];
|
|
504
|
+
{
|
|
505
|
+
const _out2 = _payloadChildren0;
|
|
506
|
+
_nmsRoutingCandidates.push(_optional1);
|
|
507
|
+
_nmsUsdaBegin(_out2, 3, "NomosStringValue", "/Change/Call/Payload/f_7299aada560ca0fe");
|
|
508
|
+
_nmsUsdaRel(_out2, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_7299aada560ca0fe");
|
|
509
|
+
_nmsUsdaRel(_out2, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
510
|
+
_nmsUsdaString(_out2, 4, "string", "nomos:value", _optional1);
|
|
511
|
+
_nmsUsdaClose(_out2, 3);
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
{
|
|
515
|
+
const _out3 = _payloadChildren0;
|
|
516
|
+
_nmsRoutingCandidates.push(payload["installedBy"]);
|
|
517
|
+
_nmsUsdaBegin(_out3, 3, "NomosStringValue", "/Change/Call/Payload/f_8ae27ff159721deb");
|
|
518
|
+
_nmsUsdaRel(_out3, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_8ae27ff159721deb");
|
|
519
|
+
_nmsUsdaRel(_out3, 4, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
520
|
+
_nmsUsdaString(_out3, 4, "string", "nomos:value", payload["installedBy"]);
|
|
521
|
+
_nmsUsdaClose(_out3, 3);
|
|
522
|
+
}
|
|
523
|
+
{
|
|
524
|
+
const _out4 = _payloadChildren0;
|
|
525
|
+
_nmsRoutingCandidates.push(payload["domainHash"]);
|
|
526
|
+
_nmsUsdaBegin(_out4, 3, "NomosStringValue", "/Change/Call/Payload/f_8fa1bfa0d6235238");
|
|
527
|
+
_nmsUsdaRel(_out4, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_8fa1bfa0d6235238");
|
|
528
|
+
_nmsUsdaRel(_out4, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
529
|
+
_nmsUsdaString(_out4, 4, "string", "nomos:value", payload["domainHash"]);
|
|
530
|
+
_nmsUsdaClose(_out4, 3);
|
|
531
|
+
}
|
|
532
|
+
if (payload["dependencies"] !== void 0) {
|
|
533
|
+
const _optional5 = payload["dependencies"];
|
|
534
|
+
{
|
|
535
|
+
const _out6 = _payloadChildren0;
|
|
536
|
+
_nmsUsdaBegin(_out6, 3, "NomosListValue", "/Change/Call/Payload/f_90c6d0512feef3c5");
|
|
537
|
+
_nmsUsdaRel(_out6, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_90c6d0512feef3c5");
|
|
538
|
+
_nmsUsdaRel(_out6, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_8f49dab37fd06574");
|
|
539
|
+
const _children7 = [];
|
|
540
|
+
for (let _index8 = 0; _index8 < _optional5.length; _index8++) {
|
|
541
|
+
{
|
|
542
|
+
const _out9 = _children7;
|
|
543
|
+
_nmsRoutingCandidates.push(_optional5[_index8]);
|
|
544
|
+
_nmsUsdaBegin(_out9, 4, "NomosStringValue", "/Change/Call/Payload/f_90c6d0512feef3c5/i_" + String(_index8).padStart(8, "0"));
|
|
545
|
+
_nmsUsdaRel(_out9, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
546
|
+
_nmsUsdaString(_out9, 5, "string", "nomos:value", _optional5[_index8]);
|
|
547
|
+
_nmsUsdaClose(_out9, 4);
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
_nmsUsdaChildren(_out6, _children7);
|
|
551
|
+
_nmsUsdaClose(_out6, 3);
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
if (payload["authorityScope"] !== void 0) {
|
|
555
|
+
const _optional10 = payload["authorityScope"];
|
|
556
|
+
{
|
|
557
|
+
const _out11 = _payloadChildren0;
|
|
558
|
+
{
|
|
559
|
+
const _out12 = _payloadChildren0;
|
|
560
|
+
_nmsRoutingCandidates.push(_optional10);
|
|
561
|
+
_nmsUsdaBegin(_out12, 3, "NomosStringValue", "/Change/Call/Payload/f_973daecb96bc05df");
|
|
562
|
+
_nmsUsdaRel(_out12, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_973daecb96bc05df");
|
|
563
|
+
_nmsUsdaRel(_out12, 4, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
564
|
+
_nmsUsdaString(_out12, 4, "string", "nomos:value", _optional10);
|
|
565
|
+
_nmsUsdaClose(_out12, 3);
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
{
|
|
570
|
+
const _out13 = _payloadChildren0;
|
|
571
|
+
_nmsRoutingCandidates.push(payload["lawClosureIdentity"]);
|
|
572
|
+
_nmsUsdaBegin(_out13, 3, "NomosStringValue", "/Change/Call/Payload/f_b89e206d03838b3f");
|
|
573
|
+
_nmsUsdaRel(_out13, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_b89e206d03838b3f");
|
|
574
|
+
_nmsUsdaRel(_out13, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
575
|
+
_nmsUsdaString(_out13, 4, "string", "nomos:value", payload["lawClosureIdentity"]);
|
|
576
|
+
_nmsUsdaClose(_out13, 3);
|
|
577
|
+
}
|
|
578
|
+
if (payload["finalizers"] !== void 0) {
|
|
579
|
+
const _optional14 = payload["finalizers"];
|
|
580
|
+
{
|
|
581
|
+
const _out15 = _payloadChildren0;
|
|
582
|
+
_nmsUsdaBegin(_out15, 3, "NomosListValue", "/Change/Call/Payload/f_ba5c0ccfec7ef978");
|
|
583
|
+
_nmsUsdaRel(_out15, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_29921c75db70745b/Fields/f_ba5c0ccfec7ef978");
|
|
584
|
+
_nmsUsdaRel(_out15, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_8f49dab37fd06574");
|
|
585
|
+
const _children16 = [];
|
|
586
|
+
for (let _index17 = 0; _index17 < _optional14.length; _index17++) {
|
|
587
|
+
{
|
|
588
|
+
const _out18 = _children16;
|
|
589
|
+
_nmsRoutingCandidates.push(_optional14[_index17]);
|
|
590
|
+
_nmsUsdaBegin(_out18, 4, "NomosStringValue", "/Change/Call/Payload/f_ba5c0ccfec7ef978/i_" + String(_index17).padStart(8, "0"));
|
|
591
|
+
_nmsUsdaRel(_out18, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
592
|
+
_nmsUsdaString(_out18, 5, "string", "nomos:value", _optional14[_index17]);
|
|
593
|
+
_nmsUsdaClose(_out18, 4);
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
_nmsUsdaChildren(_out15, _children16);
|
|
597
|
+
_nmsUsdaClose(_out15, 3);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
_nmsUsdaChildren(out, _payloadChildren0);
|
|
601
|
+
_nmsUsdaClose(out, 2);
|
|
602
|
+
_nmsUsdaClose(out, 1);
|
|
603
|
+
_nmsUsdaClose(out, 0);
|
|
604
|
+
return _nmsGeneratedCall("nomos", "stageDomain", _nmsUsdaUtf8(out.join("\n") + "\n"), _nmsRoutingCandidates);
|
|
605
|
+
}
|
|
606
|
+
function _nmsCallUsda_nomos_promoteDomain(payload, nmsInternalWorkspace) {
|
|
607
|
+
const _nmsRoutingCandidates = [];
|
|
608
|
+
const out = [
|
|
609
|
+
"#usda 1.0",
|
|
610
|
+
"(",
|
|
611
|
+
' defaultPrim = "Change"',
|
|
612
|
+
")",
|
|
613
|
+
"",
|
|
614
|
+
'def NomosChange "Change"',
|
|
615
|
+
"{",
|
|
616
|
+
" custom rel nomos:directive = </Nomos/Domains/d_a0c452a9439bb87f/Intents/i_19fadc014ad1a29f>",
|
|
617
|
+
"",
|
|
618
|
+
' def NomosCall "Call"',
|
|
619
|
+
" {",
|
|
620
|
+
" custom rel nomos:contract = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1>",
|
|
621
|
+
"",
|
|
622
|
+
' def NomosRecordValue "Payload"',
|
|
623
|
+
" {",
|
|
624
|
+
" custom rel nomos:type = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1>"
|
|
625
|
+
];
|
|
626
|
+
const _payloadChildren0 = [];
|
|
627
|
+
{
|
|
628
|
+
const _out1 = _payloadChildren0;
|
|
629
|
+
_nmsUsdaBegin(_out1, 3, "NomosRecordValue", "/Change/Call/Payload/f_2b09f552be69963e");
|
|
630
|
+
_nmsUsdaRel(_out1, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1/Fields/f_2b09f552be69963e");
|
|
631
|
+
_nmsUsdaRel(_out1, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce");
|
|
632
|
+
const _children2 = [];
|
|
633
|
+
{
|
|
634
|
+
const _out3 = _children2;
|
|
635
|
+
_nmsRoutingCandidates.push(payload["preflight"]["atHash"]);
|
|
636
|
+
_nmsUsdaBegin(_out3, 4, "NomosStringValue", "/Change/Call/Payload/f_2b09f552be69963e/f_bcd35c7741e77072");
|
|
637
|
+
_nmsUsdaRel(_out3, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_bcd35c7741e77072");
|
|
638
|
+
_nmsUsdaRel(_out3, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_2cb4f34cab8c95cb");
|
|
639
|
+
_nmsUsdaString(_out3, 5, "string", "nomos:value", payload["preflight"]["atHash"]);
|
|
640
|
+
_nmsUsdaClose(_out3, 4);
|
|
641
|
+
}
|
|
642
|
+
{
|
|
643
|
+
const _out4 = _children2;
|
|
644
|
+
_nmsUsdaBegin(_out4, 4, "NomosBoolValue", "/Change/Call/Payload/f_2b09f552be69963e/f_7dc8402a5b449a87");
|
|
645
|
+
_nmsUsdaRel(_out4, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_7dc8402a5b449a87");
|
|
646
|
+
_nmsUsdaRel(_out4, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_7e69f1a92bd07181");
|
|
647
|
+
_nmsUsdaScalar(_out4, 5, "bool", "nomos:value", "true");
|
|
648
|
+
_nmsUsdaClose(_out4, 4);
|
|
649
|
+
}
|
|
650
|
+
{
|
|
651
|
+
const _out5 = _children2;
|
|
652
|
+
_nmsRoutingCandidates.push(payload["preflight"]["atStateRoot"]);
|
|
653
|
+
_nmsUsdaBegin(_out5, 4, "NomosStringValue", "/Change/Call/Payload/f_2b09f552be69963e/f_2e3db9abeea3b26d");
|
|
654
|
+
_nmsUsdaRel(_out5, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_2e3db9abeea3b26d");
|
|
655
|
+
_nmsUsdaRel(_out5, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_2cb4f34cab8c95cb");
|
|
656
|
+
_nmsUsdaString(_out5, 5, "string", "nomos:value", payload["preflight"]["atStateRoot"]);
|
|
657
|
+
_nmsUsdaClose(_out5, 4);
|
|
658
|
+
}
|
|
659
|
+
{
|
|
660
|
+
const _out6 = _children2;
|
|
661
|
+
_nmsRoutingCandidates.push(payload["preflight"]["domain"]);
|
|
662
|
+
_nmsUsdaBegin(_out6, 4, "NomosStringValue", "/Change/Call/Payload/f_2b09f552be69963e/f_d9e172710a2c05dd");
|
|
663
|
+
_nmsUsdaRel(_out6, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_d9e172710a2c05dd");
|
|
664
|
+
_nmsUsdaRel(_out6, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_1f5af3cc2413c969");
|
|
665
|
+
_nmsUsdaString(_out6, 5, "string", "nomos:value", payload["preflight"]["domain"]);
|
|
666
|
+
_nmsUsdaClose(_out6, 4);
|
|
667
|
+
}
|
|
668
|
+
const _optional7 = payload["preflight"]["acceptanceReason"];
|
|
669
|
+
if (_optional7 !== void 0) {
|
|
670
|
+
{
|
|
671
|
+
const _out8 = _children2;
|
|
672
|
+
_nmsRoutingCandidates.push(_optional7);
|
|
673
|
+
_nmsUsdaBegin(_out8, 4, "NomosStringValue", "/Change/Call/Payload/f_2b09f552be69963e/f_c35bafa9ae6c1ea6");
|
|
674
|
+
_nmsUsdaRel(_out8, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_c35bafa9ae6c1ea6");
|
|
675
|
+
_nmsUsdaRel(_out8, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_1f5af3cc2413c969");
|
|
676
|
+
_nmsUsdaString(_out8, 5, "string", "nomos:value", _optional7);
|
|
677
|
+
_nmsUsdaClose(_out8, 4);
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
{
|
|
681
|
+
const _out9 = _children2;
|
|
682
|
+
_nmsRoutingCandidates.push(payload["preflight"]["candidateHash"]);
|
|
683
|
+
_nmsUsdaBegin(_out9, 4, "NomosStringValue", "/Change/Call/Payload/f_2b09f552be69963e/f_a45372ee1ddb7298");
|
|
684
|
+
_nmsUsdaRel(_out9, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_a45372ee1ddb7298");
|
|
685
|
+
_nmsUsdaRel(_out9, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
686
|
+
_nmsUsdaString(_out9, 5, "string", "nomos:value", payload["preflight"]["candidateHash"]);
|
|
687
|
+
_nmsUsdaClose(_out9, 4);
|
|
688
|
+
}
|
|
689
|
+
_nmsUsdaChildren(_out1, _children2);
|
|
690
|
+
_nmsUsdaClose(_out1, 3);
|
|
691
|
+
}
|
|
692
|
+
if (payload["replaces"] !== void 0) {
|
|
693
|
+
const _optional10 = payload["replaces"];
|
|
694
|
+
{
|
|
695
|
+
const _out11 = _payloadChildren0;
|
|
696
|
+
_nmsRoutingCandidates.push(_optional10);
|
|
697
|
+
_nmsUsdaBegin(_out11, 3, "NomosStringValue", "/Change/Call/Payload/f_2cbeb64696e8e239");
|
|
698
|
+
_nmsUsdaRel(_out11, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1/Fields/f_2cbeb64696e8e239");
|
|
699
|
+
_nmsUsdaRel(_out11, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
700
|
+
_nmsUsdaString(_out11, 4, "string", "nomos:value", _optional10);
|
|
701
|
+
_nmsUsdaClose(_out11, 3);
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
if (payload["dispositions"] !== void 0) {
|
|
705
|
+
const _optional12 = payload["dispositions"];
|
|
706
|
+
{
|
|
707
|
+
const _out13 = _payloadChildren0;
|
|
708
|
+
_nmsUsdaBegin(_out13, 3, "NomosRecordValue", "/Change/Call/Payload/f_71c39cf1862f933f");
|
|
709
|
+
_nmsUsdaRel(_out13, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1/Fields/f_71c39cf1862f933f");
|
|
710
|
+
_nmsUsdaRel(_out13, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a");
|
|
711
|
+
const _children14 = [];
|
|
712
|
+
const _optional15 = _optional12["ackBy"];
|
|
713
|
+
if (_optional15 !== void 0) {
|
|
714
|
+
{
|
|
715
|
+
const _out16 = _children14;
|
|
716
|
+
_nmsRoutingCandidates.push(_optional15);
|
|
717
|
+
_nmsUsdaBegin(_out16, 4, "NomosStringValue", "/Change/Call/Payload/f_71c39cf1862f933f/f_1e5bbaa9f06e7ee0");
|
|
718
|
+
_nmsUsdaRel(_out16, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_1e5bbaa9f06e7ee0");
|
|
719
|
+
_nmsUsdaRel(_out16, 5, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
720
|
+
_nmsUsdaString(_out16, 5, "string", "nomos:value", _optional15);
|
|
721
|
+
_nmsUsdaClose(_out16, 4);
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
const _optional17 = _optional12["rebinds"];
|
|
725
|
+
if (_optional17 !== void 0) {
|
|
726
|
+
{
|
|
727
|
+
const _out18 = _children14;
|
|
728
|
+
_nmsUsdaBegin(_out18, 4, "NomosMapValue", "/Change/Call/Payload/f_71c39cf1862f933f/f_b01f60d0e2740d56");
|
|
729
|
+
_nmsUsdaRel(_out18, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_b01f60d0e2740d56");
|
|
730
|
+
_nmsUsdaRel(_out18, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_045984fbf3b46411");
|
|
731
|
+
const _children19 = [];
|
|
732
|
+
const _entries20 = Object.entries(_optional17).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0);
|
|
733
|
+
for (let _index21 = 0; _index21 < _entries20.length; _index21++) {
|
|
734
|
+
const [_key22, _value23] = _entries20[_index21];
|
|
735
|
+
_nmsRoutingCandidates.push(_key22);
|
|
736
|
+
const _entryPath24 = "/Change/Call/Payload/f_71c39cf1862f933f/f_b01f60d0e2740d56/e_" + String(_index21).padStart(8, "0");
|
|
737
|
+
_nmsUsdaBegin(_children19, 5, "NomosMapEntry", _entryPath24);
|
|
738
|
+
_nmsUsdaString(_children19, 6, "string", "nomos:key", _key22);
|
|
739
|
+
if (7 > 0) _children19.push("");
|
|
740
|
+
{
|
|
741
|
+
const _out25 = _children19;
|
|
742
|
+
_nmsRoutingCandidates.push(_value23);
|
|
743
|
+
_nmsUsdaBegin(_out25, 6, "NomosStringValue", _entryPath24 + "/Value");
|
|
744
|
+
_nmsUsdaRel(_out25, 7, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
745
|
+
_nmsUsdaString(_out25, 7, "string", "nomos:value", _value23);
|
|
746
|
+
_nmsUsdaClose(_out25, 6);
|
|
747
|
+
}
|
|
748
|
+
_nmsUsdaClose(_children19, 5);
|
|
749
|
+
}
|
|
750
|
+
_nmsUsdaChildren(_out18, _children19);
|
|
751
|
+
_nmsUsdaClose(_out18, 4);
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
const _optional26 = _optional12["retired"];
|
|
755
|
+
if (_optional26 !== void 0) {
|
|
756
|
+
{
|
|
757
|
+
const _out27 = _children14;
|
|
758
|
+
_nmsUsdaBegin(_out27, 4, "NomosListValue", "/Change/Call/Payload/f_71c39cf1862f933f/f_cb7f3511be108b94");
|
|
759
|
+
_nmsUsdaRel(_out27, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_cb7f3511be108b94");
|
|
760
|
+
_nmsUsdaRel(_out27, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_4ac964a743207b02");
|
|
761
|
+
const _children28 = [];
|
|
762
|
+
for (let _index29 = 0; _index29 < _optional26.length; _index29++) {
|
|
763
|
+
{
|
|
764
|
+
const _out30 = _children28;
|
|
765
|
+
_nmsRoutingCandidates.push(_optional26[_index29]);
|
|
766
|
+
_nmsUsdaBegin(_out30, 5, "NomosStringValue", "/Change/Call/Payload/f_71c39cf1862f933f/f_cb7f3511be108b94/i_" + String(_index29).padStart(8, "0"));
|
|
767
|
+
_nmsUsdaRel(_out30, 6, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
768
|
+
_nmsUsdaString(_out30, 6, "string", "nomos:value", _optional26[_index29]);
|
|
769
|
+
_nmsUsdaClose(_out30, 5);
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
_nmsUsdaChildren(_out27, _children28);
|
|
773
|
+
_nmsUsdaClose(_out27, 4);
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
const _optional31 = _optional12["retyped"];
|
|
777
|
+
if (_optional31 !== void 0) {
|
|
778
|
+
{
|
|
779
|
+
const _out32 = _children14;
|
|
780
|
+
_nmsUsdaBegin(_out32, 4, "NomosMapValue", "/Change/Call/Payload/f_71c39cf1862f933f/f_e22ae9fd11240338");
|
|
781
|
+
_nmsUsdaRel(_out32, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_e22ae9fd11240338");
|
|
782
|
+
_nmsUsdaRel(_out32, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_045984fbf3b46411");
|
|
783
|
+
const _children33 = [];
|
|
784
|
+
const _entries34 = Object.entries(_optional31).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0);
|
|
785
|
+
for (let _index35 = 0; _index35 < _entries34.length; _index35++) {
|
|
786
|
+
const [_key36, _value37] = _entries34[_index35];
|
|
787
|
+
_nmsRoutingCandidates.push(_key36);
|
|
788
|
+
const _entryPath38 = "/Change/Call/Payload/f_71c39cf1862f933f/f_e22ae9fd11240338/e_" + String(_index35).padStart(8, "0");
|
|
789
|
+
_nmsUsdaBegin(_children33, 5, "NomosMapEntry", _entryPath38);
|
|
790
|
+
_nmsUsdaString(_children33, 6, "string", "nomos:key", _key36);
|
|
791
|
+
if (7 > 0) _children33.push("");
|
|
792
|
+
{
|
|
793
|
+
const _out39 = _children33;
|
|
794
|
+
_nmsRoutingCandidates.push(_value37);
|
|
795
|
+
_nmsUsdaBegin(_out39, 6, "NomosStringValue", _entryPath38 + "/Value");
|
|
796
|
+
_nmsUsdaRel(_out39, 7, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
797
|
+
_nmsUsdaString(_out39, 7, "string", "nomos:value", _value37);
|
|
798
|
+
_nmsUsdaClose(_out39, 6);
|
|
799
|
+
}
|
|
800
|
+
_nmsUsdaClose(_children33, 5);
|
|
801
|
+
}
|
|
802
|
+
_nmsUsdaChildren(_out32, _children33);
|
|
803
|
+
_nmsUsdaClose(_out32, 4);
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
_nmsUsdaChildren(_out13, _children14);
|
|
807
|
+
_nmsUsdaClose(_out13, 3);
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
if (payload["retireReplaced"] !== void 0) {
|
|
811
|
+
const _optional40 = payload["retireReplaced"];
|
|
812
|
+
{
|
|
813
|
+
const _out41 = _payloadChildren0;
|
|
814
|
+
{
|
|
815
|
+
const _out42 = _payloadChildren0;
|
|
816
|
+
_nmsUsdaBegin(_out42, 3, "NomosBoolValue", "/Change/Call/Payload/f_866a5da30aaeaa59");
|
|
817
|
+
_nmsUsdaRel(_out42, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1/Fields/f_866a5da30aaeaa59");
|
|
818
|
+
_nmsUsdaRel(_out42, 4, "nomos:type", "/Nomos/Framework/Types/t_0000000000000004");
|
|
819
|
+
_nmsUsdaScalar(_out42, 4, "bool", "nomos:value", _optional40 ? "true" : "false");
|
|
820
|
+
_nmsUsdaClose(_out42, 3);
|
|
821
|
+
}
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
{
|
|
825
|
+
const _out43 = _payloadChildren0;
|
|
826
|
+
_nmsRoutingCandidates.push(payload["domainHash"]);
|
|
827
|
+
_nmsUsdaBegin(_out43, 3, "NomosStringValue", "/Change/Call/Payload/f_8f7ab82f65eec9b4");
|
|
828
|
+
_nmsUsdaRel(_out43, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_bfad0dec92aee2f1/Fields/f_8f7ab82f65eec9b4");
|
|
829
|
+
_nmsUsdaRel(_out43, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
830
|
+
_nmsUsdaString(_out43, 4, "string", "nomos:value", payload["domainHash"]);
|
|
831
|
+
_nmsUsdaClose(_out43, 3);
|
|
832
|
+
}
|
|
833
|
+
_nmsUsdaChildren(out, _payloadChildren0);
|
|
834
|
+
_nmsUsdaClose(out, 2);
|
|
835
|
+
_nmsUsdaClose(out, 1);
|
|
836
|
+
_nmsUsdaClose(out, 0);
|
|
837
|
+
return _nmsGeneratedCall("nomos", "promoteDomain", _nmsUsdaUtf8(out.join("\n") + "\n"), _nmsRoutingCandidates);
|
|
838
|
+
}
|
|
839
|
+
function _nmsCallUsda_nomos_rollbackDomain(payload, nmsInternalWorkspace) {
|
|
840
|
+
const _nmsRoutingCandidates = [];
|
|
841
|
+
const out = [
|
|
842
|
+
"#usda 1.0",
|
|
843
|
+
"(",
|
|
844
|
+
' defaultPrim = "Change"',
|
|
845
|
+
")",
|
|
846
|
+
"",
|
|
847
|
+
'def NomosChange "Change"',
|
|
848
|
+
"{",
|
|
849
|
+
" custom rel nomos:directive = </Nomos/Domains/d_a0c452a9439bb87f/Intents/i_4425c0a08f105321>",
|
|
850
|
+
"",
|
|
851
|
+
' def NomosCall "Call"',
|
|
852
|
+
" {",
|
|
853
|
+
" custom rel nomos:contract = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_2d8585a3a3734daa>",
|
|
854
|
+
"",
|
|
855
|
+
' def NomosRecordValue "Payload"',
|
|
856
|
+
" {",
|
|
857
|
+
" custom rel nomos:type = </Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_2d8585a3a3734daa>"
|
|
858
|
+
];
|
|
859
|
+
const _payloadChildren0 = [];
|
|
860
|
+
{
|
|
861
|
+
const _out1 = _payloadChildren0;
|
|
862
|
+
_nmsUsdaBegin(_out1, 3, "NomosRecordValue", "/Change/Call/Payload/f_143aee879824faff");
|
|
863
|
+
_nmsUsdaRel(_out1, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_2d8585a3a3734daa/Fields/f_143aee879824faff");
|
|
864
|
+
_nmsUsdaRel(_out1, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce");
|
|
865
|
+
const _children2 = [];
|
|
866
|
+
{
|
|
867
|
+
const _out3 = _children2;
|
|
868
|
+
_nmsRoutingCandidates.push(payload["preflight"]["atStateRoot"]);
|
|
869
|
+
_nmsUsdaBegin(_out3, 4, "NomosStringValue", "/Change/Call/Payload/f_143aee879824faff/f_2e3db9abeea3b26d");
|
|
870
|
+
_nmsUsdaRel(_out3, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_2e3db9abeea3b26d");
|
|
871
|
+
_nmsUsdaRel(_out3, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_2cb4f34cab8c95cb");
|
|
872
|
+
_nmsUsdaString(_out3, 5, "string", "nomos:value", payload["preflight"]["atStateRoot"]);
|
|
873
|
+
_nmsUsdaClose(_out3, 4);
|
|
874
|
+
}
|
|
875
|
+
{
|
|
876
|
+
const _out4 = _children2;
|
|
877
|
+
_nmsUsdaBegin(_out4, 4, "NomosBoolValue", "/Change/Call/Payload/f_143aee879824faff/f_7dc8402a5b449a87");
|
|
878
|
+
_nmsUsdaRel(_out4, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_7dc8402a5b449a87");
|
|
879
|
+
_nmsUsdaRel(_out4, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_7e69f1a92bd07181");
|
|
880
|
+
_nmsUsdaScalar(_out4, 5, "bool", "nomos:value", "true");
|
|
881
|
+
_nmsUsdaClose(_out4, 4);
|
|
882
|
+
}
|
|
883
|
+
{
|
|
884
|
+
const _out5 = _children2;
|
|
885
|
+
_nmsRoutingCandidates.push(payload["preflight"]["candidateHash"]);
|
|
886
|
+
_nmsUsdaBegin(_out5, 4, "NomosStringValue", "/Change/Call/Payload/f_143aee879824faff/f_a45372ee1ddb7298");
|
|
887
|
+
_nmsUsdaRel(_out5, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_a45372ee1ddb7298");
|
|
888
|
+
_nmsUsdaRel(_out5, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
889
|
+
_nmsUsdaString(_out5, 5, "string", "nomos:value", payload["preflight"]["candidateHash"]);
|
|
890
|
+
_nmsUsdaClose(_out5, 4);
|
|
891
|
+
}
|
|
892
|
+
{
|
|
893
|
+
const _out6 = _children2;
|
|
894
|
+
_nmsRoutingCandidates.push(payload["preflight"]["atHash"]);
|
|
895
|
+
_nmsUsdaBegin(_out6, 4, "NomosStringValue", "/Change/Call/Payload/f_143aee879824faff/f_bcd35c7741e77072");
|
|
896
|
+
_nmsUsdaRel(_out6, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_bcd35c7741e77072");
|
|
897
|
+
_nmsUsdaRel(_out6, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_2cb4f34cab8c95cb");
|
|
898
|
+
_nmsUsdaString(_out6, 5, "string", "nomos:value", payload["preflight"]["atHash"]);
|
|
899
|
+
_nmsUsdaClose(_out6, 4);
|
|
900
|
+
}
|
|
901
|
+
const _optional7 = payload["preflight"]["acceptanceReason"];
|
|
902
|
+
if (_optional7 !== void 0) {
|
|
903
|
+
{
|
|
904
|
+
const _out8 = _children2;
|
|
905
|
+
_nmsRoutingCandidates.push(_optional7);
|
|
906
|
+
_nmsUsdaBegin(_out8, 4, "NomosStringValue", "/Change/Call/Payload/f_143aee879824faff/f_c35bafa9ae6c1ea6");
|
|
907
|
+
_nmsUsdaRel(_out8, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_c35bafa9ae6c1ea6");
|
|
908
|
+
_nmsUsdaRel(_out8, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_1f5af3cc2413c969");
|
|
909
|
+
_nmsUsdaString(_out8, 5, "string", "nomos:value", _optional7);
|
|
910
|
+
_nmsUsdaClose(_out8, 4);
|
|
911
|
+
}
|
|
912
|
+
}
|
|
913
|
+
{
|
|
914
|
+
const _out9 = _children2;
|
|
915
|
+
_nmsRoutingCandidates.push(payload["preflight"]["domain"]);
|
|
916
|
+
_nmsUsdaBegin(_out9, 4, "NomosStringValue", "/Change/Call/Payload/f_143aee879824faff/f_d9e172710a2c05dd");
|
|
917
|
+
_nmsUsdaRel(_out9, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_662d9d31828d00ce/Fields/f_d9e172710a2c05dd");
|
|
918
|
+
_nmsUsdaRel(_out9, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_1f5af3cc2413c969");
|
|
919
|
+
_nmsUsdaString(_out9, 5, "string", "nomos:value", payload["preflight"]["domain"]);
|
|
920
|
+
_nmsUsdaClose(_out9, 4);
|
|
921
|
+
}
|
|
922
|
+
_nmsUsdaChildren(_out1, _children2);
|
|
923
|
+
_nmsUsdaClose(_out1, 3);
|
|
924
|
+
}
|
|
925
|
+
{
|
|
926
|
+
const _out10 = _payloadChildren0;
|
|
927
|
+
_nmsRoutingCandidates.push(payload["priorHash"]);
|
|
928
|
+
_nmsUsdaBegin(_out10, 3, "NomosStringValue", "/Change/Call/Payload/f_63bbe900a232095c");
|
|
929
|
+
_nmsUsdaRel(_out10, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_2d8585a3a3734daa/Fields/f_63bbe900a232095c");
|
|
930
|
+
_nmsUsdaRel(_out10, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
931
|
+
_nmsUsdaString(_out10, 4, "string", "nomos:value", payload["priorHash"]);
|
|
932
|
+
_nmsUsdaClose(_out10, 3);
|
|
933
|
+
}
|
|
934
|
+
{
|
|
935
|
+
const _out11 = _payloadChildren0;
|
|
936
|
+
_nmsRoutingCandidates.push(payload["candidateHash"]);
|
|
937
|
+
_nmsUsdaBegin(_out11, 3, "NomosStringValue", "/Change/Call/Payload/f_d10378a500b26e97");
|
|
938
|
+
_nmsUsdaRel(_out11, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_2d8585a3a3734daa/Fields/f_d10378a500b26e97");
|
|
939
|
+
_nmsUsdaRel(_out11, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_117946e676494f08");
|
|
940
|
+
_nmsUsdaString(_out11, 4, "string", "nomos:value", payload["candidateHash"]);
|
|
941
|
+
_nmsUsdaClose(_out11, 3);
|
|
942
|
+
}
|
|
943
|
+
if (payload["dispositions"] !== void 0) {
|
|
944
|
+
const _optional12 = payload["dispositions"];
|
|
945
|
+
{
|
|
946
|
+
const _out13 = _payloadChildren0;
|
|
947
|
+
_nmsUsdaBegin(_out13, 3, "NomosRecordValue", "/Change/Call/Payload/f_e015910b0a119d84");
|
|
948
|
+
_nmsUsdaRel(_out13, 4, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Contracts/c_2d8585a3a3734daa/Fields/f_e015910b0a119d84");
|
|
949
|
+
_nmsUsdaRel(_out13, 4, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a");
|
|
950
|
+
const _children14 = [];
|
|
951
|
+
const _optional15 = _optional12["retyped"];
|
|
952
|
+
if (_optional15 !== void 0) {
|
|
953
|
+
{
|
|
954
|
+
const _out16 = _children14;
|
|
955
|
+
_nmsUsdaBegin(_out16, 4, "NomosMapValue", "/Change/Call/Payload/f_e015910b0a119d84/f_e22ae9fd11240338");
|
|
956
|
+
_nmsUsdaRel(_out16, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_e22ae9fd11240338");
|
|
957
|
+
_nmsUsdaRel(_out16, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_045984fbf3b46411");
|
|
958
|
+
const _children17 = [];
|
|
959
|
+
const _entries18 = Object.entries(_optional15).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0);
|
|
960
|
+
for (let _index19 = 0; _index19 < _entries18.length; _index19++) {
|
|
961
|
+
const [_key20, _value21] = _entries18[_index19];
|
|
962
|
+
_nmsRoutingCandidates.push(_key20);
|
|
963
|
+
const _entryPath22 = "/Change/Call/Payload/f_e015910b0a119d84/f_e22ae9fd11240338/e_" + String(_index19).padStart(8, "0");
|
|
964
|
+
_nmsUsdaBegin(_children17, 5, "NomosMapEntry", _entryPath22);
|
|
965
|
+
_nmsUsdaString(_children17, 6, "string", "nomos:key", _key20);
|
|
966
|
+
if (7 > 0) _children17.push("");
|
|
967
|
+
{
|
|
968
|
+
const _out23 = _children17;
|
|
969
|
+
_nmsRoutingCandidates.push(_value21);
|
|
970
|
+
_nmsUsdaBegin(_out23, 6, "NomosStringValue", _entryPath22 + "/Value");
|
|
971
|
+
_nmsUsdaRel(_out23, 7, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
972
|
+
_nmsUsdaString(_out23, 7, "string", "nomos:value", _value21);
|
|
973
|
+
_nmsUsdaClose(_out23, 6);
|
|
974
|
+
}
|
|
975
|
+
_nmsUsdaClose(_children17, 5);
|
|
976
|
+
}
|
|
977
|
+
_nmsUsdaChildren(_out16, _children17);
|
|
978
|
+
_nmsUsdaClose(_out16, 4);
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
const _optional24 = _optional12["rebinds"];
|
|
982
|
+
if (_optional24 !== void 0) {
|
|
983
|
+
{
|
|
984
|
+
const _out25 = _children14;
|
|
985
|
+
_nmsUsdaBegin(_out25, 4, "NomosMapValue", "/Change/Call/Payload/f_e015910b0a119d84/f_b01f60d0e2740d56");
|
|
986
|
+
_nmsUsdaRel(_out25, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_b01f60d0e2740d56");
|
|
987
|
+
_nmsUsdaRel(_out25, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_045984fbf3b46411");
|
|
988
|
+
const _children26 = [];
|
|
989
|
+
const _entries27 = Object.entries(_optional24).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0);
|
|
990
|
+
for (let _index28 = 0; _index28 < _entries27.length; _index28++) {
|
|
991
|
+
const [_key29, _value30] = _entries27[_index28];
|
|
992
|
+
_nmsRoutingCandidates.push(_key29);
|
|
993
|
+
const _entryPath31 = "/Change/Call/Payload/f_e015910b0a119d84/f_b01f60d0e2740d56/e_" + String(_index28).padStart(8, "0");
|
|
994
|
+
_nmsUsdaBegin(_children26, 5, "NomosMapEntry", _entryPath31);
|
|
995
|
+
_nmsUsdaString(_children26, 6, "string", "nomos:key", _key29);
|
|
996
|
+
if (7 > 0) _children26.push("");
|
|
997
|
+
{
|
|
998
|
+
const _out32 = _children26;
|
|
999
|
+
_nmsRoutingCandidates.push(_value30);
|
|
1000
|
+
_nmsUsdaBegin(_out32, 6, "NomosStringValue", _entryPath31 + "/Value");
|
|
1001
|
+
_nmsUsdaRel(_out32, 7, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
1002
|
+
_nmsUsdaString(_out32, 7, "string", "nomos:value", _value30);
|
|
1003
|
+
_nmsUsdaClose(_out32, 6);
|
|
1004
|
+
}
|
|
1005
|
+
_nmsUsdaClose(_children26, 5);
|
|
1006
|
+
}
|
|
1007
|
+
_nmsUsdaChildren(_out25, _children26);
|
|
1008
|
+
_nmsUsdaClose(_out25, 4);
|
|
1009
|
+
}
|
|
1010
|
+
}
|
|
1011
|
+
const _optional33 = _optional12["retired"];
|
|
1012
|
+
if (_optional33 !== void 0) {
|
|
1013
|
+
{
|
|
1014
|
+
const _out34 = _children14;
|
|
1015
|
+
_nmsUsdaBegin(_out34, 4, "NomosListValue", "/Change/Call/Payload/f_e015910b0a119d84/f_cb7f3511be108b94");
|
|
1016
|
+
_nmsUsdaRel(_out34, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_cb7f3511be108b94");
|
|
1017
|
+
_nmsUsdaRel(_out34, 5, "nomos:type", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_4ac964a743207b02");
|
|
1018
|
+
const _children35 = [];
|
|
1019
|
+
for (let _index36 = 0; _index36 < _optional33.length; _index36++) {
|
|
1020
|
+
{
|
|
1021
|
+
const _out37 = _children35;
|
|
1022
|
+
_nmsRoutingCandidates.push(_optional33[_index36]);
|
|
1023
|
+
_nmsUsdaBegin(_out37, 5, "NomosStringValue", "/Change/Call/Payload/f_e015910b0a119d84/f_cb7f3511be108b94/i_" + String(_index36).padStart(8, "0"));
|
|
1024
|
+
_nmsUsdaRel(_out37, 6, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
1025
|
+
_nmsUsdaString(_out37, 6, "string", "nomos:value", _optional33[_index36]);
|
|
1026
|
+
_nmsUsdaClose(_out37, 5);
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
_nmsUsdaChildren(_out34, _children35);
|
|
1030
|
+
_nmsUsdaClose(_out34, 4);
|
|
1031
|
+
}
|
|
1032
|
+
}
|
|
1033
|
+
const _optional38 = _optional12["ackBy"];
|
|
1034
|
+
if (_optional38 !== void 0) {
|
|
1035
|
+
{
|
|
1036
|
+
const _out39 = _children14;
|
|
1037
|
+
_nmsRoutingCandidates.push(_optional38);
|
|
1038
|
+
_nmsUsdaBegin(_out39, 4, "NomosStringValue", "/Change/Call/Payload/f_e015910b0a119d84/f_1e5bbaa9f06e7ee0");
|
|
1039
|
+
_nmsUsdaRel(_out39, 5, "nomos:field", "/Nomos/Domains/d_a0c452a9439bb87f/Types/t_6f65f9b73ad7e27a/Fields/f_1e5bbaa9f06e7ee0");
|
|
1040
|
+
_nmsUsdaRel(_out39, 5, "nomos:type", "/Nomos/Framework/Types/t_0000000000000001");
|
|
1041
|
+
_nmsUsdaString(_out39, 5, "string", "nomos:value", _optional38);
|
|
1042
|
+
_nmsUsdaClose(_out39, 4);
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
1045
|
+
_nmsUsdaChildren(_out13, _children14);
|
|
1046
|
+
_nmsUsdaClose(_out13, 3);
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
_nmsUsdaChildren(out, _payloadChildren0);
|
|
1050
|
+
_nmsUsdaClose(out, 2);
|
|
1051
|
+
_nmsUsdaClose(out, 1);
|
|
1052
|
+
_nmsUsdaClose(out, 0);
|
|
1053
|
+
return _nmsGeneratedCall("nomos", "rollbackDomain", _nmsUsdaUtf8(out.join("\n") + "\n"), _nmsRoutingCandidates);
|
|
1054
|
+
}
|
|
1055
|
+
var _nmsGeneratedCall, _nmsUsdaUtf8, _nmsUsdaQuote, _nmsUsdaLine, _nmsUsdaBegin, _nmsUsdaRel, _nmsUsdaString, _nmsUsdaScalar, _nmsUsdaClose, _nmsUsdaChildren, sha256Digest, nomosOperatorCalls;
|
|
1056
|
+
var init_nomos_operator = __esm({
|
|
1057
|
+
"../adapter/generated/nomos.operator.mjs"() {
|
|
1058
|
+
"use strict";
|
|
1059
|
+
_nmsGeneratedCall = (domain, directive, canonicalUsda, routingCandidates) => ({ domain, directive, canonicalUsda, routingCandidates: [...new Set(routingCandidates)] });
|
|
1060
|
+
_nmsUsdaUtf8 = (value) => {
|
|
1061
|
+
const bytes = [];
|
|
1062
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
1063
|
+
let point = value.charCodeAt(index);
|
|
1064
|
+
if (point >= 55296 && point <= 56319 && index + 1 < value.length) {
|
|
1065
|
+
const low = value.charCodeAt(index + 1);
|
|
1066
|
+
if (low >= 56320 && low <= 57343) {
|
|
1067
|
+
point = 65536 + (point - 55296 << 10) + (low - 56320);
|
|
1068
|
+
index += 1;
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
if (point <= 127) bytes.push(point);
|
|
1072
|
+
else if (point <= 2047) bytes.push(192 | point >> 6, 128 | point & 63);
|
|
1073
|
+
else if (point <= 65535) bytes.push(224 | point >> 12, 128 | point >> 6 & 63, 128 | point & 63);
|
|
1074
|
+
else bytes.push(240 | point >> 18, 128 | point >> 12 & 63, 128 | point >> 6 & 63, 128 | point & 63);
|
|
1075
|
+
}
|
|
1076
|
+
return Uint8Array.from(bytes);
|
|
1077
|
+
};
|
|
1078
|
+
_nmsUsdaQuote = (value) => {
|
|
1079
|
+
let out = '"';
|
|
1080
|
+
for (const character of value) {
|
|
1081
|
+
const point = character.codePointAt(0);
|
|
1082
|
+
if (character === '"') out += '\\"';
|
|
1083
|
+
else if (character === "\\") out += "\\\\";
|
|
1084
|
+
else if (character === "\n") out += "\\n";
|
|
1085
|
+
else if (character === "\r") out += "\\r";
|
|
1086
|
+
else if (character === " ") out += "\\t";
|
|
1087
|
+
else if (character === "\b") out += "\\b";
|
|
1088
|
+
else if (character === "\f") out += "\\f";
|
|
1089
|
+
else if (point < 32 || point >= 127 && point <= 159) out += "\\u" + point.toString(16).padStart(4, "0");
|
|
1090
|
+
else out += character;
|
|
1091
|
+
}
|
|
1092
|
+
return out + '"';
|
|
1093
|
+
};
|
|
1094
|
+
_nmsUsdaLine = (out, depth, value) => {
|
|
1095
|
+
out.push(" ".repeat(depth) + value);
|
|
1096
|
+
};
|
|
1097
|
+
_nmsUsdaBegin = (out, depth, type, path3) => {
|
|
1098
|
+
const name = path3.slice(path3.lastIndexOf("/") + 1);
|
|
1099
|
+
_nmsUsdaLine(out, depth, "def " + type + " " + _nmsUsdaQuote(name));
|
|
1100
|
+
_nmsUsdaLine(out, depth, "{");
|
|
1101
|
+
};
|
|
1102
|
+
_nmsUsdaRel = (out, depth, name, target) => _nmsUsdaLine(out, depth, "custom rel " + name + " = <" + target + ">");
|
|
1103
|
+
_nmsUsdaString = (out, depth, type, name, value) => _nmsUsdaLine(out, depth, "custom uniform " + type + " " + name + " = " + _nmsUsdaQuote(value));
|
|
1104
|
+
_nmsUsdaScalar = (out, depth, type, name, value) => _nmsUsdaLine(out, depth, "custom uniform " + type + " " + name + " = " + value);
|
|
1105
|
+
_nmsUsdaClose = (out, depth) => _nmsUsdaLine(out, depth, "}");
|
|
1106
|
+
_nmsUsdaChildren = (out, children2) => {
|
|
1107
|
+
if (children2.length > 0) {
|
|
1108
|
+
out.push("");
|
|
1109
|
+
out.push(...children2);
|
|
1110
|
+
}
|
|
1111
|
+
};
|
|
1112
|
+
sha256Digest = (value) => {
|
|
1113
|
+
if (!/^[0-9a-f]{64}$/.test(value)) throw new TypeError("expected a 64-character lowercase hexadecimal SHA-256 digest");
|
|
1114
|
+
return value;
|
|
1115
|
+
};
|
|
1116
|
+
nomosOperatorCalls = {
|
|
1117
|
+
installDomain(input) {
|
|
1118
|
+
const { domain, workspace, ...payload } = input;
|
|
1119
|
+
switch (domain) {
|
|
1120
|
+
case "nomos":
|
|
1121
|
+
return _nmsCallUsda_nomos_installDomain(payload, workspace);
|
|
1122
|
+
default:
|
|
1123
|
+
throw new Error("This law package has no 'installDomain' call in domain '" + domain + "'.");
|
|
1124
|
+
}
|
|
1125
|
+
},
|
|
1126
|
+
stageDomain(input) {
|
|
1127
|
+
const { domain, workspace, ...payload } = input;
|
|
1128
|
+
switch (domain) {
|
|
1129
|
+
case "nomos":
|
|
1130
|
+
return _nmsCallUsda_nomos_stageDomain(payload, workspace);
|
|
1131
|
+
default:
|
|
1132
|
+
throw new Error("This law package has no 'stageDomain' call in domain '" + domain + "'.");
|
|
1133
|
+
}
|
|
1134
|
+
},
|
|
1135
|
+
promoteDomain(input) {
|
|
1136
|
+
const { domain, workspace, ...payload } = input;
|
|
1137
|
+
switch (domain) {
|
|
1138
|
+
case "nomos":
|
|
1139
|
+
return _nmsCallUsda_nomos_promoteDomain(payload, workspace);
|
|
1140
|
+
default:
|
|
1141
|
+
throw new Error("This law package has no 'promoteDomain' call in domain '" + domain + "'.");
|
|
1142
|
+
}
|
|
1143
|
+
},
|
|
1144
|
+
rollbackDomain(input) {
|
|
1145
|
+
const { domain, workspace, ...payload } = input;
|
|
1146
|
+
switch (domain) {
|
|
1147
|
+
case "nomos":
|
|
1148
|
+
return _nmsCallUsda_nomos_rollbackDomain(payload, workspace);
|
|
1149
|
+
default:
|
|
1150
|
+
throw new Error("This law package has no 'rollbackDomain' call in domain '" + domain + "'.");
|
|
1151
|
+
}
|
|
1152
|
+
}
|
|
1153
|
+
};
|
|
1154
|
+
}
|
|
1155
|
+
});
|
|
1156
|
+
|
|
1157
|
+
// ../adapter/lifecycle-calls.ts
|
|
1158
|
+
function installDomainCall(workspace, payload) {
|
|
1159
|
+
return nomosOperatorCalls.installDomain({
|
|
1160
|
+
domain: "nomos",
|
|
1161
|
+
workspace,
|
|
1162
|
+
domainHash: sha256Digest(payload.domainHash),
|
|
1163
|
+
installedBy: payload.installedBy,
|
|
1164
|
+
lawClosureIdentity: sha256Digest(payload.lawClosureIdentity),
|
|
1165
|
+
...payload.authorityScope === void 0 ? {} : { authorityScope: payload.authorityScope },
|
|
1166
|
+
...payload.dependencies === void 0 ? {} : { dependencies: digestList(payload.dependencies) },
|
|
1167
|
+
...payload.finalizers === void 0 ? {} : { finalizers: digestList(payload.finalizers) }
|
|
1168
|
+
});
|
|
1169
|
+
}
|
|
1170
|
+
function stageDomainCall(workspace, payload) {
|
|
1171
|
+
return nomosOperatorCalls.stageDomain({
|
|
1172
|
+
domain: "nomos",
|
|
1173
|
+
workspace,
|
|
1174
|
+
domainHash: sha256Digest(payload.domainHash),
|
|
1175
|
+
installedBy: payload.installedBy,
|
|
1176
|
+
lawClosureIdentity: sha256Digest(payload.lawClosureIdentity),
|
|
1177
|
+
...payload.authorityScope === void 0 ? {} : { authorityScope: payload.authorityScope },
|
|
1178
|
+
...payload.dependencies === void 0 ? {} : { dependencies: digestList(payload.dependencies) },
|
|
1179
|
+
...payload.finalizers === void 0 ? {} : { finalizers: digestList(payload.finalizers) },
|
|
1180
|
+
...payload.supersedes === void 0 ? {} : { supersedes: sha256Digest(payload.supersedes) }
|
|
1181
|
+
});
|
|
1182
|
+
}
|
|
1183
|
+
var digestList;
|
|
1184
|
+
var init_lifecycle_calls = __esm({
|
|
1185
|
+
"../adapter/lifecycle-calls.ts"() {
|
|
1186
|
+
"use strict";
|
|
1187
|
+
init_domain_bootstrap_operator();
|
|
1188
|
+
init_nomos_operator();
|
|
1189
|
+
digestList = (values) => values?.map(sha256Digest);
|
|
1190
|
+
}
|
|
1191
|
+
});
|
|
1192
|
+
|
|
360
1193
|
// ../adapter/proto/nomos/kernel/v1/kernel_pb.js
|
|
361
1194
|
import { enumDesc, fileDesc, messageDesc, serviceDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
|
|
362
|
-
var file_nomos_kernel_v1_kernel, CallRequestSchema, CallResponseSchema, PrepareRemoteOfferRequestSchema, PrepareRemoteOfferResponseSchema, WorkspaceTargetSchema, DirectiveCallSchema, AuthoringOptionsSchema, CapturedClockSchema, BirthCertificateSchema, OfferRequestSchema, QueryRequestSchema, QueryAuthoritySchema, InjectedKeySchema, RowsQuerySchema, ByIdQuerySchema, TallyQuerySchema, SpatialQuerySchema, NamedQuerySchema, TestRequestSchema, SetTestRootRequestSchema, CustodyRequestSchema, PackDeltaRequestSchema, ApplyPackRequestSchema, RepoStatsRequestSchema, IntentsAboveRequestSchema, InspectChangeRequestSchema, RefusalVerdictSchema, EncodeRefusalVerdictRequestSchema, InspectRefusalVerdictRequestSchema, ProveCompactionEquivalenceRequestSchema, ReadBlobRequestSchema, ResolveRefRequestSchema, ListRefsRequestSchema, WriteRefRequestSchema, DeleteRefRequestSchema, WriteMetaCommitRequestSchema, LawClosureInfoRequestSchema, CheckpointExportRequestSchema, VerifiedFrontierReceiptSchema, StoredCheckpointManifestSchema, CheckpointImportRequestSchema, RestoreMainRequestSchema, ResolveStatePositionRequestSchema, NomosValueSchema, NomosStructSchema, QueryOperationSchema, QueryOperation, KernelLawCapabilitySchema, KernelLawCapability, CheckpointCompressionSchema, CheckpointCompression, CheckpointVerificationPolicySchema, CheckpointVerificationPolicy, CheckpointAssuranceSchema, CheckpointAssurance;
|
|
1195
|
+
var file_nomos_kernel_v1_kernel, CallRequestSchema, CallResponseSchema, OfferAggregateRefSchema, BornWorkspaceSchema, BirthOutcomeSchema, PrepareRemoteOfferRequestSchema, PrepareRemoteOfferResponseSchema, WorkspaceTargetSchema, InitializeWorkspaceRequestSchema, DirectiveCallSchema, AuthoringOptionsSchema, CapturedClockSchema, BirthCertificateSchema, SignBirthCertificateRequestSchema, OfferRequestSchema, QueryRequestSchema, QueryAuthoritySchema, InjectedKeySchema, RowsQuerySchema, ByIdQuerySchema, TallyQuerySchema, SpatialQuerySchema, NamedQuerySchema, TestRequestSchema, SetTestRootRequestSchema, CustodyRequestSchema, PackDeltaRequestSchema, ApplyPackRequestSchema, RepoStatsRequestSchema, IntentsAboveRequestSchema, InspectChangeRequestSchema, RefusalVerdictSchema, EncodeRefusalVerdictRequestSchema, InspectRefusalVerdictRequestSchema, ProveCompactionEquivalenceRequestSchema, ReadBlobRequestSchema, ResolveRefRequestSchema, ListRefsRequestSchema, WriteRefRequestSchema, DeleteRefRequestSchema, WriteMetaCommitRequestSchema, LawClosureInfoRequestSchema, CheckpointExportRequestSchema, VerifiedFrontierReceiptSchema, StoredCheckpointManifestSchema, CheckpointImportRequestSchema, RestoreMainRequestSchema, ResolveStatePositionRequestSchema, NomosValueSchema, NomosStructSchema, BirthOutcomeStatusSchema, BirthOutcomeStatus, QueryOperationSchema, QueryOperation, KernelLawCapabilitySchema, KernelLawCapability, CheckpointCompressionSchema, CheckpointCompression, CheckpointVerificationPolicySchema, CheckpointVerificationPolicy, CheckpointAssuranceSchema, CheckpointAssurance;
|
|
363
1196
|
var init_kernel_pb = __esm({
|
|
364
1197
|
"../adapter/proto/nomos/kernel/v1/kernel_pb.js"() {
|
|
365
1198
|
"use strict";
|
|
366
|
-
file_nomos_kernel_v1_kernel = /* @__PURE__ */ fileDesc("Chxub21vcy9rZXJuZWwvdjEva2VybmVsLnByb3RvEg9ub21vcy5rZXJuZWwudjEi/gQKC0NhbGxSZXF1ZXN0EhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoCRIsCgRvcGVuGAogASgLMhwubm9tb3Mua2VybmVsLnYxLk9wZW5SZXF1ZXN0SAASLgoFb2ZmZXIYCyABKAsyHS5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZXF1ZXN0SAASLgoFcXVlcnkYDCABKAsyHS5ub21vcy5rZXJuZWwudjEuUXVlcnlSZXF1ZXN0SAASMAoGb3V0Ym94GA0gASgLMh4ubm9tb3Mua2VybmVsLnYxLk91dGJveFJlcXVlc3RIABIsCgRzeW5jGA4gASgLMhwubm9tb3Mua2VybmVsLnYxLlN5bmNSZXF1ZXN0SAASMgoHY3VzdG9keRgPIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5DdXN0b2R5UmVxdWVzdEgAEiwKBHRlc3QYECABKAsyHC5ub21vcy5rZXJuZWwudjEuVGVzdFJlcXVlc3RIABJIChNzaWduX3ByZXBhcmVkX29mZmVyGBEgASgLMikubm9tb3Mua2VybmVsLnYxLlNpZ25QcmVwYXJlZE9mZmVyUmVxdWVzdEgAEkoKFHByZXBhcmVfcmVtb3RlX29mZmVyGBIgASgLMioubm9tb3Mua2VybmVsLnYxLlByZXBhcmVSZW1vdGVPZmZlclJlcXVlc3RIABJOChZzaWduX29mZmVyX3ByZXBhcmF0aW9uGBMgASgLMiwubm9tb3Mua2VybmVsLnYxLlNpZ25PZmZlclByZXBhcmF0aW9uUmVxdWVzdEgAQgsKCW9wZXJhdGlvbiK0BQoMQ2FsbFJlc3BvbnNlEhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoCRIrCgdmYWlsdXJlGAogASgLMhgubm9tb3Mua2VybmVsLnYxLkZhaWx1cmVIABItCgRvcGVuGAsgASgLMh0ubm9tb3Mua2VybmVsLnYxLk9wZW5SZXNwb25zZUgAEi8KBW9mZmVyGAwgASgLMh4ubm9tb3Mua2VybmVsLnYxLk9mZmVyUmVzcG9uc2VIABIvCgVxdWVyeRgNIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5RdWVyeVJlc3BvbnNlSAASMQoGb3V0Ym94GA4gASgLMh8ubm9tb3Mua2VybmVsLnYxLk91dGJveFJlc3BvbnNlSAASLQoEc3luYxgPIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5TeW5jUmVzcG9uc2VIABIzCgdjdXN0b2R5GBAgASgLMiAubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlSZXNwb25zZUgAEi0KBHRlc3QYESABKAsyHS5ub21vcy5rZXJuZWwudjEuVGVzdFJlc3BvbnNlSAASSQoTc2lnbl9wcmVwYXJlZF9vZmZlchgSIAEoCzIqLm5vbW9zLmtlcm5lbC52MS5TaWduUHJlcGFyZWRPZmZlclJlc3BvbnNlSAASSwoUcHJlcGFyZV9yZW1vdGVfb2ZmZXIYEyABKAsyKy5ub21vcy5rZXJuZWwudjEuUHJlcGFyZVJlbW90ZU9mZmVyUmVzcG9uc2VIABJPChZzaWduX29mZmVyX3ByZXBhcmF0aW9uGBQgASgLMi0ubm9tb3Mua2VybmVsLnYxLlNpZ25PZmZlclByZXBhcmF0aW9uUmVzcG9uc2VIAEIJCgdvdXRjb21lIlcKB0ZhaWx1cmUSDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEi0KB2RldGFpbHMYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QiPAoMT3BlblJlc3BvbnNlEiwKBnJlc3VsdBgBIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCL3AgoNT2ZmZXJSZXNwb25zZRIyCghhZG1pdHRlZBgBIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5PZmZlckFkbWl0dGVkSAASMAoHcmVmdXNlZBgCIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5PZmZlclJlZnVzZWRIABI7Cg1kZWFkX2xldHRlcmVkGAMgASgLMiIubm9tb3Mua2VybmVsLnYxLk9mZmVyRGVhZExldHRlcmVkSAASOAoLcXVhcmFudGluZWQYBCABKAsyIS5ub21vcy5rZXJuZWwudjEuT2ZmZXJRdWFyYW50aW5lZEgAEkoKFWJsb2NrZWRfb25fZGVwZW5kZW5jeRgFIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5PZmZlckJsb2NrZWRPbkRlcGVuZGVuY3lIABIyCghwcmVwYXJlZBgGIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5PZmZlclByZXBhcmVkSABCCQoHb3V0Y29tZSI9Cg1PZmZlckFkbWl0dGVkEiwKBnJlc3VsdBgBIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCKWAQoMT2ZmZXJSZWZ1c2VkEhUKCG9mZmVyX2lkGAEgASgJSACIAQESLwoHcmVmdXNhbBgCIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxSZWZ1c2FsEjEKC2RpYWdub3N0aWNzGAMgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0QgsKCV9vZmZlcl9pZCJ6ChFPZmZlckRlYWRMZXR0ZXJlZBIVCghvZmZlcl9pZBgBIAEoCUgAiAEBEg4KBnJlYXNvbhgCIAEoCRIxCgtkaWFnbm9zdGljcxgDIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdEILCglfb2ZmZXJfaWQirgEKEE9mZmVyUXVhcmFudGluZWQSFQoIb2ZmZXJfaWQYASABKAlIAIgBARIZChFhdXRob3JlZF9sYXdfaGFzaBgCIAEoCRIYChBjdXJyZW50X2xhd19oYXNoGAMgASgJEg4KBnJlYXNvbhgEIAEoCRIxCgtkaWFnbm9zdGljcxgFIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdEILCglfb2ZmZXJfaWQigQEKGE9mZmVyQmxvY2tlZE9uRGVwZW5kZW5jeRIVCghvZmZlcl9pZBgBIAEoCUgAiAEBEg4KBmRldGFpbBgCIAEoCRIxCgtkaWFnbm9zdGljcxgDIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdEILCglfb2ZmZXJfaWQihQEKDU9mZmVyUHJlcGFyZWQSHAoUYXV0aG9yZWRfY2hhbmdlX3VzZGEYASABKAwSGQoRd29ya3NwYWNlX2JpbmRpbmcYAiABKAkSGAoQcHJlcGFyZWRfYXRfaGVhZBgDIAEoCRIhChlhdXRob3Jfc2lnbmF0dXJlX3JlcXVpcmVkGAQgASgIImoKGFNpZ25QcmVwYXJlZE9mZmVyUmVxdWVzdBIcChRhdXRob3JlZF9jaGFuZ2VfdXNkYRgBIAEoDBIZChF3b3Jrc3BhY2VfYmluZGluZxgCIAEoCRIVCg1hdXRob3Jfc2VjcmV0GAMgASgMIjcKGVNpZ25QcmVwYXJlZE9mZmVyUmVzcG9uc2USGgoSc2lnbmVkX2NoYW5nZV91c2RhGAEgASgMIo4BChlQcmVwYXJlUmVtb3RlT2ZmZXJSZXF1ZXN0EhUKDW9mZmVyX3JlcXVlc3QYASABKAwSGQoRd29ya3NwYWNlX2JpbmRpbmcYAiABKAkSGAoQcHJlcGFyZWRfYXRfaGVhZBgDIAEoCRISCgpwdWJsaWNfa2V5GAQgASgMEhEKCXNpZ25hdHVyZRgFIAEoDCJQChlPZmZlclByZXBhcmF0aW9uQ2hhbGxlbmdlEhkKEXdvcmtzcGFjZV9iaW5kaW5nGAEgASgJEhgKEHByZXBhcmVkX2F0X2hlYWQYAiABKAkimQEKGlByZXBhcmVSZW1vdGVPZmZlclJlc3BvbnNlEj8KCWNoYWxsZW5nZRgBIAEoCzIqLm5vbW9zLmtlcm5lbC52MS5PZmZlclByZXBhcmF0aW9uQ2hhbGxlbmdlSAASLwoFb2ZmZXIYAiABKAsyHi5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZXNwb25zZUgAQgkKB291dGNvbWUigAEKG1NpZ25PZmZlclByZXBhcmF0aW9uUmVxdWVzdBIVCg1vZmZlcl9yZXF1ZXN0GAEgASgMEhkKEXdvcmtzcGFjZV9iaW5kaW5nGAIgASgJEhgKEHByZXBhcmVkX2F0X2hlYWQYAyABKAkSFQoNYXV0aG9yX3NlY3JldBgEIAEoDCJFChxTaWduT2ZmZXJQcmVwYXJhdGlvblJlc3BvbnNlEhIKCnB1YmxpY19rZXkYASABKAwSEQoJc2lnbmF0dXJlGAIgASgMIoEBCg1LZXJuZWxSZWZ1c2FsEjAKBGNvZGUYASABKA4yIi5ub21vcy5rZXJuZWwudjEuS2VybmVsUmVmdXNhbENvZGUSDwoHbWVzc2FnZRgCIAEoCRItCgdkZXRhaWxzGAMgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0IrgDCg1RdWVyeVJlc3BvbnNlEiwKBXZhbHVlGAEgASgLMhsubm9tb3Mua2VybmVsLnYxLk5vbW9zVmFsdWVIABJKChNhdXRob3JpemF0aW9uX2NoZWNrGAogASgLMisubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25DaGVja1Jlc3BvbnNlSAASTAoUYXV0aG9yaXphdGlvbl9leHBhbmQYCyABKAsyLC5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkV4cGFuZFJlc3BvbnNlSAASPgoNb3NnaV9yZXNvdXJjZRgMIAEoCzIlLm5vbW9zLmtlcm5lbC52MS5Pc2dpUmVzb3VyY2VSZXNwb25zZUgAEkoKE2Zyb250aWVyX3RyYW5zaXRpb24YDSABKAsyKy5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uUmVzcG9uc2VIABJJChh2ZXJpZnlfY2hhaW5fZGlhZ25vc3RpY3MYFCABKAsyJy5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5EaWFnbm9zdGljc0IICgZyZXN1bHQiSAoNT3NnaUF0dHJpYnV0ZRIMCgRuYW1lGAEgASgJEg0KBXZhbHVlGAIgASgJEhEKBHR5cGUYAyABKAlIAIgBAUIHCgVfdHlwZSIsCg1Pc2dpRGlyZWN0aXZlEgwKBG5hbWUYASABKAkSDQoFdmFsdWUYAiABKAkiiwEKDk9zZ2lDYXBhYmlsaXR5EhEKCW5hbWVzcGFjZRgBIAEoCRIyCgphdHRyaWJ1dGVzGAIgAygLMh4ubm9tb3Mua2VybmVsLnYxLk9zZ2lBdHRyaWJ1dGUSMgoKZGlyZWN0aXZlcxgDIAMoCzIeLm5vbW9zLmtlcm5lbC52MS5Pc2dpRGlyZWN0aXZlIowBCg9Pc2dpUmVxdWlyZW1lbnQSEQoJbmFtZXNwYWNlGAEgASgJEjIKCmF0dHJpYnV0ZXMYAiADKAsyHi5ub21vcy5rZXJuZWwudjEuT3NnaUF0dHJpYnV0ZRIyCgpkaXJlY3RpdmVzGAMgAygLMh4ubm9tb3Mua2VybmVsLnYxLk9zZ2lEaXJlY3RpdmUimgEKFE9zZ2lSZXNvdXJjZVJlc3BvbnNlEhMKC3NvdXJjZV91c2RhGAEgASgMEjUKDGNhcGFiaWxpdGllcxgCIAMoCzIfLm5vbW9zLmtlcm5lbC52MS5Pc2dpQ2FwYWJpbGl0eRI2CgxyZXF1aXJlbWVudHMYAyADKAsyIC5ub21vcy5rZXJuZWwudjEuT3NnaVJlcXVpcmVtZW50IucBChNWZXJpZnlDaGFpblN0ZXBTcGFuEg0KBWluZGV4GAEgASgEEhIKCmNvbW1pdF9vaWQYAiABKAkSDgoGZG9tYWluGAMgASgJEhEKCWRpcmVjdGl2ZRgEIAEoCRIQCgh0b3RhbF91cxgFIAEoBBI2CgZwaGFzZXMYBiABKAsyJi5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5TdGVwUGhhc2VzEkAKDmVuZ2luZV90aW1pbmdzGAcgAygLMigubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluRW5naW5lVGltaW5nIpgCChVWZXJpZnlDaGFpblN0ZXBQaGFzZXMSHgoWcnVudGltZV9sYXdfcmVmcmVzaF91cxgBIAEoBBITCgttYW5pZmVzdF91cxgCIAEoBBIZChFsYXdfcmVzb2x1dGlvbl91cxgDIAEoBBIdChVtYW5hZ2VkX3RyYW5zaXRpb25fdXMYBCABKAQSFAoMcHJpbmNpcGFsX3VzGAUgASgEEhQKDGV2b2x1dGlvbl91cxgGIAEoBBIaChJjb2xvY2F0ZWRfcmVhZHNfdXMYByABKAQSIQoZdHlwZWRfaW5zdGFsbF92ZXJpZmllcl91cxgIIAEoBBIUCgxhZG1pc3Npb25fdXMYCSABKAQSDwoHZm9sZF91cxgKIAEoBCLaBQoWVmVyaWZ5Q2hhaW5EaWFnbm9zdGljcxIuCgR3YWxrGAEgASgOMiAubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluV2FsaxIQCgh0b3RhbF91cxgCIAEoBBIbChNyZWZlcmVuY2VfbG9va3VwX3VzGAMgASgEEhoKEnJlcG9zaXRvcnlfb3Blbl91cxgEIAEoBBIVCg1jaGFpbl9yZWFkX3VzGAUgASgEEhYKDmVuZ2luZV9pbml0X3VzGAYgASgEEhgKEHRpbWVsaW5lX3JlYWRfdXMYByABKAQSGAoQbGF3X2h5ZHJhdGlvbl91cxgIIAEoBBIbChNyZWNvdmVyeV9wcmVzY2FuX3VzGAkgASgEEhgKEGZvbGRfZnJvbnRpZXJfdXMYCiABKAQSMwoFc3RlcHMYCyADKAsyJC5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5TdGVwU3BhbhJACg5lbmdpbmVfdGltaW5ncxgMIAMoCzIoLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpbkVuZ2luZVRpbWluZxJNChVsYXdfaHlkcmF0aW9uX3RpbWluZ3MYDSADKAsyLi5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5MYXdIeWRyYXRpb25UaW1pbmcSGQoRbGF3X2Nsb3N1cmVfY291bnQYDiABKAQSHgoWbGF3X2Nsb3N1cmVfY2FjaGVfaGl0cxgPIAEoBBIgChhsYXdfY2xvc3VyZV9jYWNoZV9taXNzZXMYECABKAQSEgoKc3RlcF9jb3VudBgRIAEoBBIVCg1zdGVwX3RvdGFsX3VzGBIgASgEEkEKEXN0ZXBfcGhhc2VfdG90YWxzGBMgASgLMiYubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluU3RlcFBoYXNlcxIaChJvbWl0dGVkX3N0ZXBfY291bnQYFCABKAQiOgoXVmVyaWZ5Q2hhaW5FbmdpbmVUaW1pbmcSDQoFcGhhc2UYASABKAkSEAoIdG90YWxfdXMYAiABKAQiQAodVmVyaWZ5Q2hhaW5MYXdIeWRyYXRpb25UaW1pbmcSDQoFcGhhc2UYASABKAkSEAoIdG90YWxfdXMYAiABKAQitgIKDU91dGJvdW5kT2ZmZXISCgoCaWQYASABKAkSEwoLZGVzdGluYXRpb24YAiABKAkSFAoMc2VhbGVkX29mZmVyGAMgASgMEhQKDGNvbnRlbnRfdHlwZRgEIAEoCRIYChBzb3VyY2Vfd29ya3NwYWNlGAUgASgJEhQKDGN1c3RvZHlfaGVhZBgGIAEoCRIXCg9jYXVzZWRfYnlfb2ZmZXIYByABKAkSGwoTc2NoZWR1bGVkX2F0X21pbGxpcxgIIAEoBBIaChJkZWFkbGluZV9hdF9taWxsaXMYCSABKAQSFAoMY3VzdG9keV9wYXRoGAogASgJEhMKC2N1c3RvZHlfb2lkGAsgASgJEhQKDGRlbGl2ZXJ5X3JlZhgMIAEoCRIVCg1vYmxpZ2F0aW9uX2lkGA0gASgJIngKDk91dGJveFJlc3BvbnNlEi4KBm9mZmVycxgBIAMoCzIeLm5vbW9zLmtlcm5lbC52MS5PdXRib3VuZE9mZmVyEh8KEm5leHRfZHVlX2F0X21pbGxpcxgCIAEoBEgAiAEBQhUKE19uZXh0X2R1ZV9hdF9taWxsaXMiPAoMU3luY1Jlc3BvbnNlEiwKBnJlc3VsdBgBIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCJCCg9Xb3Jrc3BhY2VUYXJnZXQSDAoEcmVwbxgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkSDgoGYnJhbmNoGAMgASgJIk4KC09wZW5SZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSDQoFc3BhbnMYAiABKAgiYQoNRGlyZWN0aXZlQ2FsbBIOCgZkb21haW4YASABKAkSEQoJZGlyZWN0aXZlGAIgASgJEi0KB3BheWxvYWQYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3Qi1gIKEEF1dGhvcmluZ09wdGlvbnMSDQoFYWN0b3IYASABKAkSEgoKYXV0aF90b2tlbhgCIAEoDBIVCg1hdXRob3Jfc2VjcmV0GAMgASgMEh0KEHZhbGlkX2Zyb21fZXBvY2gYBCABKARIAIgBARIfChJwcmluY2lwYWxfdmVyaWZpZWQYBSABKAhIAYgBARILCgNybmcYBiADKAESGAoQZGVmZXJfcHJvamVjdGlvbhgHIAEoCBINCgVzcGFucxgIIAEoCBIPCgdkcnlfcnVuGAkgASgIEhAKCHNlcXVlbmNlGAogASgEEi0KBWNsb2NrGAsgASgLMh4ubm9tb3Mua2VybmVsLnYxLkNhcHR1cmVkQ2xvY2sSFAoMcHJlcGFyZV9vbmx5GAwgASgIQhMKEV92YWxpZF9mcm9tX2Vwb2NoQhUKE19wcmluY2lwYWxfdmVyaWZpZWQiSgoNQ2FwdHVyZWRDbG9jaxIXCg9waHlzaWNhbF9taWxsaXMYASABKAQSDwoHbG9naWNhbBgCIAEoDRIPCgdyZXBsaWNhGAMgASgEIsMDChBCaXJ0aENlcnRpZmljYXRlEg0KBWNoaWxkGAEgASgJEg8KB2ZvdW5kZXIYAiABKAkSEAoIdmVyaWZpZWQYAyABKAgSEgoKcGFyZW50X2tleRgEIAEoDBIRCglwYXJlbnRfaWQYBSABKAkSDQoFZXBvY2gYBiABKAMSEQoJc2lnbmF0dXJlGAcgASgMEhkKDHZlcmlmaWVkX3ZpYRgIIAEoCUgAiAEBEhYKCWlkcF90b2tlbhgJIAEoCUgBiAEBEhsKDmNhcHR1cmVkX2Nsb2NrGAogASgDSAKIAQESIQoUYXV0aF9wcm92aWRlcl9pc3N1ZXIYCyABKAlIA4gBARIfChJhdXRoX3Byb3ZpZGVyX2p3a3MYDCABKAlIBIgBARIjChZhdXRoX3Byb3ZpZGVyX2F1ZGllbmNlGA0gASgJSAWIAQFCDwoNX3ZlcmlmaWVkX3ZpYUIMCgpfaWRwX3Rva2VuQhEKD19jYXB0dXJlZF9jbG9ja0IXChVfYXV0aF9wcm92aWRlcl9pc3N1ZXJCFQoTX2F1dGhfcHJvdmlkZXJfandrc0IZChdfYXV0aF9wcm92aWRlcl9hdWRpZW5jZSKcBAoMT2ZmZXJSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSLgoEY2FsbBgCIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5EaXJlY3RpdmVDYWxsSAASHAoSc2VhbGVkX2NoYW5nZV91c2RhGAcgASgMSAASNAoJYXV0aG9yaW5nGAMgASgLMiEubm9tb3Mua2VybmVsLnYxLkF1dGhvcmluZ09wdGlvbnMSEAoIbGF3X3VzZHoYBCABKAwSMwoMYXR0ZXN0YXRpb25zGAUgAygLMh0ubm9tb3Mua2VybmVsLnYxLkF0dGVzdGVkUmVhZBI9ChJjb25mbGljdF9zbmFwc2hvdHMYBiADKAsyIS5ub21vcy5rZXJuZWwudjEuQ29uZmxpY3RTbmFwc2hvdBIaChJleGVjdXRpb25fbGF3X3VzZHoYCCABKAwSIAoTY29udHJvbGxlcl9sYXdfaGFzaBgJIAEoCUgBiAEBEh0KEGNhbmRpZGF0ZV9jb21taXQYCiABKAlIAogBARI8ChFiaXJ0aF9jZXJ0aWZpY2F0ZRgLIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5CaXJ0aENlcnRpZmljYXRlQggKBmludGVudEIWChRfY29udHJvbGxlcl9sYXdfaGFzaEITChFfY2FuZGlkYXRlX2NvbW1pdCKTAQoMQXR0ZXN0ZWRSZWFkEhAKCHF1ZXJ5X2lkGAEgASgJEi8KCWFyZ3VtZW50cxgCIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBIrCgZyZXN1bHQYAyABKAsyGy5ub21vcy5rZXJuZWwudjEuTm9tb3NWYWx1ZRITCgthdHRlc3RhdGlvbhgEIAEoDCJ1ChBDb25mbGljdFNuYXBzaG90EhYKDmFnZ3JlZ2F0ZV90eXBlGAEgASgJEhQKDGFnZ3JlZ2F0ZV9pZBgCIAEoCRINCgVmaWVsZBgDIAEoCRIVCg10YXJnZXRfc2NoZW1hGAQgASgJEg0KBXRva2VuGAUgASgJIrAGCgxRdWVyeVJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBIyCglhdXRob3JpdHkYAiABKAsyHy5ub21vcy5rZXJuZWwudjEuUXVlcnlBdXRob3JpdHkSDQoFc3BhbnMYAyABKAgSKgoEcm93cxgKIAEoCzIaLm5vbW9zLmtlcm5lbC52MS5Sb3dzUXVlcnlIABIqCgRwYWdlGAsgASgLMhoubm9tb3Mua2VybmVsLnYxLlBhZ2VRdWVyeUgAEisKBWJ5X2lkGAwgASgLMhoubm9tb3Mua2VybmVsLnYxLkJ5SWRRdWVyeUgAEjkKDHJlc29sdmVfcmVmcxgNIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5SZXNvbHZlUmVmc1F1ZXJ5SAASRQoScmVmZXJlbmNlX3ZlcnNpb25zGA4gASgLMicubm9tb3Mua2VybmVsLnYxLlJlZmVyZW5jZVZlcnNpb25zUXVlcnlIABIsCgVjb3VudBgPIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5UYWxseVF1ZXJ5SAASKgoDc3VtGBAgASgLMhsubm9tb3Mua2VybmVsLnYxLlRhbGx5UXVlcnlIABIwCgdzcGF0aWFsGBEgASgLMh0ubm9tb3Mua2VybmVsLnYxLlNwYXRpYWxRdWVyeUgAEiwKBW5hbWVkGBIgASgLMhsubm9tb3Mua2VybmVsLnYxLk5hbWVkUXVlcnlIABJJChNhdXRob3JpemF0aW9uX2NoZWNrGBMgASgLMioubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25DaGVja1JlcXVlc3RIABJLChRhdXRob3JpemF0aW9uX2V4cGFuZBgUIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRXhwYW5kUmVxdWVzdEgAEkkKE2Zyb250aWVyX3RyYW5zaXRpb24YFSABKAsyKi5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uUmVxdWVzdEgAQgcKBXF1ZXJ5IpIBCg5RdWVyeUF1dGhvcml0eRIXCg9wcmluY2lwYWxfY2xhaW0YASABKAkSEgoKYXV0aF90b2tlbhgCIAEoDBIQCghub3dfdW5peBgDIAEoBBIVCg1hdXRob3Jfc2VjcmV0GAQgASgMEioKBGtleXMYBSADKAsyHC5ub21vcy5rZXJuZWwudjEuSW5qZWN0ZWRLZXkiOAoLSW5qZWN0ZWRLZXkSDQoFc2NvcGUYASABKAkSDQoFZXBvY2gYAiABKAQSCwoDa2V5GAMgASgMIlsKCVJvd3NRdWVyeRIKCgJpZBgBIAEoCRIvCglhcmd1bWVudHMYAiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSEQoJcHJpbmNpcGFsGAMgASgJInkKCVBhZ2VRdWVyeRIKCgJpZBgBIAEoCRIvCglhcmd1bWVudHMYAiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSDQoFbGltaXQYAyABKA0SDQoFYWZ0ZXIYBCABKAkSEQoJcHJpbmNpcGFsGAUgASgJIkwKCUJ5SWRRdWVyeRIWCg5hZ2dyZWdhdGVfdHlwZRgBIAEoCRIUCgxhZ2dyZWdhdGVfaWQYAiABKAkSEQoJcHJpbmNpcGFsGAMgASgJIlwKCE5vbW9zUmVmEhEKCXdvcmtzcGFjZRgBIAEoCRIWCg5hZ2dyZWdhdGVfdHlwZRgCIAEoCRIUCgxhZ2dyZWdhdGVfaWQYAyABKAkSDwoHdmVyc2lvbhgEIAEoCSJOChBSZXNvbHZlUmVmc1F1ZXJ5EicKBHJlZnMYASADKAsyGS5ub21vcy5rZXJuZWwudjEuTm9tb3NSZWYSEQoJcHJpbmNpcGFsGAIgASgJIk4KFlJlZmVyZW5jZVZlcnNpb25zUXVlcnkSNAoEcmVmcxgBIAMoCzImLm5vbW9zLmtlcm5lbC52MS5SZWZlcmVuY2VWZXJzaW9uQ2hlY2sihAEKFVJlZmVyZW5jZVZlcnNpb25DaGVjaxIpCgZwaW5uZWQYASABKAsyGS5ub21vcy5rZXJuZWwudjEuTm9tb3NSZWYSKQoGc2VyaWVzGAIgASgLMhkubm9tb3Mua2VybmVsLnYxLk5vbW9zUmVmEhUKDWN1cnJlbnRfZmllbGQYAyABKAkiXAoKVGFsbHlRdWVyeRIKCgJpZBgBIAEoCRIvCglhcmd1bWVudHMYAiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSEQoJcHJpbmNpcGFsGAMgASgJIl4KDFNwYXRpYWxRdWVyeRIKCgJpZBgBIAEoCRIvCglhcmd1bWVudHMYAiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSEQoJcHJpbmNpcGFsGAMgASgJInEKCk5hbWVkUXVlcnkSMgoJb3BlcmF0aW9uGAEgASgOMh8ubm9tb3Mua2VybmVsLnYxLlF1ZXJ5T3BlcmF0aW9uEi8KCWFyZ3VtZW50cxgCIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCKxAQoZRnJvbnRpZXJUcmFuc2l0aW9uUmVxdWVzdBIOCgZkb21haW4YASABKAkSFgoOY2FuZGlkYXRlX2hhc2gYAiABKAkSDwoHYXRfaGFzaBgDIAEoCRIhChlhY2tub3dsZWRnZW1lbnRfcHJpbmNpcGFsGAQgASgJEiAKE3Jlc3RvcmVfcHJldmlvdXNfb2YYBSABKAlIAIgBAUIWChRfcmVzdG9yZV9wcmV2aW91c19vZiJaCiVGcm9udGllclRyYW5zaXRpb25EaXNwb3NpdGlvbk1hcEVudHJ5EhgKEHNvdXJjZV9zdGFibGVfaWQYASABKAkSFwoPYWNrbm93bGVkZ2VtZW50GAIgASgJIvUBCh5Gcm9udGllclRyYW5zaXRpb25EaXNwb3NpdGlvbnMSDwoHcmV0aXJlZBgBIAMoCRJHCgdyZXR5cGVkGAIgAygLMjYubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvbkRpc3Bvc2l0aW9uTWFwRW50cnkSRwoHcmViaW5kcxgDIAMoCzI2Lm5vbW9zLmtlcm5lbC52MS5Gcm9udGllclRyYW5zaXRpb25EaXNwb3NpdGlvbk1hcEVudHJ5EhwKD2Fja25vd2xlZGdlZF9ieRgEIAEoCUgAiAEBQhIKEF9hY2tub3dsZWRnZWRfYnkiPQobRnJvbnRpZXJUcmFuc2l0aW9uVmlvbGF0aW9uEg4KBmRvbWFpbhgBIAEoCRIOCgZkZXRhaWwYAiABKAki1wIKGkZyb250aWVyVHJhbnNpdGlvblJlc3BvbnNlEg8KB2F0X2hhc2gYASABKAkSGQoMY3VycmVudF9oYXNoGAIgASgJSACIAQESFQoNYXRfc3RhdGVfcm9vdBgDIAEoCRIWCg5jYW5kaWRhdGVfaGFzaBgEIAEoCRIOCgZkb21haW4YBSABKAkSDwoHZG9tYWlucxgGIAMoCRINCgVyZWFkeRgHIAEoCBJACgp2aW9sYXRpb25zGAggAygLMiwubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvblZpb2xhdGlvbhJKCgxkaXNwb3NpdGlvbnMYCSABKAsyLy5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uRGlzcG9zaXRpb25zSAGIAQFCDwoNX2N1cnJlbnRfaGFzaEIPCg1fZGlzcG9zaXRpb25zIi8KE0F1dGhvcml6YXRpb25PYmplY3QSDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCSJUChRBdXRob3JpemF0aW9uU3ViamVjdBIMCgR0eXBlGAEgASgJEgoKAmlkGAIgASgJEhUKCHJlbGF0aW9uGAMgASgJSACIAQFCCwoJX3JlbGF0aW9uIpwBChhSZWxhdGlvbnNoaXBUdXBsZUFkZHJlc3MSNgoIcmVzb3VyY2UYASABKAsyJC5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbk9iamVjdBIQCghyZWxhdGlvbhgCIAEoCRI2CgdzdWJqZWN0GAMgASgLMiUubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25TdWJqZWN0IoEBChhBdXRob3JpemF0aW9uQ29uc2lzdGVuY3kSIwoZY3VycmVudF92ZXJpZmllZF9mcm9udGllchgBIAEoCEgAEhkKD2F0X2xlYXN0X2NvbW1pdBgCIAEoCUgAEhYKDGV4YWN0X2NvbW1pdBgDIAEoCUgAQg0KC3JlcXVpcmVtZW50ImYKHUF1dGhvcml6YXRpb25Db25kaXRpb25Db250ZXh0EhQKDGNvbmRpdGlvbl9pZBgBIAEoCRIvCglhcmd1bWVudHMYAiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3Qi9wIKGUF1dGhvcml6YXRpb25DaGVja1JlcXVlc3QSNgoIcmVzb3VyY2UYASABKAsyJC5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbk9iamVjdBISCgpwZXJtaXNzaW9uGAIgASgJEjYKB3N1YmplY3QYAyABKAsyJS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvblN1YmplY3QSPgoLY29uc2lzdGVuY3kYBCABKAsyKS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkNvbnNpc3RlbmN5Ej8KB2NvbnRleHQYBSADKAsyLi5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkNvbmRpdGlvbkNvbnRleHQSIAoTZXhwZWN0ZWRfbW9kZWxfaGFzaBgGIAEoCUgAiAEBEhsKE2luY2x1ZGVfZXhwbGFuYXRpb24YByABKAhCFgoUX2V4cGVjdGVkX21vZGVsX2hhc2gi7QIKGkF1dGhvcml6YXRpb25FeHBhbmRSZXF1ZXN0EjYKCHJlc291cmNlGAEgASgLMiQubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25PYmplY3QSEgoKcGVybWlzc2lvbhgCIAEoCRI+Cgtjb25zaXN0ZW5jeRgDIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ29uc2lzdGVuY3kSPwoHY29udGV4dBgEIAMoCzIuLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ29uZGl0aW9uQ29udGV4dBIgChNleHBlY3RlZF9tb2RlbF9oYXNoGAUgASgJSACIAQESDQoFbGltaXQYBiABKA0SEgoFYWZ0ZXIYByABKAlIAYgBARIbChNpbmNsdWRlX2V4cGxhbmF0aW9uGAggASgIQhYKFF9leHBlY3RlZF9tb2RlbF9oYXNoQggKBl9hZnRlciK9AQoZUmVsYXRpb25zaGlwVHVwbGVFdmlkZW5jZRI4CgV0dXBsZRgBIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5SZWxhdGlvbnNoaXBUdXBsZUFkZHJlc3MSEAoIdHVwbGVfaWQYAiABKAkSGgoSYXNzZXJ0aW9uX2V2ZW50X2lkGAMgASgJEiAKE3Jldm9jYXRpb25fZXZlbnRfaWQYBCABKAlIAIgBAUIWChRfcmV2b2NhdGlvbl9ldmVudF9pZCLhAwoYQXV0aG9yaXphdGlvbkV4cGxhbmF0aW9uEkYKCW9wZXJhdGlvbhgBIAEoDjIzLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRXhwbGFuYXRpb24uT3BlcmF0aW9uEhAKCHJlbGF0aW9uGAIgASgJEg4KBnJlc3VsdBgDIAEoCBI8CghldmlkZW5jZRgEIAMoCzIqLm5vbW9zLmtlcm5lbC52MS5SZWxhdGlvbnNoaXBUdXBsZUV2aWRlbmNlEjsKCGNoaWxkcmVuGAUgAygLMikubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBsYW5hdGlvbiLfAQoJT3BlcmF0aW9uEhkKFU9QRVJBVElPTl9VTlNQRUNJRklFRBAAEhQKEE9QRVJBVElPTl9ESVJFQ1QQARIeChpPUEVSQVRJT05fQ09NUFVURURfVVNFUlNFVBACEh4KGk9QRVJBVElPTl9UVVBMRV9UT19VU0VSU0VUEAMSEwoPT1BFUkFUSU9OX1VOSU9OEAQSGgoWT1BFUkFUSU9OX0lOVEVSU0VDVElPThAFEhcKE09QRVJBVElPTl9FWENMVVNJT04QBhIXChNPUEVSQVRJT05fQ09ORElUSU9OEAcidwoaQXV0aG9yaXphdGlvbkRlY2lzaW9uQmFzaXMSIAoYYXV0aG9yaXphdGlvbl9tb2RlbF9oYXNoGAEgASgJEiEKGXJlbGF0aW9uc2hpcF9zdGF0ZV9jb21taXQYAiABKAkSFAoMY29udGV4dF9oYXNoGAMgASgMIr4BChpBdXRob3JpemF0aW9uQ2hlY2tSZXNwb25zZRIPCgdhbGxvd2VkGAEgASgIEjoKBWJhc2lzGAIgASgLMisubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25EZWNpc2lvbkJhc2lzEkMKC2V4cGxhbmF0aW9uGAMgASgLMikubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBsYW5hdGlvbkgAiAEBQg4KDF9leHBsYW5hdGlvbiKDAgobQXV0aG9yaXphdGlvbkV4cGFuZFJlc3BvbnNlEjcKCHN1YmplY3RzGAEgAygLMiUubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25TdWJqZWN0EjoKBWJhc2lzGAIgASgLMisubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25EZWNpc2lvbkJhc2lzEhEKBG5leHQYAyABKAlIAIgBARJDCgtleHBsYW5hdGlvbhgEIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRXhwbGFuYXRpb25IAYgBAUIHCgVfbmV4dEIOCgxfZXhwbGFuYXRpb24icAoNT3V0Ym94UmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0Ei0KBWNsb2NrGAIgASgLMh4ubm9tb3Mua2VybmVsLnYxLkNhcHR1cmVkQ2xvY2siYwoLU3luY1JlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBIRCglmcm9tX2Jhc2UYAiABKAkSDwoHdG9faGVhZBgDIAEoCSJTCgtUZXN0UmVxdWVzdBI3CghzZXRfcm9vdBgBIAEoCzIjLm5vbW9zLmtlcm5lbC52MS5TZXRUZXN0Um9vdFJlcXVlc3RIAEILCglvcGVyYXRpb24iKAoSU2V0VGVzdFJvb3RSZXF1ZXN0EhIKCnB1YmxpY19rZXkYASABKAwiPQoMVGVzdFJlc3BvbnNlEi0KBnJlc3VsdBgBIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5BY2tub3dsZWRnZWQi1QsKDkN1c3RvZHlSZXF1ZXN0EjcKCnBhY2tfZGVsdGEYCiABKAsyIS5ub21vcy5rZXJuZWwudjEuUGFja0RlbHRhUmVxdWVzdEgAEjcKCmFwcGx5X3BhY2sYCyABKAsyIS5ub21vcy5rZXJuZWwudjEuQXBwbHlQYWNrUmVxdWVzdEgAEjcKCnJlcG9fc3RhdHMYDCABKAsyIS5ub21vcy5rZXJuZWwudjEuUmVwb1N0YXRzUmVxdWVzdEgAEj0KDWludGVudHNfYWJvdmUYDSABKAsyJC5ub21vcy5rZXJuZWwudjEuSW50ZW50c0Fib3ZlUmVxdWVzdEgAEj8KDmluc3BlY3RfY2hhbmdlGA4gASgLMiUubm9tb3Mua2VybmVsLnYxLkluc3BlY3RDaGFuZ2VSZXF1ZXN0SAASTgoWZW5jb2RlX3JlZnVzYWxfdmVyZGljdBgPIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5FbmNvZGVSZWZ1c2FsVmVyZGljdFJlcXVlc3RIABJQChdpbnNwZWN0X3JlZnVzYWxfdmVyZGljdBgQIAEoCzItLm5vbW9zLmtlcm5lbC52MS5JbnNwZWN0UmVmdXNhbFZlcmRpY3RSZXF1ZXN0SAASNQoJcmVhZF9ibG9iGBEgASgLMiAubm9tb3Mua2VybmVsLnYxLlJlYWRCbG9iUmVxdWVzdEgAEjkKC3Jlc29sdmVfcmVmGBIgASgLMiIubm9tb3Mua2VybmVsLnYxLlJlc29sdmVSZWZSZXF1ZXN0SAASNQoJbGlzdF9yZWZzGBMgASgLMiAubm9tb3Mua2VybmVsLnYxLkxpc3RSZWZzUmVxdWVzdEgAEjUKCXdyaXRlX3JlZhgUIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xcml0ZVJlZlJlcXVlc3RIABI3CgpkZWxldGVfcmVmGBUgASgLMiEubm9tb3Mua2VybmVsLnYxLkRlbGV0ZVJlZlJlcXVlc3RIABJEChF3cml0ZV9tZXRhX2NvbW1pdBgWIAEoCzInLm5vbW9zLmtlcm5lbC52MS5Xcml0ZU1ldGFDb21taXRSZXF1ZXN0SAASQgoQbGF3X2Nsb3N1cmVfaW5mbxgXIAEoCzImLm5vbW9zLmtlcm5lbC52MS5MYXdDbG9zdXJlSW5mb1JlcXVlc3RIABJFChFjaGVja3BvaW50X2V4cG9ydBgYIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50RXhwb3J0UmVxdWVzdEgAEkUKEWNoZWNrcG9pbnRfaW1wb3J0GBkgASgLMigubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRJbXBvcnRSZXF1ZXN0SAASQwoQY2FwYWNpdHlfcmVzZXJ2ZRgaIAEoCzInLm5vbW9zLmtlcm5lbC52MS5DYXBhY2l0eVJlc2VydmVSZXF1ZXN0SAASOwoMcmVzdG9yZV9tYWluGBsgASgLMiMubm9tb3Mua2VybmVsLnYxLlJlc3RvcmVNYWluUmVxdWVzdEgAEk4KFnJlc29sdmVfc3RhdGVfcG9zaXRpb24YHCABKAsyLC5ub21vcy5rZXJuZWwudjEuUmVzb2x2ZVN0YXRlUG9zaXRpb25SZXF1ZXN0SAASRwoScmVzaWRlbnRfZm9vdHByaW50GB0gASgLMikubm9tb3Mua2VybmVsLnYxLlJlc2lkZW50Rm9vdHByaW50UmVxdWVzdEgAEkEKD2hpc3Rvcnlfc3VtbWFyeRgeIAEoCzImLm5vbW9zLmtlcm5lbC52MS5IaXN0b3J5U3VtbWFyeVJlcXVlc3RIABJaChxwcm92ZV9jb21wYWN0aW9uX2VxdWl2YWxlbmNlGB8gASgLMjIubm9tb3Mua2VybmVsLnYxLlByb3ZlQ29tcGFjdGlvbkVxdWl2YWxlbmNlUmVxdWVzdEgAQgsKCW9wZXJhdGlvbiIoChhSZXNpZGVudEZvb3RwcmludFJlcXVlc3QSDAoEZGVlcBgBIAEoCCKfAgoRUmVzaWRlbnRGb290cHJpbnQSEQoJd29ya3NwYWNlGAEgASgJEg4KBmJyYW5jaBgCIAEoCRIYChByZWFkX21vZGVsX2J5dGVzGAMgASgEEh0KFXJlYWRfbW9kZWxfcnVzdF9ieXRlcxgEIAEoBBIYChBmb2xkX3N0YXRlX2J5dGVzGAUgASgEEhMKC2ZvbGRfaW1hZ2VzGAYgASgNEh8KF3NoYXJlZF9hdHRyaWJ1dGVkX2J5dGVzGAcgASgEEhIKCmFnZ3JlZ2F0ZXMYCCABKAQSNgoKY29tcG9uZW50cxgJIAMoCzIiLm5vbW9zLmtlcm5lbC52MS5SZXNpZGVudENvbXBvbmVudBISCgpjb21wdXRlX3VzGAogASgEImkKEVJlc2lkZW50Q29tcG9uZW50EjQKBGtpbmQYASABKA4yJi5ub21vcy5rZXJuZWwudjEuUmVzaWRlbnRDb21wb25lbnRLaW5kEg0KBWJ5dGVzGAIgASgEEg8KB2NlaWxpbmcYAyABKAgiygEKGVJlc2lkZW50Rm9vdHByaW50UmVzcG9uc2USNQoJcmVzaWRlbnRzGAEgAygLMiIubm9tb3Mua2VybmVsLnYxLlJlc2lkZW50Rm9vdHByaW50EhwKFGFsbG9jYXRvcl9saXZlX2J5dGVzGAIgASgEEhgKEGF0dHJpYnV0ZWRfYnl0ZXMYAyABKAQSGQoRdW5hY2NvdW50ZWRfYnl0ZXMYBCABKAQSFQoNYWNjb3VudGluZ191cxgFIAEoBBIMCgRkZWVwGAYgASgIIpwBChBQYWNrRGVsdGFSZXF1ZXN0EgwKBHJlcG8YASABKAkSEQoEaGVhZBgCIAEoCUgAiAEBEhEKBGJhc2UYAyABKAlIAYgBARIOCgZicmFuY2gYBCABKAkSHQoQc3RhZ2VkX3BhY2tfZmlsZRgFIAEoCUgCiAEBQgcKBV9oZWFkQgcKBV9iYXNlQhMKEV9zdGFnZWRfcGFja19maWxlInIKEEFwcGx5UGFja1JlcXVlc3QSDAoEcmVwbxgBIAEoCRIOCgRwYWNrGAIgASgMSAASGgoQc3RhZ2VkX3BhY2tfZmlsZRgEIAEoCUgAEhEKBGhlYWQYAyABKAlIAYgBAUIICgZzb3VyY2VCBwoFX2hlYWQiIAoQUmVwb1N0YXRzUmVxdWVzdBIMCgRyZXBvGAEgASgJIqwBChNJbnRlbnRzQWJvdmVSZXF1ZXN0EgwKBHJlcG8YASABKAkSEQoEaGVhZBgCIAEoCUgAiAEBEhEKBGJhc2UYAyABKAlIAYgBARIOCgZicmFuY2gYBCABKAkSDQoFbGltaXQYBSABKAQSGAoQY29tcGxldGVfbG9naWNhbBgGIAEoCBIWCg5jb21wYWN0X3N0b3JlZBgHIAEoCEIHCgVfaGVhZEIHCgVfYmFzZSJtChVIaXN0b3J5U3VtbWFyeVJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCgRoZWFkGAIgASgJSACIAQESDgoGYnJhbmNoGAMgASgJEhEKBGJhc2UYBCABKAlIAYgBAUIHCgVfaGVhZEIHCgVfYmFzZSIrChRJbnNwZWN0Q2hhbmdlUmVxdWVzdBITCgtjaGFuZ2VfdXNkYRgBIAEoDCLfAQoOUmVmdXNhbFZlcmRpY3QSFQoIb2ZmZXJfaWQYASABKAlIAIgBARIQCgNvaWQYAiABKAlIAYgBARITCgZkb21haW4YAyABKAlIAogBARIZCgxkaXJlY3RpdmVfaWQYBCABKAlIA4gBARIUCgdzZXNzaW9uGAUgASgJSASIAQESEQoJcGFya2VkX2F0GAYgASgJEg4KBnJlYXNvbhgHIAEoCUILCglfb2ZmZXJfaWRCBgoEX29pZEIJCgdfZG9tYWluQg8KDV9kaXJlY3RpdmVfaWRCCgoIX3Nlc3Npb24iTwobRW5jb2RlUmVmdXNhbFZlcmRpY3RSZXF1ZXN0EjAKB3ZlcmRpY3QYASABKAsyHy5ub21vcy5rZXJuZWwudjEuUmVmdXNhbFZlcmRpY3QiNAocSW5zcGVjdFJlZnVzYWxWZXJkaWN0UmVxdWVzdBIUCgx2ZXJkaWN0X3VzZGEYASABKAwi1AEKFUNvbXBhY3Rpb25FcXVpdmFsZW5jZRITCgtzb3VyY2VfaGVhZBgBIAEoCRIWCg5zb3VyY2VfZ2VuZXNpcxgCIAEoCRIWCg5jYW5kaWRhdGVfaGVhZBgDIAEoCRIZChFjYW5kaWRhdGVfZ2VuZXNpcxgEIAEoCRIWCg5zb3VyY2VfaW50ZW50cxgFIAEoBBIXCg9jYXJyaWVkX2ludGVudHMYBiABKAQSFgoOcGFya2VkX2ludGVudHMYByABKAQSEgoKZXF1aXZhbGVudBgIIAEoCCJ9CiFQcm92ZUNvbXBhY3Rpb25FcXVpdmFsZW5jZVJlcXVlc3QSEwoLc291cmNlX3JlcG8YASABKAkSEwoLc291cmNlX2hlYWQYAiABKAkSFgoOY2FuZGlkYXRlX3JlcG8YAyABKAkSFgoOY2FuZGlkYXRlX2hlYWQYBCABKAkiOgoPUmVhZEJsb2JSZXF1ZXN0EgwKBHJlcG8YASABKAkSCwoDb2lkGAIgASgJEgwKBHBhdGgYAyABKAkiNAoRUmVzb2x2ZVJlZlJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCglyZWZlcmVuY2UYAiABKAkiLwoPTGlzdFJlZnNSZXF1ZXN0EgwKBHJlcG8YASABKAkSDgoGcHJlZml4GAIgASgJIkIKD1dyaXRlUmVmUmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKCXJlZmVyZW5jZRgCIAEoCRIOCgZ0YXJnZXQYAyABKAkiMwoQRGVsZXRlUmVmUmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKCXJlZmVyZW5jZRgCIAEoCSIpCghNZXRhRmlsZRIMCgRwYXRoGAEgASgJEg8KB2NvbnRlbnQYAiABKAwirgEKFldyaXRlTWV0YUNvbW1pdFJlcXVlc3QSDAoEcmVwbxgBIAEoCRIPCgdwYXJlbnRzGAIgAygJEigKBWZpbGVzGAMgAygLMhkubm9tb3Mua2VybmVsLnYxLk1ldGFGaWxlEg8KB21lc3NhZ2UYBCABKAkSFAoMdGltZV9zZWNvbmRzGAUgASgSEhYKCXJlZmVyZW5jZRgGIAEoCUgAiAEBQgwKCl9yZWZlcmVuY2UiZwoVTGF3Q2xvc3VyZUluZm9SZXF1ZXN0EhQKDGNsb3N1cmVfZmlsZRgBIAEoCRI4CgpjYXBhYmlsaXR5GAIgASgOMiQubm9tb3Mua2VybmVsLnYxLktlcm5lbExhd0NhcGFiaWxpdHkihwEKF0NoZWNrcG9pbnRFeHBvcnRSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSIQoUc3RhZ2VkX2Zyb250aWVyX2ZpbGUYAiABKAlIAIgBAUIXChVfc3RhZ2VkX2Zyb250aWVyX2ZpbGUiQQoLRnJvbnRpZXJIbGMSEAoIcGh5c2ljYWwYASABKAQSDwoHbG9naWNhbBgCIAEoDRIPCgdyZXBsaWNhGAMgASgEIt0EChdWZXJpZmllZEZyb250aWVyUmVjZWlwdBIWCg5mb3JtYXRfdmVyc2lvbhgBIAEoDRILCgNvaWQYAiABKAkSDwoHaW50ZW50cxgDIAEoBBITCgtwbGFuc19yZXJ1bhgEIAEoBBIcCg9jb250cm9sbGVyX2hhc2gYBSABKAlIAIgBARIZChFpbnN0YWxsZWRfZG9tYWlucxgGIAMoCRIOCgZsaW5lYXIYByABKAgSMwoIbGFzdF9obGMYCCABKAsyHC5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJIbGNIAYgBARIUCgdsYXN0X2lkGAkgASgJSAKIAQESEQoJc3RhdGVfb2lkGAogASgJEhQKDHN0YXRlX3NoYTI1NhgLIAEoCRI5Cg5zdGF0ZV9sYXN0X2hsYxgMIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Gcm9udGllckhsY0gDiAEBEhoKDXN0YXRlX2xhc3RfaWQYDSABKAlIBIgBARIXCg9tYW5pZmVzdF9zaGEyNTYYDiABKAkSHgoWbGF3X2Nsb3N1cmVfaWRlbnRpdGllcxgPIAMoCRIaChJyZXNvbHZhYmxlX2RvbWFpbnMYECADKAkSIgoVcHJvamVjdGlvbl9zdGF0ZV9yb290GBEgASgJSAWIAQFCEgoQX2NvbnRyb2xsZXJfaGFzaEILCglfbGFzdF9obGNCCgoIX2xhc3RfaWRCEQoPX3N0YXRlX2xhc3RfaGxjQhAKDl9zdGF0ZV9sYXN0X2lkQhgKFl9wcm9qZWN0aW9uX3N0YXRlX3Jvb3QiRQoVRm9sZEZyb250aWVyQWdncmVnYXRlEhQKDGFnZ3JlZ2F0ZV9pZBgBIAEoCRIWCg5hZ2dyZWdhdGVfdXNkYRgCIAEoDCJBChdGb2xkRnJvbnRpZXJGaW5nZXJwcmludBIRCglpbnRlbnRfaWQYASABKAkSEwoLZmluZ2VycHJpbnQYAiABKAki1gMKFEZvbGRGcm9udGllclNuYXBzaG90EhYKDmZvcm1hdF92ZXJzaW9uGAEgASgNEgsKA3RpcBgCIAEoCRIPCgdnZW5lc2lzGAMgASgJEhUKDWhpc3RvcnlfZGVwdGgYBCABKAQSOgoKYWdncmVnYXRlcxgFIAMoCzImLm5vbW9zLmtlcm5lbC52MS5Gb2xkRnJvbnRpZXJBZ2dyZWdhdGUSOAoNaGxjX3dhdGVybWFyaxgGIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Gcm9udGllckhsY0gAiAEBEjMKCGxhc3RfaGxjGAcgASgLMhwubm9tb3Mua2VybmVsLnYxLkZyb250aWVySGxjSAGIAQESFAoHbGFzdF9pZBgIIAEoCUgCiAEBEhYKDnN0cmlrZV90YXJnZXRzGAkgAygJEkUKE2ludGVudF9maW5nZXJwcmludHMYCiADKAsyKC5ub21vcy5rZXJuZWwudjEuRm9sZEZyb250aWVyRmluZ2VycHJpbnQSFwoKc3RhdGVfcm9vdBgLIAEoCUgDiAEBQhAKDl9obGNfd2F0ZXJtYXJrQgsKCV9sYXN0X2hsY0IKCghfbGFzdF9pZEINCgtfc3RhdGVfcm9vdCKbAwoYU3RvcmVkQ2hlY2twb2ludE1hbmlmZXN0EhYKDmZvcm1hdF92ZXJzaW9uGAEgASgNEhMKBmN1cnNvchgCIAEoCUgAiAEBEhgKEGNoZWNrcG9pbnRfYnl0ZXMYAyABKAQSEAoIbGF3X2hhc2gYBCABKAkSOwoLY29tcHJlc3Npb24YBSABKA4yJi5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludENvbXByZXNzaW9uEhEKCXJhd19ieXRlcxgGIAEoBBIUCgxzdG9yZWRfYnl0ZXMYByABKAQSHQoVZnJvbnRpZXJfc3RvcmVkX2J5dGVzGAggASgEEhcKCnN0YXRlX3Jvb3QYCSABKAlIAYgBARJQChl2ZXJpZmllZF9mcm9udGllcl9yZWNlaXB0GAogASgLMigubm9tb3Mua2VybmVsLnYxLlZlcmlmaWVkRnJvbnRpZXJSZWNlaXB0SAKIAQFCCQoHX2N1cnNvckINCgtfc3RhdGVfcm9vdEIcChpfdmVyaWZpZWRfZnJvbnRpZXJfcmVjZWlwdCLBAwoXQ2hlY2twb2ludEltcG9ydFJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBISCghmcm9udGllchgCIAEoDEgAEh4KFHN0YWdlZF9mcm9udGllcl9maWxlGAYgASgJSAASEwoGY3Vyc29yGAMgASgJSAGIAQESFwoKc3RhdGVfcm9vdBgEIAEoCUgCiAEBEg0KBXNwYW5zGAUgASgIEhEKBGhlYWQYByABKAlIA4gBARJQChl2ZXJpZmllZF9mcm9udGllcl9yZWNlaXB0GAggASgLMigubm9tb3Mua2VybmVsLnYxLlZlcmlmaWVkRnJvbnRpZXJSZWNlaXB0SASIAQESSgoTdmVyaWZpY2F0aW9uX3BvbGljeRgJIAEoDjItLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50VmVyaWZpY2F0aW9uUG9saWN5QhEKD2Zyb250aWVyX3NvdXJjZUIJCgdfY3Vyc29yQg0KC19zdGF0ZV9yb290QgcKBV9oZWFkQhwKGl92ZXJpZmllZF9mcm9udGllcl9yZWNlaXB0IjEKFkNhcGFjaXR5UmVzZXJ2ZVJlcXVlc3QSFwoPYWdncmVnYXRlX2NvdW50GAEgASgEImkKElJlc3RvcmVNYWluUmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EgwKBGhlYWQYAiABKAkSEwoLZGlhZ25vc3RpY3MYAyABKAgiaQobUmVzb2x2ZVN0YXRlUG9zaXRpb25SZXF1ZXN0EgwKBHJlcG8YASABKAkSEQoJbWFpbl9oZWFkGAIgASgJEhUKDWhpbnRlZF9jb21taXQYAyABKAkSEgoKc3RhdGVfcm9vdBgEIAEoCSLjCwoPQ3VzdG9keVJlc3BvbnNlEjgKCnBhY2tfZGVsdGEYCiABKAsyIi5ub21vcy5rZXJuZWwudjEuUGFja0RlbHRhUmVzcG9uc2VIABI4CgphcHBseV9wYWNrGAsgASgLMiIubm9tb3Mua2VybmVsLnYxLkFwcGx5UGFja1Jlc3BvbnNlSAASOAoKcmVwb19zdGF0cxgMIAEoCzIiLm5vbW9zLmtlcm5lbC52MS5SZXBvU3RhdHNSZXNwb25zZUgAEj4KDWludGVudHNfYWJvdmUYDSABKAsyJS5ub21vcy5rZXJuZWwudjEuSW50ZW50c0Fib3ZlUmVzcG9uc2VIABJACg5pbnNwZWN0X2NoYW5nZRgOIAEoCzImLm5vbW9zLmtlcm5lbC52MS5JbnNwZWN0Q2hhbmdlUmVzcG9uc2VIABJPChZlbmNvZGVfcmVmdXNhbF92ZXJkaWN0GA8gASgLMi0ubm9tb3Mua2VybmVsLnYxLkVuY29kZVJlZnVzYWxWZXJkaWN0UmVzcG9uc2VIABJRChdpbnNwZWN0X3JlZnVzYWxfdmVyZGljdBgQIAEoCzIuLm5vbW9zLmtlcm5lbC52MS5JbnNwZWN0UmVmdXNhbFZlcmRpY3RSZXNwb25zZUgAEjYKCXJlYWRfYmxvYhgRIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5SZWFkQmxvYlJlc3BvbnNlSAASOgoLcmVzb2x2ZV9yZWYYEiABKAsyIy5ub21vcy5rZXJuZWwudjEuUmVzb2x2ZVJlZlJlc3BvbnNlSAASNgoJbGlzdF9yZWZzGBMgASgLMiEubm9tb3Mua2VybmVsLnYxLkxpc3RSZWZzUmVzcG9uc2VIABIyCgl3cml0ZV9yZWYYFCABKAsyHS5ub21vcy5rZXJuZWwudjEuQWNrbm93bGVkZ2VkSAASMwoKZGVsZXRlX3JlZhgVIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5BY2tub3dsZWRnZWRIABJFChF3cml0ZV9tZXRhX2NvbW1pdBgWIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5Xcml0ZU1ldGFDb21taXRSZXNwb25zZUgAEkMKEGxhd19jbG9zdXJlX2luZm8YFyABKAsyJy5ub21vcy5rZXJuZWwudjEuTGF3Q2xvc3VyZUluZm9SZXNwb25zZUgAEkYKEWNoZWNrcG9pbnRfZXhwb3J0GBggASgLMikubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRFeHBvcnRSZXNwb25zZUgAEkYKEWNoZWNrcG9pbnRfaW1wb3J0GBkgASgLMikubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRJbXBvcnRSZXNwb25zZUgAEkQKEGNhcGFjaXR5X3Jlc2VydmUYGiABKAsyKC5ub21vcy5rZXJuZWwudjEuQ2FwYWNpdHlSZXNlcnZlUmVzcG9uc2VIABI8CgxyZXN0b3JlX21haW4YGyABKAsyJC5ub21vcy5rZXJuZWwudjEuUmVzdG9yZU1haW5SZXNwb25zZUgAEk8KFnJlc29sdmVfc3RhdGVfcG9zaXRpb24YHCABKAsyLS5ub21vcy5rZXJuZWwudjEuUmVzb2x2ZVN0YXRlUG9zaXRpb25SZXNwb25zZUgAEkgKEnJlc2lkZW50X2Zvb3RwcmludBgdIAEoCzIqLm5vbW9zLmtlcm5lbC52MS5SZXNpZGVudEZvb3RwcmludFJlc3BvbnNlSAASQgoPaGlzdG9yeV9zdW1tYXJ5GB4gASgLMicubm9tb3Mua2VybmVsLnYxLkhpc3RvcnlTdW1tYXJ5UmVzcG9uc2VIABJbChxwcm92ZV9jb21wYWN0aW9uX2VxdWl2YWxlbmNlGB8gASgLMjMubm9tb3Mua2VybmVsLnYxLlByb3ZlQ29tcGFjdGlvbkVxdWl2YWxlbmNlUmVzcG9uc2VIAEILCglvcGVyYXRpb24iMAoRUGFja0RlbHRhUmVzcG9uc2USDAoEcGFjaxgBIAEoDBINCgVieXRlcxgCIAEoBCI8ChFBcHBseVBhY2tSZXNwb25zZRIUCgxvYmplY3RfY291bnQYASABKAQSEQoJcGFja19oYXNoGAIgASgJIqcBChFSZXBvU3RhdHNSZXNwb25zZRITCgt0b3RhbF9ieXRlcxgBIAEoBBIUCgxvYmplY3RfYnl0ZXMYAiABKAQSFQoNbG9vc2Vfb2JqZWN0cxgDIAEoBBITCgtsb29zZV9ieXRlcxgEIAEoBBISCgpwYWNrX2ZpbGVzGAUgASgEEhIKCnBhY2tfYnl0ZXMYBiABKAQSEwoLaW5kZXhfYnl0ZXMYByABKAQi4gEKDEludGVudFJlY29yZBILCgNvaWQYASABKAkSEQoJaW50ZW50X2lkGAIgASgJEg4KBmRvbWFpbhgDIAEoCRIRCglkaXJlY3RpdmUYBCABKAkSEwoLY2hhbmdlX3VzZGEYBSABKAwSLgoIc2VtYW50aWMYBiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSSgoVdHJhbnNwb3J0X3JlcXVpcmVtZW50GAcgASgOMisubm9tb3Mua2VybmVsLnYxLkludGVudFRyYW5zcG9ydFJlcXVpcmVtZW50IkYKFEludGVudHNBYm92ZVJlc3BvbnNlEi4KB2ludGVudHMYASADKAsyHS5ub21vcy5rZXJuZWwudjEuSW50ZW50UmVjb3JkInQKFkhpc3RvcnlTdW1tYXJ5UmVzcG9uc2USDAoEaGVhZBgBIAEoCRIOCgZvbGRlc3QYAiABKAkSFAoMY29tbWl0X2NvdW50GAMgASgEEhAKCGNvbXBsZXRlGAQgASgIEhQKDHJlYWNoZWRfYmFzZRgFIAEoCCJCChNOb21pbmFsQ2FsbElkZW50aXR5EhMKC2RvbWFpbl9wYXRoGAEgASgJEhYKDmRpcmVjdGl2ZV9wYXRoGAIgASgJIogBChhMaWZlY3ljbGVJbnN0YWxsSWRlbnRpdHkSHwoXdGFyZ2V0X2Nsb3N1cmVfaWRlbnRpdHkYASABKAkSFAoMaW5zdGFsbGVkX2J5GAIgASgJEjUKBXBoYXNlGAMgASgOMiYubm9tb3Mua2VybmVsLnYxLkxpZmVjeWNsZUluc3RhbGxQaGFzZSJaCh1Xb3Jrc3BhY2VSZXNpZGVuY3lSZXF1aXJlbWVudBIRCgl3b3Jrc3BhY2UYASABKAkSEwoLc291cmNlX2hlYWQYAiABKAkSEQoJZm9sZF9yb290GAMgASgJIrQCChVJbnNwZWN0Q2hhbmdlUmVzcG9uc2USLgoIc2VtYW50aWMYASABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSEQoJaW50ZW50X2lkGAIgASgJEjIKBGNhbGwYAyABKAsyJC5ub21vcy5rZXJuZWwudjEuTm9taW5hbENhbGxJZGVudGl0eRIQCghhdXRob3JlZBgEIAEoCBJEChFsaWZlY3ljbGVfaW5zdGFsbBgFIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5MaWZlY3ljbGVJbnN0YWxsSWRlbnRpdHkSTAoUcmVxdWlyZWRfcmVzaWRlbmNpZXMYBiADKAsyLi5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlUmVzaWRlbmN5UmVxdWlyZW1lbnQiTAocUmVzb2x2ZVN0YXRlUG9zaXRpb25SZXNwb25zZRIaCg1yZXNvbHZlZF9oZWFkGAEgASgJSACIAQFCEAoOX3Jlc29sdmVkX2hlYWQiNAocRW5jb2RlUmVmdXNhbFZlcmRpY3RSZXNwb25zZRIUCgx2ZXJkaWN0X3VzZGEYASABKAwiUQodSW5zcGVjdFJlZnVzYWxWZXJkaWN0UmVzcG9uc2USMAoHdmVyZGljdBgBIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5SZWZ1c2FsVmVyZGljdCJ1CiJQcm92ZUNvbXBhY3Rpb25FcXVpdmFsZW5jZVJlc3BvbnNlEjgKCGV2aWRlbmNlGAEgASgLMiYubm9tb3Mua2VybmVsLnYxLkNvbXBhY3Rpb25FcXVpdmFsZW5jZRIVCg1ldmlkZW5jZV91c2RhGAIgASgMIi8KEFJlYWRCbG9iUmVzcG9uc2USDQoFZm91bmQYASABKAgSDAoEYmxvYhgCIAEoDCIuChJSZXNvbHZlUmVmUmVzcG9uc2USEAoDb2lkGAEgASgJSACIAQFCBgoEX29pZCIrCglSZWZSZWNvcmQSEQoJcmVmZXJlbmNlGAEgASgJEgsKA29pZBgCIAEoCSI8ChBMaXN0UmVmc1Jlc3BvbnNlEigKBHJlZnMYASADKAsyGi5ub21vcy5rZXJuZWwudjEuUmVmUmVjb3JkIg4KDEFja25vd2xlZGdlZCImChdXcml0ZU1ldGFDb21taXRSZXNwb25zZRILCgNvaWQYASABKAkigwEKFkxhd0Nsb3N1cmVJbmZvUmVzcG9uc2USEAoIaWRlbnRpdHkYASABKAkSGQoRcm9vdF9sb2dpY2FsX3BhdGgYAiABKAkSEwoLYXNzZXRfY291bnQYAyABKAQSEgoKcHJpbV9jb3VudBgEIAEoBBITCgtkb21haW5fa2V5cxgFIAMoCSLfAwoYQ2hlY2twb2ludEV4cG9ydFJlc3BvbnNlEg0KBWVtcHR5GAEgASgIEhMKBmN1cnNvchgCIAEoCUgAiAEBEhAKCGZyb250aWVyGAMgASgMEhcKCnN0YXRlX3Jvb3QYBCABKAlIAYgBARISCgpzdGF0ZV90cmVlGAUgASgIEg4KBnBpbm5lZBgGIAEoCBIbChNyZWFkX2luZGV4X3NuYXBzaG90GAcgASgIEiMKG3JlYWRfaW5kZXhfc25hcHNob3RfcGVuZGluZxgIIAEoCBIkChdyZWFkX2luZGV4X3NxbGl0ZV9ieXRlcxgJIAEoBEgCiAEBEiUKGHJlYWRfaW5kZXhfY3VzdG9keV9ieXRlcxgKIAEoBEgDiAEBElAKGXZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQYCyABKAsyKC5ub21vcy5rZXJuZWwudjEuVmVyaWZpZWRGcm9udGllclJlY2VpcHRIBIgBAUIJCgdfY3Vyc29yQg0KC19zdGF0ZV9yb290QhoKGF9yZWFkX2luZGV4X3NxbGl0ZV9ieXRlc0IbChlfcmVhZF9pbmRleF9jdXN0b2R5X2J5dGVzQhwKGl92ZXJpZmllZF9mcm9udGllcl9yZWNlaXB0ItcCChhDaGVja3BvaW50SW1wb3J0UmVzcG9uc2USEAoIcmVzdG9yZWQYASABKAgSEwoGcmVhc29uGAIgASgJSACIAQESFwoPZnJvbnRpZXJfc2VlZGVkGAMgASgIEiUKHWZyb250aWVyX3ZlcmlmaWNhdGlvbl9wZW5kaW5nGAQgASgIEhcKD2FnZ3JlZ2F0ZV9jb3VudBgFIAEoBBIrCgVzcGFucxgGIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBITCgZjdXJzb3IYByABKAlIAYgBARIRCglyZWFkX29ubHkYCCABKAgSFwoPbGF6eV9yZWFkX2luZGV4GAkgASgIEjcKCWFzc3VyYW5jZRgKIAEoDjIkLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50QXNzdXJhbmNlQgkKB19yZWFzb25CCQoHX2N1cnNvciJKChdDYXBhY2l0eVJlc2VydmVSZXNwb25zZRIXCg9hZ2dyZWdhdGVfY291bnQYASABKAQSFgoOcmVzZXJ2ZWRfYnl0ZXMYAiABKAQi+QIKEFJlc3RvcmVNYWluU3BhbnMSEAoIdG90YWxfdXMYASABKAQSGgoSbGl2ZV9yZWZfbG9va3VwX3VzGAIgASgEEhgKEHRhcmdldF9kZWNvZGVfdXMYAyABKAQSJAocY3VzdG9keV9jb21wbGV0ZW5lc3NfcmVhZF91cxgEIAEoBBIZChFxdWFyYW50aW5lX3JlZl91cxgFIAEoBBIlCh1jaGFpbl9zaWduYXR1cmVfbGF3X3JlcGxheV91cxgGIAEoBBIZChF2ZXJkaWN0X2RlY29kZV91cxgHIAEoBBIjChtwcm9tb3RlX2FuZF9jbGVhbnVwX3JlZnNfdXMYCCABKAQSGwoTZnJvbnRpZXJfcmVidWlsZF91cxgJIAEoBBIZChFmcm9udGllcl9zdG9yZV91cxgKIAEoBBI9Cgx2ZXJpZmljYXRpb24YCyABKAsyJy5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5EaWFnbm9zdGljcyLvAQoTUmVzdG9yZU1haW5SZXNwb25zZRIMCgRoZWFkGAEgASgJEhAKCHZlcmlmaWVkGAIgASgIEgwKBHdhbGsYAyABKAkSMAoFc3BhbnMYBCABKAsyIS5ub21vcy5rZXJuZWwudjEuUmVzdG9yZU1haW5TcGFucxItCgd2ZXJkaWN0GAUgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EjcKCWFzc3VyYW5jZRgGIAEoDjIkLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50QXNzdXJhbmNlEhAKCGFjY2VwdGVkGAcgASgIIpsCCgpOb21vc1ZhbHVlEiUKBG51bGwYASABKAsyFS5ub21vcy5rZXJuZWwudjEuTnVsbEgAEhEKB2Jvb2xlYW4YAiABKAhIABIYCg5zaWduZWRfaW50ZWdlchgDIAEoEkgAEhoKEHVuc2lnbmVkX2ludGVnZXIYBCABKARIABIYCg5mbG9hdGluZ19wb2ludBgFIAEoAUgAEg4KBHRleHQYBiABKAlIABIPCgVieXRlcxgHIAEoDEgAEioKBGxpc3QYCCABKAsyGi5ub21vcy5rZXJuZWwudjEuTm9tb3NMaXN0SAASLgoGb2JqZWN0GAkgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0SABCBgoEa2luZCIGCgROdWxsIjgKCU5vbW9zTGlzdBIrCgZ2YWx1ZXMYASADKAsyGy5ub21vcy5rZXJuZWwudjEuTm9tb3NWYWx1ZSKTAQoLTm9tb3NTdHJ1Y3QSOAoGZmllbGRzGAEgAygLMigubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0LkZpZWxkc0VudHJ5GkoKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIqCgV2YWx1ZRgCIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5Ob21vc1ZhbHVlOgI4ASrpEgoRS2VybmVsUmVmdXNhbENvZGUSIwofS0VSTkVMX1JFRlVTQUxfQ09ERV9VTlNQRUNJRklFRBAAEiUKIUtFUk5FTF9SRUZVU0FMX0NPREVfQkFEX1NJR05BVFVSRRABEiQKIEtFUk5FTF9SRUZVU0FMX0NPREVfVU5BVVRIT1JJWkVEEAISJwojS0VSTkVMX1JFRlVTQUxfQ09ERV9QT0xJQ1lfRElTQUJMRUQQAxIqCiZLRVJORUxfUkVGVVNBTF9DT0RFX1VOQ0VSVElGSUVEX1BPTElDWRAEEiMKH0tFUk5FTF9SRUZVU0FMX0NPREVfUkVGRVJFTlRJQUwQBRIvCitLRVJORUxfUkVGVVNBTF9DT0RFX1BPSU5UX1NUQVRFX1VOQVZBSUxBQkxFEAYSJAogS0VSTkVMX1JFRlVTQUxfQ09ERV9DQVBfRVhDRUVERUQQBxItCilLRVJORUxfUkVGVVNBTF9DT0RFX0NBUF9DT1VOVF9VTkFWQUlMQUJMRRAIEikKJUtFUk5FTF9SRUZVU0FMX0NPREVfRVZJREVOQ0VfVU5CQUNLRUQQCRImCiJLRVJORUxfUkVGVVNBTF9DT0RFX09SUEhBTl9SRUNFSVBUEAoSNgoyS0VSTkVMX1JFRlVTQUxfQ09ERV9SRUNFSVBUX09OX1RFUk1JTkFMX09CTElHQVRJT04QCxIiCh5LRVJORUxfUkVGVVNBTF9DT0RFX05PVF9NSU5URUQQDBIoCiRLRVJORUxfUkVGVVNBTF9DT0RFX0RPTUFJTl9MSUZFQ1lDTEUQDRIpCiVLRVJORUxfUkVGVVNBTF9DT0RFX1RZUEVfVEFHX01JU01BVENIEA4SLAooS0VSTkVMX1JFRlVTQUxfQ09ERV9SRVRJUkVEX1JFQURfU1VSRkFDRRAPEjAKLEtFUk5FTF9SRUZVU0FMX0NPREVfQ1JPU1NfV09SS1NQQUNFX0RFQ0xJTkVEEBASKwonS0VSTkVMX1JFRlVTQUxfQ09ERV9BR0dSRUdBVEVfSU5WQVJJQU5UEBESKwonS0VSTkVMX1JFRlVTQUxfQ09ERV9XT1JLU1BBQ0VfSU5WQVJJQU5UEBISLgoqS0VSTkVMX1JFRlVTQUxfQ09ERV9DQVBUVVJFRF9SRUFEX0NPTkZMSUNUEBMSMgouS0VSTkVMX1JFRlVTQUxfQ09ERV9DT05GTElDVF9TTkFQU0hPVF9SRVFVSVJFRBAUEjQKMEtFUk5FTF9SRUZVU0FMX0NPREVfQ09ORkxJQ1RfU05BUFNIT1RfVU5ERUNMQVJFRBAVEjEKLUtFUk5FTF9SRUZVU0FMX0NPREVfQ09ORkxJQ1RfU05BUFNIT1RfSU5WQUxJRBAWEi8KK0tFUk5FTF9SRUZVU0FMX0NPREVfQ09ORkxJQ1RfU05BUFNIT1RfU1RBTEUQFxIwCixLRVJORUxfUkVGVVNBTF9DT0RFX0NBUFRVUkVEX1JFQURfVU5ERUNMQVJFRBAYEi0KKUtFUk5FTF9SRUZVU0FMX0NPREVfQ0FQVFVSRURfUkVBRF9QUklWQVRFEBkSMAosS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX1VOREVDTEFSRUQQGhIzCi9LRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEVEX1JFQURfVU5UUlVTVEVEX0tFWRAbEjYKMktFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNURURfUkVBRF9VTlRSVVNURURfU09VUkNFEBwSLAooS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX0ZPUkdFRBAdEisKJ0tFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNURURfUkVBRF9TVEFMRRAeEi4KKktFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNURURfUkVBRF9PVkVSU0laRRAfEjcKM0tFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNURURfUkVBRF9ESVNIT05PUkVEX1NPVVJDRRAgEjUKMUtFUk5FTF9SRUZVU0FMX0NPREVfRVFVSVZPQ0FUSU9OX0VWSURFTkNFX0lOVkFMSUQQIRIzCi9LRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEFUSU9OX1JFQ0VJUFRfSU5WQUxJRBAiEisKJ0tFUk5FTF9SRUZVU0FMX0NPREVfS0VZX1JPU1RFUl9NSVNNQVRDSBAjEi8KK0tFUk5FTF9SRUZVU0FMX0NPREVfS0VZX0VQT0NIX05PVF9NT05PVE9OSUMQJBIpCiVLRVJORUxfUkVGVVNBTF9DT0RFX1dSSVRFX0VQT0NIX1NUQUxFECUSLQopS0VSTkVMX1JFRlVTQUxfQ09ERV9FTlZFTE9QRV9TSURfTUlTTUFUQ0gQJhIyCi5LRVJORUxfUkVGVVNBTF9DT0RFX1JFVk9LRURfTUVNQkVSX1JFU1VSUkVDVEVEECcSKAokS0VSTkVMX1JFRlVTQUxfQ09ERV9GT1JHRURfUFJJTkNJUEFMECgSKAokS0VSTkVMX1JFRlVTQUxfQ09ERV9PV05FRF9LRVlfQU5DSE9SECkSJgoiS0VSTkVMX1JFRlVTQUxfQ09ERV9PV05FRF9SRUNPVkVSWRAqEiwKKEtFUk5FTF9SRUZVU0FMX0NPREVfU1VSRkFDRURfQkFTSVNfQUhFQUQQKxIyCi5LRVJORUxfUkVGVVNBTF9DT0RFX1NJR05FUl9FUE9DSF9PVVRfT0ZfV0lORE9XECwSJgoiS0VSTkVMX1JFRlVTQUxfQ09ERV9FVk9MVkVfUkVGVVNFRBAtEisKJ0tFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNUQVRJT05fSU5WQUxJRBAuEi0KKUtFUk5FTF9SRUZVU0FMX0NPREVfUEFSRU5UX0RJRF9OT1RfQVRURVNUEC8SKQolS0VSTkVMX1JFRlVTQUxfQ09ERV9DRVJUX0NIQUlOX0JST0tFThAwEioKJktFUk5FTF9SRUZVU0FMX0NPREVfTk9UX1JPT1RFRF9BVF9ST09UEDESKgomS0VSTkVMX1JFRlVTQUxfQ09ERV9ERUxFR0FUSU9OX0lOVkFMSUQQMhIlCiFLRVJORUxfUkVGVVNBTF9DT0RFX1BMQU5fUkVKRUNURUQQMyqKAQoPVmVyaWZ5Q2hhaW5XYWxrEiEKHVZFUklGWV9DSEFJTl9XQUxLX1VOU1BFQ0lGSUVEEAASGgoWVkVSSUZZX0NIQUlOX1dBTEtfRlVMTBABEhwKGFZFUklGWV9DSEFJTl9XQUxLX1NVRkZJWBACEhoKFlZFUklGWV9DSEFJTl9XQUxLX01FTU8QAyqIDAoOUXVlcnlPcGVyYXRpb24SHwobUVVFUllfT1BFUkFUSU9OX1VOU1BFQ0lGSUVEEAASHAoYUVVFUllfT1BFUkFUSU9OX0VYVFJFTVVNEAESJQohUVVFUllfT1BFUkFUSU9OX1BFTkRJTkdfQ09ORkxJQ1RTEAISLAooUVVFUllfT1BFUkFUSU9OX1BFTkRJTkdfQ09ORkxJQ1RfU1VNTUFSWRADEiAKHFFVRVJZX09QRVJBVElPTl9SRUFEX1BPU1RVUkUQBBIfChtRVUVSWV9PUEVSQVRJT05fQ1VSUkVOVF9MQVcQBRIjCh9RVUVSWV9PUEVSQVRJT05fSU5URVJGQUNFX09GRkVSEAYSJwojUVVFUllfT1BFUkFUSU9OX1JFTEFUSU9OX0dBVEVfT0ZGRVIQBxIdChlRVUVSWV9PUEVSQVRJT05fU0NFTkVfTEFXEAgSIQodUVVFUllfT1BFUkFUSU9OX0lOU1RBTExFRF9MQVcQCRIcChhRVUVSWV9PUEVSQVRJT05fREVTQ1JJQkUQChIjCh9RVUVSWV9PUEVSQVRJT05fS0VSTkVMX1JFU09VUkNFEAsSIwofUVVFUllfT1BFUkFUSU9OX0RFVkVMT1BFUl9TUEFOUxAMEikKJVFVRVJZX09QRVJBVElPTl9ERUNMQVJFRF9DQVBBQklMSVRJRVMQDRIdChlRVUVSWV9PUEVSQVRJT05fUkVBRElORVNTEA4SJAogUVVFUllfT1BFUkFUSU9OX1BST0pFQ1RJT05fU1RBVFMQDxIlCiFRVUVSWV9PUEVSQVRJT05fTUVNT1JZX0RST1BfUFJPQkUQEBIYChRRVUVSWV9PUEVSQVRJT05fV0FSTRAREhsKF1FVRVJZX09QRVJBVElPTl9SRUZSRVNIEBISIAocUVVFUllfT1BFUkFUSU9OX1ZFUklGWV9DSEFJThATEiUKIVFVRVJZX09QRVJBVElPTl9ISVNUT1JZX1BSRUZMSUdIVBAUEhkKFVFVRVJZX09QRVJBVElPTl9ST1VURRAVEhgKFFFVRVJZX09QRVJBVElPTl9NSU5UEBYSIQodUVVFUllfT1BFUkFUSU9OX0NSWVBUT19LRVlHRU4QFxIlCiFRVUVSWV9PUEVSQVRJT05fQ1JZUFRPX1NFQUxfRklFTEQQGBIsCihRVUVSWV9PUEVSQVRJT05fQ1JZUFRPX0JMSU5EX0lOREVYX1RPS0VOEBkSKgomUVVFUllfT1BFUkFUSU9OX0NSWVBUT19PV05FRF9TQ09QRV9LRVkQGhIvCitRVUVSWV9PUEVSQVRJT05fQ1JZUFRPX09XTkVEX0RFVklDRV9SRVFVRVNUEBsSMQotUVVFUllfT1BFUkFUSU9OX0NSWVBUT19PV05FRF9QUkVQQVJFX0FQUFJPVkFMEBwSMQotUVVFUllfT1BFUkFUSU9OX0NSWVBUT19PV05FRF9QUkVQQVJFX1JFQ09WRVJZEB0SIwofUVVFUllfT1BFUkFUSU9OX0NSWVBUT19XUkFQX0tFWRAeEiUKIVFVRVJZX09QRVJBVElPTl9DUllQVE9fVU5XUkFQX0tFWRAfEiEKHVFVRVJZX09QRVJBVElPTl9BVVRIT1JfS0VZR0VOECASJAogUVVFUllfT1BFUkFUSU9OX0FUVEVTVEFUSU9OX1NJR04QIRIgChxRVUVSWV9PUEVSQVRJT05fUkVDRUlQVF9QQVRIECISHQoZUVVFUllfT1BFUkFUSU9OX0NFUlRfU0lHThAjEiUKIVFVRVJZX09QRVJBVElPTl9CSVJUSF9UUlVTVF9TVEFURRAkEiEKHVFVRVJZX09QRVJBVElPTl9FUkFfQ0VSVF9TSUdOECUSKAokUVVFUllfT1BFUkFUSU9OX0RFTEVHQVRJT05fQ0VSVF9TSUdOECYSKQolUVVFUllfT1BFUkFUSU9OX0NBTk9OSUNBTElaRV9GUk9OVElFUhAnEisKJ1FVRVJZX09QRVJBVElPTl9DQU5PTklDQUxJWkVfUFJPSkVDVElPThAoKtICChVSZXNpZGVudENvbXBvbmVudEtpbmQSJwojUkVTSURFTlRfQ09NUE9ORU5UX0tJTkRfVU5TUEVDSUZJRUQQABImCiJSRVNJREVOVF9DT01QT05FTlRfS0lORF9GT0xEX1NUQVRFEAESLQopUkVTSURFTlRfQ09NUE9ORU5UX0tJTkRfUkVBRF9NT0RFTF9TUUxJVEUQAhIuCipSRVNJREVOVF9DT01QT05FTlRfS0lORF9SRUFEX01PREVMX0lOREVYRVMQAxItCilSRVNJREVOVF9DT01QT05FTlRfS0lORF9TSEFSRURfQVRUUklCVVRFRBAEEiwKKFJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX1dPUktTUEFDRV9DQUNIRVMQBRIsCihSRVNJREVOVF9DT01QT05FTlRfS0lORF9HSVRfT0JKRUNUX0NBQ0hFEAYqbAoTS2VybmVsTGF3Q2FwYWJpbGl0eRIlCiFLRVJORUxfTEFXX0NBUEFCSUxJVFlfVU5TUEVDSUZJRUQQABIuCipLRVJORUxfTEFXX0NBUEFCSUxJVFlfU1RBR0VfWkVST19CT09UU1RSQVAQASpZChVDaGVja3BvaW50Q29tcHJlc3Npb24SHwobQ0hFQ0tQT0lOVF9DT01QUkVTU0lPTl9OT05FEAASHwobQ0hFQ0tQT0lOVF9DT01QUkVTU0lPTl9HWklQEAEqkQEKHENoZWNrcG9pbnRWZXJpZmljYXRpb25Qb2xpY3kSMwovQ0hFQ0tQT0lOVF9WRVJJRklDQVRJT05fUE9MSUNZX1ZFUklGWV9DQU5PTklDQUwQABI8CjhDSEVDS1BPSU5UX1ZFUklGSUNBVElPTl9QT0xJQ1lfVFJVU1RfUFJFVklPVVNMWV9WRVJJRklFRBABKoABChNDaGVja3BvaW50QXNzdXJhbmNlEiQKIENIRUNLUE9JTlRfQVNTVVJBTkNFX1VOU1BFQ0lGSUVEEAASIAocQ0hFQ0tQT0lOVF9BU1NVUkFOQ0VfVFJVU1RFRBABEiEKHUNIRUNLUE9JTlRfQVNTVVJBTkNFX1ZFUklGSUVEEAIqqAEKGkludGVudFRyYW5zcG9ydFJlcXVpcmVtZW50EiwKKElOVEVOVF9UUkFOU1BPUlRfUkVRVUlSRU1FTlRfVU5TUEVDSUZJRUQQABIuCipJTlRFTlRfVFJBTlNQT1JUX1JFUVVJUkVNRU5UX1NFQUxFRF9DSEFOR0UQARIsCihJTlRFTlRfVFJBTlNQT1JUX1JFUVVJUkVNRU5UX0NPTU1JVF9UUkVFEAIqiQEKFUxpZmVjeWNsZUluc3RhbGxQaGFzZRInCiNMSUZFQ1lDTEVfSU5TVEFMTF9QSEFTRV9VTlNQRUNJRklFRBAAEiIKHkxJRkVDWUNMRV9JTlNUQUxMX1BIQVNFX0FDVElWRRABEiMKH0xJRkVDWUNMRV9JTlNUQUxMX1BIQVNFX1BFTkRJTkcQAjJZChJOb21vc0tlcm5lbFNlcnZpY2USQwoEQ2FsbBIcLm5vbW9zLmtlcm5lbC52MS5DYWxsUmVxdWVzdBodLm5vbW9zLmtlcm5lbC52MS5DYWxsUmVzcG9uc2ViBnByb3RvMw");
|
|
1199
|
+
file_nomos_kernel_v1_kernel = /* @__PURE__ */ fileDesc("Chxub21vcy9rZXJuZWwvdjEva2VybmVsLnByb3RvEg9ub21vcy5rZXJuZWwudjEi6wYKC0NhbGxSZXF1ZXN0EhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoCRIsCgRvcGVuGAogASgLMhwubm9tb3Mua2VybmVsLnYxLk9wZW5SZXF1ZXN0SAASLgoFb2ZmZXIYCyABKAsyHS5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZXF1ZXN0SAASLgoFcXVlcnkYDCABKAsyHS5ub21vcy5rZXJuZWwudjEuUXVlcnlSZXF1ZXN0SAASMAoGb3V0Ym94GA0gASgLMh4ubm9tb3Mua2VybmVsLnYxLk91dGJveFJlcXVlc3RIABIsCgRzeW5jGA4gASgLMhwubm9tb3Mua2VybmVsLnYxLlN5bmNSZXF1ZXN0SAASMgoHY3VzdG9keRgPIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5DdXN0b2R5UmVxdWVzdEgAEiwKBHRlc3QYECABKAsyHC5ub21vcy5rZXJuZWwudjEuVGVzdFJlcXVlc3RIABJIChNzaWduX3ByZXBhcmVkX29mZmVyGBEgASgLMikubm9tb3Mua2VybmVsLnYxLlNpZ25QcmVwYXJlZE9mZmVyUmVxdWVzdEgAEkoKFHByZXBhcmVfcmVtb3RlX29mZmVyGBIgASgLMioubm9tb3Mua2VybmVsLnYxLlByZXBhcmVSZW1vdGVPZmZlclJlcXVlc3RIABJOChZzaWduX29mZmVyX3ByZXBhcmF0aW9uGBMgASgLMiwubm9tb3Mua2VybmVsLnYxLlNpZ25PZmZlclByZXBhcmF0aW9uUmVxdWVzdEgAEk4KFnNpZ25fYmlydGhfY2VydGlmaWNhdGUYFCABKAsyLC5ub21vcy5rZXJuZWwudjEuU2lnbkJpcnRoQ2VydGlmaWNhdGVSZXF1ZXN0SAASSwoUaW5pdGlhbGl6ZV93b3Jrc3BhY2UYFSABKAsyKy5ub21vcy5rZXJuZWwudjEuSW5pdGlhbGl6ZVdvcmtzcGFjZVJlcXVlc3RIABJOChZhcHBseV93b3Jrc3BhY2VfZWZmZWN0GBYgASgLMiwubm9tb3Mua2VybmVsLnYxLkFwcGx5V29ya3NwYWNlRWZmZWN0UmVxdWVzdEgAQgsKCW9wZXJhdGlvbiKkBwoMQ2FsbFJlc3BvbnNlEhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoCRIrCgdmYWlsdXJlGAogASgLMhgubm9tb3Mua2VybmVsLnYxLkZhaWx1cmVIABItCgRvcGVuGAsgASgLMh0ubm9tb3Mua2VybmVsLnYxLk9wZW5SZXNwb25zZUgAEi8KBW9mZmVyGAwgASgLMh4ubm9tb3Mua2VybmVsLnYxLk9mZmVyUmVzcG9uc2VIABIvCgVxdWVyeRgNIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5RdWVyeVJlc3BvbnNlSAASMQoGb3V0Ym94GA4gASgLMh8ubm9tb3Mua2VybmVsLnYxLk91dGJveFJlc3BvbnNlSAASLQoEc3luYxgPIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5TeW5jUmVzcG9uc2VIABIzCgdjdXN0b2R5GBAgASgLMiAubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlSZXNwb25zZUgAEi0KBHRlc3QYESABKAsyHS5ub21vcy5rZXJuZWwudjEuVGVzdFJlc3BvbnNlSAASSQoTc2lnbl9wcmVwYXJlZF9vZmZlchgSIAEoCzIqLm5vbW9zLmtlcm5lbC52MS5TaWduUHJlcGFyZWRPZmZlclJlc3BvbnNlSAASSwoUcHJlcGFyZV9yZW1vdGVfb2ZmZXIYEyABKAsyKy5ub21vcy5rZXJuZWwudjEuUHJlcGFyZVJlbW90ZU9mZmVyUmVzcG9uc2VIABJPChZzaWduX29mZmVyX3ByZXBhcmF0aW9uGBQgASgLMi0ubm9tb3Mua2VybmVsLnYxLlNpZ25PZmZlclByZXBhcmF0aW9uUmVzcG9uc2VIABJPChZzaWduX2JpcnRoX2NlcnRpZmljYXRlGBUgASgLMi0ubm9tb3Mua2VybmVsLnYxLlNpZ25CaXJ0aENlcnRpZmljYXRlUmVzcG9uc2VIABJMChRpbml0aWFsaXplX3dvcmtzcGFjZRgWIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5Jbml0aWFsaXplV29ya3NwYWNlUmVzcG9uc2VIABJPChZhcHBseV93b3Jrc3BhY2VfZWZmZWN0GBcgASgLMi0ubm9tb3Mua2VybmVsLnYxLkFwcGx5V29ya3NwYWNlRWZmZWN0UmVzcG9uc2VIAEIJCgdvdXRjb21lIlcKB0ZhaWx1cmUSDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEi0KB2RldGFpbHMYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QiPAoMT3BlblJlc3BvbnNlEiwKBnJlc3VsdBgBIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCL3AgoNT2ZmZXJSZXNwb25zZRIyCghhZG1pdHRlZBgBIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5PZmZlckFkbWl0dGVkSAASMAoHcmVmdXNlZBgCIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5PZmZlclJlZnVzZWRIABI7Cg1kZWFkX2xldHRlcmVkGAMgASgLMiIubm9tb3Mua2VybmVsLnYxLk9mZmVyRGVhZExldHRlcmVkSAASOAoLcXVhcmFudGluZWQYBCABKAsyIS5ub21vcy5rZXJuZWwudjEuT2ZmZXJRdWFyYW50aW5lZEgAEkoKFWJsb2NrZWRfb25fZGVwZW5kZW5jeRgFIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5PZmZlckJsb2NrZWRPbkRlcGVuZGVuY3lIABIyCghwcmVwYXJlZBgGIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5PZmZlclByZXBhcmVkSABCCQoHb3V0Y29tZSKDAwoNT2ZmZXJBZG1pdHRlZBIMCgRoZWFkGAEgASgJEhEKCWludGVudF9pZBgCIAEoCRIXCgppbnRlbnRfb3V0GAMgASgJSACIAQESMwoHY3JlYXRlZBgEIAMoCzIiLm5vbW9zLmtlcm5lbC52MS5PZmZlckFnZ3JlZ2F0ZVJlZhI0CghhZmZlY3RlZBgFIAMoCzIiLm5vbW9zLmtlcm5lbC52MS5PZmZlckFnZ3JlZ2F0ZVJlZhIsCgRib3JuGAYgAygLMh4ubm9tb3Mua2VybmVsLnYxLkJvcm5Xb3Jrc3BhY2USNQoOYmlydGhfb3V0Y29tZXMYByADKAsyHS5ub21vcy5rZXJuZWwudjEuQmlydGhPdXRjb21lEjcKDGtlcm5lbF9zcGFucxgIIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxTcGFuc0gBiAEBEg8KB2RyeV9ydW4YCSABKAhCDQoLX2ludGVudF9vdXRCDwoNX2tlcm5lbF9zcGFucyItChFPZmZlckFnZ3JlZ2F0ZVJlZhIMCgR0eXBlGAEgASgJEgoKAmlkGAIgASgJIjAKDUJvcm5Xb3Jrc3BhY2USEQoJd29ya3NwYWNlGAEgASgJEgwKBGhlYWQYAiABKAkiiQMKDEJpcnRoT3V0Y29tZRIWCgl3b3Jrc3BhY2UYASABKAlIAIgBARIzCgZzdGF0dXMYAiABKA4yIy5ub21vcy5rZXJuZWwudjEuQmlydGhPdXRjb21lU3RhdHVzEhMKBnJlYXNvbhgDIAEoCUgBiAEBEhEKBGNvZGUYBCABKAlIAogBARIQCghyZXBsYXllZBgFIAEoCBIVCghsYXdfaGFzaBgGIAEoCUgDiAEBEh0KEHBhcmVudF93b3Jrc3BhY2UYByABKAlIBIgBARIcCg9jaGlsZF93b3Jrc3BhY2UYCCABKAlIBYgBARInChpjZXJ0aWZpY2F0ZV9yZWZ1c2FsX3JlYXNvbhgJIAEoCUgGiAEBQgwKCl93b3Jrc3BhY2VCCQoHX3JlYXNvbkIHCgVfY29kZUILCglfbGF3X2hhc2hCEwoRX3BhcmVudF93b3Jrc3BhY2VCEgoQX2NoaWxkX3dvcmtzcGFjZUIdChtfY2VydGlmaWNhdGVfcmVmdXNhbF9yZWFzb24iLwoQS2VybmVsU3Bhbk1ldHJpYxIMCgRuYW1lGAEgASgJEg0KBXZhbHVlGAIgASgEIqMBCgpLZXJuZWxTcGFuEg0KBWxhYmVsGAEgASgJEhAKCHRvdGFsX3VzGAIgASgEEg8KB3JlY29yZHMYAyABKAQSMQoGcGhhc2VzGAQgAygLMiEubm9tb3Mua2VybmVsLnYxLktlcm5lbFNwYW5NZXRyaWMSMAoFbm90ZXMYBSADKAsyIS5ub21vcy5rZXJuZWwudjEuS2VybmVsU3Bhbk1ldHJpYyJxCgtLZXJuZWxTcGFucxIvCgpvcGVyYXRpb25zGAEgAygLMhsubm9tb3Mua2VybmVsLnYxLktlcm5lbFNwYW4SMQoGZW5naW5lGAIgAygLMiEubm9tb3Mua2VybmVsLnYxLktlcm5lbFNwYW5NZXRyaWMilgEKDE9mZmVyUmVmdXNlZBIVCghvZmZlcl9pZBgBIAEoCUgAiAEBEi8KB3JlZnVzYWwYAiABKAsyHi5ub21vcy5rZXJuZWwudjEuS2VybmVsUmVmdXNhbBIxCgtkaWFnbm9zdGljcxgDIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdEILCglfb2ZmZXJfaWQiegoRT2ZmZXJEZWFkTGV0dGVyZWQSFQoIb2ZmZXJfaWQYASABKAlIAIgBARIOCgZyZWFzb24YAiABKAkSMQoLZGlhZ25vc3RpY3MYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3RCCwoJX29mZmVyX2lkIq4BChBPZmZlclF1YXJhbnRpbmVkEhUKCG9mZmVyX2lkGAEgASgJSACIAQESGQoRYXV0aG9yZWRfbGF3X2hhc2gYAiABKAkSGAoQY3VycmVudF9sYXdfaGFzaBgDIAEoCRIOCgZyZWFzb24YBCABKAkSMQoLZGlhZ25vc3RpY3MYBSABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3RCCwoJX29mZmVyX2lkIoEBChhPZmZlckJsb2NrZWRPbkRlcGVuZGVuY3kSFQoIb2ZmZXJfaWQYASABKAlIAIgBARIOCgZkZXRhaWwYAiABKAkSMQoLZGlhZ25vc3RpY3MYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3RCCwoJX29mZmVyX2lkIoUBCg1PZmZlclByZXBhcmVkEhwKFGF1dGhvcmVkX2NoYW5nZV91c2RhGAEgASgMEhkKEXdvcmtzcGFjZV9iaW5kaW5nGAIgASgJEhgKEHByZXBhcmVkX2F0X2hlYWQYAyABKAkSIQoZYXV0aG9yX3NpZ25hdHVyZV9yZXF1aXJlZBgEIAEoCCJqChhTaWduUHJlcGFyZWRPZmZlclJlcXVlc3QSHAoUYXV0aG9yZWRfY2hhbmdlX3VzZGEYASABKAwSGQoRd29ya3NwYWNlX2JpbmRpbmcYAiABKAkSFQoNYXV0aG9yX3NlY3JldBgDIAEoDCI3ChlTaWduUHJlcGFyZWRPZmZlclJlc3BvbnNlEhoKEnNpZ25lZF9jaGFuZ2VfdXNkYRgBIAEoDCKtAQoZUHJlcGFyZVJlbW90ZU9mZmVyUmVxdWVzdBIVCg1vZmZlcl9yZXF1ZXN0GAEgASgMEhkKEXdvcmtzcGFjZV9iaW5kaW5nGAIgASgJEhgKEHByZXBhcmVkX2F0X2hlYWQYAyABKAkSEgoKcHVibGljX2tleRgEIAEoDBIRCglzaWduYXR1cmUYBSABKAwSHQoVcmVxdWlyZWRfY3VzdG9keV9oZWFkGAYgASgJIlAKGU9mZmVyUHJlcGFyYXRpb25DaGFsbGVuZ2USGQoRd29ya3NwYWNlX2JpbmRpbmcYASABKAkSGAoQcHJlcGFyZWRfYXRfaGVhZBgCIAEoCSKZAQoaUHJlcGFyZVJlbW90ZU9mZmVyUmVzcG9uc2USPwoJY2hhbGxlbmdlGAEgASgLMioubm9tb3Mua2VybmVsLnYxLk9mZmVyUHJlcGFyYXRpb25DaGFsbGVuZ2VIABIvCgVvZmZlchgCIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5PZmZlclJlc3BvbnNlSABCCQoHb3V0Y29tZSKAAQobU2lnbk9mZmVyUHJlcGFyYXRpb25SZXF1ZXN0EhUKDW9mZmVyX3JlcXVlc3QYASABKAwSGQoRd29ya3NwYWNlX2JpbmRpbmcYAiABKAkSGAoQcHJlcGFyZWRfYXRfaGVhZBgDIAEoCRIVCg1hdXRob3Jfc2VjcmV0GAQgASgMIkUKHFNpZ25PZmZlclByZXBhcmF0aW9uUmVzcG9uc2USEgoKcHVibGljX2tleRgBIAEoDBIRCglzaWduYXR1cmUYAiABKAwigQEKDUtlcm5lbFJlZnVzYWwSMAoEY29kZRgBIAEoDjIiLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxSZWZ1c2FsQ29kZRIPCgdtZXNzYWdlGAIgASgJEi0KB2RldGFpbHMYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3Qi2AUKDVF1ZXJ5UmVzcG9uc2USFQoLcmVzdWx0X3VzZGEYAiABKAxIABIsCgV2YWx1ZRgBIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5Ob21vc1ZhbHVlSAASSgoTYXV0aG9yaXphdGlvbl9jaGVjaxgKIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ2hlY2tSZXNwb25zZUgAEkwKFGF1dGhvcml6YXRpb25fZXhwYW5kGAsgASgLMiwubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBhbmRSZXNwb25zZUgAEj4KDW9zZ2lfcmVzb3VyY2UYDCABKAsyJS5ub21vcy5rZXJuZWwudjEuT3NnaVJlc291cmNlUmVzcG9uc2VIABJKChNmcm9udGllcl90cmFuc2l0aW9uGA0gASgLMisubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvblJlc3BvbnNlSAASSwoUb3duZWRfZGV2aWNlX3JlcXVlc3QYDiABKAsyKy5ub21vcy5rZXJuZWwudjEuT3duZWREZXZpY2VSZXF1ZXN0UmVzcG9uc2VIABJPChZvd25lZF9wcmVwYXJlX2FwcHJvdmFsGA8gASgLMi0ubm9tb3Mua2VybmVsLnYxLk93bmVkUHJlcGFyZUFwcHJvdmFsUmVzcG9uc2VIABIXCg1pbnRlZ2VyX3ZhbHVlGBAgASgSSAASUAoWYXV0aGVudGljYXRpb25fcG9zdHVyZRgRIAEoCzIuLm5vbW9zLmtlcm5lbC52MS5BdXRoZW50aWNhdGlvblBvc3R1cmVSZXNwb25zZUgAEkkKGHZlcmlmeV9jaGFpbl9kaWFnbm9zdGljcxgUIAEoCzInLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpbkRpYWdub3N0aWNzQggKBnJlc3VsdCJICg1Pc2dpQXR0cmlidXRlEgwKBG5hbWUYASABKAkSDQoFdmFsdWUYAiABKAkSEQoEdHlwZRgDIAEoCUgAiAEBQgcKBV90eXBlIiwKDU9zZ2lEaXJlY3RpdmUSDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCSKLAQoOT3NnaUNhcGFiaWxpdHkSEQoJbmFtZXNwYWNlGAEgASgJEjIKCmF0dHJpYnV0ZXMYAiADKAsyHi5ub21vcy5rZXJuZWwudjEuT3NnaUF0dHJpYnV0ZRIyCgpkaXJlY3RpdmVzGAMgAygLMh4ubm9tb3Mua2VybmVsLnYxLk9zZ2lEaXJlY3RpdmUijAEKD09zZ2lSZXF1aXJlbWVudBIRCgluYW1lc3BhY2UYASABKAkSMgoKYXR0cmlidXRlcxgCIAMoCzIeLm5vbW9zLmtlcm5lbC52MS5Pc2dpQXR0cmlidXRlEjIKCmRpcmVjdGl2ZXMYAyADKAsyHi5ub21vcy5rZXJuZWwudjEuT3NnaURpcmVjdGl2ZSKaAQoUT3NnaVJlc291cmNlUmVzcG9uc2USEwoLc291cmNlX3VzZGEYASABKAwSNQoMY2FwYWJpbGl0aWVzGAIgAygLMh8ubm9tb3Mua2VybmVsLnYxLk9zZ2lDYXBhYmlsaXR5EjYKDHJlcXVpcmVtZW50cxgDIAMoCzIgLm5vbW9zLmtlcm5lbC52MS5Pc2dpUmVxdWlyZW1lbnQi5wEKE1ZlcmlmeUNoYWluU3RlcFNwYW4SDQoFaW5kZXgYASABKAQSEgoKY29tbWl0X29pZBgCIAEoCRIOCgZkb21haW4YAyABKAkSEQoJZGlyZWN0aXZlGAQgASgJEhAKCHRvdGFsX3VzGAUgASgEEjYKBnBoYXNlcxgGIAEoCzImLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpblN0ZXBQaGFzZXMSQAoOZW5naW5lX3RpbWluZ3MYByADKAsyKC5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5FbmdpbmVUaW1pbmcimAIKFVZlcmlmeUNoYWluU3RlcFBoYXNlcxIeChZydW50aW1lX2xhd19yZWZyZXNoX3VzGAEgASgEEhMKC21hbmlmZXN0X3VzGAIgASgEEhkKEWxhd19yZXNvbHV0aW9uX3VzGAMgASgEEh0KFW1hbmFnZWRfdHJhbnNpdGlvbl91cxgEIAEoBBIUCgxwcmluY2lwYWxfdXMYBSABKAQSFAoMZXZvbHV0aW9uX3VzGAYgASgEEhoKEmNvbG9jYXRlZF9yZWFkc191cxgHIAEoBBIhChl0eXBlZF9pbnN0YWxsX3ZlcmlmaWVyX3VzGAggASgEEhQKDGFkbWlzc2lvbl91cxgJIAEoBBIPCgdmb2xkX3VzGAogASgEItoFChZWZXJpZnlDaGFpbkRpYWdub3N0aWNzEi4KBHdhbGsYASABKA4yIC5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5XYWxrEhAKCHRvdGFsX3VzGAIgASgEEhsKE3JlZmVyZW5jZV9sb29rdXBfdXMYAyABKAQSGgoScmVwb3NpdG9yeV9vcGVuX3VzGAQgASgEEhUKDWNoYWluX3JlYWRfdXMYBSABKAQSFgoOZW5naW5lX2luaXRfdXMYBiABKAQSGAoQdGltZWxpbmVfcmVhZF91cxgHIAEoBBIYChBsYXdfaHlkcmF0aW9uX3VzGAggASgEEhsKE3JlY292ZXJ5X3ByZXNjYW5fdXMYCSABKAQSGAoQZm9sZF9mcm9udGllcl91cxgKIAEoBBIzCgVzdGVwcxgLIAMoCzIkLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpblN0ZXBTcGFuEkAKDmVuZ2luZV90aW1pbmdzGAwgAygLMigubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluRW5naW5lVGltaW5nEk0KFWxhd19oeWRyYXRpb25fdGltaW5ncxgNIAMoCzIuLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpbkxhd0h5ZHJhdGlvblRpbWluZxIZChFsYXdfY2xvc3VyZV9jb3VudBgOIAEoBBIeChZsYXdfY2xvc3VyZV9jYWNoZV9oaXRzGA8gASgEEiAKGGxhd19jbG9zdXJlX2NhY2hlX21pc3NlcxgQIAEoBBISCgpzdGVwX2NvdW50GBEgASgEEhUKDXN0ZXBfdG90YWxfdXMYEiABKAQSQQoRc3RlcF9waGFzZV90b3RhbHMYEyABKAsyJi5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5TdGVwUGhhc2VzEhoKEm9taXR0ZWRfc3RlcF9jb3VudBgUIAEoBCI6ChdWZXJpZnlDaGFpbkVuZ2luZVRpbWluZxINCgVwaGFzZRgBIAEoCRIQCgh0b3RhbF91cxgCIAEoBCJACh1WZXJpZnlDaGFpbkxhd0h5ZHJhdGlvblRpbWluZxINCgVwaGFzZRgBIAEoCRIQCgh0b3RhbF91cxgCIAEoBCIhChJIdHRwc091dGJvdW5kUm91dGUSCwoDdXJsGAEgASgJIisKFldvcmtzcGFjZU91dGJvdW5kUm91dGUSEQoJd29ya3NwYWNlGAEgASgJIvYBChtBcHBseVdvcmtzcGFjZUVmZmVjdFJlcXVlc3QSMAoGc291cmNlGAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBIVCg1zb3VyY2VfY29tbWl0GAIgASgJEhkKEXNvdXJjZV9vZmZlcl9wYXRoGAMgASgJEjAKBnRhcmdldBgEIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSHAoUc291cmNlX2V2aWRlbmNlX3BhY2sYBSABKAwSIwobYWRtaXNzaW9uX2NoZWNrcG9pbnRfc2VjcmV0GAYgASgMImcKHEFwcGx5V29ya3NwYWNlRWZmZWN0UmVzcG9uc2USLgoGcmVzdWx0GAEgASgLMh4ubm9tb3Mua2VybmVsLnYxLk9mZmVyUmVzcG9uc2USFwoPYWxyZWFkeV9hcHBsaWVkGAIgASgIIpMECg1PdXRib3VuZE9mZmVyEgoKAmlkGAEgASgJEhcKC2Rlc3RpbmF0aW9uGAIgASgJQgIYARIUCgxzZWFsZWRfb2ZmZXIYAyABKAwSFAoMY29udGVudF90eXBlGAQgASgJEhgKEHNvdXJjZV93b3Jrc3BhY2UYBSABKAkSFAoMY3VzdG9keV9oZWFkGAYgASgJEhcKD2NhdXNlZF9ieV9vZmZlchgHIAEoCRIbChNzY2hlZHVsZWRfYXRfbWlsbGlzGAggASgEEhoKEmRlYWRsaW5lX2F0X21pbGxpcxgJIAEoBBIUCgxjdXN0b2R5X3BhdGgYCiABKAkSEwoLY3VzdG9keV9vaWQYCyABKAkSFAoMZGVsaXZlcnlfcmVmGAwgASgJEhUKDW9ibGlnYXRpb25faWQYDSABKAkSOgoLaHR0cHNfcm91dGUYDiABKAsyIy5ub21vcy5rZXJuZWwudjEuSHR0cHNPdXRib3VuZFJvdXRlSAASQgoPd29ya3NwYWNlX3JvdXRlGA8gASgLMicubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZU91dGJvdW5kUm91dGVIABIVCg1zb3VyY2VfY29tbWl0GBAgASgJEhwKFHNvdXJjZV9ldmlkZW5jZV9wYWNrGBEgASgMEhkKEXNvdXJjZV9vZmZlcl9wYXRoGBIgASgJQgcKBXJvdXRlIngKDk91dGJveFJlc3BvbnNlEi4KBm9mZmVycxgBIAMoCzIeLm5vbW9zLmtlcm5lbC52MS5PdXRib3VuZE9mZmVyEh8KEm5leHRfZHVlX2F0X21pbGxpcxgCIAEoBEgAiAEBQhUKE19uZXh0X2R1ZV9hdF9taWxsaXMiPAoMU3luY1Jlc3BvbnNlEiwKBnJlc3VsdBgBIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCJCCg9Xb3Jrc3BhY2VUYXJnZXQSDAoEcmVwbxgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkSDgoGYnJhbmNoGAMgASgJIk4KC09wZW5SZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSDQoFc3BhbnMYAiABKAgioQEKGkluaXRpYWxpemVXb3Jrc3BhY2VSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSGwoTY29udHJvbGxlcl9sYXdfdXNkehgCIAEoDBI0CglhdXRob3JpbmcYAyABKAsyIS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaW5nT3B0aW9ucyJIChtJbml0aWFsaXplV29ya3NwYWNlUmVzcG9uc2USDAoEaGVhZBgBIAEoCRIbChNjb250cm9sbGVyX2xhd19oYXNoGAIgASgJIm4KDURpcmVjdGl2ZUNhbGwSDgoGZG9tYWluGAEgASgJEhEKCWRpcmVjdGl2ZRgCIAEoCRITCgljYWxsX3VzZGEYAyABKAxIAEIGCgRib2R5SgQIBBAFUgdwYXlsb2FkUg5sZWdhY3lfcGF5bG9hZCLWAgoQQXV0aG9yaW5nT3B0aW9ucxINCgVhY3RvchgBIAEoCRISCgphdXRoX3Rva2VuGAIgASgMEhUKDWF1dGhvcl9zZWNyZXQYAyABKAwSHQoQdmFsaWRfZnJvbV9lcG9jaBgEIAEoBEgAiAEBEh8KEnByaW5jaXBhbF92ZXJpZmllZBgFIAEoCEgBiAEBEgsKA3JuZxgGIAMoARIYChBkZWZlcl9wcm9qZWN0aW9uGAcgASgIEg0KBXNwYW5zGAggASgIEg8KB2RyeV9ydW4YCSABKAgSEAoIc2VxdWVuY2UYCiABKAQSLQoFY2xvY2sYCyABKAsyHi5ub21vcy5rZXJuZWwudjEuQ2FwdHVyZWRDbG9jaxIUCgxwcmVwYXJlX29ubHkYDCABKAhCEwoRX3ZhbGlkX2Zyb21fZXBvY2hCFQoTX3ByaW5jaXBhbF92ZXJpZmllZCJKCg1DYXB0dXJlZENsb2NrEhcKD3BoeXNpY2FsX21pbGxpcxgBIAEoBBIPCgdsb2dpY2FsGAIgASgNEg8KB3JlcGxpY2EYAyABKAQiwwMKEEJpcnRoQ2VydGlmaWNhdGUSDQoFY2hpbGQYASABKAkSDwoHZm91bmRlchgCIAEoCRIQCgh2ZXJpZmllZBgDIAEoCBISCgpwYXJlbnRfa2V5GAQgASgMEhEKCXBhcmVudF9pZBgFIAEoCRINCgVlcG9jaBgGIAEoAxIRCglzaWduYXR1cmUYByABKAwSGQoMdmVyaWZpZWRfdmlhGAggASgJSACIAQESFgoJaWRwX3Rva2VuGAkgASgJSAGIAQESGwoOY2FwdHVyZWRfY2xvY2sYCiABKANIAogBARIhChRhdXRoX3Byb3ZpZGVyX2lzc3VlchgLIAEoCUgDiAEBEh8KEmF1dGhfcHJvdmlkZXJfandrcxgMIAEoCUgEiAEBEiMKFmF1dGhfcHJvdmlkZXJfYXVkaWVuY2UYDSABKAlIBYgBAUIPCg1fdmVyaWZpZWRfdmlhQgwKCl9pZHBfdG9rZW5CEQoPX2NhcHR1cmVkX2Nsb2NrQhcKFV9hdXRoX3Byb3ZpZGVyX2lzc3VlckIVChNfYXV0aF9wcm92aWRlcl9qd2tzQhkKF19hdXRoX3Byb3ZpZGVyX2F1ZGllbmNlImwKG1NpZ25CaXJ0aENlcnRpZmljYXRlUmVxdWVzdBI2CgtjZXJ0aWZpY2F0ZRgBIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5CaXJ0aENlcnRpZmljYXRlEhUKDXNpZ25lcl9zZWNyZXQYAiABKAwiVgocU2lnbkJpcnRoQ2VydGlmaWNhdGVSZXNwb25zZRI2CgtjZXJ0aWZpY2F0ZRgBIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5CaXJ0aENlcnRpZmljYXRlIsACChRNb2RlbExpZmVjeWNsZUludGVudBI7CglvcGVyYXRpb24YASABKA4yKC5ub21vcy5rZXJuZWwudjEuTW9kZWxMaWZlY3ljbGVPcGVyYXRpb24SFAoMaW5zdGFsbGVkX2J5GAIgASgJEhcKCnN1cGVyc2VkZXMYAyABKAlIAIgBARJECgp0cmFuc2l0aW9uGAQgASgLMisubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvblJlc3BvbnNlSAGIAQESFQoIcmVwbGFjZXMYBSABKAlIAogBARIeChFhY2NlcHRhbmNlX3JlYXNvbhgGIAEoCUgDiAEBQg0KC19zdXBlcnNlZGVzQg0KC190cmFuc2l0aW9uQgsKCV9yZXBsYWNlc0IUChJfYWNjZXB0YW5jZV9yZWFzb24i3gQKDE9mZmVyUmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0Ei4KBGNhbGwYAiABKAsyHi5ub21vcy5rZXJuZWwudjEuRGlyZWN0aXZlQ2FsbEgAEhwKEnNlYWxlZF9jaGFuZ2VfdXNkYRgHIAEoDEgAEkAKD21vZGVsX2xpZmVjeWNsZRgMIAEoCzIlLm5vbW9zLmtlcm5lbC52MS5Nb2RlbExpZmVjeWNsZUludGVudEgAEjQKCWF1dGhvcmluZxgDIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpbmdPcHRpb25zEhAKCGxhd191c2R6GAQgASgMEjMKDGF0dGVzdGF0aW9ucxgFIAMoCzIdLm5vbW9zLmtlcm5lbC52MS5BdHRlc3RlZFJlYWQSPQoSY29uZmxpY3Rfc25hcHNob3RzGAYgAygLMiEubm9tb3Mua2VybmVsLnYxLkNvbmZsaWN0U25hcHNob3QSGgoSZXhlY3V0aW9uX2xhd191c2R6GAggASgMEiAKE2NvbnRyb2xsZXJfbGF3X2hhc2gYCSABKAlIAYgBARIdChBjYW5kaWRhdGVfY29tbWl0GAogASgJSAKIAQESPAoRYmlydGhfY2VydGlmaWNhdGUYCyABKAsyIS5ub21vcy5rZXJuZWwudjEuQmlydGhDZXJ0aWZpY2F0ZUIICgZpbnRlbnRCFgoUX2NvbnRyb2xsZXJfbGF3X2hhc2hCEwoRX2NhbmRpZGF0ZV9jb21taXQikwEKDEF0dGVzdGVkUmVhZBIQCghxdWVyeV9pZBgBIAEoCRIvCglhcmd1bWVudHMYAiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSKwoGcmVzdWx0GAMgASgLMhsubm9tb3Mua2VybmVsLnYxLk5vbW9zVmFsdWUSEwoLYXR0ZXN0YXRpb24YBCABKAwidQoQQ29uZmxpY3RTbmFwc2hvdBIWCg5hZ2dyZWdhdGVfdHlwZRgBIAEoCRIUCgxhZ2dyZWdhdGVfaWQYAiABKAkSDQoFZmllbGQYAyABKAkSFQoNdGFyZ2V0X3NjaGVtYRgEIAEoCRINCgV0b2tlbhgFIAEoCSKaCgoMUXVlcnlSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSMgoJYXV0aG9yaXR5GAIgASgLMh8ubm9tb3Mua2VybmVsLnYxLlF1ZXJ5QXV0aG9yaXR5Eg0KBXNwYW5zGAMgASgIEjkKDXJlc3VsdF9mb3JtYXQYBCABKA4yIi5ub21vcy5rZXJuZWwudjEuUXVlcnlSZXN1bHRGb3JtYXQSKgoEcm93cxgKIAEoCzIaLm5vbW9zLmtlcm5lbC52MS5Sb3dzUXVlcnlIABIqCgRwYWdlGAsgASgLMhoubm9tb3Mua2VybmVsLnYxLlBhZ2VRdWVyeUgAEisKBWJ5X2lkGAwgASgLMhoubm9tb3Mua2VybmVsLnYxLkJ5SWRRdWVyeUgAEjkKDHJlc29sdmVfcmVmcxgNIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5SZXNvbHZlUmVmc1F1ZXJ5SAASRQoScmVmZXJlbmNlX3ZlcnNpb25zGA4gASgLMicubm9tb3Mua2VybmVsLnYxLlJlZmVyZW5jZVZlcnNpb25zUXVlcnlIABIsCgVjb3VudBgPIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5UYWxseVF1ZXJ5SAASKgoDc3VtGBAgASgLMhsubm9tb3Mua2VybmVsLnYxLlRhbGx5UXVlcnlIABIwCgdzcGF0aWFsGBEgASgLMh0ubm9tb3Mua2VybmVsLnYxLlNwYXRpYWxRdWVyeUgAEiwKBW5hbWVkGBIgASgLMhsubm9tb3Mua2VybmVsLnYxLk5hbWVkUXVlcnlIABJJChNhdXRob3JpemF0aW9uX2NoZWNrGBMgASgLMioubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25DaGVja1JlcXVlc3RIABJLChRhdXRob3JpemF0aW9uX2V4cGFuZBgUIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRXhwYW5kUmVxdWVzdEgAEkkKE2Zyb250aWVyX3RyYW5zaXRpb24YFSABKAsyKi5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uUmVxdWVzdEgAEi8KB2J5X3R5cGUYFiABKAsyHC5ub21vcy5rZXJuZWwudjEuQnlUeXBlUXVlcnlIABJIChRvd25lZF9kZXZpY2VfcmVxdWVzdBgXIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5Pd25lZERldmljZVJlcXVlc3RRdWVyeUgAEkwKFm93bmVkX3ByZXBhcmVfYXBwcm92YWwYGCABKAsyKi5ub21vcy5rZXJuZWwudjEuT3duZWRQcmVwYXJlQXBwcm92YWxRdWVyeUgAEkMKEXBlbmRpbmdfY29uZmxpY3RzGBkgASgLMiYubm9tb3Mua2VybmVsLnYxLlBlbmRpbmdDb25mbGljdHNRdWVyeUgAElAKGHBlbmRpbmdfY29uZmxpY3Rfc3VtbWFyeRgaIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5QZW5kaW5nQ29uZmxpY3RTdW1tYXJ5UXVlcnlIABJNChZhdXRoZW50aWNhdGlvbl9wb3N0dXJlGBsgASgLMisubm9tb3Mua2VybmVsLnYxLkF1dGhlbnRpY2F0aW9uUG9zdHVyZVF1ZXJ5SABCBwoFcXVlcnkiHAoaQXV0aGVudGljYXRpb25Qb3N0dXJlUXVlcnkingEKHUF1dGhlbnRpY2F0aW9uUG9zdHVyZVJlc3BvbnNlEkgKDnByb3ZpZGVyX3Rva2VuGAEgASgOMjAubm9tb3Mua2VybmVsLnYxLlByb3ZpZGVyVG9rZW5WZXJpZmljYXRpb25TdGF0dXMSFwoPZW5yb2xsZWRfZGV2aWNlGAIgASgIEhoKEnJlc29sdmVkX3ByaW5jaXBhbBgDIAEoCSIoChdPd25lZERldmljZVJlcXVlc3RRdWVyeRINCgVzY29wZRgBIAEoCSIyChpPd25lZERldmljZVJlcXVlc3RSZXNwb25zZRIUCgxyZXF1ZXN0X3VzZGEYASABKAwiQAoZT3duZWRQcmVwYXJlQXBwcm92YWxRdWVyeRINCgVzY29wZRgBIAEoCRIUCgxyZXF1ZXN0X3VzZGEYAiABKAwivwEKHE93bmVkUHJlcGFyZUFwcHJvdmFsUmVzcG9uc2USFwoPbmV3X2tleV9zdWJqZWN0GAEgASgJEhoKEm93bmVkX2N1c3RvZHlfdXNkYRgCIAEoDBIUCgx2ZXJpZmllZF92aWEYAyABKAkSGAoQdmFsaWRfZnJvbV9lcG9jaBgEIAEoBBIfChdhcHByb3ZlZF9hdF91bml4X21pbGxpcxgFIAEoBBIZChFvd25lZF9rZXlfc3ViamVjdBgGIAEoCSKSAQoOUXVlcnlBdXRob3JpdHkSFwoPcHJpbmNpcGFsX2NsYWltGAEgASgJEhIKCmF1dGhfdG9rZW4YAiABKAwSEAoIbm93X3VuaXgYAyABKAQSFQoNYXV0aG9yX3NlY3JldBgEIAEoDBIqCgRrZXlzGAUgAygLMhwubm9tb3Mua2VybmVsLnYxLkluamVjdGVkS2V5IjgKC0luamVjdGVkS2V5Eg0KBXNjb3BlGAEgASgJEg0KBWVwb2NoGAIgASgEEgsKA2tleRgDIAEoDCJzCglSb3dzUXVlcnkSCgoCaWQYASABKAkSLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EhEKCXByaW5jaXBhbBgDIAEoCRIWCg5hcmd1bWVudHNfdXNkYRgEIAEoDCKRAQoJUGFnZVF1ZXJ5EgoKAmlkGAEgASgJEi8KCWFyZ3VtZW50cxgCIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBINCgVsaW1pdBgDIAEoDRINCgVhZnRlchgEIAEoCRIRCglwcmluY2lwYWwYBSABKAkSFgoOYXJndW1lbnRzX3VzZGEYBiABKAwiTAoJQnlJZFF1ZXJ5EhYKDmFnZ3JlZ2F0ZV90eXBlGAEgASgJEhQKDGFnZ3JlZ2F0ZV9pZBgCIAEoCRIRCglwcmluY2lwYWwYAyABKAkiOAoLQnlUeXBlUXVlcnkSFgoOYWdncmVnYXRlX3R5cGUYASABKAkSEQoJcHJpbmNpcGFsGAIgASgJIlwKCE5vbW9zUmVmEhEKCXdvcmtzcGFjZRgBIAEoCRIWCg5hZ2dyZWdhdGVfdHlwZRgCIAEoCRIUCgxhZ2dyZWdhdGVfaWQYAyABKAkSDwoHdmVyc2lvbhgEIAEoCSJOChBSZXNvbHZlUmVmc1F1ZXJ5EicKBHJlZnMYASADKAsyGS5ub21vcy5rZXJuZWwudjEuTm9tb3NSZWYSEQoJcHJpbmNpcGFsGAIgASgJIk4KFlJlZmVyZW5jZVZlcnNpb25zUXVlcnkSNAoEcmVmcxgBIAMoCzImLm5vbW9zLmtlcm5lbC52MS5SZWZlcmVuY2VWZXJzaW9uQ2hlY2sihAEKFVJlZmVyZW5jZVZlcnNpb25DaGVjaxIpCgZwaW5uZWQYASABKAsyGS5ub21vcy5rZXJuZWwudjEuTm9tb3NSZWYSKQoGc2VyaWVzGAIgASgLMhkubm9tb3Mua2VybmVsLnYxLk5vbW9zUmVmEhUKDWN1cnJlbnRfZmllbGQYAyABKAkiYgoKVGFsbHlRdWVyeRIKCgJpZBgBIAEoCRIRCglwcmluY2lwYWwYAyABKAkSFgoJZ3JvdXBfa2V5GAQgASgJSACIAQFCDAoKX2dyb3VwX2tleUoECAIQA1IJYXJndW1lbnRzInoKDFNwYXRpYWxRdWVyeRIKCgJpZBgBIAEoCRIRCglwcmluY2lwYWwYAyABKAkSDQoFbWluX3gYBCABKAESDQoFbWluX3kYBSABKAESDQoFbWF4X3gYBiABKAESDQoFbWF4X3kYByABKAFKBAgCEANSCWFyZ3VtZW50cyJaChVQZW5kaW5nQ29uZmxpY3RzUXVlcnkSGwoOYWdncmVnYXRlX3R5cGUYASABKAlIAIgBARIRCglwcmluY2lwYWwYAiABKAlCEQoPX2FnZ3JlZ2F0ZV90eXBlIjAKG1BlbmRpbmdDb25mbGljdFN1bW1hcnlRdWVyeRIRCglwcmluY2lwYWwYASABKAkicQoKTmFtZWRRdWVyeRIyCglvcGVyYXRpb24YASABKA4yHy5ub21vcy5rZXJuZWwudjEuUXVlcnlPcGVyYXRpb24SLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0IrEBChlGcm9udGllclRyYW5zaXRpb25SZXF1ZXN0Eg4KBmRvbWFpbhgBIAEoCRIWCg5jYW5kaWRhdGVfaGFzaBgCIAEoCRIPCgdhdF9oYXNoGAMgASgJEiEKGWFja25vd2xlZGdlbWVudF9wcmluY2lwYWwYBCABKAkSIAoTcmVzdG9yZV9wcmV2aW91c19vZhgFIAEoCUgAiAEBQhYKFF9yZXN0b3JlX3ByZXZpb3VzX29mIloKJUZyb250aWVyVHJhbnNpdGlvbkRpc3Bvc2l0aW9uTWFwRW50cnkSGAoQc291cmNlX3N0YWJsZV9pZBgBIAEoCRIXCg9hY2tub3dsZWRnZW1lbnQYAiABKAki9QEKHkZyb250aWVyVHJhbnNpdGlvbkRpc3Bvc2l0aW9ucxIPCgdyZXRpcmVkGAEgAygJEkcKB3JldHlwZWQYAiADKAsyNi5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uRGlzcG9zaXRpb25NYXBFbnRyeRJHCgdyZWJpbmRzGAMgAygLMjYubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvbkRpc3Bvc2l0aW9uTWFwRW50cnkSHAoPYWNrbm93bGVkZ2VkX2J5GAQgASgJSACIAQFCEgoQX2Fja25vd2xlZGdlZF9ieSI9ChtGcm9udGllclRyYW5zaXRpb25WaW9sYXRpb24SDgoGZG9tYWluGAEgASgJEg4KBmRldGFpbBgCIAEoCSLXAgoaRnJvbnRpZXJUcmFuc2l0aW9uUmVzcG9uc2USDwoHYXRfaGFzaBgBIAEoCRIZCgxjdXJyZW50X2hhc2gYAiABKAlIAIgBARIVCg1hdF9zdGF0ZV9yb290GAMgASgJEhYKDmNhbmRpZGF0ZV9oYXNoGAQgASgJEg4KBmRvbWFpbhgFIAEoCRIPCgdkb21haW5zGAYgAygJEg0KBXJlYWR5GAcgASgIEkAKCnZpb2xhdGlvbnMYCCADKAsyLC5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uVmlvbGF0aW9uEkoKDGRpc3Bvc2l0aW9ucxgJIAEoCzIvLm5vbW9zLmtlcm5lbC52MS5Gcm9udGllclRyYW5zaXRpb25EaXNwb3NpdGlvbnNIAYgBAUIPCg1fY3VycmVudF9oYXNoQg8KDV9kaXNwb3NpdGlvbnMiLwoTQXV0aG9yaXphdGlvbk9iamVjdBIMCgR0eXBlGAEgASgJEgoKAmlkGAIgASgJIlQKFEF1dGhvcml6YXRpb25TdWJqZWN0EgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkSFQoIcmVsYXRpb24YAyABKAlIAIgBAUILCglfcmVsYXRpb24inAEKGFJlbGF0aW9uc2hpcFR1cGxlQWRkcmVzcxI2CghyZXNvdXJjZRgBIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uT2JqZWN0EhAKCHJlbGF0aW9uGAIgASgJEjYKB3N1YmplY3QYAyABKAsyJS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvblN1YmplY3QigQEKGEF1dGhvcml6YXRpb25Db25zaXN0ZW5jeRIjChljdXJyZW50X3ZlcmlmaWVkX2Zyb250aWVyGAEgASgISAASGQoPYXRfbGVhc3RfY29tbWl0GAIgASgJSAASFgoMZXhhY3RfY29tbWl0GAMgASgJSABCDQoLcmVxdWlyZW1lbnQiZgodQXV0aG9yaXphdGlvbkNvbmRpdGlvbkNvbnRleHQSFAoMY29uZGl0aW9uX2lkGAEgASgJEi8KCWFyZ3VtZW50cxgCIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCL3AgoZQXV0aG9yaXphdGlvbkNoZWNrUmVxdWVzdBI2CghyZXNvdXJjZRgBIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uT2JqZWN0EhIKCnBlcm1pc3Npb24YAiABKAkSNgoHc3ViamVjdBgDIAEoCzIlLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uU3ViamVjdBI+Cgtjb25zaXN0ZW5jeRgEIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ29uc2lzdGVuY3kSPwoHY29udGV4dBgFIAMoCzIuLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ29uZGl0aW9uQ29udGV4dBIgChNleHBlY3RlZF9tb2RlbF9oYXNoGAYgASgJSACIAQESGwoTaW5jbHVkZV9leHBsYW5hdGlvbhgHIAEoCEIWChRfZXhwZWN0ZWRfbW9kZWxfaGFzaCLtAgoaQXV0aG9yaXphdGlvbkV4cGFuZFJlcXVlc3QSNgoIcmVzb3VyY2UYASABKAsyJC5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbk9iamVjdBISCgpwZXJtaXNzaW9uGAIgASgJEj4KC2NvbnNpc3RlbmN5GAMgASgLMikubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25Db25zaXN0ZW5jeRI/Cgdjb250ZXh0GAQgAygLMi4ubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25Db25kaXRpb25Db250ZXh0EiAKE2V4cGVjdGVkX21vZGVsX2hhc2gYBSABKAlIAIgBARINCgVsaW1pdBgGIAEoDRISCgVhZnRlchgHIAEoCUgBiAEBEhsKE2luY2x1ZGVfZXhwbGFuYXRpb24YCCABKAhCFgoUX2V4cGVjdGVkX21vZGVsX2hhc2hCCAoGX2FmdGVyIr0BChlSZWxhdGlvbnNoaXBUdXBsZUV2aWRlbmNlEjgKBXR1cGxlGAEgASgLMikubm9tb3Mua2VybmVsLnYxLlJlbGF0aW9uc2hpcFR1cGxlQWRkcmVzcxIQCgh0dXBsZV9pZBgCIAEoCRIaChJhc3NlcnRpb25fZXZlbnRfaWQYAyABKAkSIAoTcmV2b2NhdGlvbl9ldmVudF9pZBgEIAEoCUgAiAEBQhYKFF9yZXZvY2F0aW9uX2V2ZW50X2lkIuEDChhBdXRob3JpemF0aW9uRXhwbGFuYXRpb24SRgoJb3BlcmF0aW9uGAEgASgOMjMubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBsYW5hdGlvbi5PcGVyYXRpb24SEAoIcmVsYXRpb24YAiABKAkSDgoGcmVzdWx0GAMgASgIEjwKCGV2aWRlbmNlGAQgAygLMioubm9tb3Mua2VybmVsLnYxLlJlbGF0aW9uc2hpcFR1cGxlRXZpZGVuY2USOwoIY2hpbGRyZW4YBSADKAsyKS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkV4cGxhbmF0aW9uIt8BCglPcGVyYXRpb24SGQoVT1BFUkFUSU9OX1VOU1BFQ0lGSUVEEAASFAoQT1BFUkFUSU9OX0RJUkVDVBABEh4KGk9QRVJBVElPTl9DT01QVVRFRF9VU0VSU0VUEAISHgoaT1BFUkFUSU9OX1RVUExFX1RPX1VTRVJTRVQQAxITCg9PUEVSQVRJT05fVU5JT04QBBIaChZPUEVSQVRJT05fSU5URVJTRUNUSU9OEAUSFwoTT1BFUkFUSU9OX0VYQ0xVU0lPThAGEhcKE09QRVJBVElPTl9DT05ESVRJT04QByJ3ChpBdXRob3JpemF0aW9uRGVjaXNpb25CYXNpcxIgChhhdXRob3JpemF0aW9uX21vZGVsX2hhc2gYASABKAkSIQoZcmVsYXRpb25zaGlwX3N0YXRlX2NvbW1pdBgCIAEoCRIUCgxjb250ZXh0X2hhc2gYAyABKAwivgEKGkF1dGhvcml6YXRpb25DaGVja1Jlc3BvbnNlEg8KB2FsbG93ZWQYASABKAgSOgoFYmFzaXMYAiABKAsyKy5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkRlY2lzaW9uQmFzaXMSQwoLZXhwbGFuYXRpb24YAyABKAsyKS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkV4cGxhbmF0aW9uSACIAQFCDgoMX2V4cGxhbmF0aW9uIoMCChtBdXRob3JpemF0aW9uRXhwYW5kUmVzcG9uc2USNwoIc3ViamVjdHMYASADKAsyJS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvblN1YmplY3QSOgoFYmFzaXMYAiABKAsyKy5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkRlY2lzaW9uQmFzaXMSEQoEbmV4dBgDIAEoCUgAiAEBEkMKC2V4cGxhbmF0aW9uGAQgASgLMikubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBsYW5hdGlvbkgBiAEBQgcKBV9uZXh0Qg4KDF9leHBsYW5hdGlvbiJwCg1PdXRib3hSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSLQoFY2xvY2sYAiABKAsyHi5ub21vcy5rZXJuZWwudjEuQ2FwdHVyZWRDbG9jayJjCgtTeW5jUmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EhEKCWZyb21fYmFzZRgCIAEoCRIPCgd0b19oZWFkGAMgASgJIlMKC1Rlc3RSZXF1ZXN0EjcKCHNldF9yb290GAEgASgLMiMubm9tb3Mua2VybmVsLnYxLlNldFRlc3RSb290UmVxdWVzdEgAQgsKCW9wZXJhdGlvbiIoChJTZXRUZXN0Um9vdFJlcXVlc3QSEgoKcHVibGljX2tleRgBIAEoDCI9CgxUZXN0UmVzcG9uc2USLQoGcmVzdWx0GAEgASgLMh0ubm9tb3Mua2VybmVsLnYxLkFja25vd2xlZGdlZCLVCwoOQ3VzdG9keVJlcXVlc3QSNwoKcGFja19kZWx0YRgKIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5QYWNrRGVsdGFSZXF1ZXN0SAASNwoKYXBwbHlfcGFjaxgLIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5BcHBseVBhY2tSZXF1ZXN0SAASNwoKcmVwb19zdGF0cxgMIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5SZXBvU3RhdHNSZXF1ZXN0SAASPQoNaW50ZW50c19hYm92ZRgNIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5JbnRlbnRzQWJvdmVSZXF1ZXN0SAASPwoOaW5zcGVjdF9jaGFuZ2UYDiABKAsyJS5ub21vcy5rZXJuZWwudjEuSW5zcGVjdENoYW5nZVJlcXVlc3RIABJOChZlbmNvZGVfcmVmdXNhbF92ZXJkaWN0GA8gASgLMiwubm9tb3Mua2VybmVsLnYxLkVuY29kZVJlZnVzYWxWZXJkaWN0UmVxdWVzdEgAElAKF2luc3BlY3RfcmVmdXNhbF92ZXJkaWN0GBAgASgLMi0ubm9tb3Mua2VybmVsLnYxLkluc3BlY3RSZWZ1c2FsVmVyZGljdFJlcXVlc3RIABI1CglyZWFkX2Jsb2IYESABKAsyIC5ub21vcy5rZXJuZWwudjEuUmVhZEJsb2JSZXF1ZXN0SAASOQoLcmVzb2x2ZV9yZWYYEiABKAsyIi5ub21vcy5rZXJuZWwudjEuUmVzb2x2ZVJlZlJlcXVlc3RIABI1CglsaXN0X3JlZnMYEyABKAsyIC5ub21vcy5rZXJuZWwudjEuTGlzdFJlZnNSZXF1ZXN0SAASNQoJd3JpdGVfcmVmGBQgASgLMiAubm9tb3Mua2VybmVsLnYxLldyaXRlUmVmUmVxdWVzdEgAEjcKCmRlbGV0ZV9yZWYYFSABKAsyIS5ub21vcy5rZXJuZWwudjEuRGVsZXRlUmVmUmVxdWVzdEgAEkQKEXdyaXRlX21ldGFfY29tbWl0GBYgASgLMicubm9tb3Mua2VybmVsLnYxLldyaXRlTWV0YUNvbW1pdFJlcXVlc3RIABJCChBsYXdfY2xvc3VyZV9pbmZvGBcgASgLMiYubm9tb3Mua2VybmVsLnYxLkxhd0Nsb3N1cmVJbmZvUmVxdWVzdEgAEkUKEWNoZWNrcG9pbnRfZXhwb3J0GBggASgLMigubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRFeHBvcnRSZXF1ZXN0SAASRQoRY2hlY2twb2ludF9pbXBvcnQYGSABKAsyKC5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludEltcG9ydFJlcXVlc3RIABJDChBjYXBhY2l0eV9yZXNlcnZlGBogASgLMicubm9tb3Mua2VybmVsLnYxLkNhcGFjaXR5UmVzZXJ2ZVJlcXVlc3RIABI7CgxyZXN0b3JlX21haW4YGyABKAsyIy5ub21vcy5rZXJuZWwudjEuUmVzdG9yZU1haW5SZXF1ZXN0SAASTgoWcmVzb2x2ZV9zdGF0ZV9wb3NpdGlvbhgcIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5SZXNvbHZlU3RhdGVQb3NpdGlvblJlcXVlc3RIABJHChJyZXNpZGVudF9mb290cHJpbnQYHSABKAsyKS5ub21vcy5rZXJuZWwudjEuUmVzaWRlbnRGb290cHJpbnRSZXF1ZXN0SAASQQoPaGlzdG9yeV9zdW1tYXJ5GB4gASgLMiYubm9tb3Mua2VybmVsLnYxLkhpc3RvcnlTdW1tYXJ5UmVxdWVzdEgAEloKHHByb3ZlX2NvbXBhY3Rpb25fZXF1aXZhbGVuY2UYHyABKAsyMi5ub21vcy5rZXJuZWwudjEuUHJvdmVDb21wYWN0aW9uRXF1aXZhbGVuY2VSZXF1ZXN0SABCCwoJb3BlcmF0aW9uIigKGFJlc2lkZW50Rm9vdHByaW50UmVxdWVzdBIMCgRkZWVwGAEgASgIIp8CChFSZXNpZGVudEZvb3RwcmludBIRCgl3b3Jrc3BhY2UYASABKAkSDgoGYnJhbmNoGAIgASgJEhgKEHJlYWRfbW9kZWxfYnl0ZXMYAyABKAQSHQoVcmVhZF9tb2RlbF9ydXN0X2J5dGVzGAQgASgEEhgKEGZvbGRfc3RhdGVfYnl0ZXMYBSABKAQSEwoLZm9sZF9pbWFnZXMYBiABKA0SHwoXc2hhcmVkX2F0dHJpYnV0ZWRfYnl0ZXMYByABKAQSEgoKYWdncmVnYXRlcxgIIAEoBBI2Cgpjb21wb25lbnRzGAkgAygLMiIubm9tb3Mua2VybmVsLnYxLlJlc2lkZW50Q29tcG9uZW50EhIKCmNvbXB1dGVfdXMYCiABKAQiaQoRUmVzaWRlbnRDb21wb25lbnQSNAoEa2luZBgBIAEoDjImLm5vbW9zLmtlcm5lbC52MS5SZXNpZGVudENvbXBvbmVudEtpbmQSDQoFYnl0ZXMYAiABKAQSDwoHY2VpbGluZxgDIAEoCCLKAQoZUmVzaWRlbnRGb290cHJpbnRSZXNwb25zZRI1CglyZXNpZGVudHMYASADKAsyIi5ub21vcy5rZXJuZWwudjEuUmVzaWRlbnRGb290cHJpbnQSHAoUYWxsb2NhdG9yX2xpdmVfYnl0ZXMYAiABKAQSGAoQYXR0cmlidXRlZF9ieXRlcxgDIAEoBBIZChF1bmFjY291bnRlZF9ieXRlcxgEIAEoBBIVCg1hY2NvdW50aW5nX3VzGAUgASgEEgwKBGRlZXAYBiABKAginAEKEFBhY2tEZWx0YVJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCgRoZWFkGAIgASgJSACIAQESEQoEYmFzZRgDIAEoCUgBiAEBEg4KBmJyYW5jaBgEIAEoCRIdChBzdGFnZWRfcGFja19maWxlGAUgASgJSAKIAQFCBwoFX2hlYWRCBwoFX2Jhc2VCEwoRX3N0YWdlZF9wYWNrX2ZpbGUicgoQQXBwbHlQYWNrUmVxdWVzdBIMCgRyZXBvGAEgASgJEg4KBHBhY2sYAiABKAxIABIaChBzdGFnZWRfcGFja19maWxlGAQgASgJSAASEQoEaGVhZBgDIAEoCUgBiAEBQggKBnNvdXJjZUIHCgVfaGVhZCIgChBSZXBvU3RhdHNSZXF1ZXN0EgwKBHJlcG8YASABKAkirAEKE0ludGVudHNBYm92ZVJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCgRoZWFkGAIgASgJSACIAQESEQoEYmFzZRgDIAEoCUgBiAEBEg4KBmJyYW5jaBgEIAEoCRINCgVsaW1pdBgFIAEoBBIYChBjb21wbGV0ZV9sb2dpY2FsGAYgASgIEhYKDmNvbXBhY3Rfc3RvcmVkGAcgASgIQgcKBV9oZWFkQgcKBV9iYXNlIm0KFUhpc3RvcnlTdW1tYXJ5UmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKBGhlYWQYAiABKAlIAIgBARIOCgZicmFuY2gYAyABKAkSEQoEYmFzZRgEIAEoCUgBiAEBQgcKBV9oZWFkQgcKBV9iYXNlIisKFEluc3BlY3RDaGFuZ2VSZXF1ZXN0EhMKC2NoYW5nZV91c2RhGAEgASgMIt8BCg5SZWZ1c2FsVmVyZGljdBIVCghvZmZlcl9pZBgBIAEoCUgAiAEBEhAKA29pZBgCIAEoCUgBiAEBEhMKBmRvbWFpbhgDIAEoCUgCiAEBEhkKDGRpcmVjdGl2ZV9pZBgEIAEoCUgDiAEBEhQKB3Nlc3Npb24YBSABKAlIBIgBARIRCglwYXJrZWRfYXQYBiABKAkSDgoGcmVhc29uGAcgASgJQgsKCV9vZmZlcl9pZEIGCgRfb2lkQgkKB19kb21haW5CDwoNX2RpcmVjdGl2ZV9pZEIKCghfc2Vzc2lvbiJPChtFbmNvZGVSZWZ1c2FsVmVyZGljdFJlcXVlc3QSMAoHdmVyZGljdBgBIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5SZWZ1c2FsVmVyZGljdCI0ChxJbnNwZWN0UmVmdXNhbFZlcmRpY3RSZXF1ZXN0EhQKDHZlcmRpY3RfdXNkYRgBIAEoDCLUAQoVQ29tcGFjdGlvbkVxdWl2YWxlbmNlEhMKC3NvdXJjZV9oZWFkGAEgASgJEhYKDnNvdXJjZV9nZW5lc2lzGAIgASgJEhYKDmNhbmRpZGF0ZV9oZWFkGAMgASgJEhkKEWNhbmRpZGF0ZV9nZW5lc2lzGAQgASgJEhYKDnNvdXJjZV9pbnRlbnRzGAUgASgEEhcKD2NhcnJpZWRfaW50ZW50cxgGIAEoBBIWCg5wYXJrZWRfaW50ZW50cxgHIAEoBBISCgplcXVpdmFsZW50GAggASgIIn0KIVByb3ZlQ29tcGFjdGlvbkVxdWl2YWxlbmNlUmVxdWVzdBITCgtzb3VyY2VfcmVwbxgBIAEoCRITCgtzb3VyY2VfaGVhZBgCIAEoCRIWCg5jYW5kaWRhdGVfcmVwbxgDIAEoCRIWCg5jYW5kaWRhdGVfaGVhZBgEIAEoCSI6Cg9SZWFkQmxvYlJlcXVlc3QSDAoEcmVwbxgBIAEoCRILCgNvaWQYAiABKAkSDAoEcGF0aBgDIAEoCSI0ChFSZXNvbHZlUmVmUmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKCXJlZmVyZW5jZRgCIAEoCSIvCg9MaXN0UmVmc1JlcXVlc3QSDAoEcmVwbxgBIAEoCRIOCgZwcmVmaXgYAiABKAkiQgoPV3JpdGVSZWZSZXF1ZXN0EgwKBHJlcG8YASABKAkSEQoJcmVmZXJlbmNlGAIgASgJEg4KBnRhcmdldBgDIAEoCSIzChBEZWxldGVSZWZSZXF1ZXN0EgwKBHJlcG8YASABKAkSEQoJcmVmZXJlbmNlGAIgASgJIikKCE1ldGFGaWxlEgwKBHBhdGgYASABKAkSDwoHY29udGVudBgCIAEoDCKuAQoWV3JpdGVNZXRhQ29tbWl0UmVxdWVzdBIMCgRyZXBvGAEgASgJEg8KB3BhcmVudHMYAiADKAkSKAoFZmlsZXMYAyADKAsyGS5ub21vcy5rZXJuZWwudjEuTWV0YUZpbGUSDwoHbWVzc2FnZRgEIAEoCRIUCgx0aW1lX3NlY29uZHMYBSABKBISFgoJcmVmZXJlbmNlGAYgASgJSACIAQFCDAoKX3JlZmVyZW5jZSJnChVMYXdDbG9zdXJlSW5mb1JlcXVlc3QSFAoMY2xvc3VyZV9maWxlGAEgASgJEjgKCmNhcGFiaWxpdHkYAiABKA4yJC5ub21vcy5rZXJuZWwudjEuS2VybmVsTGF3Q2FwYWJpbGl0eSKHAQoXQ2hlY2twb2ludEV4cG9ydFJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBIhChRzdGFnZWRfZnJvbnRpZXJfZmlsZRgCIAEoCUgAiAEBQhcKFV9zdGFnZWRfZnJvbnRpZXJfZmlsZSJBCgtGcm9udGllckhsYxIQCghwaHlzaWNhbBgBIAEoBBIPCgdsb2dpY2FsGAIgASgNEg8KB3JlcGxpY2EYAyABKAQi3QQKF1ZlcmlmaWVkRnJvbnRpZXJSZWNlaXB0EhYKDmZvcm1hdF92ZXJzaW9uGAEgASgNEgsKA29pZBgCIAEoCRIPCgdpbnRlbnRzGAMgASgEEhMKC3BsYW5zX3JlcnVuGAQgASgEEhwKD2NvbnRyb2xsZXJfaGFzaBgFIAEoCUgAiAEBEhkKEWluc3RhbGxlZF9kb21haW5zGAYgAygJEg4KBmxpbmVhchgHIAEoCBIzCghsYXN0X2hsYxgIIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Gcm9udGllckhsY0gBiAEBEhQKB2xhc3RfaWQYCSABKAlIAogBARIRCglzdGF0ZV9vaWQYCiABKAkSFAoMc3RhdGVfc2hhMjU2GAsgASgJEjkKDnN0YXRlX2xhc3RfaGxjGAwgASgLMhwubm9tb3Mua2VybmVsLnYxLkZyb250aWVySGxjSAOIAQESGgoNc3RhdGVfbGFzdF9pZBgNIAEoCUgEiAEBEhcKD21hbmlmZXN0X3NoYTI1NhgOIAEoCRIeChZsYXdfY2xvc3VyZV9pZGVudGl0aWVzGA8gAygJEhoKEnJlc29sdmFibGVfZG9tYWlucxgQIAMoCRIiChVwcm9qZWN0aW9uX3N0YXRlX3Jvb3QYESABKAlIBYgBAUISChBfY29udHJvbGxlcl9oYXNoQgsKCV9sYXN0X2hsY0IKCghfbGFzdF9pZEIRCg9fc3RhdGVfbGFzdF9obGNCEAoOX3N0YXRlX2xhc3RfaWRCGAoWX3Byb2plY3Rpb25fc3RhdGVfcm9vdCJFChVGb2xkRnJvbnRpZXJBZ2dyZWdhdGUSFAoMYWdncmVnYXRlX2lkGAEgASgJEhYKDmFnZ3JlZ2F0ZV91c2RhGAIgASgMIkEKF0ZvbGRGcm9udGllckZpbmdlcnByaW50EhEKCWludGVudF9pZBgBIAEoCRITCgtmaW5nZXJwcmludBgCIAEoCSLWAwoURm9sZEZyb250aWVyU25hcHNob3QSFgoOZm9ybWF0X3ZlcnNpb24YASABKA0SCwoDdGlwGAIgASgJEg8KB2dlbmVzaXMYAyABKAkSFQoNaGlzdG9yeV9kZXB0aBgEIAEoBBI6CgphZ2dyZWdhdGVzGAUgAygLMiYubm9tb3Mua2VybmVsLnYxLkZvbGRGcm9udGllckFnZ3JlZ2F0ZRI4Cg1obGNfd2F0ZXJtYXJrGAYgASgLMhwubm9tb3Mua2VybmVsLnYxLkZyb250aWVySGxjSACIAQESMwoIbGFzdF9obGMYByABKAsyHC5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJIbGNIAYgBARIUCgdsYXN0X2lkGAggASgJSAKIAQESFgoOc3RyaWtlX3RhcmdldHMYCSADKAkSRQoTaW50ZW50X2ZpbmdlcnByaW50cxgKIAMoCzIoLm5vbW9zLmtlcm5lbC52MS5Gb2xkRnJvbnRpZXJGaW5nZXJwcmludBIXCgpzdGF0ZV9yb290GAsgASgJSAOIAQFCEAoOX2hsY193YXRlcm1hcmtCCwoJX2xhc3RfaGxjQgoKCF9sYXN0X2lkQg0KC19zdGF0ZV9yb290IpsDChhTdG9yZWRDaGVja3BvaW50TWFuaWZlc3QSFgoOZm9ybWF0X3ZlcnNpb24YASABKA0SEwoGY3Vyc29yGAIgASgJSACIAQESGAoQY2hlY2twb2ludF9ieXRlcxgDIAEoBBIQCghsYXdfaGFzaBgEIAEoCRI7Cgtjb21wcmVzc2lvbhgFIAEoDjImLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50Q29tcHJlc3Npb24SEQoJcmF3X2J5dGVzGAYgASgEEhQKDHN0b3JlZF9ieXRlcxgHIAEoBBIdChVmcm9udGllcl9zdG9yZWRfYnl0ZXMYCCABKAQSFwoKc3RhdGVfcm9vdBgJIAEoCUgBiAEBElAKGXZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQYCiABKAsyKC5ub21vcy5rZXJuZWwudjEuVmVyaWZpZWRGcm9udGllclJlY2VpcHRIAogBAUIJCgdfY3Vyc29yQg0KC19zdGF0ZV9yb290QhwKGl92ZXJpZmllZF9mcm9udGllcl9yZWNlaXB0IsEDChdDaGVja3BvaW50SW1wb3J0UmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EhIKCGZyb250aWVyGAIgASgMSAASHgoUc3RhZ2VkX2Zyb250aWVyX2ZpbGUYBiABKAlIABITCgZjdXJzb3IYAyABKAlIAYgBARIXCgpzdGF0ZV9yb290GAQgASgJSAKIAQESDQoFc3BhbnMYBSABKAgSEQoEaGVhZBgHIAEoCUgDiAEBElAKGXZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQYCCABKAsyKC5ub21vcy5rZXJuZWwudjEuVmVyaWZpZWRGcm9udGllclJlY2VpcHRIBIgBARJKChN2ZXJpZmljYXRpb25fcG9saWN5GAkgASgOMi0ubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRWZXJpZmljYXRpb25Qb2xpY3lCEQoPZnJvbnRpZXJfc291cmNlQgkKB19jdXJzb3JCDQoLX3N0YXRlX3Jvb3RCBwoFX2hlYWRCHAoaX3ZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQiMQoWQ2FwYWNpdHlSZXNlcnZlUmVxdWVzdBIXCg9hZ2dyZWdhdGVfY291bnQYASABKAQiaQoSUmVzdG9yZU1haW5SZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSDAoEaGVhZBgCIAEoCRITCgtkaWFnbm9zdGljcxgDIAEoCCJpChtSZXNvbHZlU3RhdGVQb3NpdGlvblJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCgltYWluX2hlYWQYAiABKAkSFQoNaGludGVkX2NvbW1pdBgDIAEoCRISCgpzdGF0ZV9yb290GAQgASgJIuMLCg9DdXN0b2R5UmVzcG9uc2USOAoKcGFja19kZWx0YRgKIAEoCzIiLm5vbW9zLmtlcm5lbC52MS5QYWNrRGVsdGFSZXNwb25zZUgAEjgKCmFwcGx5X3BhY2sYCyABKAsyIi5ub21vcy5rZXJuZWwudjEuQXBwbHlQYWNrUmVzcG9uc2VIABI4CgpyZXBvX3N0YXRzGAwgASgLMiIubm9tb3Mua2VybmVsLnYxLlJlcG9TdGF0c1Jlc3BvbnNlSAASPgoNaW50ZW50c19hYm92ZRgNIAEoCzIlLm5vbW9zLmtlcm5lbC52MS5JbnRlbnRzQWJvdmVSZXNwb25zZUgAEkAKDmluc3BlY3RfY2hhbmdlGA4gASgLMiYubm9tb3Mua2VybmVsLnYxLkluc3BlY3RDaGFuZ2VSZXNwb25zZUgAEk8KFmVuY29kZV9yZWZ1c2FsX3ZlcmRpY3QYDyABKAsyLS5ub21vcy5rZXJuZWwudjEuRW5jb2RlUmVmdXNhbFZlcmRpY3RSZXNwb25zZUgAElEKF2luc3BlY3RfcmVmdXNhbF92ZXJkaWN0GBAgASgLMi4ubm9tb3Mua2VybmVsLnYxLkluc3BlY3RSZWZ1c2FsVmVyZGljdFJlc3BvbnNlSAASNgoJcmVhZF9ibG9iGBEgASgLMiEubm9tb3Mua2VybmVsLnYxLlJlYWRCbG9iUmVzcG9uc2VIABI6CgtyZXNvbHZlX3JlZhgSIAEoCzIjLm5vbW9zLmtlcm5lbC52MS5SZXNvbHZlUmVmUmVzcG9uc2VIABI2CglsaXN0X3JlZnMYEyABKAsyIS5ub21vcy5rZXJuZWwudjEuTGlzdFJlZnNSZXNwb25zZUgAEjIKCXdyaXRlX3JlZhgUIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5BY2tub3dsZWRnZWRIABIzCgpkZWxldGVfcmVmGBUgASgLMh0ubm9tb3Mua2VybmVsLnYxLkFja25vd2xlZGdlZEgAEkUKEXdyaXRlX21ldGFfY29tbWl0GBYgASgLMigubm9tb3Mua2VybmVsLnYxLldyaXRlTWV0YUNvbW1pdFJlc3BvbnNlSAASQwoQbGF3X2Nsb3N1cmVfaW5mbxgXIAEoCzInLm5vbW9zLmtlcm5lbC52MS5MYXdDbG9zdXJlSW5mb1Jlc3BvbnNlSAASRgoRY2hlY2twb2ludF9leHBvcnQYGCABKAsyKS5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludEV4cG9ydFJlc3BvbnNlSAASRgoRY2hlY2twb2ludF9pbXBvcnQYGSABKAsyKS5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludEltcG9ydFJlc3BvbnNlSAASRAoQY2FwYWNpdHlfcmVzZXJ2ZRgaIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5DYXBhY2l0eVJlc2VydmVSZXNwb25zZUgAEjwKDHJlc3RvcmVfbWFpbhgbIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5SZXN0b3JlTWFpblJlc3BvbnNlSAASTwoWcmVzb2x2ZV9zdGF0ZV9wb3NpdGlvbhgcIAEoCzItLm5vbW9zLmtlcm5lbC52MS5SZXNvbHZlU3RhdGVQb3NpdGlvblJlc3BvbnNlSAASSAoScmVzaWRlbnRfZm9vdHByaW50GB0gASgLMioubm9tb3Mua2VybmVsLnYxLlJlc2lkZW50Rm9vdHByaW50UmVzcG9uc2VIABJCCg9oaXN0b3J5X3N1bW1hcnkYHiABKAsyJy5ub21vcy5rZXJuZWwudjEuSGlzdG9yeVN1bW1hcnlSZXNwb25zZUgAElsKHHByb3ZlX2NvbXBhY3Rpb25fZXF1aXZhbGVuY2UYHyABKAsyMy5ub21vcy5rZXJuZWwudjEuUHJvdmVDb21wYWN0aW9uRXF1aXZhbGVuY2VSZXNwb25zZUgAQgsKCW9wZXJhdGlvbiIwChFQYWNrRGVsdGFSZXNwb25zZRIMCgRwYWNrGAEgASgMEg0KBWJ5dGVzGAIgASgEIjwKEUFwcGx5UGFja1Jlc3BvbnNlEhQKDG9iamVjdF9jb3VudBgBIAEoBBIRCglwYWNrX2hhc2gYAiABKAkipwEKEVJlcG9TdGF0c1Jlc3BvbnNlEhMKC3RvdGFsX2J5dGVzGAEgASgEEhQKDG9iamVjdF9ieXRlcxgCIAEoBBIVCg1sb29zZV9vYmplY3RzGAMgASgEEhMKC2xvb3NlX2J5dGVzGAQgASgEEhIKCnBhY2tfZmlsZXMYBSABKAQSEgoKcGFja19ieXRlcxgGIAEoBBITCgtpbmRleF9ieXRlcxgHIAEoBCLiAQoMSW50ZW50UmVjb3JkEgsKA29pZBgBIAEoCRIRCglpbnRlbnRfaWQYAiABKAkSDgoGZG9tYWluGAMgASgJEhEKCWRpcmVjdGl2ZRgEIAEoCRITCgtjaGFuZ2VfdXNkYRgFIAEoDBIuCghzZW1hbnRpYxgGIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBJKChV0cmFuc3BvcnRfcmVxdWlyZW1lbnQYByABKA4yKy5ub21vcy5rZXJuZWwudjEuSW50ZW50VHJhbnNwb3J0UmVxdWlyZW1lbnQiRgoUSW50ZW50c0Fib3ZlUmVzcG9uc2USLgoHaW50ZW50cxgBIAMoCzIdLm5vbW9zLmtlcm5lbC52MS5JbnRlbnRSZWNvcmQidAoWSGlzdG9yeVN1bW1hcnlSZXNwb25zZRIMCgRoZWFkGAEgASgJEg4KBm9sZGVzdBgCIAEoCRIUCgxjb21taXRfY291bnQYAyABKAQSEAoIY29tcGxldGUYBCABKAgSFAoMcmVhY2hlZF9iYXNlGAUgASgIIkIKE05vbWluYWxDYWxsSWRlbnRpdHkSEwoLZG9tYWluX3BhdGgYASABKAkSFgoOZGlyZWN0aXZlX3BhdGgYAiABKAkiiAEKGExpZmVjeWNsZUluc3RhbGxJZGVudGl0eRIfChd0YXJnZXRfY2xvc3VyZV9pZGVudGl0eRgBIAEoCRIUCgxpbnN0YWxsZWRfYnkYAiABKAkSNQoFcGhhc2UYAyABKA4yJi5ub21vcy5rZXJuZWwudjEuTGlmZWN5Y2xlSW5zdGFsbFBoYXNlIloKHVdvcmtzcGFjZVJlc2lkZW5jeVJlcXVpcmVtZW50EhEKCXdvcmtzcGFjZRgBIAEoCRITCgtzb3VyY2VfaGVhZBgCIAEoCRIRCglmb2xkX3Jvb3QYAyABKAkitAIKFUluc3BlY3RDaGFuZ2VSZXNwb25zZRIuCghzZW1hbnRpYxgBIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBIRCglpbnRlbnRfaWQYAiABKAkSMgoEY2FsbBgDIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5Ob21pbmFsQ2FsbElkZW50aXR5EhAKCGF1dGhvcmVkGAQgASgIEkQKEWxpZmVjeWNsZV9pbnN0YWxsGAUgASgLMikubm9tb3Mua2VybmVsLnYxLkxpZmVjeWNsZUluc3RhbGxJZGVudGl0eRJMChRyZXF1aXJlZF9yZXNpZGVuY2llcxgGIAMoCzIuLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VSZXNpZGVuY3lSZXF1aXJlbWVudCJMChxSZXNvbHZlU3RhdGVQb3NpdGlvblJlc3BvbnNlEhoKDXJlc29sdmVkX2hlYWQYASABKAlIAIgBAUIQCg5fcmVzb2x2ZWRfaGVhZCI0ChxFbmNvZGVSZWZ1c2FsVmVyZGljdFJlc3BvbnNlEhQKDHZlcmRpY3RfdXNkYRgBIAEoDCJRCh1JbnNwZWN0UmVmdXNhbFZlcmRpY3RSZXNwb25zZRIwCgd2ZXJkaWN0GAEgASgLMh8ubm9tb3Mua2VybmVsLnYxLlJlZnVzYWxWZXJkaWN0InUKIlByb3ZlQ29tcGFjdGlvbkVxdWl2YWxlbmNlUmVzcG9uc2USOAoIZXZpZGVuY2UYASABKAsyJi5ub21vcy5rZXJuZWwudjEuQ29tcGFjdGlvbkVxdWl2YWxlbmNlEhUKDWV2aWRlbmNlX3VzZGEYAiABKAwiLwoQUmVhZEJsb2JSZXNwb25zZRINCgVmb3VuZBgBIAEoCBIMCgRibG9iGAIgASgMIi4KElJlc29sdmVSZWZSZXNwb25zZRIQCgNvaWQYASABKAlIAIgBAUIGCgRfb2lkIisKCVJlZlJlY29yZBIRCglyZWZlcmVuY2UYASABKAkSCwoDb2lkGAIgASgJIjwKEExpc3RSZWZzUmVzcG9uc2USKAoEcmVmcxgBIAMoCzIaLm5vbW9zLmtlcm5lbC52MS5SZWZSZWNvcmQiDgoMQWNrbm93bGVkZ2VkIiYKF1dyaXRlTWV0YUNvbW1pdFJlc3BvbnNlEgsKA29pZBgBIAEoCSKDAQoWTGF3Q2xvc3VyZUluZm9SZXNwb25zZRIQCghpZGVudGl0eRgBIAEoCRIZChFyb290X2xvZ2ljYWxfcGF0aBgCIAEoCRITCgthc3NldF9jb3VudBgDIAEoBBISCgpwcmltX2NvdW50GAQgASgEEhMKC2RvbWFpbl9rZXlzGAUgAygJIt8DChhDaGVja3BvaW50RXhwb3J0UmVzcG9uc2USDQoFZW1wdHkYASABKAgSEwoGY3Vyc29yGAIgASgJSACIAQESEAoIZnJvbnRpZXIYAyABKAwSFwoKc3RhdGVfcm9vdBgEIAEoCUgBiAEBEhIKCnN0YXRlX3RyZWUYBSABKAgSDgoGcGlubmVkGAYgASgIEhsKE3JlYWRfaW5kZXhfc25hcHNob3QYByABKAgSIwobcmVhZF9pbmRleF9zbmFwc2hvdF9wZW5kaW5nGAggASgIEiQKF3JlYWRfaW5kZXhfc3FsaXRlX2J5dGVzGAkgASgESAKIAQESJQoYcmVhZF9pbmRleF9jdXN0b2R5X2J5dGVzGAogASgESAOIAQESUAoZdmVyaWZpZWRfZnJvbnRpZXJfcmVjZWlwdBgLIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5WZXJpZmllZEZyb250aWVyUmVjZWlwdEgEiAEBQgkKB19jdXJzb3JCDQoLX3N0YXRlX3Jvb3RCGgoYX3JlYWRfaW5kZXhfc3FsaXRlX2J5dGVzQhsKGV9yZWFkX2luZGV4X2N1c3RvZHlfYnl0ZXNCHAoaX3ZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQi1wIKGENoZWNrcG9pbnRJbXBvcnRSZXNwb25zZRIQCghyZXN0b3JlZBgBIAEoCBITCgZyZWFzb24YAiABKAlIAIgBARIXCg9mcm9udGllcl9zZWVkZWQYAyABKAgSJQodZnJvbnRpZXJfdmVyaWZpY2F0aW9uX3BlbmRpbmcYBCABKAgSFwoPYWdncmVnYXRlX2NvdW50GAUgASgEEisKBXNwYW5zGAYgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EhMKBmN1cnNvchgHIAEoCUgBiAEBEhEKCXJlYWRfb25seRgIIAEoCBIXCg9sYXp5X3JlYWRfaW5kZXgYCSABKAgSNwoJYXNzdXJhbmNlGAogASgOMiQubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRBc3N1cmFuY2VCCQoHX3JlYXNvbkIJCgdfY3Vyc29yIkoKF0NhcGFjaXR5UmVzZXJ2ZVJlc3BvbnNlEhcKD2FnZ3JlZ2F0ZV9jb3VudBgBIAEoBBIWCg5yZXNlcnZlZF9ieXRlcxgCIAEoBCL5AgoQUmVzdG9yZU1haW5TcGFucxIQCgh0b3RhbF91cxgBIAEoBBIaChJsaXZlX3JlZl9sb29rdXBfdXMYAiABKAQSGAoQdGFyZ2V0X2RlY29kZV91cxgDIAEoBBIkChxjdXN0b2R5X2NvbXBsZXRlbmVzc19yZWFkX3VzGAQgASgEEhkKEXF1YXJhbnRpbmVfcmVmX3VzGAUgASgEEiUKHWNoYWluX3NpZ25hdHVyZV9sYXdfcmVwbGF5X3VzGAYgASgEEhkKEXZlcmRpY3RfZGVjb2RlX3VzGAcgASgEEiMKG3Byb21vdGVfYW5kX2NsZWFudXBfcmVmc191cxgIIAEoBBIbChNmcm9udGllcl9yZWJ1aWxkX3VzGAkgASgEEhkKEWZyb250aWVyX3N0b3JlX3VzGAogASgEEj0KDHZlcmlmaWNhdGlvbhgLIAEoCzInLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpbkRpYWdub3N0aWNzIu8BChNSZXN0b3JlTWFpblJlc3BvbnNlEgwKBGhlYWQYASABKAkSEAoIdmVyaWZpZWQYAiABKAgSDAoEd2FsaxgDIAEoCRIwCgVzcGFucxgEIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5SZXN0b3JlTWFpblNwYW5zEi0KB3ZlcmRpY3QYBSABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSNwoJYXNzdXJhbmNlGAYgASgOMiQubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRBc3N1cmFuY2USEAoIYWNjZXB0ZWQYByABKAgimwIKCk5vbW9zVmFsdWUSJQoEbnVsbBgBIAEoCzIVLm5vbW9zLmtlcm5lbC52MS5OdWxsSAASEQoHYm9vbGVhbhgCIAEoCEgAEhgKDnNpZ25lZF9pbnRlZ2VyGAMgASgSSAASGgoQdW5zaWduZWRfaW50ZWdlchgEIAEoBEgAEhgKDmZsb2F0aW5nX3BvaW50GAUgASgBSAASDgoEdGV4dBgGIAEoCUgAEg8KBWJ5dGVzGAcgASgMSAASKgoEbGlzdBgIIAEoCzIaLm5vbW9zLmtlcm5lbC52MS5Ob21vc0xpc3RIABIuCgZvYmplY3QYCSABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3RIAEIGCgRraW5kIgYKBE51bGwiOAoJTm9tb3NMaXN0EisKBnZhbHVlcxgBIAMoCzIbLm5vbW9zLmtlcm5lbC52MS5Ob21vc1ZhbHVlIpMBCgtOb21vc1N0cnVjdBI4CgZmaWVsZHMYASADKAsyKC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QuRmllbGRzRW50cnkaSgoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEioKBXZhbHVlGAIgASgLMhsubm9tb3Mua2VybmVsLnYxLk5vbW9zVmFsdWU6AjgBKuoBChJCaXJ0aE91dGNvbWVTdGF0dXMSJAogQklSVEhfT1VUQ09NRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIdChlCSVJUSF9PVVRDT01FX1NUQVRVU19CT1JOEAESIQodQklSVEhfT1VUQ09NRV9TVEFUVVNfREVGRVJSRUQQAhIfChtCSVJUSF9PVVRDT01FX1NUQVRVU19GQUlMRUQQAxIgChxCSVJUSF9PVVRDT01FX1NUQVRVU19SRUZVU0VEEAQSKQolQklSVEhfT1VUQ09NRV9TVEFUVVNfVU5XQVJSQU5URURfQ0VSVBAFKukSChFLZXJuZWxSZWZ1c2FsQ29kZRIjCh9LRVJORUxfUkVGVVNBTF9DT0RFX1VOU1BFQ0lGSUVEEAASJQohS0VSTkVMX1JFRlVTQUxfQ09ERV9CQURfU0lHTkFUVVJFEAESJAogS0VSTkVMX1JFRlVTQUxfQ09ERV9VTkFVVEhPUklaRUQQAhInCiNLRVJORUxfUkVGVVNBTF9DT0RFX1BPTElDWV9ESVNBQkxFRBADEioKJktFUk5FTF9SRUZVU0FMX0NPREVfVU5DRVJUSUZJRURfUE9MSUNZEAQSIwofS0VSTkVMX1JFRlVTQUxfQ09ERV9SRUZFUkVOVElBTBAFEi8KK0tFUk5FTF9SRUZVU0FMX0NPREVfUE9JTlRfU1RBVEVfVU5BVkFJTEFCTEUQBhIkCiBLRVJORUxfUkVGVVNBTF9DT0RFX0NBUF9FWENFRURFRBAHEi0KKUtFUk5FTF9SRUZVU0FMX0NPREVfQ0FQX0NPVU5UX1VOQVZBSUxBQkxFEAgSKQolS0VSTkVMX1JFRlVTQUxfQ09ERV9FVklERU5DRV9VTkJBQ0tFRBAJEiYKIktFUk5FTF9SRUZVU0FMX0NPREVfT1JQSEFOX1JFQ0VJUFQQChI2CjJLRVJORUxfUkVGVVNBTF9DT0RFX1JFQ0VJUFRfT05fVEVSTUlOQUxfT0JMSUdBVElPThALEiIKHktFUk5FTF9SRUZVU0FMX0NPREVfTk9UX01JTlRFRBAMEigKJEtFUk5FTF9SRUZVU0FMX0NPREVfRE9NQUlOX0xJRkVDWUNMRRANEikKJUtFUk5FTF9SRUZVU0FMX0NPREVfVFlQRV9UQUdfTUlTTUFUQ0gQDhIsCihLRVJORUxfUkVGVVNBTF9DT0RFX1JFVElSRURfUkVBRF9TVVJGQUNFEA8SMAosS0VSTkVMX1JFRlVTQUxfQ09ERV9DUk9TU19XT1JLU1BBQ0VfREVDTElORUQQEBIrCidLRVJORUxfUkVGVVNBTF9DT0RFX0FHR1JFR0FURV9JTlZBUklBTlQQERIrCidLRVJORUxfUkVGVVNBTF9DT0RFX1dPUktTUEFDRV9JTlZBUklBTlQQEhIuCipLRVJORUxfUkVGVVNBTF9DT0RFX0NBUFRVUkVEX1JFQURfQ09ORkxJQ1QQExIyCi5LRVJORUxfUkVGVVNBTF9DT0RFX0NPTkZMSUNUX1NOQVBTSE9UX1JFUVVJUkVEEBQSNAowS0VSTkVMX1JFRlVTQUxfQ09ERV9DT05GTElDVF9TTkFQU0hPVF9VTkRFQ0xBUkVEEBUSMQotS0VSTkVMX1JFRlVTQUxfQ09ERV9DT05GTElDVF9TTkFQU0hPVF9JTlZBTElEEBYSLworS0VSTkVMX1JFRlVTQUxfQ09ERV9DT05GTElDVF9TTkFQU0hPVF9TVEFMRRAXEjAKLEtFUk5FTF9SRUZVU0FMX0NPREVfQ0FQVFVSRURfUkVBRF9VTkRFQ0xBUkVEEBgSLQopS0VSTkVMX1JFRlVTQUxfQ09ERV9DQVBUVVJFRF9SRUFEX1BSSVZBVEUQGRIwCixLRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEVEX1JFQURfVU5ERUNMQVJFRBAaEjMKL0tFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNURURfUkVBRF9VTlRSVVNURURfS0VZEBsSNgoyS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX1VOVFJVU1RFRF9TT1VSQ0UQHBIsCihLRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEVEX1JFQURfRk9SR0VEEB0SKwonS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX1NUQUxFEB4SLgoqS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX09WRVJTSVpFEB8SNwozS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX0RJU0hPTk9SRURfU09VUkNFECASNQoxS0VSTkVMX1JFRlVTQUxfQ09ERV9FUVVJVk9DQVRJT05fRVZJREVOQ0VfSU5WQUxJRBAhEjMKL0tFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNUQVRJT05fUkVDRUlQVF9JTlZBTElEECISKwonS0VSTkVMX1JFRlVTQUxfQ09ERV9LRVlfUk9TVEVSX01JU01BVENIECMSLworS0VSTkVMX1JFRlVTQUxfQ09ERV9LRVlfRVBPQ0hfTk9UX01PTk9UT05JQxAkEikKJUtFUk5FTF9SRUZVU0FMX0NPREVfV1JJVEVfRVBPQ0hfU1RBTEUQJRItCilLRVJORUxfUkVGVVNBTF9DT0RFX0VOVkVMT1BFX1NJRF9NSVNNQVRDSBAmEjIKLktFUk5FTF9SRUZVU0FMX0NPREVfUkVWT0tFRF9NRU1CRVJfUkVTVVJSRUNURUQQJxIoCiRLRVJORUxfUkVGVVNBTF9DT0RFX0ZPUkdFRF9QUklOQ0lQQUwQKBIoCiRLRVJORUxfUkVGVVNBTF9DT0RFX09XTkVEX0tFWV9BTkNIT1IQKRImCiJLRVJORUxfUkVGVVNBTF9DT0RFX09XTkVEX1JFQ09WRVJZECoSLAooS0VSTkVMX1JFRlVTQUxfQ09ERV9TVVJGQUNFRF9CQVNJU19BSEVBRBArEjIKLktFUk5FTF9SRUZVU0FMX0NPREVfU0lHTkVSX0VQT0NIX09VVF9PRl9XSU5ET1cQLBImCiJLRVJORUxfUkVGVVNBTF9DT0RFX0VWT0xWRV9SRUZVU0VEEC0SKwonS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RBVElPTl9JTlZBTElEEC4SLQopS0VSTkVMX1JFRlVTQUxfQ09ERV9QQVJFTlRfRElEX05PVF9BVFRFU1QQLxIpCiVLRVJORUxfUkVGVVNBTF9DT0RFX0NFUlRfQ0hBSU5fQlJPS0VOEDASKgomS0VSTkVMX1JFRlVTQUxfQ09ERV9OT1RfUk9PVEVEX0FUX1JPT1QQMRIqCiZLRVJORUxfUkVGVVNBTF9DT0RFX0RFTEVHQVRJT05fSU5WQUxJRBAyEiUKIUtFUk5FTF9SRUZVU0FMX0NPREVfUExBTl9SRUpFQ1RFRBAzKooBCg9WZXJpZnlDaGFpbldhbGsSIQodVkVSSUZZX0NIQUlOX1dBTEtfVU5TUEVDSUZJRUQQABIaChZWRVJJRllfQ0hBSU5fV0FMS19GVUxMEAESHAoYVkVSSUZZX0NIQUlOX1dBTEtfU1VGRklYEAISGgoWVkVSSUZZX0NIQUlOX1dBTEtfTUVNTxADKrcBChdNb2RlbExpZmVjeWNsZU9wZXJhdGlvbhIpCiVNT0RFTF9MSUZFQ1lDTEVfT1BFUkFUSU9OX1VOU1BFQ0lGSUVEEAASJQohTU9ERUxfTElGRUNZQ0xFX09QRVJBVElPTl9JTlNUQUxMEAESIwofTU9ERUxfTElGRUNZQ0xFX09QRVJBVElPTl9TVEFHRRACEiUKIU1PREVMX0xJRkVDWUNMRV9PUEVSQVRJT05fUFJPTU9URRADKosGCh9Qcm92aWRlclRva2VuVmVyaWZpY2F0aW9uU3RhdHVzEjIKLlBST1ZJREVSX1RPS0VOX1ZFUklGSUNBVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIsCihQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX1ZBTElEEAESNgoyUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19OT19NQVRDSElOR19LRVkQAhIuCipQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX0VYUElSRUQQAxI0CjBQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX05PVF9ZRVRfVkFMSUQQBBI2CjJQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX0lTU1VFUl9NSVNNQVRDSBAFEjgKNFBST1ZJREVSX1RPS0VOX1ZFUklGSUNBVElPTl9TVEFUVVNfQVVESUVOQ0VfTUlTTUFUQ0gQBhI0CjBQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX0JBRF9TSUdOQVRVUkUQBxIwCixQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX01BTEZPUk1FRBAIEjwKOFBST1ZJREVSX1RPS0VOX1ZFUklGSUNBVElPTl9TVEFUVVNfVU5TVVBQT1JURURfQUxHT1JJVEhNEAkSLgoqUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19CQURfS0VZEAoSNgoyUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19NSVNTSU5HX1NVQkpFQ1QQCxIyCi5QUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX05PX1ZFUklGSUVSEAwSNAowUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19NSVNTSU5HX1RPS0VOEA0qhAEKEVF1ZXJ5UmVzdWx0Rm9ybWF0EiMKH1FVRVJZX1JFU1VMVF9GT1JNQVRfVU5TUEVDSUZJRUQQABIkCiBRVUVSWV9SRVNVTFRfRk9STUFUX0xFR0FDWV9WQUxVRRABEiQKIFFVRVJZX1JFU1VMVF9GT1JNQVRfTk9NSU5BTF9VU0RBEAIqjAwKDlF1ZXJ5T3BlcmF0aW9uEh8KG1FVRVJZX09QRVJBVElPTl9VTlNQRUNJRklFRBAAEhwKGFFVRVJZX09QRVJBVElPTl9FWFRSRU1VTRABEiAKHFFVRVJZX09QRVJBVElPTl9SRUFEX1BPU1RVUkUQBBIfChtRVUVSWV9PUEVSQVRJT05fQ1VSUkVOVF9MQVcQBRIjCh9RVUVSWV9PUEVSQVRJT05fSU5URVJGQUNFX09GRkVSEAYSJwojUVVFUllfT1BFUkFUSU9OX1JFTEFUSU9OX0dBVEVfT0ZGRVIQBxIdChlRVUVSWV9PUEVSQVRJT05fU0NFTkVfTEFXEAgSIQodUVVFUllfT1BFUkFUSU9OX0lOU1RBTExFRF9MQVcQCRIcChhRVUVSWV9PUEVSQVRJT05fREVTQ1JJQkUQChIjCh9RVUVSWV9PUEVSQVRJT05fS0VSTkVMX1JFU09VUkNFEAsSIwofUVVFUllfT1BFUkFUSU9OX0RFVkVMT1BFUl9TUEFOUxAMEikKJVFVRVJZX09QRVJBVElPTl9ERUNMQVJFRF9DQVBBQklMSVRJRVMQDRIdChlRVUVSWV9PUEVSQVRJT05fUkVBRElORVNTEA4SJAogUVVFUllfT1BFUkFUSU9OX1BST0pFQ1RJT05fU1RBVFMQDxIlCiFRVUVSWV9PUEVSQVRJT05fTUVNT1JZX0RST1BfUFJPQkUQEBIYChRRVUVSWV9PUEVSQVRJT05fV0FSTRAREhsKF1FVRVJZX09QRVJBVElPTl9SRUZSRVNIEBISIAocUVVFUllfT1BFUkFUSU9OX1ZFUklGWV9DSEFJThATEiUKIVFVRVJZX09QRVJBVElPTl9ISVNUT1JZX1BSRUZMSUdIVBAUEhkKFVFVRVJZX09QRVJBVElPTl9ST1VURRAVEhgKFFFVRVJZX09QRVJBVElPTl9NSU5UEBYSIQodUVVFUllfT1BFUkFUSU9OX0NSWVBUT19LRVlHRU4QFxIlCiFRVUVSWV9PUEVSQVRJT05fQ1JZUFRPX1NFQUxfRklFTEQQGBIsCihRVUVSWV9PUEVSQVRJT05fQ1JZUFRPX0JMSU5EX0lOREVYX1RPS0VOEBkSKgomUVVFUllfT1BFUkFUSU9OX0NSWVBUT19PV05FRF9TQ09QRV9LRVkQGhIvCitRVUVSWV9PUEVSQVRJT05fQ1JZUFRPX09XTkVEX0RFVklDRV9SRVFVRVNUEBsSMQotUVVFUllfT1BFUkFUSU9OX0NSWVBUT19PV05FRF9QUkVQQVJFX0FQUFJPVkFMEBwSMQotUVVFUllfT1BFUkFUSU9OX0NSWVBUT19PV05FRF9QUkVQQVJFX1JFQ09WRVJZEB0SIwofUVVFUllfT1BFUkFUSU9OX0NSWVBUT19XUkFQX0tFWRAeEiUKIVFVRVJZX09QRVJBVElPTl9DUllQVE9fVU5XUkFQX0tFWRAfEiEKHVFVRVJZX09QRVJBVElPTl9BVVRIT1JfS0VZR0VOECASJAogUVVFUllfT1BFUkFUSU9OX0FUVEVTVEFUSU9OX1NJR04QIRIgChxRVUVSWV9PUEVSQVRJT05fUkVDRUlQVF9QQVRIECISHQoZUVVFUllfT1BFUkFUSU9OX0NFUlRfU0lHThAjEiUKIVFVRVJZX09QRVJBVElPTl9CSVJUSF9UUlVTVF9TVEFURRAkEiEKHVFVRVJZX09QRVJBVElPTl9FUkFfQ0VSVF9TSUdOECUSKAokUVVFUllfT1BFUkFUSU9OX0RFTEVHQVRJT05fQ0VSVF9TSUdOECYSKQolUVVFUllfT1BFUkFUSU9OX0NBTk9OSUNBTElaRV9GUk9OVElFUhAnEisKJ1FVRVJZX09QRVJBVElPTl9DQU5PTklDQUxJWkVfUFJPSkVDVElPThAoIgQIAhACIgQIAxADKiFRVUVSWV9PUEVSQVRJT05fUEVORElOR19DT05GTElDVFMqKFFVRVJZX09QRVJBVElPTl9QRU5ESU5HX0NPTkZMSUNUX1NVTU1BUlkq0gIKFVJlc2lkZW50Q29tcG9uZW50S2luZBInCiNSRVNJREVOVF9DT01QT05FTlRfS0lORF9VTlNQRUNJRklFRBAAEiYKIlJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX0ZPTERfU1RBVEUQARItCilSRVNJREVOVF9DT01QT05FTlRfS0lORF9SRUFEX01PREVMX1NRTElURRACEi4KKlJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX1JFQURfTU9ERUxfSU5ERVhFUxADEi0KKVJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX1NIQVJFRF9BVFRSSUJVVEVEEAQSLAooUkVTSURFTlRfQ09NUE9ORU5UX0tJTkRfV09SS1NQQUNFX0NBQ0hFUxAFEiwKKFJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX0dJVF9PQkpFQ1RfQ0FDSEUQBipsChNLZXJuZWxMYXdDYXBhYmlsaXR5EiUKIUtFUk5FTF9MQVdfQ0FQQUJJTElUWV9VTlNQRUNJRklFRBAAEi4KKktFUk5FTF9MQVdfQ0FQQUJJTElUWV9TVEFHRV9aRVJPX0JPT1RTVFJBUBABKlkKFUNoZWNrcG9pbnRDb21wcmVzc2lvbhIfChtDSEVDS1BPSU5UX0NPTVBSRVNTSU9OX05PTkUQABIfChtDSEVDS1BPSU5UX0NPTVBSRVNTSU9OX0daSVAQASqRAQocQ2hlY2twb2ludFZlcmlmaWNhdGlvblBvbGljeRIzCi9DSEVDS1BPSU5UX1ZFUklGSUNBVElPTl9QT0xJQ1lfVkVSSUZZX0NBTk9OSUNBTBAAEjwKOENIRUNLUE9JTlRfVkVSSUZJQ0FUSU9OX1BPTElDWV9UUlVTVF9QUkVWSU9VU0xZX1ZFUklGSUVEEAEqgAEKE0NoZWNrcG9pbnRBc3N1cmFuY2USJAogQ0hFQ0tQT0lOVF9BU1NVUkFOQ0VfVU5TUEVDSUZJRUQQABIgChxDSEVDS1BPSU5UX0FTU1VSQU5DRV9UUlVTVEVEEAESIQodQ0hFQ0tQT0lOVF9BU1NVUkFOQ0VfVkVSSUZJRUQQAiqoAQoaSW50ZW50VHJhbnNwb3J0UmVxdWlyZW1lbnQSLAooSU5URU5UX1RSQU5TUE9SVF9SRVFVSVJFTUVOVF9VTlNQRUNJRklFRBAAEi4KKklOVEVOVF9UUkFOU1BPUlRfUkVRVUlSRU1FTlRfU0VBTEVEX0NIQU5HRRABEiwKKElOVEVOVF9UUkFOU1BPUlRfUkVRVUlSRU1FTlRfQ09NTUlUX1RSRUUQAiqJAQoVTGlmZWN5Y2xlSW5zdGFsbFBoYXNlEicKI0xJRkVDWUNMRV9JTlNUQUxMX1BIQVNFX1VOU1BFQ0lGSUVEEAASIgoeTElGRUNZQ0xFX0lOU1RBTExfUEhBU0VfQUNUSVZFEAESIwofTElGRUNZQ0xFX0lOU1RBTExfUEhBU0VfUEVORElORxACMlkKEk5vbW9zS2VybmVsU2VydmljZRJDCgRDYWxsEhwubm9tb3Mua2VybmVsLnYxLkNhbGxSZXF1ZXN0Gh0ubm9tb3Mua2VybmVsLnYxLkNhbGxSZXNwb25zZWIGcHJvdG8z");
|
|
367
1200
|
CallRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 0);
|
|
368
1201
|
CallResponseSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 1);
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
1202
|
+
OfferAggregateRefSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 6);
|
|
1203
|
+
BornWorkspaceSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 7);
|
|
1204
|
+
BirthOutcomeSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 8);
|
|
1205
|
+
PrepareRemoteOfferRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 19);
|
|
1206
|
+
PrepareRemoteOfferResponseSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 21);
|
|
1207
|
+
WorkspaceTargetSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 43);
|
|
1208
|
+
InitializeWorkspaceRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 45);
|
|
1209
|
+
DirectiveCallSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 47);
|
|
1210
|
+
AuthoringOptionsSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 48);
|
|
1211
|
+
CapturedClockSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 49);
|
|
1212
|
+
BirthCertificateSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 50);
|
|
1213
|
+
SignBirthCertificateRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 51);
|
|
1214
|
+
OfferRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 54);
|
|
1215
|
+
QueryRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 57);
|
|
1216
|
+
QueryAuthoritySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 64);
|
|
1217
|
+
InjectedKeySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 65);
|
|
1218
|
+
RowsQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 66);
|
|
1219
|
+
ByIdQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 68);
|
|
1220
|
+
TallyQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 74);
|
|
1221
|
+
SpatialQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 75);
|
|
1222
|
+
NamedQuerySchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 78);
|
|
1223
|
+
TestRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 98);
|
|
1224
|
+
SetTestRootRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 99);
|
|
1225
|
+
CustodyRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 101);
|
|
1226
|
+
PackDeltaRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 106);
|
|
1227
|
+
ApplyPackRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 107);
|
|
1228
|
+
RepoStatsRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 108);
|
|
1229
|
+
IntentsAboveRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 109);
|
|
1230
|
+
InspectChangeRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 111);
|
|
1231
|
+
RefusalVerdictSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 112);
|
|
1232
|
+
EncodeRefusalVerdictRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 113);
|
|
1233
|
+
InspectRefusalVerdictRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 114);
|
|
1234
|
+
ProveCompactionEquivalenceRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 116);
|
|
1235
|
+
ReadBlobRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 117);
|
|
1236
|
+
ResolveRefRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 118);
|
|
1237
|
+
ListRefsRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 119);
|
|
1238
|
+
WriteRefRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 120);
|
|
1239
|
+
DeleteRefRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 121);
|
|
1240
|
+
WriteMetaCommitRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 123);
|
|
1241
|
+
LawClosureInfoRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 124);
|
|
1242
|
+
CheckpointExportRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 125);
|
|
1243
|
+
VerifiedFrontierReceiptSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 127);
|
|
1244
|
+
StoredCheckpointManifestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 131);
|
|
1245
|
+
CheckpointImportRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 132);
|
|
1246
|
+
RestoreMainRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 134);
|
|
1247
|
+
ResolveStatePositionRequestSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 135);
|
|
1248
|
+
NomosValueSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 163);
|
|
1249
|
+
NomosStructSchema = /* @__PURE__ */ messageDesc(file_nomos_kernel_v1_kernel, 166);
|
|
1250
|
+
BirthOutcomeStatusSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 0);
|
|
1251
|
+
BirthOutcomeStatus = /* @__PURE__ */ tsEnum(BirthOutcomeStatusSchema);
|
|
1252
|
+
QueryOperationSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 6);
|
|
413
1253
|
QueryOperation = /* @__PURE__ */ tsEnum(QueryOperationSchema);
|
|
414
|
-
KernelLawCapabilitySchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel,
|
|
1254
|
+
KernelLawCapabilitySchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 8);
|
|
415
1255
|
KernelLawCapability = /* @__PURE__ */ tsEnum(KernelLawCapabilitySchema);
|
|
416
|
-
CheckpointCompressionSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel,
|
|
1256
|
+
CheckpointCompressionSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 9);
|
|
417
1257
|
CheckpointCompression = /* @__PURE__ */ tsEnum(CheckpointCompressionSchema);
|
|
418
|
-
CheckpointVerificationPolicySchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel,
|
|
1258
|
+
CheckpointVerificationPolicySchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 10);
|
|
419
1259
|
CheckpointVerificationPolicy = /* @__PURE__ */ tsEnum(CheckpointVerificationPolicySchema);
|
|
420
|
-
CheckpointAssuranceSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel,
|
|
1260
|
+
CheckpointAssuranceSchema = /* @__PURE__ */ enumDesc(file_nomos_kernel_v1_kernel, 11);
|
|
421
1261
|
CheckpointAssurance = /* @__PURE__ */ tsEnum(CheckpointAssuranceSchema);
|
|
422
1262
|
}
|
|
423
1263
|
});
|
|
424
1264
|
|
|
1265
|
+
// ../adapter/offer-result.ts
|
|
1266
|
+
function presentProtoInteger(value) {
|
|
1267
|
+
return value <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(value) : value;
|
|
1268
|
+
}
|
|
1269
|
+
function presentKernelSpans(value) {
|
|
1270
|
+
const observations = {};
|
|
1271
|
+
for (const operation of value.operations) {
|
|
1272
|
+
observations[operation.label] = {
|
|
1273
|
+
totalUs: presentProtoInteger(operation.totalUs),
|
|
1274
|
+
phases: Object.fromEntries(operation.phases.map(({ name, value: value2 }) => [name, presentProtoInteger(value2)])),
|
|
1275
|
+
notes: Object.fromEntries(operation.notes.map(({ name, value: value2 }) => [name, presentProtoInteger(value2)]))
|
|
1276
|
+
};
|
|
1277
|
+
}
|
|
1278
|
+
if (value.engine.length > 0) {
|
|
1279
|
+
observations.engine = Object.fromEntries(
|
|
1280
|
+
value.engine.map(({ name, value: value2 }) => [name, presentProtoInteger(value2)])
|
|
1281
|
+
);
|
|
1282
|
+
}
|
|
1283
|
+
return observations;
|
|
1284
|
+
}
|
|
1285
|
+
function presentBirthStatus(status) {
|
|
1286
|
+
switch (status) {
|
|
1287
|
+
case BirthOutcomeStatus.BORN:
|
|
1288
|
+
return "born";
|
|
1289
|
+
case BirthOutcomeStatus.DEFERRED:
|
|
1290
|
+
return "deferred";
|
|
1291
|
+
case BirthOutcomeStatus.FAILED:
|
|
1292
|
+
return "failed";
|
|
1293
|
+
case BirthOutcomeStatus.REFUSED:
|
|
1294
|
+
return "refused";
|
|
1295
|
+
case BirthOutcomeStatus.UNWARRANTED_CERT:
|
|
1296
|
+
return "unwarranted-cert";
|
|
1297
|
+
case BirthOutcomeStatus.UNSPECIFIED:
|
|
1298
|
+
throw new Error("kernel returned a birth outcome without a status");
|
|
1299
|
+
default: {
|
|
1300
|
+
const exhaustive = status;
|
|
1301
|
+
throw new Error(`kernel returned an unknown birth outcome status: ${String(exhaustive)}`);
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1304
|
+
}
|
|
1305
|
+
function presentOfferAdmitted(admitted) {
|
|
1306
|
+
if (admitted.intentId.length === 0) {
|
|
1307
|
+
throw new Error("kernel admitted an offer without its stable intent identity");
|
|
1308
|
+
}
|
|
1309
|
+
return {
|
|
1310
|
+
ok: true,
|
|
1311
|
+
outcome: "admitted",
|
|
1312
|
+
...admitted.head.length > 0 ? { head: admitted.head } : {},
|
|
1313
|
+
intentId: admitted.intentId,
|
|
1314
|
+
...admitted.intentOut !== void 0 ? { intentOut: admitted.intentOut } : {},
|
|
1315
|
+
created: admitted.created.map(({ type, id }) => ({ type, id })),
|
|
1316
|
+
affected: admitted.affected.map(({ type, id }) => ({ type, id })),
|
|
1317
|
+
born: admitted.born.map(({ workspace, head }) => ({ workspace, head })),
|
|
1318
|
+
birthOutcomes: admitted.birthOutcomes.map((birth) => ({
|
|
1319
|
+
...birth.workspace !== void 0 ? { workspace: birth.workspace } : {},
|
|
1320
|
+
status: presentBirthStatus(birth.status),
|
|
1321
|
+
...birth.reason !== void 0 ? { reason: birth.reason } : {},
|
|
1322
|
+
...birth.code !== void 0 ? { code: birth.code } : {},
|
|
1323
|
+
replayed: birth.replayed,
|
|
1324
|
+
...birth.lawHash !== void 0 ? { lawHash: birth.lawHash } : {},
|
|
1325
|
+
...birth.parentWorkspace !== void 0 ? { parentWorkspace: birth.parentWorkspace } : {},
|
|
1326
|
+
...birth.childWorkspace !== void 0 ? { childWorkspace: birth.childWorkspace } : {},
|
|
1327
|
+
...birth.certificateRefusalReason !== void 0 ? { certificateRefusalReason: birth.certificateRefusalReason } : {}
|
|
1328
|
+
})),
|
|
1329
|
+
...admitted.kernelSpans !== void 0 ? { kernelSpans: presentKernelSpans(admitted.kernelSpans) } : {},
|
|
1330
|
+
...admitted.dryRun ? { dryRun: true } : {}
|
|
1331
|
+
};
|
|
1332
|
+
}
|
|
1333
|
+
var init_offer_result = __esm({
|
|
1334
|
+
"../adapter/offer-result.ts"() {
|
|
1335
|
+
"use strict";
|
|
1336
|
+
init_kernel_pb();
|
|
1337
|
+
}
|
|
1338
|
+
});
|
|
1339
|
+
|
|
425
1340
|
// ../adapter/engine.ts
|
|
426
1341
|
import { WASI, File, Directory, OpenFile, ConsoleStdout, PreopenDirectory } from "@bjorn3/browser_wasi_shim";
|
|
427
1342
|
import { create, fromBinary, toBinary } from "@bufbuild/protobuf";
|
|
@@ -447,13 +1362,7 @@ function osEntropyBuffer(n) {
|
|
|
447
1362
|
}
|
|
448
1363
|
return out;
|
|
449
1364
|
}
|
|
450
|
-
function
|
|
451
|
-
const requestId = `adapter-${++protoRequestSequence}`;
|
|
452
|
-
const request = create(CallRequestSchema, {
|
|
453
|
-
protocolVersion: PROTO_ABI_VERSION,
|
|
454
|
-
requestId,
|
|
455
|
-
operation
|
|
456
|
-
});
|
|
1365
|
+
function invokeCallRequest(ex, request, STDERR) {
|
|
457
1366
|
const bytes = toBinary(CallRequestSchema, request);
|
|
458
1367
|
const requestPtr = ex.git_holon_alloc(bytes.length) >>> 0;
|
|
459
1368
|
try {
|
|
@@ -472,8 +1381,11 @@ function callProto(ex, operation, STDERR) {
|
|
|
472
1381
|
if (response.protocolVersion !== PROTO_ABI_VERSION) {
|
|
473
1382
|
throw new Error(`kernel protobuf ABI ${response.protocolVersion}; expected ${PROTO_ABI_VERSION}`);
|
|
474
1383
|
}
|
|
475
|
-
if (response.requestId !== requestId) {
|
|
476
|
-
|
|
1384
|
+
if (response.requestId !== request.requestId) {
|
|
1385
|
+
const failure = response.outcome.case === "failure" ? `; kernel failure ${response.outcome.value.code}: ${response.outcome.value.message}` : "";
|
|
1386
|
+
throw new Error(
|
|
1387
|
+
`kernel protobuf response id ${response.requestId || "<empty>"}; expected ${request.requestId}${failure}`
|
|
1388
|
+
);
|
|
477
1389
|
}
|
|
478
1390
|
if (response.outcome.case === "failure") {
|
|
479
1391
|
throw new Error(`${response.outcome.value.code}: ${response.outcome.value.message}`);
|
|
@@ -486,6 +1398,13 @@ function callProto(ex, operation, STDERR) {
|
|
|
486
1398
|
ex.git_holon_dealloc(requestPtr, bytes.length);
|
|
487
1399
|
}
|
|
488
1400
|
}
|
|
1401
|
+
function callProto(ex, operation, STDERR) {
|
|
1402
|
+
return invokeCallRequest(ex, create(CallRequestSchema, {
|
|
1403
|
+
protocolVersion: PROTO_ABI_VERSION,
|
|
1404
|
+
requestId: `adapter-${++protoRequestSequence}`,
|
|
1405
|
+
operation
|
|
1406
|
+
}), STDERR);
|
|
1407
|
+
}
|
|
489
1408
|
function protoValue(value) {
|
|
490
1409
|
if (value === null || value === void 0) {
|
|
491
1410
|
return create(NomosValueSchema, { kind: { case: "null", value: {} } });
|
|
@@ -560,25 +1479,7 @@ function offerResult(response) {
|
|
|
560
1479
|
const outcome = response.outcome;
|
|
561
1480
|
switch (outcome.case) {
|
|
562
1481
|
case "admitted": {
|
|
563
|
-
|
|
564
|
-
if (typeof value.intentId !== "string" || value.intentId.length === 0) {
|
|
565
|
-
throw new Error(
|
|
566
|
-
`kernel admitted an offer without its stable intent identity (returned fields: ${Object.keys(value).sort().join(", ") || "none"})`
|
|
567
|
-
);
|
|
568
|
-
}
|
|
569
|
-
return {
|
|
570
|
-
ok: true,
|
|
571
|
-
outcome: "admitted",
|
|
572
|
-
...typeof value.head === "string" ? { head: value.head } : {},
|
|
573
|
-
intentId: value.intentId,
|
|
574
|
-
...value.intentOut !== void 0 ? { intentOut: value.intentOut } : {},
|
|
575
|
-
created: Array.isArray(value.created) ? value.created : [],
|
|
576
|
-
affected: Array.isArray(value.affected) ? value.affected : [],
|
|
577
|
-
born: Array.isArray(value.born) ? value.born : [],
|
|
578
|
-
birthOutcomes: Array.isArray(value.birthOutcomes) ? value.birthOutcomes : [],
|
|
579
|
-
...value.kernelSpans !== void 0 ? { kernelSpans: value.kernelSpans } : {},
|
|
580
|
-
...value.dryRun === true ? { dryRun: true } : {}
|
|
581
|
-
};
|
|
1482
|
+
return presentOfferAdmitted(outcome.value);
|
|
582
1483
|
}
|
|
583
1484
|
case "prepared":
|
|
584
1485
|
throw new Error("prepared offers are typed transport bytes; use prepareRemoteOffer rather than the admitted-offer adapter");
|
|
@@ -698,6 +1599,47 @@ function custodyProtoCase(eng, operation, expected) {
|
|
|
698
1599
|
}
|
|
699
1600
|
return result.value;
|
|
700
1601
|
}
|
|
1602
|
+
function authorOperatorCall(eng, ws, call, controllerHash, opts = {}) {
|
|
1603
|
+
return author(eng, ws, call.domain, call.directive, call.canonicalUsda, controllerHash, opts);
|
|
1604
|
+
}
|
|
1605
|
+
function initializeWorkspace(eng, ws, installedBy = eng.installedBy) {
|
|
1606
|
+
const sequence = eng.seq++;
|
|
1607
|
+
const captured = {
|
|
1608
|
+
physical: Date.now(),
|
|
1609
|
+
logical: 0,
|
|
1610
|
+
replica: eng.replica
|
|
1611
|
+
};
|
|
1612
|
+
const response = callProto(eng.ex, {
|
|
1613
|
+
case: "initializeWorkspace",
|
|
1614
|
+
value: create(InitializeWorkspaceRequestSchema, {
|
|
1615
|
+
target: protoTarget(ws),
|
|
1616
|
+
controllerLawUsdz: eng.nomosLawUsdz,
|
|
1617
|
+
authoring: create(AuthoringOptionsSchema, {
|
|
1618
|
+
actor: installedBy,
|
|
1619
|
+
sequence: BigInt(sequence),
|
|
1620
|
+
clock: create(CapturedClockSchema, {
|
|
1621
|
+
physicalMillis: BigInt(captured.physical),
|
|
1622
|
+
logical: captured.logical,
|
|
1623
|
+
replica: BigInt(captured.replica)
|
|
1624
|
+
})
|
|
1625
|
+
})
|
|
1626
|
+
})
|
|
1627
|
+
}, eng.STDERR);
|
|
1628
|
+
if (response.outcome.case !== "initializeWorkspace") {
|
|
1629
|
+
throw new Error(
|
|
1630
|
+
`kernel returned ${response.outcome.case || "empty"} for initialize_workspace`
|
|
1631
|
+
);
|
|
1632
|
+
}
|
|
1633
|
+
if (response.outcome.value.controllerLawHash !== eng.hashes.nomos) {
|
|
1634
|
+
throw new Error(
|
|
1635
|
+
`kernel initialized controller ${response.outcome.value.controllerLawHash}; expected ${eng.hashes.nomos}`
|
|
1636
|
+
);
|
|
1637
|
+
}
|
|
1638
|
+
return {
|
|
1639
|
+
head: response.outcome.value.head,
|
|
1640
|
+
controllerLawHash: response.outcome.value.controllerLawHash
|
|
1641
|
+
};
|
|
1642
|
+
}
|
|
701
1643
|
async function createEngine({ wasmModule, bootstrapLawUsdz, nomosLawUsdz, replica, installedBy = "nomos-cloud" }) {
|
|
702
1644
|
const assertUsdz = (name, bytes) => {
|
|
703
1645
|
if (!(bytes instanceof Uint8Array) || bytes.length < 4 || bytes[0] !== 80 || bytes[1] !== 75 || bytes[2] !== 3 || bytes[3] !== 4) {
|
|
@@ -1061,13 +2003,21 @@ async function admitIntentOffers(eng, ws, ledger, offers, { receiptFence = null,
|
|
|
1061
2003
|
}
|
|
1062
2004
|
const cap = summaryCtx ? beginSummaryCapture(eng, ws, summaryCtx, doc) : null;
|
|
1063
2005
|
const _tOffer = Date.now();
|
|
1064
|
-
const
|
|
2006
|
+
const kernelVerdict = offer?.sealedOffer ? offerRequestResponse(eng, offer.sealedOffer) : void 0;
|
|
2007
|
+
const res = kernelVerdict ? offerResult(kernelVerdict) : offerAdmit(eng, ws, blob, { defer: false });
|
|
1065
2008
|
log("offer-admit-ms", { ws, ms: Date.now() - _tOffer, deferred: false, ok: res.ok });
|
|
1066
2009
|
if (res.ok) {
|
|
1067
2010
|
if (intentId) main.ids.add(intentId);
|
|
1068
2011
|
main.oids.add(res.head);
|
|
1069
2012
|
main.head = res.head;
|
|
1070
|
-
rec.admitted.push({
|
|
2013
|
+
rec.admitted.push({
|
|
2014
|
+
oid,
|
|
2015
|
+
intent: intentId,
|
|
2016
|
+
head: res.head,
|
|
2017
|
+
created: res.created,
|
|
2018
|
+
affected: res.affected,
|
|
2019
|
+
...kernelVerdict ? { kernelVerdict } : {}
|
|
2020
|
+
});
|
|
1071
2021
|
admittedTotal += 1;
|
|
1072
2022
|
if (Array.isArray(res.born) && res.born.length) born.push(...res.born);
|
|
1073
2023
|
if (Array.isArray(res.birthOutcomes) && res.birthOutcomes.length) birthOutcomes.push(...res.birthOutcomes);
|
|
@@ -1085,7 +2035,7 @@ async function admitIntentOffers(eng, ws, ledger, offers, { receiptFence = null,
|
|
|
1085
2035
|
});
|
|
1086
2036
|
}
|
|
1087
2037
|
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`;
|
|
1088
|
-
rec.rejected.push({ oid, error, deadLettered: true });
|
|
2038
|
+
rec.rejected.push({ oid, error, deadLettered: true, ...kernelVerdict ? { kernelVerdict } : {} });
|
|
1089
2039
|
deadLetters.push({
|
|
1090
2040
|
intentId,
|
|
1091
2041
|
oid,
|
|
@@ -1172,19 +2122,6 @@ function intentOfferResidencies(eng, offers) {
|
|
|
1172
2122
|
}
|
|
1173
2123
|
return [...unique.values()];
|
|
1174
2124
|
}
|
|
1175
|
-
async function authorOn(eng, ws, ledger, domain, directiveId, payload, lawHash, opts = {}) {
|
|
1176
|
-
await mountWorkspace(eng, ws, ledger);
|
|
1177
|
-
let res;
|
|
1178
|
-
try {
|
|
1179
|
-
res = author(eng, ws, domain, directiveId, payload, lawHash, opts);
|
|
1180
|
-
} catch (e) {
|
|
1181
|
-
return { ok: false, error: String(e?.message || e).slice(0, 500) };
|
|
1182
|
-
}
|
|
1183
|
-
if (res && res.ok === false) return { ok: false, error: String(res.error || "the law refused this intent").slice(0, 500) };
|
|
1184
|
-
await commitAndPush(eng, ws, ledger);
|
|
1185
|
-
const bornPacked = Array.isArray(res.born) && res.born.length ? packBornChildren(eng, res.born) : res.born;
|
|
1186
|
-
return { ok: true, head: res.head, born: bornPacked ?? [], birthOutcomes: res.birthOutcomes ?? [] };
|
|
1187
|
-
}
|
|
1188
2125
|
function stageWorkspaceDir(eng, ws) {
|
|
1189
2126
|
const wsContents = /* @__PURE__ */ new Map();
|
|
1190
2127
|
dirOf(eng.preopen.dir.contents.get("ws")).contents.set(ws, new Directory(wsContents));
|
|
@@ -1275,6 +2212,15 @@ function currentLaw(eng, ws) {
|
|
|
1275
2212
|
const out = namedQueryProto(eng, ws, QueryOperation.CURRENT_LAW);
|
|
1276
2213
|
return out.keyMap || {};
|
|
1277
2214
|
}
|
|
2215
|
+
function currentControllerLawHash(eng, ws) {
|
|
2216
|
+
const hash = currentLaw(eng, ws).nomos;
|
|
2217
|
+
return typeof hash === "string" && /^[0-9a-f]{64}$/i.test(hash) ? hash : null;
|
|
2218
|
+
}
|
|
2219
|
+
function requireCurrentControllerLawHash(eng, ws) {
|
|
2220
|
+
const hash = currentControllerLawHash(eng, ws);
|
|
2221
|
+
if (hash) return hash;
|
|
2222
|
+
throw new Error(`workspace '${ws}' has no kernel-folded current Nomos controller law`);
|
|
2223
|
+
}
|
|
1278
2224
|
function installedLaw(eng, ws) {
|
|
1279
2225
|
return namedQueryProto(eng, ws, QueryOperation.INSTALLED_LAW);
|
|
1280
2226
|
}
|
|
@@ -1282,8 +2228,8 @@ function author(eng, ws, domain, directiveId, payload, controllerHash, opts = {}
|
|
|
1282
2228
|
const seq = eng.seq++;
|
|
1283
2229
|
const capPorts = { clock: { physical: Date.now(), logical: 0, replica: eng.replica }, rng: osEntropyBuffer(opts.rngDraws ?? 64) };
|
|
1284
2230
|
const genesis = !controllerHash;
|
|
1285
|
-
if (payload
|
|
1286
|
-
throw new
|
|
2231
|
+
if (!(payload instanceof Uint8Array)) {
|
|
2232
|
+
throw new TypeError(`directive ${domain}/${directiveId} requires compiler-generated USDA bytes`);
|
|
1287
2233
|
}
|
|
1288
2234
|
const defer = opts.deferProjection !== false;
|
|
1289
2235
|
const offerOnce = () => {
|
|
@@ -1296,7 +2242,7 @@ function author(eng, ws, domain, directiveId, payload, controllerHash, opts = {}
|
|
|
1296
2242
|
value: create(DirectiveCallSchema, {
|
|
1297
2243
|
domain,
|
|
1298
2244
|
directive: directiveId,
|
|
1299
|
-
|
|
2245
|
+
body: { case: "callUsda", value: payload }
|
|
1300
2246
|
})
|
|
1301
2247
|
},
|
|
1302
2248
|
authoring: create(AuthoringOptionsSchema, {
|
|
@@ -1721,11 +2667,14 @@ function packBornChildren(eng, born) {
|
|
|
1721
2667
|
});
|
|
1722
2668
|
}
|
|
1723
2669
|
function offerRequest(eng, request) {
|
|
2670
|
+
return offerResult(offerRequestResponse(eng, request));
|
|
2671
|
+
}
|
|
2672
|
+
function offerRequestResponse(eng, request) {
|
|
1724
2673
|
const response = callProto(eng.ex, { case: "offer", value: request }, eng.STDERR);
|
|
1725
2674
|
if (response.outcome.case !== "offer") {
|
|
1726
2675
|
throw new Error(`kernel returned ${response.outcome.case || "empty"} for sealed offer request`);
|
|
1727
2676
|
}
|
|
1728
|
-
return
|
|
2677
|
+
return response.outcome.value;
|
|
1729
2678
|
}
|
|
1730
2679
|
function offerIntent(eng, ws, bytes, opts = {}) {
|
|
1731
2680
|
const seq = eng.seq++;
|
|
@@ -2256,7 +3205,14 @@ async function boot(eng, ws, ledger) {
|
|
|
2256
3205
|
`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).`
|
|
2257
3206
|
);
|
|
2258
3207
|
}
|
|
2259
|
-
|
|
3208
|
+
const controllerHash = requireCurrentControllerLawHash(eng, ws);
|
|
3209
|
+
return {
|
|
3210
|
+
status: "already-initialized",
|
|
3211
|
+
head: m.remoteMain ?? void 0,
|
|
3212
|
+
controllerHash,
|
|
3213
|
+
rows: qById(eng, ws, `domain-installation:${controllerHash}`),
|
|
3214
|
+
mount: m
|
|
3215
|
+
};
|
|
2260
3216
|
}
|
|
2261
3217
|
throw new Error(
|
|
2262
3218
|
`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.)`
|
|
@@ -2293,7 +3249,7 @@ async function ledgerStats(eng, ws, ledger = null) {
|
|
|
2293
3249
|
if (mounted) mounted.ledgerStats = out;
|
|
2294
3250
|
return out;
|
|
2295
3251
|
}
|
|
2296
|
-
var enc3, dec3, BRANCH, PROTO_ABI_VERSION, protoRequestSequence,
|
|
3252
|
+
var enc3, dec3, BRANCH, PROTO_ABI_VERSION, protoRequestSequence, protoBirthCertificate, RESULT_PACK_INLINE_MAX, dirOf, repoArgOf, gitdirOf, birthCertificateLawPayload, unpack, unsignedWasiPointers, log, protoTarget, protoAuthority, repoArgOfGitdir, bytesFromB64, kgit, closureInstallPayload, routeTagHexOfHomeKey, SUMMARY_SEP, summaryKey, splitSummaryKey, NOMOS_SHARD_ROWS_READ, groupOf, tallyOf, isExtremumRead, extremumMonotone, MAX_INLINE_INTENT_OFFER_BYTES, MAX_STAGED_INTENT_OFFER_BYTES, CKPT_REF, pushVia, fullRef, applyPackInto, custodyLsRefs, capturedReadUnix, queryArguments, queryAuthorityOptions, qById, query, authorKeygen, certSign, readPosture, count, sum, spatialWithin, extremum, nomosActive, refusedRefName, GENESIS_WARRANT_ID, isWarranted;
|
|
2297
3253
|
var init_engine = __esm({
|
|
2298
3254
|
"../adapter/engine.ts"() {
|
|
2299
3255
|
"use strict";
|
|
@@ -2301,32 +3257,34 @@ var init_engine = __esm({
|
|
|
2301
3257
|
init_tree();
|
|
2302
3258
|
init_custody_transport();
|
|
2303
3259
|
init_managed_promotion();
|
|
3260
|
+
init_lifecycle_calls();
|
|
3261
|
+
init_offer_result();
|
|
2304
3262
|
init_kernel_pb();
|
|
2305
3263
|
enc3 = new TextEncoder();
|
|
2306
3264
|
dec3 = new TextDecoder();
|
|
2307
3265
|
BRANCH = "main";
|
|
2308
3266
|
PROTO_ABI_VERSION = 1;
|
|
2309
3267
|
protoRequestSequence = 0;
|
|
2310
|
-
|
|
2311
|
-
protoBirthCertificate = (certificate) => create(BirthCertificateSchema, {
|
|
2312
|
-
child: certificate.child,
|
|
2313
|
-
founder: certificate.founder,
|
|
2314
|
-
verified: certificate.verified,
|
|
2315
|
-
parentKey: certificateBytes(certificate.parentKey ?? certificate.parent_key),
|
|
2316
|
-
parentId: certificate.parentId ?? certificate.parent_id ?? "",
|
|
2317
|
-
epoch: BigInt(certificate.epoch),
|
|
2318
|
-
signature: certificateBytes(certificate.signature),
|
|
2319
|
-
verifiedVia: certificate.verifiedVia ?? certificate.verified_via,
|
|
2320
|
-
idpToken: certificate.idpToken ?? certificate.idp_token,
|
|
2321
|
-
capturedClock: certificate.capturedClock === void 0 && certificate.captured_clock === void 0 ? void 0 : BigInt(certificate.capturedClock ?? certificate.captured_clock),
|
|
2322
|
-
authProviderIssuer: certificate.authProviderIssuer ?? certificate.auth_provider_issuer,
|
|
2323
|
-
authProviderJwks: certificate.authProviderJwks ?? certificate.auth_provider_jwks,
|
|
2324
|
-
authProviderAudience: certificate.authProviderAudience ?? certificate.auth_provider_audience
|
|
2325
|
-
});
|
|
3268
|
+
protoBirthCertificate = (certificate) => create(BirthCertificateSchema, certificate);
|
|
2326
3269
|
RESULT_PACK_INLINE_MAX = 256 * 1024;
|
|
2327
3270
|
dirOf = (n) => n;
|
|
2328
3271
|
repoArgOf = (ws) => `/work/ws/${ws}`;
|
|
2329
3272
|
gitdirOf = (ws) => `/work/ws/${ws}/nomos.git`;
|
|
3273
|
+
birthCertificateLawPayload = (certificate) => ({
|
|
3274
|
+
child: certificate.child,
|
|
3275
|
+
founder: certificate.founder,
|
|
3276
|
+
verified: certificate.verified,
|
|
3277
|
+
parentKey: b64Bytes(certificate.parentKey),
|
|
3278
|
+
parentId: certificate.parentId,
|
|
3279
|
+
epoch: Number(certificate.epoch),
|
|
3280
|
+
signature: b64Bytes(certificate.signature),
|
|
3281
|
+
...certificate.verifiedVia === void 0 ? {} : { verifiedVia: certificate.verifiedVia },
|
|
3282
|
+
...certificate.idpToken === void 0 ? {} : { idpToken: certificate.idpToken },
|
|
3283
|
+
...certificate.capturedClock === void 0 ? {} : { capturedClock: Number(certificate.capturedClock) },
|
|
3284
|
+
...certificate.authProviderIssuer === void 0 ? {} : { authProviderIssuer: certificate.authProviderIssuer },
|
|
3285
|
+
...certificate.authProviderJwks === void 0 ? {} : { authProviderJwks: certificate.authProviderJwks },
|
|
3286
|
+
...certificate.authProviderAudience === void 0 ? {} : { authProviderAudience: certificate.authProviderAudience }
|
|
3287
|
+
});
|
|
2330
3288
|
unpack = (p) => {
|
|
2331
3289
|
const v = BigInt.asUintN(64, typeof p === "bigint" ? p : BigInt(p));
|
|
2332
3290
|
return { ptr: Number(v >> 32n & 0xffffffffn), len: Number(v & 0xffffffffn) };
|
|
@@ -2542,9 +3500,9 @@ var init_engine = __esm({
|
|
|
2542
3500
|
closureInstallPayload = (hash, installedBy, options = {}) => ({
|
|
2543
3501
|
domainHash: hash,
|
|
2544
3502
|
installedBy,
|
|
3503
|
+
lawClosureIdentity: hash,
|
|
2545
3504
|
dependencies: [],
|
|
2546
3505
|
...options.supersedes ? { supersedes: options.supersedes } : {},
|
|
2547
|
-
...options.dispositions ? { dispositions: options.dispositions } : {},
|
|
2548
3506
|
finalizers: []
|
|
2549
3507
|
});
|
|
2550
3508
|
routeTagHexOfHomeKey = async (homeKey) => (await sha256hex(`nomos-route:${homeKey}`)).slice(0, 12);
|
|
@@ -2612,22 +3570,36 @@ var init_engine = __esm({
|
|
|
2612
3570
|
authProviderIssuer,
|
|
2613
3571
|
authProviderJwks,
|
|
2614
3572
|
authProviderAudience
|
|
2615
|
-
}) =>
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
3573
|
+
}) => {
|
|
3574
|
+
const response = callProto(eng.ex, {
|
|
3575
|
+
case: "signBirthCertificate",
|
|
3576
|
+
value: create(SignBirthCertificateRequestSchema, {
|
|
3577
|
+
certificate: create(BirthCertificateSchema, {
|
|
3578
|
+
child,
|
|
3579
|
+
founder,
|
|
3580
|
+
verified,
|
|
3581
|
+
parentKey: parentKey ? bytesFromB64(parentKey) : new Uint8Array(),
|
|
3582
|
+
parentId,
|
|
3583
|
+
epoch: BigInt(epoch),
|
|
3584
|
+
signature: new Uint8Array(),
|
|
3585
|
+
verifiedVia,
|
|
3586
|
+
idpToken,
|
|
3587
|
+
capturedClock: capturedClock === void 0 ? void 0 : BigInt(capturedClock),
|
|
3588
|
+
authProviderIssuer,
|
|
3589
|
+
authProviderJwks,
|
|
3590
|
+
authProviderAudience
|
|
3591
|
+
}),
|
|
3592
|
+
signerSecret: bytesFromB64(secret)
|
|
3593
|
+
})
|
|
3594
|
+
}, eng.STDERR);
|
|
3595
|
+
if (response.outcome.case === "failure") {
|
|
3596
|
+
throw new Error(`${response.outcome.value.code}: ${response.outcome.value.message}`);
|
|
3597
|
+
}
|
|
3598
|
+
if (response.outcome.case !== "signBirthCertificate" || !response.outcome.value.certificate) {
|
|
3599
|
+
throw new Error(`kernel returned '${response.outcome.case || "empty"}' while signing a birth certificate`);
|
|
3600
|
+
}
|
|
3601
|
+
return response.outcome.value.certificate;
|
|
3602
|
+
};
|
|
2631
3603
|
readPosture = (eng, ws, principal = "", authToken = "", nowUnix = 0, authorSecret = "") => namedQueryProto(
|
|
2632
3604
|
eng,
|
|
2633
3605
|
ws,
|
|
@@ -2637,33 +3609,22 @@ var init_engine = __esm({
|
|
|
2637
3609
|
);
|
|
2638
3610
|
count = (eng, ws, countId, groupKey, principal = "", authToken = "", nowUnix = 0, authorSecret = "") => applicationQueryProto(eng, ws, {
|
|
2639
3611
|
case: "count",
|
|
2640
|
-
value: create(TallyQuerySchema, { id: countId,
|
|
3612
|
+
value: create(TallyQuerySchema, { id: countId, groupKey, principal })
|
|
2641
3613
|
}, queryAuthorityOptions(principal, [], authToken, nowUnix, authorSecret));
|
|
2642
3614
|
sum = (eng, ws, sumId, groupKey, principal = "", authToken = "", nowUnix = 0, authorSecret = "") => applicationQueryProto(eng, ws, {
|
|
2643
3615
|
case: "sum",
|
|
2644
|
-
value: create(TallyQuerySchema, { id: sumId,
|
|
3616
|
+
value: create(TallyQuerySchema, { id: sumId, groupKey, principal })
|
|
2645
3617
|
}, queryAuthorityOptions(principal, [], authToken, nowUnix, authorSecret));
|
|
2646
|
-
pendingConflicts = (eng, ws, principal = "", aggregateType = "", authToken = "", nowUnix = 0, authorSecret = "") => namedQueryProto(
|
|
2647
|
-
eng,
|
|
2648
|
-
ws,
|
|
2649
|
-
QueryOperation.PENDING_CONFLICTS,
|
|
2650
|
-
{ aggregateType },
|
|
2651
|
-
queryAuthorityOptions(principal, [], authToken, nowUnix, authorSecret)
|
|
2652
|
-
);
|
|
2653
|
-
pendingConflictSummary = (eng, ws, principal = "", authToken = "", nowUnix = 0, authorSecret = "") => namedQueryProto(
|
|
2654
|
-
eng,
|
|
2655
|
-
ws,
|
|
2656
|
-
QueryOperation.PENDING_CONFLICT_SUMMARY,
|
|
2657
|
-
{},
|
|
2658
|
-
queryAuthorityOptions(principal, [], authToken, nowUnix, authorSecret)
|
|
2659
|
-
);
|
|
2660
|
-
spatialBboxParams = (bbox) => {
|
|
2661
|
-
const minX = bbox.minX ?? bbox.minLng, minY = bbox.minY ?? bbox.minLat, maxX = bbox.maxX ?? bbox.maxLng, maxY = bbox.maxY ?? bbox.maxLat;
|
|
2662
|
-
return { minX, minY, maxX, maxY, minLng: minX, minLat: minY, maxLng: maxX, maxLat: maxY };
|
|
2663
|
-
};
|
|
2664
3618
|
spatialWithin = (eng, ws, spatialId, bbox, principal = "", authToken = "", nowUnix = 0, authorSecret = "") => applicationQueryProto(eng, ws, {
|
|
2665
3619
|
case: "spatial",
|
|
2666
|
-
value: create(SpatialQuerySchema, {
|
|
3620
|
+
value: create(SpatialQuerySchema, {
|
|
3621
|
+
id: spatialId,
|
|
3622
|
+
minX: bbox.minX ?? bbox.minLng,
|
|
3623
|
+
minY: bbox.minY ?? bbox.minLat,
|
|
3624
|
+
maxX: bbox.maxX ?? bbox.maxLng,
|
|
3625
|
+
maxY: bbox.maxY ?? bbox.maxLat,
|
|
3626
|
+
principal
|
|
3627
|
+
})
|
|
2667
3628
|
}, queryAuthorityOptions(principal, [], authToken, nowUnix, authorSecret));
|
|
2668
3629
|
extremum = (eng, ws, extremumId, kind, groupKey, principal = "", authToken = "", nowUnix = 0, authorSecret = "") => namedQueryProto(
|
|
2669
3630
|
eng,
|
|
@@ -2672,7 +3633,7 @@ var init_engine = __esm({
|
|
|
2672
3633
|
{ extremumId, kind, groupKey: groupKey ?? "" },
|
|
2673
3634
|
queryAuthorityOptions(principal, [], authToken, nowUnix, authorSecret)
|
|
2674
3635
|
);
|
|
2675
|
-
nomosActive = (eng, ws) =>
|
|
3636
|
+
nomosActive = (eng, ws) => currentControllerLawHash(eng, ws) !== null;
|
|
2676
3637
|
refusedRefName = (offerId) => `refs/heads/refused/${String(offerId || "unknown").replace(/[^A-Za-z0-9._-]/g, "_")}`;
|
|
2677
3638
|
GENESIS_WARRANT_ID = "genesis-warrant:self";
|
|
2678
3639
|
isWarranted = (eng, ws) => qById(eng, ws, GENESIS_WARRANT_ID).length > 0;
|
|
@@ -2705,14 +3666,38 @@ var init_application_home_domain = __esm({
|
|
|
2705
3666
|
// ../cloud/dev-server/bootstrap.ts
|
|
2706
3667
|
var bootstrap_exports = {};
|
|
2707
3668
|
__export(bootstrap_exports, {
|
|
3669
|
+
FIREBASE_JWKS_URL: () => FIREBASE_JWKS_URL,
|
|
2708
3670
|
bootstrapPlatform: () => bootstrapPlatform,
|
|
2709
3671
|
devAuthProviderPayload: () => devAuthProviderPayload,
|
|
3672
|
+
firebaseIdentityProvider: () => firebaseIdentityProvider,
|
|
2710
3673
|
isTestMint: () => isTestMint,
|
|
2711
3674
|
platformGenesisDomain: () => platformGenesisDomain
|
|
2712
3675
|
});
|
|
2713
3676
|
import { readFileSync } from "node:fs";
|
|
2714
3677
|
import { createHash } from "node:crypto";
|
|
2715
3678
|
import path from "node:path";
|
|
3679
|
+
import { pathToFileURL } from "node:url";
|
|
3680
|
+
async function loadApplicationFrameworkCalls(lawUsdzPath) {
|
|
3681
|
+
const headlessPath = lawUsdzPath.replace(/\.law\.usdz$/, ".headless.mjs");
|
|
3682
|
+
if (headlessPath === lawUsdzPath) {
|
|
3683
|
+
throw new Error(`cannot locate the generated headless binding for ${lawUsdzPath}`);
|
|
3684
|
+
}
|
|
3685
|
+
let generated;
|
|
3686
|
+
try {
|
|
3687
|
+
generated = await import(pathToFileURL(headlessPath).href);
|
|
3688
|
+
} catch (error) {
|
|
3689
|
+
throw new Error(
|
|
3690
|
+
`dev bootstrap requires the compiler-generated headless binding beside the law archive (${headlessPath}): ${errMsg(error)}`
|
|
3691
|
+
);
|
|
3692
|
+
}
|
|
3693
|
+
const calls = generated.nomosInternalFrameworkCalls;
|
|
3694
|
+
if (calls === void 0 || typeof calls.identity?.enrollSigner !== "function" || typeof calls.identity?.setAuthProvider !== "function" || typeof calls.birth?.seedBirthPolicy !== "function" || typeof calls.birth?.seedBirthAttestation !== "function" || typeof calls.birth?.seedGenesis !== "function") {
|
|
3695
|
+
throw new Error(
|
|
3696
|
+
`the generated application binding ${headlessPath} does not expose the complete typed bootstrap call set`
|
|
3697
|
+
);
|
|
3698
|
+
}
|
|
3699
|
+
return calls;
|
|
3700
|
+
}
|
|
2716
3701
|
function platformGenesisDomain(describedLaw) {
|
|
2717
3702
|
const owners = /* @__PURE__ */ new Map();
|
|
2718
3703
|
const routeTables = [
|
|
@@ -2756,15 +3741,56 @@ function isTestMint(eng) {
|
|
|
2756
3741
|
}
|
|
2757
3742
|
function devAuthProviderPayload(initial, nowMillis = Date.now(), operator = "user:dev-operator") {
|
|
2758
3743
|
return {
|
|
2759
|
-
|
|
2760
|
-
jwksUrl: `${initial.issuer}/jwks.json`,
|
|
3744
|
+
issuer: initial.issuer,
|
|
3745
|
+
jwksUrl: initial.jwksUrl ?? `${initial.issuer}/jwks.json`,
|
|
3746
|
+
audience: initial.audience,
|
|
3747
|
+
keySet: { epoch: nowMillis, keys: initial.publicKeys },
|
|
2761
3748
|
principalClaim: "sub",
|
|
2762
3749
|
deviceBindingClaim: "nonce",
|
|
2763
|
-
|
|
3750
|
+
...initial.requireDeviceBinding === void 0 ? {} : { requireDeviceBinding: initial.requireDeviceBinding },
|
|
3751
|
+
label: initial.label ?? "dev",
|
|
2764
3752
|
setBy: operator,
|
|
2765
3753
|
setAt: nowMillis
|
|
2766
3754
|
};
|
|
2767
3755
|
}
|
|
3756
|
+
function firebaseIdentityProvider(project, jwks) {
|
|
3757
|
+
const id = project.trim();
|
|
3758
|
+
if (!/^[a-z][a-z0-9-]{4,61}[a-z0-9]$/.test(id)) {
|
|
3759
|
+
throw new Error(`--firebase-project names an invalid Firebase project id: ${project}`);
|
|
3760
|
+
}
|
|
3761
|
+
const parsed = JSON.parse(jwks);
|
|
3762
|
+
if (!Array.isArray(parsed.keys) || parsed.keys.length === 0) {
|
|
3763
|
+
throw new Error("Firebase JWKS contains no signing keys");
|
|
3764
|
+
}
|
|
3765
|
+
return {
|
|
3766
|
+
issuer: `https://securetoken.google.com/${id}`,
|
|
3767
|
+
audience: id,
|
|
3768
|
+
jwks: JSON.stringify(parsed),
|
|
3769
|
+
publicKeys: parsed.keys.map((key) => ({
|
|
3770
|
+
kty: key.kty,
|
|
3771
|
+
...typeof key.kid === "string" ? { kid: key.kid } : {},
|
|
3772
|
+
...typeof key.alg === "string" ? { alg: key.alg } : {},
|
|
3773
|
+
...typeof key.use === "string" ? { use: key.use } : {},
|
|
3774
|
+
...typeof key.crv === "string" ? { crv: key.crv } : {},
|
|
3775
|
+
...typeof key.x === "string" ? { x: key.x } : {},
|
|
3776
|
+
...typeof key.y === "string" ? { y: key.y } : {},
|
|
3777
|
+
...typeof key.n === "string" ? { n: key.n } : {},
|
|
3778
|
+
...typeof key.e === "string" ? { e: key.e } : {},
|
|
3779
|
+
...Array.isArray(key.key_ops) ? { keyOps: key.key_ops } : {},
|
|
3780
|
+
...Array.isArray(key.x5c) ? { x5c: key.x5c } : {}
|
|
3781
|
+
})),
|
|
3782
|
+
jwksUrl: FIREBASE_JWKS_URL,
|
|
3783
|
+
label: `firebase:${id}`,
|
|
3784
|
+
// Firebase ID tokens are short-lived bearer assertions; Firebase does not
|
|
3785
|
+
// copy a caller-selected device-key nonce into the resulting ID token.
|
|
3786
|
+
// The first enrollment therefore proves the live Firebase identity and
|
|
3787
|
+
// possession of the self-signing device key as two independent facts.
|
|
3788
|
+
// Once seated, every ordinary offer requires both the live token and that
|
|
3789
|
+
// revocable enrolled key. Providers which issue nonce/cnf-bound tokens keep
|
|
3790
|
+
// the framework's strict default by omitting this explicit policy.
|
|
3791
|
+
requireDeviceBinding: "false"
|
|
3792
|
+
};
|
|
3793
|
+
}
|
|
2768
3794
|
async function bootstrapPlatform(dev, opts) {
|
|
2769
3795
|
const { eng, custody, ledgerFor, serialize, origin } = dev;
|
|
2770
3796
|
const platform = opts.platform || "co2-platform-local";
|
|
@@ -2774,20 +3800,12 @@ async function bootstrapPlatform(dev, opts) {
|
|
|
2774
3800
|
custody.create(`holon-${platform}`);
|
|
2775
3801
|
await mountWorkspace(eng, platform, ledgerFor(platform));
|
|
2776
3802
|
if (!nomosActive(eng, platform)) {
|
|
2777
|
-
|
|
2778
|
-
eng,
|
|
2779
|
-
platform,
|
|
2780
|
-
"bootstrap",
|
|
2781
|
-
"installDomain",
|
|
2782
|
-
closureInstallPayload(eng.hashes.nomos, "dev-bootstrap"),
|
|
2783
|
-
"",
|
|
2784
|
-
{ lawUsdz: eng.nomosLawUsdz }
|
|
2785
|
-
);
|
|
2786
|
-
if (r && r.ok === false) throw new Error(`platform genesis (framework install) REFUSED: ${String(r.error).slice(0, 300)}`);
|
|
3803
|
+
initializeWorkspace(eng, platform, "dev-bootstrap");
|
|
2787
3804
|
}
|
|
2788
3805
|
log2(`platform '${platform}' genesis'd via the operator anchor lane (framework ${eng.hashes.nomos.slice(0, 12)})`);
|
|
2789
3806
|
});
|
|
2790
3807
|
const stageZeroLaw = lawInputs[0];
|
|
3808
|
+
let applicationFrameworkCalls;
|
|
2791
3809
|
if (stageZeroLaw) {
|
|
2792
3810
|
if (!stageZeroLaw.endsWith(".law.usdz")) {
|
|
2793
3811
|
throw new Error(`--law requires a canonical .law.usdz archive, received ${stageZeroLaw}`);
|
|
@@ -2798,13 +3816,13 @@ async function bootstrapPlatform(dev, opts) {
|
|
|
2798
3816
|
if (!/^[0-9a-f]{64}$/.test(domainHash)) {
|
|
2799
3817
|
throw new Error(`kernel did not derive a valid law identity for ${stageZeroLaw}`);
|
|
2800
3818
|
}
|
|
2801
|
-
const installed = await serialize(async () =>
|
|
3819
|
+
const installed = await serialize(async () => authorOperatorCall(
|
|
2802
3820
|
eng,
|
|
2803
3821
|
platform,
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
3822
|
+
installDomainCall(
|
|
3823
|
+
platform,
|
|
3824
|
+
closureInstallPayload(domainHash, "dev-bootstrap")
|
|
3825
|
+
),
|
|
2808
3826
|
eng.hashes.nomos,
|
|
2809
3827
|
{ lawUsdz }
|
|
2810
3828
|
));
|
|
@@ -2812,6 +3830,7 @@ async function bootstrapPlatform(dev, opts) {
|
|
|
2812
3830
|
throw new Error(`stage-zero application law install REFUSED: ${String(installed.error).slice(0, 400)}`);
|
|
2813
3831
|
}
|
|
2814
3832
|
(dev.deployedLawIdentities ??= []).push(domainHash);
|
|
3833
|
+
applicationFrameworkCalls = await loadApplicationFrameworkCalls(stageZeroLaw);
|
|
2815
3834
|
log2(`application root law installed through stage zero: ${domainHash.slice(0, 12)}`);
|
|
2816
3835
|
}
|
|
2817
3836
|
const testMint = isTestMint(eng);
|
|
@@ -2830,9 +3849,28 @@ async function bootstrapPlatform(dev, opts) {
|
|
|
2830
3849
|
const { generateKeyPairSync, sign: nodeSign } = await import("node:crypto");
|
|
2831
3850
|
const { privateKey: idpPrivateKey, publicKey: idpPublicKey } = generateKeyPairSync("ec", { namedCurve: "P-256" });
|
|
2832
3851
|
const idpJwk = idpPublicKey.export({ format: "jwk" });
|
|
2833
|
-
const
|
|
2834
|
-
|
|
2835
|
-
|
|
3852
|
+
const syntheticIdp = {
|
|
3853
|
+
issuer: `https://dev-idp.local/${platform}`,
|
|
3854
|
+
audience: `${platform}-app`,
|
|
3855
|
+
jwks: JSON.stringify({ keys: [{ kty: "EC", crv: "P-256", kid: "dev-idp", alg: "ES256", use: "sig", x: idpJwk.x, y: idpJwk.y }] }),
|
|
3856
|
+
publicKeys: [{ kty: "EC", crv: "P-256", kid: "dev-idp", alg: "ES256", use: "sig", x: idpJwk.x, y: idpJwk.y }],
|
|
3857
|
+
jwksUrl: `https://dev-idp.local/${platform}/jwks.json`,
|
|
3858
|
+
label: "dev",
|
|
3859
|
+
requireDeviceBinding: "true"
|
|
3860
|
+
};
|
|
3861
|
+
const selectedIdp = opts.firebaseProject ? firebaseIdentityProvider(
|
|
3862
|
+
opts.firebaseProject,
|
|
3863
|
+
await (async () => {
|
|
3864
|
+
const response = await fetch(FIREBASE_JWKS_URL);
|
|
3865
|
+
if (!response.ok) {
|
|
3866
|
+
throw new Error(`could not fetch Firebase JWKS (${response.status}) from ${FIREBASE_JWKS_URL}`);
|
|
3867
|
+
}
|
|
3868
|
+
return await response.text();
|
|
3869
|
+
})()
|
|
3870
|
+
) : syntheticIdp;
|
|
3871
|
+
const idpIssuer = selectedIdp.issuer;
|
|
3872
|
+
const idpAudience = selectedIdp.audience;
|
|
3873
|
+
const idpJwks = selectedIdp.jwks;
|
|
2836
3874
|
const b64url = (b) => Buffer.from(b).toString("base64url");
|
|
2837
3875
|
const mintDevToken = (claims) => {
|
|
2838
3876
|
const header = b64url(JSON.stringify({ alg: "ES256", typ: "JWT", kid: "dev-idp" }));
|
|
@@ -2854,7 +3892,7 @@ async function bootstrapPlatform(dev, opts) {
|
|
|
2854
3892
|
secret: kRoot.secret
|
|
2855
3893
|
// signed by S_root
|
|
2856
3894
|
});
|
|
2857
|
-
const
|
|
3895
|
+
const certificateLinks = [birthCertificateLawPayload(platformCert)];
|
|
2858
3896
|
const { homeDomain, lawKeys } = await serialize(async () => {
|
|
2859
3897
|
await mountWorkspace(eng, platform, ledgerFor(platform));
|
|
2860
3898
|
const describedLaw = describe(eng, platform);
|
|
@@ -2873,47 +3911,61 @@ async function bootstrapPlatform(dev, opts) {
|
|
|
2873
3911
|
let pendingIdP;
|
|
2874
3912
|
{
|
|
2875
3913
|
const apPayload = devAuthProviderPayload(
|
|
2876
|
-
{
|
|
3914
|
+
{
|
|
3915
|
+
issuer: idpIssuer,
|
|
3916
|
+
publicKeys: selectedIdp.publicKeys,
|
|
3917
|
+
audience: idpAudience,
|
|
3918
|
+
jwksUrl: selectedIdp.jwksUrl,
|
|
3919
|
+
label: selectedIdp.label,
|
|
3920
|
+
requireDeviceBinding: selectedIdp.requireDeviceBinding
|
|
3921
|
+
},
|
|
2877
3922
|
Date.now(),
|
|
2878
3923
|
foundingPrincipal
|
|
2879
3924
|
);
|
|
2880
|
-
pendingIdP = {
|
|
3925
|
+
pendingIdP = {
|
|
3926
|
+
ISS: idpIssuer,
|
|
3927
|
+
AUD: idpAudience,
|
|
3928
|
+
JWKS: idpJwks,
|
|
3929
|
+
...opts.firebaseProject ? {} : { mint: mintDevToken },
|
|
3930
|
+
apPayload
|
|
3931
|
+
};
|
|
3932
|
+
}
|
|
3933
|
+
if (applicationFrameworkCalls === void 0) {
|
|
3934
|
+
throw new Error("dev bootstrap cannot author the platform ceremony without a compiled application law");
|
|
2881
3935
|
}
|
|
2882
|
-
const preWarrant = (
|
|
3936
|
+
const preWarrant = (call) => serialize(async () => authorOperatorCall(
|
|
2883
3937
|
eng,
|
|
2884
3938
|
platform,
|
|
2885
|
-
|
|
2886
|
-
homeDomain,
|
|
2887
|
-
directiveId,
|
|
2888
|
-
payload,
|
|
3939
|
+
call,
|
|
2889
3940
|
lawHash,
|
|
2890
3941
|
{ actor: foundingPrincipal }
|
|
2891
3942
|
));
|
|
2892
|
-
const signed = (
|
|
3943
|
+
const signed = (call) => serialize(async () => authorOperatorCall(
|
|
2893
3944
|
eng,
|
|
2894
3945
|
platform,
|
|
2895
|
-
|
|
2896
|
-
homeDomain,
|
|
2897
|
-
directiveId,
|
|
2898
|
-
payload,
|
|
3946
|
+
call,
|
|
2899
3947
|
lawHash,
|
|
2900
3948
|
{ actor: foundingPrincipal, authorSecret: sOp.secret }
|
|
2901
3949
|
));
|
|
2902
|
-
const seed = await preWarrant(
|
|
3950
|
+
const seed = await preWarrant(applicationFrameworkCalls.birth.seedBirthAttestation({
|
|
3951
|
+
domain: homeDomain,
|
|
3952
|
+
workspace: platform,
|
|
2903
3953
|
child: platform,
|
|
2904
3954
|
founder: foundingPrincipal,
|
|
2905
3955
|
verified: "true",
|
|
2906
3956
|
parentId: "root",
|
|
2907
3957
|
parentKey: sP.public,
|
|
2908
3958
|
epoch: 0,
|
|
2909
|
-
|
|
2910
|
-
});
|
|
3959
|
+
links: certificateLinks
|
|
3960
|
+
}));
|
|
2911
3961
|
if (!seed.ok) throw new Error(`platform BirthAttestation seed REFUSED: ${String(seed.error).slice(0, 400)}`);
|
|
2912
|
-
const enrolled = await preWarrant(
|
|
3962
|
+
const enrolled = await preWarrant(applicationFrameworkCalls.identity.enrollSigner({
|
|
3963
|
+
domain: homeDomain,
|
|
3964
|
+
workspace: platform,
|
|
2913
3965
|
keyHash: opKeyHash,
|
|
2914
3966
|
grantedBy: "root",
|
|
2915
3967
|
grantedAt: Date.now()
|
|
2916
|
-
});
|
|
3968
|
+
}));
|
|
2917
3969
|
if (!enrolled.ok) throw new Error(`platform founding signer enrollment REFUSED: ${String(enrolled.error).slice(0, 400)}`);
|
|
2918
3970
|
const applicationMaxChildWorkspaces = opts.applicationMaxChildWorkspacesPerUser;
|
|
2919
3971
|
if (applicationMaxChildWorkspaces !== void 0) {
|
|
@@ -2922,38 +3974,47 @@ async function bootstrapPlatform(dev, opts) {
|
|
|
2922
3974
|
"--application-max-child-workspaces-per-user must be a non-negative integer from the compiled application declaration"
|
|
2923
3975
|
);
|
|
2924
3976
|
}
|
|
2925
|
-
const seededPolicy = await preWarrant(
|
|
3977
|
+
const seededPolicy = await preWarrant(applicationFrameworkCalls.birth.seedBirthPolicy({
|
|
3978
|
+
domain: homeDomain,
|
|
3979
|
+
workspace: platform,
|
|
2926
3980
|
maxBirthsPerPrincipal: applicationMaxChildWorkspaces,
|
|
2927
3981
|
setBy: foundingPrincipal,
|
|
2928
3982
|
setAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
2929
|
-
});
|
|
3983
|
+
}));
|
|
2930
3984
|
if (!seededPolicy.ok) {
|
|
2931
3985
|
throw new Error(`platform application birth-policy seed REFUSED: ${String(seededPolicy.error).slice(0, 400)}`);
|
|
2932
3986
|
}
|
|
2933
3987
|
log2(`application birth policy seeded from the compiled scenario (${applicationMaxChildWorkspaces} child workspaces per principal)`);
|
|
2934
3988
|
}
|
|
2935
|
-
const warrant = await signed(
|
|
3989
|
+
const warrant = await signed(applicationFrameworkCalls.birth.seedGenesis({
|
|
3990
|
+
domain: homeDomain,
|
|
3991
|
+
workspace: platform,
|
|
2936
3992
|
principal: foundingPrincipal,
|
|
2937
3993
|
workspaceId: platform,
|
|
2938
3994
|
bornAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
2939
|
-
});
|
|
3995
|
+
}));
|
|
2940
3996
|
if (!warrant.ok) throw new Error(`platform WARRANT (seedGenesis) REFUSED: ${String(warrant.error).slice(0, 400)}`);
|
|
2941
3997
|
dev.operatorDevice = sOp;
|
|
2942
3998
|
dev.operatorPrincipal = foundingPrincipal;
|
|
2943
3999
|
if (pendingIdP) {
|
|
2944
|
-
const ap = await serialize(async () =>
|
|
4000
|
+
const ap = await serialize(async () => authorOperatorCall(
|
|
2945
4001
|
eng,
|
|
2946
4002
|
platform,
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
4003
|
+
applicationFrameworkCalls.identity.setAuthProvider({
|
|
4004
|
+
domain: homeDomain,
|
|
4005
|
+
workspace: platform,
|
|
4006
|
+
...pendingIdP.apPayload
|
|
4007
|
+
}),
|
|
2951
4008
|
lawHash,
|
|
2952
4009
|
{ actor: foundingPrincipal, authorSecret: sOp.secret }
|
|
2953
4010
|
));
|
|
2954
4011
|
if (ap.ok) {
|
|
2955
|
-
|
|
2956
|
-
|
|
4012
|
+
if (pendingIdP.mint) {
|
|
4013
|
+
devIdP = { issuer: pendingIdP.ISS, audience: pendingIdP.AUD, jwks: pendingIdP.JWKS, mint: pendingIdP.mint };
|
|
4014
|
+
log2(`dev test IdP registered (setAuthProvider ${pendingIdP.ISS}, aud ${pendingIdP.AUD}) \u2014 mint tokens via POST /dev/mint-token`);
|
|
4015
|
+
} else {
|
|
4016
|
+
log2(`Firebase AuthProvider registered (setAuthProvider ${pendingIdP.ISS}, aud ${pendingIdP.AUD}) \u2014 signed-in clients use their real Firebase ID token`);
|
|
4017
|
+
}
|
|
2957
4018
|
} else {
|
|
2958
4019
|
log2(`dev test IdP NOT registered \u2014 setAuthProvider refused (payload keys: ${Object.keys(pendingIdP.apPayload).join(",")}): ${String(ap.error).slice(0, 600)}`);
|
|
2959
4020
|
}
|
|
@@ -2965,7 +4026,7 @@ async function bootstrapPlatform(dev, opts) {
|
|
|
2965
4026
|
dev.testKRoot = kRoot;
|
|
2966
4027
|
dev.onboardingSigner = sP;
|
|
2967
4028
|
dev.platformCert = platformCert;
|
|
2968
|
-
dev.platformBirthAttestation = { child: platform, parentKey: sP.public
|
|
4029
|
+
dev.platformBirthAttestation = { child: platform, parentKey: sP.public };
|
|
2969
4030
|
dev.homeDomain = homeDomain;
|
|
2970
4031
|
}
|
|
2971
4032
|
}
|
|
@@ -2985,7 +4046,6 @@ async function bootstrapPlatform(dev, opts) {
|
|
|
2985
4046
|
}
|
|
2986
4047
|
(dev.deployedLawIdentities ??= []).push(domainHash);
|
|
2987
4048
|
const deployErr = await serialize(async () => {
|
|
2988
|
-
const ledger = ledgerFor(platform);
|
|
2989
4049
|
try {
|
|
2990
4050
|
const current = currentLaw(eng, platform);
|
|
2991
4051
|
const tenantPredecessors = [...new Set(Object.values(current).filter(
|
|
@@ -2995,14 +4055,16 @@ async function bootstrapPlatform(dev, opts) {
|
|
|
2995
4055
|
throw new Error(`bootstrap fixture serves ${tenantPredecessors.length} tenant models; refusing to guess a lifecycle predecessor`);
|
|
2996
4056
|
}
|
|
2997
4057
|
const supersedes = tenantPredecessors[0];
|
|
2998
|
-
const
|
|
2999
|
-
|
|
4058
|
+
const payload = closureInstallPayload(
|
|
4059
|
+
domainHash,
|
|
4060
|
+
"dev-bootstrap",
|
|
4061
|
+
supersedes ? { supersedes } : {}
|
|
4062
|
+
);
|
|
4063
|
+
const call = supersedes ? stageDomainCall(platform, { ...payload, supersedes }) : installDomainCall(platform, payload);
|
|
4064
|
+
const out = await authorOperatorCall(
|
|
3000
4065
|
eng,
|
|
3001
4066
|
platform,
|
|
3002
|
-
|
|
3003
|
-
"nomos",
|
|
3004
|
-
directiveId,
|
|
3005
|
-
closureInstallPayload(domainHash, "dev-bootstrap", supersedes ? { supersedes } : {}),
|
|
4067
|
+
call,
|
|
3006
4068
|
eng.hashes.nomos,
|
|
3007
4069
|
{ actor: dev.operatorPrincipal || "", authorSecret: founderDevice.secret, lawUsdz }
|
|
3008
4070
|
);
|
|
@@ -3028,11 +4090,12 @@ async function bootstrapPlatform(dev, opts) {
|
|
|
3028
4090
|
log2(attested ? "bootstrap complete \u2014 platform law deployed + ROOT-ATTESTED (BirthAttestation certChain seeded; birthHome assembles a valid travelling cert)." : "bootstrap complete (platform law deployed; attested-birth legs gated as noted above \u2014 need the test-mint wasm).");
|
|
3029
4091
|
return { platform, testMint, attested };
|
|
3030
4092
|
}
|
|
3031
|
-
var log2, PLATFORM_GENESIS_DIRECTIVES, lawInputsOf;
|
|
4093
|
+
var log2, PLATFORM_GENESIS_DIRECTIVES, lawInputsOf, FIREBASE_JWKS_URL;
|
|
3032
4094
|
var init_bootstrap = __esm({
|
|
3033
4095
|
"../cloud/dev-server/bootstrap.ts"() {
|
|
3034
4096
|
"use strict";
|
|
3035
4097
|
init_engine();
|
|
4098
|
+
init_lifecycle_calls();
|
|
3036
4099
|
init_application_home_domain();
|
|
3037
4100
|
init_types();
|
|
3038
4101
|
log2 = (m) => console.log(`[bootstrap] ${m}`);
|
|
@@ -3042,18 +4105,232 @@ var init_bootstrap = __esm({
|
|
|
3042
4105
|
"seedGenesis"
|
|
3043
4106
|
];
|
|
3044
4107
|
lawInputsOf = (opts) => opts.lawUsdzs && opts.lawUsdzs.length > 0 ? [...opts.lawUsdzs] : opts.lawUsdz ? [opts.lawUsdz] : [];
|
|
4108
|
+
FIREBASE_JWKS_URL = "https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com";
|
|
3045
4109
|
}
|
|
3046
4110
|
});
|
|
3047
4111
|
|
|
3048
4112
|
// ../cloud/dev-server/server.ts
|
|
3049
4113
|
init_engine();
|
|
3050
|
-
init_custody_transport();
|
|
3051
4114
|
import http from "node:http";
|
|
3052
4115
|
import { createHash as createHash2, randomBytes } from "node:crypto";
|
|
3053
4116
|
import { readFileSync as readFileSync2, writeFileSync, existsSync as existsSync2, mkdirSync as mkdirSync2, mkdtempSync } from "node:fs";
|
|
3054
4117
|
import { fileURLToPath } from "node:url";
|
|
3055
4118
|
import path2 from "node:path";
|
|
3056
4119
|
import os from "node:os";
|
|
4120
|
+
import { fromBinary as fromBinary2 } from "@bufbuild/protobuf";
|
|
4121
|
+
|
|
4122
|
+
// ../adapter/custody-offer-transport.ts
|
|
4123
|
+
init_kernel_pb();
|
|
4124
|
+
import { create as create2, toBinary as toBinary2 } from "@bufbuild/protobuf";
|
|
4125
|
+
|
|
4126
|
+
// ../adapter/proto/nomos/runtime/v2/runtime_pb.js
|
|
4127
|
+
init_kernel_pb();
|
|
4128
|
+
import { enumDesc as enumDesc3, fileDesc as fileDesc3, messageDesc as messageDesc3, serviceDesc as serviceDesc2, tsEnum as tsEnum3 } from "@bufbuild/protobuf/codegenv2";
|
|
4129
|
+
|
|
4130
|
+
// ../adapter/proto/nomos/kernel/v1/progress_pb.js
|
|
4131
|
+
import { enumDesc as enumDesc2, fileDesc as fileDesc2, messageDesc as messageDesc2, tsEnum as tsEnum2 } from "@bufbuild/protobuf/codegenv2";
|
|
4132
|
+
var file_nomos_kernel_v1_progress = /* @__PURE__ */ fileDesc2("Ch5ub21vcy9rZXJuZWwvdjEvcHJvZ3Jlc3MucHJvdG8SD25vbW9zLmtlcm5lbC52MSLEAwoWS2VybmVsUHJvZ3Jlc3NTbmFwc2hvdBIWCg5zY2hlbWFfdmVyc2lvbhgBIAEoDRIQCghzZXF1ZW5jZRgCIAEoBBI7CglvcGVyYXRpb24YAyABKA4yKC5ub21vcy5rZXJuZWwudjEuS2VybmVsUHJvZ3Jlc3NPcGVyYXRpb24SMwoFcGhhc2UYBCABKA4yJC5ub21vcy5rZXJuZWwudjEuS2VybmVsUHJvZ3Jlc3NQaGFzZRIXCg9jb21wbGV0ZWRfdW5pdHMYBSABKAQSEwoLdG90YWxfdW5pdHMYBiABKAQSMQoEdW5pdBgHIAEoDjIjLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxQcm9ncmVzc1VuaXQSEAoIdGVybWluYWwYCCABKAgSHAoUYWxsb2NhdG9yX2xpdmVfYnl0ZXMYCSABKAQSHAoUYWxsb2NhdG9yX3BlYWtfYnl0ZXMYCiABKAQSQwoSbGF3X2h5ZHJhdGlvbl9zdGVwGAsgASgOMicubm9tb3Mua2VybmVsLnYxLktlcm5lbExhd0h5ZHJhdGlvblN0ZXASGgoSbGF3X3BhY2thZ2Vfc2hhMjU2GAwgASgJKnAKF0tlcm5lbFByb2dyZXNzT3BlcmF0aW9uEikKJUtFUk5FTF9QUk9HUkVTU19PUEVSQVRJT05fVU5TUEVDSUZJRUQQABIqCiZLRVJORUxfUFJPR1JFU1NfT1BFUkFUSU9OX1JFU1RPUkVfTUFJThABKtkDChNLZXJuZWxQcm9ncmVzc1BoYXNlEiUKIUtFUk5FTF9QUk9HUkVTU19QSEFTRV9VTlNQRUNJRklFRBAAEicKI0tFUk5FTF9QUk9HUkVTU19QSEFTRV9DSEVDS19DVVNUT0RZEAESJAogS0VSTkVMX1BST0dSRVNTX1BIQVNFX1JFQURfQ0hBSU4QAhIrCidLRVJORUxfUFJPR1JFU1NfUEhBU0VfSU5JVElBTElaRV9FTkdJTkUQAxInCiNLRVJORUxfUFJPR1JFU1NfUEhBU0VfUkVBRF9USU1FTElORRAEEiUKIUtFUk5FTF9QUk9HUkVTU19QSEFTRV9IWURSQVRFX0xBVxAFEioKJktFUk5FTF9QUk9HUkVTU19QSEFTRV9SRUNPVkVSWV9QUkVTQ0FOEAYSKAokS0VSTkVMX1BST0dSRVNTX1BIQVNFX1ZFUklGWV9JTlRFTlRTEAcSKQolS0VSTkVMX1BST0dSRVNTX1BIQVNFX1BST01PVEVfQ1VTVE9EWRAIEioKJktFUk5FTF9QUk9HUkVTU19QSEFTRV9SRUJVSUxEX0ZST05USUVSEAkSIgoeS0VSTkVMX1BST0dSRVNTX1BIQVNFX0NPTVBMRVRFEAoqgQEKEktlcm5lbFByb2dyZXNzVW5pdBIkCiBLRVJORUxfUFJPR1JFU1NfVU5JVF9VTlNQRUNJRklFRBAAEh8KG0tFUk5FTF9QUk9HUkVTU19VTklUX0lOVEVOVBABEiQKIEtFUk5FTF9QUk9HUkVTU19VTklUX0xBV19QQUNLQUdFEAIqqwIKFktlcm5lbExhd0h5ZHJhdGlvblN0ZXASKQolS0VSTkVMX0xBV19IWURSQVRJT05fU1RFUF9VTlNQRUNJRklFRBAAEioKJktFUk5FTF9MQVdfSFlEUkFUSU9OX1NURVBfUkVBRF9DTE9TVVJFEAESKwonS0VSTkVMX0xBV19IWURSQVRJT05fU1RFUF9DT01QT1NFX1NUQUdFEAISLAooS0VSTkVMX0xBV19IWURSQVRJT05fU1RFUF9ERVJJVkVfU0NIRU1BUxADEi8KK0tFUk5FTF9MQVdfSFlEUkFUSU9OX1NURVBfTE9BRF9QT0xJQ1lfU0hFTEwQBBIuCipLRVJORUxfTEFXX0hZRFJBVElPTl9TVEVQX1BBQ0tBR0VfQ09NUExFVEUQBWIGcHJvdG8z");
|
|
4133
|
+
|
|
4134
|
+
// ../adapter/proto/nomos/runtime/v2/runtime_pb.js
|
|
4135
|
+
var file_nomos_runtime_v2_runtime = /* @__PURE__ */ fileDesc3("Ch5ub21vcy9ydW50aW1lL3YyL3J1bnRpbWUucHJvdG8SEG5vbW9zLnJ1bnRpbWUudjIioAkKDlJ1bnRpbWVSZXF1ZXN0EhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoBBIyCgV0cmFjZRgDIAEoCzIeLm5vbW9zLnJ1bnRpbWUudjIuVHJhY2VDb250ZXh0SAGIAQESOgoLa2VybmVsX2NhbGwYCiABKAsyIy5ub21vcy5ydW50aW1lLnYyLktlcm5lbENhbGxSZXF1ZXN0SAASMwoHY29ubmVjdBgLIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuQ29ubmVjdFJlcXVlc3RIABJCCg9saXN0X3dvcmtzcGFjZXMYDCABKAsyJy5ub21vcy5ydW50aW1lLnYyLkxpc3RXb3Jrc3BhY2VzUmVxdWVzdEgAEkgKEnNuYXBzaG90X3dvcmtzcGFjZRgNIAEoCzIqLm5vbW9zLnJ1bnRpbWUudjIuU25hcHNob3RXb3Jrc3BhY2VSZXF1ZXN0SAASQAoOc3luY193b3Jrc3BhY2UYDiABKAsyJi5ub21vcy5ydW50aW1lLnYyLlN5bmNXb3Jrc3BhY2VSZXF1ZXN0SAASQQoPc3RhcnRfYXV0b19zeW5jGA8gASgLMiYubm9tb3MucnVudGltZS52Mi5TdGFydEF1dG9TeW5jUmVxdWVzdEgAEj8KDnN0b3BfYXV0b19zeW5jGBAgASgLMiUubm9tb3MucnVudGltZS52Mi5TdG9wQXV0b1N5bmNSZXF1ZXN0SAASLwoFd2F0Y2gYESABKAsyHi5ub21vcy5ydW50aW1lLnYyLldhdGNoUmVxdWVzdEgAEjMKB3Vud2F0Y2gYEiABKAsyIC5ub21vcy5ydW50aW1lLnYyLlVud2F0Y2hSZXF1ZXN0SAASQAoOcHJlcGFyZV9kb21haW4YEyABKAsyJi5ub21vcy5ydW50aW1lLnYyLlByZXBhcmVEb21haW5SZXF1ZXN0SAASTQoVcmVzb2x2ZV9jdXN0b2R5X2JyZWFrGBQgASgLMiwubm9tb3MucnVudGltZS52Mi5SZXNvbHZlQ3VzdG9keUJyZWFrUmVxdWVzdEgAEjoKC2Nsb3NlX3JlYWxtGBUgASgLMiMubm9tb3MucnVudGltZS52Mi5DbG9zZVJlYWxtUmVxdWVzdEgAEjoKC2RlYWRfbGV0dGVyGBYgASgLMiMubm9tb3MucnVudGltZS52Mi5EZWFkTGV0dGVyUmVxdWVzdEgAEkAKDmhpc3RvcmljX3F1ZXJ5GBcgASgLMiYubm9tb3MucnVudGltZS52Mi5IaXN0b3JpY1F1ZXJ5UmVxdWVzdEgAEkIKD21vZGVsX2xpZmVjeWNsZRgYIAEoCzInLm5vbW9zLnJ1bnRpbWUudjIuTW9kZWxMaWZlY3ljbGVSZXF1ZXN0SAASXQodZXN0YWJsaXNoX2FwcGxpY2F0aW9uX2N1c3RvZHkYGSABKAsyNC5ub21vcy5ydW50aW1lLnYyLkVzdGFibGlzaEFwcGxpY2F0aW9uQ3VzdG9keVJlcXVlc3RIAEIJCgdjb21tYW5kQggKBl90cmFjZSJTChFLZXJuZWxDYWxsUmVxdWVzdBIPCgdzZXNzaW9uGAEgASgJEi0KB3JlcXVlc3QYAiABKAsyHC5ub21vcy5rZXJuZWwudjEuQ2FsbFJlcXVlc3Qi8QIKIkVzdGFibGlzaEFwcGxpY2F0aW9uQ3VzdG9keVJlcXVlc3QSDwoHc2Vzc2lvbhgBIAEoCRIOCgZwYXJlbnQYAiABKAkSEQoJcHJpbmNpcGFsGAMgASgJEg8KB3N1YmplY3QYBCABKAkSFQoNZGV2aWNlX3NlY3JldBgFIAEoDBIVCg1kZXZpY2VfcHVibGljGAYgASgMEhIKCmF1dGhfdG9rZW4YByABKAkSEAoIaWRfdG9rZW4YCCABKAkSFAoMdmVyaWZpZWRfdmlhGAkgASgJEg8KB2Jvcm5fYXQYCiABKAkSOwoTZW5yb2xsX2ZpcnN0X2RldmljZRgLIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5EaXJlY3RpdmVDYWxsEj0KFWJpcnRoX3JlY2VpdmluZ19ncm91cBgMIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5EaXJlY3RpdmVDYWxsEg8KB2NvbmZpcm0YDSABKAginwEKHUFwcGxpY2F0aW9uQ3VzdG9keUVzdGFibGlzaGVkEgwKBGhvbWUYASABKAkSFwoKY2hpbGRfaGVhZBgCIAEoCUgAiAEBEhAKCHZlcmlmaWVkGAMgASgIEh8KEnZlcmlmaWNhdGlvbl9lcnJvchgEIAEoCUgBiAEBQg0KC19jaGlsZF9oZWFkQhUKE192ZXJpZmljYXRpb25fZXJyb3IiZQoUSGlzdG9yaWNRdWVyeVJlcXVlc3QSDwoHc2Vzc2lvbhgBIAEoCRIOCgZtb21lbnQYAiABKAkSLAoFcXVlcnkYAyABKAsyHS5ub21vcy5rZXJuZWwudjEuUXVlcnlSZXF1ZXN0IrUJCg9SdW50aW1lUmVzcG9uc2USGAoQcHJvdG9jb2xfdmVyc2lvbhgBIAEoDRISCgpyZXF1ZXN0X2lkGAIgASgEEjMKB2ZhaWx1cmUYCiABKAsyIC5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVGYWlsdXJlSAASNAoLa2VybmVsX2NhbGwYCyABKAsyHS5ub21vcy5rZXJuZWwudjEuQ2FsbFJlc3BvbnNlSAASMAoJY29ubmVjdGVkGAwgASgLMhsubm9tb3MucnVudGltZS52Mi5Db25uZWN0ZWRIABI5Cg53b3Jrc3BhY2VfbGlzdBgNIAEoCzIfLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlTGlzdEgAEkEKEndvcmtzcGFjZV9zbmFwc2hvdBgOIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlU25hcHNob3RIABJBCg5zeW5jX3dvcmtzcGFjZRgPIAEoCzInLm5vbW9zLnJ1bnRpbWUudjIuU3luY1dvcmtzcGFjZVJlc3BvbnNlSAASPgoRYXV0b19zeW5jX3N0YXJ0ZWQYECABKAsyIS5ub21vcy5ydW50aW1lLnYyLkF1dG9TeW5jU3RhcnRlZEgAEj4KEWF1dG9fc3luY19zdG9wcGVkGBEgASgLMiEubm9tb3MucnVudGltZS52Mi5BdXRvU3luY1N0b3BwZWRIABI3Cg13YXRjaF9zdGFydGVkGBIgASgLMh4ubm9tb3MucnVudGltZS52Mi5XYXRjaFN0YXJ0ZWRIABI3Cg13YXRjaF9zdG9wcGVkGBMgASgLMh4ubm9tb3MucnVudGltZS52Mi5XYXRjaFN0b3BwZWRIABI7Cg9kb21haW5fcHJlcGFyZWQYFCABKAsyIC5ub21vcy5ydW50aW1lLnYyLkRvbWFpblByZXBhcmVkSAASSAoWY3VzdG9keV9icmVha19yZXNvbHZlZBgVIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUJyZWFrUmVzb2x2ZWRIABI1CgxyZWFsbV9jbG9zZWQYFiABKAsyHS5ub21vcy5ydW50aW1lLnYyLlJlYWxtQ2xvc2VkSAASMwoHYmxvY2tlZBgXIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZUJsb2NrZWRIABJIChZyZW1vdGVfb2ZmZXJfYWRtaXNzaW9uGBggASgLMiYubm9tb3MucnVudGltZS52Mi5SZW1vdGVPZmZlckFkbWlzc2lvbkgAEjsKC2RlYWRfbGV0dGVyGBkgASgLMiQubm9tb3MucnVudGltZS52Mi5EZWFkTGV0dGVyUmVzcG9uc2VIABJDCg9tb2RlbF9saWZlY3ljbGUYGiABKAsyKC5ub21vcy5ydW50aW1lLnYyLk1vZGVsTGlmZWN5Y2xlUmVzcG9uc2VIABJaCh9hcHBsaWNhdGlvbl9jdXN0b2R5X2VzdGFibGlzaGVkGBsgASgLMi8ubm9tb3MucnVudGltZS52Mi5BcHBsaWNhdGlvbkN1c3RvZHlFc3RhYmxpc2hlZEgAQgkKB291dGNvbWUinwEKDlJ1bnRpbWVCbG9ja2VkEkEKCXdvcmtzcGFjZRgBIAEoCzIsLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlUmVzaWRlbmN5UmVxdWlyZWRIABJACghzaWJsaW5ncxgCIAEoCzIsLm5vbW9zLnJ1bnRpbWUudjIuU2libGluZ1Jlc2lkZW5jaWVzUmVxdWlyZWRIAEIICgZyZWFzb24iLwoaV29ya3NwYWNlUmVzaWRlbmN5UmVxdWlyZWQSEQoJd29ya3NwYWNlGAEgASgJIlUKGFNpYmxpbmdSZXNpZGVuY3lSZXF1aXJlZBIRCgl3b3Jrc3BhY2UYASABKAkSEwoLc291cmNlX2hlYWQYAiABKAkSEQoJZm9sZF9yb290GAMgASgJIl0KGlNpYmxpbmdSZXNpZGVuY2llc1JlcXVpcmVkEj8KC3Jlc2lkZW5jaWVzGAEgAygLMioubm9tb3MucnVudGltZS52Mi5TaWJsaW5nUmVzaWRlbmN5UmVxdWlyZWQihgIKFFJlbW90ZU9mZmVyQWRtaXNzaW9uEhEKCXdvcmtzcGFjZRgBIAEoCRIMCgRtYWluGAIgASgJEhgKC3NlYWxlZF9tYWluGAMgASgJSACIAQESLwoHdmVyZGljdBgEIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5PZmZlclJlc3BvbnNlEjMKDGJvcm5fY3VzdG9keRgFIAMoCzIdLm5vbW9zLnJ1bnRpbWUudjIuQm9ybkN1c3RvZHkSEwoLcmVzdWx0X3BhY2sYBiABKAwSGAoLcmVzdWx0X2Jhc2UYByABKAlIAYgBAUIOCgxfc2VhbGVkX21haW5CDgoMX3Jlc3VsdF9iYXNlIkoKC0Jvcm5DdXN0b2R5Ei0KBWNoaWxkGAEgASgLMh4ubm9tb3Mua2VybmVsLnYxLkJvcm5Xb3Jrc3BhY2USDAoEcGFjaxgCIAEoDCL5AQoYQ3VzdG9keU9mZmVyQmF0Y2hSZXF1ZXN0EhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoCRI3CgZpbmxpbmUYAyABKAsyJS5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlJbmxpbmVPZmZlcnNIABJGChFzZXNzaW9uX2NhbmRpZGF0ZRgEIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keVNlc3Npb25DYW5kaWRhdGVIABIWCgliYXNlX2hlYWQYBSABKAlIAYgBAUIICgZzb3VyY2VCDAoKX2Jhc2VfaGVhZCJOChJDdXN0b2R5SW50ZW50T2ZmZXISDwoHc2Vzc2lvbhgBIAEoCRISCgpjb21taXRfb2lkGAIgASgJEhMKC2NoYW5nZV91c2RhGAMgASgMIksKE0N1c3RvZHlJbmxpbmVPZmZlcnMSNAoGb2ZmZXJzGAEgAygLMiQubm9tb3MucnVudGltZS52Mi5DdXN0b2R5SW50ZW50T2ZmZXIiLAoXQ3VzdG9keVNlc3Npb25DYW5kaWRhdGUSEQoJcmVmZXJlbmNlGAEgASgJIvcBChlDdXN0b2R5T2ZmZXJCYXRjaFJlc3BvbnNlEhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoCRI3CglhZG1pc3Npb24YCiABKAsyIi5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlBZG1pc3Npb25IABIzCgdmYWlsdXJlGAsgASgLMiAubm9tb3MucnVudGltZS52Mi5SdW50aW1lRmFpbHVyZUgAEjMKB2Jsb2NrZWQYDCABKAsyIC5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVCbG9ja2VkSABCCQoHb3V0Y29tZSLuAgoQQ3VzdG9keUFkbWlzc2lvbhIMCgRtYWluGAEgASgJEhgKC3NlYWxlZF9tYWluGAIgASgJSACIAQESOwoIc2Vzc2lvbnMYAyADKAsyKS5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlTZXNzaW9uQWRtaXNzaW9uEjUKDmJpcnRoX291dGNvbWVzGAQgAygLMh0ubm9tb3Mua2VybmVsLnYxLkJpcnRoT3V0Y29tZRIzCgxib3JuX2N1c3RvZHkYBSADKAsyHS5ub21vcy5ydW50aW1lLnYyLkJvcm5DdXN0b2R5EhMKC3Jlc3VsdF9wYWNrGAYgASgMEhgKC3Jlc3VsdF9iYXNlGAcgASgJSAGIAQESOgoHdGltaW5ncxgIIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUFkbWlzc2lvblRpbWluZ3NCDgoMX3NlYWxlZF9tYWluQg4KDF9yZXN1bHRfYmFzZSJlChdDdXN0b2R5U2Vzc2lvbkFkbWlzc2lvbhIPCgdzZXNzaW9uGAEgASgJEjkKB2ludGVudHMYAiADKAsyKC5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlJbnRlbnRBZG1pc3Npb24ikAIKFkN1c3RvZHlJbnRlbnRBZG1pc3Npb24SEgoKY29tbWl0X29pZBgBIAEoCRIWCglpbnRlbnRfaWQYAiABKAlIAYgBARI7CghhZG1pdHRlZBgKIAEoCzInLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUludGVudEFkbWl0dGVkSAASOQoHc2tpcHBlZBgLIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUludGVudFNraXBwZWRIABI5CgdyZWZ1c2VkGAwgASgLMiYubm9tb3MucnVudGltZS52Mi5DdXN0b2R5SW50ZW50UmVmdXNlZEgAQgkKB291dGNvbWVCDAoKX2ludGVudF9pZCKQAQoVQ3VzdG9keUludGVudEFkbWl0dGVkEgwKBGhlYWQYASABKAkSMwoHY3JlYXRlZBgCIAMoCzIiLm5vbW9zLmtlcm5lbC52MS5PZmZlckFnZ3JlZ2F0ZVJlZhI0CghhZmZlY3RlZBgDIAMoCzIiLm5vbW9zLmtlcm5lbC52MS5PZmZlckFnZ3JlZ2F0ZVJlZiIvChRDdXN0b2R5SW50ZW50U2tpcHBlZBIXCg9hbHJlYWR5X29uX21haW4YASABKAgiWgoUQ3VzdG9keUludGVudFJlZnVzZWQSDwoHbWVzc2FnZRgBIAEoCRIVCg1kZWFkX2xldHRlcmVkGAIgASgIEhEKBGhpbnQYAyABKAlIAIgBAUIHCgVfaGludCLtAQoXQ3VzdG9keUFkbWlzc2lvblRpbWluZ3MSFAoMdG90YWxfbWlsbGlzGAEgASgBEhMKC3NjYW5fbWlsbGlzGAIgASgBEhQKDGZldGNoX21pbGxpcxgDIAEoARITCgtzZWFsX21pbGxpcxgEIAEoARIYChBnYXRlX2ZvbGRfbWlsbGlzGAUgASgBEhQKDGludGVudF9jb3VudBgGIAEoDRIVCg1zZXNzaW9uX2NvdW50GAcgASgNEjUKBXNwYW5zGAggAygLMiYubm9tb3MucnVudGltZS52Mi5DdXN0b2R5QWRtaXNzaW9uU3BhbiKXAQoUQ3VzdG9keUFkbWlzc2lvblNwYW4SCgoCaWQYASABKAkSDQoFdHJhY2sYAiABKAkSDAoEbmFtZRgDIAEoCRIMCgRraW5kGAQgASgJEg0KBWRlcHRoGAUgASgNEhsKE3N0YXJ0ZWRfdW5peF9taWxsaXMYBiABKAESHAoUZmluaXNoZWRfdW5peF9taWxsaXMYByABKAEiQgoMVHJhY2VDb250ZXh0EhAKCHRyYWNlX2lkGAEgASgMEg8KB3NwYW5faWQYAiABKAwSDwoHc2FtcGxlZBgDIAEoCCLpAQoOUnVudGltZUZhaWx1cmUSDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEhEKCWNvbXBvbmVudBgDIAEoCRIWCgl3b3Jrc3BhY2UYBCABKAlIAIgBARITCgZkb21haW4YBSABKAlIAYgBARIWCglkaXJlY3RpdmUYBiABKAlIAogBARI5CgphdHRyaWJ1dGVzGAcgAygLMiUubm9tb3MucnVudGltZS52Mi5EaWFnbm9zdGljQXR0cmlidXRlQgwKCl93b3Jrc3BhY2VCCQoHX2RvbWFpbkIMCgpfZGlyZWN0aXZlIqUBChNEaWFnbm9zdGljQXR0cmlidXRlEgwKBG5hbWUYASABKAkSFgoMc3RyaW5nX3ZhbHVlGAIgASgJSAASFwoNaW50ZWdlcl92YWx1ZRgDIAEoEkgAEhYKDGRvdWJsZV92YWx1ZRgEIAEoAUgAEhcKDWJvb2xlYW5fdmFsdWUYBSABKAhIABIVCgtieXRlc192YWx1ZRgGIAEoDEgAQgcKBXZhbHVlIs0CCg5Db25uZWN0UmVxdWVzdBIRCgl3b3Jrc3BhY2UYASABKAkSEQoJY2xpZW50X2lkGAIgASgJEhQKB3Nlc3Npb24YAyABKAlIAIgBARISCgVjbG91ZBgEIAEoCUgBiAEBEhIKCmF1dGhfdG9rZW4YBSABKAwSFQoNYXV0aG9yX3NlY3JldBgGIAEoDBIiChptYXhpbXVtX21vdW50ZWRfd29ya3NwYWNlcxgHIAEoDRIUCgxhbGxvd191bmJvcm4YCCABKAgSDwoHcmVjb3ZlchgJIAEoCBJCChRjdXN0b2R5X2JyZWFrX3BvbGljeRgKIAEoDjIkLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUJyZWFrUG9saWN5EhsKE2hhc19yZXN0b3JlX2N1c3RvZHkYCyABKAhCCgoIX3Nlc3Npb25CCAoGX2Nsb3VkIosBCglDb25uZWN0ZWQSEQoJd29ya3NwYWNlGAEgASgJEg8KB3Nlc3Npb24YAiABKAkSEwoLY2xvdWRfYm91bmQYAyABKAgSOAoIcmVjb3ZlcnkYBCABKAsyIS5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlSZWNvdmVyeUgAiAEBQgsKCV9yZWNvdmVyeSJbCg9DdXN0b2R5UmVjb3ZlcnkSFQoNcHJldmlvdXNfaGVhZBgBIAEoCRIWCg5yZWNvdmVyZWRfaGVhZBgCIAEoCRIZChFyZWNvdmVyZWRfaW50ZW50cxgDIAEoBCIXChVMaXN0V29ya3NwYWNlc1JlcXVlc3QirQEKEFdvcmtzcGFjZVN1bW1hcnkSDwoHc2Vzc2lvbhgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkSNwoJcmVzaWRlbmN5GAMgASgOMiQubm9tb3MucnVudGltZS52Mi5Xb3Jrc3BhY2VSZXNpZGVuY3kSPAoMc3luY19wb3N0dXJlGAQgASgOMiYubm9tb3MucnVudGltZS52Mi5Xb3Jrc3BhY2VTeW5jUG9zdHVyZSJHCg1Xb3Jrc3BhY2VMaXN0EjYKCndvcmtzcGFjZXMYASADKAsyIi5ub21vcy5ydW50aW1lLnYyLldvcmtzcGFjZVN1bW1hcnkiTQoYU25hcHNob3RXb3Jrc3BhY2VSZXF1ZXN0Eg8KB3Nlc3Npb24YASABKAkSFAoHaWZfaGVhZBgCIAEoCUgAiAEBQgoKCF9pZl9oZWFkIlwKEVdvcmtzcGFjZVNuYXBzaG90EhEKCXdvcmtzcGFjZRgBIAEoCRIMCgRoZWFkGAIgASgJEhEKCXVuY2hhbmdlZBgDIAEoCBITCgtoYXNfY3VzdG9keRgEIAEoCCI2ChRTeW5jV29ya3NwYWNlUmVxdWVzdBIPCgdzZXNzaW9uGAEgASgJEg0KBWFkbWl0GAIgASgIIrwFChVTeW5jV29ya3NwYWNlUmVzcG9uc2USEQoJd29ya3NwYWNlGAEgASgJEhoKDXByZXZpb3VzX2hlYWQYAiABKAlIAIgBARIZCgxjdXJyZW50X2hlYWQYAyABKAlIAYgBARIQCghhZG1pdHRlZBgEIAEoBBIPCgdyZWZ1c2VkGAUgASgEEhAKCGRlZmVycmVkGAYgASgEEhIKCmxvY2FsX29ubHkYByABKAgSDgoGcHVsbGVkGAggASgIEhAKCGRpdmVyZ2VkGAkgASgIEhoKEnJlY29ubmVjdF9yZXF1aXJlZBgKIAEoCBITCgtzdGlsbF9haGVhZBgLIAEoCBIPCgdvZmZsaW5lGAwgASgIEhMKC3B1c2hfZmFpbGVkGA0gASgIEh0KFWRpcmVjdF9vZmZlcl9kZWZlcnJlZBgOIAEoCBI1Cg5iaXJ0aF9vdXRjb21lcxgPIAMoCzIdLm5vbW9zLmtlcm5lbC52MS5CaXJ0aE91dGNvbWUSGwoTYWRtaXR0ZWRfaW50ZW50X2lkcxgQIAMoCRIcChRjb252ZXJnZWRfaW50ZW50X2lkcxgRIAMoCRJCCgpwdXNoX2Vycm9yGBIgASgLMikubm9tb3MucnVudGltZS52Mi5SdW50aW1lVHJhbnNwb3J0RmFpbHVyZUgCiAEBEkcKD2Rpc2NvdmVyeV9lcnJvchgTIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZVRyYW5zcG9ydEZhaWx1cmVIA4gBARIzCgd0aW1pbmdzGBQgASgLMiIubm9tb3MucnVudGltZS52Mi5TeW5jUGhhc2VUaW1pbmdzQhAKDl9wcmV2aW91c19oZWFkQg8KDV9jdXJyZW50X2hlYWRCDQoLX3B1c2hfZXJyb3JCEgoQX2Rpc2NvdmVyeV9lcnJvciJdChdSdW50aW1lVHJhbnNwb3J0RmFpbHVyZRIQCghlbmRwb2ludBgBIAEoCRIOCgZzdGF0dXMYAiABKBESDwoHcmVmdXNlZBgDIAEoCBIPCgdtZXNzYWdlGAQgASgJIrEBChBTeW5jUGhhc2VUaW1pbmdzEhMKC3B1c2hfbWlsbGlzGAEgASgBEhQKDGFkbWl0X21pbGxpcxgCIAEoARIXCg9wcmVmZXRjaF9taWxsaXMYAyABKAESFwoPY29udmVyZ2VfbWlsbGlzGAQgASgBEhIKCnB1c2hfYnl0ZXMYBSABKAQSFQoNc2VydmVyX21pbGxpcxgGIAEoARIVCg1vZmZlcl9pbl9wdXNoGAcgASgIIt8BChRTdGFydEF1dG9TeW5jUmVxdWVzdBIPCgdzZXNzaW9uGAEgASgJEhwKD2RlYm91bmNlX21pbGxpcxgCIAEoDUgAiAEBEhwKD2ZhbGxiYWNrX21pbGxpcxgDIAEoDUgBiAEBEhoKDXNpZ25hbF9taWxsaXMYBCABKA1IAogBARIWCglzaWduYWxfaWQYBSABKAlIA4gBAUISChBfZGVib3VuY2VfbWlsbGlzQhIKEF9mYWxsYmFja19taWxsaXNCEAoOX3NpZ25hbF9taWxsaXNCDAoKX3NpZ25hbF9pZCIiCg9BdXRvU3luY1N0YXJ0ZWQSDwoHc2Vzc2lvbhgBIAEoCSImChNTdG9wQXV0b1N5bmNSZXF1ZXN0Eg8KB3Nlc3Npb24YASABKAkiIgoPQXV0b1N5bmNTdG9wcGVkEg8KB3Nlc3Npb24YASABKAkiqgEKDFdhdGNoUmVxdWVzdBIPCgdzZXNzaW9uGAEgASgJEhcKD3N1YnNjcmlwdGlvbl9pZBgCIAEoCRIpCgRraW5kGAMgASgOMhsubm9tb3MucnVudGltZS52Mi5XYXRjaEtpbmQSLAoFcXVlcnkYBCABKAsyHS5ub21vcy5rZXJuZWwudjEuUXVlcnlSZXF1ZXN0EhcKD2ludGVydmFsX21pbGxpcxgFIAEoDSInCgxXYXRjaFN0YXJ0ZWQSFwoPc3Vic2NyaXB0aW9uX2lkGAEgASgJIikKDlVud2F0Y2hSZXF1ZXN0EhcKD3N1YnNjcmlwdGlvbl9pZBgBIAEoCSInCgxXYXRjaFN0b3BwZWQSFwoPc3Vic2NyaXB0aW9uX2lkGAEgASgJInUKFFByZXBhcmVEb21haW5SZXF1ZXN0Eg8KB3Nlc3Npb24YASABKAkSDgoGZG9tYWluGAIgASgJEhYKDnBhY2thZ2Vfc2hhMjU2GAMgASgJEhYKCWRpcmVjdGl2ZRgEIAEoCUgAiAEBQgwKCl9kaXJlY3RpdmUiUgoORG9tYWluUHJlcGFyZWQSDgoGZG9tYWluGAEgASgJEhYKDnBhY2thZ2Vfc2hhMjU2GAIgASgJEhgKEGFscmVhZHlfcmVzaWRlbnQYAyABKAgi9gEKFU1vZGVsTGlmZWN5Y2xlUmVxdWVzdBIPCgdzZXNzaW9uGAEgASgJEj0KBXN0YWdlGAogASgLMiwubm9tb3MucnVudGltZS52Mi5TdGFnZUdlbmVyYXRlZE1vZGVsUmVxdWVzdEgAEj0KBWFkb3B0GAsgASgLMiwubm9tb3MucnVudGltZS52Mi5BZG9wdEdlbmVyYXRlZE1vZGVsUmVxdWVzdEgAEkEKB3Jlc3RvcmUYDCABKAsyLi5ub21vcy5ydW50aW1lLnYyLlJlc3RvcmVHZW5lcmF0ZWRNb2RlbFJlcXVlc3RIAEILCglvcGVyYXRpb24ihgEKGlN0YWdlR2VuZXJhdGVkTW9kZWxSZXF1ZXN0Eg4KBmRvbWFpbhgBIAEoCRIWCg5jYW5kaWRhdGVfaGFzaBgCIAEoCRIQCghsYXdfdXNkehgDIAEoDBIbCg5zb3VyY2Vfc2Vzc2lvbhgEIAEoCUgAiAEBQhEKD19zb3VyY2Vfc2Vzc2lvbiJ6ChpBZG9wdEdlbmVyYXRlZE1vZGVsUmVxdWVzdBIOCgZkb21haW4YASABKAkSFgoOY2FuZGlkYXRlX2hhc2gYAiABKAkSHgoRYWNjZXB0YW5jZV9yZWFzb24YAyABKAlIAIgBAUIUChJfYWNjZXB0YW5jZV9yZWFzb24iegocUmVzdG9yZUdlbmVyYXRlZE1vZGVsUmVxdWVzdBIOCgZkb21haW4YASABKAkSFAoMY3VycmVudF9oYXNoGAIgASgJEh4KEWFjY2VwdGFuY2VfcmVhc29uGAMgASgJSACIAQFCFAoSX2FjY2VwdGFuY2VfcmVhc29uIpMBCg9Nb2RlbERpZmZlcmVuY2USMwoEa2luZBgBIAEoDjIlLm5vbW9zLnJ1bnRpbWUudjIuTW9kZWxEaWZmZXJlbmNlS2luZBIRCgRhcmVhGAIgASgJSACIAQESEwoGYWN0aW9uGAMgASgJSAGIAQESDwoHc3VtbWFyeRgEIAEoCUIHCgVfYXJlYUIJCgdfYWN0aW9uIqUBCgtNb2RlbFJldmlldxIXCg9jaGVja2VkX2FjdGlvbnMYASABKAQSGQoRY2FuZGlkYXRlX2FjdGlvbnMYAiABKAQSGQoMc2FtZV9vdXRjb21lGAMgASgISACIAQESNgoLZGlmZmVyZW5jZXMYBCADKAsyIS5ub21vcy5ydW50aW1lLnYyLk1vZGVsRGlmZmVyZW5jZUIPCg1fc2FtZV9vdXRjb21lIoUCChZNb2RlbExpZmVjeWNsZVJlc3BvbnNlEhAKCGFjY2VwdGVkGAEgASgIEjQKBXN0YWdlGAIgASgOMiUubm9tb3MucnVudGltZS52Mi5Nb2RlbExpZmVjeWNsZVN0YWdlEhQKB21lc3NhZ2UYAyABKAlIAIgBARIRCgRoZWFkGAQgASgJSAGIAQESFwoKcmVjZWlwdF9pZBgFIAEoCUgCiAEBEjIKBnJldmlldxgGIAEoCzIdLm5vbW9zLnJ1bnRpbWUudjIuTW9kZWxSZXZpZXdIA4gBAUIKCghfbWVzc2FnZUIHCgVfaGVhZEINCgtfcmVjZWlwdF9pZEIJCgdfcmV2aWV3ImcKGlJlc29sdmVDdXN0b2R5QnJlYWtSZXF1ZXN0Eg8KB3Nlc3Npb24YASABKAkSOAoIZGVjaXNpb24YAiABKA4yJi5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlCcmVha0RlY2lzaW9uImEKFEN1c3RvZHlCcmVha1Jlc29sdmVkEg8KB3Nlc3Npb24YASABKAkSOAoIZGVjaXNpb24YAiABKA4yJi5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlCcmVha0RlY2lzaW9uIhMKEUNsb3NlUmVhbG1SZXF1ZXN0Ig0KC1JlYWxtQ2xvc2VkIuUBChFEZWFkTGV0dGVyUmVxdWVzdBIPCgdzZXNzaW9uGAEgASgJEjgKBGxpc3QYCiABKAsyKC5ub21vcy5ydW50aW1lLnYyLkxpc3REZWFkTGV0dGVyc1JlcXVlc3RIABI5CgVyZXRyeRgLIAEoCzIoLm5vbW9zLnJ1bnRpbWUudjIuUmV0cnlEZWFkTGV0dGVyUmVxdWVzdEgAEj0KB2Rpc2NhcmQYDCABKAsyKi5ub21vcy5ydW50aW1lLnYyLkRpc2NhcmREZWFkTGV0dGVyUmVxdWVzdEgAQgsKCW9wZXJhdGlvbiIYChZMaXN0RGVhZExldHRlcnNSZXF1ZXN0IisKFlJldHJ5RGVhZExldHRlclJlcXVlc3QSEQoJaW50ZW50X2lkGAEgASgJIi0KGERpc2NhcmREZWFkTGV0dGVyUmVxdWVzdBIRCglpbnRlbnRfaWQYASABKAkivQEKEkRlYWRMZXR0ZXJSZXNwb25zZRIwCgRsaXN0GAogASgLMiAubm9tb3MucnVudGltZS52Mi5EZWFkTGV0dGVyTGlzdEgAEjIKBXJldHJ5GAsgASgLMiEubm9tb3MucnVudGltZS52Mi5EZWFkTGV0dGVyUmV0cnlIABI2CgdkaXNjYXJkGAwgASgLMiMubm9tb3MucnVudGltZS52Mi5EZWFkTGV0dGVyRGlzY2FyZEgAQgkKB291dGNvbWUiRAoORGVhZExldHRlckxpc3QSMgoHZW50cmllcxgBIAMoCzIhLm5vbW9zLnJ1bnRpbWUudjIuRGVhZExldHRlckVudHJ5IrkBCg9EZWFkTGV0dGVyRW50cnkSDwoCaWQYASABKAlIAIgBARISCgpjb21taXRfb2lkGAIgASgJEg4KBnNvdXJjZRgDIAEoCRIPCgdtZXNzYWdlGAQgASgJEhMKBmRvbWFpbhgFIAEoCUgBiAEBEhYKCWRpcmVjdGl2ZRgGIAEoCUgCiAEBEhMKC3JlY29yZGVkX2F0GAcgASgJQgUKA19pZEIJCgdfZG9tYWluQgwKCl9kaXJlY3RpdmUieQoPRGVhZExldHRlclJldHJ5Eg8KB3JldHJpZWQYASABKAgSEQoEaGVhZBgCIAEoCUgAiAEBEhcKD2FscmVhZHlfb25fbWFpbhgDIAEoCBIUCgdtZXNzYWdlGAQgASgJSAGIAQFCBwoFX2hlYWRCCgoIX21lc3NhZ2UiJAoRRGVhZExldHRlckRpc2NhcmQSDwoHcmVtb3ZlZBgBIAEoBCLNBQoMUnVudGltZUV2ZW50EhAKCHNlcXVlbmNlGAEgASgEEhQKB3Nlc3Npb24YAiABKAlIAYgBARIvCgVyZWFkeRgKIAEoCzIeLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZVJlYWR5SAASNwoNd2F0Y2hfY2hhbmdlZBgLIAEoCzIeLm5vbW9zLnJ1bnRpbWUudjIuV2F0Y2hDaGFuZ2VkSAASOQoOc3luY19jb21wbGV0ZWQYDCABKAsyHy5ub21vcy5ydW50aW1lLnYyLlN5bmNDb21wbGV0ZWRIABI1CgxsaW5rX2NoYW5nZWQYDSABKAsyHS5ub21vcy5ydW50aW1lLnYyLkxpbmtDaGFuZ2VkSAASOQoOc2lnbmFsX2NoYW5nZWQYDiABKAsyHy5ub21vcy5ydW50aW1lLnYyLlNpZ25hbENoYW5nZWRIABI7Cg9jdXN0b2R5X2NoYW5nZWQYDyABKAsyIC5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlDaGFuZ2VkSAASQgoTbG9jYWxfd29ya19yZWplY3RlZBgQIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuTG9jYWxXb3JrUmVqZWN0ZWRIABIzCgtsYXdfY2hhbmdlZBgRIAEoCzIcLm5vbW9zLnJ1bnRpbWUudjIuTGF3Q2hhbmdlZEgAEkMKD2tlcm5lbF9wcm9ncmVzcxgSIAEoCzIoLm5vbW9zLnJ1bnRpbWUudjIuS2VybmVsUHJvZ3Jlc3NPYnNlcnZlZEgAEi0KBHNwYW4YEyABKAsyHS5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVTcGFuSAASPwoRdHJhbnNmZXJfcHJvZ3Jlc3MYFCABKAsyIi5ub21vcy5ydW50aW1lLnYyLlRyYW5zZmVyUHJvZ3Jlc3NIAEIHCgVldmVudEIKCghfc2Vzc2lvbiI+CgxSdW50aW1lUmVhZHkSFwoPcnVudGltZV92ZXJzaW9uGAEgASgJEhUKDWtlcm5lbF9zaGEyNTYYAiABKAwigAEKDFdhdGNoQ2hhbmdlZBIXCg9zdWJzY3JpcHRpb25faWQYASABKAkSEwoLcmVzdWx0X3VzZGEYAiABKAwSNgoHZmFpbHVyZRgDIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZUZhaWx1cmVIAIgBAUIKCghfZmFpbHVyZSKcAQoNU3luY0NvbXBsZXRlZBIOCgZyZWFzb24YASABKAkSNwoGcmVzdWx0GAIgASgLMicubm9tb3MucnVudGltZS52Mi5TeW5jV29ya3NwYWNlUmVzcG9uc2USNgoHZmFpbHVyZRgDIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZUZhaWx1cmVIAIgBAUIKCghfZmFpbHVyZSI7CgtMaW5rQ2hhbmdlZBIsCgZzdGF0dXMYASABKA4yHC5ub21vcy5ydW50aW1lLnYyLkxpbmtTdGF0dXMiOAoNU2lnbmFsQ2hhbmdlZBIOCgZkb21haW4YASABKAkSFwoPcHJvamVjdGlvbl91c2RhGAIgASgMIvQBCg5DdXN0b2R5Q2hhbmdlZBIxCgRraW5kGAEgASgOMiMubm9tb3MucnVudGltZS52Mi5DdXN0b2R5Q2hhbmdlS2luZBI1Cg1jdXN0b2R5X2JyZWFrGAIgASgLMh4ubm9tb3MucnVudGltZS52Mi5DdXN0b2R5QnJlYWsSFgoJb3BlcmF0aW9uGAMgASgJSACIAQESFQoIcmVjbG9uZWQYBCABKAhIAYgBARIbCg5wYXJrZWRfaW50ZW50cxgFIAEoBEgCiAEBQgwKCl9vcGVyYXRpb25CCwoJX3JlY2xvbmVkQhEKD19wYXJrZWRfaW50ZW50cyLhAQoRTG9jYWxXb3JrUmVqZWN0ZWQSEQoJd29ya3NwYWNlGAEgASgJEjYKB3JlZnVzZWQYAiADKAsyJS5ub21vcy5ydW50aW1lLnYyLlJlamVjdGVkTG9jYWxJbnRlbnQSDgoGcGFya2VkGAMgASgIEhUKCHJlc2V0X3RvGAQgASgJSACIAQESEQoJcmV0cnlhYmxlGAUgASgIEjoKBnNvdXJjZRgGIAEoDjIqLm5vbW9zLnJ1bnRpbWUudjIuTG9jYWxXb3JrUmVqZWN0aW9uU291cmNlQgsKCV9yZXNldF90byJjChNDdXN0b2R5U3VwZXJzZXNzaW9uEhoKDXN1cGVyc2VkZWRfYXQYASABKAlIAIgBARITCgZyZWFzb24YAiABKAlIAYgBAUIQCg5fc3VwZXJzZWRlZF9hdEIJCgdfcmVhc29uIrgCCgxDdXN0b2R5QnJlYWsSMAoEa2luZBgBIAEoDjIiLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUJyZWFrS2luZBIVCg1sb2NhbF9nZW5lc2lzGAIgASgJEhYKDnJlbW90ZV9nZW5lc2lzGAMgASgJEhoKEnJlbW90ZV9pbmNhcm5hdGlvbhgEIAEoCRJACgxzdXBlcnNlc3Npb24YBSABKAsyJS5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlTdXBlcnNlc3Npb25IAIgBARIaChJsb2NhbF9vbmx5X2ludGVudHMYBiABKAQSIgoVbGFzdF9zeW5jZWRfYXRfbWlsbGlzGAcgASgESAGIAQFCDwoNX3N1cGVyc2Vzc2lvbkIYChZfbGFzdF9zeW5jZWRfYXRfbWlsbGlzIs0BChNSZWplY3RlZExvY2FsSW50ZW50EhYKCWludGVudF9pZBgBIAEoCUgAiAEBEhcKCmNvbW1pdF9vaWQYAiABKAlIAYgBARITCgZkb21haW4YAyABKAlIAogBARIWCglkaXJlY3RpdmUYBCABKAlIA4gBARIPCgdtZXNzYWdlGAUgASgJEhEKCXJldHJ5YWJsZRgGIAEoCEIMCgpfaW50ZW50X2lkQg0KC19jb21taXRfb2lkQgkKB19kb21haW5CDAoKX2RpcmVjdGl2ZSJQCgpMYXdDaGFuZ2VkEg4KBmRvbWFpbhgBIAEoCRIWCg5wYWNrYWdlX3NoYTI1NhgCIAEoCRIaChJjb21wYXRpYmlsaXR5X3VzZGEYAyABKAwi3QEKC1J1bnRpbWVTcGFuEhAKCHRyYWNlX2lkGAEgASgMEg8KB3NwYW5faWQYAiABKAwSGwoOcGFyZW50X3NwYW5faWQYAyABKAxIAIgBARIMCgRuYW1lGAQgASgJEhoKEnN0YXJ0ZWRfdW5peF9uYW5vcxgFIAEoBBIWCg5kdXJhdGlvbl9uYW5vcxgGIAEoBBI5CgphdHRyaWJ1dGVzGAcgAygLMiUubm9tb3MucnVudGltZS52Mi5EaWFnbm9zdGljQXR0cmlidXRlQhEKD19wYXJlbnRfc3Bhbl9pZCLqAQoWS2VybmVsUHJvZ3Jlc3NPYnNlcnZlZBI5CghzbmFwc2hvdBgBIAEoCzInLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxQcm9ncmVzc1NuYXBzaG90EiQKHGhvc3Rfb2JzZXJ2ZWRfZWxhcHNlZF9taWNyb3MYAiABKAQSKgoiaG9zdF9vYnNlcnZlZF9waGFzZV9lbGFwc2VkX21pY3JvcxgDIAEoBBIeChZwcm9jZXNzX3Jlc2lkZW50X2J5dGVzGAQgASgEEiMKG3Byb2Nlc3NfcGVha19yZXNpZGVudF9ieXRlcxgFIAEoBCKCAQoQVHJhbnNmZXJQcm9ncmVzcxIWCg5yZWNlaXZlZF9ieXRlcxgBIAEoBBIYCgt0b3RhbF9ieXRlcxgCIAEoBEgAiAEBEiwKBGtpbmQYAyABKA4yHi5ub21vcy5ydW50aW1lLnYyLlRyYW5zZmVyS2luZEIOCgxfdG90YWxfYnl0ZXMqmQEKEkN1c3RvZHlCcmVha1BvbGljeRIkCiBDVVNUT0RZX0JSRUFLX1BPTElDWV9VTlNQRUNJRklFRBAAEhwKGENVU1RPRFlfQlJFQUtfUE9MSUNZX0FTSxABEh4KGkNVU1RPRFlfQlJFQUtfUE9MSUNZX0FET1BUEAISHwobQ1VTVE9EWV9CUkVBS19QT0xJQ1lfUkVKRUNUEAMqoAEKEldvcmtzcGFjZVJlc2lkZW5jeRIjCh9XT1JLU1BBQ0VfUkVTSURFTkNZX1VOU1BFQ0lGSUVEEAASHwobV09SS1NQQUNFX1JFU0lERU5DWV9NT1VOVEVEEAESHgoaV09SS1NQQUNFX1JFU0lERU5DWV9QQVJLRUQQAhIkCiBXT1JLU1BBQ0VfUkVTSURFTkNZX0NVU1RPRFlfT05MWRADKo0BChRXb3Jrc3BhY2VTeW5jUG9zdHVyZRImCiJXT1JLU1BBQ0VfU1lOQ19QT1NUVVJFX1VOU1BFQ0lGSUVEEAASJQohV09SS1NQQUNFX1NZTkNfUE9TVFVSRV9MT0NBTF9PTkxZEAESJgoiV09SS1NQQUNFX1NZTkNfUE9TVFVSRV9DTE9VRF9CT1VORBACKqgBCglXYXRjaEtpbmQSGgoWV0FUQ0hfS0lORF9VTlNQRUNJRklFRBAAEhQKEFdBVENIX0tJTkRfUVVFUlkQARIUChBXQVRDSF9LSU5EX0JZX0lEEAISFgoSV0FUQ0hfS0lORF9TUEFUSUFMEAMSFwoTV0FUQ0hfS0lORF9BQ1RJVklUWRAEIgQIBRAFKhxXQVRDSF9LSU5EX1BFTkRJTkdfQ09ORkxJQ1RTKqQDChNNb2RlbExpZmVjeWNsZVN0YWdlEiUKIU1PREVMX0xJRkVDWUNMRV9TVEFHRV9VTlNQRUNJRklFRBAAEisKJ01PREVMX0xJRkVDWUNMRV9TVEFHRV9JREVOVElUWV9SRVFVSVJFRBABEioKJk1PREVMX0xJRkVDWUNMRV9TVEFHRV9TVEFHSU5HX1JFUVVJUkVEEAISIwofTU9ERUxfTElGRUNZQ0xFX1NUQUdFX1BSRUZMSUdIVBADEi0KKU1PREVMX0xJRkVDWUNMRV9TVEFHRV9BQ0NFUFRBTkNFX1JFUVVJUkVEEAQSIwofTU9ERUxfTElGRUNZQ0xFX1NUQUdFX0FETUlTU0lPThAFEiEKHU1PREVMX0xJRkVDWUNMRV9TVEFHRV9QRU5ESU5HEAYSIgoeTU9ERUxfTElGRUNZQ0xFX1NUQUdFX1BST01PVEVEEAcSIgoeTU9ERUxfTElGRUNZQ0xFX1NUQUdFX1JFU1RPUkVEEAgSKQolTU9ERUxfTElGRUNZQ0xFX1NUQUdFX0FMUkVBRFlfQ1VSUkVOVBAJKqQBChNNb2RlbERpZmZlcmVuY2VLaW5kEiUKIU1PREVMX0RJRkZFUkVOQ0VfS0lORF9VTlNQRUNJRklFRBAAEh8KG01PREVMX0RJRkZFUkVOQ0VfS0lORF9SVUxFUxABEiEKHU1PREVMX0RJRkZFUkVOQ0VfS0lORF9PVVRDT01FEAISIgoeTU9ERUxfRElGRkVSRU5DRV9LSU5EX0VWSURFTkNFEAMqgwEKFEN1c3RvZHlCcmVha0RlY2lzaW9uEiYKIkNVU1RPRFlfQlJFQUtfREVDSVNJT05fVU5TUEVDSUZJRUQQABIgChxDVVNUT0RZX0JSRUFLX0RFQ0lTSU9OX0FET1BUEAESIQodQ1VTVE9EWV9CUkVBS19ERUNJU0lPTl9SRUpFQ1QQAipXCgpMaW5rU3RhdHVzEhsKF0xJTktfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFAoQTElOS19TVEFUVVNfT1BFThABEhYKEkxJTktfU1RBVFVTX0NMT1NFRBACKuIBChFDdXN0b2R5Q2hhbmdlS2luZBIjCh9DVVNUT0RZX0NIQU5HRV9LSU5EX1VOU1BFQ0lGSUVEEAASIAocQ1VTVE9EWV9DSEFOR0VfS0lORF9ERVRFQ1RFRBABEiAKHENVU1RPRFlfQ0hBTkdFX0tJTkRfUkVKRUNURUQQAhIgChxDVVNUT0RZX0NIQU5HRV9LSU5EX0FET1BUSU5HEAMSJQohQ1VTVE9EWV9DSEFOR0VfS0lORF9BRE9QVF9SRUZVU0VEEAQSGwoXQ1VTVE9EWV9DSEFOR0VfS0lORF9BU0sQBSp6ChBDdXN0b2R5QnJlYWtLaW5kEiIKHkNVU1RPRFlfQlJFQUtfS0lORF9VTlNQRUNJRklFRBAAEiEKHUNVU1RPRFlfQlJFQUtfS0lORF9TVVBFUlNFREVEEAESHwobQ1VTVE9EWV9CUkVBS19LSU5EX0RJVkVSR0VEEAIqmAEKGExvY2FsV29ya1JlamVjdGlvblNvdXJjZRIrCidMT0NBTF9XT1JLX1JFSkVDVElPTl9TT1VSQ0VfVU5TUEVDSUZJRUQQABIpCiVMT0NBTF9XT1JLX1JFSkVDVElPTl9TT1VSQ0VfQURNSVNTSU9OEAESJAogTE9DQUxfV09SS19SRUpFQ1RJT05fU09VUkNFX1NZTkMQAip2CgxUcmFuc2ZlcktpbmQSHQoZVFJBTlNGRVJfS0lORF9VTlNQRUNJRklFRBAAEhcKE1RSQU5TRkVSX0tJTkRfREVMVEEQARIWChJUUkFOU0ZFUl9LSU5EX0ZVTEwQAhIWChJUUkFOU0ZFUl9LSU5EX1BVU0gQAzJkChNOb21vc1J1bnRpbWVTZXJ2aWNlEk0KBkludm9rZRIgLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZVJlcXVlc3QaIS5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVSZXNwb25zZWIGcHJvdG8z", [file_nomos_kernel_v1_kernel, file_nomos_kernel_v1_progress]);
|
|
4136
|
+
var RuntimeBlockedSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 6);
|
|
4137
|
+
var WorkspaceResidencyRequiredSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 7);
|
|
4138
|
+
var SiblingResidencyRequiredSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 8);
|
|
4139
|
+
var SiblingResidenciesRequiredSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 9);
|
|
4140
|
+
var BornCustodySchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 11);
|
|
4141
|
+
var CustodyOfferBatchRequestSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 12);
|
|
4142
|
+
var CustodyOfferBatchResponseSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 16);
|
|
4143
|
+
var CustodyAdmissionSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 17);
|
|
4144
|
+
var CustodySessionAdmissionSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 18);
|
|
4145
|
+
var CustodyIntentAdmissionSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 19);
|
|
4146
|
+
var CustodyIntentAdmittedSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 20);
|
|
4147
|
+
var CustodyIntentSkippedSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 21);
|
|
4148
|
+
var CustodyIntentRefusedSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 22);
|
|
4149
|
+
var CustodyAdmissionTimingsSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 23);
|
|
4150
|
+
var CustodyAdmissionSpanSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 24);
|
|
4151
|
+
var RuntimeFailureSchema = /* @__PURE__ */ messageDesc3(file_nomos_runtime_v2_runtime, 26);
|
|
4152
|
+
|
|
4153
|
+
// ../adapter/custody-offer-transport.ts
|
|
4154
|
+
function record(value) {
|
|
4155
|
+
return value !== null && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
4156
|
+
}
|
|
4157
|
+
var bytesFromBase64 = (value) => Uint8Array.from(atob(value), (character) => character.charCodeAt(0));
|
|
4158
|
+
function birthOutcomeStatus(value) {
|
|
4159
|
+
switch (value) {
|
|
4160
|
+
case "born":
|
|
4161
|
+
return BirthOutcomeStatus.BORN;
|
|
4162
|
+
case "deferred":
|
|
4163
|
+
return BirthOutcomeStatus.DEFERRED;
|
|
4164
|
+
case "failed":
|
|
4165
|
+
return BirthOutcomeStatus.FAILED;
|
|
4166
|
+
case "refused":
|
|
4167
|
+
return BirthOutcomeStatus.REFUSED;
|
|
4168
|
+
case "unwarranted-cert":
|
|
4169
|
+
return BirthOutcomeStatus.UNWARRANTED_CERT;
|
|
4170
|
+
default:
|
|
4171
|
+
return BirthOutcomeStatus.UNSPECIFIED;
|
|
4172
|
+
}
|
|
4173
|
+
}
|
|
4174
|
+
function encodeCustodyOfferResponse(request, workspace, result) {
|
|
4175
|
+
const out = record(result);
|
|
4176
|
+
const respond = (outcome) => toBinary2(CustodyOfferBatchResponseSchema, create2(CustodyOfferBatchResponseSchema, {
|
|
4177
|
+
protocolVersion: 2,
|
|
4178
|
+
requestId: request.requestId,
|
|
4179
|
+
outcome
|
|
4180
|
+
}));
|
|
4181
|
+
const siblingRequired = Array.isArray(out.residencyRequired) ? out.residencyRequired.map(record) : [];
|
|
4182
|
+
const workspaceRequired = record(out.workspaceResidencyRequired);
|
|
4183
|
+
if (workspaceRequired.workspace) {
|
|
4184
|
+
return respond({
|
|
4185
|
+
case: "blocked",
|
|
4186
|
+
value: create2(RuntimeBlockedSchema, {
|
|
4187
|
+
reason: {
|
|
4188
|
+
case: "workspace",
|
|
4189
|
+
value: create2(WorkspaceResidencyRequiredSchema, { workspace: String(workspaceRequired.workspace) })
|
|
4190
|
+
}
|
|
4191
|
+
})
|
|
4192
|
+
});
|
|
4193
|
+
}
|
|
4194
|
+
if (siblingRequired.length > 0) {
|
|
4195
|
+
return respond({
|
|
4196
|
+
case: "blocked",
|
|
4197
|
+
value: create2(RuntimeBlockedSchema, {
|
|
4198
|
+
reason: {
|
|
4199
|
+
case: "siblings",
|
|
4200
|
+
value: create2(SiblingResidenciesRequiredSchema, {
|
|
4201
|
+
residencies: siblingRequired.map((required2) => create2(SiblingResidencyRequiredSchema, {
|
|
4202
|
+
workspace: String(required2.workspace ?? ""),
|
|
4203
|
+
sourceHead: String(required2.sourceHead ?? ""),
|
|
4204
|
+
foldRoot: String(required2.foldRoot ?? "")
|
|
4205
|
+
}))
|
|
4206
|
+
})
|
|
4207
|
+
}
|
|
4208
|
+
})
|
|
4209
|
+
});
|
|
4210
|
+
}
|
|
4211
|
+
if (out.ok === false) {
|
|
4212
|
+
return respond({
|
|
4213
|
+
case: "failure",
|
|
4214
|
+
value: create2(RuntimeFailureSchema, {
|
|
4215
|
+
code: "nomos.custody.offer_failed",
|
|
4216
|
+
message: String(out.error ?? "custody offer admission failed"),
|
|
4217
|
+
component: "nomos.cloud.container",
|
|
4218
|
+
workspace
|
|
4219
|
+
})
|
|
4220
|
+
});
|
|
4221
|
+
}
|
|
4222
|
+
const sessions = (Array.isArray(out.sessions) ? out.sessions : []).map(record);
|
|
4223
|
+
const sessionAdmissions = sessions.map((session) => {
|
|
4224
|
+
const admitted = (Array.isArray(session.admitted) ? session.admitted : []).map(record);
|
|
4225
|
+
const skipped = (Array.isArray(session.skipped) ? session.skipped : []).map(record);
|
|
4226
|
+
const rejected = (Array.isArray(session.rejected) ? session.rejected : []).map(record);
|
|
4227
|
+
return create2(CustodySessionAdmissionSchema, {
|
|
4228
|
+
session: String(session.session ?? ""),
|
|
4229
|
+
intents: [
|
|
4230
|
+
...admitted.map((entry) => create2(CustodyIntentAdmissionSchema, {
|
|
4231
|
+
commitOid: String(entry.oid ?? ""),
|
|
4232
|
+
intentId: typeof entry.intent === "string" ? entry.intent : void 0,
|
|
4233
|
+
outcome: {
|
|
4234
|
+
case: "admitted",
|
|
4235
|
+
value: create2(CustodyIntentAdmittedSchema, {
|
|
4236
|
+
head: String(entry.head ?? out.main ?? ""),
|
|
4237
|
+
created: (Array.isArray(entry.created) ? entry.created : []).map((value) => {
|
|
4238
|
+
const aggregate = record(value);
|
|
4239
|
+
return create2(OfferAggregateRefSchema, { type: String(aggregate.type ?? ""), id: String(aggregate.id ?? "") });
|
|
4240
|
+
}),
|
|
4241
|
+
affected: (Array.isArray(entry.affected) ? entry.affected : []).map((value) => {
|
|
4242
|
+
const aggregate = record(value);
|
|
4243
|
+
return create2(OfferAggregateRefSchema, { type: String(aggregate.type ?? ""), id: String(aggregate.id ?? "") });
|
|
4244
|
+
})
|
|
4245
|
+
})
|
|
4246
|
+
}
|
|
4247
|
+
})),
|
|
4248
|
+
...skipped.map((entry) => create2(CustodyIntentAdmissionSchema, {
|
|
4249
|
+
commitOid: String(entry.oid ?? ""),
|
|
4250
|
+
intentId: typeof entry.intent === "string" ? entry.intent : void 0,
|
|
4251
|
+
outcome: {
|
|
4252
|
+
case: "skipped",
|
|
4253
|
+
value: create2(CustodyIntentSkippedSchema, { alreadyOnMain: entry.alreadyOnMain === true })
|
|
4254
|
+
}
|
|
4255
|
+
})),
|
|
4256
|
+
...rejected.map((entry) => create2(CustodyIntentAdmissionSchema, {
|
|
4257
|
+
commitOid: String(entry.oid ?? ""),
|
|
4258
|
+
intentId: typeof entry.intent === "string" ? entry.intent : void 0,
|
|
4259
|
+
outcome: {
|
|
4260
|
+
case: "refused",
|
|
4261
|
+
value: create2(CustodyIntentRefusedSchema, {
|
|
4262
|
+
message: String(entry.error ?? entry.reason ?? "the law refused this offer"),
|
|
4263
|
+
deadLettered: entry.deadLettered === true,
|
|
4264
|
+
hint: typeof entry.hint === "string" ? entry.hint : void 0
|
|
4265
|
+
})
|
|
4266
|
+
}
|
|
4267
|
+
}))
|
|
4268
|
+
]
|
|
4269
|
+
});
|
|
4270
|
+
});
|
|
4271
|
+
const birthOutcomes = (Array.isArray(out.birthOutcomes) ? out.birthOutcomes : []).map((value) => {
|
|
4272
|
+
const outcome = record(value);
|
|
4273
|
+
return create2(BirthOutcomeSchema, {
|
|
4274
|
+
workspace: typeof outcome.workspace === "string" ? outcome.workspace : void 0,
|
|
4275
|
+
status: birthOutcomeStatus(outcome.status),
|
|
4276
|
+
reason: typeof outcome.reason === "string" ? outcome.reason : void 0,
|
|
4277
|
+
code: typeof outcome.code === "string" ? outcome.code : void 0,
|
|
4278
|
+
replayed: outcome.replayed === true,
|
|
4279
|
+
lawHash: typeof outcome.lawHash === "string" ? outcome.lawHash : void 0,
|
|
4280
|
+
parentWorkspace: typeof outcome.parentWorkspace === "string" ? outcome.parentWorkspace : void 0,
|
|
4281
|
+
childWorkspace: typeof outcome.childWorkspace === "string" ? outcome.childWorkspace : void 0,
|
|
4282
|
+
certificateRefusalReason: typeof outcome.certificateRefusalReason === "string" ? outcome.certificateRefusalReason : void 0
|
|
4283
|
+
});
|
|
4284
|
+
});
|
|
4285
|
+
const bornCustody = (Array.isArray(out.born) ? out.born : []).map((value) => {
|
|
4286
|
+
const born = record(value);
|
|
4287
|
+
return create2(BornCustodySchema, {
|
|
4288
|
+
child: create2(BornWorkspaceSchema, {
|
|
4289
|
+
workspace: String(born.workspace ?? ""),
|
|
4290
|
+
head: String(born.head ?? "")
|
|
4291
|
+
}),
|
|
4292
|
+
pack: typeof born.packB64 === "string" && born.packB64.length > 0 ? bytesFromBase64(born.packB64) : new Uint8Array()
|
|
4293
|
+
});
|
|
4294
|
+
});
|
|
4295
|
+
const timing = record(out.timings);
|
|
4296
|
+
const spans = (Array.isArray(timing.spans) ? timing.spans : []).map((value) => {
|
|
4297
|
+
const span = record(value);
|
|
4298
|
+
return create2(CustodyAdmissionSpanSchema, {
|
|
4299
|
+
id: String(span.id ?? ""),
|
|
4300
|
+
track: String(span.track ?? ""),
|
|
4301
|
+
name: String(span.name ?? ""),
|
|
4302
|
+
kind: String(span.kind ?? ""),
|
|
4303
|
+
depth: Number(span.depth ?? 0),
|
|
4304
|
+
startedUnixMillis: Number(span.t0 ?? 0),
|
|
4305
|
+
finishedUnixMillis: Number(span.t1 ?? span.t0 ?? 0)
|
|
4306
|
+
});
|
|
4307
|
+
});
|
|
4308
|
+
return respond({
|
|
4309
|
+
case: "admission",
|
|
4310
|
+
value: create2(CustodyAdmissionSchema, {
|
|
4311
|
+
main: String(out.main ?? ""),
|
|
4312
|
+
sealedMain: typeof out.sealedMain === "string" ? out.sealedMain : void 0,
|
|
4313
|
+
sessions: sessionAdmissions,
|
|
4314
|
+
birthOutcomes,
|
|
4315
|
+
bornCustody,
|
|
4316
|
+
resultPack: typeof out.resultPackB64 === "string" && out.resultPackB64.length > 0 ? bytesFromBase64(out.resultPackB64) : new Uint8Array(),
|
|
4317
|
+
resultBase: typeof out.resultBase === "string" ? out.resultBase : void 0,
|
|
4318
|
+
timings: create2(CustodyAdmissionTimingsSchema, {
|
|
4319
|
+
totalMillis: Number(timing.totalMs ?? 0),
|
|
4320
|
+
scanMillis: Number(timing.scanMs ?? 0),
|
|
4321
|
+
fetchMillis: Number(timing.fetchMs ?? 0),
|
|
4322
|
+
sealMillis: Number(timing.sealMs ?? 0),
|
|
4323
|
+
gateFoldMillis: Number(timing.gateFoldMs ?? 0),
|
|
4324
|
+
intentCount: Number(timing.intents ?? 0),
|
|
4325
|
+
sessionCount: Number(timing.sessions ?? sessionAdmissions.length),
|
|
4326
|
+
spans
|
|
4327
|
+
})
|
|
4328
|
+
})
|
|
4329
|
+
});
|
|
4330
|
+
}
|
|
4331
|
+
|
|
4332
|
+
// ../cloud/dev-server/server.ts
|
|
4333
|
+
init_custody_transport();
|
|
3057
4334
|
|
|
3058
4335
|
// ../runtime/osgi_repository.ts
|
|
3059
4336
|
import { XMLParser } from "fast-xml-parser";
|
|
@@ -3095,6 +4372,13 @@ function capabilityByNamespace(capabilities, namespace) {
|
|
|
3095
4372
|
}
|
|
3096
4373
|
return matches[0];
|
|
3097
4374
|
}
|
|
4375
|
+
function optionalCapabilityByNamespace(capabilities, namespace) {
|
|
4376
|
+
const matches = capabilities.filter((capability) => capability.namespace === namespace);
|
|
4377
|
+
if (matches.length > 1) {
|
|
4378
|
+
throw new Error(`OSGi resource needs at most one ${namespace} capability`);
|
|
4379
|
+
}
|
|
4380
|
+
return matches[0];
|
|
4381
|
+
}
|
|
3098
4382
|
function required(attributes2, name) {
|
|
3099
4383
|
const value = attributes2.get(name)?.value;
|
|
3100
4384
|
if (value === void 0 || value.length === 0) throw new Error(`OSGi capability has no ${name} attribute`);
|
|
@@ -3122,6 +4406,35 @@ function parseOsgiRepository(xml) {
|
|
|
3122
4406
|
const contentSize = Number(sizeText);
|
|
3123
4407
|
if (!Number.isSafeInteger(contentSize) || contentSize < 1) throw new Error("osgi.content size is invalid");
|
|
3124
4408
|
const contentMime = required(contentAttributes, "mime");
|
|
4409
|
+
const companion = optionalCapabilityByNamespace(capabilities, "nomos.kernel.companion");
|
|
4410
|
+
let stageZeroLaw;
|
|
4411
|
+
if (companion !== void 0) {
|
|
4412
|
+
const companionAttributes = attributes(companion);
|
|
4413
|
+
const companionKind = required(companionAttributes, "nomos.kernel.companion");
|
|
4414
|
+
const companionSha256 = required(companionAttributes, "osgi.content");
|
|
4415
|
+
const companionUrl = required(companionAttributes, "url");
|
|
4416
|
+
const companionSize = Number(required(companionAttributes, "size"));
|
|
4417
|
+
const companionMime = required(companionAttributes, "mime");
|
|
4418
|
+
if (companionKind !== "stage-zero-law") {
|
|
4419
|
+
throw new Error(`unsupported kernel companion ${companionKind}`);
|
|
4420
|
+
}
|
|
4421
|
+
if (!SHA256.test(companionSha256)) {
|
|
4422
|
+
throw new Error("kernel companion osgi.content is not a lowercase SHA-256");
|
|
4423
|
+
}
|
|
4424
|
+
if (!Number.isSafeInteger(companionSize) || companionSize < 1) {
|
|
4425
|
+
throw new Error("kernel companion size is invalid");
|
|
4426
|
+
}
|
|
4427
|
+
if (companionMime !== "model/vnd.usdz+zip") {
|
|
4428
|
+
throw new Error(`stage-zero law companion declares ${companionMime}`);
|
|
4429
|
+
}
|
|
4430
|
+
stageZeroLaw = {
|
|
4431
|
+
kind: "stage-zero-law",
|
|
4432
|
+
contentSha256: companionSha256,
|
|
4433
|
+
contentUrl: companionUrl,
|
|
4434
|
+
contentSize: companionSize,
|
|
4435
|
+
contentMime: "model/vnd.usdz+zip"
|
|
4436
|
+
};
|
|
4437
|
+
}
|
|
3125
4438
|
const contracts = capabilities.filter((capability) => capability.namespace === "osgi.contract").map((capability) => {
|
|
3126
4439
|
const values = attributes(capability);
|
|
3127
4440
|
const name = required(values, "osgi.contract");
|
|
@@ -3144,6 +4457,7 @@ function parseOsgiRepository(xml) {
|
|
|
3144
4457
|
contentUrl,
|
|
3145
4458
|
contentSize,
|
|
3146
4459
|
contentMime,
|
|
4460
|
+
...stageZeroLaw === void 0 ? {} : { stageZeroLaw },
|
|
3147
4461
|
contracts
|
|
3148
4462
|
};
|
|
3149
4463
|
});
|
|
@@ -3421,6 +4735,7 @@ init_types();
|
|
|
3421
4735
|
var DIR = path2.dirname(fileURLToPath(import.meta.url));
|
|
3422
4736
|
var REPO_ROOT = path2.resolve(DIR, "../..");
|
|
3423
4737
|
var MAX_TYPED_OFFER_REQUEST_BYTES = 8 * 1024 * 1024;
|
|
4738
|
+
var MAX_TYPED_CUSTODY_OFFER_BYTES = 64 * 1024 * 1024;
|
|
3424
4739
|
var RECOGNIZED_UNSUPPORTED = /* @__PURE__ */ new Set([
|
|
3425
4740
|
"container-status",
|
|
3426
4741
|
"recycle-container",
|
|
@@ -3618,12 +4933,22 @@ async function startDevCloud(opts = {}) {
|
|
|
3618
4933
|
console.log(`[dev-cloud] kernel : ${kernelKind} (from ${kernelSource})`);
|
|
3619
4934
|
const wasmModule = await WebAssembly.compile(wasmBytes);
|
|
3620
4935
|
const kernelSha = createHash2("sha256").update(wasmBytes).digest("hex");
|
|
4936
|
+
const bootstrapLawSha = createHash2("sha256").update(bootstrapLawUsdz).digest("hex");
|
|
3621
4937
|
const enc4 = new TextEncoder();
|
|
3622
4938
|
const replicaDigest = new Uint8Array(await crypto.subtle.digest("SHA-256", enc4.encode(`dev:${randomBytes(8).toString("hex")}`)));
|
|
3623
4939
|
let replica = 0n;
|
|
3624
4940
|
for (let i = 0; i < 8; i++) replica = replica << 8n | BigInt(replicaDigest[i]);
|
|
3625
4941
|
replica &= (1n << 63n) - 1n;
|
|
3626
4942
|
const eng = await createEngine({ wasmModule, bootstrapLawUsdz, nomosLawUsdz, replica, installedBy: "nomos-cloud-dev" });
|
|
4943
|
+
const restoredTestKRootPublic = String(process.env.NOMOS_TEST_K_ROOT_PUBLIC ?? "").trim();
|
|
4944
|
+
if (restoredTestKRootPublic) {
|
|
4945
|
+
const rootBytes = Buffer.from(restoredTestKRootPublic, "base64");
|
|
4946
|
+
if (rootBytes.byteLength !== 32) {
|
|
4947
|
+
throw new Error("NOMOS_TEST_K_ROOT_PUBLIC must be a base64-encoded 32-byte public key");
|
|
4948
|
+
}
|
|
4949
|
+
setTestKRoot(eng, restoredTestKRootPublic);
|
|
4950
|
+
console.log(`[dev-cloud] K_root : restored public test anchor ${restoredTestKRootPublic.slice(0, 16)}\u2026`);
|
|
4951
|
+
}
|
|
3627
4952
|
const custody = new FilesystemGitCustody(dataDir, origin);
|
|
3628
4953
|
const stagedBytes = /* @__PURE__ */ new Map();
|
|
3629
4954
|
const stageBucket = {
|
|
@@ -3825,9 +5150,9 @@ async function startDevCloud(opts = {}) {
|
|
|
3825
5150
|
if (pinnedKernel) {
|
|
3826
5151
|
const requested = pinnedKernel[1];
|
|
3827
5152
|
let selectedBytes = requested === kernelSha ? Buffer.from(wasmBytes) : null;
|
|
3828
|
-
if (requested === productionResource.contentSha256) {
|
|
5153
|
+
if (selectedBytes === null && requested === productionResource.contentSha256) {
|
|
3829
5154
|
selectedBytes = readFileSync2(path2.join(REPO_ROOT, "cloud/cloudflare-shell/vendor/holon_bytes.wasmbin"));
|
|
3830
|
-
} else if (requested === testMintResource.contentSha256) {
|
|
5155
|
+
} else if (selectedBytes === null && requested === testMintResource.contentSha256) {
|
|
3831
5156
|
selectedBytes = readFileSync2(path2.join(REPO_ROOT, "cloud/dev-server/kernel-testmint.wasm"));
|
|
3832
5157
|
}
|
|
3833
5158
|
if (selectedBytes === null || createHash2("sha256").update(selectedBytes).digest("hex") !== requested) {
|
|
@@ -3861,6 +5186,21 @@ async function startDevCloud(opts = {}) {
|
|
|
3861
5186
|
res.writeHead(200, { ...CORS, "content-type": "application/xml", "cache-control": "private, no-store" });
|
|
3862
5187
|
return res.end(readFileSync2(TEST_MINT_REPOSITORY_PATH));
|
|
3863
5188
|
}
|
|
5189
|
+
const pinnedBootstrapLaw = url.pathname.match(
|
|
5190
|
+
/^\/v1\/runtime\/laws\/([0-9a-f]{64})\/bootstrap\.law\.usdz$/
|
|
5191
|
+
);
|
|
5192
|
+
if (pinnedBootstrapLaw) {
|
|
5193
|
+
if (pinnedBootstrapLaw[1] !== bootstrapLawSha) {
|
|
5194
|
+
return sendJson(res, { ok: false, error: "stage-zero law artifact not found", requested: pinnedBootstrapLaw[1] }, 404);
|
|
5195
|
+
}
|
|
5196
|
+
res.writeHead(200, {
|
|
5197
|
+
...CORS,
|
|
5198
|
+
"content-type": "model/vnd.usdz+zip",
|
|
5199
|
+
"cache-control": "private, no-store",
|
|
5200
|
+
"x-nomos-stage-zero-law-sha": bootstrapLawSha
|
|
5201
|
+
});
|
|
5202
|
+
return res.end(bootstrapLawUsdz);
|
|
5203
|
+
}
|
|
3864
5204
|
if (url.pathname === "/v1/runtime/bootstrap.law.usdz") {
|
|
3865
5205
|
res.writeHead(200, { "content-type": "model/vnd.usdz+zip", "cache-control": "public, max-age=31536000, immutable" });
|
|
3866
5206
|
res.end(bootstrapLawUsdz);
|
|
@@ -3923,16 +5263,30 @@ async function startDevCloud(opts = {}) {
|
|
|
3923
5263
|
if (sub.length === 0 && req.method === "GET") {
|
|
3924
5264
|
return await serialize(async () => {
|
|
3925
5265
|
const ledger = ledgerFor(ws);
|
|
3926
|
-
let initialized = false, ledgerState = null;
|
|
5266
|
+
let initialized = false, ledgerState = null, mount = null;
|
|
3927
5267
|
if (custody.get(`holon-${ws}`)) {
|
|
3928
|
-
await mountWorkspace(eng, ws, ledger);
|
|
5268
|
+
mount = await mountWorkspace(eng, ws, ledger);
|
|
3929
5269
|
try {
|
|
3930
5270
|
initialized = nomosActive(eng, ws);
|
|
3931
5271
|
} catch {
|
|
3932
5272
|
}
|
|
3933
5273
|
ledgerState = await ledgerStats(eng, ws, ledger).catch(() => null);
|
|
3934
5274
|
}
|
|
3935
|
-
sendJson(res, {
|
|
5275
|
+
sendJson(res, {
|
|
5276
|
+
ok: true,
|
|
5277
|
+
ws,
|
|
5278
|
+
tier: "heavy",
|
|
5279
|
+
initialized,
|
|
5280
|
+
ledger: ledger.remote,
|
|
5281
|
+
ledgerState,
|
|
5282
|
+
kernelSha,
|
|
5283
|
+
mount: mount === null ? null : {
|
|
5284
|
+
restored: mount.restored,
|
|
5285
|
+
remoteMain: mount.remoteMain,
|
|
5286
|
+
restoreError: mount.restoreError,
|
|
5287
|
+
requiredResidencies: mount.requiredResidencies
|
|
5288
|
+
}
|
|
5289
|
+
});
|
|
3936
5290
|
});
|
|
3937
5291
|
}
|
|
3938
5292
|
if (sub[0] === "domains" && sub.length === 1) {
|
|
@@ -3966,34 +5320,52 @@ async function startDevCloud(opts = {}) {
|
|
|
3966
5320
|
}
|
|
3967
5321
|
if (sub[0] === "intent-offers" && req.method === "POST") {
|
|
3968
5322
|
return await serialize(async () => {
|
|
5323
|
+
const contentType = String(req.headers["content-type"] || "");
|
|
5324
|
+
if (!contentType.includes("application/vnd.nomos.custody-offer-batch+protobuf")) {
|
|
5325
|
+
return sendBytes(res, Buffer.from("custody offers require generated protobuf"), 415, { "content-type": "text/plain; charset=utf-8" });
|
|
5326
|
+
}
|
|
5327
|
+
const raw = await readBody(req);
|
|
5328
|
+
if (raw.byteLength === 0 || raw.byteLength > MAX_TYPED_CUSTODY_OFFER_BYTES) {
|
|
5329
|
+
return sendBytes(res, Buffer.from("typed custody offer must be 1..64 MiB"), 413, { "content-type": "text/plain; charset=utf-8" });
|
|
5330
|
+
}
|
|
5331
|
+
let request;
|
|
5332
|
+
try {
|
|
5333
|
+
request = fromBinary2(CustodyOfferBatchRequestSchema, new Uint8Array(raw));
|
|
5334
|
+
} catch (error) {
|
|
5335
|
+
return sendBytes(res, Buffer.from(`invalid custody offer protobuf: ${String(error).slice(0, 300)}`), 400, { "content-type": "text/plain; charset=utf-8" });
|
|
5336
|
+
}
|
|
5337
|
+
if (request.protocolVersion !== 2 || !request.requestId) {
|
|
5338
|
+
return sendBytes(res, Buffer.from("typed custody offer requires protocol version 2 and a request id"), 400, { "content-type": "text/plain; charset=utf-8" });
|
|
5339
|
+
}
|
|
3969
5340
|
if (!custody.get(`holon-${ws}`)) {
|
|
3970
|
-
|
|
5341
|
+
return sendBytes(res, encodeCustodyOfferResponse(request, ws, {
|
|
3971
5342
|
ok: false,
|
|
3972
|
-
retryable: true,
|
|
3973
|
-
ws,
|
|
3974
5343
|
error: `custody-provisioning: workspace '${ws}' is awaiting its parent birth; Nomos will retry automatically`
|
|
3975
|
-
}, 409);
|
|
3976
|
-
return;
|
|
5344
|
+
}), 409, { "content-type": "application/vnd.nomos.custody-offer-result+protobuf" });
|
|
3977
5345
|
}
|
|
3978
5346
|
const ledger = ledgerFor(ws);
|
|
3979
5347
|
await mountWorkspace(eng, ws, ledger);
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
5348
|
+
let out;
|
|
5349
|
+
if (request.source.case === "inline") {
|
|
5350
|
+
if (request.source.value.offers.length === 0 || request.source.value.offers.length > 100) {
|
|
5351
|
+
return sendBytes(res, Buffer.from("typed custody offer must carry 1..100 inline offers"), 400, { "content-type": "text/plain; charset=utf-8" });
|
|
5352
|
+
}
|
|
5353
|
+
out = await admitIntentOffers(eng, ws, ledger, request.source.value.offers.map((offer) => ({
|
|
5354
|
+
session: offer.session,
|
|
5355
|
+
oid: offer.commitOid,
|
|
5356
|
+
changeBytes: offer.changeUsda
|
|
5357
|
+
})), { ...request.baseHead ? { clientBase: request.baseHead } : {} });
|
|
5358
|
+
} else if (request.source.case === "sessionCandidate") {
|
|
5359
|
+
if (!/^refs\/heads\/session\/[A-Za-z0-9._/-]+$/.test(request.source.value.reference)) {
|
|
5360
|
+
return sendBytes(res, Buffer.from("typed custody candidate named an invalid session reference"), 400, { "content-type": "text/plain; charset=utf-8" });
|
|
5361
|
+
}
|
|
5362
|
+
out = await admitAll(eng, ws, ledger);
|
|
5363
|
+
} else {
|
|
5364
|
+
return sendBytes(res, Buffer.from("typed custody offer has no source"), 400, { "content-type": "text/plain; charset=utf-8" });
|
|
5365
|
+
}
|
|
3985
5366
|
if (Array.isArray(out.born) && out.born.length) await persistBorn(out.born);
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
ok: true,
|
|
3989
|
-
ws,
|
|
3990
|
-
sessions: out.sessions,
|
|
3991
|
-
main: out.main,
|
|
3992
|
-
...bornOut ? { born: bornOut } : {},
|
|
3993
|
-
...out.birthOutcomes ? { birthOutcomes: out.birthOutcomes } : {},
|
|
3994
|
-
...out.mainDelta ? { mainDelta: out.mainDelta } : {},
|
|
3995
|
-
...out.resultPackB64 ? { resultPackB64: out.resultPackB64, resultBase: out.resultBase } : {},
|
|
3996
|
-
...out.deadLetters && out.deadLetters.length ? { deadLetters: out.deadLetters.map(({ blob, ...m }) => m) } : {}
|
|
5367
|
+
sendBytes(res, encodeCustodyOfferResponse(request, ws, out), 200, {
|
|
5368
|
+
"content-type": "application/vnd.nomos.custody-offer-result+protobuf"
|
|
3997
5369
|
});
|
|
3998
5370
|
});
|
|
3999
5371
|
}
|
|
@@ -4194,8 +5566,6 @@ async function startDevCloud(opts = {}) {
|
|
|
4194
5566
|
if (x.kind === "sum") return sendJson(res, { ok: true, ws, ...sum(eng, ws, x.sumId, group, principal) });
|
|
4195
5567
|
if (x.kind === "extremum") return sendJson(res, { ok: true, ws, ...extremum(eng, ws, x.extremumId, x.extremumKind || url.searchParams.get("kind") || "", group, principal) });
|
|
4196
5568
|
if (x.kind === "spatial") return sendJson(res, { ok: true, ws, ...spatialWithin(eng, ws, x.spatialId, url.searchParams.get("bbox") || {}, principal) });
|
|
4197
|
-
if (x.kind === "pendingConflicts") return sendJson(res, { ok: true, ws, rows: pendingConflicts(eng, ws, principal, url.searchParams.get("aggregateType") || "") });
|
|
4198
|
-
if (x.kind === "pendingConflictSummary") return sendJson(res, { ok: true, ws, ...pendingConflictSummary(eng, ws, principal) });
|
|
4199
5569
|
} catch (e) {
|
|
4200
5570
|
return sendJson(res, { ok: false, error: errMsg(e).slice(0, 600) }, 403);
|
|
4201
5571
|
}
|