@vendasta/billing 11.10.0 → 12.2.0
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/esm2020/lib/_internal/enums/index.mjs +4 -4
- package/esm2020/lib/_internal/index.mjs +1 -2
- package/esm2020/lib/_internal/interfaces/billable-item.interface.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/index.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/tax-rate.interface.mjs +1 -1
- package/esm2020/lib/_internal/objects/billable-item.mjs +66 -27
- package/esm2020/lib/_internal/objects/index.mjs +8 -9
- package/esm2020/lib/_internal/objects/tax-rate.mjs +114 -1
- package/esm2020/lib/_internal/tax.api.service.mjs +7 -2
- package/fesm2015/vendasta-billing.mjs +5354 -5972
- package/fesm2015/vendasta-billing.mjs.map +1 -1
- package/fesm2020/vendasta-billing.mjs +5354 -5972
- package/fesm2020/vendasta-billing.mjs.map +1 -1
- package/lib/_internal/enums/index.d.ts +3 -3
- package/lib/_internal/index.d.ts +0 -1
- package/lib/_internal/interfaces/billable-item.interface.d.ts +12 -5
- package/lib/_internal/interfaces/index.d.ts +7 -8
- package/lib/_internal/interfaces/tax-rate.interface.d.ts +18 -0
- package/lib/_internal/objects/billable-item.d.ts +18 -8
- package/lib/_internal/objects/index.d.ts +7 -8
- package/lib/_internal/objects/tax-rate.d.ts +30 -0
- package/lib/_internal/tax.api.service.d.ts +3 -2
- package/package.json +1 -1
- package/esm2020/lib/_internal/interfaces/invoice-template.interface.mjs +0 -2
- package/esm2020/lib/_internal/invoice-template.api.service.mjs +0 -85
- package/esm2020/lib/_internal/objects/invoice-template.mjs +0 -707
- package/lib/_internal/interfaces/invoice-template.interface.d.ts +0 -126
- package/lib/_internal/invoice-template.api.service.d.ts +0 -25
- package/lib/_internal/objects/invoice-template.d.ts +0 -194
|
@@ -5,18 +5,21 @@
|
|
|
5
5
|
// Objects Index.
|
|
6
6
|
// *********************************
|
|
7
7
|
export { ExportResponse, PagedRequestOptions, PagedResponseMetadata, } from './common';
|
|
8
|
-
export {
|
|
8
|
+
export { Commitment, } from './commitment';
|
|
9
|
+
export { AppliedFee, Fee, } from './fee';
|
|
10
|
+
export { FieldMask, } from './field-mask';
|
|
11
|
+
export { ComponentPricing, CreatePricingPlanRequest, CreatePricingPlanResponse, GetMultiPricingPlanRequest, GetMultiPricingPlanResponse, PricingPlan, PricingPlanProductPricing, ProductPricingRule, UpdatePricingPlanRequest, UpdatePricingPlanResponse, } from './pricing-plan';
|
|
12
|
+
export { ProductPrices, ProductPricing, WholesaleCostItemRequest, } from './product-pricing';
|
|
13
|
+
export { BillItemRequest, BillMultipleItemsRequest, BillMultipleItemsResponse, BillableItem, CanBillItemRequest, CreateUsageRequest, BillableItemCustomerAddress, DeleteBillableItemRequest, ExpireBillableItemRequest, ExportSubscriptionsRequest, ListBillableItemsRequestFilters, ListSubscriptionsRequestFilters, GetBillableItemRequest, GetBillableItemResponse, GetMultiSubscriptionsRequest, GetMultiSubscriptionsResponse, Item, GetMultiSubscriptionsRequestKey, ListBillableItemsRequest, ListBillableItemsResponse, ListSubscriptionsRequest, ListSubscriptionsResponse, SubscriptionProjectionFilter, } from './billable-item';
|
|
9
14
|
export { AppliedDiscount, } from './applied-discount';
|
|
10
15
|
export { Bundle, BundleItem, BundlePricing, GetMultiBundleResponseBundlesEntry, ListBundlesRequestFilters, GetMultiBundleRequest, GetMultiBundleResponse, ListBundlesRequest, ListBundlesResponse, BundleItemPrice, BundlePricingPriceAndFrequency, UpsertBundleRequest, } from './bundle';
|
|
11
|
-
export { Commitment, } from './commitment';
|
|
12
16
|
export { Contract, GetMultiContractsResponseContractsEntry, CreateContractRequest, CreateContractResponse, GetContractRequest, GetContractResponse, GetMultiContractsRequest, GetMultiContractsResponse, ListContractsRequest, ListContractsResponse, UpdateContractRequestMutation, ResetContractPricingRequest, UpdateContractRequest, UpdateContractResponse, UpdateContractSubscriptionRequest, } from './contract';
|
|
13
17
|
export { CustomerSummary, GetMultiCustomerSummariesRequest, GetMultiCustomerSummariesResponse, } from './customer-summary';
|
|
14
18
|
export { BankAccount, CreateStripeExternalAccountRequest, DeleteBankAccountRequest, ListBankAccountsRequest, ListBankAccountsResponse, SetDefaultBankAccountRequest, } from './external-account';
|
|
15
19
|
export { ProductSummaryDiscount, ListSubscriptionRetentionRequestFilters, GetProductSummariesTotalRequest, GetProductSummariesTotalResponse, ListProductSummariesRequest, ListProductSummariesResponse, ListSubscriptionRetentionByGroupResponse, ListSubscriptionRetentionBySKUResponse, ListSubscriptionRetentionRequest, Pricing, ProductSummary, RetentionMetrics, PricingRule, ListSubscriptionRetentionByGroupResponseSubscriptionRetentionByGroup, } from './product-summary';
|
|
16
20
|
export { CreateDiscountRequest, Discount, ExpireDiscountRequest, ListDiscountsRequestFilters, ListDiscountsRequest, ListDiscountsResponse, UpdateDiscountRequest, } from './discount';
|
|
17
21
|
export { AppliedTaxRate, } from './applied-tax-rate';
|
|
18
|
-
export {
|
|
19
|
-
export { ArchiveTaxRequest, CalculateTaxRequest, CalculateTaxResponse, CreateTaxRequest, ListTaxRequestFilters, GetMultiTaxRequest, GetMultiTaxResponse, ListTaxRequest, ListTaxResponse, TaxRate, UpdateTaxRequest, } from './tax-rate';
|
|
22
|
+
export { ArchiveTaxRequest, CalculateLineItemTaxesRequest, CalculateLineItemTaxesResponse, CalculateTaxRequest, CalculateTaxResponse, CreateTaxRequest, ListTaxRequestFilters, GetMultiTaxRequest, GetMultiTaxResponse, CalculateLineItemTaxesRequestLineItem, CalculateLineItemTaxesResponseLineItemTaxes, ListTaxRequest, ListTaxResponse, TaxRate, UpdateTaxRequest, } from './tax-rate';
|
|
20
23
|
export { AppliedBundle, AppliedBundleItem, } from './applied-bundle';
|
|
21
24
|
export { AddBundleRequest, AddBundleResponse, AddLineItemRequest, AddLineItemResponse, ChargeInvoiceRequest, CreateInvoiceRequest, CreateInvoiceResponse, CreatePaymentLinkRequest, CreatePaymentLinkResponse, InvoiceCustomerAddress, ListInvoicesRequestFiltersDateFilter, DeleteInvoiceRequest, DeleteLineItemRequest, DeleteLineItemResponse, DuplicateInvoiceRequest, DuplicateInvoiceResponse, ListInvoicesRequestFilters, GetInvoiceRequest, GetInvoiceResponse, Invoice, InvoiceItem, ListInvoicesRequest, ListInvoicesResponse, PayInvoiceRequest, PaymentLinkItem, RemoveBundleRequest, RemoveBundleResponse, SendInvoiceRequest, UpdateBundleRequest, UpdateBundleResponse, UpdateDefaultTaxRatesRequest, UpdateDefaultTaxRatesResponse, UpdateInvoiceRequest, UpdateInvoiceResponse, UpdateLineItemRequest, UpdateLineItemResponse, VoidInvoiceRequest, } from './invoice';
|
|
22
25
|
export { AccountBalance, Balance, BalanceAmount, } from './balance';
|
|
@@ -27,11 +30,8 @@ export { ListMerchantBillingReportsRequest, ListMerchantBillingReportsResponse,
|
|
|
27
30
|
export { CreateMeteredComponentRequest, MeteredComponent, TickComponentUsageRequest, } from './metered-component';
|
|
28
31
|
export { Adjustment, RetailPaymentCardDetails, CloseRetailDisputeRequest, ConfigureRetailPaymentProviderRequest, ConfigureRetailPaymentProviderResponse, ConfirmRetailPaymentRequest, Dispute, DisputeEvidence, SubmitEvidenceRequestDisputeEvidence, DisputeEvidenceDetails, File, GetRetailDisputeRequest, GetRetailDisputeResponse, GetRetailPaymentProviderRequest, GetRetailPaymentProviderResponse, GetRetailPaymentRequest, GetRetailPaymentResponse, GetWholesaleProviderPublicKeyRequest, GetWholesaleProviderPublicKeyResponse, ListPaymentRequestListPaymentFilters, ListPaymentRequest, ListPaymentResponse, ListRetailDisputesRequest, ListRetailDisputesResponse, ListRetailPaymentsRequestListRetailPaymentsFilters, ListRetailPaymentsRequest, ListRetailPaymentsResponse, ListRetailTransactionsRequestListRetailTransactionsFilters, ListRetailTransactionsRequest, ListRetailTransactionsResponse, PrepareRetailPaymentRequestOrder, Payment, PaymentPaymentAllocation, PrepareRetailPaymentRequest, PrepareRetailPaymentResponse, RefundRetailPaymentRequest, RefundRetailPaymentResponse, RetailPayment, RetailPaymentsEnabledRequest, RetailPaymentsEnabledResponse, RetailRefund, RetailStatusRequest, RetailStatusResponse, RetailTransaction, SubmitEvidenceRequest, UpdateRetailPaymentProviderRequest, RetailStatusResponseVerificationError, RetailStatusResponseVerificationRequirements, } from './payment';
|
|
29
32
|
export { CreatePaymentCardRequest, DeletePaymentCardRequest, ListPaymentCardsRequest, ListPaymentCardsResponse, PaymentCard, SetDefaultPaymentMethodRequest, UpdatePaymentCardRequest, } from './payment-card';
|
|
30
|
-
export { AppliedFee, Fee, } from './fee';
|
|
31
|
-
export { ComponentPricing, CreatePricingPlanRequest, CreatePricingPlanResponse, GetMultiPricingPlanRequest, GetMultiPricingPlanResponse, PricingPlan, PricingPlanProductPricing, ProductPricingRule, UpdatePricingPlanRequest, UpdatePricingPlanResponse, } from './pricing-plan';
|
|
32
33
|
export { CreatePricingPlanProductRequest, CreatePricingPlanProductResponse, DeletePricingPlanProductRequest, GetMultiPricingPlanProductRequest, GetMultiPricingPlanProductResponse, GetPricingPlanProductRequest, GetPricingPlanProductResponse, ListPricingPlanProductsRequestListPricingPlanProductsFilters, ListPricingPlanProductsRequest, ListPricingPlanProductsResponse, PricingPlanProductPricingEntry, CreatePricingPlanProductRequestPricingEntry, UpdatePricingPlanProductRequestPricingEntry, PricingPlanProduct, UpdatePricingPlanProductRequest, UpdatePricingPlanProductResponse, UpsertWholesalePricingRequest, } from './pricing-plan-product';
|
|
33
34
|
export { CreateProductRequest, DeleteProductRequest, GetMultiProductRequest, GetMultiProductResponse, ListProductsRequestListProductsFilters, ListProductsRequest, ListProductsResponse, Product, GetMultiProductResponseProductsEntry, UpdateProductRequest, } from './product';
|
|
34
|
-
export { ProductPrices, ProductPricing, WholesaleCostItemRequest, } from './product-pricing';
|
|
35
35
|
export { AppliedCredit, ListPurchaseRequestListPurchaseBillingStrategyFilter, ListPurchaseRequestListPurchaseFilters, ListPurchaseItemsRequestListPurchaseItemsFilters, ListPurchaseItemsRequest, ListPurchaseItemsResponse, ListPurchaseRequest, ListPurchaseResponse, PauseDunningRequest, Purchase, PurchaseItem, ResumeDunningRequest, RetryPurchaseRequest, StopDunningRequest, VoidPurchaseRequest, } from './purchase';
|
|
36
36
|
export { CreateRefundRequest, ListRefundsRequest, ListRefundsResponse, Refund, } from './refund';
|
|
37
37
|
export { CreateSalesCreditNoteRequest, ListSalesCreditNoteRequestListSalesCreditNoteFilters, ListSalesCreditNoteRequest, ListSalesCreditNoteResponse, SalesCreditNote, } from './sales-credit-note';
|
|
@@ -41,9 +41,8 @@ export { AlignmentSubscription, CanCreateSubscriptionsRequest, CanCreateSubscrip
|
|
|
41
41
|
export { ContractDocument, DeleteContractDocumentRequest, ListContractDocumentsRequestFilters, ListContractDocumentsRequest, ListContractDocumentsResponse, } from './contract-document';
|
|
42
42
|
export { GetRetailCustomerConfigurationRequest, GetRetailCustomerConfigurationResponse, RetailCustomerConfiguration, UpsertRetailCustomerConfigurationRequest, } from './retail-customer-configuration';
|
|
43
43
|
export { AddCreditRequest, CreditBalance, GetBalanceRequest, GetBalanceResponse, } from './credit';
|
|
44
|
-
export { AddTemplateBundleRequest, AddTemplateBundleResponse, AddTemplateLineItemRequest, AddTemplateLineItemResponse, CreateTemplateRequest, CreateTemplateResponse, DeleteInvoiceTemplateRequest, DeleteTemplateLineItemRequest, DeleteTemplateLineItemResponse, GetInvoiceTemplateRequest, GetInvoiceTemplateResponse, InvoiceTemplate, InvoiceTemplateItem, UpsertInvoiceTemplateRequestInvoiceTemplateItemRequest, UpdateTemplateBundleRequest, UpdateTemplateBundleResponse, UpdateTemplateDefaultTaxRatesRequest, UpdateTemplateDefaultTaxRatesResponse, UpdateTemplateLineItemRequest, UpdateTemplateLineItemResponse, UpsertInvoiceTemplateRequest, UpsertInvoiceTemplateResponse, } from './invoice-template';
|
|
45
44
|
export { RecurringInvoiceCustomerAddress, ListRecurringInvoicesFiltersDateFilter, DeleteRecurringInvoiceRequest, ListRecurringInvoicesFiltersDetailedInterval, GetRecurringInvoiceRequest, ListRecurringInvoicesFilters, ListRecurringInvoicesRequest, ListRecurringInvoicesResponse, RecurringInvoice, RecurringInvoiceBundle, RecurringInvoiceItem, RecurringInvoiceLineItem, UpdateRecurringInvoiceRequest, } from './recurring-invoice';
|
|
46
45
|
export { CreateMerchantServicesReportRun, GetMerchantServicesReportRun, MerchantServicesReportRun, } from './report-run';
|
|
47
46
|
export { Access, } from './annotations';
|
|
48
47
|
export { DeleteRetailPricingRequest, GenerateBillableItemsCSVRequest, GenerateBillableItemsCSVResponse, GenerateVendorReportRequest, GenerateVendorReportResponse, GetMultiBundleRetailPricingRequest, GetMultiBundleRetailPricingResponse, GetMultiProductPricingRequest, GetMultiProductPricingResponse, GetMultiRetailPricingRequest, GetMultiRetailPricingResponse, GetMultiWholesaleCostRequest, GetMultiWholesaleCostResponse, GetPurchaseCostRequest, GetPurchaseCostResponse, GetRevenueStatsRequest, GetRevenueStatsResponse, GetStatisticsRequest, GetStatisticsResponse, GetWholesaleComparisonRequestGetWholesaleComparisonFilters, GetWholesaleComparisonRequest, GetWholesaleComparisonResponse, GetWholesaleComparisonResponseGetWholesaleComparisonResult, GetMultiBundleRetailPricingResponsePricesEntry, UpsertRetailPricingRequestPricingEntry, GetMultiRetailPricingResponseProductPricesEntry, GetMultiProductPricingResponseProductPricesEntry, SetWholesaleProductStrategyRequest, SetWholesaleProductVolumeCommitmentRequest, StartRevRecTemplateBackfillRequest, UpsertRetailPricingRequest, } from './api';
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixpQkFBaUI7QUFDakIsb0NBQW9DO0FBQ3BDLE9BQU8sRUFDSCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN4QixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0gsZUFBZSxFQUNmLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBQzNCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQiwrQkFBK0IsRUFDL0Isc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLElBQUksRUFDSiwrQkFBK0IsRUFDL0Isd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIseUJBQXlCLEdBQzVCLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUNILGVBQWUsR0FDbEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQ0gsTUFBTSxFQUNOLFVBQVUsRUFDVixhQUFhLEVBQ2Isa0NBQWtDLEVBQ2xDLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLDhCQUE4QixFQUM5QixtQkFBbUIsR0FDdEIsTUFBTSxVQUFVLENBQUM7QUFFbEIsT0FBTyxFQUNILFVBQVUsR0FDYixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0gsUUFBUSxFQUNSLHVDQUF1QyxFQUN2QyxxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLDZCQUE2QixFQUM3QiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixpQ0FBaUMsR0FDcEMsTUFBTSxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUNILGVBQWUsRUFDZixnQ0FBZ0MsRUFDaEMsaUNBQWlDLEdBQ3BDLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUNILFdBQVcsRUFDWCxrQ0FBa0MsRUFDbEMsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsNEJBQTRCLEdBQy9CLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUNILHNCQUFzQixFQUN0Qix1Q0FBdUMsRUFDdkMsK0JBQStCLEVBQy9CLGdDQUFnQyxFQUNoQywyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLHdDQUF3QyxFQUN4QyxzQ0FBc0MsRUFDdEMsZ0NBQWdDLEVBQ2hDLE9BQU8sRUFDUCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxvRUFBb0UsR0FDdkUsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLFFBQVEsRUFDUixxQkFBcUIsRUFDckIsMkJBQTJCLEVBQzNCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIscUJBQXFCLEdBQ3hCLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE9BQU8sRUFDSCxjQUFjLEdBQ2pCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUNILFNBQVMsR0FDWixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxlQUFlLEVBQ2YsT0FBTyxFQUNQLGdCQUFnQixHQUNuQixNQUFNLFlBQVksQ0FBQztBQUVwQixPQUFPLEVBQ0gsYUFBYSxFQUNiLGlCQUFpQixHQUNwQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsb0NBQW9DLEVBQ3BDLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsT0FBTyxFQUNQLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsR0FDckIsTUFBTSxXQUFXLENBQUM7QUFFbkIsT0FBTyxFQUNILGNBQWMsRUFDZCxPQUFPLEVBQ1AsYUFBYSxHQUNoQixNQUFNLFdBQVcsQ0FBQztBQUVuQixPQUFPLEVBQ0gsU0FBUyxHQUNaLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixNQUFNLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixZQUFZLEdBQ2YsTUFBTSxVQUFVLENBQUM7QUFFbEIsT0FBTyxFQUNILHlCQUF5QixFQUN6QiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLHFCQUFxQixFQUNyQiw0QkFBNEIsRUFDNUIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixtQ0FBbUMsRUFDbkMsb0NBQW9DLEVBQ3BDLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4Qiw4QkFBOEIsRUFDOUIsK0JBQStCLEVBQy9CLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw4Q0FBOEMsRUFDOUMsOENBQThDLEVBQzlDLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsUUFBUSxFQUNSLG1CQUFtQixFQUNuQiw2REFBNkQsRUFDN0Qsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLDRCQUE0QixFQUM1QixxQ0FBcUMsRUFDckMsbUNBQW1DLEVBQ25DLHFCQUFxQixFQUNyQiwrQ0FBK0MsRUFDL0MsZ0NBQWdDLEdBQ25DLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE9BQU8sRUFDSCxpQ0FBaUMsRUFDakMsa0NBQWtDLEVBQ2xDLGNBQWMsR0FDakIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQ0gsNkJBQTZCLEVBQzdCLGdCQUFnQixFQUNoQix5QkFBeUIsR0FDNUIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQ0gsVUFBVSxFQUNWLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIscUNBQXFDLEVBQ3JDLHNDQUFzQyxFQUN0QywyQkFBMkIsRUFDM0IsT0FBTyxFQUNQLGVBQWUsRUFDZixvQ0FBb0MsRUFDcEMsc0JBQXNCLEVBQ3RCLElBQUksRUFDSix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixvQ0FBb0MsRUFDcEMscUNBQXFDLEVBQ3JDLG9DQUFvQyxFQUNwQyxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsa0RBQWtELEVBQ2xELHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsMERBQTBELEVBQzFELDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsZ0NBQWdDLEVBQ2hDLE9BQU8sRUFDUCx3QkFBd0IsRUFDeEIsMkJBQTJCLEVBQzNCLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLGFBQWEsRUFDYiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsa0NBQWtDLEVBQ2xDLHFDQUFxQyxFQUNyQyw0Q0FBNEMsR0FDL0MsTUFBTSxXQUFXLENBQUM7QUFFbkIsT0FBTyxFQUNILHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixXQUFXLEVBQ1gsOEJBQThCLEVBQzlCLHdCQUF3QixHQUMzQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsR0FBRyxHQUNOLE1BQU0sT0FBTyxDQUFDO0FBRWYsT0FBTyxFQUNILGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0IsV0FBVyxFQUNYLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLHlCQUF5QixHQUM1QixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDSCwrQkFBK0IsRUFDL0IsZ0NBQWdDLEVBQ2hDLCtCQUErQixFQUMvQixpQ0FBaUMsRUFDakMsa0NBQWtDLEVBQ2xDLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsNERBQTRELEVBQzVELDhCQUE4QixFQUM5QiwrQkFBK0IsRUFDL0IsOEJBQThCLEVBQzlCLDJDQUEyQyxFQUMzQywyQ0FBMkMsRUFDM0Msa0JBQWtCLEVBQ2xCLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsNkJBQTZCLEdBQ2hDLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUNILG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixzQ0FBc0MsRUFDdEMsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixPQUFPLEVBQ1Asb0NBQW9DLEVBQ3BDLG9CQUFvQixHQUN2QixNQUFNLFdBQVcsQ0FBQztBQUVuQixPQUFPLEVBQ0gsYUFBYSxFQUNiLGNBQWMsRUFDZCx3QkFBd0IsR0FDM0IsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQ0gsYUFBYSxFQUNiLG9EQUFvRCxFQUNwRCxzQ0FBc0MsRUFDdEMsZ0RBQWdELEVBQ2hELHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsUUFBUSxFQUNSLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixtQkFBbUIsR0FDdEIsTUFBTSxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUNILG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLE1BQU0sR0FDVCxNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0gsNEJBQTRCLEVBQzVCLG9EQUFvRCxFQUNwRCwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLGVBQWUsR0FDbEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw4Q0FBOEMsRUFDOUMsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4Qix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLDRCQUE0QixFQUM1QixtQ0FBbUMsR0FDdEMsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQ0gsbUJBQW1CLEdBQ3RCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUNILHFCQUFxQixFQUNyQiw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsc0NBQXNDLEVBQ3RDLFlBQVksRUFDWiw2Q0FBNkMsRUFDN0MsZ0JBQWdCLEdBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILGdCQUFnQixFQUNoQiw2QkFBNkIsRUFDN0IsbUNBQW1DLEVBQ25DLDRCQUE0QixFQUM1Qiw2QkFBNkIsR0FDaEMsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQ0gscUNBQXFDLEVBQ3JDLHNDQUFzQyxFQUN0QywyQkFBMkIsRUFDM0Isd0NBQXdDLEdBQzNDLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxFQUNILGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGtCQUFrQixHQUNyQixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0gsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLHNEQUFzRCxFQUN0RCwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLG9DQUFvQyxFQUNwQyxxQ0FBcUMsRUFDckMsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEdBQ2hDLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUNILCtCQUErQixFQUMvQixzQ0FBc0MsRUFDdEMsNkJBQTZCLEVBQzdCLDRDQUE0QyxFQUM1QywwQkFBMEIsRUFDMUIsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsZ0JBQWdCLEVBQ2hCLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsd0JBQXdCLEVBQ3hCLDZCQUE2QixHQUNoQyxNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFDSCwrQkFBK0IsRUFDL0IsNEJBQTRCLEVBQzVCLHlCQUF5QixHQUM1QixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0gsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsK0JBQStCLEVBQy9CLGdDQUFnQyxFQUNoQywyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLGtDQUFrQyxFQUNsQyxtQ0FBbUMsRUFDbkMsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0Isc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsMERBQTBELEVBQzFELDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsMERBQTBELEVBQzFELDhDQUE4QyxFQUM5QyxzQ0FBc0MsRUFDdEMsK0NBQStDLEVBQy9DLGdEQUFnRCxFQUNoRCxrQ0FBa0MsRUFDbEMsMENBQTBDLEVBQzFDLGtDQUFrQyxFQUNsQywwQkFBMEIsR0FDN0IsTUFBTSxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMgSW5kZXguXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmV4cG9ydCB7XG4gICAgRXhwb3J0UmVzcG9uc2UsXG4gICAgUGFnZWRSZXF1ZXN0T3B0aW9ucyxcbiAgICBQYWdlZFJlc3BvbnNlTWV0YWRhdGEsXG59IGZyb20gJy4vY29tbW9uJztcblxuZXhwb3J0IHtcbiAgICBCaWxsSXRlbVJlcXVlc3QsXG4gICAgQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0LFxuICAgIEJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2UsXG4gICAgQmlsbGFibGVJdGVtLFxuICAgIENhbkJpbGxJdGVtUmVxdWVzdCxcbiAgICBDcmVhdGVVc2FnZVJlcXVlc3QsXG4gICAgQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzLFxuICAgIERlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdCxcbiAgICBFeHBvcnRTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzLFxuICAgIExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0QmlsbGFibGVJdGVtUmVxdWVzdCxcbiAgICBHZXRCaWxsYWJsZUl0ZW1SZXNwb25zZSxcbiAgICBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIEdldE11bHRpU3Vic2NyaXB0aW9uc1Jlc3BvbnNlLFxuICAgIEl0ZW0sXG4gICAgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleSxcbiAgICBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3QsXG4gICAgTGlzdEJpbGxhYmxlSXRlbXNSZXNwb25zZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbn0gZnJvbSAnLi9iaWxsYWJsZS1pdGVtJztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkRGlzY291bnQsXG59IGZyb20gJy4vYXBwbGllZC1kaXNjb3VudCc7XG5cbmV4cG9ydCB7XG4gICAgQnVuZGxlLFxuICAgIEJ1bmRsZUl0ZW0sXG4gICAgQnVuZGxlUHJpY2luZyxcbiAgICBHZXRNdWx0aUJ1bmRsZVJlc3BvbnNlQnVuZGxlc0VudHJ5LFxuICAgIExpc3RCdW5kbGVzUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXF1ZXN0LFxuICAgIEdldE11bHRpQnVuZGxlUmVzcG9uc2UsXG4gICAgTGlzdEJ1bmRsZXNSZXF1ZXN0LFxuICAgIExpc3RCdW5kbGVzUmVzcG9uc2UsXG4gICAgQnVuZGxlSXRlbVByaWNlLFxuICAgIEJ1bmRsZVByaWNpbmdQcmljZUFuZEZyZXF1ZW5jeSxcbiAgICBVcHNlcnRCdW5kbGVSZXF1ZXN0LFxufSBmcm9tICcuL2J1bmRsZSc7XG5cbmV4cG9ydCB7XG4gICAgQ29tbWl0bWVudCxcbn0gZnJvbSAnLi9jb21taXRtZW50JztcblxuZXhwb3J0IHtcbiAgICBDb250cmFjdCxcbiAgICBHZXRNdWx0aUNvbnRyYWN0c1Jlc3BvbnNlQ29udHJhY3RzRW50cnksXG4gICAgQ3JlYXRlQ29udHJhY3RSZXF1ZXN0LFxuICAgIENyZWF0ZUNvbnRyYWN0UmVzcG9uc2UsXG4gICAgR2V0Q29udHJhY3RSZXF1ZXN0LFxuICAgIEdldENvbnRyYWN0UmVzcG9uc2UsXG4gICAgR2V0TXVsdGlDb250cmFjdHNSZXF1ZXN0LFxuICAgIEdldE11bHRpQ29udHJhY3RzUmVzcG9uc2UsXG4gICAgTGlzdENvbnRyYWN0c1JlcXVlc3QsXG4gICAgTGlzdENvbnRyYWN0c1Jlc3BvbnNlLFxuICAgIFVwZGF0ZUNvbnRyYWN0UmVxdWVzdE11dGF0aW9uLFxuICAgIFJlc2V0Q29udHJhY3RQcmljaW5nUmVxdWVzdCxcbiAgICBVcGRhdGVDb250cmFjdFJlcXVlc3QsXG4gICAgVXBkYXRlQ29udHJhY3RSZXNwb25zZSxcbiAgICBVcGRhdGVDb250cmFjdFN1YnNjcmlwdGlvblJlcXVlc3QsXG59IGZyb20gJy4vY29udHJhY3QnO1xuXG5leHBvcnQge1xuICAgIEN1c3RvbWVyU3VtbWFyeSxcbiAgICBHZXRNdWx0aUN1c3RvbWVyU3VtbWFyaWVzUmVxdWVzdCxcbiAgICBHZXRNdWx0aUN1c3RvbWVyU3VtbWFyaWVzUmVzcG9uc2UsXG59IGZyb20gJy4vY3VzdG9tZXItc3VtbWFyeSc7XG5cbmV4cG9ydCB7XG4gICAgQmFua0FjY291bnQsXG4gICAgQ3JlYXRlU3RyaXBlRXh0ZXJuYWxBY2NvdW50UmVxdWVzdCxcbiAgICBEZWxldGVCYW5rQWNjb3VudFJlcXVlc3QsXG4gICAgTGlzdEJhbmtBY2NvdW50c1JlcXVlc3QsXG4gICAgTGlzdEJhbmtBY2NvdW50c1Jlc3BvbnNlLFxuICAgIFNldERlZmF1bHRCYW5rQWNjb3VudFJlcXVlc3QsXG59IGZyb20gJy4vZXh0ZXJuYWwtYWNjb3VudCc7XG5cbmV4cG9ydCB7XG4gICAgUHJvZHVjdFN1bW1hcnlEaXNjb3VudCxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0UHJvZHVjdFN1bW1hcmllc1RvdGFsUmVxdWVzdCxcbiAgICBHZXRQcm9kdWN0U3VtbWFyaWVzVG90YWxSZXNwb25zZSxcbiAgICBMaXN0UHJvZHVjdFN1bW1hcmllc1JlcXVlc3QsXG4gICAgTGlzdFByb2R1Y3RTdW1tYXJpZXNSZXNwb25zZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uQnlHcm91cFJlc3BvbnNlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25CeVNLVVJlc3BvbnNlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25SZXF1ZXN0LFxuICAgIFByaWNpbmcsXG4gICAgUHJvZHVjdFN1bW1hcnksXG4gICAgUmV0ZW50aW9uTWV0cmljcyxcbiAgICBQcmljaW5nUnVsZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uQnlHcm91cFJlc3BvbnNlU3Vic2NyaXB0aW9uUmV0ZW50aW9uQnlHcm91cCxcbn0gZnJvbSAnLi9wcm9kdWN0LXN1bW1hcnknO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZURpc2NvdW50UmVxdWVzdCxcbiAgICBEaXNjb3VudCxcbiAgICBFeHBpcmVEaXNjb3VudFJlcXVlc3QsXG4gICAgTGlzdERpc2NvdW50c1JlcXVlc3RGaWx0ZXJzLFxuICAgIExpc3REaXNjb3VudHNSZXF1ZXN0LFxuICAgIExpc3REaXNjb3VudHNSZXNwb25zZSxcbiAgICBVcGRhdGVEaXNjb3VudFJlcXVlc3QsXG59IGZyb20gJy4vZGlzY291bnQnO1xuXG5leHBvcnQge1xuICAgIEFwcGxpZWRUYXhSYXRlLFxufSBmcm9tICcuL2FwcGxpZWQtdGF4LXJhdGUnO1xuXG5leHBvcnQge1xuICAgIEZpZWxkTWFzayxcbn0gZnJvbSAnLi9maWVsZC1tYXNrJztcblxuZXhwb3J0IHtcbiAgICBBcmNoaXZlVGF4UmVxdWVzdCxcbiAgICBDYWxjdWxhdGVUYXhSZXF1ZXN0LFxuICAgIENhbGN1bGF0ZVRheFJlc3BvbnNlLFxuICAgIENyZWF0ZVRheFJlcXVlc3QsXG4gICAgTGlzdFRheFJlcXVlc3RGaWx0ZXJzLFxuICAgIEdldE11bHRpVGF4UmVxdWVzdCxcbiAgICBHZXRNdWx0aVRheFJlc3BvbnNlLFxuICAgIExpc3RUYXhSZXF1ZXN0LFxuICAgIExpc3RUYXhSZXNwb25zZSxcbiAgICBUYXhSYXRlLFxuICAgIFVwZGF0ZVRheFJlcXVlc3QsXG59IGZyb20gJy4vdGF4LXJhdGUnO1xuXG5leHBvcnQge1xuICAgIEFwcGxpZWRCdW5kbGUsXG4gICAgQXBwbGllZEJ1bmRsZUl0ZW0sXG59IGZyb20gJy4vYXBwbGllZC1idW5kbGUnO1xuXG5leHBvcnQge1xuICAgIEFkZEJ1bmRsZVJlcXVlc3QsXG4gICAgQWRkQnVuZGxlUmVzcG9uc2UsXG4gICAgQWRkTGluZUl0ZW1SZXF1ZXN0LFxuICAgIEFkZExpbmVJdGVtUmVzcG9uc2UsXG4gICAgQ2hhcmdlSW52b2ljZVJlcXVlc3QsXG4gICAgQ3JlYXRlSW52b2ljZVJlcXVlc3QsXG4gICAgQ3JlYXRlSW52b2ljZVJlc3BvbnNlLFxuICAgIENyZWF0ZVBheW1lbnRMaW5rUmVxdWVzdCxcbiAgICBDcmVhdGVQYXltZW50TGlua1Jlc3BvbnNlLFxuICAgIEludm9pY2VDdXN0b21lckFkZHJlc3MsXG4gICAgTGlzdEludm9pY2VzUmVxdWVzdEZpbHRlcnNEYXRlRmlsdGVyLFxuICAgIERlbGV0ZUludm9pY2VSZXF1ZXN0LFxuICAgIERlbGV0ZUxpbmVJdGVtUmVxdWVzdCxcbiAgICBEZWxldGVMaW5lSXRlbVJlc3BvbnNlLFxuICAgIER1cGxpY2F0ZUludm9pY2VSZXF1ZXN0LFxuICAgIER1cGxpY2F0ZUludm9pY2VSZXNwb25zZSxcbiAgICBMaXN0SW52b2ljZXNSZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRJbnZvaWNlUmVxdWVzdCxcbiAgICBHZXRJbnZvaWNlUmVzcG9uc2UsXG4gICAgSW52b2ljZSxcbiAgICBJbnZvaWNlSXRlbSxcbiAgICBMaXN0SW52b2ljZXNSZXF1ZXN0LFxuICAgIExpc3RJbnZvaWNlc1Jlc3BvbnNlLFxuICAgIFBheUludm9pY2VSZXF1ZXN0LFxuICAgIFBheW1lbnRMaW5rSXRlbSxcbiAgICBSZW1vdmVCdW5kbGVSZXF1ZXN0LFxuICAgIFJlbW92ZUJ1bmRsZVJlc3BvbnNlLFxuICAgIFNlbmRJbnZvaWNlUmVxdWVzdCxcbiAgICBVcGRhdGVCdW5kbGVSZXF1ZXN0LFxuICAgIFVwZGF0ZUJ1bmRsZVJlc3BvbnNlLFxuICAgIFVwZGF0ZURlZmF1bHRUYXhSYXRlc1JlcXVlc3QsXG4gICAgVXBkYXRlRGVmYXVsdFRheFJhdGVzUmVzcG9uc2UsXG4gICAgVXBkYXRlSW52b2ljZVJlcXVlc3QsXG4gICAgVXBkYXRlSW52b2ljZVJlc3BvbnNlLFxuICAgIFVwZGF0ZUxpbmVJdGVtUmVxdWVzdCxcbiAgICBVcGRhdGVMaW5lSXRlbVJlc3BvbnNlLFxuICAgIFZvaWRJbnZvaWNlUmVxdWVzdCxcbn0gZnJvbSAnLi9pbnZvaWNlJztcblxuZXhwb3J0IHtcbiAgICBBY2NvdW50QmFsYW5jZSxcbiAgICBCYWxhbmNlLFxuICAgIEJhbGFuY2VBbW91bnQsXG59IGZyb20gJy4vYmFsYW5jZSc7XG5cbmV4cG9ydCB7XG4gICAgRGF0ZVJhbmdlLFxufSBmcm9tICcuL2RhdGUtcmFuZ2UnO1xuXG5leHBvcnQge1xuICAgIExpc3RQYXlvdXRzUmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdFBheW91dHNSZXF1ZXN0LFxuICAgIExpc3RQYXlvdXRzUmVzcG9uc2UsXG4gICAgUGF5b3V0LFxuICAgIFJlY29uY2lsZVBheW91dFJlcXVlc3QsXG4gICAgUmVjb25jaWxlUGF5b3V0UmVzcG9uc2UsXG4gICAgUmV0YWlsUGF5b3V0LFxufSBmcm9tICcuL3BheW91dCc7XG5cbmV4cG9ydCB7XG4gICAgQ2hhcmdlU2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICBDb25uZWN0U3RyaXBlQWNjb3VudFJlcXVlc3QsXG4gICAgQ29ubmVjdFN0cmlwZUFjY291bnRSZXNwb25zZSxcbiAgICBDcmVhdGVNZXJjaGFudFJlcXVlc3QsXG4gICAgRGVmYXVsdEN1c3RvbWVyQ29uZmlndXJhdGlvbixcbiAgICBHZXRNZXJjaGFudFJlcXVlc3QsXG4gICAgR2V0TWVyY2hhbnRSZXNwb25zZSxcbiAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVxdWVzdCxcbiAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVzcG9uc2UsXG4gICAgR2V0T3V0c3RhbmRpbmdCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXNwb25zZSxcbiAgICBHZXRQYXlvdXRTdW1tYXJ5UmVxdWVzdCxcbiAgICBHZXRQYXlvdXRTdW1tYXJ5UmVzcG9uc2UsXG4gICAgR2V0UmV0YWlsQWNjb3VudEJhbGFuY2VSZXF1ZXN0LFxuICAgIEdldFJldGFpbEFjY291bnRCYWxhbmNlUmVzcG9uc2UsXG4gICAgR2V0UmV0YWlsQmFsYW5jZVJlcXVlc3QsXG4gICAgR2V0UmV0YWlsQmFsYW5jZVJlc3BvbnNlLFxuICAgIEdldFJldGFpbFBheW91dFJlcXVlc3QsXG4gICAgR2V0UmV0YWlsUGF5b3V0UmVzcG9uc2UsXG4gICAgQ3JlYXRlTWVyY2hhbnRSZXF1ZXN0SW5jbHVkZUluRmluYW5jaWFsUmVjb3JkcyxcbiAgICBVcGRhdGVNZXJjaGFudFJlcXVlc3RJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzLFxuICAgIExpc3RSZXRhaWxQYXlvdXRzUmVxdWVzdCxcbiAgICBMaXN0UmV0YWlsUGF5b3V0c1Jlc3BvbnNlLFxuICAgIE1lcmNoYW50LFxuICAgIFJldGFpbENvbmZpZ3VyYXRpb24sXG4gICAgR2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1Jlc3BvbnNlUmV0YWlsQ29uZmlndXJhdGlvbnNFbnRyeSxcbiAgICBTZWFyY2hNZXJjaGFudHNSZXF1ZXN0LFxuICAgIFNlYXJjaE1lcmNoYW50c1Jlc3BvbnNlLFxuICAgIFNldEF1dG9DaGFyZ2VJbnZvaWNlc1JlcXVlc3QsXG4gICAgU2V0QXV0b1Bvc3RJbnZvaWNlc1JlcXVlc3QsXG4gICAgU2V0RGVmYXVsdFBheW1lbnRDYXJkUmVxdWVzdCxcbiAgICBTZXRIYXNBbHRlcm5hdGl2ZVBheW1lbnRNZXRob2RSZXF1ZXN0LFxuICAgIFNldEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHNSZXF1ZXN0LFxuICAgIFVwZGF0ZU1lcmNoYW50UmVxdWVzdCxcbiAgICBVcHNlcnREZWZhdWx0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICBVcHNlcnRSZXRhaWxDb25maWd1cmF0aW9uUmVxdWVzdCxcbn0gZnJvbSAnLi9tZXJjaGFudCc7XG5cbmV4cG9ydCB7XG4gICAgTGlzdE1lcmNoYW50QmlsbGluZ1JlcG9ydHNSZXF1ZXN0LFxuICAgIExpc3RNZXJjaGFudEJpbGxpbmdSZXBvcnRzUmVzcG9uc2UsXG4gICAgTWVyY2hhbnRSZXBvcnQsXG59IGZyb20gJy4vbWVyY2hhbnQtcmVwb3J0JztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVNZXRlcmVkQ29tcG9uZW50UmVxdWVzdCxcbiAgICBNZXRlcmVkQ29tcG9uZW50LFxuICAgIFRpY2tDb21wb25lbnRVc2FnZVJlcXVlc3QsXG59IGZyb20gJy4vbWV0ZXJlZC1jb21wb25lbnQnO1xuXG5leHBvcnQge1xuICAgIEFkanVzdG1lbnQsXG4gICAgUmV0YWlsUGF5bWVudENhcmREZXRhaWxzLFxuICAgIENsb3NlUmV0YWlsRGlzcHV0ZVJlcXVlc3QsXG4gICAgQ29uZmlndXJlUmV0YWlsUGF5bWVudFByb3ZpZGVyUmVxdWVzdCxcbiAgICBDb25maWd1cmVSZXRhaWxQYXltZW50UHJvdmlkZXJSZXNwb25zZSxcbiAgICBDb25maXJtUmV0YWlsUGF5bWVudFJlcXVlc3QsXG4gICAgRGlzcHV0ZSxcbiAgICBEaXNwdXRlRXZpZGVuY2UsXG4gICAgU3VibWl0RXZpZGVuY2VSZXF1ZXN0RGlzcHV0ZUV2aWRlbmNlLFxuICAgIERpc3B1dGVFdmlkZW5jZURldGFpbHMsXG4gICAgRmlsZSxcbiAgICBHZXRSZXRhaWxEaXNwdXRlUmVxdWVzdCxcbiAgICBHZXRSZXRhaWxEaXNwdXRlUmVzcG9uc2UsXG4gICAgR2V0UmV0YWlsUGF5bWVudFByb3ZpZGVyUmVxdWVzdCxcbiAgICBHZXRSZXRhaWxQYXltZW50UHJvdmlkZXJSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBHZXRSZXRhaWxQYXltZW50UmVzcG9uc2UsXG4gICAgR2V0V2hvbGVzYWxlUHJvdmlkZXJQdWJsaWNLZXlSZXF1ZXN0LFxuICAgIEdldFdob2xlc2FsZVByb3ZpZGVyUHVibGljS2V5UmVzcG9uc2UsXG4gICAgTGlzdFBheW1lbnRSZXF1ZXN0TGlzdFBheW1lbnRGaWx0ZXJzLFxuICAgIExpc3RQYXltZW50UmVxdWVzdCxcbiAgICBMaXN0UGF5bWVudFJlc3BvbnNlLFxuICAgIExpc3RSZXRhaWxEaXNwdXRlc1JlcXVlc3QsXG4gICAgTGlzdFJldGFpbERpc3B1dGVzUmVzcG9uc2UsXG4gICAgTGlzdFJldGFpbFBheW1lbnRzUmVxdWVzdExpc3RSZXRhaWxQYXltZW50c0ZpbHRlcnMsXG4gICAgTGlzdFJldGFpbFBheW1lbnRzUmVxdWVzdCxcbiAgICBMaXN0UmV0YWlsUGF5bWVudHNSZXNwb25zZSxcbiAgICBMaXN0UmV0YWlsVHJhbnNhY3Rpb25zUmVxdWVzdExpc3RSZXRhaWxUcmFuc2FjdGlvbnNGaWx0ZXJzLFxuICAgIExpc3RSZXRhaWxUcmFuc2FjdGlvbnNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxUcmFuc2FjdGlvbnNSZXNwb25zZSxcbiAgICBQcmVwYXJlUmV0YWlsUGF5bWVudFJlcXVlc3RPcmRlcixcbiAgICBQYXltZW50LFxuICAgIFBheW1lbnRQYXltZW50QWxsb2NhdGlvbixcbiAgICBQcmVwYXJlUmV0YWlsUGF5bWVudFJlcXVlc3QsXG4gICAgUHJlcGFyZVJldGFpbFBheW1lbnRSZXNwb25zZSxcbiAgICBSZWZ1bmRSZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBSZWZ1bmRSZXRhaWxQYXltZW50UmVzcG9uc2UsXG4gICAgUmV0YWlsUGF5bWVudCxcbiAgICBSZXRhaWxQYXltZW50c0VuYWJsZWRSZXF1ZXN0LFxuICAgIFJldGFpbFBheW1lbnRzRW5hYmxlZFJlc3BvbnNlLFxuICAgIFJldGFpbFJlZnVuZCxcbiAgICBSZXRhaWxTdGF0dXNSZXF1ZXN0LFxuICAgIFJldGFpbFN0YXR1c1Jlc3BvbnNlLFxuICAgIFJldGFpbFRyYW5zYWN0aW9uLFxuICAgIFN1Ym1pdEV2aWRlbmNlUmVxdWVzdCxcbiAgICBVcGRhdGVSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIFJldGFpbFN0YXR1c1Jlc3BvbnNlVmVyaWZpY2F0aW9uRXJyb3IsXG4gICAgUmV0YWlsU3RhdHVzUmVzcG9uc2VWZXJpZmljYXRpb25SZXF1aXJlbWVudHMsXG59IGZyb20gJy4vcGF5bWVudCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUGF5bWVudENhcmRSZXF1ZXN0LFxuICAgIERlbGV0ZVBheW1lbnRDYXJkUmVxdWVzdCxcbiAgICBMaXN0UGF5bWVudENhcmRzUmVxdWVzdCxcbiAgICBMaXN0UGF5bWVudENhcmRzUmVzcG9uc2UsXG4gICAgUGF5bWVudENhcmQsXG4gICAgU2V0RGVmYXVsdFBheW1lbnRNZXRob2RSZXF1ZXN0LFxuICAgIFVwZGF0ZVBheW1lbnRDYXJkUmVxdWVzdCxcbn0gZnJvbSAnLi9wYXltZW50LWNhcmQnO1xuXG5leHBvcnQge1xuICAgIEFwcGxpZWRGZWUsXG4gICAgRmVlLFxufSBmcm9tICcuL2ZlZSc7XG5cbmV4cG9ydCB7XG4gICAgQ29tcG9uZW50UHJpY2luZyxcbiAgICBDcmVhdGVQcmljaW5nUGxhblJlcXVlc3QsXG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5SZXNwb25zZSxcbiAgICBHZXRNdWx0aVByaWNpbmdQbGFuUmVxdWVzdCxcbiAgICBHZXRNdWx0aVByaWNpbmdQbGFuUmVzcG9uc2UsXG4gICAgUHJpY2luZ1BsYW4sXG4gICAgUHJpY2luZ1BsYW5Qcm9kdWN0UHJpY2luZyxcbiAgICBQcm9kdWN0UHJpY2luZ1J1bGUsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5SZXF1ZXN0LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUmVzcG9uc2UsXG59IGZyb20gJy4vcHJpY2luZy1wbGFuJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIENyZWF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlLFxuICAgIERlbGV0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgR2V0UHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZSxcbiAgICBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1JlcXVlc3RMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c0ZpbHRlcnMsXG4gICAgTGlzdFByaWNpbmdQbGFuUHJvZHVjdHNSZXF1ZXN0LFxuICAgIExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVzcG9uc2UsXG4gICAgUHJpY2luZ1BsYW5Qcm9kdWN0UHJpY2luZ0VudHJ5LFxuICAgIENyZWF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3RQcmljaW5nRW50cnksXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdFByaWNpbmdFbnRyeSxcbiAgICBQcmljaW5nUGxhblByb2R1Y3QsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBVcGRhdGVQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZSxcbiAgICBVcHNlcnRXaG9sZXNhbGVQcmljaW5nUmVxdWVzdCxcbn0gZnJvbSAnLi9wcmljaW5nLXBsYW4tcHJvZHVjdCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUHJvZHVjdFJlcXVlc3QsXG4gICAgRGVsZXRlUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRNdWx0aVByb2R1Y3RSZXNwb25zZSxcbiAgICBMaXN0UHJvZHVjdHNSZXF1ZXN0TGlzdFByb2R1Y3RzRmlsdGVycyxcbiAgICBMaXN0UHJvZHVjdHNSZXF1ZXN0LFxuICAgIExpc3RQcm9kdWN0c1Jlc3BvbnNlLFxuICAgIFByb2R1Y3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UmVzcG9uc2VQcm9kdWN0c0VudHJ5LFxuICAgIFVwZGF0ZVByb2R1Y3RSZXF1ZXN0LFxufSBmcm9tICcuL3Byb2R1Y3QnO1xuXG5leHBvcnQge1xuICAgIFByb2R1Y3RQcmljZXMsXG4gICAgUHJvZHVjdFByaWNpbmcsXG4gICAgV2hvbGVzYWxlQ29zdEl0ZW1SZXF1ZXN0LFxufSBmcm9tICcuL3Byb2R1Y3QtcHJpY2luZyc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZENyZWRpdCxcbiAgICBMaXN0UHVyY2hhc2VSZXF1ZXN0TGlzdFB1cmNoYXNlQmlsbGluZ1N0cmF0ZWd5RmlsdGVyLFxuICAgIExpc3RQdXJjaGFzZVJlcXVlc3RMaXN0UHVyY2hhc2VGaWx0ZXJzLFxuICAgIExpc3RQdXJjaGFzZUl0ZW1zUmVxdWVzdExpc3RQdXJjaGFzZUl0ZW1zRmlsdGVycyxcbiAgICBMaXN0UHVyY2hhc2VJdGVtc1JlcXVlc3QsXG4gICAgTGlzdFB1cmNoYXNlSXRlbXNSZXNwb25zZSxcbiAgICBMaXN0UHVyY2hhc2VSZXF1ZXN0LFxuICAgIExpc3RQdXJjaGFzZVJlc3BvbnNlLFxuICAgIFBhdXNlRHVubmluZ1JlcXVlc3QsXG4gICAgUHVyY2hhc2UsXG4gICAgUHVyY2hhc2VJdGVtLFxuICAgIFJlc3VtZUR1bm5pbmdSZXF1ZXN0LFxuICAgIFJldHJ5UHVyY2hhc2VSZXF1ZXN0LFxuICAgIFN0b3BEdW5uaW5nUmVxdWVzdCxcbiAgICBWb2lkUHVyY2hhc2VSZXF1ZXN0LFxufSBmcm9tICcuL3B1cmNoYXNlJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVSZWZ1bmRSZXF1ZXN0LFxuICAgIExpc3RSZWZ1bmRzUmVxdWVzdCxcbiAgICBMaXN0UmVmdW5kc1Jlc3BvbnNlLFxuICAgIFJlZnVuZCxcbn0gZnJvbSAnLi9yZWZ1bmQnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVNhbGVzQ3JlZGl0Tm90ZVJlcXVlc3QsXG4gICAgTGlzdFNhbGVzQ3JlZGl0Tm90ZVJlcXVlc3RMaXN0U2FsZXNDcmVkaXROb3RlRmlsdGVycyxcbiAgICBMaXN0U2FsZXNDcmVkaXROb3RlUmVxdWVzdCxcbiAgICBMaXN0U2FsZXNDcmVkaXROb3RlUmVzcG9uc2UsXG4gICAgU2FsZXNDcmVkaXROb3RlLFxufSBmcm9tICcuL3NhbGVzLWNyZWRpdC1ub3RlJztcblxuZXhwb3J0IHtcbiAgICBHZXRTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgIEdldFNhbGVzSW52b2ljZVJlc3BvbnNlLFxuICAgIExpc3RTYWxlc0ludm9pY2VSZXF1ZXN0TGlzdFNhbGVzSW52b2ljZUZpbHRlcnMsXG4gICAgTGlzdFNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgTGlzdFNhbGVzSW52b2ljZVJlc3BvbnNlLFxuICAgIFBvc3RTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgIFNhbGVzSW52b2ljZSxcbiAgICBTZW5kU2FsZXNJbnZvaWNlRW1haWxSZXF1ZXN0LFxuICAgIFNlbmRTYWxlc0ludm9pY2VSZWNlaXB0RW1haWxSZXF1ZXN0LFxufSBmcm9tICcuL3NhbGVzLWludm9pY2UnO1xuXG5leHBvcnQge1xuICAgIFN1YnNjcmliZVZhbGlkYXRpb24sXG59IGZyb20gJy4vc3Vic2NyaWJlLXZhbGlkYXRpb24nO1xuXG5leHBvcnQge1xuICAgIEFsaWdubWVudFN1YnNjcmlwdGlvbixcbiAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgQ2hhbmdlQ3VzdG9tVW5pdFByaWNlUmVxdWVzdCxcbiAgICBDaGFuZ2VGcmVxdWVuY3lSZXF1ZXN0LFxuICAgIENoYW5nZVJlbmV3YWxEYXRlUmVxdWVzdCxcbiAgICBDcmVhdGVTdWJzY3JpcHRpb25SZXF1ZXN0LFxuICAgIENyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIENyZWF0ZVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICBSZXZlcnNlU3Vic2NyaXB0aW9uUmVxdWVzdCxcbiAgICBTZXRSZW5ld2FsU3RhcnRSZXF1ZXN0LFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0U2t1c0VudHJ5LFxuICAgIFN1YnNjcmlwdGlvbixcbiAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdFN1YnNjcmlwdGlvbkl0ZW0sXG4gICAgVmFsaWRhdGVSZXNwb25zZSxcbn0gZnJvbSAnLi9zdWJzY3JpcHRpb24nO1xuXG5leHBvcnQge1xuICAgIENvbnRyYWN0RG9jdW1lbnQsXG4gICAgRGVsZXRlQ29udHJhY3REb2N1bWVudFJlcXVlc3QsXG4gICAgTGlzdENvbnRyYWN0RG9jdW1lbnRzUmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdENvbnRyYWN0RG9jdW1lbnRzUmVxdWVzdCxcbiAgICBMaXN0Q29udHJhY3REb2N1bWVudHNSZXNwb25zZSxcbn0gZnJvbSAnLi9jb250cmFjdC1kb2N1bWVudCc7XG5cbmV4cG9ydCB7XG4gICAgR2V0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICBHZXRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXNwb25zZSxcbiAgICBSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb24sXG4gICAgVXBzZXJ0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdCxcbn0gZnJvbSAnLi9yZXRhaWwtY3VzdG9tZXItY29uZmlndXJhdGlvbic7XG5cbmV4cG9ydCB7XG4gICAgQWRkQ3JlZGl0UmVxdWVzdCxcbiAgICBDcmVkaXRCYWxhbmNlLFxuICAgIEdldEJhbGFuY2VSZXF1ZXN0LFxuICAgIEdldEJhbGFuY2VSZXNwb25zZSxcbn0gZnJvbSAnLi9jcmVkaXQnO1xuXG5leHBvcnQge1xuICAgIEFkZFRlbXBsYXRlQnVuZGxlUmVxdWVzdCxcbiAgICBBZGRUZW1wbGF0ZUJ1bmRsZVJlc3BvbnNlLFxuICAgIEFkZFRlbXBsYXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIEFkZFRlbXBsYXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBDcmVhdGVUZW1wbGF0ZVJlcXVlc3QsXG4gICAgQ3JlYXRlVGVtcGxhdGVSZXNwb25zZSxcbiAgICBEZWxldGVJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0LFxuICAgIERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBHZXRJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0LFxuICAgIEdldEludm9pY2VUZW1wbGF0ZVJlc3BvbnNlLFxuICAgIEludm9pY2VUZW1wbGF0ZSxcbiAgICBJbnZvaWNlVGVtcGxhdGVJdGVtLFxuICAgIFVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnZvaWNlVGVtcGxhdGVJdGVtUmVxdWVzdCxcbiAgICBVcGRhdGVUZW1wbGF0ZUJ1bmRsZVJlcXVlc3QsXG4gICAgVXBkYXRlVGVtcGxhdGVCdW5kbGVSZXNwb25zZSxcbiAgICBVcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1JlcXVlc3QsXG4gICAgVXBkYXRlVGVtcGxhdGVEZWZhdWx0VGF4UmF0ZXNSZXNwb25zZSxcbiAgICBVcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdCxcbiAgICBVcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVxdWVzdCxcbiAgICBVcHNlcnRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZSxcbn0gZnJvbSAnLi9pbnZvaWNlLXRlbXBsYXRlJztcblxuZXhwb3J0IHtcbiAgICBSZWN1cnJpbmdJbnZvaWNlQ3VzdG9tZXJBZGRyZXNzLFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc0ZpbHRlcnNEYXRlRmlsdGVyLFxuICAgIERlbGV0ZVJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc0ZpbHRlcnNEZXRhaWxlZEludGVydmFsLFxuICAgIEdldFJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc0ZpbHRlcnMsXG4gICAgTGlzdFJlY3VycmluZ0ludm9pY2VzUmVxdWVzdCxcbiAgICBMaXN0UmVjdXJyaW5nSW52b2ljZXNSZXNwb25zZSxcbiAgICBSZWN1cnJpbmdJbnZvaWNlLFxuICAgIFJlY3VycmluZ0ludm9pY2VCdW5kbGUsXG4gICAgUmVjdXJyaW5nSW52b2ljZUl0ZW0sXG4gICAgUmVjdXJyaW5nSW52b2ljZUxpbmVJdGVtLFxuICAgIFVwZGF0ZVJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxufSBmcm9tICcuL3JlY3VycmluZy1pbnZvaWNlJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuLFxuICAgIEdldE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4sXG4gICAgTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bixcbn0gZnJvbSAnLi9yZXBvcnQtcnVuJztcblxuZXhwb3J0IHtcbiAgICBBY2Nlc3MsXG59IGZyb20gJy4vYW5ub3RhdGlvbnMnO1xuXG5leHBvcnQge1xuICAgIERlbGV0ZVJldGFpbFByaWNpbmdSZXF1ZXN0LFxuICAgIEdlbmVyYXRlQmlsbGFibGVJdGVtc0NTVlJlcXVlc3QsXG4gICAgR2VuZXJhdGVCaWxsYWJsZUl0ZW1zQ1NWUmVzcG9uc2UsXG4gICAgR2VuZXJhdGVWZW5kb3JSZXBvcnRSZXF1ZXN0LFxuICAgIEdlbmVyYXRlVmVuZG9yUmVwb3J0UmVzcG9uc2UsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXRhaWxQcmljaW5nUmVxdWVzdCxcbiAgICBHZXRNdWx0aUJ1bmRsZVJldGFpbFByaWNpbmdSZXNwb25zZSxcbiAgICBHZXRNdWx0aVByb2R1Y3RQcmljaW5nUmVxdWVzdCxcbiAgICBHZXRNdWx0aVByb2R1Y3RQcmljaW5nUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlSZXRhaWxQcmljaW5nUmVxdWVzdCxcbiAgICBHZXRNdWx0aVJldGFpbFByaWNpbmdSZXNwb25zZSxcbiAgICBHZXRNdWx0aVdob2xlc2FsZUNvc3RSZXF1ZXN0LFxuICAgIEdldE11bHRpV2hvbGVzYWxlQ29zdFJlc3BvbnNlLFxuICAgIEdldFB1cmNoYXNlQ29zdFJlcXVlc3QsXG4gICAgR2V0UHVyY2hhc2VDb3N0UmVzcG9uc2UsXG4gICAgR2V0UmV2ZW51ZVN0YXRzUmVxdWVzdCxcbiAgICBHZXRSZXZlbnVlU3RhdHNSZXNwb25zZSxcbiAgICBHZXRTdGF0aXN0aWNzUmVxdWVzdCxcbiAgICBHZXRTdGF0aXN0aWNzUmVzcG9uc2UsXG4gICAgR2V0V2hvbGVzYWxlQ29tcGFyaXNvblJlcXVlc3RHZXRXaG9sZXNhbGVDb21wYXJpc29uRmlsdGVycyxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVxdWVzdCxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzcG9uc2UsXG4gICAgR2V0V2hvbGVzYWxlQ29tcGFyaXNvblJlc3BvbnNlR2V0V2hvbGVzYWxlQ29tcGFyaXNvblJlc3VsdCxcbiAgICBHZXRNdWx0aUJ1bmRsZVJldGFpbFByaWNpbmdSZXNwb25zZVByaWNlc0VudHJ5LFxuICAgIFVwc2VydFJldGFpbFByaWNpbmdSZXF1ZXN0UHJpY2luZ0VudHJ5LFxuICAgIEdldE11bHRpUmV0YWlsUHJpY2luZ1Jlc3BvbnNlUHJvZHVjdFByaWNlc0VudHJ5LFxuICAgIEdldE11bHRpUHJvZHVjdFByaWNpbmdSZXNwb25zZVByb2R1Y3RQcmljZXNFbnRyeSxcbiAgICBTZXRXaG9sZXNhbGVQcm9kdWN0U3RyYXRlZ3lSZXF1ZXN0LFxuICAgIFNldFdob2xlc2FsZVByb2R1Y3RWb2x1bWVDb21taXRtZW50UmVxdWVzdCxcbiAgICBTdGFydFJldlJlY1RlbXBsYXRlQmFja2ZpbGxSZXF1ZXN0LFxuICAgIFVwc2VydFJldGFpbFByaWNpbmdSZXF1ZXN0LFxufSBmcm9tICcuL2FwaSc7XG5cbiJdfQ==
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixpQkFBaUI7QUFDakIsb0NBQW9DO0FBQ3BDLE9BQU8sRUFDSCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN4QixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0gsVUFBVSxHQUNiLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsR0FBRyxHQUNOLE1BQU0sT0FBTyxDQUFDO0FBRWYsT0FBTyxFQUNILFNBQVMsR0FDWixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQixXQUFXLEVBQ1gseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIseUJBQXlCLEdBQzVCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILGFBQWEsRUFDYixjQUFjLEVBQ2Qsd0JBQXdCLEdBQzNCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNILGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QixJQUFJLEVBQ0osK0JBQStCLEVBQy9CLHdCQUF3QixFQUN4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QUM3Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLDBEQUEwRCxFQUMxRCw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDBEQUEwRCxFQUMxRCw4Q0FBOEMsRUFDOUMsc0NBQXNDLEVBQ3RDLCtDQUErQyxFQUMvQyxnREFBZ0QsRUFDaEQsa0NBQWtDLEVBQ2xDLDBDQUEwQyxFQUMxQyxrQ0FBa0MsRUFDbEMsMEJBQTBCLEdBQzdCLE1BQU0sT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzIEluZGV4LlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5leHBvcnQge1xuICAgIEV4cG9ydFJlc3BvbnNlLFxuICAgIFBhZ2VkUmVxdWVzdE9wdGlvbnMsXG4gICAgUGFnZWRSZXNwb25zZU1ldGFkYXRhLFxufSBmcm9tICcuL2NvbW1vbic7XG5cbmV4cG9ydCB7XG4gICAgQ29tbWl0bWVudCxcbn0gZnJvbSAnLi9jb21taXRtZW50JztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkRmVlLFxuICAgIEZlZSxcbn0gZnJvbSAnLi9mZWUnO1xuXG5leHBvcnQge1xuICAgIEZpZWxkTWFzayxcbn0gZnJvbSAnLi9maWVsZC1tYXNrJztcblxuZXhwb3J0IHtcbiAgICBDb21wb25lbnRQcmljaW5nLFxuICAgIENyZWF0ZVByaWNpbmdQbGFuUmVxdWVzdCxcbiAgICBDcmVhdGVQcmljaW5nUGxhblJlc3BvbnNlLFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5SZXF1ZXN0LFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5SZXNwb25zZSxcbiAgICBQcmljaW5nUGxhbixcbiAgICBQcmljaW5nUGxhblByb2R1Y3RQcmljaW5nLFxuICAgIFByb2R1Y3RQcmljaW5nUnVsZSxcbiAgICBVcGRhdGVQcmljaW5nUGxhblJlcXVlc3QsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5SZXNwb25zZSxcbn0gZnJvbSAnLi9wcmljaW5nLXBsYW4nO1xuXG5leHBvcnQge1xuICAgIFByb2R1Y3RQcmljZXMsXG4gICAgUHJvZHVjdFByaWNpbmcsXG4gICAgV2hvbGVzYWxlQ29zdEl0ZW1SZXF1ZXN0LFxufSBmcm9tICcuL3Byb2R1Y3QtcHJpY2luZyc7XG5cbmV4cG9ydCB7XG4gICAgQmlsbEl0ZW1SZXF1ZXN0LFxuICAgIEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCxcbiAgICBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlLFxuICAgIEJpbGxhYmxlSXRlbSxcbiAgICBDYW5CaWxsSXRlbVJlcXVlc3QsXG4gICAgQ3JlYXRlVXNhZ2VSZXF1ZXN0LFxuICAgIEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcyxcbiAgICBEZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0LFxuICAgIEV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgRXhwb3J0U3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldEJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgR2V0QmlsbGFibGVJdGVtUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICBJdGVtLFxuICAgIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXksXG4gICAgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0LFxuICAgIExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIExpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlcixcbn0gZnJvbSAnLi9iaWxsYWJsZS1pdGVtJztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkRGlzY291bnQsXG59IGZyb20gJy4vYXBwbGllZC1kaXNjb3VudCc7XG5cbmV4cG9ydCB7XG4gICAgQnVuZGxlLFxuICAgIEJ1bmRsZUl0ZW0sXG4gICAgQnVuZGxlUHJpY2luZyxcbiAgICBHZXRNdWx0aUJ1bmRsZVJlc3BvbnNlQnVuZGxlc0VudHJ5LFxuICAgIExpc3RCdW5kbGVzUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXF1ZXN0LFxuICAgIEdldE11bHRpQnVuZGxlUmVzcG9uc2UsXG4gICAgTGlzdEJ1bmRsZXNSZXF1ZXN0LFxuICAgIExpc3RCdW5kbGVzUmVzcG9uc2UsXG4gICAgQnVuZGxlSXRlbVByaWNlLFxuICAgIEJ1bmRsZVByaWNpbmdQcmljZUFuZEZyZXF1ZW5jeSxcbiAgICBVcHNlcnRCdW5kbGVSZXF1ZXN0LFxufSBmcm9tICcuL2J1bmRsZSc7XG5cbmV4cG9ydCB7XG4gICAgQ29udHJhY3QsXG4gICAgR2V0TXVsdGlDb250cmFjdHNSZXNwb25zZUNvbnRyYWN0c0VudHJ5LFxuICAgIENyZWF0ZUNvbnRyYWN0UmVxdWVzdCxcbiAgICBDcmVhdGVDb250cmFjdFJlc3BvbnNlLFxuICAgIEdldENvbnRyYWN0UmVxdWVzdCxcbiAgICBHZXRDb250cmFjdFJlc3BvbnNlLFxuICAgIEdldE11bHRpQ29udHJhY3RzUmVxdWVzdCxcbiAgICBHZXRNdWx0aUNvbnRyYWN0c1Jlc3BvbnNlLFxuICAgIExpc3RDb250cmFjdHNSZXF1ZXN0LFxuICAgIExpc3RDb250cmFjdHNSZXNwb25zZSxcbiAgICBVcGRhdGVDb250cmFjdFJlcXVlc3RNdXRhdGlvbixcbiAgICBSZXNldENvbnRyYWN0UHJpY2luZ1JlcXVlc3QsXG4gICAgVXBkYXRlQ29udHJhY3RSZXF1ZXN0LFxuICAgIFVwZGF0ZUNvbnRyYWN0UmVzcG9uc2UsXG4gICAgVXBkYXRlQ29udHJhY3RTdWJzY3JpcHRpb25SZXF1ZXN0LFxufSBmcm9tICcuL2NvbnRyYWN0JztcblxuZXhwb3J0IHtcbiAgICBDdXN0b21lclN1bW1hcnksXG4gICAgR2V0TXVsdGlDdXN0b21lclN1bW1hcmllc1JlcXVlc3QsXG4gICAgR2V0TXVsdGlDdXN0b21lclN1bW1hcmllc1Jlc3BvbnNlLFxufSBmcm9tICcuL2N1c3RvbWVyLXN1bW1hcnknO1xuXG5leHBvcnQge1xuICAgIEJhbmtBY2NvdW50LFxuICAgIENyZWF0ZVN0cmlwZUV4dGVybmFsQWNjb3VudFJlcXVlc3QsXG4gICAgRGVsZXRlQmFua0FjY291bnRSZXF1ZXN0LFxuICAgIExpc3RCYW5rQWNjb3VudHNSZXF1ZXN0LFxuICAgIExpc3RCYW5rQWNjb3VudHNSZXNwb25zZSxcbiAgICBTZXREZWZhdWx0QmFua0FjY291bnRSZXF1ZXN0LFxufSBmcm9tICcuL2V4dGVybmFsLWFjY291bnQnO1xuXG5leHBvcnQge1xuICAgIFByb2R1Y3RTdW1tYXJ5RGlzY291bnQsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvblJlcXVlc3RGaWx0ZXJzLFxuICAgIEdldFByb2R1Y3RTdW1tYXJpZXNUb3RhbFJlcXVlc3QsXG4gICAgR2V0UHJvZHVjdFN1bW1hcmllc1RvdGFsUmVzcG9uc2UsXG4gICAgTGlzdFByb2R1Y3RTdW1tYXJpZXNSZXF1ZXN0LFxuICAgIExpc3RQcm9kdWN0U3VtbWFyaWVzUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvbkJ5R3JvdXBSZXNwb25zZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uQnlTS1VSZXNwb25zZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uUmVxdWVzdCxcbiAgICBQcmljaW5nLFxuICAgIFByb2R1Y3RTdW1tYXJ5LFxuICAgIFJldGVudGlvbk1ldHJpY3MsXG4gICAgUHJpY2luZ1J1bGUsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvbkJ5R3JvdXBSZXNwb25zZVN1YnNjcmlwdGlvblJldGVudGlvbkJ5R3JvdXAsXG59IGZyb20gJy4vcHJvZHVjdC1zdW1tYXJ5JztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVEaXNjb3VudFJlcXVlc3QsXG4gICAgRGlzY291bnQsXG4gICAgRXhwaXJlRGlzY291bnRSZXF1ZXN0LFxuICAgIExpc3REaXNjb3VudHNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0RGlzY291bnRzUmVxdWVzdCxcbiAgICBMaXN0RGlzY291bnRzUmVzcG9uc2UsXG4gICAgVXBkYXRlRGlzY291bnRSZXF1ZXN0LFxufSBmcm9tICcuL2Rpc2NvdW50JztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkVGF4UmF0ZSxcbn0gZnJvbSAnLi9hcHBsaWVkLXRheC1yYXRlJztcblxuZXhwb3J0IHtcbiAgICBBcmNoaXZlVGF4UmVxdWVzdCxcbiAgICBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdCxcbiAgICBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVzcG9uc2UsXG4gICAgQ2FsY3VsYXRlVGF4UmVxdWVzdCxcbiAgICBDYWxjdWxhdGVUYXhSZXNwb25zZSxcbiAgICBDcmVhdGVUYXhSZXF1ZXN0LFxuICAgIExpc3RUYXhSZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRNdWx0aVRheFJlcXVlc3QsXG4gICAgR2V0TXVsdGlUYXhSZXNwb25zZSxcbiAgICBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdExpbmVJdGVtLFxuICAgIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZUxpbmVJdGVtVGF4ZXMsXG4gICAgTGlzdFRheFJlcXVlc3QsXG4gICAgTGlzdFRheFJlc3BvbnNlLFxuICAgIFRheFJhdGUsXG4gICAgVXBkYXRlVGF4UmVxdWVzdCxcbn0gZnJvbSAnLi90YXgtcmF0ZSc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZEJ1bmRsZSxcbiAgICBBcHBsaWVkQnVuZGxlSXRlbSxcbn0gZnJvbSAnLi9hcHBsaWVkLWJ1bmRsZSc7XG5cbmV4cG9ydCB7XG4gICAgQWRkQnVuZGxlUmVxdWVzdCxcbiAgICBBZGRCdW5kbGVSZXNwb25zZSxcbiAgICBBZGRMaW5lSXRlbVJlcXVlc3QsXG4gICAgQWRkTGluZUl0ZW1SZXNwb25zZSxcbiAgICBDaGFyZ2VJbnZvaWNlUmVxdWVzdCxcbiAgICBDcmVhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICBDcmVhdGVJbnZvaWNlUmVzcG9uc2UsXG4gICAgQ3JlYXRlUGF5bWVudExpbmtSZXF1ZXN0LFxuICAgIENyZWF0ZVBheW1lbnRMaW5rUmVzcG9uc2UsXG4gICAgSW52b2ljZUN1c3RvbWVyQWRkcmVzcyxcbiAgICBMaXN0SW52b2ljZXNSZXF1ZXN0RmlsdGVyc0RhdGVGaWx0ZXIsXG4gICAgRGVsZXRlSW52b2ljZVJlcXVlc3QsXG4gICAgRGVsZXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIERlbGV0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgRHVwbGljYXRlSW52b2ljZVJlcXVlc3QsXG4gICAgRHVwbGljYXRlSW52b2ljZVJlc3BvbnNlLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldEludm9pY2VSZXF1ZXN0LFxuICAgIEdldEludm9pY2VSZXNwb25zZSxcbiAgICBJbnZvaWNlLFxuICAgIEludm9pY2VJdGVtLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3QsXG4gICAgTGlzdEludm9pY2VzUmVzcG9uc2UsXG4gICAgUGF5SW52b2ljZVJlcXVlc3QsXG4gICAgUGF5bWVudExpbmtJdGVtLFxuICAgIFJlbW92ZUJ1bmRsZVJlcXVlc3QsXG4gICAgUmVtb3ZlQnVuZGxlUmVzcG9uc2UsXG4gICAgU2VuZEludm9pY2VSZXF1ZXN0LFxuICAgIFVwZGF0ZUJ1bmRsZVJlcXVlc3QsXG4gICAgVXBkYXRlQnVuZGxlUmVzcG9uc2UsXG4gICAgVXBkYXRlRGVmYXVsdFRheFJhdGVzUmVxdWVzdCxcbiAgICBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXNwb25zZSxcbiAgICBVcGRhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICBVcGRhdGVJbnZvaWNlUmVzcG9uc2UsXG4gICAgVXBkYXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIFVwZGF0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgVm9pZEludm9pY2VSZXF1ZXN0LFxufSBmcm9tICcuL2ludm9pY2UnO1xuXG5leHBvcnQge1xuICAgIEFjY291bnRCYWxhbmNlLFxuICAgIEJhbGFuY2UsXG4gICAgQmFsYW5jZUFtb3VudCxcbn0gZnJvbSAnLi9iYWxhbmNlJztcblxuZXhwb3J0IHtcbiAgICBEYXRlUmFuZ2UsXG59IGZyb20gJy4vZGF0ZS1yYW5nZSc7XG5cbmV4cG9ydCB7XG4gICAgTGlzdFBheW91dHNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0UGF5b3V0c1JlcXVlc3QsXG4gICAgTGlzdFBheW91dHNSZXNwb25zZSxcbiAgICBQYXlvdXQsXG4gICAgUmVjb25jaWxlUGF5b3V0UmVxdWVzdCxcbiAgICBSZWNvbmNpbGVQYXlvdXRSZXNwb25zZSxcbiAgICBSZXRhaWxQYXlvdXQsXG59IGZyb20gJy4vcGF5b3V0JztcblxuZXhwb3J0IHtcbiAgICBDaGFyZ2VTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgIENvbm5lY3RTdHJpcGVBY2NvdW50UmVxdWVzdCxcbiAgICBDb25uZWN0U3RyaXBlQWNjb3VudFJlc3BvbnNlLFxuICAgIENyZWF0ZU1lcmNoYW50UmVxdWVzdCxcbiAgICBEZWZhdWx0Q3VzdG9tZXJDb25maWd1cmF0aW9uLFxuICAgIEdldE1lcmNoYW50UmVxdWVzdCxcbiAgICBHZXRNZXJjaGFudFJlc3BvbnNlLFxuICAgIEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXF1ZXN0LFxuICAgIEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXNwb25zZSxcbiAgICBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXF1ZXN0LFxuICAgIEdldE91dHN0YW5kaW5nQmFsYW5jZVJlc3BvbnNlLFxuICAgIEdldFBheW91dFN1bW1hcnlSZXF1ZXN0LFxuICAgIEdldFBheW91dFN1bW1hcnlSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlcXVlc3QsXG4gICAgR2V0UmV0YWlsQWNjb3VudEJhbGFuY2VSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRSZXRhaWxCYWxhbmNlUmVzcG9uc2UsXG4gICAgR2V0UmV0YWlsUGF5b3V0UmVxdWVzdCxcbiAgICBHZXRSZXRhaWxQYXlvdXRSZXNwb25zZSxcbiAgICBDcmVhdGVNZXJjaGFudFJlcXVlc3RJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzLFxuICAgIFVwZGF0ZU1lcmNoYW50UmVxdWVzdEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHMsXG4gICAgTGlzdFJldGFpbFBheW91dHNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxQYXlvdXRzUmVzcG9uc2UsXG4gICAgTWVyY2hhbnQsXG4gICAgUmV0YWlsQ29uZmlndXJhdGlvbixcbiAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVzcG9uc2VSZXRhaWxDb25maWd1cmF0aW9uc0VudHJ5LFxuICAgIFNlYXJjaE1lcmNoYW50c1JlcXVlc3QsXG4gICAgU2VhcmNoTWVyY2hhbnRzUmVzcG9uc2UsXG4gICAgU2V0QXV0b0NoYXJnZUludm9pY2VzUmVxdWVzdCxcbiAgICBTZXRBdXRvUG9zdEludm9pY2VzUmVxdWVzdCxcbiAgICBTZXREZWZhdWx0UGF5bWVudENhcmRSZXF1ZXN0LFxuICAgIFNldEhhc0FsdGVybmF0aXZlUGF5bWVudE1ldGhvZFJlcXVlc3QsXG4gICAgU2V0SW5jbHVkZUluRmluYW5jaWFsUmVjb3Jkc1JlcXVlc3QsXG4gICAgVXBkYXRlTWVyY2hhbnRSZXF1ZXN0LFxuICAgIFVwc2VydERlZmF1bHRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgIFVwc2VydFJldGFpbENvbmZpZ3VyYXRpb25SZXF1ZXN0LFxufSBmcm9tICcuL21lcmNoYW50JztcblxuZXhwb3J0IHtcbiAgICBMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1JlcXVlc3QsXG4gICAgTGlzdE1lcmNoYW50QmlsbGluZ1JlcG9ydHNSZXNwb25zZSxcbiAgICBNZXJjaGFudFJlcG9ydCxcbn0gZnJvbSAnLi9tZXJjaGFudC1yZXBvcnQnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZU1ldGVyZWRDb21wb25lbnRSZXF1ZXN0LFxuICAgIE1ldGVyZWRDb21wb25lbnQsXG4gICAgVGlja0NvbXBvbmVudFVzYWdlUmVxdWVzdCxcbn0gZnJvbSAnLi9tZXRlcmVkLWNvbXBvbmVudCc7XG5cbmV4cG9ydCB7XG4gICAgQWRqdXN0bWVudCxcbiAgICBSZXRhaWxQYXltZW50Q2FyZERldGFpbHMsXG4gICAgQ2xvc2VSZXRhaWxEaXNwdXRlUmVxdWVzdCxcbiAgICBDb25maWd1cmVSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIENvbmZpZ3VyZVJldGFpbFBheW1lbnRQcm92aWRlclJlc3BvbnNlLFxuICAgIENvbmZpcm1SZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBEaXNwdXRlLFxuICAgIERpc3B1dGVFdmlkZW5jZSxcbiAgICBTdWJtaXRFdmlkZW5jZVJlcXVlc3REaXNwdXRlRXZpZGVuY2UsXG4gICAgRGlzcHV0ZUV2aWRlbmNlRGV0YWlscyxcbiAgICBGaWxlLFxuICAgIEdldFJldGFpbERpc3B1dGVSZXF1ZXN0LFxuICAgIEdldFJldGFpbERpc3B1dGVSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW1lbnRQcm92aWRlclJlc3BvbnNlLFxuICAgIEdldFJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW1lbnRSZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVQcm92aWRlclB1YmxpY0tleVJlcXVlc3QsXG4gICAgR2V0V2hvbGVzYWxlUHJvdmlkZXJQdWJsaWNLZXlSZXNwb25zZSxcbiAgICBMaXN0UGF5bWVudFJlcXVlc3RMaXN0UGF5bWVudEZpbHRlcnMsXG4gICAgTGlzdFBheW1lbnRSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50UmVzcG9uc2UsXG4gICAgTGlzdFJldGFpbERpc3B1dGVzUmVxdWVzdCxcbiAgICBMaXN0UmV0YWlsRGlzcHV0ZXNSZXNwb25zZSxcbiAgICBMaXN0UmV0YWlsUGF5bWVudHNSZXF1ZXN0TGlzdFJldGFpbFBheW1lbnRzRmlsdGVycyxcbiAgICBMaXN0UmV0YWlsUGF5bWVudHNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxQYXltZW50c1Jlc3BvbnNlLFxuICAgIExpc3RSZXRhaWxUcmFuc2FjdGlvbnNSZXF1ZXN0TGlzdFJldGFpbFRyYW5zYWN0aW9uc0ZpbHRlcnMsXG4gICAgTGlzdFJldGFpbFRyYW5zYWN0aW9uc1JlcXVlc3QsXG4gICAgTGlzdFJldGFpbFRyYW5zYWN0aW9uc1Jlc3BvbnNlLFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVxdWVzdE9yZGVyLFxuICAgIFBheW1lbnQsXG4gICAgUGF5bWVudFBheW1lbnRBbGxvY2F0aW9uLFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBQcmVwYXJlUmV0YWlsUGF5bWVudFJlc3BvbnNlLFxuICAgIFJlZnVuZFJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIFJlZnVuZFJldGFpbFBheW1lbnRSZXNwb25zZSxcbiAgICBSZXRhaWxQYXltZW50LFxuICAgIFJldGFpbFBheW1lbnRzRW5hYmxlZFJlcXVlc3QsXG4gICAgUmV0YWlsUGF5bWVudHNFbmFibGVkUmVzcG9uc2UsXG4gICAgUmV0YWlsUmVmdW5kLFxuICAgIFJldGFpbFN0YXR1c1JlcXVlc3QsXG4gICAgUmV0YWlsU3RhdHVzUmVzcG9uc2UsXG4gICAgUmV0YWlsVHJhbnNhY3Rpb24sXG4gICAgU3VibWl0RXZpZGVuY2VSZXF1ZXN0LFxuICAgIFVwZGF0ZVJldGFpbFBheW1lbnRQcm92aWRlclJlcXVlc3QsXG4gICAgUmV0YWlsU3RhdHVzUmVzcG9uc2VWZXJpZmljYXRpb25FcnJvcixcbiAgICBSZXRhaWxTdGF0dXNSZXNwb25zZVZlcmlmaWNhdGlvblJlcXVpcmVtZW50cyxcbn0gZnJvbSAnLi9wYXltZW50JztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVQYXltZW50Q2FyZFJlcXVlc3QsXG4gICAgRGVsZXRlUGF5bWVudENhcmRSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50Q2FyZHNSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50Q2FyZHNSZXNwb25zZSxcbiAgICBQYXltZW50Q2FyZCxcbiAgICBTZXREZWZhdWx0UGF5bWVudE1ldGhvZFJlcXVlc3QsXG4gICAgVXBkYXRlUGF5bWVudENhcmRSZXF1ZXN0LFxufSBmcm9tICcuL3BheW1lbnQtY2FyZCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZSxcbiAgICBEZWxldGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRNdWx0aVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlLFxuICAgIEdldFByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0UHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgTGlzdFByaWNpbmdQbGFuUHJvZHVjdHNSZXF1ZXN0TGlzdFByaWNpbmdQbGFuUHJvZHVjdHNGaWx0ZXJzLFxuICAgIExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVxdWVzdCxcbiAgICBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1Jlc3BvbnNlLFxuICAgIFByaWNpbmdQbGFuUHJvZHVjdFByaWNpbmdFbnRyeSxcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0UHJpY2luZ0VudHJ5LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3RQcmljaW5nRW50cnksXG4gICAgUHJpY2luZ1BsYW5Qcm9kdWN0LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgVXBzZXJ0V2hvbGVzYWxlUHJpY2luZ1JlcXVlc3QsXG59IGZyb20gJy4vcHJpY2luZy1wbGFuLXByb2R1Y3QnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVByb2R1Y3RSZXF1ZXN0LFxuICAgIERlbGV0ZVByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UmVzcG9uc2UsXG4gICAgTGlzdFByb2R1Y3RzUmVxdWVzdExpc3RQcm9kdWN0c0ZpbHRlcnMsXG4gICAgTGlzdFByb2R1Y3RzUmVxdWVzdCxcbiAgICBMaXN0UHJvZHVjdHNSZXNwb25zZSxcbiAgICBQcm9kdWN0LFxuICAgIEdldE11bHRpUHJvZHVjdFJlc3BvbnNlUHJvZHVjdHNFbnRyeSxcbiAgICBVcGRhdGVQcm9kdWN0UmVxdWVzdCxcbn0gZnJvbSAnLi9wcm9kdWN0JztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkQ3JlZGl0LFxuICAgIExpc3RQdXJjaGFzZVJlcXVlc3RMaXN0UHVyY2hhc2VCaWxsaW5nU3RyYXRlZ3lGaWx0ZXIsXG4gICAgTGlzdFB1cmNoYXNlUmVxdWVzdExpc3RQdXJjaGFzZUZpbHRlcnMsXG4gICAgTGlzdFB1cmNoYXNlSXRlbXNSZXF1ZXN0TGlzdFB1cmNoYXNlSXRlbXNGaWx0ZXJzLFxuICAgIExpc3RQdXJjaGFzZUl0ZW1zUmVxdWVzdCxcbiAgICBMaXN0UHVyY2hhc2VJdGVtc1Jlc3BvbnNlLFxuICAgIExpc3RQdXJjaGFzZVJlcXVlc3QsXG4gICAgTGlzdFB1cmNoYXNlUmVzcG9uc2UsXG4gICAgUGF1c2VEdW5uaW5nUmVxdWVzdCxcbiAgICBQdXJjaGFzZSxcbiAgICBQdXJjaGFzZUl0ZW0sXG4gICAgUmVzdW1lRHVubmluZ1JlcXVlc3QsXG4gICAgUmV0cnlQdXJjaGFzZVJlcXVlc3QsXG4gICAgU3RvcER1bm5pbmdSZXF1ZXN0LFxuICAgIFZvaWRQdXJjaGFzZVJlcXVlc3QsXG59IGZyb20gJy4vcHVyY2hhc2UnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVJlZnVuZFJlcXVlc3QsXG4gICAgTGlzdFJlZnVuZHNSZXF1ZXN0LFxuICAgIExpc3RSZWZ1bmRzUmVzcG9uc2UsXG4gICAgUmVmdW5kLFxufSBmcm9tICcuL3JlZnVuZCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlU2FsZXNDcmVkaXROb3RlUmVxdWVzdCxcbiAgICBMaXN0U2FsZXNDcmVkaXROb3RlUmVxdWVzdExpc3RTYWxlc0NyZWRpdE5vdGVGaWx0ZXJzLFxuICAgIExpc3RTYWxlc0NyZWRpdE5vdGVSZXF1ZXN0LFxuICAgIExpc3RTYWxlc0NyZWRpdE5vdGVSZXNwb25zZSxcbiAgICBTYWxlc0NyZWRpdE5vdGUsXG59IGZyb20gJy4vc2FsZXMtY3JlZGl0LW5vdGUnO1xuXG5leHBvcnQge1xuICAgIEdldFNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgR2V0U2FsZXNJbnZvaWNlUmVzcG9uc2UsXG4gICAgTGlzdFNhbGVzSW52b2ljZVJlcXVlc3RMaXN0U2FsZXNJbnZvaWNlRmlsdGVycyxcbiAgICBMaXN0U2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICBMaXN0U2FsZXNJbnZvaWNlUmVzcG9uc2UsXG4gICAgUG9zdFNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgU2FsZXNJbnZvaWNlLFxuICAgIFNlbmRTYWxlc0ludm9pY2VFbWFpbFJlcXVlc3QsXG4gICAgU2VuZFNhbGVzSW52b2ljZVJlY2VpcHRFbWFpbFJlcXVlc3QsXG59IGZyb20gJy4vc2FsZXMtaW52b2ljZSc7XG5cbmV4cG9ydCB7XG4gICAgU3Vic2NyaWJlVmFsaWRhdGlvbixcbn0gZnJvbSAnLi9zdWJzY3JpYmUtdmFsaWRhdGlvbic7XG5cbmV4cG9ydCB7XG4gICAgQWxpZ25tZW50U3Vic2NyaXB0aW9uLFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICBDaGFuZ2VDdXN0b21Vbml0UHJpY2VSZXF1ZXN0LFxuICAgIENoYW5nZUZyZXF1ZW5jeVJlcXVlc3QsXG4gICAgQ2hhbmdlUmVuZXdhbERhdGVSZXF1ZXN0LFxuICAgIENyZWF0ZVN1YnNjcmlwdGlvblJlcXVlc3QsXG4gICAgQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgQ3JlYXRlU3Vic2NyaXB0aW9uc1Jlc3BvbnNlLFxuICAgIFJldmVyc2VTdWJzY3JpcHRpb25SZXF1ZXN0LFxuICAgIFNldFJlbmV3YWxTdGFydFJlcXVlc3QsXG4gICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3RTa3VzRW50cnksXG4gICAgU3Vic2NyaXB0aW9uLFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0U3Vic2NyaXB0aW9uSXRlbSxcbiAgICBWYWxpZGF0ZVJlc3BvbnNlLFxufSBmcm9tICcuL3N1YnNjcmlwdGlvbic7XG5cbmV4cG9ydCB7XG4gICAgQ29udHJhY3REb2N1bWVudCxcbiAgICBEZWxldGVDb250cmFjdERvY3VtZW50UmVxdWVzdCxcbiAgICBMaXN0Q29udHJhY3REb2N1bWVudHNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0Q29udHJhY3REb2N1bWVudHNSZXF1ZXN0LFxuICAgIExpc3RDb250cmFjdERvY3VtZW50c1Jlc3BvbnNlLFxufSBmcm9tICcuL2NvbnRyYWN0LWRvY3VtZW50JztcblxuZXhwb3J0IHtcbiAgICBHZXRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgIEdldFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlc3BvbnNlLFxuICAgIFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvbixcbiAgICBVcHNlcnRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxufSBmcm9tICcuL3JldGFpbC1jdXN0b21lci1jb25maWd1cmF0aW9uJztcblxuZXhwb3J0IHtcbiAgICBBZGRDcmVkaXRSZXF1ZXN0LFxuICAgIENyZWRpdEJhbGFuY2UsXG4gICAgR2V0QmFsYW5jZVJlcXVlc3QsXG4gICAgR2V0QmFsYW5jZVJlc3BvbnNlLFxufSBmcm9tICcuL2NyZWRpdCc7XG5cbmV4cG9ydCB7XG4gICAgUmVjdXJyaW5nSW52b2ljZUN1c3RvbWVyQWRkcmVzcyxcbiAgICBMaXN0UmVjdXJyaW5nSW52b2ljZXNGaWx0ZXJzRGF0ZUZpbHRlcixcbiAgICBEZWxldGVSZWN1cnJpbmdJbnZvaWNlUmVxdWVzdCxcbiAgICBMaXN0UmVjdXJyaW5nSW52b2ljZXNGaWx0ZXJzRGV0YWlsZWRJbnRlcnZhbCxcbiAgICBHZXRSZWN1cnJpbmdJbnZvaWNlUmVxdWVzdCxcbiAgICBMaXN0UmVjdXJyaW5nSW52b2ljZXNGaWx0ZXJzLFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc1JlcXVlc3QsXG4gICAgTGlzdFJlY3VycmluZ0ludm9pY2VzUmVzcG9uc2UsXG4gICAgUmVjdXJyaW5nSW52b2ljZSxcbiAgICBSZWN1cnJpbmdJbnZvaWNlQnVuZGxlLFxuICAgIFJlY3VycmluZ0ludm9pY2VJdGVtLFxuICAgIFJlY3VycmluZ0ludm9pY2VMaW5lSXRlbSxcbiAgICBVcGRhdGVSZWN1cnJpbmdJbnZvaWNlUmVxdWVzdCxcbn0gZnJvbSAnLi9yZWN1cnJpbmctaW52b2ljZSc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bixcbiAgICBHZXRNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuLFxuICAgIE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4sXG59IGZyb20gJy4vcmVwb3J0LXJ1bic7XG5cbmV4cG9ydCB7XG4gICAgQWNjZXNzLFxufSBmcm9tICcuL2Fubm90YXRpb25zJztcblxuZXhwb3J0IHtcbiAgICBEZWxldGVSZXRhaWxQcmljaW5nUmVxdWVzdCxcbiAgICBHZW5lcmF0ZUJpbGxhYmxlSXRlbXNDU1ZSZXF1ZXN0LFxuICAgIEdlbmVyYXRlQmlsbGFibGVJdGVtc0NTVlJlc3BvbnNlLFxuICAgIEdlbmVyYXRlVmVuZG9yUmVwb3J0UmVxdWVzdCxcbiAgICBHZW5lcmF0ZVZlbmRvclJlcG9ydFJlc3BvbnNlLFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1JlcXVlc3QsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXRhaWxQcmljaW5nUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1JlcXVlc3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1Jlc3BvbnNlLFxuICAgIEdldE11bHRpUmV0YWlsUHJpY2luZ1JlcXVlc3QsXG4gICAgR2V0TXVsdGlSZXRhaWxQcmljaW5nUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlXaG9sZXNhbGVDb3N0UmVxdWVzdCxcbiAgICBHZXRNdWx0aVdob2xlc2FsZUNvc3RSZXNwb25zZSxcbiAgICBHZXRQdXJjaGFzZUNvc3RSZXF1ZXN0LFxuICAgIEdldFB1cmNoYXNlQ29zdFJlc3BvbnNlLFxuICAgIEdldFJldmVudWVTdGF0c1JlcXVlc3QsXG4gICAgR2V0UmV2ZW51ZVN0YXRzUmVzcG9uc2UsXG4gICAgR2V0U3RhdGlzdGljc1JlcXVlc3QsXG4gICAgR2V0U3RhdGlzdGljc1Jlc3BvbnNlLFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXF1ZXN0R2V0V2hvbGVzYWxlQ29tcGFyaXNvbkZpbHRlcnMsXG4gICAgR2V0V2hvbGVzYWxlQ29tcGFyaXNvblJlcXVlc3QsXG4gICAgR2V0V2hvbGVzYWxlQ29tcGFyaXNvblJlc3BvbnNlLFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXNwb25zZUdldFdob2xlc2FsZUNvbXBhcmlzb25SZXN1bHQsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXRhaWxQcmljaW5nUmVzcG9uc2VQcmljZXNFbnRyeSxcbiAgICBVcHNlcnRSZXRhaWxQcmljaW5nUmVxdWVzdFByaWNpbmdFbnRyeSxcbiAgICBHZXRNdWx0aVJldGFpbFByaWNpbmdSZXNwb25zZVByb2R1Y3RQcmljZXNFbnRyeSxcbiAgICBHZXRNdWx0aVByb2R1Y3RQcmljaW5nUmVzcG9uc2VQcm9kdWN0UHJpY2VzRW50cnksXG4gICAgU2V0V2hvbGVzYWxlUHJvZHVjdFN0cmF0ZWd5UmVxdWVzdCxcbiAgICBTZXRXaG9sZXNhbGVQcm9kdWN0Vm9sdW1lQ29tbWl0bWVudFJlcXVlc3QsXG4gICAgU3RhcnRSZXZSZWNUZW1wbGF0ZUJhY2tmaWxsUmVxdWVzdCxcbiAgICBVcHNlcnRSZXRhaWxQcmljaW5nUmVxdWVzdCxcbn0gZnJvbSAnLi9hcGknO1xuXG4iXX0=
|
|
@@ -28,6 +28,70 @@ export class ArchiveTaxRequest {
|
|
|
28
28
|
return toReturn;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
+
export class CalculateLineItemTaxesRequest {
|
|
32
|
+
static fromProto(proto) {
|
|
33
|
+
let m = new CalculateLineItemTaxesRequest();
|
|
34
|
+
m = Object.assign(m, proto);
|
|
35
|
+
if (proto.lineItems) {
|
|
36
|
+
m.lineItems = proto.lineItems.map(CalculateLineItemTaxesRequestLineItem.fromProto);
|
|
37
|
+
}
|
|
38
|
+
return m;
|
|
39
|
+
}
|
|
40
|
+
constructor(kwargs) {
|
|
41
|
+
if (!kwargs) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
Object.assign(this, kwargs);
|
|
45
|
+
}
|
|
46
|
+
toApiJson() {
|
|
47
|
+
const toReturn = {};
|
|
48
|
+
if (typeof this.merchantId !== 'undefined') {
|
|
49
|
+
toReturn['merchantId'] = this.merchantId;
|
|
50
|
+
}
|
|
51
|
+
if (typeof this.customerId !== 'undefined') {
|
|
52
|
+
toReturn['customerId'] = this.customerId;
|
|
53
|
+
}
|
|
54
|
+
if (typeof this.lineItems !== 'undefined' && this.lineItems !== null) {
|
|
55
|
+
toReturn['lineItems'] = 'toApiJson' in this.lineItems ? this.lineItems.toApiJson() : this.lineItems;
|
|
56
|
+
}
|
|
57
|
+
return toReturn;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export class CalculateLineItemTaxesResponse {
|
|
61
|
+
static fromProto(proto) {
|
|
62
|
+
let m = new CalculateLineItemTaxesResponse();
|
|
63
|
+
m = Object.assign(m, proto);
|
|
64
|
+
if (proto.lineItemTaxes) {
|
|
65
|
+
m.lineItemTaxes = proto.lineItemTaxes.map(CalculateLineItemTaxesResponseLineItemTaxes.fromProto);
|
|
66
|
+
}
|
|
67
|
+
if (proto.totalTaxableAmount) {
|
|
68
|
+
m.totalTaxableAmount = parseInt(proto.totalTaxableAmount, 10);
|
|
69
|
+
}
|
|
70
|
+
if (proto.taxRates) {
|
|
71
|
+
m.taxRates = proto.taxRates.map(TaxRate.fromProto);
|
|
72
|
+
}
|
|
73
|
+
return m;
|
|
74
|
+
}
|
|
75
|
+
constructor(kwargs) {
|
|
76
|
+
if (!kwargs) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
Object.assign(this, kwargs);
|
|
80
|
+
}
|
|
81
|
+
toApiJson() {
|
|
82
|
+
const toReturn = {};
|
|
83
|
+
if (typeof this.lineItemTaxes !== 'undefined' && this.lineItemTaxes !== null) {
|
|
84
|
+
toReturn['lineItemTaxes'] = 'toApiJson' in this.lineItemTaxes ? this.lineItemTaxes.toApiJson() : this.lineItemTaxes;
|
|
85
|
+
}
|
|
86
|
+
if (typeof this.totalTaxableAmount !== 'undefined') {
|
|
87
|
+
toReturn['totalTaxableAmount'] = this.totalTaxableAmount;
|
|
88
|
+
}
|
|
89
|
+
if (typeof this.taxRates !== 'undefined' && this.taxRates !== null) {
|
|
90
|
+
toReturn['taxRates'] = 'toApiJson' in this.taxRates ? this.taxRates.toApiJson() : this.taxRates;
|
|
91
|
+
}
|
|
92
|
+
return toReturn;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
31
95
|
export class CalculateTaxRequest {
|
|
32
96
|
static fromProto(proto) {
|
|
33
97
|
let m = new CalculateTaxRequest();
|
|
@@ -193,6 +257,55 @@ export class GetMultiTaxResponse {
|
|
|
193
257
|
return toReturn;
|
|
194
258
|
}
|
|
195
259
|
}
|
|
260
|
+
export class CalculateLineItemTaxesRequestLineItem {
|
|
261
|
+
static fromProto(proto) {
|
|
262
|
+
let m = new CalculateLineItemTaxesRequestLineItem();
|
|
263
|
+
m = Object.assign(m, proto);
|
|
264
|
+
if (proto.amount) {
|
|
265
|
+
m.amount = parseInt(proto.amount, 10);
|
|
266
|
+
}
|
|
267
|
+
return m;
|
|
268
|
+
}
|
|
269
|
+
constructor(kwargs) {
|
|
270
|
+
if (!kwargs) {
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
Object.assign(this, kwargs);
|
|
274
|
+
}
|
|
275
|
+
toApiJson() {
|
|
276
|
+
const toReturn = {};
|
|
277
|
+
if (typeof this.sku !== 'undefined') {
|
|
278
|
+
toReturn['sku'] = this.sku;
|
|
279
|
+
}
|
|
280
|
+
if (typeof this.amount !== 'undefined') {
|
|
281
|
+
toReturn['amount'] = this.amount;
|
|
282
|
+
}
|
|
283
|
+
return toReturn;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
export class CalculateLineItemTaxesResponseLineItemTaxes {
|
|
287
|
+
static fromProto(proto) {
|
|
288
|
+
let m = new CalculateLineItemTaxesResponseLineItemTaxes();
|
|
289
|
+
m = Object.assign(m, proto);
|
|
290
|
+
return m;
|
|
291
|
+
}
|
|
292
|
+
constructor(kwargs) {
|
|
293
|
+
if (!kwargs) {
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
Object.assign(this, kwargs);
|
|
297
|
+
}
|
|
298
|
+
toApiJson() {
|
|
299
|
+
const toReturn = {};
|
|
300
|
+
if (typeof this.sku !== 'undefined') {
|
|
301
|
+
toReturn['sku'] = this.sku;
|
|
302
|
+
}
|
|
303
|
+
if (typeof this.taxableAmount !== 'undefined') {
|
|
304
|
+
toReturn['taxableAmount'] = this.taxableAmount;
|
|
305
|
+
}
|
|
306
|
+
return toReturn;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
196
309
|
export class ListTaxRequest {
|
|
197
310
|
static fromProto(proto) {
|
|
198
311
|
let m = new ListTaxRequest();
|
|
@@ -339,4 +452,4 @@ export class UpdateTaxRequest {
|
|
|
339
452
|
return toReturn;
|
|
340
453
|
}
|
|
341
454
|
}
|
|
342
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL3RheC1yYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUd0RSxNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8saUJBQWlCO0lBSTFCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDaEMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBcUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixJQUFJLE9BQU8sSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FB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LEVBQUU7WUFBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUFDO1FBQ3BGLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQUM7UUFDckUsSUFBSSxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FBQztRQUMxRixJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMsa0JBQWtCLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQUM7UUFDL0csT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGFnZWRSZXF1ZXN0T3B0aW9ucywgUGFnZWRSZXNwb25zZU1ldGFkYXRhIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgQXJjaGl2ZVRheFJlcXVlc3QgaW1wbGVtZW50cyBpLkFyY2hpdmVUYXhSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEFyY2hpdmVUYXhSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQXJjaGl2ZVRheFJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkFyY2hpdmVUYXhSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVUYXhSZXF1ZXN0IGltcGxlbWVudHMgaS5DYWxjdWxhdGVUYXhSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIGFtb3VudDogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ2FsY3VsYXRlVGF4UmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IENhbGN1bGF0ZVRheFJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uYW1vdW50KSB7bS5hbW91bnQgPSBwYXJzZUludChwcm90by5hbW91bnQsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ2FsY3VsYXRlVGF4UmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYW1vdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhbW91bnQnXSA9IHRoaXMuYW1vdW50O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZVRheFJlc3BvbnNlIGltcGxlbWVudHMgaS5DYWxjdWxhdGVUYXhSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdGF4YWJsZUFtb3VudDogbnVtYmVyO1xuICAgIHRheFJhdGVzOiBUYXhSYXRlW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDYWxjdWxhdGVUYXhSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IENhbGN1bGF0ZVRheFJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnRheGFibGVBbW91bnQpIHttLnRheGFibGVBbW91bnQgPSBwYXJzZUludChwcm90by50YXhhYmxlQW1vdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8udGF4UmF0ZXMpIHttLnRheFJhdGVzID0gcHJvdG8udGF4UmF0ZXMubWFwKFRheFJhdGUuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ2FsY3VsYXRlVGF4UmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhhYmxlQW1vdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0YXhhYmxlQW1vdW50J10gPSB0aGlzLnRheGFibGVBbW91bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGF4UmF0ZXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGF4UmF0ZXMgIT09IG51bGwpIHt0b1JldHVyblsndGF4UmF0ZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudGF4UmF0ZXMgPyAodGhpcy50YXhSYXRlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50YXhSYXRlczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVUYXhSZXF1ZXN0IGltcGxlbWVudHMgaS5DcmVhdGVUYXhSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgICBzdGF0ZUNvZGU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBwZXJjZW50YWdlOiBudW1iZXI7XG4gICAgYWNjb3VudGluZ1N5c3RlbUlkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDcmVhdGVUYXhSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQ3JlYXRlVGF4UmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ3JlYXRlVGF4UmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb3VudHJ5Q29kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY291bnRyeUNvZGUnXSA9IHRoaXMuY291bnRyeUNvZGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdGVDb2RlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0ZUNvZGUnXSA9IHRoaXMuc3RhdGVDb2RlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ25hbWUnXSA9IHRoaXMubmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb24nXSA9IHRoaXMuZGVzY3JpcHRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGVyY2VudGFnZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncGVyY2VudGFnZSddID0gdGhpcy5wZXJjZW50YWdlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjY291bnRpbmdTeXN0ZW1JZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWNjb3VudGluZ1N5c3RlbUlkJ10gPSB0aGlzLmFjY291bnRpbmdTeXN0ZW1JZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0VGF4UmVxdWVzdEZpbHRlcnMgaW1wbGVtZW50cyBpLkxpc3RUYXhSZXF1ZXN0RmlsdGVyc0ludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGluY2x1ZGVBcmNoaXZlZDogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RUYXhSZXF1ZXN0RmlsdGVycyB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RUYXhSZXF1ZXN0RmlsdGVycygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdFRheFJlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmluY2x1ZGVBcmNoaXZlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaW5jbHVkZUFyY2hpdmVkJ10gPSB0aGlzLmluY2x1ZGVBcmNoaXZlZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRNdWx0aVRheFJlcXVlc3QgaW1wbGVtZW50cyBpLkdldE11bHRpVGF4UmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGlkczogc3RyaW5nW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRNdWx0aVRheFJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRNdWx0aVRheFJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldE11bHRpVGF4UmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkcyddID0gdGhpcy5pZHM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0TXVsdGlUYXhSZXNwb25zZSBpbXBsZW1lbnRzIGkuR2V0TXVsdGlUYXhSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdGF4UmF0ZXM6IFRheFJhdGVbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdldE11bHRpVGF4UmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRNdWx0aVRheFJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnRheFJhdGVzKSB7bS50YXhSYXRlcyA9IHByb3RvLnRheFJhdGVzLm1hcChUYXhSYXRlLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldE11bHRpVGF4UmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhSYXRlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50YXhSYXRlcyAhPT0gbnVsbCkge3RvUmV0dXJuWyd0YXhSYXRlcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50YXhSYXRlcyA/ICh0aGlzLnRheFJhdGVzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRheFJhdGVzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RUYXhSZXF1ZXN0IGltcGxlbWVudHMgaS5MaXN0VGF4UmVxdWVzdEludGVyZmFjZSB7XG4gICAgZmlsdGVyczogTGlzdFRheFJlcXVlc3RGaWx0ZXJzO1xuICAgIHBhZ2luZ09wdGlvbnM6IFBhZ2VkUmVxdWVzdE9wdGlvbnM7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0VGF4UmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RUYXhSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmZpbHRlcnMpIHttLmZpbHRlcnMgPSBMaXN0VGF4UmVxdWVzdEZpbHRlcnMuZnJvbVByb3RvKHByb3RvLmZpbHRlcnMpO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ09wdGlvbnMpIHttLnBhZ2luZ09wdGlvbnMgPSBQYWdlZFJlcXVlc3RPcHRpb25zLmZyb21Qcm90byhwcm90by5wYWdpbmdPcHRpb25zKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdFRheFJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maWx0ZXJzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmZpbHRlcnMgIT09IG51bGwpIHt0b1JldHVyblsnZmlsdGVycyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5maWx0ZXJzID8gKHRoaXMuZmlsdGVycyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5maWx0ZXJzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2luZ09wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucGFnaW5nT3B0aW9ucyAhPT0gbnVsbCkge3RvUmV0dXJuWydwYWdpbmdPcHRpb25zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBhZ2luZ09wdGlvbnMgPyAodGhpcy5wYWdpbmdPcHRpb25zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnBhZ2luZ09wdGlvbnM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdFRheFJlc3BvbnNlIGltcGxlbWVudHMgaS5MaXN0VGF4UmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRheFJhdGVzOiBUYXhSYXRlW107XG4gICAgcGFnaW5nTWV0YWRhdGE6IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RUYXhSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RUYXhSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50YXhSYXRlcykge20udGF4UmF0ZXMgPSBwcm90by50YXhSYXRlcy5tYXAoVGF4UmF0ZS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ01ldGFkYXRhKSB7bS5wYWdpbmdNZXRhZGF0YSA9IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YS5mcm9tUHJvdG8ocHJvdG8ucGFnaW5nTWV0YWRhdGEpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5MaXN0VGF4UmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhSYXRlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50YXhSYXRlcyAhPT0gbnVsbCkge3RvUmV0dXJuWyd0YXhSYXRlcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50YXhSYXRlcyA/ICh0aGlzLnRheFJhdGVzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRheFJhdGVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhZ2luZ01ldGFkYXRhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBhZ2luZ01ldGFkYXRhID8gKHRoaXMucGFnaW5nTWV0YWRhdGEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFnaW5nTWV0YWRhdGE7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGF4UmF0ZSBpbXBsZW1lbnRzIGkuVGF4UmF0ZUludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgICBzdGF0ZUNvZGU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBwZXJjZW50YWdlOiBudW1iZXI7XG4gICAgYWNjb3VudGluZ1N5c3RlbUlkOiBzdHJpbmc7XG4gICAgYXJjaGl2ZWQ6IERhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUYXhSYXRlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVGF4UmF0ZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5hcmNoaXZlZCkge20uYXJjaGl2ZWQgPSBuZXcgRGF0ZShwcm90by5hcmNoaXZlZCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRheFJhdGVJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvdW50cnlDb2RlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb3VudHJ5Q29kZSddID0gdGhpcy5jb3VudHJ5Q29kZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGF0ZUNvZGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N0YXRlQ29kZSddID0gdGhpcy5zdGF0ZUNvZGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wZXJjZW50YWdlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwZXJjZW50YWdlJ10gPSB0aGlzLnBlcmNlbnRhZ2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWNjb3VudGluZ1N5c3RlbUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhY2NvdW50aW5nU3lzdGVtSWQnXSA9IHRoaXMuYWNjb3VudGluZ1N5c3RlbUlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFyY2hpdmVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmFyY2hpdmVkICE9PSBudWxsKSB7dG9SZXR1cm5bJ2FyY2hpdmVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmFyY2hpdmVkID8gKHRoaXMuYXJjaGl2ZWQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYXJjaGl2ZWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlVGF4UmVxdWVzdCBpbXBsZW1lbnRzIGkuVXBkYXRlVGF4UmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgICBzdGF0ZUNvZGU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBwZXJjZW50YWdlOiBudW1iZXI7XG4gICAgYWNjb3VudGluZ1N5c3RlbUlkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBVcGRhdGVUYXhSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVXBkYXRlVGF4UmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVXBkYXRlVGF4UmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY291bnRyeUNvZGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvdW50cnlDb2RlJ10gPSB0aGlzLmNvdW50cnlDb2RlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXRlQ29kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhdGVDb2RlJ10gPSB0aGlzLnN0YXRlQ29kZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyduYW1lJ10gPSB0aGlzLm5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVzY3JpcHRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rlc2NyaXB0aW9uJ10gPSB0aGlzLmRlc2NyaXB0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBlcmNlbnRhZ2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3BlcmNlbnRhZ2UnXSA9IHRoaXMucGVyY2VudGFnZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hY2NvdW50aW5nU3lzdGVtSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FjY291bnRpbmdTeXN0ZW1JZCddID0gdGhpcy5hY2NvdW50aW5nU3lzdGVtSWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
|
|
455
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL3RheC1yYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUd0RSxNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8saUJBQWlCO0lBSTFCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDaEMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBcUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixJQUFJLE9BQU8sSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FB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QUFJLENBQUMsSUFBSSxDQUFDO1NBQUM7UUFDckUsSUFBSSxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FBQztRQUMxRixJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMsa0JBQWtCLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQUM7UUFDL0csT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGFnZWRSZXF1ZXN0T3B0aW9ucywgUGFnZWRSZXNwb25zZU1ldGFkYXRhIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgQXJjaGl2ZVRheFJlcXVlc3QgaW1wbGVtZW50cyBpLkFyY2hpdmVUYXhSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEFyY2hpdmVUYXhSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQXJjaGl2ZVRheFJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkFyY2hpdmVUYXhSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdCBpbXBsZW1lbnRzIGkuQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgbGluZUl0ZW1zOiBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdExpbmVJdGVtW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmxpbmVJdGVtcykge20ubGluZUl0ZW1zID0gcHJvdG8ubGluZUl0ZW1zLm1hcChDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdExpbmVJdGVtLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkNhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5saW5lSXRlbXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMubGluZUl0ZW1zICE9PSBudWxsKSB7dG9SZXR1cm5bJ2xpbmVJdGVtcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5saW5lSXRlbXMgPyAodGhpcy5saW5lSXRlbXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubGluZUl0ZW1zO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZSBpbXBsZW1lbnRzIGkuQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBsaW5lSXRlbVRheGVzOiBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVzcG9uc2VMaW5lSXRlbVRheGVzW107XG4gICAgdG90YWxUYXhhYmxlQW1vdW50OiBudW1iZXI7XG4gICAgdGF4UmF0ZXM6IFRheFJhdGVbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5saW5lSXRlbVRheGVzKSB7bS5saW5lSXRlbVRheGVzID0gcHJvdG8ubGluZUl0ZW1UYXhlcy5tYXAoQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlTGluZUl0ZW1UYXhlcy5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLnRvdGFsVGF4YWJsZUFtb3VudCkge20udG90YWxUYXhhYmxlQW1vdW50ID0gcGFyc2VJbnQocHJvdG8udG90YWxUYXhhYmxlQW1vdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8udGF4UmF0ZXMpIHttLnRheFJhdGVzID0gcHJvdG8udGF4UmF0ZXMubWFwKFRheFJhdGUuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubGluZUl0ZW1UYXhlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5saW5lSXRlbVRheGVzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2xpbmVJdGVtVGF4ZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubGluZUl0ZW1UYXhlcyA/ICh0aGlzLmxpbmVJdGVtVGF4ZXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubGluZUl0ZW1UYXhlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b3RhbFRheGFibGVBbW91bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RvdGFsVGF4YWJsZUFtb3VudCddID0gdGhpcy50b3RhbFRheGFibGVBbW91bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGF4UmF0ZXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGF4UmF0ZXMgIT09IG51bGwpIHt0b1JldHVyblsndGF4UmF0ZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudGF4UmF0ZXMgPyAodGhpcy50YXhSYXRlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50YXhSYXRlczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVUYXhSZXF1ZXN0IGltcGxlbWVudHMgaS5DYWxjdWxhdGVUYXhSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIGFtb3VudDogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ2FsY3VsYXRlVGF4UmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IENhbGN1bGF0ZVRheFJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uYW1vdW50KSB7bS5hbW91bnQgPSBwYXJzZUludChwcm90by5hbW91bnQsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ2FsY3VsYXRlVGF4UmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYW1vdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhbW91bnQnXSA9IHRoaXMuYW1vdW50O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZVRheFJlc3BvbnNlIGltcGxlbWVudHMgaS5DYWxjdWxhdGVUYXhSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdGF4YWJsZUFtb3VudDogbnVtYmVyO1xuICAgIHRheFJhdGVzOiBUYXhSYXRlW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDYWxjdWxhdGVUYXhSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IENhbGN1bGF0ZVRheFJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnRheGFibGVBbW91bnQpIHttLnRheGFibGVBbW91bnQgPSBwYXJzZUludChwcm90by50YXhhYmxlQW1vdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8udGF4UmF0ZXMpIHttLnRheFJhdGVzID0gcHJvdG8udGF4UmF0ZXMubWFwKFRheFJhdGUuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ2FsY3VsYXRlVGF4UmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhhYmxlQW1vdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0YXhhYmxlQW1vdW50J10gPSB0aGlzLnRheGFibGVBbW91bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGF4UmF0ZXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGF4UmF0ZXMgIT09IG51bGwpIHt0b1JldHVyblsndGF4UmF0ZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudGF4UmF0ZXMgPyAodGhpcy50YXhSYXRlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50YXhSYXRlczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVUYXhSZXF1ZXN0IGltcGxlbWVudHMgaS5DcmVhdGVUYXhSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgICBzdGF0ZUNvZGU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBwZXJjZW50YWdlOiBudW1iZXI7XG4gICAgYWNjb3VudGluZ1N5c3RlbUlkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDcmVhdGVUYXhSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQ3JlYXRlVGF4UmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ3JlYXRlVGF4UmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb3VudHJ5Q29kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY291bnRyeUNvZGUnXSA9IHRoaXMuY291bnRyeUNvZGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdGVDb2RlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0ZUNvZGUnXSA9IHRoaXMuc3RhdGVDb2RlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ25hbWUnXSA9IHRoaXMubmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb24nXSA9IHRoaXMuZGVzY3JpcHRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGVyY2VudGFnZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncGVyY2VudGFnZSddID0gdGhpcy5wZXJjZW50YWdlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjY291bnRpbmdTeXN0ZW1JZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWNjb3VudGluZ1N5c3RlbUlkJ10gPSB0aGlzLmFjY291bnRpbmdTeXN0ZW1JZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0VGF4UmVxdWVzdEZpbHRlcnMgaW1wbGVtZW50cyBpLkxpc3RUYXhSZXF1ZXN0RmlsdGVyc0ludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGluY2x1ZGVBcmNoaXZlZDogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RUYXhSZXF1ZXN0RmlsdGVycyB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RUYXhSZXF1ZXN0RmlsdGVycygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdFRheFJlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmluY2x1ZGVBcmNoaXZlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaW5jbHVkZUFyY2hpdmVkJ10gPSB0aGlzLmluY2x1ZGVBcmNoaXZlZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRNdWx0aVRheFJlcXVlc3QgaW1wbGVtZW50cyBpLkdldE11bHRpVGF4UmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGlkczogc3RyaW5nW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRNdWx0aVRheFJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRNdWx0aVRheFJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldE11bHRpVGF4UmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkcyddID0gdGhpcy5pZHM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0TXVsdGlUYXhSZXNwb25zZSBpbXBsZW1lbnRzIGkuR2V0TXVsdGlUYXhSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdGF4UmF0ZXM6IFRheFJhdGVbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdldE11bHRpVGF4UmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRNdWx0aVRheFJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnRheFJhdGVzKSB7bS50YXhSYXRlcyA9IHByb3RvLnRheFJhdGVzLm1hcChUYXhSYXRlLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldE11bHRpVGF4UmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhSYXRlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50YXhSYXRlcyAhPT0gbnVsbCkge3RvUmV0dXJuWyd0YXhSYXRlcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50YXhSYXRlcyA/ICh0aGlzLnRheFJhdGVzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRheFJhdGVzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0TGluZUl0ZW0gaW1wbGVtZW50cyBpLkNhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0TGluZUl0ZW1JbnRlcmZhY2Uge1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGFtb3VudDogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1JlcXVlc3RMaW5lSXRlbSB7XG4gICAgICAgIGxldCBtID0gbmV3IENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0TGluZUl0ZW0oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uYW1vdW50KSB7bS5hbW91bnQgPSBwYXJzZUludChwcm90by5hbW91bnQsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1JlcXVlc3RMaW5lSXRlbUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hbW91bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Ftb3VudCddID0gdGhpcy5hbW91bnQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlTGluZUl0ZW1UYXhlcyBpbXBsZW1lbnRzIGkuQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlTGluZUl0ZW1UYXhlc0ludGVyZmFjZSB7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgdGF4YWJsZUFtb3VudDogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlTGluZUl0ZW1UYXhlcyB7XG4gICAgICAgIGxldCBtID0gbmV3IENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZUxpbmVJdGVtVGF4ZXMoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkNhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZUxpbmVJdGVtVGF4ZXNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGF4YWJsZUFtb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGF4YWJsZUFtb3VudCddID0gdGhpcy50YXhhYmxlQW1vdW50O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RUYXhSZXF1ZXN0IGltcGxlbWVudHMgaS5MaXN0VGF4UmVxdWVzdEludGVyZmFjZSB7XG4gICAgZmlsdGVyczogTGlzdFRheFJlcXVlc3RGaWx0ZXJzO1xuICAgIHBhZ2luZ09wdGlvbnM6IFBhZ2VkUmVxdWVzdE9wdGlvbnM7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0VGF4UmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RUYXhSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmZpbHRlcnMpIHttLmZpbHRlcnMgPSBMaXN0VGF4UmVxdWVzdEZpbHRlcnMuZnJvbVByb3RvKHByb3RvLmZpbHRlcnMpO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ09wdGlvbnMpIHttLnBhZ2luZ09wdGlvbnMgPSBQYWdlZFJlcXVlc3RPcHRpb25zLmZyb21Qcm90byhwcm90by5wYWdpbmdPcHRpb25zKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdFRheFJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maWx0ZXJzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmZpbHRlcnMgIT09IG51bGwpIHt0b1JldHVyblsnZmlsdGVycyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5maWx0ZXJzID8gKHRoaXMuZmlsdGVycyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5maWx0ZXJzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2luZ09wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucGFnaW5nT3B0aW9ucyAhPT0gbnVsbCkge3RvUmV0dXJuWydwYWdpbmdPcHRpb25zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBhZ2luZ09wdGlvbnMgPyAodGhpcy5wYWdpbmdPcHRpb25zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnBhZ2luZ09wdGlvbnM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdFRheFJlc3BvbnNlIGltcGxlbWVudHMgaS5MaXN0VGF4UmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRheFJhdGVzOiBUYXhSYXRlW107XG4gICAgcGFnaW5nTWV0YWRhdGE6IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RUYXhSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RUYXhSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50YXhSYXRlcykge20udGF4UmF0ZXMgPSBwcm90by50YXhSYXRlcy5tYXAoVGF4UmF0ZS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ01ldGFkYXRhKSB7bS5wYWdpbmdNZXRhZGF0YSA9IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YS5mcm9tUHJvdG8ocHJvdG8ucGFnaW5nTWV0YWRhdGEpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5MaXN0VGF4UmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhSYXRlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50YXhSYXRlcyAhPT0gbnVsbCkge3RvUmV0dXJuWyd0YXhSYXRlcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50YXhSYXRlcyA/ICh0aGlzLnRheFJhdGVzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRheFJhdGVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhZ2luZ01ldGFkYXRhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBhZ2luZ01ldGFkYXRhID8gKHRoaXMucGFnaW5nTWV0YWRhdGEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFnaW5nTWV0YWRhdGE7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGF4UmF0ZSBpbXBsZW1lbnRzIGkuVGF4UmF0ZUludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgICBzdGF0ZUNvZGU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBwZXJjZW50YWdlOiBudW1iZXI7XG4gICAgYWNjb3VudGluZ1N5c3RlbUlkOiBzdHJpbmc7XG4gICAgYXJjaGl2ZWQ6IERhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUYXhSYXRlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVGF4UmF0ZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5hcmNoaXZlZCkge20uYXJjaGl2ZWQgPSBuZXcgRGF0ZShwcm90by5hcmNoaXZlZCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRheFJhdGVJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvdW50cnlDb2RlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb3VudHJ5Q29kZSddID0gdGhpcy5jb3VudHJ5Q29kZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGF0ZUNvZGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N0YXRlQ29kZSddID0gdGhpcy5zdGF0ZUNvZGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wZXJjZW50YWdlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwZXJjZW50YWdlJ10gPSB0aGlzLnBlcmNlbnRhZ2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWNjb3VudGluZ1N5c3RlbUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhY2NvdW50aW5nU3lzdGVtSWQnXSA9IHRoaXMuYWNjb3VudGluZ1N5c3RlbUlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFyY2hpdmVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmFyY2hpdmVkICE9PSBudWxsKSB7dG9SZXR1cm5bJ2FyY2hpdmVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmFyY2hpdmVkID8gKHRoaXMuYXJjaGl2ZWQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYXJjaGl2ZWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlVGF4UmVxdWVzdCBpbXBsZW1lbnRzIGkuVXBkYXRlVGF4UmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgICBzdGF0ZUNvZGU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBwZXJjZW50YWdlOiBudW1iZXI7XG4gICAgYWNjb3VudGluZ1N5c3RlbUlkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBVcGRhdGVUYXhSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVXBkYXRlVGF4UmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVXBkYXRlVGF4UmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY291bnRyeUNvZGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvdW50cnlDb2RlJ10gPSB0aGlzLmNvdW50cnlDb2RlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXRlQ29kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhdGVDb2RlJ10gPSB0aGlzLnN0YXRlQ29kZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyduYW1lJ10gPSB0aGlzLm5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVzY3JpcHRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rlc2NyaXB0aW9uJ10gPSB0aGlzLmRlc2NyaXB0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBlcmNlbnRhZ2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3BlcmNlbnRhZ2UnXSA9IHRoaXMucGVyY2VudGFnZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hY2NvdW50aW5nU3lzdGVtSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FjY291bnRpbmdTeXN0ZW1JZCddID0gdGhpcy5hY2NvdW50aW5nU3lzdGVtSWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// API Service.
|
|
6
6
|
// *********************************
|
|
7
7
|
import { Injectable } from '@angular/core';
|
|
8
|
-
import { ArchiveTaxRequest, CalculateTaxRequest, CalculateTaxResponse, CreateTaxRequest, GetMultiTaxRequest, GetMultiTaxResponse, ListTaxRequest, ListTaxResponse, UpdateTaxRequest, } from './objects/';
|
|
8
|
+
import { ArchiveTaxRequest, CalculateLineItemTaxesRequest, CalculateLineItemTaxesResponse, CalculateTaxRequest, CalculateTaxResponse, CreateTaxRequest, GetMultiTaxRequest, GetMultiTaxResponse, ListTaxRequest, ListTaxResponse, UpdateTaxRequest, } from './objects/';
|
|
9
9
|
import { HttpHeaders, HttpClient } from '@angular/common/http';
|
|
10
10
|
import { HostService } from '../_generated/host.service';
|
|
11
11
|
import { map } from 'rxjs/operators';
|
|
@@ -31,6 +31,11 @@ export class TaxApiService {
|
|
|
31
31
|
return this.http.post(this._host + "/billing.v1.TaxService/Calculate", request.toApiJson(), this.apiOptions())
|
|
32
32
|
.pipe(map(resp => CalculateTaxResponse.fromProto(resp)));
|
|
33
33
|
}
|
|
34
|
+
calculateLineItems(r) {
|
|
35
|
+
const request = (r.toApiJson) ? r : new CalculateLineItemTaxesRequest(r);
|
|
36
|
+
return this.http.post(this._host + "/billing.v1.TaxService/CalculateLineItems", request.toApiJson(), this.apiOptions())
|
|
37
|
+
.pipe(map(resp => CalculateLineItemTaxesResponse.fromProto(resp)));
|
|
38
|
+
}
|
|
34
39
|
create(r) {
|
|
35
40
|
const request = (r.toApiJson) ? r : new CreateTaxRequest(r);
|
|
36
41
|
return this.http.post(this._host + "/billing.v1.TaxService/Create", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
|
|
@@ -60,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
|
|
|
60
65
|
type: Injectable,
|
|
61
66
|
args: [{ providedIn: 'root' }]
|
|
62
67
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HostService }]; } });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYmlsbGluZ19zZGsvc3JjL2xpYi9faW50ZXJuYWwvdGF4LmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxlQUFlLEVBQ2YsZ0JBQWdCLEdBQ3ZCLE1BQU0sWUFBWSxDQUFDO0FBWXBCLE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXZELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUduQyxNQUFNLE9BQU8sYUFBYTtJQUd0QixZQUFvQixJQUFnQixFQUFVLFdBQXdCO1FBQWxELFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUY5RCxVQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUM7SUFHaEQsQ0FBQztJQUVPLFVBQVU7UUFDZCxPQUFPO1lBQ0gsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO2dCQUNyQixjQUFjLEVBQUUsa0JBQWtCO2FBQ3JDLENBQUM7WUFDRixlQUFlLEVBQUUsSUFBSTtTQUN4QixDQUFDO0lBQ04sQ0FBQztJQUVELFNBQVMsQ0FBQyxDQUFxRDtRQUMzRCxNQUFNLE9BQU8sR0FBRyxDQUF1QixDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUF1QixDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0csT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBZ0MsSUFBSSxDQUFDLEtBQUssR0FBRyxrQ0FBa0MsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ3hJLElBQUksQ0FDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDcEQsQ0FBQztJQUNWLENBQUM7SUFDRCxNQUFNLENBQUMsQ0FBK0M7UUFDbEQsTUFBTSxPQUFPLEdBQUcsQ0FBb0IsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBb0IsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU8sSUFBSSxDQUFDLEtBQUssR0FBRywrQkFBK0IsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztJQUNoSixDQUFDO0lBQ0QsUUFBUSxDQUFDLENBQW1EO1FBQ3hELE1BQU0sT0FBTyxHQUFHLENBQXNCLENBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQXNCLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUErQixJQUFJLENBQUMsS0FBSyxHQUFHLGlDQUFpQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDdEksSUFBSSxDQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNuRCxDQUFDO0lBQ1YsQ0FBQztJQUNELE1BQU0sQ0FBQyxDQUErQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxDQUFvQixDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFvQixDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLCtCQUErQixFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO0lBQ2hKLENBQUM7SUFDRCxJQUFJLENBQUMsQ0FBMkM7UUFDNUMsTUFBTSxPQUFPLEdBQUcsQ0FBa0IsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBa0IsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUEyQixJQUFJLENBQUMsS0FBSyxHQUFHLDZCQUE2QixFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDOUgsSUFBSSxDQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDL0MsQ0FBQztJQUNWLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBaUQ7UUFDckQsTUFBTSxPQUFPLEdBQUcsQ0FBcUIsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBcUIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxnQ0FBZ0MsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztJQUNqSixDQUFDOzswR0EvQ1EsYUFBYTs4R0FBYixhQUFhLGNBREQsTUFBTTsyRkFDbEIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIEFQSSBTZXJ2aWNlLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICAgICAgQXJjaGl2ZVRheFJlcXVlc3QsXG4gICAgICAgIENhbGN1bGF0ZVRheFJlcXVlc3QsXG4gICAgICAgIENhbGN1bGF0ZVRheFJlc3BvbnNlLFxuICAgICAgICBDcmVhdGVUYXhSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aVRheFJlcXVlc3QsXG4gICAgICAgIEdldE11bHRpVGF4UmVzcG9uc2UsXG4gICAgICAgIExpc3RUYXhSZXF1ZXN0LFxuICAgICAgICBMaXN0VGF4UmVzcG9uc2UsXG4gICAgICAgIFVwZGF0ZVRheFJlcXVlc3QsXG59IGZyb20gJy4vb2JqZWN0cy8nO1xuaW1wb3J0IHtcbiAgICAgICAgQXJjaGl2ZVRheFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIENhbGN1bGF0ZVRheFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIENhbGN1bGF0ZVRheFJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVUYXhSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aVRheFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldE11bHRpVGF4UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIExpc3RUYXhSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBMaXN0VGF4UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZVRheFJlcXVlc3RJbnRlcmZhY2UsXG59IGZyb20gJy4vaW50ZXJmYWNlcy8nO1xuaW1wb3J0IHtIdHRwSGVhZGVycywgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0hvc3RTZXJ2aWNlfSBmcm9tICcuLi9fZ2VuZXJhdGVkL2hvc3Quc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVGF4QXBpU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfaG9zdCA9IHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgaG9zdFNlcnZpY2U6IEhvc3RTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcGlPcHRpb25zKCk6IHtoZWFkZXJzOiBIdHRwSGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFufSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlKHI6IENhbGN1bGF0ZVRheFJlcXVlc3QgfCBDYWxjdWxhdGVUYXhSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxDYWxjdWxhdGVUYXhSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q2FsY3VsYXRlVGF4UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDYWxjdWxhdGVUYXhSZXF1ZXN0PnIpIDogbmV3IENhbGN1bGF0ZVRheFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDYWxjdWxhdGVUYXhSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9DYWxjdWxhdGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBDYWxjdWxhdGVUYXhSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBjcmVhdGUocjogQ3JlYXRlVGF4UmVxdWVzdCB8IENyZWF0ZVRheFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlVGF4UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVUYXhSZXF1ZXN0PnIpIDogbmV3IENyZWF0ZVRheFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0NyZWF0ZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgZ2V0TXVsdGkocjogR2V0TXVsdGlUYXhSZXF1ZXN0IHwgR2V0TXVsdGlUYXhSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNdWx0aVRheFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aVRheFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TXVsdGlUYXhSZXF1ZXN0PnIpIDogbmV3IEdldE11bHRpVGF4UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpVGF4UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLlRheFNlcnZpY2UvR2V0TXVsdGlcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRNdWx0aVRheFJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHVwZGF0ZShyOiBVcGRhdGVUYXhSZXF1ZXN0IHwgVXBkYXRlVGF4UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxVcGRhdGVUYXhSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFVwZGF0ZVRheFJlcXVlc3Q+cikgOiBuZXcgVXBkYXRlVGF4UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLlRheFNlcnZpY2UvVXBkYXRlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBsaXN0KHI6IExpc3RUYXhSZXF1ZXN0IHwgTGlzdFRheFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPExpc3RUYXhSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdFRheFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TGlzdFRheFJlcXVlc3Q+cikgOiBuZXcgTGlzdFRheFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0VGF4UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLlRheFNlcnZpY2UvTGlzdFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IExpc3RUYXhSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBhcmNoaXZlKHI6IEFyY2hpdmVUYXhSZXF1ZXN0IHwgQXJjaGl2ZVRheFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8QXJjaGl2ZVRheFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8QXJjaGl2ZVRheFJlcXVlc3Q+cikgOiBuZXcgQXJjaGl2ZVRheFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0FyY2hpdmVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIFxufVxuIl19
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYmlsbGluZ19zZGsvc3JjL2xpYi9faW50ZXJuYWwvdGF4LmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLGlCQUFpQixFQUNqQiw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLGVBQWUsRUFDZixnQkFBZ0IsR0FDdkIsTUFBTSxZQUFZLENBQUM7QUFjcEIsT0FBTyxFQUFDLFdBQVcsRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBR25DLE1BQU0sT0FBTyxhQUFhO0lBR3RCLFlBQW9CLElBQWdCLEVBQVUsV0FBd0I7UUFBbEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRjlELFVBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQztJQUdoRCxDQUFDO0lBRU8sVUFBVTtRQUNkLE9BQU87WUFDSCxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3JCLGNBQWMsRUFBRSxrQkFBa0I7YUFDckMsQ0FBQztZQUNGLGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUM7SUFDTixDQUFDO0lBRUQsU0FBUyxDQUFDLENBQXFEO1FBQzNELE1BQU0sT0FB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QUMsQ0FBQyxDQUFDO1FBQzlGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTJCLElBQUksQ0FBQyxLQUFLLEdBQUcsNkJBQTZCLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUM5SCxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMvQyxDQUFDO0lBQ1YsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFpRDtRQUNyRCxNQUFNLE9BQU8sR0FBRyxDQUFxQixDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFxQixDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLGdDQUFnQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO0lBQ2pKLENBQUM7OzBHQXREUSxhQUFhOzhHQUFiLGFBQWEsY0FERCxNQUFNOzJGQUNsQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gQVBJIFNlcnZpY2UuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgICAgICBBcmNoaXZlVGF4UmVxdWVzdCxcbiAgICAgICAgQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1JlcXVlc3QsXG4gICAgICAgIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZSxcbiAgICAgICAgQ2FsY3VsYXRlVGF4UmVxdWVzdCxcbiAgICAgICAgQ2FsY3VsYXRlVGF4UmVzcG9uc2UsXG4gICAgICAgIENyZWF0ZVRheFJlcXVlc3QsXG4gICAgICAgIEdldE11bHRpVGF4UmVxdWVzdCxcbiAgICAgICAgR2V0TXVsdGlUYXhSZXNwb25zZSxcbiAgICAgICAgTGlzdFRheFJlcXVlc3QsXG4gICAgICAgIExpc3RUYXhSZXNwb25zZSxcbiAgICAgICAgVXBkYXRlVGF4UmVxdWVzdCxcbn0gZnJvbSAnLi9vYmplY3RzLyc7XG5pbXBvcnQge1xuICAgICAgICBBcmNoaXZlVGF4UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgQ2FsY3VsYXRlVGF4UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQ2FsY3VsYXRlVGF4UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIENyZWF0ZVRheFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldE11bHRpVGF4UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlUYXhSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTGlzdFRheFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIExpc3RUYXhSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgVXBkYXRlVGF4UmVxdWVzdEludGVyZmFjZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzLyc7XG5pbXBvcnQge0h0dHBIZWFkZXJzLCBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SG9zdFNlcnZpY2V9IGZyb20gJy4uL19nZW5lcmF0ZWQvaG9zdC5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBUYXhBcGlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9ob3N0ID0gdGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBob3N0U2VydmljZTogSG9zdFNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwaU9wdGlvbnMoKToge2hlYWRlcnM6IEh0dHBIZWFkZXJzLCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW59IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGUocjogQ2FsY3VsYXRlVGF4UmVxdWVzdCB8IENhbGN1bGF0ZVRheFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPENhbGN1bGF0ZVRheFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDYWxjdWxhdGVUYXhSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENhbGN1bGF0ZVRheFJlcXVlc3Q+cikgOiBuZXcgQ2FsY3VsYXRlVGF4UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENhbGN1bGF0ZVRheFJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0NhbGN1bGF0ZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IENhbGN1bGF0ZVRheFJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGNhbGN1bGF0ZUxpbmVJdGVtcyhyOiBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdCB8IENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0PnIpIDogbmV3IENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0NhbGN1bGF0ZUxpbmVJdGVtc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBjcmVhdGUocjogQ3JlYXRlVGF4UmVxdWVzdCB8IENyZWF0ZVRheFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlVGF4UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVUYXhSZXF1ZXN0PnIpIDogbmV3IENyZWF0ZVRheFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0NyZWF0ZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgZ2V0TXVsdGkocjogR2V0TXVsdGlUYXhSZXF1ZXN0IHwgR2V0TXVsdGlUYXhSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNdWx0aVRheFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aVRheFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TXVsdGlUYXhSZXF1ZXN0PnIpIDogbmV3IEdldE11bHRpVGF4UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpVGF4UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLlRheFNlcnZpY2UvR2V0TXVsdGlcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRNdWx0aVRheFJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHVwZGF0ZShyOiBVcGRhdGVUYXhSZXF1ZXN0IHwgVXBkYXRlVGF4UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxVcGRhdGVUYXhSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFVwZGF0ZVRheFJlcXVlc3Q+cikgOiBuZXcgVXBkYXRlVGF4UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLlRheFNlcnZpY2UvVXBkYXRlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBsaXN0KHI6IExpc3RUYXhSZXF1ZXN0IHwgTGlzdFRheFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPExpc3RUYXhSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdFRheFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TGlzdFRheFJlcXVlc3Q+cikgOiBuZXcgTGlzdFRheFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0VGF4UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLlRheFNlcnZpY2UvTGlzdFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IExpc3RUYXhSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBhcmNoaXZlKHI6IEFyY2hpdmVUYXhSZXF1ZXN0IHwgQXJjaGl2ZVRheFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8QXJjaGl2ZVRheFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8QXJjaGl2ZVRheFJlcXVlc3Q+cikgOiBuZXcgQXJjaGl2ZVRheFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0FyY2hpdmVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIFxufVxuIl19
|