@hive-ng/web-sdk 0.1.0 → 0.1.2

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/index.d.cts CHANGED
@@ -1191,7 +1191,7 @@ type Purchase = Message<"hiveng.v1.Purchase"> & {
1191
1191
  /**
1192
1192
  * @generated from message hiveng.v1.PaymentProduct
1193
1193
  */
1194
- type PaymentProduct = Message<"hiveng.v1.PaymentProduct"> & {
1194
+ type PaymentProduct$1 = Message<"hiveng.v1.PaymentProduct"> & {
1195
1195
  /**
1196
1196
  * @generated from field: string project_id = 1;
1197
1197
  */
@@ -1248,6 +1248,14 @@ type PaymentProduct = Message<"hiveng.v1.PaymentProduct"> & {
1248
1248
  * @generated from field: google.protobuf.Timestamp updated_at = 14;
1249
1249
  */
1250
1250
  updatedAt?: Timestamp | undefined;
1251
+ /**
1252
+ * @generated from field: int64 amount_minor = 15;
1253
+ */
1254
+ amountMinor: bigint;
1255
+ /**
1256
+ * @generated from field: string currency = 16;
1257
+ */
1258
+ currency: string;
1251
1259
  };
1252
1260
  /**
1253
1261
  * @generated from message hiveng.v1.ListProductsRequest
@@ -1278,7 +1286,7 @@ type ListProductsResponse = Message<"hiveng.v1.ListProductsResponse"> & {
1278
1286
  /**
1279
1287
  * @generated from field: repeated hiveng.v1.PaymentProduct products = 1;
1280
1288
  */
1281
- products: PaymentProduct[];
1289
+ products: PaymentProduct$1[];
1282
1290
  };
1283
1291
  /**
1284
1292
  * Describes the message hiveng.v1.ListProductsResponse.
@@ -1646,11 +1654,45 @@ interface PaymentPurchase {
1646
1654
  purchasedAt?: Date;
1647
1655
  verifiedAt?: Date;
1648
1656
  }
1657
+ interface PaymentProduct {
1658
+ projectId: string;
1659
+ market: string;
1660
+ appIdentifier: string;
1661
+ productId: string;
1662
+ productType: string;
1663
+ marketStatus: string;
1664
+ title: string;
1665
+ description: string;
1666
+ amountMinor: bigint;
1667
+ currency: string;
1668
+ consumePolicy: string;
1669
+ grantMode: string;
1670
+ enabled: boolean;
1671
+ }
1672
+ interface ListPaymentProductsOptions {
1673
+ market: string;
1674
+ appIdentifier: string;
1675
+ productType?: string;
1676
+ }
1677
+ interface StartPaymentPurchaseOptions {
1678
+ market: string;
1679
+ appIdentifier: string;
1680
+ productId: string;
1681
+ productType: string;
1682
+ }
1683
+ interface VerifyPaymentPurchaseOptions extends StartPaymentPurchaseOptions {
1684
+ receiptPayload?: string;
1685
+ purchaseToken?: string;
1686
+ purchaseIntentId?: string;
1687
+ }
1649
1688
  type PaymentClient = Client<typeof PaymentService>;
1650
1689
  declare class PaymentApi {
1651
1690
  private client;
1652
1691
  bind(client: PaymentClient): void;
1653
1692
  unbind(): void;
1693
+ listProducts(options: ListPaymentProductsOptions): Promise<PaymentProduct[]>;
1694
+ startPurchase(options: StartPaymentPurchaseOptions): Promise<string>;
1695
+ verifyPurchase(options: VerifyPaymentPurchaseOptions): Promise<PaymentPurchase>;
1654
1696
  getPurchase(purchaseId: string): Promise<PaymentPurchase>;
1655
1697
  waitForPaymentGrant(purchaseId: string, timeoutMillis?: number): Promise<PaymentPurchase>;
1656
1698
  private requireClient;
@@ -1673,4 +1715,4 @@ declare class HiveNgClient {
1673
1715
  }
1674
1716
  declare function createHiveNg(config: HiveNgConfig): HiveNgClient;
1675
1717
 
1676
- export { BannedError, type CheckNewMailResult, ErrorCode, HiveNgClient, type HiveNgConfig, HiveNgError, IdentityProvider, type ListMailOptions, type ListMailResult, type LoginProviders, type Mail, MailType, MaintenanceError, type Notice, type PaymentPurchase, type Player, type TransportFactory, type TransportFactoryOptions, createHiveNg, errorCodeOf, errorDetailOf };
1718
+ export { BannedError, type CheckNewMailResult, ErrorCode, HiveNgClient, type HiveNgConfig, HiveNgError, IdentityProvider, type ListMailOptions, type ListMailResult, type ListPaymentProductsOptions, type LoginProviders, type Mail, MailType, MaintenanceError, type Notice, type PaymentProduct, type PaymentPurchase, type Player, type StartPaymentPurchaseOptions, type TransportFactory, type TransportFactoryOptions, type VerifyPaymentPurchaseOptions, createHiveNg, errorCodeOf, errorDetailOf };
package/dist/index.d.ts CHANGED
@@ -1191,7 +1191,7 @@ type Purchase = Message<"hiveng.v1.Purchase"> & {
1191
1191
  /**
1192
1192
  * @generated from message hiveng.v1.PaymentProduct
1193
1193
  */
1194
- type PaymentProduct = Message<"hiveng.v1.PaymentProduct"> & {
1194
+ type PaymentProduct$1 = Message<"hiveng.v1.PaymentProduct"> & {
1195
1195
  /**
1196
1196
  * @generated from field: string project_id = 1;
1197
1197
  */
@@ -1248,6 +1248,14 @@ type PaymentProduct = Message<"hiveng.v1.PaymentProduct"> & {
1248
1248
  * @generated from field: google.protobuf.Timestamp updated_at = 14;
1249
1249
  */
1250
1250
  updatedAt?: Timestamp | undefined;
1251
+ /**
1252
+ * @generated from field: int64 amount_minor = 15;
1253
+ */
1254
+ amountMinor: bigint;
1255
+ /**
1256
+ * @generated from field: string currency = 16;
1257
+ */
1258
+ currency: string;
1251
1259
  };
1252
1260
  /**
1253
1261
  * @generated from message hiveng.v1.ListProductsRequest
@@ -1278,7 +1286,7 @@ type ListProductsResponse = Message<"hiveng.v1.ListProductsResponse"> & {
1278
1286
  /**
1279
1287
  * @generated from field: repeated hiveng.v1.PaymentProduct products = 1;
1280
1288
  */
1281
- products: PaymentProduct[];
1289
+ products: PaymentProduct$1[];
1282
1290
  };
1283
1291
  /**
1284
1292
  * Describes the message hiveng.v1.ListProductsResponse.
@@ -1646,11 +1654,45 @@ interface PaymentPurchase {
1646
1654
  purchasedAt?: Date;
1647
1655
  verifiedAt?: Date;
1648
1656
  }
1657
+ interface PaymentProduct {
1658
+ projectId: string;
1659
+ market: string;
1660
+ appIdentifier: string;
1661
+ productId: string;
1662
+ productType: string;
1663
+ marketStatus: string;
1664
+ title: string;
1665
+ description: string;
1666
+ amountMinor: bigint;
1667
+ currency: string;
1668
+ consumePolicy: string;
1669
+ grantMode: string;
1670
+ enabled: boolean;
1671
+ }
1672
+ interface ListPaymentProductsOptions {
1673
+ market: string;
1674
+ appIdentifier: string;
1675
+ productType?: string;
1676
+ }
1677
+ interface StartPaymentPurchaseOptions {
1678
+ market: string;
1679
+ appIdentifier: string;
1680
+ productId: string;
1681
+ productType: string;
1682
+ }
1683
+ interface VerifyPaymentPurchaseOptions extends StartPaymentPurchaseOptions {
1684
+ receiptPayload?: string;
1685
+ purchaseToken?: string;
1686
+ purchaseIntentId?: string;
1687
+ }
1649
1688
  type PaymentClient = Client<typeof PaymentService>;
1650
1689
  declare class PaymentApi {
1651
1690
  private client;
1652
1691
  bind(client: PaymentClient): void;
1653
1692
  unbind(): void;
1693
+ listProducts(options: ListPaymentProductsOptions): Promise<PaymentProduct[]>;
1694
+ startPurchase(options: StartPaymentPurchaseOptions): Promise<string>;
1695
+ verifyPurchase(options: VerifyPaymentPurchaseOptions): Promise<PaymentPurchase>;
1654
1696
  getPurchase(purchaseId: string): Promise<PaymentPurchase>;
1655
1697
  waitForPaymentGrant(purchaseId: string, timeoutMillis?: number): Promise<PaymentPurchase>;
1656
1698
  private requireClient;
@@ -1673,4 +1715,4 @@ declare class HiveNgClient {
1673
1715
  }
1674
1716
  declare function createHiveNg(config: HiveNgConfig): HiveNgClient;
1675
1717
 
1676
- export { BannedError, type CheckNewMailResult, ErrorCode, HiveNgClient, type HiveNgConfig, HiveNgError, IdentityProvider, type ListMailOptions, type ListMailResult, type LoginProviders, type Mail, MailType, MaintenanceError, type Notice, type PaymentPurchase, type Player, type TransportFactory, type TransportFactoryOptions, createHiveNg, errorCodeOf, errorDetailOf };
1718
+ export { BannedError, type CheckNewMailResult, ErrorCode, HiveNgClient, type HiveNgConfig, HiveNgError, IdentityProvider, type ListMailOptions, type ListMailResult, type ListPaymentProductsOptions, type LoginProviders, type Mail, MailType, MaintenanceError, type Notice, type PaymentProduct, type PaymentPurchase, type Player, type StartPaymentPurchaseOptions, type TransportFactory, type TransportFactoryOptions, type VerifyPaymentPurchaseOptions, createHiveNg, errorCodeOf, errorDetailOf };
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { BannedError, ErrorCode, HiveNgClient, HiveNgError, IdentityProvider, MailType, MaintenanceError, createHiveNg, errorCodeOf, errorDetailOf } from './chunk-NWQONJK2.js';
1
+ export { BannedError, ErrorCode, HiveNgClient, HiveNgError, IdentityProvider, MailType, MaintenanceError, createHiveNg, errorCodeOf, errorDetailOf } from './chunk-A2MK5ERC.js';
2
2
  //# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map
@@ -329,7 +329,7 @@ var file_hiveng_v1_mailbox = /* @__PURE__ */ codegenv2.fileDesc("ChdoaXZlbmcvdjE
329
329
  var MailboxService = /* @__PURE__ */ codegenv2.serviceDesc(file_hiveng_v1_mailbox, 0);
330
330
  var file_hiveng_v1_notice = /* @__PURE__ */ codegenv2.fileDesc("ChZoaXZlbmcvdjEvbm90aWNlLnByb3RvEgloaXZlbmcudjEi2gMKBk5vdGljZRIKCgJpZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEisKBXRpdGxlGAQgAygLMhwuaGl2ZW5nLnYxLk5vdGljZS5UaXRsZUVudHJ5EikKBGJvZHkYBSADKAsyGy5oaXZlbmcudjEuTm90aWNlLkJvZHlFbnRyeRItCglzdGFydHNfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCnZpZXdfY291bnQYDCABKAMaLAoKVGl0bGVFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGisKCUJvZHlFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIAxAESgQICBAJSgQICRAKUgR0eXBlUgljb3VudHJpZXNSCnNvcnRfb3JkZXIigQMKE0NyZWF0ZU5vdGljZVJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRI4CgV0aXRsZRgDIAMoCzIpLmhpdmVuZy52MS5DcmVhdGVOb3RpY2VSZXF1ZXN0LlRpdGxlRW50cnkSNgoEYm9keRgEIAMoCzIoLmhpdmVuZy52MS5DcmVhdGVOb3RpY2VSZXF1ZXN0LkJvZHlFbnRyeRItCglzdGFydHNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGiwKClRpdGxlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARorCglCb2R5RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAIQA0oECAcQCEoECAgQCVIEdHlwZVIJY291bnRyaWVzUgpzb3J0X29yZGVyIjkKFENyZWF0ZU5vdGljZVJlc3BvbnNlEiEKBm5vdGljZRgBIAEoCzIRLmhpdmVuZy52MS5Ob3RpY2UilAMKE1VwZGF0ZU5vdGljZVJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIRCglub3RpY2VfaWQYAiABKAkSOAoFdGl0bGUYBCADKAsyKS5oaXZlbmcudjEuVXBkYXRlTm90aWNlUmVxdWVzdC5UaXRsZUVudHJ5EjYKBGJvZHkYBSADKAsyKC5oaXZlbmcudjEuVXBkYXRlTm90aWNlUmVxdWVzdC5Cb2R5RW50cnkSLQoJc3RhcnRzX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBosCgpUaXRsZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaKwoJQm9keUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgDEARKBAgIEAlKBAgJEApSBHR5cGVSCWNvdW50cmllc1IKc29ydF9vcmRlciI5ChRVcGRhdGVOb3RpY2VSZXNwb25zZRIhCgZub3RpY2UYASABKAsyES5oaXZlbmcudjEuTm90aWNlIjwKE0RlbGV0ZU5vdGljZVJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIRCglub3RpY2VfaWQYAiABKAkiFgoURGVsZXRlTm90aWNlUmVzcG9uc2UiTgoSTGlzdE5vdGljZXNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSJAoEcGFnZRgCIAEoCzIWLmhpdmVuZy52MS5QYWdlUmVxdWVzdCJgChNMaXN0Tm90aWNlc1Jlc3BvbnNlEiIKB25vdGljZXMYASADKAsyES5oaXZlbmcudjEuTm90aWNlEiUKBHBhZ2UYAiABKAsyFy5oaXZlbmcudjEuUGFnZVJlc3BvbnNlIjIKGExpc3RBY3RpdmVOb3RpY2VzUmVxdWVzdEoECAEQAlIQY291bnRyeV9vdmVycmlkZSI/ChlMaXN0QWN0aXZlTm90aWNlc1Jlc3BvbnNlEiIKB25vdGljZXMYASADKAsyES5oaXZlbmcudjEuTm90aWNlMtcCChRDb25zb2xlTm90aWNlU2VydmljZRJPCgxDcmVhdGVOb3RpY2USHi5oaXZlbmcudjEuQ3JlYXRlTm90aWNlUmVxdWVzdBofLmhpdmVuZy52MS5DcmVhdGVOb3RpY2VSZXNwb25zZRJPCgxVcGRhdGVOb3RpY2USHi5oaXZlbmcudjEuVXBkYXRlTm90aWNlUmVxdWVzdBofLmhpdmVuZy52MS5VcGRhdGVOb3RpY2VSZXNwb25zZRJPCgxEZWxldGVOb3RpY2USHi5oaXZlbmcudjEuRGVsZXRlTm90aWNlUmVxdWVzdBofLmhpdmVuZy52MS5EZWxldGVOb3RpY2VSZXNwb25zZRJMCgtMaXN0Tm90aWNlcxIdLmhpdmVuZy52MS5MaXN0Tm90aWNlc1JlcXVlc3QaHi5oaXZlbmcudjEuTGlzdE5vdGljZXNSZXNwb25zZTJvCg1Ob3RpY2VTZXJ2aWNlEl4KEUxpc3RBY3RpdmVOb3RpY2VzEiMuaGl2ZW5nLnYxLkxpc3RBY3RpdmVOb3RpY2VzUmVxdWVzdBokLmhpdmVuZy52MS5MaXN0QWN0aXZlTm90aWNlc1Jlc3BvbnNlQmEKDWNvbS5oaXZlbmcudjFCC05vdGljZVByb3RvUAGiAgNIWFiqAglIaXZlbmcuVjHKAglIaXZlbmdcVjHiAhVIaXZlbmdcVjFcR1BCTWV0YWRhdGHqAgpIaXZlbmc6OlYxYgZwcm90bzM", [wkt.file_google_protobuf_timestamp, file_hiveng_v1_common]);
331
331
  var NoticeService = /* @__PURE__ */ codegenv2.serviceDesc(file_hiveng_v1_notice, 1);
332
- var file_hiveng_v1_payment = /* @__PURE__ */ codegenv2.fileDesc("ChdoaXZlbmcvdjEvcGF5bWVudC5wcm90bxIJaGl2ZW5nLnYxIogHCghQdXJjaGFzZRIKCgJpZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhEKCXBsYXllcl9pZBgDIAEoCRIhCgZtYXJrZXQYBCABKA4yES5oaXZlbmcudjEuTWFya2V0EhIKCnByb2R1Y3RfaWQYBSABKAkSFAoMYW1vdW50X21pbm9yGAYgASgDEhAKCGN1cnJlbmN5GAcgASgJEikKBnN0YXR1cxgIIAEoDjIZLmhpdmVuZy52MS5QdXJjaGFzZVN0YXR1cxIwCgxwdXJjaGFzZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC3ZlcmlmaWVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjcmVhdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCgxwcm9kdWN0X3R5cGUYDCABKA4yFi5oaXZlbmcudjEuUHJvZHVjdFR5cGUSFAoMcGFja2FnZV9uYW1lGA0gASgJEhcKD21hcmtldF9vcmRlcl9pZBgOIAEoCRIbChNwdXJjaGFzZV90b2tlbl9oYXNoGA8gASgJEhYKDmZhaWx1cmVfcmVhc29uGBAgASgJEhsKE3Jhd19tYXJrZXRfcmVzcG9uc2UYESABKAkSMAoMcmVxdWVzdGVkX2F0GBIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaChJwdXJjaGFzZV9pbnRlbnRfaWQYFCABKAkSNwoOY29uc3VtZV9wb2xpY3kYFSABKA4yHy5oaXZlbmcudjEuUGF5bWVudENvbnN1bWVQb2xpY3kSFgoOY29uc3VtZV9zdGF0dXMYFiABKAkSLwoLY29uc3VtZWRfYXQYFyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KCmdyYW50X21vZGUYGCABKA4yGy5oaXZlbmcudjEuUGF5bWVudEdyYW50TW9kZRIUCgxncmFudF9zdGF0dXMYGSABKAkSNgoSZ3JhbnRfZGVsaXZlcmVkX2F0GBogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKYBAoMU3Vic2NyaXB0aW9uEgoKAmlkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEQoJcGxheWVyX2lkGAMgASgJEiEKBm1hcmtldBgEIAEoDjIRLmhpdmVuZy52MS5NYXJrZXQSEgoKcHJvZHVjdF9pZBgFIAEoCRIUCgxwYWNrYWdlX25hbWUYBiABKAkSGwoTcHVyY2hhc2VfdG9rZW5faGFzaBgHIAEoCRIXCg9tYXJrZXRfb3JkZXJfaWQYCCABKAkSLQoGc3RhdHVzGAkgASgOMh0uaGl2ZW5nLnYxLlN1YnNjcmlwdGlvblN0YXR1cxIVCg1hdXRvX3JlbmV3aW5nGAogASgIEi4KCnN0YXJ0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmV4cGlyZXNfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC3ZlcmlmaWVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjcmVhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChNyYXdfbWFya2V0X3Jlc3BvbnNlGBAgASgJIswCCg9QYXltZW50U2V0dGluZ3MSEgoKcHJvamVjdF9pZBgBIAEoCRIkChhnb29nbGVfcGxheV9wYWNrYWdlX25hbWUYAiABKAlCAhgBEikKIWdvb2dsZV9wbGF5X2NyZWRlbnRpYWxfY29uZmlndXJlZBgDIAEoCBIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI4Cg9tYXJrZXRfc2V0dGluZ3MYBiADKAsyHy5oaXZlbmcudjEuUGF5bWVudE1hcmtldFNldHRpbmcSOgoQcHJvZHVjdF9zZXR0aW5ncxgHIAMoCzIgLmhpdmVuZy52MS5QYXltZW50UHJvZHVjdFNldHRpbmciiwIKFFBheW1lbnRNYXJrZXRTZXR0aW5nEhIKCnByb2plY3RfaWQYASABKAkSIQoGbWFya2V0GAIgASgOMhEuaGl2ZW5nLnYxLk1hcmtldBIWCg5hcHBfaWRlbnRpZmllchgDIAEoCRIUCgxkaXNwbGF5X25hbWUYBCABKAkSDwoHZW5hYmxlZBgFIAEoCBIdChVjcmVkZW50aWFsX2NvbmZpZ3VyZWQYBiABKAgSLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAigwMKFVBheW1lbnRQcm9kdWN0U2V0dGluZxISCgpwcm9qZWN0X2lkGAEgASgJEiEKBm1hcmtldBgCIAEoDjIRLmhpdmVuZy52MS5NYXJrZXQSFgoOYXBwX2lkZW50aWZpZXIYAyABKAkSEgoKcHJvZHVjdF9pZBgEIAEoCRIsCgxwcm9kdWN0X3R5cGUYBSABKA4yFi5oaXZlbmcudjEuUHJvZHVjdFR5cGUSNwoOY29uc3VtZV9wb2xpY3kYBiABKA4yHy5oaXZlbmcudjEuUGF5bWVudENvbnN1bWVQb2xpY3kSLwoKZ3JhbnRfbW9kZRgHIAEoDjIbLmhpdmVuZy52MS5QYXltZW50R3JhbnRNb2RlEg8KB2VuYWJsZWQYCCABKAgSLgoKY3JlYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi7QMKDlBheW1lbnRQcm9kdWN0EhIKCnByb2plY3RfaWQYASABKAkSIQoGbWFya2V0GAIgASgOMhEuaGl2ZW5nLnYxLk1hcmtldBIWCg5hcHBfaWRlbnRpZmllchgDIAEoCRISCgpwcm9kdWN0X2lkGAQgASgJEiwKDHByb2R1Y3RfdHlwZRgFIAEoDjIWLmhpdmVuZy52MS5Qcm9kdWN0VHlwZRIVCg1tYXJrZXRfc3RhdHVzGAYgASgJEg0KBXRpdGxlGAcgASgJEhMKC2Rlc2NyaXB0aW9uGAggASgJEjcKDmNvbnN1bWVfcG9saWN5GAkgASgOMh8uaGl2ZW5nLnYxLlBheW1lbnRDb25zdW1lUG9saWN5Ei8KCmdyYW50X21vZGUYCiABKA4yGy5oaXZlbmcudjEuUGF5bWVudEdyYW50TW9kZRIPCgdlbmFibGVkGAsgASgIEjQKEGxhc3RfaW1wb3J0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIn4KE0xpc3RQcm9kdWN0c1JlcXVlc3QSIQoGbWFya2V0GAEgASgOMhEuaGl2ZW5nLnYxLk1hcmtldBIWCg5hcHBfaWRlbnRpZmllchgCIAEoCRIsCgxwcm9kdWN0X3R5cGUYAyABKA4yFi5oaXZlbmcudjEuUHJvZHVjdFR5cGUiQwoUTGlzdFByb2R1Y3RzUmVzcG9uc2USKwoIcHJvZHVjdHMYASADKAsyGS5oaXZlbmcudjEuUGF5bWVudFByb2R1Y3QikwEKFFN0YXJ0UHVyY2hhc2VSZXF1ZXN0EiEKBm1hcmtldBgBIAEoDjIRLmhpdmVuZy52MS5NYXJrZXQSEgoKcHJvZHVjdF9pZBgCIAEoCRIsCgxwcm9kdWN0X3R5cGUYAyABKA4yFi5oaXZlbmcudjEuUHJvZHVjdFR5cGUSFgoOYXBwX2lkZW50aWZpZXIYBCABKAkiMwoVU3RhcnRQdXJjaGFzZVJlc3BvbnNlEhoKEnB1cmNoYXNlX2ludGVudF9pZBgBIAEoCSL7AQoVVmVyaWZ5UHVyY2hhc2VSZXF1ZXN0EiEKBm1hcmtldBgBIAEoDjIRLmhpdmVuZy52MS5NYXJrZXQSFwoPcmVjZWlwdF9wYXlsb2FkGAIgASgJEhIKCnByb2R1Y3RfaWQYAyABKAkSLAoMcHJvZHVjdF90eXBlGAQgASgOMhYuaGl2ZW5nLnYxLlByb2R1Y3RUeXBlEhYKDnB1cmNoYXNlX3Rva2VuGAUgASgJEhgKDHBhY2thZ2VfbmFtZRgGIAEoCUICGAESFgoOYXBwX2lkZW50aWZpZXIYByABKAkSGgoScHVyY2hhc2VfaW50ZW50X2lkGAggASgJIj8KFlZlcmlmeVB1cmNoYXNlUmVzcG9uc2USJQoIcHVyY2hhc2UYASABKAsyEy5oaXZlbmcudjEuUHVyY2hhc2UiNwogUGF5bWVudFNlcnZpY2VHZXRQdXJjaGFzZVJlcXVlc3QSEwoLcHVyY2hhc2VfaWQYASABKAkiSgohUGF5bWVudFNlcnZpY2VHZXRQdXJjaGFzZVJlc3BvbnNlEiUKCHB1cmNoYXNlGAEgASgLMhMuaGl2ZW5nLnYxLlB1cmNoYXNlImAKI0NvbmZpcm1QYXltZW50R3JhbnREZWxpdmVyZWRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSEwoLcHVyY2hhc2VfaWQYAiABKAkSEAoIZXZlbnRfaWQYAyABKAkiTQokQ29uZmlybVBheW1lbnRHcmFudERlbGl2ZXJlZFJlc3BvbnNlEiUKCHB1cmNoYXNlGAEgASgLMhMuaGl2ZW5nLnYxLlB1cmNoYXNlIi8KGUdldFBheW1lbnRTZXR0aW5nc1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJKChpHZXRQYXltZW50U2V0dGluZ3NSZXNwb25zZRIsCghzZXR0aW5ncxgBIAEoCzIaLmhpdmVuZy52MS5QYXltZW50U2V0dGluZ3MiVQoZU2V0UGF5bWVudFNldHRpbmdzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEiQKGGdvb2dsZV9wbGF5X3BhY2thZ2VfbmFtZRgCIAEoCUICGAEiSgoaU2V0UGF5bWVudFNldHRpbmdzUmVzcG9uc2USLAoIc2V0dGluZ3MYASABKAsyGi5oaXZlbmcudjEuUGF5bWVudFNldHRpbmdzIqoBCiFVcHNlcnRQYXltZW50TWFya2V0U2V0dGluZ1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIhCgZtYXJrZXQYAiABKA4yES5oaXZlbmcudjEuTWFya2V0EhYKDmFwcF9pZGVudGlmaWVyGAMgASgJEhQKDGRpc3BsYXlfbmFtZRgEIAEoCRIUCgdlbmFibGVkGAUgASgISACIAQFCCgoIX2VuYWJsZWQiUgoiVXBzZXJ0UGF5bWVudE1hcmtldFNldHRpbmdSZXNwb25zZRIsCghzZXR0aW5ncxgBIAEoCzIaLmhpdmVuZy52MS5QYXltZW50U2V0dGluZ3MiwQIKIlVwc2VydFBheW1lbnRQcm9kdWN0U2V0dGluZ1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIhCgZtYXJrZXQYAiABKA4yES5oaXZlbmcudjEuTWFya2V0EhYKDmFwcF9pZGVudGlmaWVyGAMgASgJEhIKCnByb2R1Y3RfaWQYBCABKAkSLAoMcHJvZHVjdF90eXBlGAUgASgOMhYuaGl2ZW5nLnYxLlByb2R1Y3RUeXBlEjcKDmNvbnN1bWVfcG9saWN5GAYgASgOMh8uaGl2ZW5nLnYxLlBheW1lbnRDb25zdW1lUG9saWN5Ei8KCmdyYW50X21vZGUYByABKA4yGy5oaXZlbmcudjEuUGF5bWVudEdyYW50TW9kZRIUCgdlbmFibGVkGAggASgISACIAQFCCgoIX2VuYWJsZWQiUwojVXBzZXJ0UGF5bWVudFByb2R1Y3RTZXR0aW5nUmVzcG9uc2USLAoIc2V0dGluZ3MYASABKAsyGi5oaXZlbmcudjEuUGF5bWVudFNldHRpbmdzIm0KHEltcG9ydFBheW1lbnRQcm9kdWN0c1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIhCgZtYXJrZXQYAiABKA4yES5oaXZlbmcudjEuTWFya2V0EhYKDmFwcF9pZGVudGlmaWVyGAMgASgJImQKHUltcG9ydFBheW1lbnRQcm9kdWN0c1Jlc3BvbnNlEisKCHByb2R1Y3RzGAEgAygLMhkuaGl2ZW5nLnYxLlBheW1lbnRQcm9kdWN0EhYKDmltcG9ydGVkX2NvdW50GAIgASgFIpkBChpMaXN0UGF5bWVudFByb2R1Y3RzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEiEKBm1hcmtldBgCIAEoDjIRLmhpdmVuZy52MS5NYXJrZXQSFgoOYXBwX2lkZW50aWZpZXIYAyABKAkSLAoMcHJvZHVjdF90eXBlGAQgASgOMhYuaGl2ZW5nLnYxLlByb2R1Y3RUeXBlIkoKG0xpc3RQYXltZW50UHJvZHVjdHNSZXNwb25zZRIrCghwcm9kdWN0cxgBIAMoCzIZLmhpdmVuZy52MS5QYXltZW50UHJvZHVjdCKxAgoUTGlzdFB1cmNoYXNlc1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIhCgZtYXJrZXQYAiABKA4yES5oaXZlbmcudjEuTWFya2V0EigKBGZyb20YAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiYKAnRvGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIkCgRwYWdlGAUgASgLMhYuaGl2ZW5nLnYxLlBhZ2VSZXF1ZXN0EiwKDHByb2R1Y3RfdHlwZRgGIAEoDjIWLmhpdmVuZy52MS5Qcm9kdWN0VHlwZRIpCgZzdGF0dXMYByABKA4yGS5oaXZlbmcudjEuUHVyY2hhc2VTdGF0dXMSEQoJcGxheWVyX2lkGAggASgJImYKFUxpc3RQdXJjaGFzZXNSZXNwb25zZRImCglwdXJjaGFzZXMYASADKAsyEy5oaXZlbmcudjEuUHVyY2hhc2USJQoEcGFnZRgCIAEoCzIXLmhpdmVuZy52MS5QYWdlUmVzcG9uc2UiPQoSR2V0UHVyY2hhc2VSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSEwoLcHVyY2hhc2VfaWQYAiABKAkiPAoTR2V0UHVyY2hhc2VSZXNwb25zZRIlCghwdXJjaGFzZRgBIAEoCzITLmhpdmVuZy52MS5QdXJjaGFzZSKmAQoYTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSIQoGbWFya2V0GAIgASgOMhEuaGl2ZW5nLnYxLk1hcmtldBItCgZzdGF0dXMYAyABKA4yHS5oaXZlbmcudjEuU3Vic2NyaXB0aW9uU3RhdHVzEiQKBHBhZ2UYBCABKAsyFi5oaXZlbmcudjEuUGFnZVJlcXVlc3QicgoZTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZRIuCg1zdWJzY3JpcHRpb25zGAEgAygLMhcuaGl2ZW5nLnYxLlN1YnNjcmlwdGlvbhIlCgRwYWdlGAIgASgLMhcuaGl2ZW5nLnYxLlBhZ2VSZXNwb25zZSJFChZHZXRTdWJzY3JpcHRpb25SZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSFwoPc3Vic2NyaXB0aW9uX2lkGAIgASgJIkgKF0dldFN1YnNjcmlwdGlvblJlc3BvbnNlEi0KDHN1YnNjcmlwdGlvbhgBIAEoCzIXLmhpdmVuZy52MS5TdWJzY3JpcHRpb24qfAoGTWFya2V0EhYKEk1BUktFVF9VTlNQRUNJRklFRBAAEhYKEk1BUktFVF9HT09HTEVfUExBWRABEhQKEE1BUktFVF9BUFBfU1RPUkUQAhIQCgxNQVJLRVRfU1RFQU0QBRIOCgpNQVJLRVRfV0VCEAYiBAgDEAMiBAgEEAQq4QEKDlB1cmNoYXNlU3RhdHVzEh8KG1BVUkNIQVNFX1NUQVRVU19VTlNQRUNJRklFRBAAEhsKF1BVUkNIQVNFX1NUQVRVU19QRU5ESU5HEAESHAoYUFVSQ0hBU0VfU1RBVFVTX1ZFUklGSUVEEAISGgoWUFVSQ0hBU0VfU1RBVFVTX0ZBSUxFRBADEhwKGFBVUkNIQVNFX1NUQVRVU19SRUZVTkRFRBAEEhwKGFBVUkNIQVNFX1NUQVRVU19DQU5DRUxFRBAFEhsKF1BVUkNIQVNFX1NUQVRVU19FWFBJUkVEEAYqZQoLUHJvZHVjdFR5cGUSHAoYUFJPRFVDVF9UWVBFX1VOU1BFQ0lGSUVEEAASGQoVUFJPRFVDVF9UWVBFX09ORV9USU1FEAESHQoZUFJPRFVDVF9UWVBFX1NVQlNDUklQVElPThACKo8BChRQYXltZW50Q29uc3VtZVBvbGljeRImCiJQQVlNRU5UX0NPTlNVTUVfUE9MSUNZX1VOU1BFQ0lGSUVEEAASHwobUEFZTUVOVF9DT05TVU1FX1BPTElDWV9OT05FEAESLgoqUEFZTUVOVF9DT05TVU1FX1BPTElDWV9DT05TVU1FX0FGVEVSX0dSQU5UEAIqpQEKEFBheW1lbnRHcmFudE1vZGUSIgoeUEFZTUVOVF9HUkFOVF9NT0RFX1VOU1BFQ0lGSUVEEAASJwojUEFZTUVOVF9HUkFOVF9NT0RFX1dFQkhPT0tfUkVRVUlSRUQQARIfChtQQVlNRU5UX0dSQU5UX01PREVfTk9fR1JBTlQQAhIjCh9QQVlNRU5UX0dSQU5UX01PREVfQ0xJRU5UX0dSQU5UEAMqxwIKElN1YnNjcmlwdGlvblN0YXR1cxIjCh9TVUJTQ1JJUFRJT05fU1RBVFVTX1VOU1BFQ0lGSUVEEAASHgoaU1VCU0NSSVBUSU9OX1NUQVRVU19BQ1RJVkUQARInCiNTVUJTQ1JJUFRJT05fU1RBVFVTX0lOX0dSQUNFX1BFUklPRBACEh8KG1NVQlNDUklQVElPTl9TVEFUVVNfT05fSE9MRBADEh4KGlNVQlNDUklQVElPTl9TVEFUVVNfUEFVU0VEEAQSIAocU1VCU0NSSVBUSU9OX1NUQVRVU19DQU5DRUxFRBAFEh8KG1NVQlNDUklQVElPTl9TVEFUVVNfRVhQSVJFRBAGEh8KG1NVQlNDUklQVElPTl9TVEFUVVNfUEVORElORxAHEh4KGlNVQlNDUklQVElPTl9TVEFUVVNfRkFJTEVEEAgy9wMKDlBheW1lbnRTZXJ2aWNlEk8KDExpc3RQcm9kdWN0cxIeLmhpdmVuZy52MS5MaXN0UHJvZHVjdHNSZXF1ZXN0Gh8uaGl2ZW5nLnYxLkxpc3RQcm9kdWN0c1Jlc3BvbnNlElIKDVN0YXJ0UHVyY2hhc2USHy5oaXZlbmcudjEuU3RhcnRQdXJjaGFzZVJlcXVlc3QaIC5oaXZlbmcudjEuU3RhcnRQdXJjaGFzZVJlc3BvbnNlElUKDlZlcmlmeVB1cmNoYXNlEiAuaGl2ZW5nLnYxLlZlcmlmeVB1cmNoYXNlUmVxdWVzdBohLmhpdmVuZy52MS5WZXJpZnlQdXJjaGFzZVJlc3BvbnNlEmgKC0dldFB1cmNoYXNlEisuaGl2ZW5nLnYxLlBheW1lbnRTZXJ2aWNlR2V0UHVyY2hhc2VSZXF1ZXN0GiwuaGl2ZW5nLnYxLlBheW1lbnRTZXJ2aWNlR2V0UHVyY2hhc2VSZXNwb25zZRJ/ChxDb25maXJtUGF5bWVudEdyYW50RGVsaXZlcmVkEi4uaGl2ZW5nLnYxLkNvbmZpcm1QYXltZW50R3JhbnREZWxpdmVyZWRSZXF1ZXN0Gi8uaGl2ZW5nLnYxLkNvbmZpcm1QYXltZW50R3JhbnREZWxpdmVyZWRSZXNwb25zZTKECAoVQ29uc29sZVBheW1lbnRTZXJ2aWNlEmEKEkdldFBheW1lbnRTZXR0aW5ncxIkLmhpdmVuZy52MS5HZXRQYXltZW50U2V0dGluZ3NSZXF1ZXN0GiUuaGl2ZW5nLnYxLkdldFBheW1lbnRTZXR0aW5nc1Jlc3BvbnNlEmEKElNldFBheW1lbnRTZXR0aW5ncxIkLmhpdmVuZy52MS5TZXRQYXltZW50U2V0dGluZ3NSZXF1ZXN0GiUuaGl2ZW5nLnYxLlNldFBheW1lbnRTZXR0aW5nc1Jlc3BvbnNlEnkKGlVwc2VydFBheW1lbnRNYXJrZXRTZXR0aW5nEiwuaGl2ZW5nLnYxLlVwc2VydFBheW1lbnRNYXJrZXRTZXR0aW5nUmVxdWVzdBotLmhpdmVuZy52MS5VcHNlcnRQYXltZW50TWFya2V0U2V0dGluZ1Jlc3BvbnNlEnwKG1Vwc2VydFBheW1lbnRQcm9kdWN0U2V0dGluZxItLmhpdmVuZy52MS5VcHNlcnRQYXltZW50UHJvZHVjdFNldHRpbmdSZXF1ZXN0Gi4uaGl2ZW5nLnYxLlVwc2VydFBheW1lbnRQcm9kdWN0U2V0dGluZ1Jlc3BvbnNlEmoKFUltcG9ydFBheW1lbnRQcm9kdWN0cxInLmhpdmVuZy52MS5JbXBvcnRQYXltZW50UHJvZHVjdHNSZXF1ZXN0GiguaGl2ZW5nLnYxLkltcG9ydFBheW1lbnRQcm9kdWN0c1Jlc3BvbnNlEmQKE0xpc3RQYXltZW50UHJvZHVjdHMSJS5oaXZlbmcudjEuTGlzdFBheW1lbnRQcm9kdWN0c1JlcXVlc3QaJi5oaXZlbmcudjEuTGlzdFBheW1lbnRQcm9kdWN0c1Jlc3BvbnNlElIKDUxpc3RQdXJjaGFzZXMSHy5oaXZlbmcudjEuTGlzdFB1cmNoYXNlc1JlcXVlc3QaIC5oaXZlbmcudjEuTGlzdFB1cmNoYXNlc1Jlc3BvbnNlEkwKC0dldFB1cmNoYXNlEh0uaGl2ZW5nLnYxLkdldFB1cmNoYXNlUmVxdWVzdBoeLmhpdmVuZy52MS5HZXRQdXJjaGFzZVJlc3BvbnNlEl4KEUxpc3RTdWJzY3JpcHRpb25zEiMuaGl2ZW5nLnYxLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdBokLmhpdmVuZy52MS5MaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlElgKD0dldFN1YnNjcmlwdGlvbhIhLmhpdmVuZy52MS5HZXRTdWJzY3JpcHRpb25SZXF1ZXN0GiIuaGl2ZW5nLnYxLkdldFN1YnNjcmlwdGlvblJlc3BvbnNlQmIKDWNvbS5oaXZlbmcudjFCDFBheW1lbnRQcm90b1ABogIDSFhYqgIJSGl2ZW5nLlYxygIJSGl2ZW5nXFYx4gIVSGl2ZW5nXFYxXEdQQk1ldGFkYXRh6gIKSGl2ZW5nOjpWMWIGcHJvdG8z", [wkt.file_google_protobuf_timestamp, file_hiveng_v1_common]);
332
+ var file_hiveng_v1_payment = /* @__PURE__ */ codegenv2.fileDesc("ChdoaXZlbmcvdjEvcGF5bWVudC5wcm90bxIJaGl2ZW5nLnYxIogHCghQdXJjaGFzZRIKCgJpZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhEKCXBsYXllcl9pZBgDIAEoCRIhCgZtYXJrZXQYBCABKA4yES5oaXZlbmcudjEuTWFya2V0EhIKCnByb2R1Y3RfaWQYBSABKAkSFAoMYW1vdW50X21pbm9yGAYgASgDEhAKCGN1cnJlbmN5GAcgASgJEikKBnN0YXR1cxgIIAEoDjIZLmhpdmVuZy52MS5QdXJjaGFzZVN0YXR1cxIwCgxwdXJjaGFzZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC3ZlcmlmaWVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjcmVhdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCgxwcm9kdWN0X3R5cGUYDCABKA4yFi5oaXZlbmcudjEuUHJvZHVjdFR5cGUSFAoMcGFja2FnZV9uYW1lGA0gASgJEhcKD21hcmtldF9vcmRlcl9pZBgOIAEoCRIbChNwdXJjaGFzZV90b2tlbl9oYXNoGA8gASgJEhYKDmZhaWx1cmVfcmVhc29uGBAgASgJEhsKE3Jhd19tYXJrZXRfcmVzcG9uc2UYESABKAkSMAoMcmVxdWVzdGVkX2F0GBIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaChJwdXJjaGFzZV9pbnRlbnRfaWQYFCABKAkSNwoOY29uc3VtZV9wb2xpY3kYFSABKA4yHy5oaXZlbmcudjEuUGF5bWVudENvbnN1bWVQb2xpY3kSFgoOY29uc3VtZV9zdGF0dXMYFiABKAkSLwoLY29uc3VtZWRfYXQYFyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KCmdyYW50X21vZGUYGCABKA4yGy5oaXZlbmcudjEuUGF5bWVudEdyYW50TW9kZRIUCgxncmFudF9zdGF0dXMYGSABKAkSNgoSZ3JhbnRfZGVsaXZlcmVkX2F0GBogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKYBAoMU3Vic2NyaXB0aW9uEgoKAmlkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEQoJcGxheWVyX2lkGAMgASgJEiEKBm1hcmtldBgEIAEoDjIRLmhpdmVuZy52MS5NYXJrZXQSEgoKcHJvZHVjdF9pZBgFIAEoCRIUCgxwYWNrYWdlX25hbWUYBiABKAkSGwoTcHVyY2hhc2VfdG9rZW5faGFzaBgHIAEoCRIXCg9tYXJrZXRfb3JkZXJfaWQYCCABKAkSLQoGc3RhdHVzGAkgASgOMh0uaGl2ZW5nLnYxLlN1YnNjcmlwdGlvblN0YXR1cxIVCg1hdXRvX3JlbmV3aW5nGAogASgIEi4KCnN0YXJ0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmV4cGlyZXNfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC3ZlcmlmaWVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjcmVhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChNyYXdfbWFya2V0X3Jlc3BvbnNlGBAgASgJIswCCg9QYXltZW50U2V0dGluZ3MSEgoKcHJvamVjdF9pZBgBIAEoCRIkChhnb29nbGVfcGxheV9wYWNrYWdlX25hbWUYAiABKAlCAhgBEikKIWdvb2dsZV9wbGF5X2NyZWRlbnRpYWxfY29uZmlndXJlZBgDIAEoCBIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI4Cg9tYXJrZXRfc2V0dGluZ3MYBiADKAsyHy5oaXZlbmcudjEuUGF5bWVudE1hcmtldFNldHRpbmcSOgoQcHJvZHVjdF9zZXR0aW5ncxgHIAMoCzIgLmhpdmVuZy52MS5QYXltZW50UHJvZHVjdFNldHRpbmciiwIKFFBheW1lbnRNYXJrZXRTZXR0aW5nEhIKCnByb2plY3RfaWQYASABKAkSIQoGbWFya2V0GAIgASgOMhEuaGl2ZW5nLnYxLk1hcmtldBIWCg5hcHBfaWRlbnRpZmllchgDIAEoCRIUCgxkaXNwbGF5X25hbWUYBCABKAkSDwoHZW5hYmxlZBgFIAEoCBIdChVjcmVkZW50aWFsX2NvbmZpZ3VyZWQYBiABKAgSLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAigwMKFVBheW1lbnRQcm9kdWN0U2V0dGluZxISCgpwcm9qZWN0X2lkGAEgASgJEiEKBm1hcmtldBgCIAEoDjIRLmhpdmVuZy52MS5NYXJrZXQSFgoOYXBwX2lkZW50aWZpZXIYAyABKAkSEgoKcHJvZHVjdF9pZBgEIAEoCRIsCgxwcm9kdWN0X3R5cGUYBSABKA4yFi5oaXZlbmcudjEuUHJvZHVjdFR5cGUSNwoOY29uc3VtZV9wb2xpY3kYBiABKA4yHy5oaXZlbmcudjEuUGF5bWVudENvbnN1bWVQb2xpY3kSLwoKZ3JhbnRfbW9kZRgHIAEoDjIbLmhpdmVuZy52MS5QYXltZW50R3JhbnRNb2RlEg8KB2VuYWJsZWQYCCABKAgSLgoKY3JlYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAilQQKDlBheW1lbnRQcm9kdWN0EhIKCnByb2plY3RfaWQYASABKAkSIQoGbWFya2V0GAIgASgOMhEuaGl2ZW5nLnYxLk1hcmtldBIWCg5hcHBfaWRlbnRpZmllchgDIAEoCRISCgpwcm9kdWN0X2lkGAQgASgJEiwKDHByb2R1Y3RfdHlwZRgFIAEoDjIWLmhpdmVuZy52MS5Qcm9kdWN0VHlwZRIVCg1tYXJrZXRfc3RhdHVzGAYgASgJEg0KBXRpdGxlGAcgASgJEhMKC2Rlc2NyaXB0aW9uGAggASgJEjcKDmNvbnN1bWVfcG9saWN5GAkgASgOMh8uaGl2ZW5nLnYxLlBheW1lbnRDb25zdW1lUG9saWN5Ei8KCmdyYW50X21vZGUYCiABKA4yGy5oaXZlbmcudjEuUGF5bWVudEdyYW50TW9kZRIPCgdlbmFibGVkGAsgASgIEjQKEGxhc3RfaW1wb3J0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhQKDGFtb3VudF9taW5vchgPIAEoAxIQCghjdXJyZW5jeRgQIAEoCSJ+ChNMaXN0UHJvZHVjdHNSZXF1ZXN0EiEKBm1hcmtldBgBIAEoDjIRLmhpdmVuZy52MS5NYXJrZXQSFgoOYXBwX2lkZW50aWZpZXIYAiABKAkSLAoMcHJvZHVjdF90eXBlGAMgASgOMhYuaGl2ZW5nLnYxLlByb2R1Y3RUeXBlIkMKFExpc3RQcm9kdWN0c1Jlc3BvbnNlEisKCHByb2R1Y3RzGAEgAygLMhkuaGl2ZW5nLnYxLlBheW1lbnRQcm9kdWN0IpMBChRTdGFydFB1cmNoYXNlUmVxdWVzdBIhCgZtYXJrZXQYASABKA4yES5oaXZlbmcudjEuTWFya2V0EhIKCnByb2R1Y3RfaWQYAiABKAkSLAoMcHJvZHVjdF90eXBlGAMgASgOMhYuaGl2ZW5nLnYxLlByb2R1Y3RUeXBlEhYKDmFwcF9pZGVudGlmaWVyGAQgASgJIjMKFVN0YXJ0UHVyY2hhc2VSZXNwb25zZRIaChJwdXJjaGFzZV9pbnRlbnRfaWQYASABKAki+wEKFVZlcmlmeVB1cmNoYXNlUmVxdWVzdBIhCgZtYXJrZXQYASABKA4yES5oaXZlbmcudjEuTWFya2V0EhcKD3JlY2VpcHRfcGF5bG9hZBgCIAEoCRISCgpwcm9kdWN0X2lkGAMgASgJEiwKDHByb2R1Y3RfdHlwZRgEIAEoDjIWLmhpdmVuZy52MS5Qcm9kdWN0VHlwZRIWCg5wdXJjaGFzZV90b2tlbhgFIAEoCRIYCgxwYWNrYWdlX25hbWUYBiABKAlCAhgBEhYKDmFwcF9pZGVudGlmaWVyGAcgASgJEhoKEnB1cmNoYXNlX2ludGVudF9pZBgIIAEoCSI/ChZWZXJpZnlQdXJjaGFzZVJlc3BvbnNlEiUKCHB1cmNoYXNlGAEgASgLMhMuaGl2ZW5nLnYxLlB1cmNoYXNlIjcKIFBheW1lbnRTZXJ2aWNlR2V0UHVyY2hhc2VSZXF1ZXN0EhMKC3B1cmNoYXNlX2lkGAEgASgJIkoKIVBheW1lbnRTZXJ2aWNlR2V0UHVyY2hhc2VSZXNwb25zZRIlCghwdXJjaGFzZRgBIAEoCzITLmhpdmVuZy52MS5QdXJjaGFzZSJgCiNDb25maXJtUGF5bWVudEdyYW50RGVsaXZlcmVkUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhMKC3B1cmNoYXNlX2lkGAIgASgJEhAKCGV2ZW50X2lkGAMgASgJIk0KJENvbmZpcm1QYXltZW50R3JhbnREZWxpdmVyZWRSZXNwb25zZRIlCghwdXJjaGFzZRgBIAEoCzITLmhpdmVuZy52MS5QdXJjaGFzZSIvChlHZXRQYXltZW50U2V0dGluZ3NSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkiSgoaR2V0UGF5bWVudFNldHRpbmdzUmVzcG9uc2USLAoIc2V0dGluZ3MYASABKAsyGi5oaXZlbmcudjEuUGF5bWVudFNldHRpbmdzIlUKGVNldFBheW1lbnRTZXR0aW5nc1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIkChhnb29nbGVfcGxheV9wYWNrYWdlX25hbWUYAiABKAlCAhgBIkoKGlNldFBheW1lbnRTZXR0aW5nc1Jlc3BvbnNlEiwKCHNldHRpbmdzGAEgASgLMhouaGl2ZW5nLnYxLlBheW1lbnRTZXR0aW5ncyKqAQohVXBzZXJ0UGF5bWVudE1hcmtldFNldHRpbmdSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSIQoGbWFya2V0GAIgASgOMhEuaGl2ZW5nLnYxLk1hcmtldBIWCg5hcHBfaWRlbnRpZmllchgDIAEoCRIUCgxkaXNwbGF5X25hbWUYBCABKAkSFAoHZW5hYmxlZBgFIAEoCEgAiAEBQgoKCF9lbmFibGVkIlIKIlVwc2VydFBheW1lbnRNYXJrZXRTZXR0aW5nUmVzcG9uc2USLAoIc2V0dGluZ3MYASABKAsyGi5oaXZlbmcudjEuUGF5bWVudFNldHRpbmdzIsECCiJVcHNlcnRQYXltZW50UHJvZHVjdFNldHRpbmdSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSIQoGbWFya2V0GAIgASgOMhEuaGl2ZW5nLnYxLk1hcmtldBIWCg5hcHBfaWRlbnRpZmllchgDIAEoCRISCgpwcm9kdWN0X2lkGAQgASgJEiwKDHByb2R1Y3RfdHlwZRgFIAEoDjIWLmhpdmVuZy52MS5Qcm9kdWN0VHlwZRI3Cg5jb25zdW1lX3BvbGljeRgGIAEoDjIfLmhpdmVuZy52MS5QYXltZW50Q29uc3VtZVBvbGljeRIvCgpncmFudF9tb2RlGAcgASgOMhsuaGl2ZW5nLnYxLlBheW1lbnRHcmFudE1vZGUSFAoHZW5hYmxlZBgIIAEoCEgAiAEBQgoKCF9lbmFibGVkIlMKI1Vwc2VydFBheW1lbnRQcm9kdWN0U2V0dGluZ1Jlc3BvbnNlEiwKCHNldHRpbmdzGAEgASgLMhouaGl2ZW5nLnYxLlBheW1lbnRTZXR0aW5ncyJtChxJbXBvcnRQYXltZW50UHJvZHVjdHNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSIQoGbWFya2V0GAIgASgOMhEuaGl2ZW5nLnYxLk1hcmtldBIWCg5hcHBfaWRlbnRpZmllchgDIAEoCSJkCh1JbXBvcnRQYXltZW50UHJvZHVjdHNSZXNwb25zZRIrCghwcm9kdWN0cxgBIAMoCzIZLmhpdmVuZy52MS5QYXltZW50UHJvZHVjdBIWCg5pbXBvcnRlZF9jb3VudBgCIAEoBSKZAQoaTGlzdFBheW1lbnRQcm9kdWN0c1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIhCgZtYXJrZXQYAiABKA4yES5oaXZlbmcudjEuTWFya2V0EhYKDmFwcF9pZGVudGlmaWVyGAMgASgJEiwKDHByb2R1Y3RfdHlwZRgEIAEoDjIWLmhpdmVuZy52MS5Qcm9kdWN0VHlwZSJKChtMaXN0UGF5bWVudFByb2R1Y3RzUmVzcG9uc2USKwoIcHJvZHVjdHMYASADKAsyGS5oaXZlbmcudjEuUGF5bWVudFByb2R1Y3QihgMKG0NyZWF0ZVBheW1lbnRQcm9kdWN0UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEiEKBm1hcmtldBgCIAEoDjIRLmhpdmVuZy52MS5NYXJrZXQSFgoOYXBwX2lkZW50aWZpZXIYAyABKAkSEgoKcHJvZHVjdF9pZBgEIAEoCRIsCgxwcm9kdWN0X3R5cGUYBSABKA4yFi5oaXZlbmcudjEuUHJvZHVjdFR5cGUSDQoFdGl0bGUYBiABKAkSEwoLZGVzY3JpcHRpb24YByABKAkSFAoMYW1vdW50X21pbm9yGAggASgDEhAKCGN1cnJlbmN5GAkgASgJEjcKDmNvbnN1bWVfcG9saWN5GAogASgOMh8uaGl2ZW5nLnYxLlBheW1lbnRDb25zdW1lUG9saWN5Ei8KCmdyYW50X21vZGUYCyABKA4yGy5oaXZlbmcudjEuUGF5bWVudEdyYW50TW9kZRIUCgdlbmFibGVkGAwgASgISACIAQFCCgoIX2VuYWJsZWQiSgocQ3JlYXRlUGF5bWVudFByb2R1Y3RSZXNwb25zZRIqCgdwcm9kdWN0GAEgASgLMhkuaGl2ZW5nLnYxLlBheW1lbnRQcm9kdWN0Iq4BChtEZWxldGVQYXltZW50UHJvZHVjdFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIhCgZtYXJrZXQYAiABKA4yES5oaXZlbmcudjEuTWFya2V0EhYKDmFwcF9pZGVudGlmaWVyGAMgASgJEhIKCnByb2R1Y3RfaWQYBCABKAkSLAoMcHJvZHVjdF90eXBlGAUgASgOMhYuaGl2ZW5nLnYxLlByb2R1Y3RUeXBlIh4KHERlbGV0ZVBheW1lbnRQcm9kdWN0UmVzcG9uc2UisQIKFExpc3RQdXJjaGFzZXNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSIQoGbWFya2V0GAIgASgOMhEuaGl2ZW5nLnYxLk1hcmtldBIoCgRmcm9tGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBImCgJ0bxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJAoEcGFnZRgFIAEoCzIWLmhpdmVuZy52MS5QYWdlUmVxdWVzdBIsCgxwcm9kdWN0X3R5cGUYBiABKA4yFi5oaXZlbmcudjEuUHJvZHVjdFR5cGUSKQoGc3RhdHVzGAcgASgOMhkuaGl2ZW5nLnYxLlB1cmNoYXNlU3RhdHVzEhEKCXBsYXllcl9pZBgIIAEoCSJmChVMaXN0UHVyY2hhc2VzUmVzcG9uc2USJgoJcHVyY2hhc2VzGAEgAygLMhMuaGl2ZW5nLnYxLlB1cmNoYXNlEiUKBHBhZ2UYAiABKAsyFy5oaXZlbmcudjEuUGFnZVJlc3BvbnNlIj0KEkdldFB1cmNoYXNlUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhMKC3B1cmNoYXNlX2lkGAIgASgJIjwKE0dldFB1cmNoYXNlUmVzcG9uc2USJQoIcHVyY2hhc2UYASABKAsyEy5oaXZlbmcudjEuUHVyY2hhc2UipgEKGExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEiEKBm1hcmtldBgCIAEoDjIRLmhpdmVuZy52MS5NYXJrZXQSLQoGc3RhdHVzGAMgASgOMh0uaGl2ZW5nLnYxLlN1YnNjcmlwdGlvblN0YXR1cxIkCgRwYWdlGAQgASgLMhYuaGl2ZW5nLnYxLlBhZ2VSZXF1ZXN0InIKGUxpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2USLgoNc3Vic2NyaXB0aW9ucxgBIAMoCzIXLmhpdmVuZy52MS5TdWJzY3JpcHRpb24SJQoEcGFnZRgCIAEoCzIXLmhpdmVuZy52MS5QYWdlUmVzcG9uc2UiRQoWR2V0U3Vic2NyaXB0aW9uUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhcKD3N1YnNjcmlwdGlvbl9pZBgCIAEoCSJIChdHZXRTdWJzY3JpcHRpb25SZXNwb25zZRItCgxzdWJzY3JpcHRpb24YASABKAsyFy5oaXZlbmcudjEuU3Vic2NyaXB0aW9uKnwKBk1hcmtldBIWChJNQVJLRVRfVU5TUEVDSUZJRUQQABIWChJNQVJLRVRfR09PR0xFX1BMQVkQARIUChBNQVJLRVRfQVBQX1NUT1JFEAISEAoMTUFSS0VUX1NURUFNEAUSDgoKTUFSS0VUX1dFQhAGIgQIAxADIgQIBBAEKuEBCg5QdXJjaGFzZVN0YXR1cxIfChtQVVJDSEFTRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIbChdQVVJDSEFTRV9TVEFUVVNfUEVORElORxABEhwKGFBVUkNIQVNFX1NUQVRVU19WRVJJRklFRBACEhoKFlBVUkNIQVNFX1NUQVRVU19GQUlMRUQQAxIcChhQVVJDSEFTRV9TVEFUVVNfUkVGVU5ERUQQBBIcChhQVVJDSEFTRV9TVEFUVVNfQ0FOQ0VMRUQQBRIbChdQVVJDSEFTRV9TVEFUVVNfRVhQSVJFRBAGKmUKC1Byb2R1Y3RUeXBlEhwKGFBST0RVQ1RfVFlQRV9VTlNQRUNJRklFRBAAEhkKFVBST0RVQ1RfVFlQRV9PTkVfVElNRRABEh0KGVBST0RVQ1RfVFlQRV9TVUJTQ1JJUFRJT04QAiqPAQoUUGF5bWVudENvbnN1bWVQb2xpY3kSJgoiUEFZTUVOVF9DT05TVU1FX1BPTElDWV9VTlNQRUNJRklFRBAAEh8KG1BBWU1FTlRfQ09OU1VNRV9QT0xJQ1lfTk9ORRABEi4KKlBBWU1FTlRfQ09OU1VNRV9QT0xJQ1lfQ09OU1VNRV9BRlRFUl9HUkFOVBACKqUBChBQYXltZW50R3JhbnRNb2RlEiIKHlBBWU1FTlRfR1JBTlRfTU9ERV9VTlNQRUNJRklFRBAAEicKI1BBWU1FTlRfR1JBTlRfTU9ERV9XRUJIT09LX1JFUVVJUkVEEAESHwobUEFZTUVOVF9HUkFOVF9NT0RFX05PX0dSQU5UEAISIwofUEFZTUVOVF9HUkFOVF9NT0RFX0NMSUVOVF9HUkFOVBADKscCChJTdWJzY3JpcHRpb25TdGF0dXMSIwofU1VCU0NSSVBUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEh4KGlNVQlNDUklQVElPTl9TVEFUVVNfQUNUSVZFEAESJwojU1VCU0NSSVBUSU9OX1NUQVRVU19JTl9HUkFDRV9QRVJJT0QQAhIfChtTVUJTQ1JJUFRJT05fU1RBVFVTX09OX0hPTEQQAxIeChpTVUJTQ1JJUFRJT05fU1RBVFVTX1BBVVNFRBAEEiAKHFNVQlNDUklQVElPTl9TVEFUVVNfQ0FOQ0VMRUQQBRIfChtTVUJTQ1JJUFRJT05fU1RBVFVTX0VYUElSRUQQBhIfChtTVUJTQ1JJUFRJT05fU1RBVFVTX1BFTkRJTkcQBxIeChpTVUJTQ1JJUFRJT05fU1RBVFVTX0ZBSUxFRBAIMvcDCg5QYXltZW50U2VydmljZRJPCgxMaXN0UHJvZHVjdHMSHi5oaXZlbmcudjEuTGlzdFByb2R1Y3RzUmVxdWVzdBofLmhpdmVuZy52MS5MaXN0UHJvZHVjdHNSZXNwb25zZRJSCg1TdGFydFB1cmNoYXNlEh8uaGl2ZW5nLnYxLlN0YXJ0UHVyY2hhc2VSZXF1ZXN0GiAuaGl2ZW5nLnYxLlN0YXJ0UHVyY2hhc2VSZXNwb25zZRJVCg5WZXJpZnlQdXJjaGFzZRIgLmhpdmVuZy52MS5WZXJpZnlQdXJjaGFzZVJlcXVlc3QaIS5oaXZlbmcudjEuVmVyaWZ5UHVyY2hhc2VSZXNwb25zZRJoCgtHZXRQdXJjaGFzZRIrLmhpdmVuZy52MS5QYXltZW50U2VydmljZUdldFB1cmNoYXNlUmVxdWVzdBosLmhpdmVuZy52MS5QYXltZW50U2VydmljZUdldFB1cmNoYXNlUmVzcG9uc2USfwocQ29uZmlybVBheW1lbnRHcmFudERlbGl2ZXJlZBIuLmhpdmVuZy52MS5Db25maXJtUGF5bWVudEdyYW50RGVsaXZlcmVkUmVxdWVzdBovLmhpdmVuZy52MS5Db25maXJtUGF5bWVudEdyYW50RGVsaXZlcmVkUmVzcG9uc2Uy1gkKFUNvbnNvbGVQYXltZW50U2VydmljZRJhChJHZXRQYXltZW50U2V0dGluZ3MSJC5oaXZlbmcudjEuR2V0UGF5bWVudFNldHRpbmdzUmVxdWVzdBolLmhpdmVuZy52MS5HZXRQYXltZW50U2V0dGluZ3NSZXNwb25zZRJhChJTZXRQYXltZW50U2V0dGluZ3MSJC5oaXZlbmcudjEuU2V0UGF5bWVudFNldHRpbmdzUmVxdWVzdBolLmhpdmVuZy52MS5TZXRQYXltZW50U2V0dGluZ3NSZXNwb25zZRJ5ChpVcHNlcnRQYXltZW50TWFya2V0U2V0dGluZxIsLmhpdmVuZy52MS5VcHNlcnRQYXltZW50TWFya2V0U2V0dGluZ1JlcXVlc3QaLS5oaXZlbmcudjEuVXBzZXJ0UGF5bWVudE1hcmtldFNldHRpbmdSZXNwb25zZRJ8ChtVcHNlcnRQYXltZW50UHJvZHVjdFNldHRpbmcSLS5oaXZlbmcudjEuVXBzZXJ0UGF5bWVudFByb2R1Y3RTZXR0aW5nUmVxdWVzdBouLmhpdmVuZy52MS5VcHNlcnRQYXltZW50UHJvZHVjdFNldHRpbmdSZXNwb25zZRJqChVJbXBvcnRQYXltZW50UHJvZHVjdHMSJy5oaXZlbmcudjEuSW1wb3J0UGF5bWVudFByb2R1Y3RzUmVxdWVzdBooLmhpdmVuZy52MS5JbXBvcnRQYXltZW50UHJvZHVjdHNSZXNwb25zZRJkChNMaXN0UGF5bWVudFByb2R1Y3RzEiUuaGl2ZW5nLnYxLkxpc3RQYXltZW50UHJvZHVjdHNSZXF1ZXN0GiYuaGl2ZW5nLnYxLkxpc3RQYXltZW50UHJvZHVjdHNSZXNwb25zZRJnChRDcmVhdGVQYXltZW50UHJvZHVjdBImLmhpdmVuZy52MS5DcmVhdGVQYXltZW50UHJvZHVjdFJlcXVlc3QaJy5oaXZlbmcudjEuQ3JlYXRlUGF5bWVudFByb2R1Y3RSZXNwb25zZRJnChREZWxldGVQYXltZW50UHJvZHVjdBImLmhpdmVuZy52MS5EZWxldGVQYXltZW50UHJvZHVjdFJlcXVlc3QaJy5oaXZlbmcudjEuRGVsZXRlUGF5bWVudFByb2R1Y3RSZXNwb25zZRJSCg1MaXN0UHVyY2hhc2VzEh8uaGl2ZW5nLnYxLkxpc3RQdXJjaGFzZXNSZXF1ZXN0GiAuaGl2ZW5nLnYxLkxpc3RQdXJjaGFzZXNSZXNwb25zZRJMCgtHZXRQdXJjaGFzZRIdLmhpdmVuZy52MS5HZXRQdXJjaGFzZVJlcXVlc3QaHi5oaXZlbmcudjEuR2V0UHVyY2hhc2VSZXNwb25zZRJeChFMaXN0U3Vic2NyaXB0aW9ucxIjLmhpdmVuZy52MS5MaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3QaJC5oaXZlbmcudjEuTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZRJYCg9HZXRTdWJzY3JpcHRpb24SIS5oaXZlbmcudjEuR2V0U3Vic2NyaXB0aW9uUmVxdWVzdBoiLmhpdmVuZy52MS5HZXRTdWJzY3JpcHRpb25SZXNwb25zZUJiCg1jb20uaGl2ZW5nLnYxQgxQYXltZW50UHJvdG9QAaICA0hYWKoCCUhpdmVuZy5WMcoCCUhpdmVuZ1xWMeICFUhpdmVuZ1xWMVxHUEJNZXRhZGF0YeoCCkhpdmVuZzo6VjFiBnByb3RvMw", [wkt.file_google_protobuf_timestamp, file_hiveng_v1_common]);
333
333
  var PaymentService = /* @__PURE__ */ codegenv2.serviceDesc(file_hiveng_v1_payment, 0);
334
334
  var MailboxApi = class {
335
335
  constructor(language) {
@@ -512,6 +512,63 @@ var PaymentApi = class {
512
512
  unbind() {
513
513
  this.client = null;
514
514
  }
515
+ async listProducts(options) {
516
+ const market = requireMarket(options.market);
517
+ const appIdentifier = requireValue(options.appIdentifier, "appIdentifier");
518
+ const client = this.requireClient();
519
+ try {
520
+ const res = await client.listProducts({
521
+ market,
522
+ appIdentifier,
523
+ productType: optionalProductType(options.productType)
524
+ });
525
+ return res.products.map(mapProduct);
526
+ } catch (err) {
527
+ throw toHiveNgError(err);
528
+ }
529
+ }
530
+ async startPurchase(options) {
531
+ const client = this.requireClient();
532
+ try {
533
+ const res = await client.startPurchase({
534
+ market: requireMarket(options.market),
535
+ appIdentifier: requireValue(options.appIdentifier, "appIdentifier"),
536
+ productId: requireValue(options.productId, "productId"),
537
+ productType: requireProductType(options.productType)
538
+ });
539
+ if (!res.purchaseIntentId) {
540
+ throw new HiveNgError("INTERNAL", "start purchase response missing purchaseIntentId");
541
+ }
542
+ return res.purchaseIntentId;
543
+ } catch (err) {
544
+ throw toHiveNgError(err);
545
+ }
546
+ }
547
+ async verifyPurchase(options) {
548
+ const receiptPayload = options.receiptPayload ?? "";
549
+ const purchaseToken = options.purchaseToken ?? "";
550
+ if (!receiptPayload && !purchaseToken) {
551
+ throw new HiveNgError("INVALID_ARGUMENT", "receiptPayload or purchaseToken is required");
552
+ }
553
+ const client = this.requireClient();
554
+ try {
555
+ const res = await client.verifyPurchase({
556
+ market: requireMarket(options.market),
557
+ appIdentifier: requireValue(options.appIdentifier, "appIdentifier"),
558
+ productId: requireValue(options.productId, "productId"),
559
+ productType: requireProductType(options.productType),
560
+ receiptPayload,
561
+ purchaseToken,
562
+ purchaseIntentId: options.purchaseIntentId ?? ""
563
+ });
564
+ if (!res.purchase) {
565
+ throw new HiveNgError("INTERNAL", "verify purchase response missing purchase");
566
+ }
567
+ return mapPurchase(res.purchase);
568
+ } catch (err) {
569
+ throw toHiveNgError(err);
570
+ }
571
+ }
515
572
  async getPurchase(purchaseId) {
516
573
  if (!purchaseId) {
517
574
  throw new HiveNgError("INVALID_ARGUMENT", "purchaseId is required");
@@ -561,6 +618,23 @@ var PaymentApi = class {
561
618
  return this.client;
562
619
  }
563
620
  };
621
+ function mapProduct(message) {
622
+ return {
623
+ projectId: message.projectId,
624
+ market: marketName(message.market),
625
+ appIdentifier: message.appIdentifier,
626
+ productId: message.productId,
627
+ productType: productTypeName(message.productType),
628
+ marketStatus: message.marketStatus,
629
+ title: message.title,
630
+ description: message.description,
631
+ amountMinor: message.amountMinor,
632
+ currency: message.currency,
633
+ consumePolicy: consumePolicyName(message.consumePolicy),
634
+ grantMode: grantModeName(message.grantMode),
635
+ enabled: message.enabled
636
+ };
637
+ }
564
638
  function mapPurchase(message) {
565
639
  return {
566
640
  id: message.id,
@@ -581,6 +655,22 @@ function mapPurchase(message) {
581
655
  verifiedAt: message.verifiedAt ? wkt.timestampDate(message.verifiedAt) : void 0
582
656
  };
583
657
  }
658
+ function requireMarket(value) {
659
+ const market = marketFromName(value);
660
+ if (market === 0 /* UNSPECIFIED */) {
661
+ throw new HiveNgError("INVALID_ARGUMENT", "market is required");
662
+ }
663
+ return market;
664
+ }
665
+ function marketFromName(value) {
666
+ const names = {
667
+ app_store: 2 /* APP_STORE */,
668
+ google_play: 1 /* GOOGLE_PLAY */,
669
+ steam: 5 /* STEAM */,
670
+ web: 6 /* WEB */
671
+ };
672
+ return names[value] ?? 0 /* UNSPECIFIED */;
673
+ }
584
674
  function marketName(market) {
585
675
  const names = {
586
676
  [1 /* GOOGLE_PLAY */]: "google_play",
@@ -590,6 +680,26 @@ function marketName(market) {
590
680
  };
591
681
  return names[market] ?? "unspecified";
592
682
  }
683
+ function requireProductType(value) {
684
+ const productType = productTypeFromName(value);
685
+ if (productType === 0 /* UNSPECIFIED */) {
686
+ throw new HiveNgError("INVALID_ARGUMENT", "productType is required");
687
+ }
688
+ return productType;
689
+ }
690
+ function optionalProductType(value) {
691
+ if (value === void 0 || value.trim() === "") {
692
+ return 0 /* UNSPECIFIED */;
693
+ }
694
+ return requireProductType(value);
695
+ }
696
+ function productTypeFromName(value) {
697
+ const names = {
698
+ one_time: 1 /* ONE_TIME */,
699
+ subscription: 2 /* SUBSCRIPTION */
700
+ };
701
+ return names[value] ?? 0 /* UNSPECIFIED */;
702
+ }
593
703
  function productTypeName(productType) {
594
704
  const names = {
595
705
  [1 /* ONE_TIME */]: "one_time",
@@ -597,6 +707,21 @@ function productTypeName(productType) {
597
707
  };
598
708
  return names[productType] ?? "unspecified";
599
709
  }
710
+ function consumePolicyName(policy) {
711
+ const names = {
712
+ 1: "none",
713
+ 2: "consume_after_grant"
714
+ };
715
+ return names[policy] ?? "unspecified";
716
+ }
717
+ function grantModeName(mode) {
718
+ const names = {
719
+ 1: "webhook_required",
720
+ 2: "no_grant",
721
+ 3: "client_grant"
722
+ };
723
+ return names[mode] ?? "unspecified";
724
+ }
600
725
  function purchaseStatusName(status) {
601
726
  const names = {
602
727
  [1 /* PENDING */]: "pending",
@@ -608,6 +733,13 @@ function purchaseStatusName(status) {
608
733
  };
609
734
  return names[status] ?? "unspecified";
610
735
  }
736
+ function requireValue(value, fieldName) {
737
+ const normalized = value.trim();
738
+ if (!normalized) {
739
+ throw new HiveNgError("INVALID_ARGUMENT", `${fieldName} is required`);
740
+ }
741
+ return normalized;
742
+ }
611
743
  function isGrantFinished(purchase) {
612
744
  return purchase.grantStatus === "delivered" || purchase.grantStatus === "not_required";
613
745
  }