@n1xyz/nord-ts 0.7.2 → 0.7.4
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/actions.d.ts +31 -20
- package/dist/client/Nord.d.ts +20 -3
- package/dist/client/NordAdmin.d.ts +16 -21
- package/dist/client/NordUser.d.ts +24 -24
- package/dist/gen/nord_pb.d.ts +474 -355
- package/dist/gen/openapi.d.ts +182 -83
- package/dist/index.browser.js +331 -305
- package/dist/index.common.js +334 -308
- package/dist/types.d.ts +10 -8
- package/package.json +1 -1
- package/dist/gen/core_pb.d.ts +0 -120
- package/dist/gen/src/components/rfq/rfq_pb.d.ts +0 -791
package/dist/index.common.js
CHANGED
|
@@ -1628,7 +1628,7 @@ var require_fallback = __commonJS((exports, module) => {
|
|
|
1628
1628
|
|
|
1629
1629
|
// node_modules/bufferutil/index.js
|
|
1630
1630
|
var require_bufferutil = __commonJS((exports, module) => {
|
|
1631
|
-
var __dirname = "/Users/
|
|
1631
|
+
var __dirname = "/Users/sheheryar/work/proton.wt0/nord/ts/node_modules/bufferutil";
|
|
1632
1632
|
try {
|
|
1633
1633
|
module.exports = require_node_gyp_build2()(__dirname);
|
|
1634
1634
|
} catch (e2) {
|
|
@@ -2040,7 +2040,7 @@ var require_fallback2 = __commonJS((exports, module) => {
|
|
|
2040
2040
|
|
|
2041
2041
|
// node_modules/utf-8-validate/index.js
|
|
2042
2042
|
var require_utf_8_validate = __commonJS((exports, module) => {
|
|
2043
|
-
var __dirname = "/Users/
|
|
2043
|
+
var __dirname = "/Users/sheheryar/work/proton.wt0/nord/ts/node_modules/utf-8-validate";
|
|
2044
2044
|
try {
|
|
2045
2045
|
module.exports = require_node_gyp_build2()(__dirname);
|
|
2046
2046
|
} catch (e2) {
|
|
@@ -49235,7 +49235,7 @@ var require_file_uri_to_path = __commonJS((exports, module) => {
|
|
|
49235
49235
|
|
|
49236
49236
|
// node_modules/bindings/bindings.js
|
|
49237
49237
|
var require_bindings = __commonJS((exports, module) => {
|
|
49238
|
-
var __filename = "/Users/
|
|
49238
|
+
var __filename = "/Users/sheheryar/work/proton.wt0/nord/ts/node_modules/bindings/bindings.js";
|
|
49239
49239
|
var fs = __require("fs");
|
|
49240
49240
|
var path = __require("path");
|
|
49241
49241
|
var fileURLToPath = require_file_uri_to_path();
|
|
@@ -53922,6 +53922,7 @@ __export(exports_nord_pb, {
|
|
|
53922
53922
|
Receipt_TriggerAddedSchema: () => Receipt_TriggerAddedSchema,
|
|
53923
53923
|
Receipt_TransferredSchema: () => Receipt_TransferredSchema,
|
|
53924
53924
|
Receipt_TradeSchema: () => Receipt_TradeSchema,
|
|
53925
|
+
Receipt_TakeAllTakerResultSchema: () => Receipt_TakeAllTakerResultSchema,
|
|
53925
53926
|
Receipt_TakeAllPositionsResultSchema: () => Receipt_TakeAllPositionsResultSchema,
|
|
53926
53927
|
Receipt_TakeAllPositionSchema: () => Receipt_TakeAllPositionSchema,
|
|
53927
53928
|
Receipt_TakeAllOrderUpdatesSchema: () => Receipt_TakeAllOrderUpdatesSchema,
|
|
@@ -53953,23 +53954,24 @@ __export(exports_nord_pb, {
|
|
|
53953
53954
|
Receipt_InsertTokenResultSchema: () => Receipt_InsertTokenResultSchema,
|
|
53954
53955
|
Receipt_InsertMarketResultSchema: () => Receipt_InsertMarketResultSchema,
|
|
53955
53956
|
Receipt_FeeVaultTransferredSchema: () => Receipt_FeeVaultTransferredSchema,
|
|
53956
|
-
|
|
53957
|
-
|
|
53957
|
+
Receipt_FeeTierTypeUpdatedSchema: () => Receipt_FeeTierTypeUpdatedSchema,
|
|
53958
|
+
Receipt_FeeTierTypeAddedSchema: () => Receipt_FeeTierTypeAddedSchema,
|
|
53958
53959
|
Receipt_DepositResultSchema: () => Receipt_DepositResultSchema,
|
|
53959
53960
|
Receipt_CreateSessionResultSchema: () => Receipt_CreateSessionResultSchema,
|
|
53960
53961
|
Receipt_ClearMarketResultSchema: () => Receipt_ClearMarketResultSchema,
|
|
53961
53962
|
Receipt_ClearMarketClosedPositionSchema: () => Receipt_ClearMarketClosedPositionSchema,
|
|
53962
|
-
Receipt_ClearMarketCancelledOrderSchema: () => Receipt_ClearMarketCancelledOrderSchema,
|
|
53963
53963
|
Receipt_CancelledTriggerSchema: () => Receipt_CancelledTriggerSchema,
|
|
53964
|
+
Receipt_CancelledOrderSchema: () => Receipt_CancelledOrderSchema,
|
|
53964
53965
|
Receipt_CancelOrderResultSchema: () => Receipt_CancelOrderResultSchema,
|
|
53965
53966
|
Receipt_BackstopAccountSetSchema: () => Receipt_BackstopAccountSetSchema,
|
|
53966
53967
|
Receipt_AtomicSubactionResultKindSchema: () => Receipt_AtomicSubactionResultKindSchema,
|
|
53967
53968
|
Receipt_AtomicResultSchema: () => Receipt_AtomicResultSchema,
|
|
53968
53969
|
Receipt_AclUpdatedSchema: () => Receipt_AclUpdatedSchema,
|
|
53969
|
-
|
|
53970
|
+
Receipt_AccountsFeeTierTypeModeUpdatedSchema: () => Receipt_AccountsFeeTierTypeModeUpdatedSchema,
|
|
53970
53971
|
Receipt_AccountPlacementReceiptSchema: () => Receipt_AccountPlacementReceiptSchema,
|
|
53971
53972
|
ReceiptSchema: () => ReceiptSchema,
|
|
53972
53973
|
RFQQtyPlaceSchema: () => RFQQtyPlaceSchema,
|
|
53974
|
+
RFQExecutionSchema: () => RFQExecutionSchema,
|
|
53973
53975
|
PythLazerTrustedSignerSchema: () => PythLazerTrustedSignerSchema,
|
|
53974
53976
|
PlacementRoleSchema: () => PlacementRoleSchema,
|
|
53975
53977
|
PlacementRole: () => PlacementRole,
|
|
@@ -53988,6 +53990,7 @@ __export(exports_nord_pb, {
|
|
|
53988
53990
|
FillRFQResultSchema: () => FillRFQResultSchema,
|
|
53989
53991
|
FillModeSchema: () => FillModeSchema,
|
|
53990
53992
|
FillMode: () => FillMode,
|
|
53993
|
+
FeeTierTypeConfigSchema: () => FeeTierTypeConfigSchema,
|
|
53991
53994
|
FeeTierConfigSchema: () => FeeTierConfigSchema,
|
|
53992
53995
|
ErrorSchema: () => ErrorSchema,
|
|
53993
53996
|
Error: () => Error2,
|
|
@@ -53997,14 +54000,11 @@ __export(exports_nord_pb, {
|
|
|
53997
54000
|
CreateRfqMarket_MarginsSchema: () => CreateRfqMarket_MarginsSchema,
|
|
53998
54001
|
CreateRfqMarket_DecimalsSchema: () => CreateRfqMarket_DecimalsSchema,
|
|
53999
54002
|
CreateRfqMarketSchema: () => CreateRfqMarketSchema,
|
|
54000
|
-
AtomicV2Schema: () => AtomicV2Schema,
|
|
54001
54003
|
AtomicV1Schema: () => AtomicV1Schema,
|
|
54002
|
-
AtomicSubactionV2Schema: () => AtomicSubactionV2Schema,
|
|
54003
54004
|
AtomicSubactionSchema: () => AtomicSubactionSchema,
|
|
54004
54005
|
AtomicSubactionKindV1Schema: () => AtomicSubactionKindV1Schema,
|
|
54005
54006
|
AtomicSchema: () => AtomicSchema,
|
|
54006
54007
|
AtomicRemoveTriggerSchema: () => AtomicRemoveTriggerSchema,
|
|
54007
|
-
AtomicPlacementRequestSchema: () => AtomicPlacementRequestSchema,
|
|
54008
54008
|
AtomicEditTriggerSchema: () => AtomicEditTriggerSchema,
|
|
54009
54009
|
AtomicCancelOrderByIdSchema: () => AtomicCancelOrderByIdSchema,
|
|
54010
54010
|
AtomicCancelOrderByClientIdSchema: () => AtomicCancelOrderByClientIdSchema,
|
|
@@ -54013,9 +54013,9 @@ __export(exports_nord_pb, {
|
|
|
54013
54013
|
Action_WithdrawSchema: () => Action_WithdrawSchema,
|
|
54014
54014
|
Action_UserSignatureFramingSchema: () => Action_UserSignatureFramingSchema,
|
|
54015
54015
|
Action_UserSignatureFraming: () => Action_UserSignatureFraming,
|
|
54016
|
-
|
|
54016
|
+
Action_UpdateFeeTierTypeSchema: () => Action_UpdateFeeTierTypeSchema,
|
|
54017
54017
|
Action_UpdateAclSchema: () => Action_UpdateAclSchema,
|
|
54018
|
-
|
|
54018
|
+
Action_UpdateAccountsFeeTierTypeModeSchema: () => Action_UpdateAccountsFeeTierTypeModeSchema,
|
|
54019
54019
|
Action_UnpauseSchema: () => Action_UnpauseSchema,
|
|
54020
54020
|
Action_UnfreezeMarketSchema: () => Action_UnfreezeMarketSchema,
|
|
54021
54021
|
Action_TransferSchema: () => Action_TransferSchema,
|
|
@@ -54053,7 +54053,7 @@ __export(exports_nord_pb, {
|
|
|
54053
54053
|
Action_CancelOrderByIdSchema: () => Action_CancelOrderByIdSchema,
|
|
54054
54054
|
Action_CancelOrderByClientIdSchema: () => Action_CancelOrderByClientIdSchema,
|
|
54055
54055
|
Action_AddTriggerSchema: () => Action_AddTriggerSchema,
|
|
54056
|
-
|
|
54056
|
+
Action_AddFeeTierTypeSchema: () => Action_AddFeeTierTypeSchema,
|
|
54057
54057
|
ActionSchema: () => ActionSchema
|
|
54058
54058
|
});
|
|
54059
54059
|
|
|
@@ -57294,7 +57294,7 @@ function fileDesc(b64, imports) {
|
|
|
57294
57294
|
}
|
|
57295
57295
|
|
|
57296
57296
|
// src/gen/nord_pb.ts
|
|
57297
|
-
var file_nord = /* @__PURE__ */ fileDesc("Cgpub3JkLnByb3RvEgRub3JkIh4KBFUxMjgSCgoCbG8YASABKAQSCgoCaGkYAiABKAQiiAEKCFJmcVRyYWRlEhsKDnRpbWVvdXRfbWlsbGlzGAEgASgNSACIAQESEQoJbWFya2V0X2lkGAIgASgNEhAKCG9yZGVyX2lkGAMgASgEEg0KBXByaWNlGAQgASgEEhgKEHRpbWVzdGFtcF9taWxsaXMYBSABKANCEQoPX3RpbWVvdXRfbWlsbGlzItQBCgxSZnFQbGFjZU9ubHkSEQoJbWFya2V0X2lkGAcgASgNEhsKDnRpbWVvdXRfbWlsbGlzGAEgASgNSACIAQESHAoPY2xpZW50X29yZGVyX2lkGAIgASgESAGIAQESDQoFcHJpY2UYAyABKAQSGAoEc2lkZRgEIAEoDjIKLm5vcmQuU2lkZRIMCgRiYXNlGAUgASgEEhgKEHRpbWVzdGFtcF9taWxsaXMYBiABKANCEQoPX3RpbWVvdXRfbWlsbGlzQhIKEF9jbGllbnRfb3JkZXJfaWQiIwoMU2V0UmZxTWFrZXJzEhMKC2FjY291bnRfaWRzGAEgAygNIiUKEFNldE1hcmtldE1vZGVSRlESEQoJbWFya2V0X2lkGAEgASgNItMCCg9DcmVhdGVSZnFNYXJrZXQSMAoIZGVjaW1hbHMYASABKAsyHi5ub3JkLkNyZWF0ZVJmcU1hcmtldC5EZWNpbWFscxIuCgdtYXJnaW5zGAIgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuTWFyZ2lucxIuCgdzeW1ib2xzGAMgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuU3ltYm9scxo5CghEZWNpbWFscxIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNGjwKB01hcmdpbnMSDwoHaW1mX2JwcxgDIAEoDRIPCgdjbWZfYnBzGAQgASgNEg8KB21tZl9icHMYBSABKA0aNQoHU3ltYm9scxITCgt2aWV3X3N5bWJvbBgHIAEoCRIVCg1vcmFjbGVfc3ltYm9sGAggASgJIpQBCg5SZnFUcmFkZUFjdGlvbhIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIcChRxdW90ZV90aW1lb3V0X21pbGxpcxgEIAEoDRITCgliYXNlX3NpemUYBSABKANIAEIKCghxdWFudGl0eUoECAYQByLbAgoPUmZxVHJhZGVSZWNlaXB0EhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIwCgdzdWNjZXNzGAMgASgLMh0ubm9yZC5SZnFUcmFkZVJlY2VpcHQuU3VjY2Vzc0gAEjYKB2ZhaWx1cmUYBCABKA4yIy5ub3JkLlJmcVRyYWRlUmVjZWlwdC5GYWlsdXJlUmVhc29uSAAaggEKB1N1Y2Nlc3MSEAoIcXVvdGVfaWQYASABKAQSGAoEc2lkZRgCIAEoDjIKLm5vcmQuU2lkZRIYChBmaWxsZWRfYmFzZV9zaXplGAMgASgEEiIKDnF1b3RlX25vdGlvbmFsGAQgASgLMgoubm9yZC5VMTI4Eg0KBXByaWNlGAUgASgEIioKDUZhaWx1cmVSZWFzb24SCwoHVElNRU9VVBAAEgwKCFJFSkVDVEVEEAFCCAoGcmVzdWx0IjoKDlBsYWNlUkZRUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhYKDnRpbWVvdXRfbWlsbGlzGAIgASgNIqMBCg1GaWxsUkZRUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhgKEG1ha2VyX2FjY291bnRfaWQYAiABKA0SGAoQdGFrZXJfYWNjb3VudF9pZBgDIAEoDRIYCgtmaWxsZWRfc2l6ZRgEIAEoBEgAiAEBEhUKCHRyYWRlX2lkGAUgASgESAGIAQFCDgoMX2ZpbGxlZF9zaXplQgsKCV90cmFkZV9pZCIjCgxSZnFNYWtlcnNTZXQSEwoLYWNjb3VudF9pZHMYASADKA0iJgoLUkZRUXR5UGxhY2USFwoDcXR5GAEgASgLMgoubm9yZC5VMTI4Ij0KDUZlZVRpZXJDb25maWcSFQoNbWFrZXJfZmVlX3BwbRgBIAEoDRIVCg10YWtlcl9mZWVfcHBtGAIgASgNIvcBCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEhUKDXNpemVfZGVjaW1hbHMYAyABKA0SFQoNYmFzZV90b2tlbl9pZBgEIAEoDRIlCgttYXJrZXRfdHlwZRgFIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIPCgdpbWZfYnBzGAYgASgNEg8KB2NtZl9icHMYByABKA0SDwoHbW1mX2JwcxgIIAEoDRIlCgttYXJrZXRfbW9kZRgJIAEoDjIQLm5vcmQuTWFya2V0TW9kZRITCgt2aWV3X3N5bWJvbBgKIAEoCSJaCgVUb2tlbhIQCgh0b2tlbl9pZBgBIAEoDRIWCg50b2tlbl9kZWNpbWFscxgCIAEoDRISCgp3ZWlnaHRfYnBzGAQgASgNEhMKC3ZpZXdfc3ltYm9sGAUgASgJIrYBCgtWYXVsdEhlYWx0aBIqChFyYXdfYWNjb3VudF92YWx1ZRgBIAEoCzIKLm5vcmQuVTEyOEgAiAEBEisKEnNhZmVfYWNjb3VudF92YWx1ZRgCIAEoCzIKLm5vcmQuVTEyOEgBiAEBEiEKBnN0YXR1cxgDIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXNCFAoSX3Jhd19hY2NvdW50X3ZhbHVlQhUKE19zYWZlX2FjY291bnRfdmFsdWUisAEKC1ZhdWx0Q29uZmlnEh8KC2RlcG9zaXRfY2FwGAEgASgLMgoubm9yZC5VMTI4EiIKGm9wZW5fcG9zaXRpb25fZGlzY291bnRfYnBzGAIgASgNEh8KF2RyYXdkb3duX3Byb3RlY3Rpb25fYnBzGAMgASgNEhsKE2RyYXdkb3duX2ZyZWV6ZV9icHMYBCABKA0SHgoWZXBvY2hfbWluX2R1cmF0aW9uX3NlYxgFIAEoDSLMAgoQVmF1bHRDb25maWdQYXRjaBIkCgtkZXBvc2l0X2NhcBgBIAEoCzIKLm5vcmQuVTEyOEgAiAEBEicKGm9wZW5fcG9zaXRpb25fZGlzY291bnRfYnBzGAIgASgNSAGIAQESJAoXZHJhd2Rvd25fcHJvdGVjdGlvbl9icHMYAyABKA1IAogBARIgChNkcmF3ZG93bl9mcmVlemVfYnBzGAQgASgNSAOIAQESIwoWZXBvY2hfbWluX2R1cmF0aW9uX3NlYxgFIAEoDUgEiAEBQg4KDF9kZXBvc2l0X2NhcEIdChtfb3Blbl9wb3NpdGlvbl9kaXNjb3VudF9icHNCGgoYX2RyYXdkb3duX3Byb3RlY3Rpb25fYnBzQhYKFF9kcmF3ZG93bl9mcmVlemVfYnBzQhkKF19lcG9jaF9taW5fZHVyYXRpb25fc2VjIkgKC0NyZWF0ZVZhdWx0EhYKDm1hbmFnZXJfcHVia2V5GAEgASgMEiEKBmNvbmZpZxgCIAEoCzIRLm5vcmQuVmF1bHRDb25maWciUwoRVXBkYXRlVmF1bHRDb25maWcSEAoIdmF1bHRfaWQYASABKA0SLAoMY29uZmlnX3BhdGNoGAIgASgLMhYubm9yZC5WYXVsdENvbmZpZ1BhdGNoIjsKD1NldFZhdWx0TWFuYWdlchIQCgh2YXVsdF9pZBgBIAEoDRIWCg5tYW5hZ2VyX3B1YmtleRgCIAEoDCI3Cg9WYXVsdFN5bmNFcG9jaHMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIQCgh2YXVsdF9pZBgCIAEoDSJOChFTdGFnZWRBZG1pbkFjdGlvbhIUCgxhZG1pbl9wdWJrZXkYASABKAwSIwoEa2luZBgCIAEoCzIVLm5vcmQuQWRtaW5BY3Rpb25LaW5kIrMECg9BZG1pbkFjdGlvbktpbmQSKQoMY3JlYXRlX3ZhdWx0GAEgASgLMhEubm9yZC5DcmVhdGVWYXVsdEgAEjYKE3VwZGF0ZV92YXVsdF9jb25maWcYAiABKAsyFy5ub3JkLlVwZGF0ZVZhdWx0Q29uZmlnSAASMgoRc2V0X3ZhdWx0X21hbmFnZXIYAyABKAsyFS5ub3JkLlNldFZhdWx0TWFuYWdlckgAEjIKEWNyZWF0ZV9yZnFfbWFya2V0GAQgASgLMhUubm9yZC5DcmVhdGVSZnFNYXJrZXRIABJWCiFzZXRfbWFya2V0X21vZGVfY2xvYl90cmFkaW5nX29ubHkYBSABKAsyKS5ub3JkLkFjdGlvbi5TZXRNYXJrZXRNb2RlQ0xPQlRyYWRpbmdPbmx5SAASNQoTc2V0X21hcmtldF9tb2RlX3JmcRgGIAEoCzIWLm5vcmQuU2V0TWFya2V0TW9kZVJGUUgAElAKHnNldF9tYXJrZXRfbW9kZV9jbG9iX3Bvc3Rfb25seRgHIAEoCzImLm5vcmQuQWN0aW9uLlNldE1hcmtldE1vZGVDTE9CUG9zdE9ubHlIABI+ChRzZXRfbWFya2V0X21vZGVfY2xvYhgIIAEoCzIeLm5vcmQuQWN0aW9uLlNldE1hcmtldE1vZGVDTE9CSAASLAoOc2V0X3JmcV9tYWtlcnMYCSABKAsyEi5ub3JkLlNldFJmcU1ha2Vyc0gAQgYKBGtpbmQiRAoMVmF1bHREZXBvc2l0EhIKCnNlc3Npb25faWQYASABKAQSEAoIdmF1bHRfaWQYAiABKA0SDgoGYW1vdW50GAMgASgEIvUBCg1WYXVsdFdpdGhkcmF3EhIKCnNlc3Npb25faWQYASABKAQSEAoIdmF1bHRfaWQYAiABKA0SLgoHcmVxdWVzdBgDIAEoCzIbLm5vcmQuVmF1bHRXaXRoZHJhdy5SZXF1ZXN0SAASKgoFY2xhaW0YBCABKAsyGS5ub3JkLlZhdWx0V2l0aGRyYXcuQ2xhaW1IABpRCgdSZXF1ZXN0EhgKDnF1b3RlX25vdGlvbmFsGAEgASgESAASIgoMc2hhcmVfYW1vdW50GAIgASgLMgoubm9yZC5VMTI4SABCCAoGYW1vdW50GgcKBUNsYWltQgYKBGtpbmQingEKEkNyZWF0ZVZhdWx0UmVjZWlwdBIQCgh2YXVsdF9pZBgBIAEoDRIYChB2YXVsdF9hY2NvdW50X2lkGAIgASgNEhYKDm1hbmFnZXJfcHVia2V5GAMgASgMEiEKBnN0YXR1cxgEIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSIQoGY29uZmlnGAUgASgLMhEubm9yZC5WYXVsdENvbmZpZyJyChhVcGRhdGVWYXVsdENvbmZpZ1JlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SIQoGY29uZmlnGAIgASgLMhEubm9yZC5WYXVsdENvbmZpZxIhCgZzdGF0dXMYAyABKA4yES5ub3JkLlZhdWx0U3RhdHVzIkIKFlNldFZhdWx0TWFuYWdlclJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFgoObWFuYWdlcl9wdWJrZXkYAiABKAwi4QEKFlZhdWx0U3luY0Vwb2Noc1JlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFwoPY2xvc2VkX2Vwb2NoX2lkGAIgASgNEhgKEGNsYWltYWJsZV9hbW91bnQYAyABKAQSIQoGc3RhdHVzGAQgASgOMhEubm9yZC5WYXVsdFN0YXR1cxIhCgZlcG9jaHMYBSABKAsyES5ub3JkLlZhdWx0RXBvY2hzEiUKEWxpdmVfc2hhcmVfc3VwcGx5GAYgASgLMgoubm9yZC5VMTI4EhUKDXF1b3RlX2JhbGFuY2UYByABKAMijwIKE1ZhdWx0RGVwb3NpdFJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBIhCg1zaGFyZXNfaXNzdWVkGAQgASgLMgoubm9yZC5VMTI4Eh8KC3VzZXJfc2hhcmVzGAUgASgLMgoubm9yZC5VMTI4EiUKEWxpdmVfc2hhcmVfc3VwcGx5GAYgASgLMgoubm9yZC5VMTI4EiEKBnN0YXR1cxgHIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSGAoQdmF1bHRfYWNjb3VudF9pZBgIIAEoDRIVCg1xdW90ZV9iYWxhbmNlGAkgASgDIlUKEVdpdGhkcmF3YWxCdWNrZXRzEhUKDWN1cnJlbnRfZXBvY2gYASABKAQSFgoOcHJldmlvdXNfZXBvY2gYAiABKAQSEQoJY2xhaW1hYmxlGAMgASgEIoUBCgtWYXVsdFBwc1JlZhIQCghlcG9jaF9pZBgBIAEoDRIrChJzYWZlX2FjY291bnRfdmFsdWUYAiABKAsyCi5ub3JkLlUxMjhIAIgBARIgCgxzaGFyZV9zdXBwbHkYAyABKAsyCi5ub3JkLlUxMjhCFQoTX3NhZmVfYWNjb3VudF92YWx1ZSKWAgoLVmF1bHRFcG9jaHMSGAoQY3VycmVudF9lcG9jaF9pZBgBIAEoDRIgChhjdXJyZW50X2Vwb2NoX3N0YXJ0ZWRfYXQYAiABKAMSIgoVcGFpZF90aHJvdWdoX2Vwb2NoX2lkGAMgASgNSACIAQESLAoLd2l0aGRyYXdhbHMYBCABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEi8KFGxhdGVzdF9lcG9jaF9wcHNfcmVmGAUgASgLMhEubm9yZC5WYXVsdFBwc1JlZhIuChNwcmlvcl9lcG9jaF9wcHNfcmVmGAYgASgLMhEubm9yZC5WYXVsdFBwc1JlZkIYChZfcGFpZF90aHJvdWdoX2Vwb2NoX2lkIo8BCg5WYXVsdFVzZXJTdGF0ZRIaCgZzaGFyZXMYASABKAsyCi5ub3JkLlUxMjgSLAoLd2l0aGRyYXdhbHMYAiABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEhgKEGN1cnJlbnRfZXBvY2hfaWQYAyABKA0SGQoRcHJldmlvdXNfZXBvY2hfaWQYBCABKA0itgMKFFZhdWx0V2l0aGRyYXdSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhUKDXRvX2FjY291bnRfaWQYAiABKA0SOQoJcmVxdWVzdGVkGAMgASgLMiQubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5SZXF1ZXN0ZWRIABI1CgdjbGFpbWVkGAQgASgLMiIubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5DbGFpbWVkSAASLQoPcG9zdF91c2VyX3N0YXRlGAUgASgLMhQubm9yZC5WYXVsdFVzZXJTdGF0ZRIlChFsaXZlX3NoYXJlX3N1cHBseRgGIAEoCzIKLm5vcmQuVTEyOBIhCgZzdGF0dXMYByABKA4yES5ub3JkLlZhdWx0U3RhdHVzEhgKEHZhdWx0X2FjY291bnRfaWQYCCABKA0SFQoNcXVvdGVfYmFsYW5jZRgJIAEoAxo2CglSZXF1ZXN0ZWQSDQoFcXVvdGUYASABKAQSGgoGYnVybmVkGAIgASgLMgoubm9yZC5VMTI4GhkKB0NsYWltZWQSDgoGYW1vdW50GAEgASgEQgYKBGtpbmQiSQoKT3JkZXJMaW1pdBINCgVwcmljZRgGIAEoBBIMCgRzaXplGAcgASgEEh4KCnF1b3RlX3NpemUYCCABKAsyCi5ub3JkLlUxMjgiuQEKCVBsYWNlVHlwZRIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiEKCWZpbGxfbW9kZRgEIAEoDjIOLm5vcmQuRmlsbE1vZGUSFgoOaXNfcmVkdWNlX29ubHkYBSABKAgSPQoVc2VsZl90cmFkZV9wcmV2ZW50aW9uGAYgASgOMhkubm9yZC5TZWxmVHJhZGVQcmV2ZW50aW9uSACIAQFCGAoWX3NlbGZfdHJhZGVfcHJldmVudGlvbiLJAQoMVHJhZGVPclBsYWNlEhEKCW1hcmtldF9pZBgCIAEoDRIjCgpwbGFjZV90eXBlGAMgASgLMg8ubm9yZC5QbGFjZVR5cGUSHwoFbGltaXQYBiABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoPY2xpZW50X29yZGVyX2lkGCEgASgESACIAQESIQoIcmVmZXJyZXIYIiABKAsyCi5ub3JkLlUxMjhIAYgBAUISChBfY2xpZW50X29yZGVyX2lkQgsKCV9yZWZlcnJlciIpChVBdG9taWNDYW5jZWxPcmRlckJ5SWQSEAoIb3JkZXJfaWQYAiABKAQiNgobQXRvbWljQ2FuY2VsT3JkZXJCeUNsaWVudElkEhcKD2NsaWVudF9vcmRlcl9pZBgCIAEoBCKGAQoQQXRvbWljQWRkVHJpZ2dlchIkCgd0cmlnZ2VyGAEgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhwKBmludGVudBgCIAEoDjIMLm5vcmQuSW50ZW50EiEKCHJlZmVycmVyGAMgASgLMgoubm9yZC5VMTI4SACIAQFCCwoJX3JlZmVycmVyIlEKEUF0b21pY0VkaXRUcmlnZ2VyEhIKCnRyaWdnZXJfaWQYASABKAQSKAoLbmV3X3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQiPAoTQXRvbWljUmVtb3ZlVHJpZ2dlchIRCgltYXJrZXRfaWQYASABKA0SEgoKdHJpZ2dlcl9pZBgCIAEoBCJGChZSZWR1Y2VPcmRlckxpcXVpZGF0aW9uEhkKEXRhcmdldF9hY2NvdW50X2lkGAEgASgNEhEKCW1hcmtldF9pZBgCIAEoDSLPAQoVQXRvbWljU3ViYWN0aW9uS2luZFYxEiwKDnRyYWRlX29yX3BsYWNlGAYgASgLMhIubm9yZC5UcmFkZU9yUGxhY2VIABIzCgxjYW5jZWxfb3JkZXIYByABKAsyGy5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlJZEgAEkYKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYCCABKAsyIS5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlDbGllbnRJZEgAOgIYAUIHCgVpbm5lciKwAQoIQXRvbWljVjESEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAMgASgESAGIAQESLAoHYWN0aW9ucxgGIAMoCzIbLm5vcmQuQXRvbWljU3ViYWN0aW9uS2luZFYxOgIYAUINCgtfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkIlcKFkF0b21pY1BsYWNlbWVudFJlcXVlc3QSEgoIdmF1bHRfaWQYASABKA1IABIgChZsaXF1aWRhdGlvbl9hY2NvdW50X2lkGAIgASgNSABCBwoFaW5uZXIiqwQKD0F0b21pY1N1YmFjdGlvbhIhChRkZWxlZ2F0b3JfYWNjb3VudF9pZBggIAEoDUgBiAEBEiwKDnRyYWRlX29yX3BsYWNlGAYgASgLMhIubm9yZC5UcmFkZU9yUGxhY2VIABIzCgxjYW5jZWxfb3JkZXIYByABKAsyGy5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlJZEgAEkYKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYCCABKAsyIS5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlDbGllbnRJZEgAEi0KC2FkZF90cmlnZ2VyGAkgASgLMhYubm9yZC5BdG9taWNBZGRUcmlnZ2VySAASLwoMZWRpdF90cmlnZ2VyGAogASgLMhcubm9yZC5BdG9taWNFZGl0VHJpZ2dlckgAEjMKDnJlbW92ZV90cmlnZ2VyGAsgASgLMhkubm9yZC5BdG9taWNSZW1vdmVUcmlnZ2VySAASQAoYcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uGAwgASgLMhwubm9yZC5SZWR1Y2VPcmRlckxpcXVpZGF0aW9uSAASLAoOcmZxX3BsYWNlX29ubHkYDSABKAsyEi5ub3JkLlJmcVBsYWNlT25seUgAEiMKCXJmcV90cmFkZRgOIAEoCzIOLm5vcmQuUmZxVHJhZGVIAEIHCgVpbm5lckIXChVfZGVsZWdhdG9yX2FjY291bnRfaWQigQEKEUF0b21pY1N1YmFjdGlvblYyEjQKCXBsYWNlbWVudBgBIAEoCzIcLm5vcmQuQXRvbWljUGxhY2VtZW50UmVxdWVzdEgAiAEBEigKCXN1YmFjdGlvbhgCIAEoCzIVLm5vcmQuQXRvbWljU3ViYWN0aW9uQgwKCl9wbGFjZW1lbnQipAEKBkF0b21pYxISCgpzZXNzaW9uX2lkGAEgASgEEhcKCmFjY291bnRfaWQYAiABKA1IAIgBARIfChJzZW5kZXJfdHJhY2tpbmdfaWQYAyABKARIAYgBARImCgdhY3Rpb25zGAYgAygLMhUubm9yZC5BdG9taWNTdWJhY3Rpb25CDQoLX2FjY291bnRfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZCKoAQoIQXRvbWljVjISEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAMgASgESAGIAQESKAoHYWN0aW9ucxgGIAMoCzIXLm5vcmQuQXRvbWljU3ViYWN0aW9uVjJCDQoLX2FjY291bnRfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZCI8ChZQeXRoTGF6ZXJUcnVzdGVkU2lnbmVyEg4KBnB1YmtleRgBIAEoDBISCgpleHBpcmVzX2F0GAIgASgDIpYBCg1UcmlnZ2VyUmVjb3JkEhUKDXRyaWdnZXJfcHJpY2UYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEiAKBmxpbWl0cxgDIAEoCzIQLm5vcmQuT3JkZXJMaW1pdBIfCgRraW5kGAQgASgOMhEubm9yZC5UcmlnZ2VyS2luZBIYCgRzaWRlGAUgASgOMgoubm9yZC5TaWRlIpsBCgdUcmlnZ2VyEhUKDXRyaWdnZXJfcHJpY2UYASABKAQSHwoEa2luZBgCIAEoDjIRLm5vcmQuVHJpZ2dlcktpbmQSGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIgCgZsaW1pdHMYBCABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoGaW50ZW50GAUgASgOMgwubm9yZC5JbnRlbnQi/zMKBkFjdGlvbhIZChFjdXJyZW50X3RpbWVzdGFtcBgBIAEoAxINCgVub25jZRgCIAEoDRI0Cg5jcmVhdGVfc2Vzc2lvbhgEIAEoCzIaLm5vcmQuQWN0aW9uLkNyZWF0ZVNlc3Npb25IABIwCgxjcmVhdGVfdG9rZW4YBSABKAsyGC5ub3JkLkFjdGlvbi5DcmVhdGVUb2tlbkgAEjIKDWNyZWF0ZV9tYXJrZXQYBiABKAsyGS5ub3JkLkFjdGlvbi5DcmVhdGVNYXJrZXRIABIuCgtwbGFjZV9vcmRlchgHIAEoCzIXLm5vcmQuQWN0aW9uLlBsYWNlT3JkZXJIABI6ChJjYW5jZWxfb3JkZXJfYnlfaWQYCCABKAsyHC5ub3JkLkFjdGlvbi5DYW5jZWxPcmRlckJ5SWRIABInCgdkZXBvc2l0GAkgASgLMhQubm9yZC5BY3Rpb24uRGVwb3NpdEgAEikKCHdpdGhkcmF3GAogASgLMhUubm9yZC5BY3Rpb24uV2l0aGRyYXdIABJMChtweXRoX3NldF93b3JtaG9sZV9ndWFyZGlhbnMYCyABKAsyJS5ub3JkLkFjdGlvbi5QeXRoU2V0V29ybWhvbGVHdWFyZGlhbnNIABI+ChRweXRoX3NldF9zeW1ib2xfZmVlZBgMIAEoCzIeLm5vcmQuQWN0aW9uLlB5dGhTZXRTeW1ib2xGZWVkSAASQgoWcHl0aF9wcmljZV9mZWVkX3VwZGF0ZRgNIAEoCzIgLm5vcmQuQWN0aW9uLlB5dGhQcmljZUZlZWRVcGRhdGVIABI0Cg5yZXZva2Vfc2Vzc2lvbhgPIAEoCzIaLm5vcmQuQWN0aW9uLlJldm9rZVNlc3Npb25IABIjCgVwYXVzZRgQIAEoCzISLm5vcmQuQWN0aW9uLlBhdXNlSAASJwoHdW5wYXVzZRgRIAEoCzIULm5vcmQuQWN0aW9uLlVucGF1c2VIABIpCgh0cmFuc2ZlchgSIAEoCzIVLm5vcmQuQWN0aW9uLlRyYW5zZmVySAASLgoLYWRkX3RyaWdnZXIYICABKAsyFy5ub3JkLkFjdGlvbi5BZGRUcmlnZ2VySAASNAoOcmVtb3ZlX3RyaWdnZXIYISABKAsyGi5ub3JkLkFjdGlvbi5SZW1vdmVUcmlnZ2VySAASJwoJYXRvbWljX3YxGCMgASgLMg4ubm9yZC5BdG9taWNWMUICGAFIABIyCg1mcmVlemVfbWFya2V0GCQgASgLMhkubm9yZC5BY3Rpb24uRnJlZXplTWFya2V0SAASNgoPdW5mcmVlemVfbWFya2V0GCUgASgLMhsubm9yZC5BY3Rpb24uVW5mcmVlemVNYXJrZXRIABIvCgxhZGRfZmVlX3RpZXIYJiABKAsyFy5ub3JkLkFjdGlvbi5BZGRGZWVUaWVySAASNQoPdXBkYXRlX2ZlZV90aWVyGCcgASgLMhoubm9yZC5BY3Rpb24uVXBkYXRlRmVlVGllckgAEj8KFHVwZGF0ZV9hY2NvdW50c190aWVyGCggASgLMh8ubm9yZC5BY3Rpb24uVXBkYXRlQWNjb3VudHNUaWVySAASLAoKdXBkYXRlX2FjbBgpIAEoCzIWLm5vcmQuQWN0aW9uLlVwZGF0ZUFjbEgAEjsKEmZlZV92YXVsdF90cmFuc2ZlchgqIAEoCzIdLm5vcmQuQWN0aW9uLkZlZVZhdWx0VHJhbnNmZXJIABI7ChJ0YWtlX2FsbF9wb3NpdGlvbnMYKyABKAsyHS5ub3JkLkFjdGlvbi5UYWtlQWxsUG9zaXRpb25zSAASRwoZY2FuY2VsX29yZGVyX2J5X2NsaWVudF9pZBgsIAEoCzIiLm5vcmQuQWN0aW9uLkNhbmNlbE9yZGVyQnlDbGllbnRJZEgAEjYKD2V4ZWN1dGVfdHJpZ2dlchgtIAEoCzIbLm5vcmQuQWN0aW9uLkV4ZWN1dGVUcmlnZ2VySAASPwoUc2V0X2JhY2tzdG9wX2FjY291bnQYLiABKAsyHy5ub3JkLkFjdGlvbi5TZXRCYWNrc3RvcEFjY291bnRIABIwCgxlZGl0X3RyaWdnZXIYLyABKAsyGC5ub3JkLkFjdGlvbi5FZGl0VHJpZ2dlckgAEh4KBmF0b21pYxgwIAEoCzIMLm5vcmQuQXRvbWljSAASKAoFYWRtaW4YMSABKAsyFy5ub3JkLlN0YWdlZEFkbWluQWN0aW9uSAASMAoMY2xlYXJfbWFya2V0GDIgASgLMhgubm9yZC5BY3Rpb24uQ2xlYXJNYXJrZXRIABIyChF2YXVsdF9zeW5jX2Vwb2Nocxg1IAEoCzIVLm5vcmQuVmF1bHRTeW5jRXBvY2hzSAASKwoNdmF1bHRfZGVwb3NpdBg2IAEoCzISLm5vcmQuVmF1bHREZXBvc2l0SAASLQoOdmF1bHRfd2l0aGRyYXcYNyABKAsyEy5ub3JkLlZhdWx0V2l0aGRyYXdIABIjCglhdG9taWNfdjIYOCABKAsyDi5ub3JkLkF0b21pY1YySAASUQoecHl0aF9sYXplcl9zZXRfdHJ1c3RlZF9zaWduZXJzGDkgASgLMicubm9yZC5BY3Rpb24uUHl0aExhemVyU2V0VHJ1c3RlZFNpZ25lcnNIABJJChpweXRoX2xhemVyX3NldF9mZWVkX3N5bWJvbBg6IAEoCzIjLm5vcmQuQWN0aW9uLlB5dGhMYXplclNldEZlZWRTeW1ib2xIABJNChxweXRoX2xhemVyX3ByaWNlX2ZlZWRfdXBkYXRlGDsgASgLMiUubm9yZC5BY3Rpb24uUHl0aExhemVyUHJpY2VGZWVkVXBkYXRlSAASNgoPcmVmcmVzaF9zZXNzaW9uGDwgASgLMhsubm9yZC5BY3Rpb24uUmVmcmVzaFNlc3Npb25IABI9ChNzZWxmX3Jldm9rZV9zZXNzaW9uGD0gASgLMh4ubm9yZC5BY3Rpb24uU2VsZlJldm9rZVNlc3Npb25IABrjAQoNQ3JlYXRlU2Vzc2lvbhITCgt1c2VyX3B1YmtleRgBIAEoDBIWCg5zZXNzaW9uX3B1YmtleRgCIAEoDBIYChBleHBpcnlfdGltZXN0YW1wGAMgASgDEkEKEXNpZ25hdHVyZV9mcmFtaW5nGAQgASgOMiEubm9yZC5BY3Rpb24uVXNlclNpZ25hdHVyZUZyYW1pbmdIAIgBARIdChByZWZyZXNoX2RlYWRsaW5lGAUgASgDSAGIAQFCFAoSX3NpZ25hdHVyZV9mcmFtaW5nQhMKEV9yZWZyZXNoX2RlYWRsaW5lGosBCgtDcmVhdGVUb2tlbhIWCg50b2tlbl9kZWNpbWFscxgBIAEoDRISCgp3ZWlnaHRfYnBzGAMgASgNEhMKC3ZpZXdfc3ltYm9sGAQgASgJEhUKDW9yYWNsZV9zeW1ib2wYBSABKAkSEAoIc29sX2FkZHIYBiABKAwSEgoKYWNsX3B1YmtleRgHIAEoDBoxChxTZXRNYXJrZXRNb2RlQ0xPQlRyYWRpbmdPbmx5EhEKCW1hcmtldF9pZBgBIAEoDRouChlTZXRNYXJrZXRNb2RlQ0xPQlBvc3RPbmx5EhEKCW1hcmtldF9pZBgBIAEoDRomChFTZXRNYXJrZXRNb2RlQ0xPQhIRCgltYXJrZXRfaWQYASABKA0a7gEKDENyZWF0ZU1hcmtldBIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEg8KB2ltZl9icHMYAyABKA0SDwoHY21mX2JwcxgEIAEoDRIPCgdtbWZfYnBzGAUgASgNEiUKC21hcmtldF90eXBlGAYgASgOMhAubm9yZC5NYXJrZXRUeXBlEhMKC3ZpZXdfc3ltYm9sGAcgASgJEhUKDW9yYWNsZV9zeW1ib2wYCCABKAkSFQoNYmFzZV90b2tlbl9pZBgJIAEoDRISCgphY2xfcHVia2V5GAogASgMGqoECgpQbGFjZU9yZGVyEhIKCnNlc3Npb25faWQYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEhgKBHNpZGUYAyABKA4yCi5ub3JkLlNpZGUSIQoJZmlsbF9tb2RlGAQgASgOMg4ubm9yZC5GaWxsTW9kZRIWCg5pc19yZWR1Y2Vfb25seRgFIAEoCBINCgVwcmljZRgGIAEoBBIMCgRzaXplGAcgASgEEh4KCnF1b3RlX3NpemUYCCABKAsyCi5ub3JkLlUxMjgSIQoUZGVsZWdhdG9yX2FjY291bnRfaWQYICABKA1IAIgBARIcCg9jbGllbnRfb3JkZXJfaWQYISABKARIAYgBARIeChFzZW5kZXJfYWNjb3VudF9pZBgiIAEoDUgCiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgjIAEoBEgDiAEBEj0KFXNlbGZfdHJhZGVfcHJldmVudGlvbhgkIAEoDjIZLm5vcmQuU2VsZlRyYWRlUHJldmVudGlvbkgEiAEBEiEKCHJlZmVycmVyGCUgASgLMgoubm9yZC5VMTI4SAWIAQFCFwoVX2RlbGVnYXRvcl9hY2NvdW50X2lkQhIKEF9jbGllbnRfb3JkZXJfaWRCFAoSX3NlbmRlcl9hY2NvdW50X2lkQhUKE19zZW5kZXJfdHJhY2tpbmdfaWRCGAoWX3NlbGZfdHJhZGVfcHJldmVudGlvbkILCglfcmVmZXJyZXIaqQEKD0NhbmNlbE9yZGVyQnlJZBISCgpzZXNzaW9uX2lkGAEgASgEEhAKCG9yZGVyX2lkGAIgASgEEiEKFGRlbGVnYXRvcl9hY2NvdW50X2lkGCAgASgNSACIAQESHgoRc2VuZGVyX2FjY291bnRfaWQYISABKA1IAYgBAUIXChVfZGVsZWdhdG9yX2FjY291bnRfaWRCFAoSX3NlbmRlcl9hY2NvdW50X2lkGnoKFUNhbmNlbE9yZGVyQnlDbGllbnRJZBISCgpzZXNzaW9uX2lkGAEgASgEEhcKD2NsaWVudF9vcmRlcl9pZBgCIAEoBBIeChFzZW5kZXJfYWNjb3VudF9pZBgDIAEoDUgAiAEBQhQKEl9zZW5kZXJfYWNjb3VudF9pZBpvCgdEZXBvc2l0EhQKDGFjdGlvbl9ub25jZRgBIAEoBBISCgp0b2tlbl9hZGRyGAIgASgMEg4KBmFtb3VudBgDIAEoBBITCgt1c2VyX3B1YmtleRgEIAEoDBIVCg1zZW5kZXJfcHVia2V5GAUgASgMGmoKCFdpdGhkcmF3EhAKCHRva2VuX2lkGAEgASgNEhIKCnNlc3Npb25faWQYAiABKAQSDgoGYW1vdW50GAMgASgEEhgKC2Rlc3RfcHVia2V5GAQgASgMSACIAQFCDgoMX2Rlc3RfcHVia2V5Gl0KGFB5dGhTZXRXb3JtaG9sZUd1YXJkaWFucxIaChJndWFyZGlhbl9zZXRfaW5kZXgYASABKA0SEQoJYWRkcmVzc2VzGAIgAygMEhIKCmFjbF9wdWJrZXkYAyABKAwaVQoRUHl0aFNldFN5bWJvbEZlZWQSFQoNb3JhY2xlX3N5bWJvbBgBIAEoCRIVCg1wcmljZV9mZWVkX2lkGAIgASgMEhIKCmFjbF9wdWJrZXkYAyABKAwaLwoTUHl0aFByaWNlRmVlZFVwZGF0ZRIYChByYXdfcHl0aG5ldF9kYXRhGAEgASgMGlIKGFB5dGhMYXplclByaWNlRmVlZFVwZGF0ZRIPCgdwYXlsb2FkGAEgASgMEhEKCXNpZ25hdHVyZRgCIAEoDBISCgpwdWJsaWNfa2V5GAMgASgMGmcKGlB5dGhMYXplclNldFRydXN0ZWRTaWduZXJzEhIKCmFjbF9wdWJrZXkYASABKAwSNQoPdHJ1c3RlZF9zaWduZXJzGAIgAygLMhwubm9yZC5QeXRoTGF6ZXJUcnVzdGVkU2lnbmVyGqsBChZQeXRoTGF6ZXJTZXRGZWVkU3ltYm9sEhIKCmFjbF9wdWJrZXkYASABKAwSQgoFZmVlZHMYAiADKAsyMy5ub3JkLkFjdGlvbi5QeXRoTGF6ZXJTZXRGZWVkU3ltYm9sLkZlZWRTeW1ib2xJbnB1dBo5Cg9GZWVkU3ltYm9sSW5wdXQSDwoHZmVlZF9pZBgBIAEoDRIVCg1vcmFjbGVfc3ltYm9sGAIgASgJGiMKDVJldm9rZVNlc3Npb24SEgoKc2Vzc2lvbl9pZBgBIAEoBBo0Cg5SZWZyZXNoU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxonChFTZWxmUmV2b2tlU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEGhsKBVBhdXNlEhIKCmFjbF9wdWJrZXkYASABKAwaHQoHVW5wYXVzZRISCgphY2xfcHVia2V5GAEgASgMGjwKElNldEJhY2tzdG9wQWNjb3VudBISCgphY2xfcHVia2V5GAEgASgMEhIKCmFjY291bnRfaWQYAiABKA0a+QEKCVJlY2lwaWVudBIxCgdzcGVjaWFsGAEgASgLMh4ubm9yZC5BY3Rpb24uUmVjaXBpZW50LlNwZWNpYWxIABItCgVvd25lZBgCIAEoCzIcLm5vcmQuQWN0aW9uLlJlY2lwaWVudC5Pd25lZEgAEjEKB3Vub3duZWQYAyABKAsyHi5ub3JkLkFjdGlvbi5SZWNpcGllbnQuVW5vd25lZEgAGgkKB1NwZWNpYWwaGwoFT3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDRodCgdVbm93bmVkEhIKCmFjY291bnRfaWQYASABKA1CEAoOcmVjaXBpZW50X3R5cGUanwEKCFRyYW5zZmVyEhIKCnNlc3Npb25faWQYASABKAQSFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEhAKCHRva2VuX2lkGAMgASgNEg4KBmFtb3VudBgEIAEoBBIyCg10b19hY2NvdW50X2lkGAggASgLMhYubm9yZC5BY3Rpb24uUmVjaXBpZW50SACIAQFCEAoOX3RvX2FjY291bnRfaWQaWwoQRmVlVmF1bHRUcmFuc2ZlchISCgphY2xfcHVia2V5GAEgASgMEhEKCXJlY2lwaWVudBgCIAEoDRIQCgh0b2tlbl9pZBgDIAEoDRIOCgZhbW91bnQYBCABKAQavAEKCkFkZFRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIkCgd0cmlnZ2VyGAIgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhwKBmludGVudBgDIAEoDjIMLm5vcmQuSW50ZW50EhcKCmFjY291bnRfaWQYCiABKA1IAIgBARIhCghyZWZlcnJlchgLIAEoCzIKLm5vcmQuVTEyOEgBiAEBQg0KC19hY2NvdW50X2lkQgsKCV9yZWZlcnJlchqHAQoLRWRpdFRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBISCgp0cmlnZ2VyX2lkGAIgASgEEigKC25ld190cmlnZ2VyGAMgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhcKCmFjY291bnRfaWQYCiABKA1IAIgBAUINCgtfYWNjb3VudF9pZBpyCg1SZW1vdmVUcmlnZ2VyEhIKCnNlc3Npb25faWQYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEhIKCnRyaWdnZXJfaWQYAyABKAQSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBQg0KC19hY2NvdW50X2lkGkUKCkFkZEZlZVRpZXISEgoKYWNsX3B1YmtleRgBIAEoDBIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaVAoNVXBkYXRlRmVlVGllchIKCgJpZBgBIAEoDRIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcSEgoKYWNsX3B1YmtleRgDIAEoDBpLChJVcGRhdGVBY2NvdW50c1RpZXISDwoHdGllcl9pZBgBIAEoDRIQCghhY2NvdW50cxgCIAMoDRISCgphY2xfcHVia2V5GAMgASgMGl8KCVVwZGF0ZUFjbBISCgphY2xfcHVia2V5GAEgASgMEhUKDXRhcmdldF9wdWJrZXkYAiABKAwSEgoKcm9sZXNfbWFzaxgDIAEoDRITCgtyb2xlc192YWx1ZRgEIAEoDRo1CgxGcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aNwoOVW5mcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aTQoLQ2xlYXJNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0SFwoPY2xlYXJhbmNlX3ByaWNlGAMgASgEGmEKDkV4ZWN1dGVUcmlnZ2VyEhQKDGV4ZWN1dG9yX3NpZBgBIAEoBBISCgphY2NvdW50X2lkGAIgASgNEhEKCW1hcmtldF9pZBgDIAEoDRISCgp0cmlnZ2VyX2lkGAQgASgEGkEKEFRha2VBbGxQb3NpdGlvbnMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIZChF0YXJnZXRfYWNjb3VudF9pZBgCIAEoDSI3ChRVc2VyU2lnbmF0dXJlRnJhbWluZxIHCgNIRVgQABIWChJTT0xBTkFfVFJBTlNBQ1RJT04QAUIGCgRraW5kIstCCgdSZWNlaXB0EhEKCWFjdGlvbl9pZBgBIAEoBBIaCgNlcnIYICABKA4yCy5ub3JkLkVycm9ySAASQgoVY3JlYXRlX3Nlc3Npb25fcmVzdWx0GCEgASgLMiEubm9yZC5SZWNlaXB0LkNyZWF0ZVNlc3Npb25SZXN1bHRIABI4Cg50cmFkZV9vcl9wbGFjZRgiIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASPgoTY2FuY2VsX29yZGVyX3Jlc3VsdBgjIAEoCzIfLm5vcmQuUmVjZWlwdC5DYW5jZWxPcmRlclJlc3VsdEgAEjUKDmRlcG9zaXRfcmVzdWx0GCQgASgLMhsubm9yZC5SZWNlaXB0LkRlcG9zaXRSZXN1bHRIABI+ChNpbnNlcnRfdG9rZW5fcmVzdWx0GCUgASgLMh8ubm9yZC5SZWNlaXB0Lkluc2VydFRva2VuUmVzdWx0SAASQAoUaW5zZXJ0X21hcmtldF9yZXN1bHQYJiABKAsyIC5ub3JkLlJlY2VpcHQuSW5zZXJ0TWFya2V0UmVzdWx0SAASNwoPd2l0aGRyYXdfcmVzdWx0GCcgASgLMhwubm9yZC5SZWNlaXB0LldpdGhkcmF3UmVzdWx0SAASSQoZb3JhY2xlX3N5bWJvbF9mZWVkX3Jlc3VsdBgoIAEoCzIkLm5vcmQuUmVjZWlwdC5PcmFjbGVTeW1ib2xGZWVkUmVzdWx0SAASQAoUb3JhY2xlX3VwZGF0ZV9yZXN1bHQYKSABKAsyIC5ub3JkLlJlY2VpcHQuT3JhY2xlVXBkYXRlUmVzdWx0SAASSwoadXBkYXRlX2d1YXJkaWFuX3NldF9yZXN1bHQYKiABKAsyJS5ub3JkLlJlY2VpcHQuVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHRIABI3Cg9zZXNzaW9uX3Jldm9rZWQYLCABKAsyHC5ub3JkLlJlY2VpcHQuU2Vzc2lvblJldm9rZWRIABImCgZwYXVzZWQYLSABKAsyFC5ub3JkLlJlY2VpcHQuUGF1c2VkSAASKgoIdW5wYXVzZWQYLiABKAsyFi5ub3JkLlJlY2VpcHQuVW5wYXVzZWRIABIwCgt0cmFuc2ZlcnJlZBgvIAEoCzIZLm5vcmQuUmVjZWlwdC5UcmFuc2ZlcnJlZEgAEjMKDXRyaWdnZXJfYWRkZWQYQCABKAsyGi5ub3JkLlJlY2VpcHQuVHJpZ2dlckFkZGVkSAASNwoPdHJpZ2dlcl9yZW1vdmVkGEEgASgLMhwubm9yZC5SZWNlaXB0LlRyaWdnZXJSZW1vdmVkSAASLAoGYXRvbWljGEMgASgLMhoubm9yZC5SZWNlaXB0LkF0b21pY1Jlc3VsdEgAEkIKFW1hcmtldF9mcmVlemVfdXBkYXRlZBhEIAEoCzIhLm5vcmQuUmVjZWlwdC5NYXJrZXRGcmVlemVVcGRhdGVkSAASNAoOZmVlX3RpZXJfYWRkZWQYRSABKAsyGi5ub3JkLlJlY2VpcHQuRmVlVGllckFkZGVkSAASOAoQZmVlX3RpZXJfdXBkYXRlZBhGIAEoCzIcLm5vcmQuUmVjZWlwdC5GZWVUaWVyVXBkYXRlZEgAEkIKFWFjY291bnRzX3RpZXJfdXBkYXRlZBhHIAEoCzIhLm5vcmQuUmVjZWlwdC5BY2NvdW50c1RpZXJVcGRhdGVkSAASLwoLYWNsX3VwZGF0ZWQYSCABKAsyGC5ub3JkLlJlY2VpcHQuQWNsVXBkYXRlZEgAEkIKFWZlZV92YXVsdF90cmFuc2ZlcnJlZBhJIAEoCzIhLm5vcmQuUmVjZWlwdC5GZWVWYXVsdFRyYW5zZmVycmVkSAASOQoQdHJpZ2dlcl9leGVjdXRlZBhKIAEoCzIdLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRXhlY3V0ZWRIABJJChl0YWtlX2FsbF9wb3NpdGlvbnNfcmVzdWx0GEsgASgLMiQubm9yZC5SZWNlaXB0LlRha2VBbGxQb3NpdGlvbnNSZXN1bHRIABJAChRiYWNrc3RvcF9hY2NvdW50X3NldBhMIAEoCzIgLm5vcmQuUmVjZWlwdC5CYWNrc3RvcEFjY291bnRTZXRIABI1Cg50cmlnZ2VyX2VkaXRlZBhNIAEoCzIbLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRWRpdGVkSAASMQoNdmF1bHRfY3JlYXRlZBhOIAEoCzIYLm5vcmQuQ3JlYXRlVmF1bHRSZWNlaXB0SAASPgoUdmF1bHRfY29uZmlnX3VwZGF0ZWQYTyABKAsyHi5ub3JkLlVwZGF0ZVZhdWx0Q29uZmlnUmVjZWlwdEgAEj0KFXZhdWx0X21hbmFnZXJfdXBkYXRlZBhQIAEoCzIcLm5vcmQuU2V0VmF1bHRNYW5hZ2VyUmVjZWlwdEgAEjsKE3ZhdWx0X2Vwb2Noc19zeW5jZWQYUSABKAsyHC5ub3JkLlZhdWx0U3luY0Vwb2Noc1JlY2VpcHRIABI0Cg92YXVsdF9kZXBvc2l0ZWQYUiABKAsyGS5ub3JkLlZhdWx0RGVwb3NpdFJlY2VpcHRIABI1Cg92YXVsdF93aXRoZHJhd24YUyABKAsyGi5ub3JkLlZhdWx0V2l0aGRyYXdSZWNlaXB0SAASPgoTY2xlYXJfbWFya2V0X3Jlc3VsdBhUIAEoCzIfLm5vcmQuUmVjZWlwdC5DbGVhck1hcmtldFJlc3VsdEgAElQKH3B5dGhfbGF6ZXJfb3JhY2xlX3VwZGF0ZV9yZXN1bHQYVSABKAsyKS5ub3JkLlJlY2VpcHQuUHl0aExhemVyT3JhY2xlVXBkYXRlUmVzdWx0SAASXwolcHl0aF9sYXplcl90cnVzdGVkX3NpZ25lcnNfc2V0X3Jlc3VsdBhWIAEoCzIuLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJUcnVzdGVkU2lnbmVyc1NldFJlc3VsdEgAElcKIXB5dGhfbGF6ZXJfZmVlZF9zeW1ib2xfc2V0X3Jlc3VsdBhXIAEoCzIqLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0SAASVQofcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uX3Jlc3VsdBhYIAEoCzIqLm5vcmQuUmVjZWlwdC5SZWR1Y2VPcmRlckxpcXVpZGF0aW9uUmVzdWx0SAASPgoTbWFya2V0X21vZGVfdXBkYXRlZBhZIAEoCzIfLm5vcmQuUmVjZWlwdC5NYXJrZXRNb2RlVXBkYXRlZEgAEiwKDnJmcV9tYWtlcnNfc2V0GFogASgLMhIubm9yZC5SZnFNYWtlcnNTZXRIABI7ChFzZXNzaW9uX3JlZnJlc2hlZBhbIAEoCzIeLm5vcmQuUmVjZWlwdC5TZXNzaW9uUmVmcmVzaGVkSAASQAoUc2VsZl9zZXNzaW9uX3Jldm9rZWQYXCABKAsyIC5ub3JkLlJlY2VpcHQuU2VsZlNlc3Npb25SZXZva2VkSAAaeAoGUG9zdGVkEhgKBHNpZGUYASABKA4yCi5ub3JkLlNpZGUSEQoJbWFya2V0X2lkGAIgASgNEg0KBXByaWNlGAMgASgEEgwKBHNpemUYBCABKAQSEAoIb3JkZXJfaWQYBSABKAQSEgoKYWNjb3VudF9pZBgGIAEoDRpwCgVUcmFkZRIQCghvcmRlcl9pZBgCIAEoBBINCgVwcmljZRgEIAEoBBIMCgRzaXplGAUgASgEEhIKCmFjY291bnRfaWQYBiABKA0SEQoJbWFrZXJfZmVlGAcgASgEEhEKCXRha2VyX2ZlZRgIIAEoBBptChNDcmVhdGVTZXNzaW9uUmVzdWx0EhIKCnNlc3Npb25faWQYASABKAQSDgoGZXhwaXJ5GAIgASgDEh0KEHJlZnJlc2hfZGVhZGxpbmUYAyABKANIAIgBAUITChFfcmVmcmVzaF9kZWFkbGluZRpMChBDYW5jZWxsZWRUcmlnZ2VyEhIKCmFjY291bnRfaWQYASABKA0SJAoHdHJpZ2dlchgCIAEoCzITLm5vcmQuVHJpZ2dlclJlY29yZBraAQoLT3JkZXJVcGRhdGUSMAoGcmVhc29uGAEgASgOMiAubm9yZC5SZWNlaXB0Lk9yZGVyVXBkYXRlLlJlYXNvbhISCgphY2NvdW50X2lkGAIgASgNEhAKCG9yZGVyX2lkGAMgASgEEhYKDnJlbWFpbmluZ19zaXplGAQgASgEEhYKDmNhbmNlbGxlZF9zaXplGAUgASgEEg0KBXByaWNlGAYgASgEIjQKBlJlYXNvbhIPCgtSRURVQ0VfT05MWRAAEhkKFVNFTEZfVFJBREVfUFJFVkVOVElPThABGvcCChBQbGFjZU9yZGVyUmVzdWx0EikKBnBvc3RlZBgBIAEoCzIULm5vcmQuUmVjZWlwdC5Qb3N0ZWRIAIgBARIiCgVmaWxscxgCIAMoCzITLm5vcmQuUmVjZWlwdC5UcmFkZRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAYgBARIfChJzZW5kZXJfdHJhY2tpbmdfaWQYBCABKARIAogBARI6ChJjYW5jZWxsZWRfdHJpZ2dlcnMYBSADKAsyHi5ub3JkLlJlY2VpcHQuQ2FuY2VsbGVkVHJpZ2dlchIwCg1vcmRlcl91cGRhdGVzGAYgAygLMhkubm9yZC5SZWNlaXB0Lk9yZGVyVXBkYXRlEjEKCXBsYWNlbWVudBgHIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZW1lbnRSZWNlaXB0QgkKB19wb3N0ZWRCEgoQX2NsaWVudF9vcmRlcl9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkGnoKHFJlZHVjZU9yZGVyTGlxdWlkYXRpb25SZXN1bHQSNgoOdHJhZGVfb3JfcGxhY2UYASABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdBIiCgZhY3Rpb24YAiABKAsyEi5ub3JkLlRyYWRlT3JQbGFjZRqvAQoQUGxhY2VtZW50UmVjZWlwdBIhCgRyb2xlGAEgASgOMhMubm9yZC5QbGFjZW1lbnRSb2xlEjgKB2FjY291bnQYAiABKAsyJS5ub3JkLlJlY2VpcHQuQWNjb3VudFBsYWNlbWVudFJlY2VpcHRIABI0CgV2YXVsdBgDIAEoCzIjLm5vcmQuUmVjZWlwdC5WYXVsdFBsYWNlbWVudFJlY2VpcHRIAEIICgZ0YXJnZXQaGQoXQWNjb3VudFBsYWNlbWVudFJlY2VpcHQaTAoVVmF1bHRQbGFjZW1lbnRSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEiEKBmhlYWx0aBgCIAEoCzIRLm5vcmQuVmF1bHRIZWFsdGga/gEKD1RyaWdnZXJFeGVjdXRlZBITCgtleGVjdXRvcl9pZBgBIAEoDRISCgphY2NvdW50X2lkGAIgASgNEhEKCW1hcmtldF9pZBgDIAEoDRIeCgd0cmlnZ2VyGAQgASgLMg0ubm9yZC5UcmlnZ2VyEhIKCnRyaWdnZXJfaWQYCCABKAQSMQoHc3VjY2VzcxgFIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASKQoHZmFpbHVyZRgGIAEoDjIWLm5vcmQuVHJpZ2dlckV4ZWNFcnJvckgAEhMKCWNhbmNlbGxlZBgHIAEoCEgAQggKBnN0YXR1cxoyCg5UYWtlQWxsQmFsYW5jZRIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQadwoPVGFrZUFsbFBvc2l0aW9uEhEKCW1hcmtldF9pZBgBIAEoDRIRCgliYXNlX3NpemUYAiABKAMSGAoQc2V0dGxlbWVudF9wcmljZRgDIAEoBBIkChBiYW5rcnVwdGN5X3F1b3RlGAQgASgLMgoubm9yZC5VMTI4GlMKE1Rha2VBbGxPcmRlclVwZGF0ZXMSEQoJbWFya2V0X2lkGAEgASgNEikKBm9yZGVycxgCIAMoCzIZLm5vcmQuUmVjZWlwdC5PcmRlclVwZGF0ZRraAQoWVGFrZUFsbFBvc2l0aW9uc1Jlc3VsdBIYChB0YWtlcl9hY2NvdW50X2lkGAEgASgNEjQKDnRha2VuX2JhbGFuY2VzGAMgAygLMhwubm9yZC5SZWNlaXB0LlRha2VBbGxCYWxhbmNlEjYKD3Rha2VuX3Bvc2l0aW9ucxgEIAMoCzIdLm5vcmQuUmVjZWlwdC5UYWtlQWxsUG9zaXRpb24SOAoNb3JkZXJfdXBkYXRlcxgFIAMoCzIhLm5vcmQuUmVjZWlwdC5UYWtlQWxsT3JkZXJVcGRhdGVzGnMKGUNsZWFyTWFya2V0Q2FuY2VsbGVkT3JkZXISEgoKYWNjb3VudF9pZBgBIAEoDRIQCghvcmRlcl9pZBgCIAEoBBIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAIgBAUISChBfY2xpZW50X29yZGVyX2lkGq0BChlDbGVhck1hcmtldENsb3NlZFBvc2l0aW9uEhIKCmFjY291bnRfaWQYASABKA0SEQoJYmFzZV9zaXplGAIgASgDEhgKEHNldHRsZW1lbnRfcHJpY2UYAyABKAQSGQoFcXVvdGUYBCABKAsyCi5ub3JkLlUxMjgSGQoRdHJhZGluZ19wbmxfZGVsdGEYBSABKAMSGQoRZnVuZGluZ19wbmxfZGVsdGEYBiABKAMaxQEKEUNsZWFyTWFya2V0UmVzdWx0EhEKCW1hcmtldF9pZBgBIAEoDRIXCg9jbGVhcmFuY2VfcHJpY2UYBSABKAQSQQoQY2FuY2VsbGVkX29yZGVycxgDIAMoCzInLm5vcmQuUmVjZWlwdC5DbGVhck1hcmtldENhbmNlbGxlZE9yZGVyEkEKEGNsb3NlZF9wb3NpdGlvbnMYBCADKAsyJy5ub3JkLlJlY2VpcHQuQ2xlYXJNYXJrZXRDbG9zZWRQb3NpdGlvbhqeAQoRQ2FuY2VsT3JkZXJSZXN1bHQSEAoIb3JkZXJfaWQYASABKAQSEgoKYWNjb3VudF9pZBgCIAEoDRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAIgBARIxCglwbGFjZW1lbnQYBCABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VtZW50UmVjZWlwdEISChBfY2xpZW50X29yZGVyX2lkGnAKDURlcG9zaXRSZXN1bHQSEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEEhIKCmFjY291bnRfaWQYAyABKA0SFAoMdXNlcl9jcmVhdGVkGAQgASgIEhMKC3VzZXJfcHVia2V5GAUgASgMGkMKEUluc2VydFRva2VuUmVzdWx0EhIKCmNoYWluX2FkZHIYASABKAwSGgoFdG9rZW4YAiABKAsyCy5ub3JkLlRva2VuGjIKEkluc2VydE1hcmtldFJlc3VsdBIcCgZtYXJrZXQYASABKAsyDC5ub3JkLk1hcmtldBp5Cg5XaXRoZHJhd1Jlc3VsdBIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQSDwoHYmFsYW5jZRgDIAEoBBISCgphY2NvdW50X2lkGAQgASgNEgsKA2ZlZRgFIAEoBBITCgt1c2VyX3B1YmtleRgGIAEoDBpAChZPcmFjbGVTeW1ib2xGZWVkUmVzdWx0EhUKDW9yYWNsZV9zeW1ib2wYASABKAkSDwoHZmVlZF9pZBgCIAEoDBonChJPcmFjbGVVcGRhdGVSZXN1bHQSEQoJdGltZXN0YW1wGAEgASgDGjcKG1B5dGhMYXplck9yYWNsZVVwZGF0ZVJlc3VsdBIYChB0aW1lc3RhbXBfbWlsbGlzGAEgASgEGlkKIFB5dGhMYXplclRydXN0ZWRTaWduZXJzU2V0UmVzdWx0EjUKD3RydXN0ZWRfc2lnbmVycxgBIAMoCzIcLm5vcmQuUHl0aExhemVyVHJ1c3RlZFNpZ25lchqaAQocUHl0aExhemVyRmVlZFN5bWJvbFNldFJlc3VsdBJECgVmZWVkcxgBIAMoCzI1Lm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0LkZlZWRTeW1ib2waNAoKRmVlZFN5bWJvbBIPCgdmZWVkX2lkGAEgASgNEhUKDW9yYWNsZV9zeW1ib2wYAiABKAkaSAoXVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHQSGgoSZ3VhcmRpYW5fc2V0X2luZGV4GAEgASgNEhEKCWFkZHJlc3NlcxgCIAMoDBpDCgxQZXJwUG9zaXRpb24SEQoJbWFya2V0X2lkGAEgASgNEhEKCWJhc2Vfc2l6ZRgCIAEoAxINCgVwcmljZRgDIAEoBBoQCg5TZXNzaW9uUmV2b2tlZBoUChJTZWxmU2Vzc2lvblJldm9rZWQaNgoQU2Vzc2lvblJlZnJlc2hlZBISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxoICgZQYXVzZWQaCgoIVW5wYXVzZWQaKAoSQmFja3N0b3BBY2NvdW50U2V0EhIKCmFjY291bnRfaWQYASABKA0a/AEKCVJlY2lwaWVudBIyCgdzcGVjaWFsGAEgASgLMh8ubm9yZC5SZWNlaXB0LlJlY2lwaWVudC5TcGVjaWFsSAASLgoFb3duZWQYAiABKAsyHS5ub3JkLlJlY2VpcHQuUmVjaXBpZW50Lk93bmVkSAASMgoHdW5vd25lZBgDIAEoCzIfLm5vcmQuUmVjZWlwdC5SZWNpcGllbnQuVW5vd25lZEgAGgkKB1NwZWNpYWwaGwoFT3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDRodCgdVbm93bmVkEhIKCmFjY291bnRfaWQYASABKA1CEAoOcmVjaXBpZW50X3R5cGUaowEKC1RyYW5zZmVycmVkEhcKD2Zyb21fYWNjb3VudF9pZBgBIAEoDRIrCgp0b19hY2NvdW50GAIgASgLMhcubm9yZC5SZWNlaXB0LlJlY2lwaWVudBIQCgh0b2tlbl9pZBgDIAEoDRIOCgZhbW91bnQYBCABKAQSFwoPYWNjb3VudF9jcmVhdGVkGAUgASgIEhMKC3VzZXJfcHVia2V5GAYgASgMGkoKE0ZlZVZhdWx0VHJhbnNmZXJyZWQSEQoJcmVjaXBpZW50GAEgASgNEhAKCHRva2VuX2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBp6CgxUcmlnZ2VyQWRkZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQafAoOVHJpZ2dlclJlbW92ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQagAEKDVRyaWdnZXJFZGl0ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEicKEHByZXZpb3VzX3RyaWdnZXIYAyABKAsyDS5ub3JkLlRyaWdnZXISHgoHdHJpZ2dlchgEIAEoCzINLm5vcmQuVHJpZ2dlcho4ChNNYXJrZXRGcmVlemVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIOCgZmcm96ZW4YAiABKAgakAEKEU1hcmtldE1vZGVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIlCgttYXJrZXRfbW9kZRgCIAEoDjIQLm5vcmQuTWFya2V0TW9kZRJBChBjYW5jZWxsZWRfb3JkZXJzGAMgAygLMicubm9yZC5SZWNlaXB0LkNsZWFyTWFya2V0Q2FuY2VsbGVkT3JkZXIaPwoMRmVlVGllckFkZGVkEiMKBmNvbmZpZxgBIAEoCzITLm5vcmQuRmVlVGllckNvbmZpZxIKCgJpZBgCIAEoDRpBCg5GZWVUaWVyVXBkYXRlZBIKCgJpZBgBIAEoDRIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaOAoTQWNjb3VudHNUaWVyVXBkYXRlZBIPCgd0aWVyX2lkGAEgASgNEhAKCGFjY291bnRzGAIgAygNGmAKCkFjbFVwZGF0ZWQSEgoKYWNsX3B1YmtleRgBIAEoDBISCgpyb2xlc19tYXNrGAIgASgEEhUKDXRhcmdldF9wdWJrZXkYAyABKAwSEwoLcm9sZXNfdmFsdWUYBCABKAQa7AMKGUF0b21pY1N1YmFjdGlvblJlc3VsdEtpbmQSPAoScGxhY2Vfb3JkZXJfcmVzdWx0GAEgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHRIABI3CgxjYW5jZWxfb3JkZXIYAiABKAsyHy5ub3JkLlJlY2VpcHQuQ2FuY2VsT3JkZXJSZXN1bHRIABIzCg10cmlnZ2VyX2FkZGVkGAMgASgLMhoubm9yZC5SZWNlaXB0LlRyaWdnZXJBZGRlZEgAEjcKD3RyaWdnZXJfcmVtb3ZlZBgEIAEoCzIcLm5vcmQuUmVjZWlwdC5UcmlnZ2VyUmVtb3ZlZEgAEjUKDnRyaWdnZXJfZWRpdGVkGAUgASgLMhsubm9yZC5SZWNlaXB0LlRyaWdnZXJFZGl0ZWRIABJOChhyZWR1Y2Vfb3JkZXJfbGlxdWlkYXRpb24YBiABKAsyKi5ub3JkLlJlY2VpcHQuUmVkdWNlT3JkZXJMaXF1aWRhdGlvblJlc3VsdEgAEioKCnJmcV9yZXN1bHQYByABKAsyFC5ub3JkLlBsYWNlUkZRUmVzdWx0SAASLgoPcmZxX2ZpbGxfcmVzdWx0GAggASgLMhMubm9yZC5GaWxsUkZRUmVzdWx0SABCBwoFaW5uZXIaSAoMQXRvbWljUmVzdWx0EjgKB3Jlc3VsdHMYASADKAsyJy5ub3JkLlJlY2VpcHQuQXRvbWljU3ViYWN0aW9uUmVzdWx0S2luZEIGCgRraW5kKhgKBFNpZGUSBwoDQVNLEAASBwoDQklEEAEqHwoKTWFya2V0TW9kZRIICgRDTE9CEAASBwoDUkZREAEqYwoMTWFya2V0UmVnaW1lEhgKFE1BUktFVF9SRUdJTUVfTk9STUFMEAASGwoXTUFSS0VUX1JFR0lNRV9QT1NUX09OTFkQARIcChhNQVJLRVRfUkVHSU1FX1RSQURFX09OTFkQAiotCgtUcmlnZ2VyS2luZBINCglTVE9QX0xPU1MQABIPCgtUQUtFX1BST0ZJVBABKiQKBkludGVudBIMCghERUNSRUFTRRAAEgwKCElOQ1JFQVNFEAEqTwoIRmlsbE1vZGUSCQoFTElNSVQQABINCglQT1NUX09OTFkQARIXChNJTU1FRElBVEVfT1JfQ0FOQ0VMEAISEAoMRklMTF9PUl9LSUxMEAMqrgEKDVBsYWNlbWVudFJvbGUSIAocUExBQ0VNRU5UX1JPTEVfQUNDT1VOVF9PV05FUhAAEiAKHFBMQUNFTUVOVF9ST0xFX1ZBVUxUX01BTkFHRVIQARIeChpQTEFDRU1FTlRfUk9MRV9TVVBFUl9BRE1JThACEhoKFlBMQUNFTUVOVF9ST0xFX1RSSUdHRVIQAxIdChlQTEFDRU1FTlRfUk9MRV9MSVFVSURBVE9SEAQqMQoTU2VsZlRyYWRlUHJldmVudGlvbhIICgROT05FEAASEAoMRVhQSVJFX01BS0VSEAEqJgoKTWFya2V0VHlwZRIICgRTUE9UEAASDgoKUEVSUEVUVUFMUxABKn0KEFRyaWdnZXJFeGVjRXJyb3ISDwoLTk9fUE9TSVRJT04QABITCg9QTEFOTklOR19GQUlMRUQQARIOCgpCQU5LUlVQVENZEAISFQoRUklTS19DSEVDS19GQUlMRUQQAxIcChhSRURVQ0VfT05MWV9DSEVDS19GQUlMRUQQBCofCg5TcGVjaWFsQWNjb3VudBINCglGRUVfVkFVTFQQACpdCgtWYXVsdFN0YXR1cxIXChNWQVVMVF9TVEFUVVNfQUNUSVZFEAASHAoYVkFVTFRfU1RBVFVTX0RFUklTS19PTkxZEAESFwoTVkFVTFRfU1RBVFVTX0ZST1pFThACKugpCgVFcnJvchINCglEVVBMSUNBVEUQABIVChFJTlZBTElEX1NJR05BVFVSRRADEhQKEE1BUktFVF9OT1RfRk9VTkQQBBITCg9UT0tFTl9OT1RfRk9VTkQQBRISCg5VU0VSX05PVF9GT1VORBAGEhUKEVNFU1NJT05fTk9UX0ZPVU5EEAcSEwoPT1JERVJfTk9UX0ZPVU5EEAgSEwoPT1JERVJfU0laRV9aRVJPEAkSDgoKQVJJVEhNRVRJQxALEhcKE0FSSVRITUVUSUNfT1ZFUkZMT1cQDBIYChRBUklUSE1FVElDX1VOREVSRkxPVxANEh8KG0FSSVRITUVUSUNfRElWSVNJT05fQllfWkVSTxAOEhoKFktFWV9BTFJFQURZX1JFR0lTVEVSRUQQDxIcChhVUERBVEVfVElNRVNUQU1QX0lOX1BBU1QQERIYChRUT09fTUFOWV9PUEVOX09SREVSUxASEh0KGVdJVEhEUkFXX0FNT1VOVF9UT09fU01BTEwQFRIpCiVTT1VSQ0VfQU5EX1RBUkdFVF9TSE9VTERfTk9UX0JFX0VRVUFMEBgSEgoOREVDT0RFX0ZBSUxVUkUQIBIgChxERUNPREVfRkFJTFVSRV9MRU5HVEhfUFJFRklYECESFgoSREVDT0RFX0ZBSUxVUkVfUkFXECISGQoVREVDT0RFX0ZBSUxVUkVfRE9NQUlOECMSHwobVVBEQVRFX1BVQkxJU0hfVElNRV9JTl9QQVNUECQSCwoHU0VTU0lPThAwEh8KG1NFU1NJT05fUkVGUkVTSF9OT1RfRU5BQkxFRBAxEioKJlNFU1NJT05fUkVGUkVTSF9ERUFETElORV9CRUZPUkVfRVhQSVJZEDISFwoTUFlUSF9GRUVEX05PVF9BRERFRBBdEhUKEVBZVEhfRkVFRF9NSVNTSU5HEF4SGwoXUFlUSF9GRUVEX0FMUkVBRFlfQURERUQQXxIjCh9QWVRIX0dVQVJESUFOX1NFVF9VTklOSVRJQUxJWkVEEGASHQoZUFlUSF9HVUFSRElBTl9TRVRfSU5WQUxJRBBhEiMKH1BZVEhfRkVFRF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQYhIgChxQWVRIX0ZFRURfUFJJQ0VfT1VUX09GX1JBTkdFEGMSIwofUFlUSF9GRUVEX1ZBUklBTkNFX09VVF9PRl9SQU5HRRBkEjUKMVBZVEhfR1VBUkRJQU5fU0VUX0FORF9QWVRIX1NJR05BVFVSRV9ET19OT1RfTUFUQ0gQZRIcChhJTlZBTElEX1RPS0VOX1BBUkFNRVRFUlMQZhIcChhJTkRFWF9QUklDRV9PVVRfT0ZfUkFOR0UQZxIfChtJTkRFWF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQaBIZChVJTlZBTElEX1NUQVRFX1ZFUlNJT04QaRITCg9JTlZBTElEX01BUkdJTlMQbBIhCh1NQVJLRVRfREVDSU1BTFNfRVhDRUVEX0xJTUlUUxBtEhMKD1RPT19NQU5ZX1RPS0VOUxBuEggKBFRJRVIQcxIZChVUSUVSX0ZFRV9PVVRfT0ZfUkFOR0UQdBIYChRUSUVSX0lEX09VVF9PRl9SQU5HRRB1EhIKDlRJRVJfTk9UX0ZPVU5EEHYSFAoQRlVORElOR19PVkVSRkxPVxB7EjcKM0NBTl9SRURVQ0VfUE9TSVRJT05fT05MWV9JRl9BTExfT1JERVJTX0FSRV9DQU5DRUxFRBB8EhcKE1VORVhQRUNURURfVE9LRU5fSUQQfxIWChFSRVBFQVRFRF9PUkRFUl9JRBCAARIeChlDTElFTlRfT1JERVJfSURfVE9PX0xBUkdFEIEBEhQKD1RPS0VOX05PVF9SRUFEWRCCARIdChhUT0tFTl9BTFJFQURZX1JFR0lTVEVSRUQQgwESIQocSU1NRURJQVRFX09SREVSX0dPVF9OT19GSUxMUxCFARIZChRGQUlMRURfVE9fRklMTF9MSU1JVBCGARIwCitQT1NUX09OTFlfTVVTVF9OT1RfRklMTF9BTllfT1BQT1NJVEVfT1JERVJTEIcBEgwKB0lOVkFMSUQQiAESEAoLTUFJTlRFTkFOQ0UQiQESGgoVTUlOSU1VTV9TSVpFX0RFQ0lNQUxTEIoBEjIKLVBBUkFNRVRFUlNfV0lMTF9DUkVBVEVfTk9OX09QRVJBVElPTkFMX01BUktFVBCLARIiCh1PTkxZX0lNTUVESUFURV9PUkRFUlNfQUxMT1dFRBCMARIbChZUT09fTUFOWV9VU0VSX0FDQ09VTlRTEI0BEhYKEUFDQ09VTlRfTk9UX0ZPVU5EEI4BEhoKFUFDQ09VTlRfSU5WQUxJRF9PV05FUhCPARIbChZTVUJBQ1RJT05fT1VUX09GX1JBTkdFEJABEhEKDERVU1RfQUNDT1VOVBCRARIMCgdCQUxBTkNFEKABEh0KGEJBTEFOQ0VfREVQT1NJVF9PVkVSRkxPVxChARIcChdCQUxBTkNFX0NIQU5HRV9PVkVSRkxPVxCiARIiCh1CQUxBTkNFX0NIQU5HRV9MSU1JVF9FWENFRURFRBCjARIZChRCQUxBTkNFX0lOU1VGRklDSUVOVBCkARIeChlVTkFVVEhFTlRJQ0FURURfTDFfQUNUSU9OEKUBEh0KGEVOQ09ERURfQUNUSU9OX1RPT19MQVJHRRCmARIMCgdUUklHR0VSEKgBEhoKFVRSSUdHRVJfSU5WQUxJRF9QUklDRRCpARIWChFUUklHR0VSX05PVF9GT1VORBCqARIrCiZUUklHR0VSX09OTFlfREVDUkVBU0VfT1JERVJTX1NVUFBPUlRFRBCrARIoCiNUUklHR0VSX01BWF9TSVpFX1BMQUNFTUVOVF9FWENFRURFRBCsARIYChNUUklHR0VSX05PVF9DSEFOR0VEEK0BEg4KCVRJTUVTVEFNUBCwARIfChpUSU1FU1RBTVBfT1VUX09GX1RIUkVTSE9MRBCxARIUCg9USU1FU1RBTVBfU1RBTEUQsgESHAoYRVhQSVJZX1RJTUVTVEFNUF9JTl9QQVNUEBASJQogQkFOS1JVUFRDWV9JTlNVRkZJQ0lFTlRfQ09WRVJBR0UQuQESGQoUQkFOS1JVUFRDWV9OT1RfRk9VTkQQugESGwoWQkFOS1JVUFRDWV9OT1RfQUxMT1dFRBC7ARIVChBNQVJLRVRfTk9UX1JFQURZEMABEhIKDU1BUktFVF9GUk9aRU4QwQESEQoMTUFSS0VUX0VNUFRZEMIBEjAKK01BUktFVF9NT0RFX0RPRVNfTk9UX1NVUFBPUlRfVEhJU19PUEVSQVRJT04QwwESDQoIUE9TSVRJT04QyAESFwoSUE9TSVRJT05fTk9UX0ZPVU5EEMkBEhkKFFBPU0lUSU9OX1NUQVRFX09SREVSEMoBEh8KGlBPU0lUSU9OX1NUQVRFX09SREVSX1BSSUNFEMsBEh4KGVBPU0lUSU9OX1NUQVRFX09SREVSX1NJWkUQzAESHgoZUE9TSVRJT05fU1RBVEVfT1JERVJfU0lERRDNARIYChNQT1NJVElPTl9TSVpFX0xJTUlUEM4BEhgKE1BPU0lUSU9OX1NUQVRFX1BFUlAQzwESJAofUE9TSVRJT05fU1RBVEVfT1JERVJfREVMRUdBVElPThDQARIKCgVQUklDRRDRARIbChZTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OENkBEjAKK1NJR05BVFVSRV9WRVJJRklDQVRJT05fTUFMRk9STUVEX1BVQkxJQ19LRVkQ2gESKgolU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9JTlZBTElEX0xFTkdUSBDbARIJCgRSSVNLEOABEjQKL1JJU0tfREVMRUdBVElPTl9NRl9UT19CRV9MRVNTX1RIQU5fT1JfRVFVQUxfTU1GEOEBEiQKH1JJU0tfT01GX0xFU1NfVEhBTl9PUl9FUVVBTF9JTUYQ4gESJAofUklTS19PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDjARI1CjBSSVNLX1VOSEVBTFRIWV9NRl9BTkRfUE9OX0FGVEVSX0JFVFRFUl9PRl9CRUZPUkUQ5AESKgolUklTS19UUkFERV9PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDlARIUCg9SSVNLX05PVF9FTk9VR0gQ5gESFAoPT1JERVJfRVhFQ1VUSU9OEPABEhoKFU9SREVSX0VYRUNVVElPTl9FTVBUWRDxARIhChxPUkRFUl9FWEVDVVRJT05fRklMTF9PUl9LSUxMEPIBEiMKHk9SREVSX0VYRUNVVElPTl9NSVNTSU5HX0xJTUlUUxDzARIiCh1PUkRFUl9FWEVDVVRJT05fTUlTU0lOR19QUklDRRD0ARIfChpPUkRFUl9FWEVDVVRJT05fU0laRV9MSU1JVBD1ARIgChtPUkRFUl9FWEVDVVRJT05fTElNSVRfUFJJQ0UQ9gESHgoZT1JERVJfUkVEVUNFX0lTX1BPU1RfT05MWRD3ARIfChpPUkRFUl9FWEVDVVRJT05fU0VMTF9QUklDRRD4ARIlCiBPUkRFUl9TSVpFX0VYQ0VFRFNfUE9TSVRJT05fU0laRRD5ARIMCgdBVE9NSUNTEIACEigKI0FUT01JQ1NfVFJBREVTX0NBTk5PVF9GT0xMT1dfUExBQ0VTEIECEjAKK0FUT01JQ1NfQ0FOQ0VMU19DQU5OT1RfRk9MTE9XX1RSQURFU19QTEFDRVMQggISHQoYQVRPTUlDU19EVVBMSUNBVEVfQ0FOQ0VMEIMCEhgKE1JGUV9PUkRFUl9USU1FT1VURUQQ+gESJgohQUNUSU9OX1BPU0lUSU9OX1NIT1VMRF9CRV9DT1ZFUkVEEJECEhkKFEFDVElPTl9JTlZBTElEX05PTkNFEJICEikKJEFDVElPTl9QUk9QT1NFRF9QUklDRV9NVVNUX0JFX0hJR0hFUhCTAhIcChdBRE1JTl9ST0xFX0lOU1VGRklDSUVOVBCUAhIUCg9BRE1JTl9OT1RfRk9VTkQQlQISKQokVU5JUVVFX1NVUEVSX0FETUlOX0NBTk5PVF9CRV9SRU1PVkVEEJYCEh8KGlNVUEVSX0FETUlOX0FMUkVBRFlfRVhJU1RTEJcCEhUKEFRSSUdHRVJfQ09ORkxJQ1QQmAISGgoVVFJJR0dFUl9FRElUX0NPTkZMSUNUEJkCEhwKF1RSSUdHRVJfUkVNT1ZFX0NPTkZMSUNUEJoCEg0KCFRSQU5TRkVSEKACEi4KKVRSQU5TRkVSX1RPX1VOT1dORURfQUNDT1VOVF9JU19QUk9ISUJJVEVEEKECEiwKJ1RSQU5TRkVSX1RPX09XTkVEX0FDQ09VTlRfV0FTX1JFUVVFU1RFRBCiAhIKCgVWQVVMVBCoAhIUCg9WQVVMVF9OT1RfRk9VTkQQqQISHQoYVkFVTFRfQUNUSU9OX05PVF9BTExPV0VEEKoCEhkKFFZBVUxUX1NUQVRVU19JTlZBTElEEKsCEiUKIFZBVUxUX1JFRFVDRV9PTkxZX09SREVSX1JFUVVJUkVEEKwCEiYKIVZBVUxUX0FDVElPTl9XT1VMRF9ERUdSQURFX1NUQVRVUxCtAhIZChRWQVVMVF9VU0VSX05PVF9GT1VORBCuAhIdChhWQVVMVF9VU0VSX0hBU19OT19TSEFSRVMQrwISHAoXVkFVTFRfUEVSTUlTU0lPTl9ERU5JRUQQtgISEgoNVkFVTFRfREVQT1NJVBCwAhIxCixWQVVMVF9ERVBPU0lUX0JPT1RTVFJBUF9SRVFVSVJFU19FTVBUWV9WQVVMVBCxAhIfChpWQVVMVF9ERVBPU0lUX0NBUF9FWENFRURFRBCyAhIpCiRWQVVMVF9ERVBPU0lUX1JFUVVJUkVTX0FDVElWRV9TVEFUVVMQswISLwoqVkFVTFRfREVQT1NJVF9DQVBfQkVMT1dfQ1VSUkVOVF9SQVdfRVFVSVRZELQCEhwKF1ZBVUxUX0RFUE9TSVRfVE9PX1NNQUxMELUCEhMKDlZBVUxUX1dJVEhEUkFXELgCEh4KGVZBVUxUX0lOU1VGRklDSUVOVF9TSEFSRVMQuQISLgopVkFVTFRfV0lUSERSQVdfUkVRVUlSRVNfTk9OX0ZST1pFTl9TVEFUVVMQugISIgodVkFVTFRfTk9fQ0xBSU1BQkxFX1dJVEhEUkFXQUwQuwISJQogVkFVTFRfV0lUSERSQVdfUVVPVEVfVU5BVkFJTEFCTEUQvAISLQooVkFVTFRfRFVTVF9FWElUX1JFUVVJUkVTX0ZVTExfU0hBUkVfRVhJVBC9AhI1CjBWQVVMVF9MQVNUX1NIQVJFX1dJVEhEUkFXX1JFUVVJUkVTX0VNUFRZX0FDQ09VTlQQvgISKAojVkFVTFRfV0lUSERSQVdfUkVRVUlSRVNfTElWRV9TSEFSRVMQvwISEgoNVkFVTFRfQ09OVFJPTBDAAhIdChhWQVVMVF9FUE9DSF9OT1RfRUxJR0lCTEUQwQISMQosVkFVTFRfUFJFVklPVVNfRVBPQ0hfV0lUSERSQVdBTFNfTk9UX1BBWUFCTEUQwgISMgotVkFVTFRfRlJFRVpFX1RIUkVTSE9MRF9NVVNUX0VYQ0VFRF9QUk9URUNUSU9OEMMCEh0KGFZBVUxUX0NPTkZJR19QQVRDSF9FTVBUWRDEAhIoCiNWQVVMVF9OT19TVEFUVVNfVFJBTlNJVElPTl9SRVFVSVJFRBDFAhItCihWQVVMVF9GUk9aRU5fU1RBVFVTX1JFUVVJUkVTX1NVUEVSX0FETUlOEMYCEioKJVZBVUxUX05FV19DT05GSUdfV09VTERfREVHUkFERV9TVEFUVVMQxwISDgoJUkZRX0VSUk9SEMgCEhAKC1JGUV9USU1FT1VUEMkCEhQKD05PVF9JTVBMRU1FTlRFRBD0AxIXChJBQ1RJT05fTk9UX0FMTE9XRUQQ9QMSGAoTTk9UX1NVUFBPUlRFRF9JTlBVVBD2AxIMCgdEUk9QUEVEEOcHYgZwcm90bzM");
|
|
57297
|
+
var file_nord = /* @__PURE__ */ fileDesc("Cgpub3JkLnByb3RvEgRub3JkIh4KBFUxMjgSCgoCbG8YASABKAQSCgoCaGkYAiABKAQikAIKCFJmcVRyYWRlEhsKDnRpbWVvdXRfbWlsbGlzGAEgASgNSACIAQESEQoJbWFya2V0X2lkGAIgASgNEhAKCG9yZGVyX2lkGAMgASgEEg0KBXByaWNlGAQgASgEEhgKEHRpbWVzdGFtcF9taWxsaXMYBSABKAMSGwoOaXNfcmVkdWNlX29ubHkYBiABKAhIAYgBARIZCgxtaW5pbXVtX3NpemUYByABKARIAogBARIZCgxtYXhpbXVtX3NpemUYCCABKARIA4gBAUIRCg9fdGltZW91dF9taWxsaXNCEQoPX2lzX3JlZHVjZV9vbmx5Qg8KDV9taW5pbXVtX3NpemVCDwoNX21heGltdW1fc2l6ZSKwAgoMUmZxUGxhY2VPbmx5EhEKCW1hcmtldF9pZBgHIAEoDRIbCg50aW1lb3V0X21pbGxpcxgBIAEoDUgAiAEBEhwKD2NsaWVudF9vcmRlcl9pZBgCIAEoBEgBiAEBEg0KBXByaWNlGAMgASgEEhgKBHNpZGUYBCABKA4yCi5ub3JkLlNpZGUSGAoQdGltZXN0YW1wX21pbGxpcxgGIAEoAxIMCgRzaXplGAggASgEEhkKDG1pbmltYWxfZmlsbBgJIAEoBEgCiAEBEhsKDmlzX3JlZHVjZV9vbmx5GAogASgISAOIAQFCEQoPX3RpbWVvdXRfbWlsbGlzQhIKEF9jbGllbnRfb3JkZXJfaWRCDwoNX21pbmltYWxfZmlsbEIRCg9faXNfcmVkdWNlX29ubHkiIwoMU2V0UmZxTWFrZXJzEhMKC2FjY291bnRfaWRzGAEgAygNIiUKEFNldE1hcmtldE1vZGVSRlESEQoJbWFya2V0X2lkGAEgASgNItMCCg9DcmVhdGVSZnFNYXJrZXQSMAoIZGVjaW1hbHMYASABKAsyHi5ub3JkLkNyZWF0ZVJmcU1hcmtldC5EZWNpbWFscxIuCgdtYXJnaW5zGAIgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuTWFyZ2lucxIuCgdzeW1ib2xzGAMgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuU3ltYm9scxo5CghEZWNpbWFscxIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNGjwKB01hcmdpbnMSDwoHaW1mX2JwcxgDIAEoDRIPCgdjbWZfYnBzGAQgASgNEg8KB21tZl9icHMYBSABKA0aNQoHU3ltYm9scxITCgt2aWV3X3N5bWJvbBgHIAEoCRIVCg1vcmFjbGVfc3ltYm9sGAggASgJIpQBCg5SZnFUcmFkZUFjdGlvbhIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIcChRxdW90ZV90aW1lb3V0X21pbGxpcxgEIAEoDRITCgliYXNlX3NpemUYBSABKANIAEIKCghxdWFudGl0eUoECAYQByLbAgoPUmZxVHJhZGVSZWNlaXB0EhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIwCgdzdWNjZXNzGAMgASgLMh0ubm9yZC5SZnFUcmFkZVJlY2VpcHQuU3VjY2Vzc0gAEjYKB2ZhaWx1cmUYBCABKA4yIy5ub3JkLlJmcVRyYWRlUmVjZWlwdC5GYWlsdXJlUmVhc29uSAAaggEKB1N1Y2Nlc3MSEAoIcXVvdGVfaWQYASABKAQSGAoEc2lkZRgCIAEoDjIKLm5vcmQuU2lkZRIYChBmaWxsZWRfYmFzZV9zaXplGAMgASgEEiIKDnF1b3RlX25vdGlvbmFsGAQgASgLMgoubm9yZC5VMTI4Eg0KBXByaWNlGAUgASgEIioKDUZhaWx1cmVSZWFzb24SCwoHVElNRU9VVBAAEgwKCFJFSkVDVEVEEAFCCAoGcmVzdWx0IjoKDlBsYWNlUkZRUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhYKDnRpbWVvdXRfbWlsbGlzGAIgASgNIk4KDFJGUUV4ZWN1dGlvbhITCgtmaWxsZWRfc2l6ZRgBIAEoBBIQCgh0cmFkZV9pZBgCIAEoBBIXCg9leGVjdXRpb25fcHJpY2UYAyABKAQifAoNRmlsbFJGUVJlc3VsdBIQCghvcmRlcl9pZBgBIAEoBBIYChBtYWtlcl9hY2NvdW50X2lkGAIgASgNEhgKEHRha2VyX2FjY291bnRfaWQYAyABKA0SJQoJZXhlY3V0aW9uGAQgASgLMhIubm9yZC5SRlFFeGVjdXRpb24iIwoMUmZxTWFrZXJzU2V0EhMKC2FjY291bnRfaWRzGAEgAygNIiYKC1JGUVF0eVBsYWNlEhcKA3F0eRgBIAEoCzIKLm5vcmQuVTEyOCI9Cg1GZWVUaWVyQ29uZmlnEhUKDW1ha2VyX2ZlZV9wcG0YASABKA0SFQoNdGFrZXJfZmVlX3BwbRgCIAEoDSKBAQoRRmVlVGllclR5cGVDb25maWcSGgoSY2xvYl9tYWtlcl9mZWVfcHBtGAEgASgNEhoKEmNsb2JfdGFrZXJfZmVlX3BwbRgCIAEoDRIZChFyZnFfbWFrZXJfZmVlX3BwbRgDIAEoDRIZChFyZnFfdGFrZXJfZmVlX3BwbRgEIAEoDSL3AQoGTWFya2V0EhEKCW1hcmtldF9pZBgBIAEoDRIWCg5wcmljZV9kZWNpbWFscxgCIAEoDRIVCg1zaXplX2RlY2ltYWxzGAMgASgNEhUKDWJhc2VfdG9rZW5faWQYBCABKA0SJQoLbWFya2V0X3R5cGUYBSABKA4yEC5ub3JkLk1hcmtldFR5cGUSDwoHaW1mX2JwcxgGIAEoDRIPCgdjbWZfYnBzGAcgASgNEg8KB21tZl9icHMYCCABKA0SJQoLbWFya2V0X21vZGUYCSABKA4yEC5ub3JkLk1hcmtldE1vZGUSEwoLdmlld19zeW1ib2wYCiABKAkiWgoFVG9rZW4SEAoIdG9rZW5faWQYASABKA0SFgoOdG9rZW5fZGVjaW1hbHMYAiABKA0SEgoKd2VpZ2h0X2JwcxgEIAEoDRITCgt2aWV3X3N5bWJvbBgFIAEoCSK2AQoLVmF1bHRIZWFsdGgSKgoRcmF3X2FjY291bnRfdmFsdWUYASABKAsyCi5ub3JkLlUxMjhIAIgBARIrChJzYWZlX2FjY291bnRfdmFsdWUYAiABKAsyCi5ub3JkLlUxMjhIAYgBARIhCgZzdGF0dXMYAyABKA4yES5ub3JkLlZhdWx0U3RhdHVzQhQKEl9yYXdfYWNjb3VudF92YWx1ZUIVChNfc2FmZV9hY2NvdW50X3ZhbHVlIrABCgtWYXVsdENvbmZpZxIfCgtkZXBvc2l0X2NhcBgBIAEoCzIKLm5vcmQuVTEyOBIiChpvcGVuX3Bvc2l0aW9uX2Rpc2NvdW50X2JwcxgCIAEoDRIfChdkcmF3ZG93bl9wcm90ZWN0aW9uX2JwcxgDIAEoDRIbChNkcmF3ZG93bl9mcmVlemVfYnBzGAQgASgNEh4KFmVwb2NoX21pbl9kdXJhdGlvbl9zZWMYBSABKA0izAIKEFZhdWx0Q29uZmlnUGF0Y2gSJAoLZGVwb3NpdF9jYXAYASABKAsyCi5ub3JkLlUxMjhIAIgBARInChpvcGVuX3Bvc2l0aW9uX2Rpc2NvdW50X2JwcxgCIAEoDUgBiAEBEiQKF2RyYXdkb3duX3Byb3RlY3Rpb25fYnBzGAMgASgNSAKIAQESIAoTZHJhd2Rvd25fZnJlZXplX2JwcxgEIAEoDUgDiAEBEiMKFmVwb2NoX21pbl9kdXJhdGlvbl9zZWMYBSABKA1IBIgBAUIOCgxfZGVwb3NpdF9jYXBCHQobX29wZW5fcG9zaXRpb25fZGlzY291bnRfYnBzQhoKGF9kcmF3ZG93bl9wcm90ZWN0aW9uX2Jwc0IWChRfZHJhd2Rvd25fZnJlZXplX2Jwc0IZChdfZXBvY2hfbWluX2R1cmF0aW9uX3NlYyJICgtDcmVhdGVWYXVsdBIWCg5tYW5hZ2VyX3B1YmtleRgBIAEoDBIhCgZjb25maWcYAiABKAsyES5ub3JkLlZhdWx0Q29uZmlnIlMKEVVwZGF0ZVZhdWx0Q29uZmlnEhAKCHZhdWx0X2lkGAEgASgNEiwKDGNvbmZpZ19wYXRjaBgCIAEoCzIWLm5vcmQuVmF1bHRDb25maWdQYXRjaCI7Cg9TZXRWYXVsdE1hbmFnZXISEAoIdmF1bHRfaWQYASABKA0SFgoObWFuYWdlcl9wdWJrZXkYAiABKAwiNwoPVmF1bHRTeW5jRXBvY2hzEhIKCnNlc3Npb25faWQYASABKAQSEAoIdmF1bHRfaWQYAiABKA0iTgoRU3RhZ2VkQWRtaW5BY3Rpb24SFAoMYWRtaW5fcHVia2V5GAEgASgMEiMKBGtpbmQYAiABKAsyFS5ub3JkLkFkbWluQWN0aW9uS2luZCKzBAoPQWRtaW5BY3Rpb25LaW5kEikKDGNyZWF0ZV92YXVsdBgBIAEoCzIRLm5vcmQuQ3JlYXRlVmF1bHRIABI2ChN1cGRhdGVfdmF1bHRfY29uZmlnGAIgASgLMhcubm9yZC5VcGRhdGVWYXVsdENvbmZpZ0gAEjIKEXNldF92YXVsdF9tYW5hZ2VyGAMgASgLMhUubm9yZC5TZXRWYXVsdE1hbmFnZXJIABIyChFjcmVhdGVfcmZxX21hcmtldBgEIAEoCzIVLm5vcmQuQ3JlYXRlUmZxTWFya2V0SAASVgohc2V0X21hcmtldF9tb2RlX2Nsb2JfdHJhZGluZ19vbmx5GAUgASgLMikubm9yZC5BY3Rpb24uU2V0TWFya2V0TW9kZUNMT0JUcmFkaW5nT25seUgAEjUKE3NldF9tYXJrZXRfbW9kZV9yZnEYBiABKAsyFi5ub3JkLlNldE1hcmtldE1vZGVSRlFIABJQCh5zZXRfbWFya2V0X21vZGVfY2xvYl9wb3N0X29ubHkYByABKAsyJi5ub3JkLkFjdGlvbi5TZXRNYXJrZXRNb2RlQ0xPQlBvc3RPbmx5SAASPgoUc2V0X21hcmtldF9tb2RlX2Nsb2IYCCABKAsyHi5ub3JkLkFjdGlvbi5TZXRNYXJrZXRNb2RlQ0xPQkgAEiwKDnNldF9yZnFfbWFrZXJzGAkgASgLMhIubm9yZC5TZXRSZnFNYWtlcnNIAEIGCgRraW5kIkQKDFZhdWx0RGVwb3NpdBISCgpzZXNzaW9uX2lkGAEgASgEEhAKCHZhdWx0X2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBCL1AQoNVmF1bHRXaXRoZHJhdxISCgpzZXNzaW9uX2lkGAEgASgEEhAKCHZhdWx0X2lkGAIgASgNEi4KB3JlcXVlc3QYAyABKAsyGy5ub3JkLlZhdWx0V2l0aGRyYXcuUmVxdWVzdEgAEioKBWNsYWltGAQgASgLMhkubm9yZC5WYXVsdFdpdGhkcmF3LkNsYWltSAAaUQoHUmVxdWVzdBIYCg5xdW90ZV9ub3Rpb25hbBgBIAEoBEgAEiIKDHNoYXJlX2Ftb3VudBgCIAEoCzIKLm5vcmQuVTEyOEgAQggKBmFtb3VudBoHCgVDbGFpbUIGCgRraW5kIp4BChJDcmVhdGVWYXVsdFJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SGAoQdmF1bHRfYWNjb3VudF9pZBgCIAEoDRIWCg5tYW5hZ2VyX3B1YmtleRgDIAEoDBIhCgZzdGF0dXMYBCABKA4yES5ub3JkLlZhdWx0U3RhdHVzEiEKBmNvbmZpZxgFIAEoCzIRLm5vcmQuVmF1bHRDb25maWcicgoYVXBkYXRlVmF1bHRDb25maWdSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEiEKBmNvbmZpZxgCIAEoCzIRLm5vcmQuVmF1bHRDb25maWcSIQoGc3RhdHVzGAMgASgOMhEubm9yZC5WYXVsdFN0YXR1cyJCChZTZXRWYXVsdE1hbmFnZXJSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhYKDm1hbmFnZXJfcHVia2V5GAIgASgMIvsBChZWYXVsdFN5bmNFcG9jaHNSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhcKD2Nsb3NlZF9lcG9jaF9pZBgCIAEoDRIYChBjbGFpbWFibGVfYW1vdW50GAMgASgEEiEKBnN0YXR1cxgEIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSIQoGZXBvY2hzGAUgASgLMhEubm9yZC5WYXVsdEVwb2NocxIlChFsaXZlX3NoYXJlX3N1cHBseRgGIAEoCzIKLm5vcmQuVTEyOBIVCg1xdW90ZV9iYWxhbmNlGAcgASgDEhgKEHZhdWx0X2FjY291bnRfaWQYCCABKA0ijwIKE1ZhdWx0RGVwb3NpdFJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBIhCg1zaGFyZXNfaXNzdWVkGAQgASgLMgoubm9yZC5VMTI4Eh8KC3VzZXJfc2hhcmVzGAUgASgLMgoubm9yZC5VMTI4EiUKEWxpdmVfc2hhcmVfc3VwcGx5GAYgASgLMgoubm9yZC5VMTI4EiEKBnN0YXR1cxgHIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSGAoQdmF1bHRfYWNjb3VudF9pZBgIIAEoDRIVCg1xdW90ZV9iYWxhbmNlGAkgASgDIlUKEVdpdGhkcmF3YWxCdWNrZXRzEhUKDWN1cnJlbnRfZXBvY2gYASABKAQSFgoOcHJldmlvdXNfZXBvY2gYAiABKAQSEQoJY2xhaW1hYmxlGAMgASgEIoUBCgtWYXVsdFBwc1JlZhIQCghlcG9jaF9pZBgBIAEoDRIrChJzYWZlX2FjY291bnRfdmFsdWUYAiABKAsyCi5ub3JkLlUxMjhIAIgBARIgCgxzaGFyZV9zdXBwbHkYAyABKAsyCi5ub3JkLlUxMjhCFQoTX3NhZmVfYWNjb3VudF92YWx1ZSKWAgoLVmF1bHRFcG9jaHMSGAoQY3VycmVudF9lcG9jaF9pZBgBIAEoDRIgChhjdXJyZW50X2Vwb2NoX3N0YXJ0ZWRfYXQYAiABKAMSIgoVcGFpZF90aHJvdWdoX2Vwb2NoX2lkGAMgASgNSACIAQESLAoLd2l0aGRyYXdhbHMYBCABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEi8KFGxhdGVzdF9lcG9jaF9wcHNfcmVmGAUgASgLMhEubm9yZC5WYXVsdFBwc1JlZhIuChNwcmlvcl9lcG9jaF9wcHNfcmVmGAYgASgLMhEubm9yZC5WYXVsdFBwc1JlZkIYChZfcGFpZF90aHJvdWdoX2Vwb2NoX2lkIo8BCg5WYXVsdFVzZXJTdGF0ZRIaCgZzaGFyZXMYASABKAsyCi5ub3JkLlUxMjgSLAoLd2l0aGRyYXdhbHMYAiABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEhgKEGN1cnJlbnRfZXBvY2hfaWQYAyABKA0SGQoRcHJldmlvdXNfZXBvY2hfaWQYBCABKA0itgMKFFZhdWx0V2l0aGRyYXdSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhUKDXRvX2FjY291bnRfaWQYAiABKA0SOQoJcmVxdWVzdGVkGAMgASgLMiQubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5SZXF1ZXN0ZWRIABI1CgdjbGFpbWVkGAQgASgLMiIubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5DbGFpbWVkSAASLQoPcG9zdF91c2VyX3N0YXRlGAUgASgLMhQubm9yZC5WYXVsdFVzZXJTdGF0ZRIlChFsaXZlX3NoYXJlX3N1cHBseRgGIAEoCzIKLm5vcmQuVTEyOBIhCgZzdGF0dXMYByABKA4yES5ub3JkLlZhdWx0U3RhdHVzEhgKEHZhdWx0X2FjY291bnRfaWQYCCABKA0SFQoNcXVvdGVfYmFsYW5jZRgJIAEoAxo2CglSZXF1ZXN0ZWQSDQoFcXVvdGUYASABKAQSGgoGYnVybmVkGAIgASgLMgoubm9yZC5VMTI4GhkKB0NsYWltZWQSDgoGYW1vdW50GAEgASgEQgYKBGtpbmQiSQoKT3JkZXJMaW1pdBINCgVwcmljZRgGIAEoBBIMCgRzaXplGAcgASgEEh4KCnF1b3RlX3NpemUYCCABKAsyCi5ub3JkLlUxMjgiuQEKCVBsYWNlVHlwZRIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiEKCWZpbGxfbW9kZRgEIAEoDjIOLm5vcmQuRmlsbE1vZGUSFgoOaXNfcmVkdWNlX29ubHkYBSABKAgSPQoVc2VsZl90cmFkZV9wcmV2ZW50aW9uGAYgASgOMhkubm9yZC5TZWxmVHJhZGVQcmV2ZW50aW9uSACIAQFCGAoWX3NlbGZfdHJhZGVfcHJldmVudGlvbiLJAQoMVHJhZGVPclBsYWNlEhEKCW1hcmtldF9pZBgCIAEoDRIjCgpwbGFjZV90eXBlGAMgASgLMg8ubm9yZC5QbGFjZVR5cGUSHwoFbGltaXQYBiABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoPY2xpZW50X29yZGVyX2lkGCEgASgESACIAQESIQoIcmVmZXJyZXIYIiABKAsyCi5ub3JkLlUxMjhIAYgBAUISChBfY2xpZW50X29yZGVyX2lkQgsKCV9yZWZlcnJlciIpChVBdG9taWNDYW5jZWxPcmRlckJ5SWQSEAoIb3JkZXJfaWQYAiABKAQiNgobQXRvbWljQ2FuY2VsT3JkZXJCeUNsaWVudElkEhcKD2NsaWVudF9vcmRlcl9pZBgCIAEoBCKGAQoQQXRvbWljQWRkVHJpZ2dlchIkCgd0cmlnZ2VyGAEgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhwKBmludGVudBgCIAEoDjIMLm5vcmQuSW50ZW50EiEKCHJlZmVycmVyGAMgASgLMgoubm9yZC5VMTI4SACIAQFCCwoJX3JlZmVycmVyIlEKEUF0b21pY0VkaXRUcmlnZ2VyEhIKCnRyaWdnZXJfaWQYASABKAQSKAoLbmV3X3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQiPAoTQXRvbWljUmVtb3ZlVHJpZ2dlchIRCgltYXJrZXRfaWQYASABKA0SEgoKdHJpZ2dlcl9pZBgCIAEoBCIrChZSZWR1Y2VPcmRlckxpcXVpZGF0aW9uEhEKCW1hcmtldF9pZBgCIAEoDSLPAQoVQXRvbWljU3ViYWN0aW9uS2luZFYxEiwKDnRyYWRlX29yX3BsYWNlGAYgASgLMhIubm9yZC5UcmFkZU9yUGxhY2VIABIzCgxjYW5jZWxfb3JkZXIYByABKAsyGy5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlJZEgAEkYKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYCCABKAsyIS5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlDbGllbnRJZEgAOgIYAUIHCgVpbm5lciKwAQoIQXRvbWljVjESEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAMgASgESAGIAQESLAoHYWN0aW9ucxgGIAMoCzIbLm5vcmQuQXRvbWljU3ViYWN0aW9uS2luZFYxOgIYAUINCgtfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkIscECg9BdG9taWNTdWJhY3Rpb24SFAoHdXNlX2tleRgBIAEoCEgBiAEBEh4KEXRhcmdldF9hY2NvdW50X2lkGCAgASgNSAKIAQESLAoOdHJhZGVfb3JfcGxhY2UYBiABKAsyEi5ub3JkLlRyYWRlT3JQbGFjZUgAEjMKDGNhbmNlbF9vcmRlchgHIAEoCzIbLm5vcmQuQXRvbWljQ2FuY2VsT3JkZXJCeUlkSAASRgoZY2FuY2VsX29yZGVyX2J5X2NsaWVudF9pZBgIIAEoCzIhLm5vcmQuQXRvbWljQ2FuY2VsT3JkZXJCeUNsaWVudElkSAASLQoLYWRkX3RyaWdnZXIYCSABKAsyFi5ub3JkLkF0b21pY0FkZFRyaWdnZXJIABIvCgxlZGl0X3RyaWdnZXIYCiABKAsyFy5ub3JkLkF0b21pY0VkaXRUcmlnZ2VySAASMwoOcmVtb3ZlX3RyaWdnZXIYCyABKAsyGS5ub3JkLkF0b21pY1JlbW92ZVRyaWdnZXJIABJAChhyZWR1Y2Vfb3JkZXJfbGlxdWlkYXRpb24YDCABKAsyHC5ub3JkLlJlZHVjZU9yZGVyTGlxdWlkYXRpb25IABIsCg5yZnFfcGxhY2Vfb25seRgNIAEoCzISLm5vcmQuUmZxUGxhY2VPbmx5SAASIwoJcmZxX3RyYWRlGA4gASgLMg4ubm9yZC5SZnFUcmFkZUgAQgcKBWlubmVyQgoKCF91c2Vfa2V5QhQKEl90YXJnZXRfYWNjb3VudF9pZCKkAQoGQXRvbWljEhIKCnNlc3Npb25faWQYASABKAQSFwoKYWNjb3VudF9pZBgCIAEoDUgAiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgDIAEoBEgBiAEBEiYKB2FjdGlvbnMYBiADKAsyFS5ub3JkLkF0b21pY1N1YmFjdGlvbkINCgtfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkIjwKFlB5dGhMYXplclRydXN0ZWRTaWduZXISDgoGcHVia2V5GAEgASgMEhIKCmV4cGlyZXNfYXQYAiABKAMilgEKDVRyaWdnZXJSZWNvcmQSFQoNdHJpZ2dlcl9wcmljZRgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SIAoGbGltaXRzGAMgASgLMhAubm9yZC5PcmRlckxpbWl0Eh8KBGtpbmQYBCABKA4yES5ub3JkLlRyaWdnZXJLaW5kEhgKBHNpZGUYBSABKA4yCi5ub3JkLlNpZGUimwEKB1RyaWdnZXISFQoNdHJpZ2dlcl9wcmljZRgBIAEoBBIfCgRraW5kGAIgASgOMhEubm9yZC5UcmlnZ2VyS2luZBIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiAKBmxpbWl0cxgEIAEoCzIQLm5vcmQuT3JkZXJMaW1pdBIcCgZpbnRlbnQYBSABKA4yDC5ub3JkLkludGVudCK9NQoGQWN0aW9uEhkKEWN1cnJlbnRfdGltZXN0YW1wGAEgASgDEg0KBW5vbmNlGAIgASgNEjQKDmNyZWF0ZV9zZXNzaW9uGAQgASgLMhoubm9yZC5BY3Rpb24uQ3JlYXRlU2Vzc2lvbkgAEjAKDGNyZWF0ZV90b2tlbhgFIAEoCzIYLm5vcmQuQWN0aW9uLkNyZWF0ZVRva2VuSAASMgoNY3JlYXRlX21hcmtldBgGIAEoCzIZLm5vcmQuQWN0aW9uLkNyZWF0ZU1hcmtldEgAEi4KC3BsYWNlX29yZGVyGAcgASgLMhcubm9yZC5BY3Rpb24uUGxhY2VPcmRlckgAEjoKEmNhbmNlbF9vcmRlcl9ieV9pZBgIIAEoCzIcLm5vcmQuQWN0aW9uLkNhbmNlbE9yZGVyQnlJZEgAEicKB2RlcG9zaXQYCSABKAsyFC5ub3JkLkFjdGlvbi5EZXBvc2l0SAASKQoId2l0aGRyYXcYCiABKAsyFS5ub3JkLkFjdGlvbi5XaXRoZHJhd0gAEkwKG3B5dGhfc2V0X3dvcm1ob2xlX2d1YXJkaWFucxgLIAEoCzIlLm5vcmQuQWN0aW9uLlB5dGhTZXRXb3JtaG9sZUd1YXJkaWFuc0gAEj4KFHB5dGhfc2V0X3N5bWJvbF9mZWVkGAwgASgLMh4ubm9yZC5BY3Rpb24uUHl0aFNldFN5bWJvbEZlZWRIABJCChZweXRoX3ByaWNlX2ZlZWRfdXBkYXRlGA0gASgLMiAubm9yZC5BY3Rpb24uUHl0aFByaWNlRmVlZFVwZGF0ZUgAEjQKDnJldm9rZV9zZXNzaW9uGA8gASgLMhoubm9yZC5BY3Rpb24uUmV2b2tlU2Vzc2lvbkgAEiMKBXBhdXNlGBAgASgLMhIubm9yZC5BY3Rpb24uUGF1c2VIABInCgd1bnBhdXNlGBEgASgLMhQubm9yZC5BY3Rpb24uVW5wYXVzZUgAEikKCHRyYW5zZmVyGBIgASgLMhUubm9yZC5BY3Rpb24uVHJhbnNmZXJIABIuCgthZGRfdHJpZ2dlchggIAEoCzIXLm5vcmQuQWN0aW9uLkFkZFRyaWdnZXJIABI0Cg5yZW1vdmVfdHJpZ2dlchghIAEoCzIaLm5vcmQuQWN0aW9uLlJlbW92ZVRyaWdnZXJIABInCglhdG9taWNfdjEYIyABKAsyDi5ub3JkLkF0b21pY1YxQgIYAUgAEjIKDWZyZWV6ZV9tYXJrZXQYJCABKAsyGS5ub3JkLkFjdGlvbi5GcmVlemVNYXJrZXRIABI2Cg91bmZyZWV6ZV9tYXJrZXQYJSABKAsyGy5ub3JkLkFjdGlvbi5VbmZyZWV6ZU1hcmtldEgAEiwKCnVwZGF0ZV9hY2wYKSABKAsyFi5ub3JkLkFjdGlvbi5VcGRhdGVBY2xIABI7ChJmZWVfdmF1bHRfdHJhbnNmZXIYKiABKAsyHS5ub3JkLkFjdGlvbi5GZWVWYXVsdFRyYW5zZmVySAASOwoSdGFrZV9hbGxfcG9zaXRpb25zGCsgASgLMh0ubm9yZC5BY3Rpb24uVGFrZUFsbFBvc2l0aW9uc0gAEkcKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYLCABKAsyIi5ub3JkLkFjdGlvbi5DYW5jZWxPcmRlckJ5Q2xpZW50SWRIABI2Cg9leGVjdXRlX3RyaWdnZXIYLSABKAsyGy5ub3JkLkFjdGlvbi5FeGVjdXRlVHJpZ2dlckgAEj8KFHNldF9iYWNrc3RvcF9hY2NvdW50GC4gASgLMh8ubm9yZC5BY3Rpb24uU2V0QmFja3N0b3BBY2NvdW50SAASMAoMZWRpdF90cmlnZ2VyGC8gASgLMhgubm9yZC5BY3Rpb24uRWRpdFRyaWdnZXJIABIeCgZhdG9taWMYMCABKAsyDC5ub3JkLkF0b21pY0gAEigKBWFkbWluGDEgASgLMhcubm9yZC5TdGFnZWRBZG1pbkFjdGlvbkgAEjAKDGNsZWFyX21hcmtldBgyIAEoCzIYLm5vcmQuQWN0aW9uLkNsZWFyTWFya2V0SAASMgoRdmF1bHRfc3luY19lcG9jaHMYNSABKAsyFS5ub3JkLlZhdWx0U3luY0Vwb2Noc0gAEisKDXZhdWx0X2RlcG9zaXQYNiABKAsyEi5ub3JkLlZhdWx0RGVwb3NpdEgAEi0KDnZhdWx0X3dpdGhkcmF3GDcgASgLMhMubm9yZC5WYXVsdFdpdGhkcmF3SAASUQoecHl0aF9sYXplcl9zZXRfdHJ1c3RlZF9zaWduZXJzGDkgASgLMicubm9yZC5BY3Rpb24uUHl0aExhemVyU2V0VHJ1c3RlZFNpZ25lcnNIABJJChpweXRoX2xhemVyX3NldF9mZWVkX3N5bWJvbBg6IAEoCzIjLm5vcmQuQWN0aW9uLlB5dGhMYXplclNldEZlZWRTeW1ib2xIABJNChxweXRoX2xhemVyX3ByaWNlX2ZlZWRfdXBkYXRlGDsgASgLMiUubm9yZC5BY3Rpb24uUHl0aExhemVyUHJpY2VGZWVkVXBkYXRlSAASNgoPcmVmcmVzaF9zZXNzaW9uGDwgASgLMhsubm9yZC5BY3Rpb24uUmVmcmVzaFNlc3Npb25IABI9ChNzZWxmX3Jldm9rZV9zZXNzaW9uGD0gASgLMh4ubm9yZC5BY3Rpb24uU2VsZlJldm9rZVNlc3Npb25IABI4ChFhZGRfZmVlX3RpZXJfdHlwZRg+IAEoCzIbLm5vcmQuQWN0aW9uLkFkZEZlZVRpZXJUeXBlSAASPgoUdXBkYXRlX2ZlZV90aWVyX3R5cGUYPyABKAsyHi5ub3JkLkFjdGlvbi5VcGRhdGVGZWVUaWVyVHlwZUgAElgKInVwZGF0ZV9hY2NvdW50c19mZWVfdGllcl90eXBlX21vZGUYQCABKAsyKi5ub3JkLkFjdGlvbi5VcGRhdGVBY2NvdW50c0ZlZVRpZXJUeXBlTW9kZUgAGuMBCg1DcmVhdGVTZXNzaW9uEhMKC3VzZXJfcHVia2V5GAEgASgMEhYKDnNlc3Npb25fcHVia2V5GAIgASgMEhgKEGV4cGlyeV90aW1lc3RhbXAYAyABKAMSQQoRc2lnbmF0dXJlX2ZyYW1pbmcYBCABKA4yIS5ub3JkLkFjdGlvbi5Vc2VyU2lnbmF0dXJlRnJhbWluZ0gAiAEBEh0KEHJlZnJlc2hfZGVhZGxpbmUYBSABKANIAYgBAUIUChJfc2lnbmF0dXJlX2ZyYW1pbmdCEwoRX3JlZnJlc2hfZGVhZGxpbmUaiwEKC0NyZWF0ZVRva2VuEhYKDnRva2VuX2RlY2ltYWxzGAEgASgNEhIKCndlaWdodF9icHMYAyABKA0SEwoLdmlld19zeW1ib2wYBCABKAkSFQoNb3JhY2xlX3N5bWJvbBgFIAEoCRIQCghzb2xfYWRkchgGIAEoDBISCgphY2xfcHVia2V5GAcgASgMGjEKHFNldE1hcmtldE1vZGVDTE9CVHJhZGluZ09ubHkSEQoJbWFya2V0X2lkGAEgASgNGi4KGVNldE1hcmtldE1vZGVDTE9CUG9zdE9ubHkSEQoJbWFya2V0X2lkGAEgASgNGiYKEVNldE1hcmtldE1vZGVDTE9CEhEKCW1hcmtldF9pZBgBIAEoDRruAQoMQ3JlYXRlTWFya2V0EhUKDXNpemVfZGVjaW1hbHMYASABKA0SFgoOcHJpY2VfZGVjaW1hbHMYAiABKA0SDwoHaW1mX2JwcxgDIAEoDRIPCgdjbWZfYnBzGAQgASgNEg8KB21tZl9icHMYBSABKA0SJQoLbWFya2V0X3R5cGUYBiABKA4yEC5ub3JkLk1hcmtldFR5cGUSEwoLdmlld19zeW1ib2wYByABKAkSFQoNb3JhY2xlX3N5bWJvbBgIIAEoCRIVCg1iYXNlX3Rva2VuX2lkGAkgASgNEhIKCmFjbF9wdWJrZXkYCiABKAwaqgQKClBsYWNlT3JkZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIhCglmaWxsX21vZGUYBCABKA4yDi5ub3JkLkZpbGxNb2RlEhYKDmlzX3JlZHVjZV9vbmx5GAUgASgIEg0KBXByaWNlGAYgASgEEgwKBHNpemUYByABKAQSHgoKcXVvdGVfc2l6ZRgIIAEoCzIKLm5vcmQuVTEyOBIhChRkZWxlZ2F0b3JfYWNjb3VudF9pZBggIAEoDUgAiAEBEhwKD2NsaWVudF9vcmRlcl9pZBghIAEoBEgBiAEBEh4KEXNlbmRlcl9hY2NvdW50X2lkGCIgASgNSAKIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGCMgASgESAOIAQESPQoVc2VsZl90cmFkZV9wcmV2ZW50aW9uGCQgASgOMhkubm9yZC5TZWxmVHJhZGVQcmV2ZW50aW9uSASIAQESIQoIcmVmZXJyZXIYJSABKAsyCi5ub3JkLlUxMjhIBYgBAUIXChVfZGVsZWdhdG9yX2FjY291bnRfaWRCEgoQX2NsaWVudF9vcmRlcl9pZEIUChJfc2VuZGVyX2FjY291bnRfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZEIYChZfc2VsZl90cmFkZV9wcmV2ZW50aW9uQgsKCV9yZWZlcnJlchqpAQoPQ2FuY2VsT3JkZXJCeUlkEhIKCnNlc3Npb25faWQYASABKAQSEAoIb3JkZXJfaWQYAiABKAQSIQoUZGVsZWdhdG9yX2FjY291bnRfaWQYICABKA1IAIgBARIeChFzZW5kZXJfYWNjb3VudF9pZBghIAEoDUgBiAEBQhcKFV9kZWxlZ2F0b3JfYWNjb3VudF9pZEIUChJfc2VuZGVyX2FjY291bnRfaWQaegoVQ2FuY2VsT3JkZXJCeUNsaWVudElkEhIKCnNlc3Npb25faWQYASABKAQSFwoPY2xpZW50X29yZGVyX2lkGAIgASgEEh4KEXNlbmRlcl9hY2NvdW50X2lkGAMgASgNSACIAQFCFAoSX3NlbmRlcl9hY2NvdW50X2lkGm8KB0RlcG9zaXQSFAoMYWN0aW9uX25vbmNlGAEgASgEEhIKCnRva2VuX2FkZHIYAiABKAwSDgoGYW1vdW50GAMgASgEEhMKC3VzZXJfcHVia2V5GAQgASgMEhUKDXNlbmRlcl9wdWJrZXkYBSABKAwaagoIV2l0aGRyYXcSEAoIdG9rZW5faWQYASABKA0SEgoKc2Vzc2lvbl9pZBgCIAEoBBIOCgZhbW91bnQYAyABKAQSGAoLZGVzdF9wdWJrZXkYBCABKAxIAIgBAUIOCgxfZGVzdF9wdWJrZXkaXQoYUHl0aFNldFdvcm1ob2xlR3VhcmRpYW5zEhoKEmd1YXJkaWFuX3NldF9pbmRleBgBIAEoDRIRCglhZGRyZXNzZXMYAiADKAwSEgoKYWNsX3B1YmtleRgDIAEoDBpVChFQeXRoU2V0U3ltYm9sRmVlZBIVCg1vcmFjbGVfc3ltYm9sGAEgASgJEhUKDXByaWNlX2ZlZWRfaWQYAiABKAwSEgoKYWNsX3B1YmtleRgDIAEoDBovChNQeXRoUHJpY2VGZWVkVXBkYXRlEhgKEHJhd19weXRobmV0X2RhdGEYASABKAwaUgoYUHl0aExhemVyUHJpY2VGZWVkVXBkYXRlEg8KB3BheWxvYWQYASABKAwSEQoJc2lnbmF0dXJlGAIgASgMEhIKCnB1YmxpY19rZXkYAyABKAwaZwoaUHl0aExhemVyU2V0VHJ1c3RlZFNpZ25lcnMSEgoKYWNsX3B1YmtleRgBIAEoDBI1Cg90cnVzdGVkX3NpZ25lcnMYAiADKAsyHC5ub3JkLlB5dGhMYXplclRydXN0ZWRTaWduZXIaqwEKFlB5dGhMYXplclNldEZlZWRTeW1ib2wSEgoKYWNsX3B1YmtleRgBIAEoDBJCCgVmZWVkcxgCIAMoCzIzLm5vcmQuQWN0aW9uLlB5dGhMYXplclNldEZlZWRTeW1ib2wuRmVlZFN5bWJvbElucHV0GjkKD0ZlZWRTeW1ib2xJbnB1dBIPCgdmZWVkX2lkGAEgASgNEhUKDW9yYWNsZV9zeW1ib2wYAiABKAkaIwoNUmV2b2tlU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEGjQKDlJlZnJlc2hTZXNzaW9uEhIKCnNlc3Npb25faWQYASABKAQSDgoGZXhwaXJ5GAIgASgDGicKEVNlbGZSZXZva2VTZXNzaW9uEhIKCnNlc3Npb25faWQYASABKAQaGwoFUGF1c2USEgoKYWNsX3B1YmtleRgBIAEoDBodCgdVbnBhdXNlEhIKCmFjbF9wdWJrZXkYASABKAwaYwoSU2V0QmFja3N0b3BBY2NvdW50EhIKCmFjbF9wdWJrZXkYASABKAwSEgoKYWNjb3VudF9pZBgCIAEoDRIlCgttYXJrZXRfbW9kZRgDIAEoDjIQLm5vcmQuTWFya2V0TW9kZRr5AQoJUmVjaXBpZW50EjEKB3NwZWNpYWwYASABKAsyHi5ub3JkLkFjdGlvbi5SZWNpcGllbnQuU3BlY2lhbEgAEi0KBW93bmVkGAIgASgLMhwubm9yZC5BY3Rpb24uUmVjaXBpZW50Lk93bmVkSAASMQoHdW5vd25lZBgDIAEoCzIeLm5vcmQuQWN0aW9uLlJlY2lwaWVudC5Vbm93bmVkSAAaCQoHU3BlY2lhbBobCgVPd25lZBISCgphY2NvdW50X2lkGAEgASgNGh0KB1Vub3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDUIQCg5yZWNpcGllbnRfdHlwZRqfAQoIVHJhbnNmZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCg9mcm9tX2FjY291bnRfaWQYAiABKA0SEAoIdG9rZW5faWQYAyABKA0SDgoGYW1vdW50GAQgASgEEjIKDXRvX2FjY291bnRfaWQYCCABKAsyFi5ub3JkLkFjdGlvbi5SZWNpcGllbnRIAIgBAUIQCg5fdG9fYWNjb3VudF9pZBpbChBGZWVWYXVsdFRyYW5zZmVyEhIKCmFjbF9wdWJrZXkYASABKAwSEQoJcmVjaXBpZW50GAIgASgNEhAKCHRva2VuX2lkGAMgASgNEg4KBmFtb3VudBgEIAEoBBq8AQoKQWRkVHJpZ2dlchISCgpzZXNzaW9uX2lkGAEgASgEEiQKB3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAMgASgOMgwubm9yZC5JbnRlbnQSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBEiEKCHJlZmVycmVyGAsgASgLMgoubm9yZC5VMTI4SAGIAQFCDQoLX2FjY291bnRfaWRCCwoJX3JlZmVycmVyGocBCgtFZGl0VHJpZ2dlchISCgpzZXNzaW9uX2lkGAEgASgEEhIKCnRyaWdnZXJfaWQYAiABKAQSKAoLbmV3X3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBQg0KC19hY2NvdW50X2lkGnIKDVJlbW92ZVRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SEgoKdHJpZ2dlcl9pZBgDIAEoBBIXCgphY2NvdW50X2lkGAogASgNSACIAQFCDQoLX2FjY291bnRfaWQadAoOQWRkRmVlVGllclR5cGUSEgoKYWNsX3B1YmtleRgBIAEoDBIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRInCgZjb25maWcYAyABKAsyFy5ub3JkLkZlZVRpZXJUeXBlQ29uZmlnGoMBChFVcGRhdGVGZWVUaWVyVHlwZRIKCgJpZBgBIAEoDRIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRInCgZjb25maWcYAyABKAsyFy5ub3JkLkZlZVRpZXJUeXBlQ29uZmlnEhIKCmFjbF9wdWJrZXkYBCABKAwafQodVXBkYXRlQWNjb3VudHNGZWVUaWVyVHlwZU1vZGUSDwoHdGllcl9pZBgBIAEoDRIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIQCghhY2NvdW50cxgDIAMoDRISCgphY2xfcHVia2V5GAQgASgMGl8KCVVwZGF0ZUFjbBISCgphY2xfcHVia2V5GAEgASgMEhUKDXRhcmdldF9wdWJrZXkYAiABKAwSEgoKcm9sZXNfbWFzaxgDIAEoDRITCgtyb2xlc192YWx1ZRgEIAEoDRo1CgxGcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aNwoOVW5mcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aTQoLQ2xlYXJNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0SFwoPY2xlYXJhbmNlX3ByaWNlGAMgASgEGmEKDkV4ZWN1dGVUcmlnZ2VyEhQKDGV4ZWN1dG9yX3NpZBgBIAEoBBISCgphY2NvdW50X2lkGAIgASgNEhEKCW1hcmtldF9pZBgDIAEoDRISCgp0cmlnZ2VyX2lkGAQgASgEGkEKEFRha2VBbGxQb3NpdGlvbnMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIZChF0YXJnZXRfYWNjb3VudF9pZBgCIAEoDSI3ChRVc2VyU2lnbmF0dXJlRnJhbWluZxIHCgNIRVgQABIWChJTT0xBTkFfVFJBTlNBQ1RJT04QAUIGCgRraW5kItRECgdSZWNlaXB0EhEKCWFjdGlvbl9pZBgBIAEoBBIaCgNlcnIYICABKA4yCy5ub3JkLkVycm9ySAASQgoVY3JlYXRlX3Nlc3Npb25fcmVzdWx0GCEgASgLMiEubm9yZC5SZWNlaXB0LkNyZWF0ZVNlc3Npb25SZXN1bHRIABI4Cg50cmFkZV9vcl9wbGFjZRgiIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASPgoTY2FuY2VsX29yZGVyX3Jlc3VsdBgjIAEoCzIfLm5vcmQuUmVjZWlwdC5DYW5jZWxPcmRlclJlc3VsdEgAEjUKDmRlcG9zaXRfcmVzdWx0GCQgASgLMhsubm9yZC5SZWNlaXB0LkRlcG9zaXRSZXN1bHRIABI+ChNpbnNlcnRfdG9rZW5fcmVzdWx0GCUgASgLMh8ubm9yZC5SZWNlaXB0Lkluc2VydFRva2VuUmVzdWx0SAASQAoUaW5zZXJ0X21hcmtldF9yZXN1bHQYJiABKAsyIC5ub3JkLlJlY2VpcHQuSW5zZXJ0TWFya2V0UmVzdWx0SAASNwoPd2l0aGRyYXdfcmVzdWx0GCcgASgLMhwubm9yZC5SZWNlaXB0LldpdGhkcmF3UmVzdWx0SAASSQoZb3JhY2xlX3N5bWJvbF9mZWVkX3Jlc3VsdBgoIAEoCzIkLm5vcmQuUmVjZWlwdC5PcmFjbGVTeW1ib2xGZWVkUmVzdWx0SAASQAoUb3JhY2xlX3VwZGF0ZV9yZXN1bHQYKSABKAsyIC5ub3JkLlJlY2VpcHQuT3JhY2xlVXBkYXRlUmVzdWx0SAASSwoadXBkYXRlX2d1YXJkaWFuX3NldF9yZXN1bHQYKiABKAsyJS5ub3JkLlJlY2VpcHQuVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHRIABI3Cg9zZXNzaW9uX3Jldm9rZWQYLCABKAsyHC5ub3JkLlJlY2VpcHQuU2Vzc2lvblJldm9rZWRIABImCgZwYXVzZWQYLSABKAsyFC5ub3JkLlJlY2VpcHQuUGF1c2VkSAASKgoIdW5wYXVzZWQYLiABKAsyFi5ub3JkLlJlY2VpcHQuVW5wYXVzZWRIABIwCgt0cmFuc2ZlcnJlZBgvIAEoCzIZLm5vcmQuUmVjZWlwdC5UcmFuc2ZlcnJlZEgAEjMKDXRyaWdnZXJfYWRkZWQYQCABKAsyGi5ub3JkLlJlY2VpcHQuVHJpZ2dlckFkZGVkSAASNwoPdHJpZ2dlcl9yZW1vdmVkGEEgASgLMhwubm9yZC5SZWNlaXB0LlRyaWdnZXJSZW1vdmVkSAASLAoGYXRvbWljGEMgASgLMhoubm9yZC5SZWNlaXB0LkF0b21pY1Jlc3VsdEgAEkIKFW1hcmtldF9mcmVlemVfdXBkYXRlZBhEIAEoCzIhLm5vcmQuUmVjZWlwdC5NYXJrZXRGcmVlemVVcGRhdGVkSAASLwoLYWNsX3VwZGF0ZWQYSCABKAsyGC5ub3JkLlJlY2VpcHQuQWNsVXBkYXRlZEgAEkIKFWZlZV92YXVsdF90cmFuc2ZlcnJlZBhJIAEoCzIhLm5vcmQuUmVjZWlwdC5GZWVWYXVsdFRyYW5zZmVycmVkSAASOQoQdHJpZ2dlcl9leGVjdXRlZBhKIAEoCzIdLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRXhlY3V0ZWRIABJJChl0YWtlX2FsbF9wb3NpdGlvbnNfcmVzdWx0GEsgASgLMiQubm9yZC5SZWNlaXB0LlRha2VBbGxQb3NpdGlvbnNSZXN1bHRIABJAChRiYWNrc3RvcF9hY2NvdW50X3NldBhMIAEoCzIgLm5vcmQuUmVjZWlwdC5CYWNrc3RvcEFjY291bnRTZXRIABI1Cg50cmlnZ2VyX2VkaXRlZBhNIAEoCzIbLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRWRpdGVkSAASMQoNdmF1bHRfY3JlYXRlZBhOIAEoCzIYLm5vcmQuQ3JlYXRlVmF1bHRSZWNlaXB0SAASPgoUdmF1bHRfY29uZmlnX3VwZGF0ZWQYTyABKAsyHi5ub3JkLlVwZGF0ZVZhdWx0Q29uZmlnUmVjZWlwdEgAEj0KFXZhdWx0X21hbmFnZXJfdXBkYXRlZBhQIAEoCzIcLm5vcmQuU2V0VmF1bHRNYW5hZ2VyUmVjZWlwdEgAEjsKE3ZhdWx0X2Vwb2Noc19zeW5jZWQYUSABKAsyHC5ub3JkLlZhdWx0U3luY0Vwb2Noc1JlY2VpcHRIABI0Cg92YXVsdF9kZXBvc2l0ZWQYUiABKAsyGS5ub3JkLlZhdWx0RGVwb3NpdFJlY2VpcHRIABI1Cg92YXVsdF93aXRoZHJhd24YUyABKAsyGi5ub3JkLlZhdWx0V2l0aGRyYXdSZWNlaXB0SAASPgoTY2xlYXJfbWFya2V0X3Jlc3VsdBhUIAEoCzIfLm5vcmQuUmVjZWlwdC5DbGVhck1hcmtldFJlc3VsdEgAElQKH3B5dGhfbGF6ZXJfb3JhY2xlX3VwZGF0ZV9yZXN1bHQYVSABKAsyKS5ub3JkLlJlY2VpcHQuUHl0aExhemVyT3JhY2xlVXBkYXRlUmVzdWx0SAASXwolcHl0aF9sYXplcl90cnVzdGVkX3NpZ25lcnNfc2V0X3Jlc3VsdBhWIAEoCzIuLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJUcnVzdGVkU2lnbmVyc1NldFJlc3VsdEgAElcKIXB5dGhfbGF6ZXJfZmVlZF9zeW1ib2xfc2V0X3Jlc3VsdBhXIAEoCzIqLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0SAASVQofcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uX3Jlc3VsdBhYIAEoCzIqLm5vcmQuUmVjZWlwdC5SZWR1Y2VPcmRlckxpcXVpZGF0aW9uUmVzdWx0SAASPgoTbWFya2V0X21vZGVfdXBkYXRlZBhZIAEoCzIfLm5vcmQuUmVjZWlwdC5NYXJrZXRNb2RlVXBkYXRlZEgAEiwKDnJmcV9tYWtlcnNfc2V0GFogASgLMhIubm9yZC5SZnFNYWtlcnNTZXRIABI7ChFzZXNzaW9uX3JlZnJlc2hlZBhbIAEoCzIeLm5vcmQuUmVjZWlwdC5TZXNzaW9uUmVmcmVzaGVkSAASQAoUc2VsZl9zZXNzaW9uX3Jldm9rZWQYXCABKAsyIC5ub3JkLlJlY2VpcHQuU2VsZlNlc3Npb25SZXZva2VkSAASPQoTZmVlX3RpZXJfdHlwZV9hZGRlZBhdIAEoCzIeLm5vcmQuUmVjZWlwdC5GZWVUaWVyVHlwZUFkZGVkSAASQQoVZmVlX3RpZXJfdHlwZV91cGRhdGVkGF4gASgLMiAubm9yZC5SZWNlaXB0LkZlZVRpZXJUeXBlVXBkYXRlZEgAElsKI2FjY291bnRzX2ZlZV90aWVyX3R5cGVfbW9kZV91cGRhdGVkGF8gASgLMiwubm9yZC5SZWNlaXB0LkFjY291bnRzRmVlVGllclR5cGVNb2RlVXBkYXRlZEgAGngKBlBvc3RlZBIYCgRzaWRlGAEgASgOMgoubm9yZC5TaWRlEhEKCW1hcmtldF9pZBgCIAEoDRINCgVwcmljZRgDIAEoBBIMCgRzaXplGAQgASgEEhAKCG9yZGVyX2lkGAUgASgEEhIKCmFjY291bnRfaWQYBiABKA0acAoFVHJhZGUSEAoIb3JkZXJfaWQYAiABKAQSDQoFcHJpY2UYBCABKAQSDAoEc2l6ZRgFIAEoBBISCgphY2NvdW50X2lkGAYgASgNEhEKCW1ha2VyX2ZlZRgHIAEoBBIRCgl0YWtlcl9mZWUYCCABKAQabQoTQ3JlYXRlU2Vzc2lvblJlc3VsdBISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxIdChByZWZyZXNoX2RlYWRsaW5lGAMgASgDSACIAQFCEwoRX3JlZnJlc2hfZGVhZGxpbmUaTAoQQ2FuY2VsbGVkVHJpZ2dlchISCgphY2NvdW50X2lkGAEgASgNEiQKB3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQa2gEKC09yZGVyVXBkYXRlEjAKBnJlYXNvbhgBIAEoDjIgLm5vcmQuUmVjZWlwdC5PcmRlclVwZGF0ZS5SZWFzb24SEgoKYWNjb3VudF9pZBgCIAEoDRIQCghvcmRlcl9pZBgDIAEoBBIWCg5yZW1haW5pbmdfc2l6ZRgEIAEoBBIWCg5jYW5jZWxsZWRfc2l6ZRgFIAEoBBINCgVwcmljZRgGIAEoBCI0CgZSZWFzb24SDwoLUkVEVUNFX09OTFkQABIZChVTRUxGX1RSQURFX1BSRVZFTlRJT04QARr3AgoQUGxhY2VPcmRlclJlc3VsdBIpCgZwb3N0ZWQYASABKAsyFC5ub3JkLlJlY2VpcHQuUG9zdGVkSACIAQESIgoFZmlsbHMYAiADKAsyEy5ub3JkLlJlY2VpcHQuVHJhZGUSHAoPY2xpZW50X29yZGVyX2lkGAMgASgESAGIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAQgASgESAKIAQESOgoSY2FuY2VsbGVkX3RyaWdnZXJzGAUgAygLMh4ubm9yZC5SZWNlaXB0LkNhbmNlbGxlZFRyaWdnZXISMAoNb3JkZXJfdXBkYXRlcxgGIAMoCzIZLm5vcmQuUmVjZWlwdC5PcmRlclVwZGF0ZRIxCglwbGFjZW1lbnQYByABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VtZW50UmVjZWlwdEIJCgdfcG9zdGVkQhIKEF9jbGllbnRfb3JkZXJfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZBp6ChxSZWR1Y2VPcmRlckxpcXVpZGF0aW9uUmVzdWx0EjYKDnRyYWRlX29yX3BsYWNlGAEgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHQSIgoGYWN0aW9uGAIgASgLMhIubm9yZC5UcmFkZU9yUGxhY2UarwEKEFBsYWNlbWVudFJlY2VpcHQSIQoEcm9sZRgBIAEoDjITLm5vcmQuUGxhY2VtZW50Um9sZRI4CgdhY2NvdW50GAIgASgLMiUubm9yZC5SZWNlaXB0LkFjY291bnRQbGFjZW1lbnRSZWNlaXB0SAASNAoFdmF1bHQYAyABKAsyIy5ub3JkLlJlY2VpcHQuVmF1bHRQbGFjZW1lbnRSZWNlaXB0SABCCAoGdGFyZ2V0GhkKF0FjY291bnRQbGFjZW1lbnRSZWNlaXB0GkwKFVZhdWx0UGxhY2VtZW50UmVjZWlwdBIQCgh2YXVsdF9pZBgBIAEoDRIhCgZoZWFsdGgYAiABKAsyES5ub3JkLlZhdWx0SGVhbHRoGv4BCg9UcmlnZ2VyRXhlY3V0ZWQSEwoLZXhlY3V0b3JfaWQYASABKA0SEgoKYWNjb3VudF9pZBgCIAEoDRIRCgltYXJrZXRfaWQYAyABKA0SHgoHdHJpZ2dlchgEIAEoCzINLm5vcmQuVHJpZ2dlchISCgp0cmlnZ2VyX2lkGAggASgEEjEKB3N1Y2Nlc3MYBSABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdEgAEikKB2ZhaWx1cmUYBiABKA4yFi5ub3JkLlRyaWdnZXJFeGVjRXJyb3JIABITCgljYW5jZWxsZWQYByABKAhIAEIICgZzdGF0dXMaMgoOVGFrZUFsbEJhbGFuY2USEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEGncKD1Rha2VBbGxQb3NpdGlvbhIRCgltYXJrZXRfaWQYASABKA0SEQoJYmFzZV9zaXplGAIgASgDEhgKEHNldHRsZW1lbnRfcHJpY2UYAyABKAQSJAoQYmFua3J1cHRjeV9xdW90ZRgEIAEoCzIKLm5vcmQuVTEyOBpTChNUYWtlQWxsT3JkZXJVcGRhdGVzEhEKCW1hcmtldF9pZBgBIAEoDRIpCgZvcmRlcnMYAiADKAsyGS5ub3JkLlJlY2VpcHQuT3JkZXJVcGRhdGUa1gEKElRha2VBbGxUYWtlclJlc3VsdBIYChB0YWtlcl9hY2NvdW50X2lkGAEgASgNEjQKDnRha2VuX2JhbGFuY2VzGAIgAygLMhwubm9yZC5SZWNlaXB0LlRha2VBbGxCYWxhbmNlEjYKD3Rha2VuX3Bvc2l0aW9ucxgDIAMoCzIdLm5vcmQuUmVjZWlwdC5UYWtlQWxsUG9zaXRpb24SOAoNb3JkZXJfdXBkYXRlcxgEIAMoCzIhLm5vcmQuUmVjZWlwdC5UYWtlQWxsT3JkZXJVcGRhdGVzGkoKFlRha2VBbGxQb3NpdGlvbnNSZXN1bHQSMAoGdGFrZXJzGAYgAygLMiAubm9yZC5SZWNlaXB0LlRha2VBbGxUYWtlclJlc3VsdBpoCg5DYW5jZWxsZWRPcmRlchISCgphY2NvdW50X2lkGAEgASgNEhAKCG9yZGVyX2lkGAIgASgEEhwKD2NsaWVudF9vcmRlcl9pZBgDIAEoBEgAiAEBQhIKEF9jbGllbnRfb3JkZXJfaWQarQEKGUNsZWFyTWFya2V0Q2xvc2VkUG9zaXRpb24SEgoKYWNjb3VudF9pZBgBIAEoDRIRCgliYXNlX3NpemUYAiABKAMSGAoQc2V0dGxlbWVudF9wcmljZRgDIAEoBBIZCgVxdW90ZRgEIAEoCzIKLm5vcmQuVTEyOBIZChF0cmFkaW5nX3BubF9kZWx0YRgFIAEoAxIZChFmdW5kaW5nX3BubF9kZWx0YRgGIAEoAxq6AQoRQ2xlYXJNYXJrZXRSZXN1bHQSEQoJbWFya2V0X2lkGAEgASgNEhcKD2NsZWFyYW5jZV9wcmljZRgFIAEoBBI2ChBjYW5jZWxsZWRfb3JkZXJzGAMgAygLMhwubm9yZC5SZWNlaXB0LkNhbmNlbGxlZE9yZGVyEkEKEGNsb3NlZF9wb3NpdGlvbnMYBCADKAsyJy5ub3JkLlJlY2VpcHQuQ2xlYXJNYXJrZXRDbG9zZWRQb3NpdGlvbhqeAQoRQ2FuY2VsT3JkZXJSZXN1bHQSEAoIb3JkZXJfaWQYASABKAQSEgoKYWNjb3VudF9pZBgCIAEoDRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAIgBARIxCglwbGFjZW1lbnQYBCABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VtZW50UmVjZWlwdEISChBfY2xpZW50X29yZGVyX2lkGnAKDURlcG9zaXRSZXN1bHQSEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEEhIKCmFjY291bnRfaWQYAyABKA0SFAoMdXNlcl9jcmVhdGVkGAQgASgIEhMKC3VzZXJfcHVia2V5GAUgASgMGkMKEUluc2VydFRva2VuUmVzdWx0EhIKCmNoYWluX2FkZHIYASABKAwSGgoFdG9rZW4YAiABKAsyCy5ub3JkLlRva2VuGjIKEkluc2VydE1hcmtldFJlc3VsdBIcCgZtYXJrZXQYASABKAsyDC5ub3JkLk1hcmtldBp5Cg5XaXRoZHJhd1Jlc3VsdBIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQSDwoHYmFsYW5jZRgDIAEoBBISCgphY2NvdW50X2lkGAQgASgNEgsKA2ZlZRgFIAEoBBITCgt1c2VyX3B1YmtleRgGIAEoDBpAChZPcmFjbGVTeW1ib2xGZWVkUmVzdWx0EhUKDW9yYWNsZV9zeW1ib2wYASABKAkSDwoHZmVlZF9pZBgCIAEoDBonChJPcmFjbGVVcGRhdGVSZXN1bHQSEQoJdGltZXN0YW1wGAEgASgDGjcKG1B5dGhMYXplck9yYWNsZVVwZGF0ZVJlc3VsdBIYChB0aW1lc3RhbXBfbWlsbGlzGAEgASgEGlkKIFB5dGhMYXplclRydXN0ZWRTaWduZXJzU2V0UmVzdWx0EjUKD3RydXN0ZWRfc2lnbmVycxgBIAMoCzIcLm5vcmQuUHl0aExhemVyVHJ1c3RlZFNpZ25lchqaAQocUHl0aExhemVyRmVlZFN5bWJvbFNldFJlc3VsdBJECgVmZWVkcxgBIAMoCzI1Lm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0LkZlZWRTeW1ib2waNAoKRmVlZFN5bWJvbBIPCgdmZWVkX2lkGAEgASgNEhUKDW9yYWNsZV9zeW1ib2wYAiABKAkaSAoXVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHQSGgoSZ3VhcmRpYW5fc2V0X2luZGV4GAEgASgNEhEKCWFkZHJlc3NlcxgCIAMoDBpDCgxQZXJwUG9zaXRpb24SEQoJbWFya2V0X2lkGAEgASgNEhEKCWJhc2Vfc2l6ZRgCIAEoAxINCgVwcmljZRgDIAEoBBoQCg5TZXNzaW9uUmV2b2tlZBoUChJTZWxmU2Vzc2lvblJldm9rZWQaNgoQU2Vzc2lvblJlZnJlc2hlZBISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxoICgZQYXVzZWQaCgoIVW5wYXVzZWQaTwoSQmFja3N0b3BBY2NvdW50U2V0EhIKCmFjY291bnRfaWQYASABKA0SJQoLbWFya2V0X21vZGUYAiABKA4yEC5ub3JkLk1hcmtldE1vZGUa/AEKCVJlY2lwaWVudBIyCgdzcGVjaWFsGAEgASgLMh8ubm9yZC5SZWNlaXB0LlJlY2lwaWVudC5TcGVjaWFsSAASLgoFb3duZWQYAiABKAsyHS5ub3JkLlJlY2VpcHQuUmVjaXBpZW50Lk93bmVkSAASMgoHdW5vd25lZBgDIAEoCzIfLm5vcmQuUmVjZWlwdC5SZWNpcGllbnQuVW5vd25lZEgAGgkKB1NwZWNpYWwaGwoFT3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDRodCgdVbm93bmVkEhIKCmFjY291bnRfaWQYASABKA1CEAoOcmVjaXBpZW50X3R5cGUaowEKC1RyYW5zZmVycmVkEhcKD2Zyb21fYWNjb3VudF9pZBgBIAEoDRIrCgp0b19hY2NvdW50GAIgASgLMhcubm9yZC5SZWNlaXB0LlJlY2lwaWVudBIQCgh0b2tlbl9pZBgDIAEoDRIOCgZhbW91bnQYBCABKAQSFwoPYWNjb3VudF9jcmVhdGVkGAUgASgIEhMKC3VzZXJfcHVia2V5GAYgASgMGkoKE0ZlZVZhdWx0VHJhbnNmZXJyZWQSEQoJcmVjaXBpZW50GAEgASgNEhAKCHRva2VuX2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBp6CgxUcmlnZ2VyQWRkZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQafAoOVHJpZ2dlclJlbW92ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQagAEKDVRyaWdnZXJFZGl0ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEicKEHByZXZpb3VzX3RyaWdnZXIYAyABKAsyDS5ub3JkLlRyaWdnZXISHgoHdHJpZ2dlchgEIAEoCzINLm5vcmQuVHJpZ2dlcho4ChNNYXJrZXRGcmVlemVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIOCgZmcm96ZW4YAiABKAgahQEKEU1hcmtldE1vZGVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIlCgttYXJrZXRfbW9kZRgCIAEoDjIQLm5vcmQuTWFya2V0TW9kZRI2ChBjYW5jZWxsZWRfb3JkZXJzGAMgAygLMhwubm9yZC5SZWNlaXB0LkNhbmNlbGxlZE9yZGVyGm4KEEZlZVRpZXJUeXBlQWRkZWQSCgoCaWQYASABKA0SJQoLbWFya2V0X3R5cGUYAiABKA4yEC5ub3JkLk1hcmtldFR5cGUSJwoGY29uZmlnGAMgASgLMhcubm9yZC5GZWVUaWVyVHlwZUNvbmZpZxpwChJGZWVUaWVyVHlwZVVwZGF0ZWQSCgoCaWQYASABKA0SJQoLbWFya2V0X3R5cGUYAiABKA4yEC5ub3JkLk1hcmtldFR5cGUSJwoGY29uZmlnGAMgASgLMhcubm9yZC5GZWVUaWVyVHlwZUNvbmZpZxpqCh5BY2NvdW50c0ZlZVRpZXJUeXBlTW9kZVVwZGF0ZWQSDwoHdGllcl9pZBgBIAEoDRIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIQCghhY2NvdW50cxgDIAMoDRpgCgpBY2xVcGRhdGVkEhIKCmFjbF9wdWJrZXkYASABKAwSEgoKcm9sZXNfbWFzaxgCIAEoBBIVCg10YXJnZXRfcHVia2V5GAMgASgMEhMKC3JvbGVzX3ZhbHVlGAQgASgEGuwDChlBdG9taWNTdWJhY3Rpb25SZXN1bHRLaW5kEjwKEnBsYWNlX29yZGVyX3Jlc3VsdBgBIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASNwoMY2FuY2VsX29yZGVyGAIgASgLMh8ubm9yZC5SZWNlaXB0LkNhbmNlbE9yZGVyUmVzdWx0SAASMwoNdHJpZ2dlcl9hZGRlZBgDIAEoCzIaLm5vcmQuUmVjZWlwdC5UcmlnZ2VyQWRkZWRIABI3Cg90cmlnZ2VyX3JlbW92ZWQYBCABKAsyHC5ub3JkLlJlY2VpcHQuVHJpZ2dlclJlbW92ZWRIABI1Cg50cmlnZ2VyX2VkaXRlZBgFIAEoCzIbLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRWRpdGVkSAASTgoYcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uGAYgASgLMioubm9yZC5SZWNlaXB0LlJlZHVjZU9yZGVyTGlxdWlkYXRpb25SZXN1bHRIABIqCgpyZnFfcmVzdWx0GAcgASgLMhQubm9yZC5QbGFjZVJGUVJlc3VsdEgAEi4KD3JmcV9maWxsX3Jlc3VsdBgIIAEoCzITLm5vcmQuRmlsbFJGUVJlc3VsdEgAQgcKBWlubmVyGkgKDEF0b21pY1Jlc3VsdBI4CgdyZXN1bHRzGAEgAygLMicubm9yZC5SZWNlaXB0LkF0b21pY1N1YmFjdGlvblJlc3VsdEtpbmRCBgoEa2luZCoYCgRTaWRlEgcKA0FTSxAAEgcKA0JJRBABKh8KCk1hcmtldE1vZGUSCAoEQ0xPQhAAEgcKA1JGURABKmMKDE1hcmtldFJlZ2ltZRIYChRNQVJLRVRfUkVHSU1FX05PUk1BTBAAEhsKF01BUktFVF9SRUdJTUVfUE9TVF9PTkxZEAESHAoYTUFSS0VUX1JFR0lNRV9UUkFERV9PTkxZEAIqLQoLVHJpZ2dlcktpbmQSDQoJU1RPUF9MT1NTEAASDwoLVEFLRV9QUk9GSVQQASokCgZJbnRlbnQSDAoIREVDUkVBU0UQABIMCghJTkNSRUFTRRABKk8KCEZpbGxNb2RlEgkKBUxJTUlUEAASDQoJUE9TVF9PTkxZEAESFwoTSU1NRURJQVRFX09SX0NBTkNFTBACEhAKDEZJTExfT1JfS0lMTBADKq4BCg1QbGFjZW1lbnRSb2xlEiAKHFBMQUNFTUVOVF9ST0xFX0FDQ09VTlRfT1dORVIQABIgChxQTEFDRU1FTlRfUk9MRV9WQVVMVF9NQU5BR0VSEAESHgoaUExBQ0VNRU5UX1JPTEVfU1VQRVJfQURNSU4QAhIaChZQTEFDRU1FTlRfUk9MRV9UUklHR0VSEAMSHQoZUExBQ0VNRU5UX1JPTEVfTElRVUlEQVRPUhAEKjEKE1NlbGZUcmFkZVByZXZlbnRpb24SCAoETk9ORRAAEhAKDEVYUElSRV9NQUtFUhABKiYKCk1hcmtldFR5cGUSCAoEU1BPVBAAEg4KClBFUlBFVFVBTFMQASp9ChBUcmlnZ2VyRXhlY0Vycm9yEg8KC05PX1BPU0lUSU9OEAASEwoPUExBTk5JTkdfRkFJTEVEEAESDgoKQkFOS1JVUFRDWRACEhUKEVJJU0tfQ0hFQ0tfRkFJTEVEEAMSHAoYUkVEVUNFX09OTFlfQ0hFQ0tfRkFJTEVEEAQqMAoOU3BlY2lhbEFjY291bnQSDQoJRkVFX1ZBVUxUEAASDwoLQ0xBSU1fVkFVTFQQASpdCgtWYXVsdFN0YXR1cxIXChNWQVVMVF9TVEFUVVNfQUNUSVZFEAASHAoYVkFVTFRfU1RBVFVTX0RFUklTS19PTkxZEAESFwoTVkFVTFRfU1RBVFVTX0ZST1pFThACKu4pCgVFcnJvchINCglEVVBMSUNBVEUQABIVChFJTlZBTElEX1NJR05BVFVSRRADEhQKEE1BUktFVF9OT1RfRk9VTkQQBBITCg9UT0tFTl9OT1RfRk9VTkQQBRISCg5VU0VSX05PVF9GT1VORBAGEhUKEVNFU1NJT05fTk9UX0ZPVU5EEAcSEwoPT1JERVJfTk9UX0ZPVU5EEAgSEwoPT1JERVJfU0laRV9aRVJPEAkSDgoKQVJJVEhNRVRJQxALEhcKE0FSSVRITUVUSUNfT1ZFUkZMT1cQDBIYChRBUklUSE1FVElDX1VOREVSRkxPVxANEh8KG0FSSVRITUVUSUNfRElWSVNJT05fQllfWkVSTxAOEhoKFktFWV9BTFJFQURZX1JFR0lTVEVSRUQQDxIcChhVUERBVEVfVElNRVNUQU1QX0lOX1BBU1QQERIYChRUT09fTUFOWV9PUEVOX09SREVSUxASEh0KGVdJVEhEUkFXX0FNT1VOVF9UT09fU01BTEwQFRIpCiVTT1VSQ0VfQU5EX1RBUkdFVF9TSE9VTERfTk9UX0JFX0VRVUFMEBgSEgoOREVDT0RFX0ZBSUxVUkUQIBIgChxERUNPREVfRkFJTFVSRV9MRU5HVEhfUFJFRklYECESFgoSREVDT0RFX0ZBSUxVUkVfUkFXECISGQoVREVDT0RFX0ZBSUxVUkVfRE9NQUlOECMSHwobVVBEQVRFX1BVQkxJU0hfVElNRV9JTl9QQVNUECQSCwoHU0VTU0lPThAwEh8KG1NFU1NJT05fUkVGUkVTSF9OT1RfRU5BQkxFRBAxEioKJlNFU1NJT05fUkVGUkVTSF9ERUFETElORV9CRUZPUkVfRVhQSVJZEDISFwoTUFlUSF9GRUVEX05PVF9BRERFRBBdEhUKEVBZVEhfRkVFRF9NSVNTSU5HEF4SGwoXUFlUSF9GRUVEX0FMUkVBRFlfQURERUQQXxIjCh9QWVRIX0dVQVJESUFOX1NFVF9VTklOSVRJQUxJWkVEEGASHQoZUFlUSF9HVUFSRElBTl9TRVRfSU5WQUxJRBBhEiMKH1BZVEhfRkVFRF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQYhIgChxQWVRIX0ZFRURfUFJJQ0VfT1VUX09GX1JBTkdFEGMSIwofUFlUSF9GRUVEX1ZBUklBTkNFX09VVF9PRl9SQU5HRRBkEjUKMVBZVEhfR1VBUkRJQU5fU0VUX0FORF9QWVRIX1NJR05BVFVSRV9ET19OT1RfTUFUQ0gQZRIcChhJTlZBTElEX1RPS0VOX1BBUkFNRVRFUlMQZhIcChhJTkRFWF9QUklDRV9PVVRfT0ZfUkFOR0UQZxIfChtJTkRFWF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQaBIZChVJTlZBTElEX1NUQVRFX1ZFUlNJT04QaRITCg9JTlZBTElEX01BUkdJTlMQbBIhCh1NQVJLRVRfREVDSU1BTFNfRVhDRUVEX0xJTUlUUxBtEhMKD1RPT19NQU5ZX1RPS0VOUxBuEggKBFRJRVIQcxIZChVUSUVSX0ZFRV9PVVRfT0ZfUkFOR0UQdBIYChRUSUVSX0lEX09VVF9PRl9SQU5HRRB1EhIKDlRJRVJfTk9UX0ZPVU5EEHYSFAoQRlVORElOR19PVkVSRkxPVxB7EjcKM0NBTl9SRURVQ0VfUE9TSVRJT05fT05MWV9JRl9BTExfT1JERVJTX0FSRV9DQU5DRUxFRBB8EhcKE1VORVhQRUNURURfVE9LRU5fSUQQfxIWChFSRVBFQVRFRF9PUkRFUl9JRBCAARIeChlDTElFTlRfT1JERVJfSURfVE9PX0xBUkdFEIEBEhQKD1RPS0VOX05PVF9SRUFEWRCCARIdChhUT0tFTl9BTFJFQURZX1JFR0lTVEVSRUQQgwESIQocSU1NRURJQVRFX09SREVSX0dPVF9OT19GSUxMUxCFARIZChRGQUlMRURfVE9fRklMTF9MSU1JVBCGARIwCitQT1NUX09OTFlfTVVTVF9OT1RfRklMTF9BTllfT1BQT1NJVEVfT1JERVJTEIcBEgwKB0lOVkFMSUQQiAESEAoLTUFJTlRFTkFOQ0UQiQESGgoVTUlOSU1VTV9TSVpFX0RFQ0lNQUxTEIoBEjIKLVBBUkFNRVRFUlNfV0lMTF9DUkVBVEVfTk9OX09QRVJBVElPTkFMX01BUktFVBCLARIiCh1PTkxZX0lNTUVESUFURV9PUkRFUlNfQUxMT1dFRBCMARIbChZUT09fTUFOWV9VU0VSX0FDQ09VTlRTEI0BEhYKEUFDQ09VTlRfTk9UX0ZPVU5EEI4BEhoKFUFDQ09VTlRfSU5WQUxJRF9PV05FUhCPARIbChZTVUJBQ1RJT05fT1VUX09GX1JBTkdFEJABEhEKDERVU1RfQUNDT1VOVBCRARIMCgdCQUxBTkNFEKABEh0KGEJBTEFOQ0VfREVQT1NJVF9PVkVSRkxPVxChARIcChdCQUxBTkNFX0NIQU5HRV9PVkVSRkxPVxCiARIiCh1CQUxBTkNFX0NIQU5HRV9MSU1JVF9FWENFRURFRBCjARIZChRCQUxBTkNFX0lOU1VGRklDSUVOVBCkARIeChlVTkFVVEhFTlRJQ0FURURfTDFfQUNUSU9OEKUBEh0KGEVOQ09ERURfQUNUSU9OX1RPT19MQVJHRRCmARIMCgdUUklHR0VSEKgBEhoKFVRSSUdHRVJfSU5WQUxJRF9QUklDRRCpARIWChFUUklHR0VSX05PVF9GT1VORBCqARIrCiZUUklHR0VSX09OTFlfREVDUkVBU0VfT1JERVJTX1NVUFBPUlRFRBCrARIoCiNUUklHR0VSX01BWF9TSVpFX1BMQUNFTUVOVF9FWENFRURFRBCsARIYChNUUklHR0VSX05PVF9DSEFOR0VEEK0BEg4KCVRJTUVTVEFNUBCwARIfChpUSU1FU1RBTVBfT1VUX09GX1RIUkVTSE9MRBCxARIUCg9USU1FU1RBTVBfU1RBTEUQsgESHAoYRVhQSVJZX1RJTUVTVEFNUF9JTl9QQVNUEBASJQogQkFOS1JVUFRDWV9JTlNVRkZJQ0lFTlRfQ09WRVJBR0UQuQESGQoUQkFOS1JVUFRDWV9OT1RfRk9VTkQQugESGwoWQkFOS1JVUFRDWV9OT1RfQUxMT1dFRBC7ARIVChBNQVJLRVRfTk9UX1JFQURZEMABEhIKDU1BUktFVF9GUk9aRU4QwQESEQoMTUFSS0VUX0VNUFRZEMIBEjAKK01BUktFVF9NT0RFX0RPRVNfTk9UX1NVUFBPUlRfVEhJU19PUEVSQVRJT04QwwESDQoIUE9TSVRJT04QyAESFwoSUE9TSVRJT05fTk9UX0ZPVU5EEMkBEhkKFFBPU0lUSU9OX1NUQVRFX09SREVSEMoBEh8KGlBPU0lUSU9OX1NUQVRFX09SREVSX1BSSUNFEMsBEh4KGVBPU0lUSU9OX1NUQVRFX09SREVSX1NJWkUQzAESHgoZUE9TSVRJT05fU1RBVEVfT1JERVJfU0lERRDNARIYChNQT1NJVElPTl9TSVpFX0xJTUlUEM4BEhgKE1BPU0lUSU9OX1NUQVRFX1BFUlAQzwESJAofUE9TSVRJT05fU1RBVEVfT1JERVJfREVMRUdBVElPThDQARIKCgVQUklDRRDRARIbChZTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OENkBEjAKK1NJR05BVFVSRV9WRVJJRklDQVRJT05fTUFMRk9STUVEX1BVQkxJQ19LRVkQ2gESKgolU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9JTlZBTElEX0xFTkdUSBDbARIJCgRSSVNLEOABEjQKL1JJU0tfREVMRUdBVElPTl9NRl9UT19CRV9MRVNTX1RIQU5fT1JfRVFVQUxfTU1GEOEBEiQKH1JJU0tfT01GX0xFU1NfVEhBTl9PUl9FUVVBTF9JTUYQ4gESJAofUklTS19PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDjARI1CjBSSVNLX1VOSEVBTFRIWV9NRl9BTkRfUE9OX0FGVEVSX0JFVFRFUl9PRl9CRUZPUkUQ5AESKgolUklTS19UUkFERV9PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDlARIUCg9SSVNLX05PVF9FTk9VR0gQ5gESFAoPT1JERVJfRVhFQ1VUSU9OEPABEhoKFU9SREVSX0VYRUNVVElPTl9FTVBUWRDxARIhChxPUkRFUl9FWEVDVVRJT05fRklMTF9PUl9LSUxMEPIBEiMKHk9SREVSX0VYRUNVVElPTl9NSVNTSU5HX0xJTUlUUxDzARIiCh1PUkRFUl9FWEVDVVRJT05fTUlTU0lOR19QUklDRRD0ARIfChpPUkRFUl9FWEVDVVRJT05fU0laRV9MSU1JVBD1ARIgChtPUkRFUl9FWEVDVVRJT05fTElNSVRfUFJJQ0UQ9gESHgoZT1JERVJfUkVEVUNFX0lTX1BPU1RfT05MWRD3ARIfChpPUkRFUl9FWEVDVVRJT05fU0VMTF9QUklDRRD4ARIlCiBPUkRFUl9TSVpFX0VYQ0VFRFNfUE9TSVRJT05fU0laRRD5ARIMCgdBVE9NSUNTEIACEigKI0FUT01JQ1NfVFJBREVTX0NBTk5PVF9GT0xMT1dfUExBQ0VTEIECEjAKK0FUT01JQ1NfQ0FOQ0VMU19DQU5OT1RfRk9MTE9XX1RSQURFU19QTEFDRVMQggISHQoYQVRPTUlDU19EVVBMSUNBVEVfQ0FOQ0VMEIMCEhgKE1JGUV9PUkRFUl9USU1FT1VURUQQ+gESJgohQUNUSU9OX1BPU0lUSU9OX1NIT1VMRF9CRV9DT1ZFUkVEEJECEhkKFEFDVElPTl9JTlZBTElEX05PTkNFEJICEikKJEFDVElPTl9QUk9QT1NFRF9QUklDRV9NVVNUX0JFX0hJR0hFUhCTAhIcChdBRE1JTl9ST0xFX0lOU1VGRklDSUVOVBCUAhIUCg9BRE1JTl9OT1RfRk9VTkQQlQISKQokVU5JUVVFX1NVUEVSX0FETUlOX0NBTk5PVF9CRV9SRU1PVkVEEJYCEh8KGlNVUEVSX0FETUlOX0FMUkVBRFlfRVhJU1RTEJcCEhUKEFRSSUdHRVJfQ09ORkxJQ1QQmAISGgoVVFJJR0dFUl9FRElUX0NPTkZMSUNUEJkCEhwKF1RSSUdHRVJfUkVNT1ZFX0NPTkZMSUNUEJoCEg0KCFRSQU5TRkVSEKACEi4KKVRSQU5TRkVSX1RPX1VOT1dORURfQUNDT1VOVF9JU19QUk9ISUJJVEVEEKECEiwKJ1RSQU5TRkVSX1RPX09XTkVEX0FDQ09VTlRfV0FTX1JFUVVFU1RFRBCiAhIqCiVUUkFOU0ZFUl9UT19DTEFJTV9WQVVMVF9JU19QUk9ISUJJVEVEEKMCEgoKBVZBVUxUEKgCEhQKD1ZBVUxUX05PVF9GT1VORBCpAhIdChhWQVVMVF9BQ1RJT05fTk9UX0FMTE9XRUQQqgISGQoUVkFVTFRfU1RBVFVTX0lOVkFMSUQQqwISJQogVkFVTFRfUkVEVUNFX09OTFlfT1JERVJfUkVRVUlSRUQQrAISJgohVkFVTFRfQUNUSU9OX1dPVUxEX0RFR1JBREVfU1RBVFVTEK0CEhkKFFZBVUxUX1VTRVJfTk9UX0ZPVU5EEK4CEh0KGFZBVUxUX1VTRVJfSEFTX05PX1NIQVJFUxCvAhIcChdWQVVMVF9QRVJNSVNTSU9OX0RFTklFRBC2AhISCg1WQVVMVF9ERVBPU0lUELACEjEKLFZBVUxUX0RFUE9TSVRfQk9PVFNUUkFQX1JFUVVJUkVTX0VNUFRZX1ZBVUxUELECEh8KGlZBVUxUX0RFUE9TSVRfQ0FQX0VYQ0VFREVEELICEikKJFZBVUxUX0RFUE9TSVRfUkVRVUlSRVNfQUNUSVZFX1NUQVRVUxCzAhIvCipWQVVMVF9ERVBPU0lUX0NBUF9CRUxPV19DVVJSRU5UX1JBV19FUVVJVFkQtAISHAoXVkFVTFRfREVQT1NJVF9UT09fU01BTEwQtQISEwoOVkFVTFRfV0lUSERSQVcQuAISHgoZVkFVTFRfSU5TVUZGSUNJRU5UX1NIQVJFUxC5AhIuCilWQVVMVF9XSVRIRFJBV19SRVFVSVJFU19OT05fRlJPWkVOX1NUQVRVUxC6AhIiCh1WQVVMVF9OT19DTEFJTUFCTEVfV0lUSERSQVdBTBC7AhIlCiBWQVVMVF9XSVRIRFJBV19RVU9URV9VTkFWQUlMQUJMRRC8AhItCihWQVVMVF9EVVNUX0VYSVRfUkVRVUlSRVNfRlVMTF9TSEFSRV9FWElUEL0CEjUKMFZBVUxUX0xBU1RfU0hBUkVfV0lUSERSQVdfUkVRVUlSRVNfRU1QVFlfQUNDT1VOVBC+AhIoCiNWQVVMVF9XSVRIRFJBV19SRVFVSVJFU19MSVZFX1NIQVJFUxC/AhISCg1WQVVMVF9DT05UUk9MEMACEh0KGFZBVUxUX0VQT0NIX05PVF9FTElHSUJMRRDBAhIyCi1WQVVMVF9GUkVFWkVfVEhSRVNIT0xEX01VU1RfRVhDRUVEX1BST1RFQ1RJT04QwwISHQoYVkFVTFRfQ09ORklHX1BBVENIX0VNUFRZEMQCEigKI1ZBVUxUX05PX1NUQVRVU19UUkFOU0lUSU9OX1JFUVVJUkVEEMUCEi0KKFZBVUxUX0ZST1pFTl9TVEFUVVNfUkVRVUlSRVNfU1VQRVJfQURNSU4QxgISKgolVkFVTFRfTkVXX0NPTkZJR19XT1VMRF9ERUdSQURFX1NUQVRVUxDHAhIOCglSRlFfRVJST1IQyAISEAoLUkZRX1RJTUVPVVQQyQISCwoGQ09ORklHEMoCEhQKD05PVF9JTVBMRU1FTlRFRBD0AxIXChJBQ1RJT05fTk9UX0FMTE9XRUQQ9QMSGAoTTk9UX1NVUFBPUlRFRF9JTlBVVBD2AxIMCgdEUk9QUEVEEOcHYgZwcm90bzM");
|
|
57298
57298
|
var U128Schema = /* @__PURE__ */ messageDesc(file_nord, 0);
|
|
57299
57299
|
var RfqTradeSchema = /* @__PURE__ */ messageDesc(file_nord, 1);
|
|
57300
57300
|
var RfqPlaceOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 2);
|
|
@@ -57314,166 +57314,166 @@ var RfqTradeReceipt_FailureReason;
|
|
|
57314
57314
|
})(RfqTradeReceipt_FailureReason ||= {});
|
|
57315
57315
|
var RfqTradeReceipt_FailureReasonSchema = /* @__PURE__ */ enumDesc(file_nord, 7, 0);
|
|
57316
57316
|
var PlaceRFQResultSchema = /* @__PURE__ */ messageDesc(file_nord, 8);
|
|
57317
|
-
var
|
|
57318
|
-
var
|
|
57319
|
-
var
|
|
57320
|
-
var
|
|
57321
|
-
var
|
|
57322
|
-
var
|
|
57323
|
-
var
|
|
57324
|
-
var
|
|
57325
|
-
var
|
|
57326
|
-
var
|
|
57327
|
-
var
|
|
57328
|
-
var
|
|
57329
|
-
var
|
|
57330
|
-
var
|
|
57331
|
-
var
|
|
57332
|
-
var
|
|
57333
|
-
var
|
|
57334
|
-
var
|
|
57335
|
-
var
|
|
57336
|
-
var
|
|
57337
|
-
var
|
|
57338
|
-
var
|
|
57339
|
-
var
|
|
57340
|
-
var
|
|
57341
|
-
var
|
|
57342
|
-
var
|
|
57343
|
-
var
|
|
57344
|
-
var
|
|
57345
|
-
var
|
|
57346
|
-
var
|
|
57347
|
-
var
|
|
57348
|
-
var
|
|
57349
|
-
var
|
|
57350
|
-
var
|
|
57351
|
-
var
|
|
57352
|
-
var
|
|
57353
|
-
var
|
|
57354
|
-
var
|
|
57355
|
-
var
|
|
57356
|
-
var
|
|
57357
|
-
var
|
|
57358
|
-
var
|
|
57359
|
-
var
|
|
57360
|
-
var
|
|
57361
|
-
var
|
|
57317
|
+
var RFQExecutionSchema = /* @__PURE__ */ messageDesc(file_nord, 9);
|
|
57318
|
+
var FillRFQResultSchema = /* @__PURE__ */ messageDesc(file_nord, 10);
|
|
57319
|
+
var RfqMakersSetSchema = /* @__PURE__ */ messageDesc(file_nord, 11);
|
|
57320
|
+
var RFQQtyPlaceSchema = /* @__PURE__ */ messageDesc(file_nord, 12);
|
|
57321
|
+
var FeeTierConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 13);
|
|
57322
|
+
var FeeTierTypeConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 14);
|
|
57323
|
+
var MarketSchema = /* @__PURE__ */ messageDesc(file_nord, 15);
|
|
57324
|
+
var TokenSchema = /* @__PURE__ */ messageDesc(file_nord, 16);
|
|
57325
|
+
var VaultHealthSchema = /* @__PURE__ */ messageDesc(file_nord, 17);
|
|
57326
|
+
var VaultConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 18);
|
|
57327
|
+
var VaultConfigPatchSchema = /* @__PURE__ */ messageDesc(file_nord, 19);
|
|
57328
|
+
var CreateVaultSchema = /* @__PURE__ */ messageDesc(file_nord, 20);
|
|
57329
|
+
var UpdateVaultConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 21);
|
|
57330
|
+
var SetVaultManagerSchema = /* @__PURE__ */ messageDesc(file_nord, 22);
|
|
57331
|
+
var VaultSyncEpochsSchema = /* @__PURE__ */ messageDesc(file_nord, 23);
|
|
57332
|
+
var StagedAdminActionSchema = /* @__PURE__ */ messageDesc(file_nord, 24);
|
|
57333
|
+
var AdminActionKindSchema = /* @__PURE__ */ messageDesc(file_nord, 25);
|
|
57334
|
+
var VaultDepositSchema = /* @__PURE__ */ messageDesc(file_nord, 26);
|
|
57335
|
+
var VaultWithdrawSchema = /* @__PURE__ */ messageDesc(file_nord, 27);
|
|
57336
|
+
var VaultWithdraw_RequestSchema = /* @__PURE__ */ messageDesc(file_nord, 27, 0);
|
|
57337
|
+
var VaultWithdraw_ClaimSchema = /* @__PURE__ */ messageDesc(file_nord, 27, 1);
|
|
57338
|
+
var CreateVaultReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 28);
|
|
57339
|
+
var UpdateVaultConfigReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 29);
|
|
57340
|
+
var SetVaultManagerReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 30);
|
|
57341
|
+
var VaultSyncEpochsReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 31);
|
|
57342
|
+
var VaultDepositReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 32);
|
|
57343
|
+
var WithdrawalBucketsSchema = /* @__PURE__ */ messageDesc(file_nord, 33);
|
|
57344
|
+
var VaultPpsRefSchema = /* @__PURE__ */ messageDesc(file_nord, 34);
|
|
57345
|
+
var VaultEpochsSchema = /* @__PURE__ */ messageDesc(file_nord, 35);
|
|
57346
|
+
var VaultUserStateSchema = /* @__PURE__ */ messageDesc(file_nord, 36);
|
|
57347
|
+
var VaultWithdrawReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 37);
|
|
57348
|
+
var VaultWithdrawReceipt_RequestedSchema = /* @__PURE__ */ messageDesc(file_nord, 37, 0);
|
|
57349
|
+
var VaultWithdrawReceipt_ClaimedSchema = /* @__PURE__ */ messageDesc(file_nord, 37, 1);
|
|
57350
|
+
var OrderLimitSchema = /* @__PURE__ */ messageDesc(file_nord, 38);
|
|
57351
|
+
var PlaceTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 39);
|
|
57352
|
+
var TradeOrPlaceSchema = /* @__PURE__ */ messageDesc(file_nord, 40);
|
|
57353
|
+
var AtomicCancelOrderByIdSchema = /* @__PURE__ */ messageDesc(file_nord, 41);
|
|
57354
|
+
var AtomicCancelOrderByClientIdSchema = /* @__PURE__ */ messageDesc(file_nord, 42);
|
|
57355
|
+
var AtomicAddTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 43);
|
|
57356
|
+
var AtomicEditTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 44);
|
|
57357
|
+
var AtomicRemoveTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 45);
|
|
57358
|
+
var ReduceOrderLiquidationSchema = /* @__PURE__ */ messageDesc(file_nord, 46);
|
|
57359
|
+
var AtomicSubactionKindV1Schema = /* @__PURE__ */ messageDesc(file_nord, 47);
|
|
57360
|
+
var AtomicV1Schema = /* @__PURE__ */ messageDesc(file_nord, 48);
|
|
57361
|
+
var AtomicSubactionSchema = /* @__PURE__ */ messageDesc(file_nord, 49);
|
|
57362
57362
|
var AtomicSchema = /* @__PURE__ */ messageDesc(file_nord, 50);
|
|
57363
|
-
var
|
|
57364
|
-
var
|
|
57365
|
-
var
|
|
57366
|
-
var
|
|
57367
|
-
var
|
|
57368
|
-
var
|
|
57369
|
-
var
|
|
57370
|
-
var
|
|
57371
|
-
var
|
|
57372
|
-
var
|
|
57373
|
-
var
|
|
57374
|
-
var
|
|
57375
|
-
var
|
|
57376
|
-
var
|
|
57377
|
-
var
|
|
57378
|
-
var
|
|
57379
|
-
var
|
|
57380
|
-
var
|
|
57381
|
-
var
|
|
57382
|
-
var
|
|
57383
|
-
var
|
|
57384
|
-
var
|
|
57385
|
-
var
|
|
57386
|
-
var
|
|
57387
|
-
var
|
|
57388
|
-
var
|
|
57389
|
-
var
|
|
57390
|
-
var
|
|
57391
|
-
var
|
|
57392
|
-
var
|
|
57393
|
-
var
|
|
57394
|
-
var
|
|
57395
|
-
var
|
|
57396
|
-
var
|
|
57397
|
-
var
|
|
57398
|
-
var
|
|
57399
|
-
var
|
|
57400
|
-
var
|
|
57401
|
-
var
|
|
57402
|
-
var
|
|
57403
|
-
var
|
|
57404
|
-
var
|
|
57405
|
-
var
|
|
57406
|
-
var
|
|
57407
|
-
var
|
|
57408
|
-
var
|
|
57409
|
-
var Action_TakeAllPositionsSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37);
|
|
57363
|
+
var PythLazerTrustedSignerSchema = /* @__PURE__ */ messageDesc(file_nord, 51);
|
|
57364
|
+
var TriggerRecordSchema = /* @__PURE__ */ messageDesc(file_nord, 52);
|
|
57365
|
+
var TriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 53);
|
|
57366
|
+
var ActionSchema = /* @__PURE__ */ messageDesc(file_nord, 54);
|
|
57367
|
+
var Action_CreateSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 0);
|
|
57368
|
+
var Action_CreateTokenSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 1);
|
|
57369
|
+
var Action_SetMarketModeCLOBTradingOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 54, 2);
|
|
57370
|
+
var Action_SetMarketModeCLOBPostOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 54, 3);
|
|
57371
|
+
var Action_SetMarketModeCLOBSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 4);
|
|
57372
|
+
var Action_CreateMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 5);
|
|
57373
|
+
var Action_PlaceOrderSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 6);
|
|
57374
|
+
var Action_CancelOrderByIdSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 7);
|
|
57375
|
+
var Action_CancelOrderByClientIdSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 8);
|
|
57376
|
+
var Action_DepositSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 9);
|
|
57377
|
+
var Action_WithdrawSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 10);
|
|
57378
|
+
var Action_PythSetWormholeGuardiansSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 11);
|
|
57379
|
+
var Action_PythSetSymbolFeedSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 12);
|
|
57380
|
+
var Action_PythPriceFeedUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 13);
|
|
57381
|
+
var Action_PythLazerPriceFeedUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 14);
|
|
57382
|
+
var Action_PythLazerSetTrustedSignersSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 15);
|
|
57383
|
+
var Action_PythLazerSetFeedSymbolSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 16);
|
|
57384
|
+
var Action_PythLazerSetFeedSymbol_FeedSymbolInputSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 16, 0);
|
|
57385
|
+
var Action_RevokeSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 17);
|
|
57386
|
+
var Action_RefreshSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 18);
|
|
57387
|
+
var Action_SelfRevokeSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 19);
|
|
57388
|
+
var Action_PauseSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 20);
|
|
57389
|
+
var Action_UnpauseSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 21);
|
|
57390
|
+
var Action_SetBackstopAccountSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 22);
|
|
57391
|
+
var Action_RecipientSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23);
|
|
57392
|
+
var Action_Recipient_SpecialSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23, 0);
|
|
57393
|
+
var Action_Recipient_OwnedSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23, 1);
|
|
57394
|
+
var Action_Recipient_UnownedSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23, 2);
|
|
57395
|
+
var Action_TransferSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 24);
|
|
57396
|
+
var Action_FeeVaultTransferSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 25);
|
|
57397
|
+
var Action_AddTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 26);
|
|
57398
|
+
var Action_EditTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 27);
|
|
57399
|
+
var Action_RemoveTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 28);
|
|
57400
|
+
var Action_AddFeeTierTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 29);
|
|
57401
|
+
var Action_UpdateFeeTierTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 30);
|
|
57402
|
+
var Action_UpdateAccountsFeeTierTypeModeSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 31);
|
|
57403
|
+
var Action_UpdateAclSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 32);
|
|
57404
|
+
var Action_FreezeMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 33);
|
|
57405
|
+
var Action_UnfreezeMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 34);
|
|
57406
|
+
var Action_ClearMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 35);
|
|
57407
|
+
var Action_ExecuteTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 36);
|
|
57408
|
+
var Action_TakeAllPositionsSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 37);
|
|
57410
57409
|
var Action_UserSignatureFraming;
|
|
57411
57410
|
((Action_UserSignatureFraming2) => {
|
|
57412
57411
|
Action_UserSignatureFraming2[Action_UserSignatureFraming2["HEX"] = 0] = "HEX";
|
|
57413
57412
|
Action_UserSignatureFraming2[Action_UserSignatureFraming2["SOLANA_TRANSACTION"] = 1] = "SOLANA_TRANSACTION";
|
|
57414
57413
|
})(Action_UserSignatureFraming ||= {});
|
|
57415
|
-
var Action_UserSignatureFramingSchema = /* @__PURE__ */ enumDesc(file_nord,
|
|
57416
|
-
var ReceiptSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57417
|
-
var Receipt_PostedSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57418
|
-
var Receipt_TradeSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57419
|
-
var Receipt_CreateSessionResultSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57420
|
-
var Receipt_CancelledTriggerSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57421
|
-
var Receipt_OrderUpdateSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57414
|
+
var Action_UserSignatureFramingSchema = /* @__PURE__ */ enumDesc(file_nord, 54, 0);
|
|
57415
|
+
var ReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55);
|
|
57416
|
+
var Receipt_PostedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 0);
|
|
57417
|
+
var Receipt_TradeSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 1);
|
|
57418
|
+
var Receipt_CreateSessionResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 2);
|
|
57419
|
+
var Receipt_CancelledTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 3);
|
|
57420
|
+
var Receipt_OrderUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 4);
|
|
57422
57421
|
var Receipt_OrderUpdate_Reason;
|
|
57423
57422
|
((Receipt_OrderUpdate_Reason2) => {
|
|
57424
57423
|
Receipt_OrderUpdate_Reason2[Receipt_OrderUpdate_Reason2["REDUCE_ONLY"] = 0] = "REDUCE_ONLY";
|
|
57425
57424
|
Receipt_OrderUpdate_Reason2[Receipt_OrderUpdate_Reason2["SELF_TRADE_PREVENTION"] = 1] = "SELF_TRADE_PREVENTION";
|
|
57426
57425
|
})(Receipt_OrderUpdate_Reason ||= {});
|
|
57427
|
-
var Receipt_OrderUpdate_ReasonSchema = /* @__PURE__ */ enumDesc(file_nord,
|
|
57428
|
-
var Receipt_PlaceOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57429
|
-
var Receipt_ReduceOrderLiquidationResultSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57430
|
-
var Receipt_PlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57431
|
-
var Receipt_AccountPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57432
|
-
var Receipt_VaultPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57433
|
-
var Receipt_TriggerExecutedSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57434
|
-
var Receipt_TakeAllBalanceSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57435
|
-
var Receipt_TakeAllPositionSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57436
|
-
var Receipt_TakeAllOrderUpdatesSchema = /* @__PURE__ */ messageDesc(file_nord,
|
|
57437
|
-
var
|
|
57438
|
-
var
|
|
57439
|
-
var
|
|
57440
|
-
var
|
|
57441
|
-
var
|
|
57442
|
-
var
|
|
57443
|
-
var
|
|
57444
|
-
var
|
|
57445
|
-
var
|
|
57446
|
-
var
|
|
57447
|
-
var
|
|
57448
|
-
var
|
|
57449
|
-
var
|
|
57450
|
-
var
|
|
57451
|
-
var
|
|
57452
|
-
var
|
|
57453
|
-
var
|
|
57454
|
-
var
|
|
57455
|
-
var
|
|
57456
|
-
var
|
|
57457
|
-
var
|
|
57458
|
-
var
|
|
57459
|
-
var
|
|
57460
|
-
var
|
|
57461
|
-
var
|
|
57462
|
-
var
|
|
57463
|
-
var
|
|
57464
|
-
var
|
|
57465
|
-
var
|
|
57466
|
-
var
|
|
57467
|
-
var
|
|
57468
|
-
var
|
|
57469
|
-
var
|
|
57470
|
-
var
|
|
57471
|
-
var
|
|
57472
|
-
var
|
|
57473
|
-
var
|
|
57474
|
-
var
|
|
57475
|
-
var
|
|
57476
|
-
var
|
|
57426
|
+
var Receipt_OrderUpdate_ReasonSchema = /* @__PURE__ */ enumDesc(file_nord, 55, 4, 0);
|
|
57427
|
+
var Receipt_PlaceOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 5);
|
|
57428
|
+
var Receipt_ReduceOrderLiquidationResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 6);
|
|
57429
|
+
var Receipt_PlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 7);
|
|
57430
|
+
var Receipt_AccountPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 8);
|
|
57431
|
+
var Receipt_VaultPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 9);
|
|
57432
|
+
var Receipt_TriggerExecutedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 10);
|
|
57433
|
+
var Receipt_TakeAllBalanceSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 11);
|
|
57434
|
+
var Receipt_TakeAllPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 12);
|
|
57435
|
+
var Receipt_TakeAllOrderUpdatesSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 13);
|
|
57436
|
+
var Receipt_TakeAllTakerResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 14);
|
|
57437
|
+
var Receipt_TakeAllPositionsResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 15);
|
|
57438
|
+
var Receipt_CancelledOrderSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 16);
|
|
57439
|
+
var Receipt_ClearMarketClosedPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 17);
|
|
57440
|
+
var Receipt_ClearMarketResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 18);
|
|
57441
|
+
var Receipt_CancelOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 19);
|
|
57442
|
+
var Receipt_DepositResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 20);
|
|
57443
|
+
var Receipt_InsertTokenResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 21);
|
|
57444
|
+
var Receipt_InsertMarketResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 22);
|
|
57445
|
+
var Receipt_WithdrawResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 23);
|
|
57446
|
+
var Receipt_OracleSymbolFeedResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 24);
|
|
57447
|
+
var Receipt_OracleUpdateResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 25);
|
|
57448
|
+
var Receipt_PythLazerOracleUpdateResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 26);
|
|
57449
|
+
var Receipt_PythLazerTrustedSignersSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 27);
|
|
57450
|
+
var Receipt_PythLazerFeedSymbolSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 28);
|
|
57451
|
+
var Receipt_PythLazerFeedSymbolSetResult_FeedSymbolSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 28, 0);
|
|
57452
|
+
var Receipt_UpdateGuardianSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 29);
|
|
57453
|
+
var Receipt_PerpPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 30);
|
|
57454
|
+
var Receipt_SessionRevokedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 31);
|
|
57455
|
+
var Receipt_SelfSessionRevokedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 32);
|
|
57456
|
+
var Receipt_SessionRefreshedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 33);
|
|
57457
|
+
var Receipt_PausedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 34);
|
|
57458
|
+
var Receipt_UnpausedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 35);
|
|
57459
|
+
var Receipt_BackstopAccountSetSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 36);
|
|
57460
|
+
var Receipt_RecipientSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37);
|
|
57461
|
+
var Receipt_Recipient_SpecialSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37, 0);
|
|
57462
|
+
var Receipt_Recipient_OwnedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37, 1);
|
|
57463
|
+
var Receipt_Recipient_UnownedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37, 2);
|
|
57464
|
+
var Receipt_TransferredSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 38);
|
|
57465
|
+
var Receipt_FeeVaultTransferredSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 39);
|
|
57466
|
+
var Receipt_TriggerAddedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 40);
|
|
57467
|
+
var Receipt_TriggerRemovedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 41);
|
|
57468
|
+
var Receipt_TriggerEditedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 42);
|
|
57469
|
+
var Receipt_MarketFreezeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 43);
|
|
57470
|
+
var Receipt_MarketModeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 44);
|
|
57471
|
+
var Receipt_FeeTierTypeAddedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 45);
|
|
57472
|
+
var Receipt_FeeTierTypeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 46);
|
|
57473
|
+
var Receipt_AccountsFeeTierTypeModeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 47);
|
|
57474
|
+
var Receipt_AclUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 48);
|
|
57475
|
+
var Receipt_AtomicSubactionResultKindSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 49);
|
|
57476
|
+
var Receipt_AtomicResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 50);
|
|
57477
57477
|
var Side;
|
|
57478
57478
|
((Side2) => {
|
|
57479
57479
|
Side2[Side2["ASK"] = 0] = "ASK";
|
|
@@ -57546,6 +57546,7 @@ var TriggerExecErrorSchema = /* @__PURE__ */ enumDesc(file_nord, 9);
|
|
|
57546
57546
|
var SpecialAccount;
|
|
57547
57547
|
((SpecialAccount2) => {
|
|
57548
57548
|
SpecialAccount2[SpecialAccount2["FEE_VAULT"] = 0] = "FEE_VAULT";
|
|
57549
|
+
SpecialAccount2[SpecialAccount2["CLAIM_VAULT"] = 1] = "CLAIM_VAULT";
|
|
57549
57550
|
})(SpecialAccount ||= {});
|
|
57550
57551
|
var SpecialAccountSchema = /* @__PURE__ */ enumDesc(file_nord, 10);
|
|
57551
57552
|
var VaultStatus;
|
|
@@ -57694,6 +57695,7 @@ var Error2;
|
|
|
57694
57695
|
Error3[Error3["TRANSFER"] = 288] = "TRANSFER";
|
|
57695
57696
|
Error3[Error3["TRANSFER_TO_UNOWNED_ACCOUNT_IS_PROHIBITED"] = 289] = "TRANSFER_TO_UNOWNED_ACCOUNT_IS_PROHIBITED";
|
|
57696
57697
|
Error3[Error3["TRANSFER_TO_OWNED_ACCOUNT_WAS_REQUESTED"] = 290] = "TRANSFER_TO_OWNED_ACCOUNT_WAS_REQUESTED";
|
|
57698
|
+
Error3[Error3["TRANSFER_TO_CLAIM_VAULT_IS_PROHIBITED"] = 291] = "TRANSFER_TO_CLAIM_VAULT_IS_PROHIBITED";
|
|
57697
57699
|
Error3[Error3["VAULT"] = 296] = "VAULT";
|
|
57698
57700
|
Error3[Error3["VAULT_NOT_FOUND"] = 297] = "VAULT_NOT_FOUND";
|
|
57699
57701
|
Error3[Error3["VAULT_ACTION_NOT_ALLOWED"] = 298] = "VAULT_ACTION_NOT_ALLOWED";
|
|
@@ -57719,7 +57721,6 @@ var Error2;
|
|
|
57719
57721
|
Error3[Error3["VAULT_WITHDRAW_REQUIRES_LIVE_SHARES"] = 319] = "VAULT_WITHDRAW_REQUIRES_LIVE_SHARES";
|
|
57720
57722
|
Error3[Error3["VAULT_CONTROL"] = 320] = "VAULT_CONTROL";
|
|
57721
57723
|
Error3[Error3["VAULT_EPOCH_NOT_ELIGIBLE"] = 321] = "VAULT_EPOCH_NOT_ELIGIBLE";
|
|
57722
|
-
Error3[Error3["VAULT_PREVIOUS_EPOCH_WITHDRAWALS_NOT_PAYABLE"] = 322] = "VAULT_PREVIOUS_EPOCH_WITHDRAWALS_NOT_PAYABLE";
|
|
57723
57724
|
Error3[Error3["VAULT_FREEZE_THRESHOLD_MUST_EXCEED_PROTECTION"] = 323] = "VAULT_FREEZE_THRESHOLD_MUST_EXCEED_PROTECTION";
|
|
57724
57725
|
Error3[Error3["VAULT_CONFIG_PATCH_EMPTY"] = 324] = "VAULT_CONFIG_PATCH_EMPTY";
|
|
57725
57726
|
Error3[Error3["VAULT_NO_STATUS_TRANSITION_REQUIRED"] = 325] = "VAULT_NO_STATUS_TRANSITION_REQUIRED";
|
|
@@ -57727,6 +57728,7 @@ var Error2;
|
|
|
57727
57728
|
Error3[Error3["VAULT_NEW_CONFIG_WOULD_DEGRADE_STATUS"] = 327] = "VAULT_NEW_CONFIG_WOULD_DEGRADE_STATUS";
|
|
57728
57729
|
Error3[Error3["RFQ_ERROR"] = 328] = "RFQ_ERROR";
|
|
57729
57730
|
Error3[Error3["RFQ_TIMEOUT"] = 329] = "RFQ_TIMEOUT";
|
|
57731
|
+
Error3[Error3["CONFIG"] = 330] = "CONFIG";
|
|
57730
57732
|
Error3[Error3["NOT_IMPLEMENTED"] = 500] = "NOT_IMPLEMENTED";
|
|
57731
57733
|
Error3[Error3["ACTION_NOT_ALLOWED"] = 501] = "ACTION_NOT_ALLOWED";
|
|
57732
57734
|
Error3[Error3["NOT_SUPPORTED_INPUT"] = 502] = "NOT_SUPPORTED_INPUT";
|
|
@@ -92458,18 +92460,34 @@ class Nord {
|
|
|
92458
92460
|
markets = [];
|
|
92459
92461
|
tokens = [];
|
|
92460
92462
|
symbolToMarketId = new Map;
|
|
92461
|
-
|
|
92463
|
+
protonConfig;
|
|
92464
|
+
protonClientPromise;
|
|
92462
92465
|
httpClient;
|
|
92463
92466
|
constructor({
|
|
92464
92467
|
solanaConnection,
|
|
92465
92468
|
webServerUrl,
|
|
92466
|
-
|
|
92469
|
+
protonConfig
|
|
92467
92470
|
}) {
|
|
92468
92471
|
this.webServerUrl = webServerUrl;
|
|
92469
92472
|
this.solanaConnection = solanaConnection;
|
|
92470
|
-
this.
|
|
92473
|
+
this.protonConfig = protonConfig;
|
|
92471
92474
|
this.httpClient = createClient({ baseUrl: webServerUrl });
|
|
92472
92475
|
}
|
|
92476
|
+
getProtonClient() {
|
|
92477
|
+
if (this.protonClientPromise === undefined) {
|
|
92478
|
+
const initialization = ProtonClient.init({
|
|
92479
|
+
...this.protonConfig,
|
|
92480
|
+
solConn: this.solanaConnection
|
|
92481
|
+
});
|
|
92482
|
+
this.protonClientPromise = initialization;
|
|
92483
|
+
initialization.catch(() => {
|
|
92484
|
+
if (this.protonClientPromise === initialization) {
|
|
92485
|
+
this.protonClientPromise = undefined;
|
|
92486
|
+
}
|
|
92487
|
+
});
|
|
92488
|
+
}
|
|
92489
|
+
return this.protonClientPromise;
|
|
92490
|
+
}
|
|
92473
92491
|
createWebSocketClient({
|
|
92474
92492
|
trades,
|
|
92475
92493
|
deltas,
|
|
@@ -92596,15 +92614,13 @@ class Nord {
|
|
|
92596
92614
|
webServerUrl,
|
|
92597
92615
|
protonUrl
|
|
92598
92616
|
}) {
|
|
92599
|
-
const protonClient = await ProtonClient.init({
|
|
92600
|
-
protonUrl: protonUrl ?? webServerUrl,
|
|
92601
|
-
app: new import_web39.PublicKey(app),
|
|
92602
|
-
solConn: solanaConnection
|
|
92603
|
-
});
|
|
92604
92617
|
const nord = new Nord({
|
|
92605
|
-
protonClient,
|
|
92606
92618
|
solanaConnection,
|
|
92607
|
-
webServerUrl
|
|
92619
|
+
webServerUrl,
|
|
92620
|
+
protonConfig: {
|
|
92621
|
+
protonUrl: protonUrl ?? webServerUrl,
|
|
92622
|
+
app: new import_web39.PublicKey(app)
|
|
92623
|
+
}
|
|
92608
92624
|
});
|
|
92609
92625
|
await nord.init();
|
|
92610
92626
|
return nord;
|
|
@@ -92930,6 +92946,14 @@ class Nord {
|
|
|
92930
92946
|
}
|
|
92931
92947
|
});
|
|
92932
92948
|
}
|
|
92949
|
+
async getAccountPositionSummary(accountId, { marketId } = {}) {
|
|
92950
|
+
return await this.GET("/account/{account_id}/position/summary", {
|
|
92951
|
+
params: {
|
|
92952
|
+
path: { account_id: accountId },
|
|
92953
|
+
query: { marketId: marketId ?? undefined }
|
|
92954
|
+
}
|
|
92955
|
+
});
|
|
92956
|
+
}
|
|
92933
92957
|
async getMarketsLive() {
|
|
92934
92958
|
return await this.GET("/markets/live", {});
|
|
92935
92959
|
}
|
|
@@ -93730,7 +93754,11 @@ function normalizeAtomicReceipt(resp, actionCount) {
|
|
|
93730
93754
|
}
|
|
93731
93755
|
return;
|
|
93732
93756
|
}
|
|
93733
|
-
function atomicSubactionToProto(currentTimestamp, a2
|
|
93757
|
+
function atomicSubactionToProto(currentTimestamp, a2) {
|
|
93758
|
+
const target = {
|
|
93759
|
+
targetAccountId: a2.targetAccountId,
|
|
93760
|
+
useKey: a2.useKey
|
|
93761
|
+
};
|
|
93734
93762
|
if (a2.kind === "place") {
|
|
93735
93763
|
const price = toScaledU64(a2.price ?? 0, a2.priceDecimals);
|
|
93736
93764
|
const size = toScaledU64(a2.size ?? 0, a2.sizeDecimals);
|
|
@@ -93752,16 +93780,16 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
93752
93780
|
referrer: a2.referrer === undefined ? undefined : toProtoU128(a2.referrer)
|
|
93753
93781
|
});
|
|
93754
93782
|
return create(AtomicSubactionSchema, {
|
|
93755
|
-
|
|
93783
|
+
...target,
|
|
93756
93784
|
inner: { case: "tradeOrPlace", value: tradeOrPlace }
|
|
93757
93785
|
});
|
|
93758
93786
|
}
|
|
93759
93787
|
if (a2.kind === "reduceOrderLiquidation") {
|
|
93760
93788
|
return create(AtomicSubactionSchema, {
|
|
93789
|
+
...target,
|
|
93761
93790
|
inner: {
|
|
93762
93791
|
case: "reduceOrderLiquidation",
|
|
93763
93792
|
value: create(ReduceOrderLiquidationSchema, {
|
|
93764
|
-
targetAccountId: a2.targetAccountId,
|
|
93765
93793
|
marketId: a2.marketId
|
|
93766
93794
|
})
|
|
93767
93795
|
}
|
|
@@ -93770,9 +93798,13 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
93770
93798
|
if (a2.kind === "rfq") {
|
|
93771
93799
|
const price = toScaledU64(a2.price, a2.priceDecimals);
|
|
93772
93800
|
const size = toScaledU64(a2.size, a2.sizeDecimals);
|
|
93801
|
+
const minimalFill = a2.minimalFill !== undefined ? toScaledU64(a2.minimalFill, a2.sizeDecimals) : undefined;
|
|
93802
|
+
if (minimalFill !== undefined) {
|
|
93803
|
+
assert3(minimalFill > 0n, "minimalFill must be greater than 0");
|
|
93804
|
+
}
|
|
93773
93805
|
const timestampMillis = currentTimestamp * 1000n;
|
|
93774
93806
|
return create(AtomicSubactionSchema, {
|
|
93775
|
-
|
|
93807
|
+
...target,
|
|
93776
93808
|
inner: {
|
|
93777
93809
|
case: "rfqPlaceOnly",
|
|
93778
93810
|
value: create(RfqPlaceOnlySchema, {
|
|
@@ -93781,17 +93813,21 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
93781
93813
|
clientOrderId: a2.clientOrderId === undefined ? undefined : BigInt(a2.clientOrderId),
|
|
93782
93814
|
price,
|
|
93783
93815
|
side: a2.side === "bid" /* Bid */ ? 1 /* BID */ : 0 /* ASK */,
|
|
93784
|
-
|
|
93785
|
-
|
|
93816
|
+
timestampMillis,
|
|
93817
|
+
size,
|
|
93818
|
+
minimalFill,
|
|
93819
|
+
isReduceOnly: a2.isReduceOnly
|
|
93786
93820
|
})
|
|
93787
93821
|
}
|
|
93788
93822
|
});
|
|
93789
93823
|
}
|
|
93790
93824
|
if (a2.kind === "rfqFill") {
|
|
93791
93825
|
const price = toScaledU64(a2.price, a2.priceDecimals);
|
|
93826
|
+
const minimumSize = a2.minimumSize !== undefined ? toScaledU64(a2.minimumSize, a2.sizeDecimals) : undefined;
|
|
93827
|
+
const maximumSize = a2.maximumSize !== undefined ? toScaledU64(a2.maximumSize, a2.sizeDecimals) : undefined;
|
|
93792
93828
|
const timestampMillis = currentTimestamp * 1000n;
|
|
93793
93829
|
return create(AtomicSubactionSchema, {
|
|
93794
|
-
|
|
93830
|
+
...target,
|
|
93795
93831
|
inner: {
|
|
93796
93832
|
case: "rfqTrade",
|
|
93797
93833
|
value: create(RfqTradeSchema, {
|
|
@@ -93799,14 +93835,17 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
93799
93835
|
marketId: a2.marketId,
|
|
93800
93836
|
orderId: BigInt(a2.orderId),
|
|
93801
93837
|
price,
|
|
93802
|
-
timestampMillis
|
|
93838
|
+
timestampMillis,
|
|
93839
|
+
minimumSize,
|
|
93840
|
+
maximumSize,
|
|
93841
|
+
isReduceOnly: a2.isReduceOnly
|
|
93803
93842
|
})
|
|
93804
93843
|
}
|
|
93805
93844
|
});
|
|
93806
93845
|
}
|
|
93807
93846
|
if (a2.kind === "cancelByClientId") {
|
|
93808
93847
|
return create(AtomicSubactionSchema, {
|
|
93809
|
-
|
|
93848
|
+
...target,
|
|
93810
93849
|
inner: {
|
|
93811
93850
|
case: "cancelOrderByClientId",
|
|
93812
93851
|
value: create(AtomicCancelOrderByClientIdSchema, {
|
|
@@ -93820,6 +93859,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
93820
93859
|
assert3(triggerPrice > 0n, "Trigger price must be positive");
|
|
93821
93860
|
const limits = buildLimits(a2.priceDecimals, a2.sizeDecimals, a2.limitPrice, a2.limitBaseSize, a2.limitQuoteSize);
|
|
93822
93861
|
return create(AtomicSubactionSchema, {
|
|
93862
|
+
...target,
|
|
93823
93863
|
inner: {
|
|
93824
93864
|
case: "addTrigger",
|
|
93825
93865
|
value: create(AtomicAddTriggerSchema, {
|
|
@@ -93841,6 +93881,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
93841
93881
|
assert3(triggerPrice > 0n, "Trigger price must be positive");
|
|
93842
93882
|
const limits = buildLimits(a2.priceDecimals, a2.sizeDecimals, a2.limitPrice, a2.limitBaseSize, a2.limitQuoteSize);
|
|
93843
93883
|
return create(AtomicSubactionSchema, {
|
|
93884
|
+
...target,
|
|
93844
93885
|
inner: {
|
|
93845
93886
|
case: "editTrigger",
|
|
93846
93887
|
value: create(AtomicEditTriggerSchema, {
|
|
@@ -93858,6 +93899,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
93858
93899
|
}
|
|
93859
93900
|
if (a2.kind === "removeTrigger") {
|
|
93860
93901
|
return create(AtomicSubactionSchema, {
|
|
93902
|
+
...target,
|
|
93861
93903
|
inner: {
|
|
93862
93904
|
case: "removeTrigger",
|
|
93863
93905
|
value: create(AtomicRemoveTriggerSchema, {
|
|
@@ -93868,7 +93910,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
93868
93910
|
});
|
|
93869
93911
|
}
|
|
93870
93912
|
return create(AtomicSubactionSchema, {
|
|
93871
|
-
|
|
93913
|
+
...target,
|
|
93872
93914
|
inner: {
|
|
93873
93915
|
case: "cancelOrder",
|
|
93874
93916
|
value: create(AtomicCancelOrderByIdSchema, {
|
|
@@ -93877,53 +93919,10 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
|
|
|
93877
93919
|
}
|
|
93878
93920
|
});
|
|
93879
93921
|
}
|
|
93880
|
-
function
|
|
93881
|
-
return "placement" in a2 ? a2.placement : undefined;
|
|
93882
|
-
}
|
|
93883
|
-
async function atomic(client2, signFn, currentTimestamp, nonce, params) {
|
|
93922
|
+
function createAtomicAction(currentTimestamp, nonce, params) {
|
|
93884
93923
|
assert3(params.actions.length > 0 && params.actions.length <= 10, "Atomic action must contain between 1 and 10 sub-actions");
|
|
93885
|
-
const
|
|
93886
|
-
|
|
93887
|
-
const action = createAction(currentTimestamp, nonce, useAtomicV2 ? {
|
|
93888
|
-
case: "atomicV2",
|
|
93889
|
-
value: create(AtomicV2Schema, {
|
|
93890
|
-
sessionId: BigInt(params.sessionId),
|
|
93891
|
-
accountId: params.accountId,
|
|
93892
|
-
actions: params.actions.map((a2, index) => {
|
|
93893
|
-
const subaction = subactions[index];
|
|
93894
|
-
assert3(subaction !== undefined, "Atomic subaction missing");
|
|
93895
|
-
let placement;
|
|
93896
|
-
const placementRequest = atomicPlacement(a2);
|
|
93897
|
-
if (placementRequest === undefined) {
|
|
93898
|
-
if ("delegatorAccountId" in a2 && a2.delegatorAccountId !== undefined) {
|
|
93899
|
-
placement = create(AtomicPlacementRequestSchema, {
|
|
93900
|
-
inner: {
|
|
93901
|
-
case: "liquidationAccountId",
|
|
93902
|
-
value: a2.delegatorAccountId
|
|
93903
|
-
}
|
|
93904
|
-
});
|
|
93905
|
-
}
|
|
93906
|
-
} else if (placementRequest !== "accountOwner") {
|
|
93907
|
-
if ("vault" in placementRequest) {
|
|
93908
|
-
placement = create(AtomicPlacementRequestSchema, {
|
|
93909
|
-
inner: { case: "vaultId", value: placementRequest.vault }
|
|
93910
|
-
});
|
|
93911
|
-
} else {
|
|
93912
|
-
placement = create(AtomicPlacementRequestSchema, {
|
|
93913
|
-
inner: {
|
|
93914
|
-
case: "liquidationAccountId",
|
|
93915
|
-
value: placementRequest.liquidation
|
|
93916
|
-
}
|
|
93917
|
-
});
|
|
93918
|
-
}
|
|
93919
|
-
}
|
|
93920
|
-
return create(AtomicSubactionV2Schema, {
|
|
93921
|
-
placement,
|
|
93922
|
-
subaction
|
|
93923
|
-
});
|
|
93924
|
-
})
|
|
93925
|
-
})
|
|
93926
|
-
} : {
|
|
93924
|
+
const subactions = params.actions.map((a2) => atomicSubactionToProto(currentTimestamp, a2));
|
|
93925
|
+
return createAction(currentTimestamp, nonce, {
|
|
93927
93926
|
case: "atomic",
|
|
93928
93927
|
value: create(AtomicSchema, {
|
|
93929
93928
|
sessionId: BigInt(params.sessionId),
|
|
@@ -93931,6 +93930,9 @@ async function atomic(client2, signFn, currentTimestamp, nonce, params) {
|
|
|
93931
93930
|
actions: subactions
|
|
93932
93931
|
})
|
|
93933
93932
|
});
|
|
93933
|
+
}
|
|
93934
|
+
async function atomic(client2, signFn, currentTimestamp, nonce, params) {
|
|
93935
|
+
const action = createAtomicAction(currentTimestamp, nonce, params);
|
|
93934
93936
|
const resp = await sendAction(client2, (m2) => sessionSign(signFn, m2), action);
|
|
93935
93937
|
const results = normalizeAtomicReceipt(resp, params.actions.length);
|
|
93936
93938
|
if (results !== undefined) {
|
|
@@ -93943,17 +93945,25 @@ async function atomic(client2, signFn, currentTimestamp, nonce, params) {
|
|
|
93943
93945
|
}
|
|
93944
93946
|
|
|
93945
93947
|
// src/client/NordUser.ts
|
|
93948
|
+
function withAtomicTarget(target, action) {
|
|
93949
|
+
const targetFields = target.targetAccountId === undefined ? {} : target.useKey === true ? { targetAccountId: target.targetAccountId, useKey: true } : { targetAccountId: target.targetAccountId };
|
|
93950
|
+
return { ...targetFields, ...action };
|
|
93951
|
+
}
|
|
93946
93952
|
function decodeRfqFillResult(actionId, result) {
|
|
93947
93953
|
if (result?.case !== "rfqFillResult") {
|
|
93948
93954
|
throw new NordError("RFQ fill did not return an RFQ fill result");
|
|
93949
93955
|
}
|
|
93956
|
+
const execution = result.value.execution;
|
|
93950
93957
|
return {
|
|
93951
93958
|
actionId,
|
|
93952
93959
|
orderId: result.value.orderId,
|
|
93953
93960
|
makerAccountId: result.value.makerAccountId,
|
|
93954
93961
|
takerAccountId: result.value.takerAccountId,
|
|
93955
|
-
|
|
93956
|
-
|
|
93962
|
+
execution: execution === undefined ? null : {
|
|
93963
|
+
filledSize: execution.filledSize,
|
|
93964
|
+
tradeId: execution.tradeId,
|
|
93965
|
+
executionPrice: execution.executionPrice
|
|
93966
|
+
}
|
|
93957
93967
|
};
|
|
93958
93968
|
}
|
|
93959
93969
|
|
|
@@ -94078,7 +94088,8 @@ class NordUser {
|
|
|
94078
94088
|
const mint = new import_web310.PublicKey(tokenInfo.mint);
|
|
94079
94089
|
const fromAccount = await this.getAssociatedTokenAccount(mint);
|
|
94080
94090
|
const payer = this.publicKey;
|
|
94081
|
-
const
|
|
94091
|
+
const protonClient = await this.nord.getProtonClient();
|
|
94092
|
+
const { ix, extraSigner } = await protonClient.buildDepositIx({
|
|
94082
94093
|
payer,
|
|
94083
94094
|
recipient: recipient ?? payer,
|
|
94084
94095
|
quantAmount: floatToScaledBigIntLossy(amount, tokenInfo.precision),
|
|
@@ -94478,7 +94489,9 @@ class NordUser {
|
|
|
94478
94489
|
price,
|
|
94479
94490
|
timeout,
|
|
94480
94491
|
accountId,
|
|
94481
|
-
clientOrderId
|
|
94492
|
+
clientOrderId,
|
|
94493
|
+
minimalFill,
|
|
94494
|
+
isReduceOnly
|
|
94482
94495
|
}) {
|
|
94483
94496
|
try {
|
|
94484
94497
|
const result = await this.atomic([
|
|
@@ -94489,7 +94502,9 @@ class NordUser {
|
|
|
94489
94502
|
size,
|
|
94490
94503
|
price,
|
|
94491
94504
|
timeout,
|
|
94492
|
-
clientOrderId
|
|
94505
|
+
clientOrderId,
|
|
94506
|
+
minimalFill,
|
|
94507
|
+
isReduceOnly
|
|
94493
94508
|
}
|
|
94494
94509
|
], accountId);
|
|
94495
94510
|
const rfqResult = result.results[0]?.inner;
|
|
@@ -94509,7 +94524,10 @@ class NordUser {
|
|
|
94509
94524
|
orderId,
|
|
94510
94525
|
price,
|
|
94511
94526
|
timeout,
|
|
94512
|
-
accountId
|
|
94527
|
+
accountId,
|
|
94528
|
+
minimumSize,
|
|
94529
|
+
maximumSize,
|
|
94530
|
+
isReduceOnly
|
|
94513
94531
|
}) {
|
|
94514
94532
|
try {
|
|
94515
94533
|
const result = await this.atomic([
|
|
@@ -94518,7 +94536,10 @@ class NordUser {
|
|
|
94518
94536
|
marketId,
|
|
94519
94537
|
orderId,
|
|
94520
94538
|
price,
|
|
94521
|
-
timeout
|
|
94539
|
+
timeout,
|
|
94540
|
+
minimumSize,
|
|
94541
|
+
maximumSize,
|
|
94542
|
+
isReduceOnly
|
|
94522
94543
|
}
|
|
94523
94544
|
], accountId);
|
|
94524
94545
|
return decodeRfqFillResult(result.actionId, result.results[0]?.inner);
|
|
@@ -94562,24 +94583,26 @@ class NordUser {
|
|
|
94562
94583
|
});
|
|
94563
94584
|
return {
|
|
94564
94585
|
actionId: receipt.actionId,
|
|
94565
|
-
|
|
94566
|
-
|
|
94567
|
-
|
|
94568
|
-
|
|
94569
|
-
|
|
94570
|
-
|
|
94571
|
-
|
|
94572
|
-
|
|
94573
|
-
|
|
94574
|
-
|
|
94575
|
-
|
|
94576
|
-
|
|
94577
|
-
|
|
94578
|
-
|
|
94579
|
-
|
|
94580
|
-
|
|
94581
|
-
|
|
94582
|
-
|
|
94586
|
+
takers: receipt.takers.map((taker) => ({
|
|
94587
|
+
takerAccountId: taker.takerAccountId,
|
|
94588
|
+
takenBalances: taker.takenBalances.map((balance) => {
|
|
94589
|
+
const token = findToken(this.nord.tokens, balance.tokenId);
|
|
94590
|
+
return {
|
|
94591
|
+
tokenId: balance.tokenId,
|
|
94592
|
+
amount: fromScaledBigInt(balance.amount, token.decimals)
|
|
94593
|
+
};
|
|
94594
|
+
}),
|
|
94595
|
+
takenPositions: taker.takenPositions.map((position) => {
|
|
94596
|
+
const market = findMarket(this.nord.markets, position.marketId);
|
|
94597
|
+
const baseSize = fromScaledBigInt(position.baseSize, market.sizeDecimals);
|
|
94598
|
+
return {
|
|
94599
|
+
marketId: position.marketId,
|
|
94600
|
+
baseSize,
|
|
94601
|
+
settlementPrice: fromScaledBigInt(position.settlementPrice, market.priceDecimals),
|
|
94602
|
+
bankruptcyPrice: qtyDivSize(fromU128Parts(optExpect(position.bankruptcyQuote, "Missing TakeAll bankruptcy quote")), position.baseSize, market.priceDecimals, market.sizeDecimals)
|
|
94603
|
+
};
|
|
94604
|
+
})
|
|
94605
|
+
}))
|
|
94583
94606
|
};
|
|
94584
94607
|
} catch (error) {
|
|
94585
94608
|
throw new NordError("Failed to take positions", { cause: error });
|
|
@@ -94848,7 +94871,7 @@ class NordUser {
|
|
|
94848
94871
|
if (!market) {
|
|
94849
94872
|
throw new NordError(`Market ${act.marketId} not found`);
|
|
94850
94873
|
}
|
|
94851
|
-
return {
|
|
94874
|
+
return withAtomicTarget(act, {
|
|
94852
94875
|
kind: "place",
|
|
94853
94876
|
marketId: act.marketId,
|
|
94854
94877
|
side: act.side,
|
|
@@ -94860,34 +94883,27 @@ class NordUser {
|
|
|
94860
94883
|
price: act.price,
|
|
94861
94884
|
quoteSize: act.quoteSize,
|
|
94862
94885
|
clientOrderId: act.clientOrderId,
|
|
94863
|
-
delegatorAccountId: act.delegatorAccountId,
|
|
94864
|
-
placement: act.placement,
|
|
94865
94886
|
referrer: act.referrer
|
|
94866
|
-
};
|
|
94887
|
+
});
|
|
94867
94888
|
}
|
|
94868
94889
|
if (act.kind === "cancel") {
|
|
94869
|
-
return {
|
|
94890
|
+
return withAtomicTarget(act, {
|
|
94870
94891
|
kind: "cancel",
|
|
94871
|
-
orderId: act.orderId
|
|
94872
|
-
|
|
94873
|
-
placement: act.placement
|
|
94874
|
-
};
|
|
94892
|
+
orderId: act.orderId
|
|
94893
|
+
});
|
|
94875
94894
|
}
|
|
94876
94895
|
if (act.kind === "reduceOrderLiquidation") {
|
|
94877
|
-
return {
|
|
94896
|
+
return withAtomicTarget(act, {
|
|
94878
94897
|
kind: "reduceOrderLiquidation",
|
|
94879
|
-
|
|
94880
|
-
|
|
94881
|
-
delegatorAccountId: act.delegatorAccountId,
|
|
94882
|
-
placement: act.placement
|
|
94883
|
-
};
|
|
94898
|
+
marketId: act.marketId
|
|
94899
|
+
});
|
|
94884
94900
|
}
|
|
94885
94901
|
if (act.kind === "rfq") {
|
|
94886
94902
|
const market = findMarket(this.nord.markets, act.marketId);
|
|
94887
94903
|
if (!market) {
|
|
94888
94904
|
throw new NordError(`Market ${act.marketId} not found`);
|
|
94889
94905
|
}
|
|
94890
|
-
return {
|
|
94906
|
+
return withAtomicTarget(act, {
|
|
94891
94907
|
kind: "rfq",
|
|
94892
94908
|
marketId: act.marketId,
|
|
94893
94909
|
side: act.side,
|
|
@@ -94897,30 +94913,34 @@ class NordUser {
|
|
|
94897
94913
|
size: act.size,
|
|
94898
94914
|
timeout: act.timeout,
|
|
94899
94915
|
clientOrderId: act.clientOrderId,
|
|
94900
|
-
|
|
94901
|
-
|
|
94916
|
+
minimalFill: act.minimalFill,
|
|
94917
|
+
isReduceOnly: act.isReduceOnly
|
|
94918
|
+
});
|
|
94902
94919
|
}
|
|
94903
94920
|
if (act.kind === "rfqFill") {
|
|
94904
94921
|
const market = findMarket(this.nord.markets, act.marketId);
|
|
94905
94922
|
if (!market) {
|
|
94906
94923
|
throw new NordError(`Market ${act.marketId} not found`);
|
|
94907
94924
|
}
|
|
94908
|
-
return {
|
|
94925
|
+
return withAtomicTarget(act, {
|
|
94909
94926
|
kind: "rfqFill",
|
|
94910
94927
|
marketId: act.marketId,
|
|
94911
94928
|
orderId: act.orderId,
|
|
94912
94929
|
priceDecimals: market.priceDecimals,
|
|
94930
|
+
sizeDecimals: market.sizeDecimals,
|
|
94913
94931
|
price: act.price,
|
|
94914
94932
|
timeout: act.timeout,
|
|
94915
|
-
|
|
94916
|
-
|
|
94933
|
+
minimumSize: act.minimumSize,
|
|
94934
|
+
maximumSize: act.maximumSize,
|
|
94935
|
+
isReduceOnly: act.isReduceOnly
|
|
94936
|
+
});
|
|
94917
94937
|
}
|
|
94918
94938
|
if (act.kind === "addTrigger") {
|
|
94919
94939
|
const market = findMarket(this.nord.markets, act.marketId);
|
|
94920
94940
|
if (!market) {
|
|
94921
94941
|
throw new NordError(`Market ${act.marketId} not found`);
|
|
94922
94942
|
}
|
|
94923
|
-
return {
|
|
94943
|
+
return withAtomicTarget(act, {
|
|
94924
94944
|
kind: "addTrigger",
|
|
94925
94945
|
marketId: act.marketId,
|
|
94926
94946
|
side: act.side,
|
|
@@ -94931,16 +94951,15 @@ class NordUser {
|
|
|
94931
94951
|
limitPrice: act.limitPrice,
|
|
94932
94952
|
limitBaseSize: act.limitBaseSize,
|
|
94933
94953
|
limitQuoteSize: act.limitQuoteSize,
|
|
94934
|
-
placement: act.placement,
|
|
94935
94954
|
referrer: act.referrer
|
|
94936
|
-
};
|
|
94955
|
+
});
|
|
94937
94956
|
}
|
|
94938
94957
|
if (act.kind === "editTrigger") {
|
|
94939
94958
|
const market = findMarket(this.nord.markets, act.marketId);
|
|
94940
94959
|
if (!market) {
|
|
94941
94960
|
throw new NordError(`Market ${act.marketId} not found`);
|
|
94942
94961
|
}
|
|
94943
|
-
return {
|
|
94962
|
+
return withAtomicTarget(act, {
|
|
94944
94963
|
kind: "editTrigger",
|
|
94945
94964
|
triggerId: act.triggerId,
|
|
94946
94965
|
marketId: act.marketId,
|
|
@@ -94951,24 +94970,20 @@ class NordUser {
|
|
|
94951
94970
|
sizeDecimals: market.sizeDecimals,
|
|
94952
94971
|
limitPrice: act.limitPrice,
|
|
94953
94972
|
limitBaseSize: act.limitBaseSize,
|
|
94954
|
-
limitQuoteSize: act.limitQuoteSize
|
|
94955
|
-
|
|
94956
|
-
};
|
|
94973
|
+
limitQuoteSize: act.limitQuoteSize
|
|
94974
|
+
});
|
|
94957
94975
|
}
|
|
94958
94976
|
if (act.kind === "removeTrigger") {
|
|
94959
|
-
return {
|
|
94977
|
+
return withAtomicTarget(act, {
|
|
94960
94978
|
kind: "removeTrigger",
|
|
94961
94979
|
marketId: act.marketId,
|
|
94962
|
-
triggerId: act.triggerId
|
|
94963
|
-
|
|
94964
|
-
};
|
|
94980
|
+
triggerId: act.triggerId
|
|
94981
|
+
});
|
|
94965
94982
|
}
|
|
94966
|
-
return {
|
|
94983
|
+
return withAtomicTarget(act, {
|
|
94967
94984
|
kind: "cancelByClientId",
|
|
94968
|
-
clientOrderId: act.clientOrderId
|
|
94969
|
-
|
|
94970
|
-
placement: act.placement
|
|
94971
|
-
};
|
|
94985
|
+
clientOrderId: act.clientOrderId
|
|
94986
|
+
});
|
|
94972
94987
|
});
|
|
94973
94988
|
const result = await atomic(this.nord.httpClient, this.signSessionMessage, await this.nord.getTimestamp(), this.getNonce(), {
|
|
94974
94989
|
sessionId: optExpect(this.sessionId, "No session"),
|
|
@@ -95455,13 +95470,15 @@ class NordAdmin {
|
|
|
95455
95470
|
return { actionId: receipt.actionId };
|
|
95456
95471
|
}
|
|
95457
95472
|
async setBackstopAccount({
|
|
95458
|
-
accountId
|
|
95473
|
+
accountId,
|
|
95474
|
+
marketMode
|
|
95459
95475
|
}) {
|
|
95460
95476
|
const receipt = await this.submitAction({
|
|
95461
95477
|
case: "setBackstopAccount",
|
|
95462
95478
|
value: create(Action_SetBackstopAccountSchema, {
|
|
95463
95479
|
aclPubkey: this.admin.toBytes(),
|
|
95464
|
-
accountId
|
|
95480
|
+
accountId,
|
|
95481
|
+
marketMode: marketMode ?? 0 /* CLOB */
|
|
95465
95482
|
})
|
|
95466
95483
|
});
|
|
95467
95484
|
expectReceiptKind(receipt, "backstopAccountSet", "set backstop account");
|
|
@@ -95575,46 +95592,55 @@ class NordAdmin {
|
|
|
95575
95592
|
return { actionId: receipt.actionId, ...receipt.kind.value };
|
|
95576
95593
|
}
|
|
95577
95594
|
async addFeeTier({
|
|
95595
|
+
marketType = 1 /* PERPETUALS */,
|
|
95578
95596
|
config: config2
|
|
95579
95597
|
}) {
|
|
95580
95598
|
const receipt = await this.submitAction({
|
|
95581
|
-
case: "
|
|
95582
|
-
value: create(
|
|
95599
|
+
case: "addFeeTierType",
|
|
95600
|
+
value: create(Action_AddFeeTierTypeSchema, {
|
|
95583
95601
|
aclPubkey: this.admin.toBytes(),
|
|
95584
|
-
|
|
95602
|
+
marketType,
|
|
95603
|
+
config: create(FeeTierTypeConfigSchema, config2)
|
|
95585
95604
|
})
|
|
95586
95605
|
});
|
|
95587
|
-
expectReceiptKind(receipt, "
|
|
95606
|
+
expectReceiptKind(receipt, "feeTierTypeAdded", "add fee tier type");
|
|
95588
95607
|
return { actionId: receipt.actionId, ...receipt.kind.value };
|
|
95589
95608
|
}
|
|
95590
95609
|
async updateFeeTier({
|
|
95591
95610
|
tierId,
|
|
95611
|
+
marketType = 1 /* PERPETUALS */,
|
|
95592
95612
|
config: config2
|
|
95593
95613
|
}) {
|
|
95594
95614
|
const receipt = await this.submitAction({
|
|
95595
|
-
case: "
|
|
95596
|
-
value: create(
|
|
95615
|
+
case: "updateFeeTierType",
|
|
95616
|
+
value: create(Action_UpdateFeeTierTypeSchema, {
|
|
95597
95617
|
aclPubkey: this.admin.toBytes(),
|
|
95598
95618
|
id: tierId,
|
|
95599
|
-
|
|
95619
|
+
marketType,
|
|
95620
|
+
config: create(FeeTierTypeConfigSchema, config2)
|
|
95600
95621
|
})
|
|
95601
95622
|
});
|
|
95602
|
-
expectReceiptKind(receipt, "
|
|
95623
|
+
expectReceiptKind(receipt, "feeTierTypeUpdated", "update fee tier type");
|
|
95603
95624
|
return { actionId: receipt.actionId, ...receipt.kind.value };
|
|
95604
95625
|
}
|
|
95605
|
-
async updateAccountsTier(
|
|
95626
|
+
async updateAccountsTier({
|
|
95627
|
+
accounts,
|
|
95628
|
+
tierId,
|
|
95629
|
+
marketType = 1 /* PERPETUALS */
|
|
95630
|
+
}) {
|
|
95606
95631
|
if (accounts.length !== new Set(accounts).size) {
|
|
95607
|
-
throw new NordError("duplicate
|
|
95632
|
+
throw new NordError("duplicate accupdateFeeTierTypeount ids in updateAccountsFeeTierTypeMode; must be unique");
|
|
95608
95633
|
}
|
|
95609
95634
|
const receipt = await this.submitAction({
|
|
95610
|
-
case: "
|
|
95611
|
-
value: create(
|
|
95635
|
+
case: "updateAccountsFeeTierTypeMode",
|
|
95636
|
+
value: create(Action_UpdateAccountsFeeTierTypeModeSchema, {
|
|
95612
95637
|
aclPubkey: this.admin.toBytes(),
|
|
95613
95638
|
accounts,
|
|
95614
|
-
tierId
|
|
95639
|
+
tierId,
|
|
95640
|
+
marketType
|
|
95615
95641
|
})
|
|
95616
95642
|
});
|
|
95617
|
-
expectReceiptKind(receipt, "
|
|
95643
|
+
expectReceiptKind(receipt, "accountsFeeTierTypeModeUpdated", "update accounts fee tier type mode");
|
|
95618
95644
|
return { actionId: receipt.actionId, ...receipt.kind.value };
|
|
95619
95645
|
}
|
|
95620
95646
|
async feeVaultTransfer({
|