@githolon/dsl 0.108.0 → 0.108.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dart/CHANGELOG.md +5 -0
- package/dart/lib/src/application_framework_calls.dart +299 -0
- package/dart/lib/src/generated_call.dart +96 -0
- package/dart/lib/src/nms_generated_runtime.dart +29 -0
- package/dart/lib/src/node_runner_transport.dart +77 -1
- package/dart/lib/src/result_usda.dart +487 -0
- package/dart/lib/src/runner/node-entry.mjs +6401 -2102
- package/dart/lib/src/runner/offline-install.mjs +1538 -163
- package/dart/lib/src/runtime_v2_gateway.dart +54 -0
- package/dart/lib/src/runtime_v2_transport.dart +117 -0
- package/dart/lib/src/session_bound.dart +7 -2
- package/dart/lib/src/test_harness.dart +193 -112
- package/dart/lib/src/webview_bridge.dart +2120 -569
- package/dart/pubspec.yaml +2 -2
- package/dart/test/acquire_session_credentials_test.dart +1 -1
- package/dart/test/acquire_session_test.dart +68 -14
- package/dart/test/adv_realm_interference_test.dart +6 -4
- package/dart/test/cluster_births_test.dart +11 -8
- package/dart/test/cluster_local_autosync_test.dart +1 -1
- package/dart/test/cluster_scale_test.dart +3 -2
- package/dart/test/dlq_session_surface_test.dart +52 -35
- package/dart/test/first_app_gauntlet_test.dart +1 -1
- package/dart/test/local_sync_inert_test.dart +23 -26
- package/dart/test/offer_authentication_proof_test.dart +193 -0
- package/dart/test/result_usda_test.dart +49 -0
- package/dart/test/session_bound_test.dart +8 -11
- package/dart/test/stale_bundle_test.dart +18 -3
- package/dart/test/test_harness_test.dart +14 -27
- package/dart/test/webview_bridge_test.dart +504 -83
- package/dart_types/CHANGELOG.md +7 -0
- package/dart_types/lib/nomos_kernel_protocol.dart +3 -2
- package/dart_types/lib/src/custody.dart +64 -19
- package/dart_types/lib/src/local_work_rejected.dart +30 -45
- package/dart_types/lib/src/proto/nomos/custody/v1/snapshot.pb.dart +169 -0
- package/dart_types/lib/src/proto/nomos/custody/v1/snapshot.pbenum.dart +11 -0
- package/dart_types/lib/src/proto/nomos/kernel/v1/kernel.pb.dart +2021 -234
- package/dart_types/lib/src/proto/nomos/kernel/v1/kernel.pbenum.dart +175 -8
- package/dart_types/lib/src/proto/nomos/runtime/v2/runtime.pb.dart +8664 -0
- package/dart_types/lib/src/proto/nomos/runtime/v2/runtime.pbenum.dart +369 -0
- package/dart_types/lib/src/surfaced.dart +30 -25
- package/dart_types/pubspec.yaml +1 -1
- package/dart_types/test/surfaced_test.dart +2 -1
- package/package.json +1 -1
- package/runtime/generated-application-host.js +5736 -2047
- package/src/authoring.ts +3 -2
- package/src/births.ts +21 -0
- package/src/build_package.ts +30 -0
- package/src/business_birth.ts +39 -35
- package/src/codegen_call_usda.ts +1111 -0
- package/src/codegen_dart.ts +207 -282
- package/src/codegen_dart_application.ts +195 -252
- package/src/codegen_dart_client.ts +1978 -593
- package/src/codegen_dart_framework_calls.ts +291 -0
- package/src/codegen_dart_scenario.ts +7 -0
- package/src/codegen_proof.ts +3 -4
- package/src/codegen_provider_dart.ts +21 -7
- package/src/codegen_query_usda.ts +214 -0
- package/src/codegen_result_usda.ts +685 -0
- package/src/codegen_ts.ts +3945 -1111
- package/src/compile_package_main.ts +360 -32
- package/src/directive.ts +19 -4
- package/src/engine_entry.ts +45 -4
- package/src/framework/application_home.ts +2 -0
- package/src/framework/auth_provider_law.ts +262 -20
- package/src/framework/home.ts +32 -28
- package/src/framework/owned_custody.ts +19 -11
- package/src/framework/owned_custody_value.ts +51 -0
- package/src/framework/relations.ts +47 -21
- package/src/framework/signing_identity.ts +34 -0
- package/src/framework/workspaces.ts +31 -9
- package/src/framework_call_definitions.ts +53 -0
- package/src/framework_read_definitions.ts +45 -0
- package/src/identity_frontier.ts +58 -0
- package/src/index.ts +20 -1
- package/src/intent.ts +216 -16
- package/src/law_check.ts +19 -1
- package/src/law_graph.ts +57 -8
- package/src/law_graph_usda.ts +73 -5
- package/src/law_value_type.ts +106 -19
- package/src/read.ts +47 -0
- package/src/read_projection_namespace.ts +7 -0
- package/src/shape_compat.ts +38 -39
- package/src/stable_ids.ts +37 -2
- package/src/test_call_usda.ts +83 -0
- package/src/wire.ts +36 -2
- package/src/wire_encode.ts +45 -1
- package/src/workspace_sharing.ts +27 -10
- package/dart_types/lib/src/proto/nomos/kernel/v1/kernel.pbjson.dart +0 -6096
- package/dart_types/lib/src/proto/nomos/kernel/v1/kernel.pbserver.dart +0 -50
- package/dart_types/lib/src/proto/nomos/kernel/v1/progress.pbjson.dart +0 -178
- package/dart_types/lib/src/proto/nomos/runtime/v1/runtime.pb.dart +0 -828
- package/dart_types/lib/src/proto/nomos/runtime/v1/runtime.pbenum.dart +0 -465
- package/dart_types/lib/src/proto/nomos/runtime/v1/runtime.pbjson.dart +0 -573
- package/dart_types/lib/src/proto/nomos/runtime/v1/runtime.pbserver.dart +0 -50
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
// This is a generated file - do not edit.
|
|
2
|
-
//
|
|
3
|
-
// Generated from nomos/kernel/v1/kernel.proto.
|
|
4
|
-
|
|
5
|
-
// @dart = 3.3
|
|
6
|
-
|
|
7
|
-
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
|
8
|
-
// ignore_for_file: constant_identifier_names
|
|
9
|
-
// ignore_for_file: curly_braces_in_flow_control_structures
|
|
10
|
-
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
|
11
|
-
// ignore_for_file: non_constant_identifier_names
|
|
12
|
-
|
|
13
|
-
import 'dart:async' as $async;
|
|
14
|
-
import 'dart:core' as $core;
|
|
15
|
-
|
|
16
|
-
import 'package:protobuf/protobuf.dart' as $pb;
|
|
17
|
-
|
|
18
|
-
import 'kernel.pb.dart' as $0;
|
|
19
|
-
import 'kernel.pbjson.dart';
|
|
20
|
-
|
|
21
|
-
export 'kernel.pb.dart';
|
|
22
|
-
|
|
23
|
-
abstract class NomosKernelServiceBase extends $pb.GeneratedService {
|
|
24
|
-
$async.Future<$0.CallResponse> call(
|
|
25
|
-
$pb.ServerContext ctx, $0.CallRequest request);
|
|
26
|
-
|
|
27
|
-
$pb.GeneratedMessage createRequest($core.String methodName) {
|
|
28
|
-
switch (methodName) {
|
|
29
|
-
case 'Call':
|
|
30
|
-
return $0.CallRequest();
|
|
31
|
-
default:
|
|
32
|
-
throw $core.ArgumentError('Unknown method: $methodName');
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
$async.Future<$pb.GeneratedMessage> handleCall($pb.ServerContext ctx,
|
|
37
|
-
$core.String methodName, $pb.GeneratedMessage request) {
|
|
38
|
-
switch (methodName) {
|
|
39
|
-
case 'Call':
|
|
40
|
-
return call(ctx, request as $0.CallRequest);
|
|
41
|
-
default:
|
|
42
|
-
throw $core.ArgumentError('Unknown method: $methodName');
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
$core.Map<$core.String, $core.dynamic> get $json =>
|
|
47
|
-
NomosKernelServiceBase$json;
|
|
48
|
-
$core.Map<$core.String, $core.Map<$core.String, $core.dynamic>>
|
|
49
|
-
get $messageJson => NomosKernelServiceBase$messageJson;
|
|
50
|
-
}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
// This is a generated file - do not edit.
|
|
2
|
-
//
|
|
3
|
-
// Generated from nomos/kernel/v1/progress.proto.
|
|
4
|
-
|
|
5
|
-
// @dart = 3.3
|
|
6
|
-
|
|
7
|
-
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
|
8
|
-
// ignore_for_file: constant_identifier_names
|
|
9
|
-
// ignore_for_file: curly_braces_in_flow_control_structures
|
|
10
|
-
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
|
11
|
-
// ignore_for_file: non_constant_identifier_names, unused_import
|
|
12
|
-
|
|
13
|
-
import 'dart:convert' as $convert;
|
|
14
|
-
import 'dart:core' as $core;
|
|
15
|
-
import 'dart:typed_data' as $typed_data;
|
|
16
|
-
|
|
17
|
-
@$core.Deprecated('Use kernelProgressOperationDescriptor instead')
|
|
18
|
-
const KernelProgressOperation$json = {
|
|
19
|
-
'1': 'KernelProgressOperation',
|
|
20
|
-
'2': [
|
|
21
|
-
{'1': 'KERNEL_PROGRESS_OPERATION_UNSPECIFIED', '2': 0},
|
|
22
|
-
{'1': 'KERNEL_PROGRESS_OPERATION_RESTORE_MAIN', '2': 1},
|
|
23
|
-
],
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
/// Descriptor for `KernelProgressOperation`. Decode as a `google.protobuf.EnumDescriptorProto`.
|
|
27
|
-
final $typed_data.Uint8List kernelProgressOperationDescriptor = $convert.base64Decode(
|
|
28
|
-
'ChdLZXJuZWxQcm9ncmVzc09wZXJhdGlvbhIpCiVLRVJORUxfUFJPR1JFU1NfT1BFUkFUSU9OX1'
|
|
29
|
-
'VOU1BFQ0lGSUVEEAASKgomS0VSTkVMX1BST0dSRVNTX09QRVJBVElPTl9SRVNUT1JFX01BSU4Q'
|
|
30
|
-
'AQ==');
|
|
31
|
-
|
|
32
|
-
@$core.Deprecated('Use kernelProgressPhaseDescriptor instead')
|
|
33
|
-
const KernelProgressPhase$json = {
|
|
34
|
-
'1': 'KernelProgressPhase',
|
|
35
|
-
'2': [
|
|
36
|
-
{'1': 'KERNEL_PROGRESS_PHASE_UNSPECIFIED', '2': 0},
|
|
37
|
-
{'1': 'KERNEL_PROGRESS_PHASE_CHECK_CUSTODY', '2': 1},
|
|
38
|
-
{'1': 'KERNEL_PROGRESS_PHASE_READ_CHAIN', '2': 2},
|
|
39
|
-
{'1': 'KERNEL_PROGRESS_PHASE_INITIALIZE_ENGINE', '2': 3},
|
|
40
|
-
{'1': 'KERNEL_PROGRESS_PHASE_READ_TIMELINE', '2': 4},
|
|
41
|
-
{'1': 'KERNEL_PROGRESS_PHASE_HYDRATE_LAW', '2': 5},
|
|
42
|
-
{'1': 'KERNEL_PROGRESS_PHASE_RECOVERY_PRESCAN', '2': 6},
|
|
43
|
-
{'1': 'KERNEL_PROGRESS_PHASE_VERIFY_INTENTS', '2': 7},
|
|
44
|
-
{'1': 'KERNEL_PROGRESS_PHASE_PROMOTE_CUSTODY', '2': 8},
|
|
45
|
-
{'1': 'KERNEL_PROGRESS_PHASE_REBUILD_FRONTIER', '2': 9},
|
|
46
|
-
{'1': 'KERNEL_PROGRESS_PHASE_COMPLETE', '2': 10},
|
|
47
|
-
],
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
/// Descriptor for `KernelProgressPhase`. Decode as a `google.protobuf.EnumDescriptorProto`.
|
|
51
|
-
final $typed_data.Uint8List kernelProgressPhaseDescriptor = $convert.base64Decode(
|
|
52
|
-
'ChNLZXJuZWxQcm9ncmVzc1BoYXNlEiUKIUtFUk5FTF9QUk9HUkVTU19QSEFTRV9VTlNQRUNJRk'
|
|
53
|
-
'lFRBAAEicKI0tFUk5FTF9QUk9HUkVTU19QSEFTRV9DSEVDS19DVVNUT0RZEAESJAogS0VSTkVM'
|
|
54
|
-
'X1BST0dSRVNTX1BIQVNFX1JFQURfQ0hBSU4QAhIrCidLRVJORUxfUFJPR1JFU1NfUEhBU0VfSU'
|
|
55
|
-
'5JVElBTElaRV9FTkdJTkUQAxInCiNLRVJORUxfUFJPR1JFU1NfUEhBU0VfUkVBRF9USU1FTElO'
|
|
56
|
-
'RRAEEiUKIUtFUk5FTF9QUk9HUkVTU19QSEFTRV9IWURSQVRFX0xBVxAFEioKJktFUk5FTF9QUk'
|
|
57
|
-
'9HUkVTU19QSEFTRV9SRUNPVkVSWV9QUkVTQ0FOEAYSKAokS0VSTkVMX1BST0dSRVNTX1BIQVNF'
|
|
58
|
-
'X1ZFUklGWV9JTlRFTlRTEAcSKQolS0VSTkVMX1BST0dSRVNTX1BIQVNFX1BST01PVEVfQ1VTVE'
|
|
59
|
-
'9EWRAIEioKJktFUk5FTF9QUk9HUkVTU19QSEFTRV9SRUJVSUxEX0ZST05USUVSEAkSIgoeS0VS'
|
|
60
|
-
'TkVMX1BST0dSRVNTX1BIQVNFX0NPTVBMRVRFEAo=');
|
|
61
|
-
|
|
62
|
-
@$core.Deprecated('Use kernelProgressUnitDescriptor instead')
|
|
63
|
-
const KernelProgressUnit$json = {
|
|
64
|
-
'1': 'KernelProgressUnit',
|
|
65
|
-
'2': [
|
|
66
|
-
{'1': 'KERNEL_PROGRESS_UNIT_UNSPECIFIED', '2': 0},
|
|
67
|
-
{'1': 'KERNEL_PROGRESS_UNIT_INTENT', '2': 1},
|
|
68
|
-
{'1': 'KERNEL_PROGRESS_UNIT_LAW_PACKAGE', '2': 2},
|
|
69
|
-
],
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
/// Descriptor for `KernelProgressUnit`. Decode as a `google.protobuf.EnumDescriptorProto`.
|
|
73
|
-
final $typed_data.Uint8List kernelProgressUnitDescriptor = $convert.base64Decode(
|
|
74
|
-
'ChJLZXJuZWxQcm9ncmVzc1VuaXQSJAogS0VSTkVMX1BST0dSRVNTX1VOSVRfVU5TUEVDSUZJRU'
|
|
75
|
-
'QQABIfChtLRVJORUxfUFJPR1JFU1NfVU5JVF9JTlRFTlQQARIkCiBLRVJORUxfUFJPR1JFU1Nf'
|
|
76
|
-
'VU5JVF9MQVdfUEFDS0FHRRAC');
|
|
77
|
-
|
|
78
|
-
@$core.Deprecated('Use kernelLawHydrationStepDescriptor instead')
|
|
79
|
-
const KernelLawHydrationStep$json = {
|
|
80
|
-
'1': 'KernelLawHydrationStep',
|
|
81
|
-
'2': [
|
|
82
|
-
{'1': 'KERNEL_LAW_HYDRATION_STEP_UNSPECIFIED', '2': 0},
|
|
83
|
-
{'1': 'KERNEL_LAW_HYDRATION_STEP_READ_CLOSURE', '2': 1},
|
|
84
|
-
{'1': 'KERNEL_LAW_HYDRATION_STEP_COMPOSE_STAGE', '2': 2},
|
|
85
|
-
{'1': 'KERNEL_LAW_HYDRATION_STEP_DERIVE_SCHEMAS', '2': 3},
|
|
86
|
-
{'1': 'KERNEL_LAW_HYDRATION_STEP_LOAD_POLICY_SHELL', '2': 4},
|
|
87
|
-
{'1': 'KERNEL_LAW_HYDRATION_STEP_PACKAGE_COMPLETE', '2': 5},
|
|
88
|
-
],
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
/// Descriptor for `KernelLawHydrationStep`. Decode as a `google.protobuf.EnumDescriptorProto`.
|
|
92
|
-
final $typed_data.Uint8List kernelLawHydrationStepDescriptor = $convert.base64Decode(
|
|
93
|
-
'ChZLZXJuZWxMYXdIeWRyYXRpb25TdGVwEikKJUtFUk5FTF9MQVdfSFlEUkFUSU9OX1NURVBfVU'
|
|
94
|
-
'5TUEVDSUZJRUQQABIqCiZLRVJORUxfTEFXX0hZRFJBVElPTl9TVEVQX1JFQURfQ0xPU1VSRRAB'
|
|
95
|
-
'EisKJ0tFUk5FTF9MQVdfSFlEUkFUSU9OX1NURVBfQ09NUE9TRV9TVEFHRRACEiwKKEtFUk5FTF'
|
|
96
|
-
'9MQVdfSFlEUkFUSU9OX1NURVBfREVSSVZFX1NDSEVNQVMQAxIvCitLRVJORUxfTEFXX0hZRFJB'
|
|
97
|
-
'VElPTl9TVEVQX0xPQURfUE9MSUNZX1NIRUxMEAQSLgoqS0VSTkVMX0xBV19IWURSQVRJT05fU1'
|
|
98
|
-
'RFUF9QQUNLQUdFX0NPTVBMRVRFEAU=');
|
|
99
|
-
|
|
100
|
-
@$core.Deprecated('Use kernelProgressSnapshotDescriptor instead')
|
|
101
|
-
const KernelProgressSnapshot$json = {
|
|
102
|
-
'1': 'KernelProgressSnapshot',
|
|
103
|
-
'2': [
|
|
104
|
-
{'1': 'schema_version', '3': 1, '4': 1, '5': 13, '10': 'schemaVersion'},
|
|
105
|
-
{'1': 'sequence', '3': 2, '4': 1, '5': 4, '10': 'sequence'},
|
|
106
|
-
{
|
|
107
|
-
'1': 'operation',
|
|
108
|
-
'3': 3,
|
|
109
|
-
'4': 1,
|
|
110
|
-
'5': 14,
|
|
111
|
-
'6': '.nomos.kernel.v1.KernelProgressOperation',
|
|
112
|
-
'10': 'operation'
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
'1': 'phase',
|
|
116
|
-
'3': 4,
|
|
117
|
-
'4': 1,
|
|
118
|
-
'5': 14,
|
|
119
|
-
'6': '.nomos.kernel.v1.KernelProgressPhase',
|
|
120
|
-
'10': 'phase'
|
|
121
|
-
},
|
|
122
|
-
{'1': 'completed_units', '3': 5, '4': 1, '5': 4, '10': 'completedUnits'},
|
|
123
|
-
{'1': 'total_units', '3': 6, '4': 1, '5': 4, '10': 'totalUnits'},
|
|
124
|
-
{
|
|
125
|
-
'1': 'unit',
|
|
126
|
-
'3': 7,
|
|
127
|
-
'4': 1,
|
|
128
|
-
'5': 14,
|
|
129
|
-
'6': '.nomos.kernel.v1.KernelProgressUnit',
|
|
130
|
-
'10': 'unit'
|
|
131
|
-
},
|
|
132
|
-
{'1': 'terminal', '3': 8, '4': 1, '5': 8, '10': 'terminal'},
|
|
133
|
-
{
|
|
134
|
-
'1': 'allocator_live_bytes',
|
|
135
|
-
'3': 9,
|
|
136
|
-
'4': 1,
|
|
137
|
-
'5': 4,
|
|
138
|
-
'10': 'allocatorLiveBytes'
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
'1': 'allocator_peak_bytes',
|
|
142
|
-
'3': 10,
|
|
143
|
-
'4': 1,
|
|
144
|
-
'5': 4,
|
|
145
|
-
'10': 'allocatorPeakBytes'
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
'1': 'law_hydration_step',
|
|
149
|
-
'3': 11,
|
|
150
|
-
'4': 1,
|
|
151
|
-
'5': 14,
|
|
152
|
-
'6': '.nomos.kernel.v1.KernelLawHydrationStep',
|
|
153
|
-
'10': 'lawHydrationStep'
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
'1': 'law_package_sha256',
|
|
157
|
-
'3': 12,
|
|
158
|
-
'4': 1,
|
|
159
|
-
'5': 9,
|
|
160
|
-
'10': 'lawPackageSha256'
|
|
161
|
-
},
|
|
162
|
-
],
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
/// Descriptor for `KernelProgressSnapshot`. Decode as a `google.protobuf.DescriptorProto`.
|
|
166
|
-
final $typed_data.Uint8List kernelProgressSnapshotDescriptor = $convert.base64Decode(
|
|
167
|
-
'ChZLZXJuZWxQcm9ncmVzc1NuYXBzaG90EiUKDnNjaGVtYV92ZXJzaW9uGAEgASgNUg1zY2hlbW'
|
|
168
|
-
'FWZXJzaW9uEhoKCHNlcXVlbmNlGAIgASgEUghzZXF1ZW5jZRJGCglvcGVyYXRpb24YAyABKA4y'
|
|
169
|
-
'KC5ub21vcy5rZXJuZWwudjEuS2VybmVsUHJvZ3Jlc3NPcGVyYXRpb25SCW9wZXJhdGlvbhI6Cg'
|
|
170
|
-
'VwaGFzZRgEIAEoDjIkLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxQcm9ncmVzc1BoYXNlUgVwaGFz'
|
|
171
|
-
'ZRInCg9jb21wbGV0ZWRfdW5pdHMYBSABKARSDmNvbXBsZXRlZFVuaXRzEh8KC3RvdGFsX3VuaX'
|
|
172
|
-
'RzGAYgASgEUgp0b3RhbFVuaXRzEjcKBHVuaXQYByABKA4yIy5ub21vcy5rZXJuZWwudjEuS2Vy'
|
|
173
|
-
'bmVsUHJvZ3Jlc3NVbml0UgR1bml0EhoKCHRlcm1pbmFsGAggASgIUgh0ZXJtaW5hbBIwChRhbG'
|
|
174
|
-
'xvY2F0b3JfbGl2ZV9ieXRlcxgJIAEoBFISYWxsb2NhdG9yTGl2ZUJ5dGVzEjAKFGFsbG9jYXRv'
|
|
175
|
-
'cl9wZWFrX2J5dGVzGAogASgEUhJhbGxvY2F0b3JQZWFrQnl0ZXMSVQoSbGF3X2h5ZHJhdGlvbl'
|
|
176
|
-
'9zdGVwGAsgASgOMicubm9tb3Mua2VybmVsLnYxLktlcm5lbExhd0h5ZHJhdGlvblN0ZXBSEGxh'
|
|
177
|
-
'd0h5ZHJhdGlvblN0ZXASLAoSbGF3X3BhY2thZ2Vfc2hhMjU2GAwgASgJUhBsYXdQYWNrYWdlU2'
|
|
178
|
-
'hhMjU2');
|