taxtank-core 0.29.23 → 0.29.25

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.
@@ -1,4 +1,5 @@
1
1
  import { Collection } from '../collection';
2
+ import { ServicePriceCollection } from './service-price.collection';
2
3
  export class SubscriptionItemCollection extends Collection {
3
4
  get propertiesItem() {
4
5
  return this.find((item) => item.price.product.isProperties());
@@ -9,5 +10,8 @@ export class SubscriptionItemCollection extends Collection {
9
10
  hasProduct(product) {
10
11
  return !!this.findBy('price.product.id', product.id);
11
12
  }
13
+ getPrices() {
14
+ return new ServicePriceCollection(this.mapBy('price'));
15
+ }
12
16
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWl0ZW0uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLWl0ZW0uY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxVQUFtQztJQUNqRixJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBNkIsRUFBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBdUI7UUFDaEMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgU2VydmljZVByb2R1Y3QsIFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbT4ge1xuICBnZXQgcHJvcGVydGllc0l0ZW0oKTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHJldHVybiB0aGlzLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNQcm9wZXJ0aWVzKCkpO1xuICB9XG5cbiAgZ2V0IHByb3BlcnR5UXVhbnRpdHkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzSXRlbSA/IHRoaXMucHJvcGVydGllc0l0ZW0ucXVhbnRpdHkgOiAwO1xuICB9XG5cbiAgaGFzUHJvZHVjdChwcm9kdWN0OiBTZXJ2aWNlUHJvZHVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZmluZEJ5KCdwcmljZS5wcm9kdWN0LmlkJywgcHJvZHVjdC5pZCk7XG4gIH1cbn1cbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWl0ZW0uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLWl0ZW0uY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRWxFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxVQUFtQztJQUNqRixJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBNkIsRUFBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBdUI7UUFDaEMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VQcm9kdWN0LCBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1NlcnZpY2VQcmljZUNvbGxlY3Rpb259IGZyb20gJy4vc2VydmljZS1wcmljZS5jb2xsZWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbT4ge1xuICBnZXQgcHJvcGVydGllc0l0ZW0oKTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHJldHVybiB0aGlzLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNQcm9wZXJ0aWVzKCkpO1xuICB9XG5cbiAgZ2V0IHByb3BlcnR5UXVhbnRpdHkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzSXRlbSA/IHRoaXMucHJvcGVydGllc0l0ZW0ucXVhbnRpdHkgOiAwO1xuICB9XG5cbiAgaGFzUHJvZHVjdChwcm9kdWN0OiBTZXJ2aWNlUHJvZHVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZmluZEJ5KCdwcmljZS5wcm9kdWN0LmlkJywgcHJvZHVjdC5pZCk7XG4gIH1cblxuICBnZXRQcmljZXMoKTogU2VydmljZVByaWNlQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBTZXJ2aWNlUHJpY2VDb2xsZWN0aW9uKHRoaXMubWFwQnkoJ3ByaWNlJykpO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
1
  import { ObservableModel } from '../observable-model';
2
2
  export class ServiceSubscription extends ObservableModel {
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvTW9kZWxzL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFcEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7Q0FTdkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bSB9IGZyb20gJy4uLy4uL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlci91c2VyJztcbmltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIH0gZnJvbSAnLi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1pdGVtJztcbmltcG9ydCB7IFNlcnZpY2VQYXltZW50IH0gZnJvbSAnLi9zZXJ2aWNlLXBheW1lbnQnO1xuaW1wb3J0IHtPYnNlcnZhYmxlTW9kZWx9IGZyb20gJy4uL29ic2VydmFibGUtbW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgU2VydmljZVN1YnNjcmlwdGlvbiBleHRlbmRzIE9ic2VydmFibGVNb2RlbCB7XG4gIGlkPzogbnVtYmVyO1xuICBzdHJpcGVJZD86IHN0cmluZztcbiAgc3RhcnREYXRlPzogRGF0ZTtcbiAgZW5kRGF0ZT86IERhdGU7XG4gIHN0YXR1cz86IFNlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtO1xuICB1c2VyPzogVXNlcjtcbiAgaXRlbXM/OiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbVtdO1xuICBwYXltZW50cz86IFNlcnZpY2VQYXltZW50W107XG59XG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvTW9kZWxzL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFcEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7Q0FVdkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bSB9IGZyb20gJy4uLy4uL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlci91c2VyJztcbmltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIH0gZnJvbSAnLi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1pdGVtJztcbmltcG9ydCB7IFNlcnZpY2VQYXltZW50IH0gZnJvbSAnLi9zZXJ2aWNlLXBheW1lbnQnO1xuaW1wb3J0IHtPYnNlcnZhYmxlTW9kZWx9IGZyb20gJy4uL29ic2VydmFibGUtbW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgU2VydmljZVN1YnNjcmlwdGlvbiBleHRlbmRzIE9ic2VydmFibGVNb2RlbCB7XG4gIGlkPzogbnVtYmVyO1xuICBzdHJpcGVJZD86IHN0cmluZztcbiAgc3RhcnREYXRlPzogRGF0ZTtcbiAgZW5kRGF0ZT86IERhdGU7XG4gIHN0YXR1cz86IFNlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtO1xuICB1c2VyPzogVXNlcjtcbiAgaXRlbXM/OiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbVtdO1xuICBwYXltZW50cz86IFNlcnZpY2VQYXltZW50W107XG4gIGlzQ2FuY2VsQXRQZXJpb2RFbmQ/OiBib29sZWFuO1xufVxuIl19
@@ -104,7 +104,8 @@ export const ENDPOINTS = {
104
104
  PROPERTIES_SALES_GET: new Endpoint('GET', '\\/properties\\/sales'),
105
105
  PROPERTIES_SUGGESTIONS_GET: new Endpoint('GET', '/property\\/\\w+\\/v2\\/.*$'),
106
106
  PROPERTIES_VALUATIONS_DOCUMENTS_POST: new Endpoint('POST', '\\/properties\\/\\d+\\/valuations\\/\\d+\\/documents'),
107
- PRORATION_COST_POST: new Endpoint('POST', '\\/subscriptions\\/proration-cost'),
107
+ // @TODO rename
108
+ PRORATION_COST_POST: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/proration-cost'),
108
109
  SALARY_FORECAST_GET: new Endpoint('GET', '\\/salary-forecasts'),
109
110
  SALARY_FORECAST_POST: new Endpoint('POST', '\\/salary-forecasts'),
110
111
  SALARY_FORECAST_PUT: new Endpoint('PUT', '\\/salary-forecasts'),
@@ -112,11 +113,9 @@ export const ENDPOINTS = {
112
113
  SERVICE_PRODUCTS_GET: new Endpoint('GET', '\\/service-products'),
113
114
  SERVICE_PAYMENTS_GET: new Endpoint('GET', '\\/service-payments'),
114
115
  SERVICE_SUBSCRIPTIONS_GET: new Endpoint('GET', '\\/service-subscriptions'),
116
+ SERVICE_SUBSCRIPTIONS_CANCEL: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/cancel'),
115
117
  SERVICE_PAYMENT_INVOICE_URL_GET: new Endpoint('GET', '\\/service-payments\\/\\d+\\/invoice-url'),
116
- STRIPE_BILLING_PORTAL_GET: new Endpoint('GET', '\\/stripe\\/billing-portal-session'),
117
- STRIPE_CHECKOUT_SESSION_POST: new Endpoint('POST', '\\/stripe\\/checkout-session'),
118
- SUBSCRIPTION_LAST_GET: new Endpoint('GET', '\\/subscriptions\\/last'),
119
- SUBSCRIPTION_ITEMS_PUT: new Endpoint('PUT', '\\/subscriptions\\/items'),
118
+ SUBSCRIPTION_ITEMS_PUT: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/items'),
120
119
  SOLE_BUSINESSES_GET: new Endpoint('GET', '\\/sole-businesses'),
121
120
  SOLE_BUSINESSES_POST: new Endpoint('POST', '\\/sole-businesses'),
122
121
  SOLE_BUSINESSES_PUT: new Endpoint('PUT', '\\/sole-businesses\\/\\d+'),
@@ -191,4 +190,4 @@ export const ENDPOINTS = {
191
190
  VEHICLE_CLAIM_DETAILS_POST: new Endpoint('POST', '\\/vehicle-claim-details'),
192
191
  VEHICLE_CLAIM_DETAILS_PUT: new Endpoint('PUT', '\\/vehicle-claim-details\\/\\d+'),
193
192
  };
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnRzLmNvbnN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9lbmRwb2ludC9lbmRwb2ludHMuY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBOEI7SUFDbEQsVUFBVSxFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSx5QkFBeUIsQ0FBQztJQUUxRCxTQUFTLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQztJQUMxQyxpQkFBaUIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUM7SUFDMUQsa0JBQWtCLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO0lBQzVELGlCQUFpQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSx5QkFBeUIsQ0FBQztJQUNqRSxvQkFBb0IsRUFBRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUM7SUFDakUsb0JBQW9CLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDO0lBQ2hFLHFCQUFxQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxzQkFBc0IsQ0FBQztJQUNsRSx3QkFBd0IsRUFBRSxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQUM7SUFDL0UsNkJBQTZCLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLHNDQUFzQyxDQUFDO0lBQzNGLGtCQUFrQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxxQkFBcUIsQ0FBQztJQUM5RCxlQUFlLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLG1CQUFt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QUFDO0lBQ3ZELGtCQUFrQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQztJQUM1RCxtQkFBbUIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUM7SUFDOUQsa0JBQWtCLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLDBCQUEwQixDQUFDO0lBQ25FLG9CQUFvQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSx3QkFBd0IsQ0FBQztJQUNuRSxxQkFBcUIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLENBQUM7SUFDckUsb0JBQW9CLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLCtCQUErQixDQUFDO0lBQzFFLHVCQUF1QixFQUFFLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRSwrQkFBK0IsQ0FBQztJQUNoRix5QkFBeUIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsMEJBQTBCLENBQUM7SUFDMUUsMEJBQTBCLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLDBCQUEwQixDQUFDO0lBQzVFLHlCQUF5QixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxpQ0FBaUMsQ0FBQztDQUNsRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5kcG9pbnQgfSBmcm9tICcuL2VuZHBvaW50JztcclxuXHJcbi8qKlxyXG4gKiBMaXN0IG9mIGFsbCBhcHAgZW5kcG9pbnRzXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgRU5EUE9JTlRTOiB7W2tleTogc3RyaW5nXTogRW5kcG9pbnR9ID0ge1xyXG4gIEFTU0VUU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvYXNzZXRzXFxcXC9cXC5cXCpcXFxcL1xcXFxkKycpLFxyXG5cclxuICBCQU5LU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvYmFua3MnKSxcclxuICBCQU5LX0FDQ09VTlRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9iYW5rLWFjY291bnRzJyksXHJcbiAgQkFOS19BQ0NPVU5UU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9iYW5rLWFjY291bnRzJyksXHJcbiAgQkFOS19BQ0NPVU5UU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvYmFuay1hY2NvdW50c1xcXFwvXFxcXGQrJyksXHJcbiAgQkFOS19DT05ORUNUSU9OX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2JhbmstY29ubmVjdGlvbnMnKSxcclxuICBCQU5LX0NPTk5FQ1RJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9iYW5rLWNvbm5lY3Rpb25zJyksXHJcbiAgQkFOS19UUkFOU0FDVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2JhbmstdHJhbnNhY3Rpb25zJyksXHJcbiAgQkFOS19UUkFOU0FDVElPTlNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL2JhbmstdHJhbnNhY3Rpb25zXFxcXC9cXFxcZCsnKSxcclxuICBCQU5LX1RSQU5TQUNUSU9OU19JTVBPUlRfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvYmFuay10cmFuc2FjdGlvbnNcXFxcL1xcXFxkK1xcXFwvaW1wb3J0JyksXHJcbiAgQkFTSVFfQUNDT1VOVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2Jhc2lxXFxcXC9hY2NvdW50cycpLFxyXG4gIEJBU0lRX1RPS0VOX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9iYXNpcVxcXFwvdG9rZW5zJyksXHJcblxyXG4gIEJPUlJPV0lOR19FWFBFTlNFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvYm9ycm93aW5nLWV4cGVuc2VzJyksXHJcblxyXG4gIENIQVJUU19JTkNPTUVfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2NoYXJ0c1xcXFwvXFxcXGluY29tZXMnKSxcclxuICBDSEFSVFNfRVhQRU5TRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2NoYXJ0c1xcXFwvXFxcXGV4cGVuc2VzJyksXHJcbiAgQ0hBUlRfQUNDT1VOVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2NoYXJ0LWFjY291bnRzJyksXHJcbiAgQ0xJRU5UU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvY2xpZW50cycpLFxyXG4gIENMSUVOVFNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2NsaWVudHMnKSxcclxuICBDTElFTlRTX0VYQ0xVREVfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2NsaWVudHNcXFxcL1xcXFxkK1xcXFwvZXhjbHVkZScpLFxyXG4gIENMSUVOVFNfSU5WSVRFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvY2xpZW50c1xcXFwvXFxcXGludml0ZXMnKSxcclxuICBDTElFTlRTX0lOVklURVNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvY2xpZW50c1xcXFwvXFxcXGludml0ZXMnKSxcclxuICBDTElFTlRTX0lOVklURVNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL2NsaWVudHNcXFxcL1xcXFxpbnZpdGVzXFxcXC9cXFxcZCsnKSxcclxuICBDTElFTlRTX0lOVklURVNfQUNDRVBUX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2NsaWVudHNcXFxcL1xcXFxpbnZpdGVzXFxcXC9cXFxcZCtcXFxcL2FjY2VwdCcpLFxyXG4gIENMSUVOVFNfSU5WSVRFU19SRUpFQ1RfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvY2xpZW50c1xcXFwvXFxcXGludml0ZXNcXFxcL1xcXFxkK1xcXFwvcmVqZWN0JyksXHJcbiAgQ0xJRU5UU19JTlZJVEVTX1JFU0VORF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9jbGllbnRzXFxcXC9cXFxcaW52aXRlc1xcXFwvXFxcXGQrXFxcXC9yZXNlbmQnKSxcclxuICBDTElFTlRfTU9WRU1FTlRTX0NMT1NFOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2NsaWVudC1tb3ZlbWVudHNcXFxcL1xcXFxkK1xcXFwvY2xvc2UnKSxcclxuICBDTElFTlRfTU9WRU1FTlRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9jbGllbnQtbW92ZW1lbnRzJyksXHJcbiAgQ0xJRU5UX01PVkVNRU5UU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9jbGllbnQtbW92ZW1lbnRzJyksXHJcbiAgQ09VTlRSSUVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9jb3VudHJpZXMnKSxcclxuICBDT1JFTE9HSUNfVE9LRU5fR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICcvYWNjZXNzXFxcXC9vYXV0aFxcXFwvdG9rZW4uKiQnKSxcclxuXHJcbiAgREVQUkVDSUFUSU9OU19PUEVOSU5HX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9kZXByZWNpYXRpb25zXFxcXC9cXFxcb3BlbmluZy1iYWxhbmNlXFwuXFwqJyksXHJcbiAgREVQUkVDSUFUSU9OU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvZGVwcmVjaWF0aW9ucycpLFxyXG4gIERFUFJFQ0lBVElPTlNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZGVwcmVjaWF0aW9ucycpLFxyXG4gIERFUFJFQ0lBVElPTlNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2RlcHJlY2lhdGlvbnNcXFxcL1xcXFxkKycpLFxyXG4gIERFUFJFQ0lBVElPTlNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL2RlcHJlY2lhdGlvbnNcXFxcL1xcXFxkKycpLFxyXG4gIERFUFJFQ0lBVElPTl9SRUNFSVBUU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9kZXByZWNpYXRpb25zXFxcXC9cXFxcZCtcXFxcL3JlY2VpcHRzJyksXHJcbiAgREVQUkVDSUFUSU9OX1JFQ0VJUFRTX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9kZXByZWNpYXRpb25zXFxcXC9cXFxcZCtcXFxcL3JlY2VpcHRzXFxcXC9cXFxcZCsnKSxcclxuXHJcbiAgRU1QTE9ZRUVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9lbXBsb3llZXMnKSxcclxuICBFTVBMT1lFRVNfSU5WSVRFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvZW1wbG95ZWVzXFxcXC9cXFxcaW52aXRlcycpLFxyXG4gIEVNUExPWUVFU19JTlZJVEVTX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9lbXBsb3llZXNcXFxcL1xcXFxpbnZpdGVzXFxcXC9cXFxcZCsnKSxcclxuICBFTVBMT1lFRVNfSU5WSVRFX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2VtcGxveWVlc1xcXFwvXFxcXGludml0ZXMnKSxcclxuICBFTVBMT1lFRVNfSU5WSVRFU19SRUpFQ1RfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZW1wbG95ZWVzXFxcXC9cXFxcaW52aXRlc1xcXFwvXFxcXGQrXFxcXC9cXFxccmVqZWN0JyksXHJcbiAgRU1QTE9ZRUVTX0lOVklURVNfUkVTRU5EX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2VtcGxveWVlc1xcXFwvXFxcXGludml0ZXNcXFxcL1xcXFxkK1xcXFwvXFxcXHJlc2VuZCcpLFxyXG5cclxuICBGQUNFQk9PS19MT0dJTl9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC91c2Vyc1xcXFwvYXV0aGVudGljYXRpb25cXFxcL2ZhY2Vib29rJyksXHJcbiAgRklSTV9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvZmlybXMnKSxcclxuICBGSVJNX0NVUlJFTlRfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2Zpcm1zXFxcXC9jdXJyZW50JyksXHJcbiAgRklSTV9DVVJSRU5UX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9maXJtc1xcXFwvY3VycmVudFxcLlxcKicpLFxyXG4gIEZJUk1fSU5WSVRFX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2Zpcm1zXFxcXC9pbnZpdGUnKSxcclxuICBGSVJNX1JFR0lTVFJBVElPTl9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9maXJtc1xcXFwvcmVnaXN0cmF0aW9uJyksXHJcbiAgRklSTV9VUERBVEVfUEhPVE9fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZmlybXNcXFxcL3Bob3RvXFwuXFwqJyksXHJcbiAgRk9MREVSU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvZm9sZGVycycpLFxyXG4gIEZPTERFUlNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZm9sZGVycycpLFxyXG4gIEZPTERFUlNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2ZvbGRlcnNcXFxcL1xcXFxkKycpLFxyXG4gIEZPTERFUlNfRE9DVU1FTlRTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2ZvbGRlcnNcXFxcL1xcXFxkK1xcXFwvZG9jdW1lbnRzJyksXHJcbiAgRk9MREVSU19ET0NVTUVOVFNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2ZvbGRlcnNcXFxcL1xcXFxkK1xcXFwvZG9jdW1lbnRzXFxcXC9cXFxcZCsnKSxcclxuXHJcbiAgSU5DT01FX1NPVVJDRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2luY29tZS1zb3VyY2VzJyksXHJcbiAgSU5DT01FX1NPVVJDRVNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvaW5jb21lLXNvdXJjZXMnKSxcclxuICBJTkNPTUVfU09VUkNFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvaW5jb21lLXNvdXJjZXMnKSxcclxuICBJTkNPTUVfU09VUkNFU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvaW5jb21lLXNvdXJjZXNcXFxcL1xcXFxkKycpLFxyXG4gIElOQ09NRV9TT1VSQ0VfRk9SRUNBU1RfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2luY29tZS1zb3VyY2UtZm9yZWNhc3RzJyksXHJcbiAgSU5DT01FX1NPVVJDRV9GT1JFQ0FTVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9pbmNvbWUtc291cmNlLWZvcmVjYXN0cycpLFxyXG4gIElOQ09NRV9TT1VSQ0VfRk9SRUNBU1RfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2luY29tZS1zb3VyY2UtZm9yZWNhc3RzJyksXHJcbiAgSU5DT01FX1NPVVJDRV9GT1JFQ0FTVF9ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvaW5jb21lLXNvdXJjZS1mb3JlY2FzdHNcXFxcL1xcXFxkKycpLFxyXG4gIElOQ09NRV9TT1VSQ0VfVFlQRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2luY29tZS1zb3VyY2UtdHlwZXMnKSxcclxuXHJcbiAgTE9BTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2JhbmstYWNjb3VudHNcXFxcL2xvYW5zJyksXHJcbiAgTE9BTlNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvYmFuay1hY2NvdW50c1xcXFwvbG9hbnMnKSxcclxuICBMT0FOU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvYmFuay1hY2NvdW50c1xcXFwvbG9hbnMvXFxcXGQrJyksXHJcbiAgTE9BTlNfUEFZT1VUX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2xvYW5zXFxcXC9cXFxcZCtcXFxcL3BheW91dCcpLFxyXG4gIExPQU5TX1BBWU9VVF9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvbG9hbnNcXFxcL1xcXFxkK1xcXFwvcGF5b3V0XFxcXC9cXFxcZCsnKSxcclxuICBMT0FOU19QQVlPVVRfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL2xvYW5zXFxcXC9cXFxcZCtcXFxcL3BheW91dFxcXFwvXFxcXGQrJyksXHJcbiAgTE9BTlNfQ0FMQ1VMQVRJT05fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvYmFuay1hY2NvdW50c1xcXFwvbG9hbnNcXFxcL2NhbGN1bGF0aW9uJyksXHJcbiAgTE9HSU5fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvbG9naW4nKSxcclxuXHJcbiAgTk9USUZJQ0FUSU9OU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc2VydmljZS1ub3RpZmljYXRpb25zJyksXHJcblxyXG4gIE9DQ1VQQVRJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9vY2N1cGF0aW9ucycpLFxyXG5cclxuICBQUk9QRVJUSUVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9wcm9wZXJ0aWVzJyksXHJcbiAgUFJPUEVSVElFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9wcm9wZXJ0aWVzJyksXHJcbiAgUFJPUEVSVFlfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3Byb3BlcnRpZXMvXFxcXGQrJyksXHJcbiAgUFJPUEVSVElFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllcycpLFxyXG4gIFBST1BFUlRJRVNfQ0FURUdPUklFU19FUVVJVFlfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL2NhdGVnb3JpZXNcXFxcL2VxdWl0eScpLFxyXG4gIFBST1BFUlRJRVNfQ0FURUdPUklFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvY2F0ZWdvcmllcycpLFxyXG4gIFBST1BFUlRJRVNfQ0FURUdPUklFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvY2F0ZWdvcmllc1xcXFwvXFxcXGQrJyksXHJcbiAgUFJPUEVSVElFU19DQVRFR09SSUVTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL2NhdGVnb3JpZXMnKSxcclxuICBQUk9QRVJUSUVTX0NBVEVHT1JJRVNfTU9WRU1FTlRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL2NhdGVnb3J5LW1vdmVtZW50cycpLFxyXG4gIFBST1BFUlRJRVNfQ0FURUdPUllfTU9WRU1FTlRTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvY2F0ZWdvcnktbW92ZW1lbnRzJyksXHJcbiAgUFJPUEVSVElFU19DQVRFR09SWV9NT1ZFTUVOVFNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvY2F0ZWdvcnktbW92ZW1lbnRzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX1NIQVJFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvc2hhcmVzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX1NIQVJFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvc2hhcmVzJyksXHJcbiAgUFJPUEVSVElFU19TSEFSRVNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvc2hhcmVzJyksXHJcbiAgUFJPUEVSVElFU19ERUFDVElWQVRFX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL2RlYWN0aXZhdGUnKSxcclxuICBQUk9QRVJUSUVTX0RFUFJFQ0lBVElPTl9DQVBJVEFMX1BST0pFQ1RfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvZGVwcmVjaWF0aW9uLWNhcGl0YWwtcHJvamVjdHMnKSxcclxuICBQUk9QRVJUSUVTX0RFUFJFQ0lBVElPTl9DQVBJVEFMX1BST0pFQ1RfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9kZXByZWNpYXRpb24tY2FwaXRhbC1wcm9qZWN0cycpLFxyXG4gIFBST1BFUlRJRVNfREVQUkVDSUFUSU9OX0NBUElUQUxfUFJPSkVDVF9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9kZXByZWNpYXRpb24tY2FwaXRhbC1wcm9qZWN0c1xcXFwvXFxcXGQrJyksXHJcbiAgUFJPUEVSVElFU19ERVBSRUNJQVRJT05fQ0FQSVRBTF9QUk9KRUNUX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL2RlcHJlY2lhdGlvbi1jYXBpdGFsLXByb2plY3RzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX0RPQ1VNRU5UU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvZG9jdW1lbnRzJyksXHJcbiAgUFJPUEVSVElFU19ET0NVTUVOVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9kb2N1bWVudHMnKSxcclxuICBQUk9QRVJUSUVTX0RPQ1VNRU5UU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvZG9jdW1lbnRzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX0RPQ1VNRU5UU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvZG9jdW1lbnRzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX1BIT1RPX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvcGhvdG9cXC5cXConKSxcclxuICBQUk9QRVJUSUVTX1NBTEVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9zYWxlcycpLFxyXG4gIFBST1BFUlRJRVNfU1VHR0VTVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICcvcHJvcGVydHlcXFxcL1xcXFx3K1xcXFwvdjJcXFxcLy4qJCcpLFxyXG4gIFBST1BFUlRJRVNfVkFMVUFUSU9OU19ET0NVTUVOVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC92YWx1YXRpb25zXFxcXC9cXFxcZCtcXFxcL2RvY3VtZW50cycpLFxyXG5cclxuICBQUk9SQVRJT05fQ09TVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zdWJzY3JpcHRpb25zXFxcXC9wcm9yYXRpb24tY29zdCcpLFxyXG5cclxuICBTQUxBUllfRk9SRUNBU1RfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NhbGFyeS1mb3JlY2FzdHMnKSxcclxuICBTQUxBUllfRk9SRUNBU1RfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc2FsYXJ5LWZvcmVjYXN0cycpLFxyXG4gIFNBTEFSWV9GT1JFQ0FTVF9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc2FsYXJ5LWZvcmVjYXN0cycpLFxyXG4gIFNFUlZJQ0VfUFJJQ0VTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zZXJ2aWNlLXByaWNlcycpLFxyXG4gIFNFUlZJQ0VfUFJPRFVDVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NlcnZpY2UtcHJvZHVjdHMnKSxcclxuICBTRVJWSUNFX1BBWU1FTlRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zZXJ2aWNlLXBheW1lbnRzJyksXHJcbiAgU0VSVklDRV9TVUJTQ1JJUFRJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zZXJ2aWNlLXN1YnNjcmlwdGlvbnMnKSxcclxuICBTRVJWSUNFX1BBWU1FTlRfSU5WT0lDRV9VUkxfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NlcnZpY2UtcGF5bWVudHNcXFxcL1xcXFxkK1xcXFwvaW52b2ljZS11cmwnKSxcclxuICBTVFJJUEVfQklMTElOR19QT1JUQUxfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3N0cmlwZVxcXFwvYmlsbGluZy1wb3J0YWwtc2Vzc2lvbicpLFxyXG4gIFNUUklQRV9DSEVDS09VVF9TRVNTSU9OX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3N0cmlwZVxcXFwvY2hlY2tvdXQtc2Vzc2lvbicpLFxyXG4gIFNVQlNDUklQVElPTl9MQVNUX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zdWJzY3JpcHRpb25zXFxcXC9sYXN0JyksXHJcbiAgU1VCU0NSSVBUSU9OX0lURU1TX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9zdWJzY3JpcHRpb25zXFxcXC9pdGVtcycpLFxyXG5cclxuICBTT0xFX0JVU0lORVNTRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtYnVzaW5lc3NlcycpLFxyXG4gIFNPTEVfQlVTSU5FU1NFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWJ1c2luZXNzZXMnKSxcclxuICBTT0xFX0JVU0lORVNTRVNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NvbGUtYnVzaW5lc3Nlc1xcXFwvXFxcXGQrJyksXHJcbiAgU09MRV9CVVNJTkVTU19MT1NTRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtYnVzaW5lc3MtbG9zc2VzJyksXHJcbiAgU09MRV9CVVNJTkVTU19MT1NTRVNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc29sZS1idXNpbmVzcy1sb3NzZXMnKSxcclxuICBTT0xFX0JVU0lORVNTX0xPU1NFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1idXNpbmVzcy1sb3NzZXNcXFxcL1xcXFxkKycpLFxyXG4gIFNPTEVfQlVTSU5FU1NfTE9TU19PRkZTRVRfUlVMRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtYnVzaW5lc3MtbG9zcy1vZmZzZXQtcnVsZXMnKSxcclxuICBTT0xFX0JVU0lORVNTX0xPR09fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc29sZS1idXNpbmVzc2VzXFxcXC9cXFxcZCtcXFxcL2xvZ28nKSxcclxuXHJcbiAgU09MRV9DT05UQUNUU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc29sZS1jb250YWN0cycpLFxyXG4gIFNPTEVfQ09OVEFDVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc29sZS1jb250YWN0cycpLFxyXG4gIFNPTEVfQ09OVEFDVFNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NvbGUtY29udGFjdHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBCVVNJTkVTU19BQ1RJVklUSUVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zb2xlLWJ1c2luZXNzLWFjdGl2aXRpZXMnKSxcclxuXHJcbiAgU09MRV9ERVBSRUNJQVRJT05fTUVUSE9EU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc29sZS1kZXByZWNpYXRpb24tbWV0aG9kcycpLFxyXG4gIFNPTEVfREVQUkVDSUFUSU9OX01FVEhPRFNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NvbGUtZGVwcmVjaWF0aW9uLW1ldGhvZHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBTT0xFX0RFVEFJTFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtZGV0YWlscycpLFxyXG4gIFNPTEVfREVUQUlMU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1kZXRhaWxzXFxcXC9cXFxcZCsnKSxcclxuXHJcbiAgU09MRV9GT1JFQ0FTVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc29sZS1mb3JlY2FzdHMnKSxcclxuICBTT0xFX0ZPUkVDQVNUU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1mb3JlY2FzdHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBTT0xFX0lOVk9JQ0VTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zb2xlLWludm9pY2VzJyksXHJcbiAgU09MRV9JTlZPSUNFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWludm9pY2VzJyksXHJcbiAgU09MRV9JTlZPSUNFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1pbnZvaWNlc1xcXFwvXFxcXGQrJyksXHJcbiAgU09MRV9JTlZPSUNFU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvc29sZS1pbnZvaWNlc1xcXFwvXFxcXGQrJyksXHJcbiAgU09MRV9JTlZPSUNFU19FTUFJTF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWludm9pY2VzXFxcXC9cXFxcZCtcXFxcL3NlbmQnKSxcclxuICBTT0xFX0lOVk9JQ0VfVEVNUExBVEVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zb2xlLWludm9pY2UtdGVtcGxhdGVzJyksXHJcbiAgU09MRV9JTlZPSUNFX1RFTVBMQVRFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWludm9pY2UtdGVtcGxhdGVzJyksXHJcbiAgU09MRV9JTlZPSUNFX1RFTVBMQVRFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1pbnZvaWNlLXRlbXBsYXRlc1xcXFwvXFxcXGQrJyksXHJcbiAgU09MRV9JTlZPSUNFX1RFTVBMQVRFU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvc29sZS1pbnZvaWNlLXRlbXBsYXRlc1xcXFwvXFxcXGQrJyksXHJcblxyXG4gIFRBWF9FWEVNUFRJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC90YXgtZXhlbXB0aW9ucycpLFxyXG5cclxuICBUQVhfQ0FMQ1VMQVRJT05fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdGF4LWNhbGN1bGF0aW9uJyksXHJcbiAgVEFYX1JFVklFV1NfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3RheC1yZXZpZXdzJyksXHJcbiAgVEFYX1JFVklFV1NfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3RheC1yZXZpZXdzXFxcXC9cXFxcZCsnKSxcclxuICBUQVhfUkVWSUVXU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC90YXgtcmV2aWV3cycpLFxyXG4gIFRBWF9SRVZJRVdTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC90YXgtcmV2aWV3c1xcXFwvXFxcXGQrJyksXHJcbiAgVEFYX1NVTU1BUllfQUNUVUFMX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC90YXgtc3VtbWFyeVxcXFwvYWN0dWFscycpLFxyXG4gIFRBWF9TVU1NQVJZX0ZPUkVDQVNUX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC90YXgtc3VtbWFyeVxcXFwvZm9yZWNhc3RzJyksXHJcbiAgVFJBTlNBQ1RJT05fREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3RyYW5zYWN0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgVFJBTlNBQ1RJT05fUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3RyYW5zYWN0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgVFJBTlNBQ1RJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC90cmFuc2FjdGlvbnMnKSxcclxuICBUUkFOU0FDVElPTlNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdHJhbnNhY3Rpb25zJyksXHJcbiAgVFJBTlNBQ1RJT05TX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC90cmFuc2FjdGlvbnMnKSxcclxuICBUUkFOU0FDVElPTlNfQUxMT0NBVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3RyYW5zYWN0aW9ucy1hbGxvY2F0aW9ucycpLFxyXG4gIFRSQU5TQUNUSU9OU19BTExPQ0FUSU9OU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC90cmFuc2FjdGlvbnMtYWxsb2NhdGlvbnMnKSxcclxuICBUUkFOU0FDVElPTlNfQUxMT0NBVElPTlNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3RyYW5zYWN0aW9ucy1hbGxvY2F0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgVFJBTlNBQ1RJT05fUkVDRUlQVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdHJhbnNhY3Rpb25zXFxcXC9cXFxcZCtcXFxcL3JlY2VpcHRzJyksXHJcbiAgVFJBTlNBQ1RJT05fUkVDRUlQVFNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3RyYW5zYWN0aW9uc1xcXFwvXFxcXGQrXFxcXC9yZWNlaXB0c1xcXFwvXFxcXGQrJyksXHJcblxyXG4gIFVTRVJfQ09ORklSTUFUSU9OX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3VzZXJzXFxcXC9jb25maXJtYXRpb24nKSxcclxuICBVU0VSX0NPTkZJUk1BVElPTl9SRVNFTkRfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdXNlcnNcXFxcL2NvbmZpcm1hdGlvblxcXFwvcmVzZW5kJyksXHJcbiAgVVNFUl9DVVJSRU5UX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC91c2Vyc1xcXFwvY3VycmVudCcpLFxyXG4gIFVTRVJfQ1VSUkVOVF9QQVNTV09SRF9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvdXNlcnNcXFxcL2N1cnJlbnRcXFxcL3Bhc3N3b3JkXFwuXFwqJyksXHJcbiAgVVNFUl9FVkVOVF9TRVRUSU5HU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdXNlci1ldmVudC1zZXR0aW5ncycpLFxyXG4gIFVTRVJfRVZFTlRfVFlQRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3VzZXItZXZlbnQtdHlwZXMnKSxcclxuICBVU0VSX0lOVklURV9ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvdXNlcnNcXFxcL2ludml0ZVxcXFwvXFxcXGQrJyksXHJcbiAgVVNFUl9JTlZJVEVfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdXNlcnNcXFxcL2ludml0ZScpLFxyXG4gIFVTRVJfSU5WSVRFX1JFU0VORF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC91c2Vyc1xcXFwvaW52aXRlL1xcXFxkK1xcXFwvcmVzZW5kJyksXHJcbiAgVVNFUl9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvdXNlcnNcXFxcL1xcXFxkKycpLFxyXG4gIFVTRVJfUkVHSVNUUkFUSU9OX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3VzZXJzXFxcXC9yZWdpc3RyYXRpb24nKSxcclxuICBVU0VSX1JFU0VUX1BBU1NXT1JEX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC91c2Vyc1xcXFwvcmVzZXQtcGFzc3dvcmQnKSxcclxuICBVU0VSX1NFQVJDSF9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdXNlcnNcXFxcL3NlYXJjaFxcLlxcKicpLFxyXG4gIFVTRVJfVVBEQVRFX1BIT1RPX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3VzZXJzXFxcXC9waG90b1xcLlxcKicpLFxyXG4gIFVTRVJfU1RBVFVTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC91c2Vyc1xcXFwvc3RhdHVzJyksXHJcblxyXG4gIFZFSElDTEVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC92ZWhpY2xlcycpLFxyXG4gIFZFSElDTEVTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3ZlaGljbGVzJyksXHJcbiAgVkVISUNMRVNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3ZlaGljbGVzXFxcXC9cXFxcZCsnKSxcclxuICBWRUhJQ0xFX0NMQUlNU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdmVoaWNsZS1jbGFpbXMnKSxcclxuICBWRUhJQ0xFX0NMQUlNU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC92ZWhpY2xlLWNsYWltcycpLFxyXG4gIFZFSElDTEVfQ0xBSU1TX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC92ZWhpY2xlLWNsYWltc1xcXFwvXFxcXGQrJyksXHJcbiAgVkVISUNMRV9MT0dCT09LU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdmVoaWNsZXNcXFxcL2xvZ2Jvb2tzJyksXHJcbiAgVkVISUNMRV9MT0dCT09LU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC92ZWhpY2xlc1xcXFwvbG9nYm9va3MnKSxcclxuICBWRUhJQ0xFX0xPR0JPT0tTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC92ZWhpY2xlc1xcXFwvbG9nYm9va3NcXFxcL1xcXFxkKycpLFxyXG4gIFZFSElDTEVfTE9HQk9PS1NfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3ZlaGljbGVzXFxcXC9sb2dib29rc1xcXFwvXFxcXGQrJyksXHJcbiAgVkVISUNMRV9DTEFJTV9ERVRBSUxTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC92ZWhpY2xlLWNsYWltLWRldGFpbHMnKSxcclxuICBWRUhJQ0xFX0NMQUlNX0RFVEFJTFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdmVoaWNsZS1jbGFpbS1kZXRhaWxzJyksXHJcbiAgVkVISUNMRV9DTEFJTV9ERVRBSUxTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC92ZWhpY2xlLWNsYWltLWRldGFpbHNcXFxcL1xcXFxkKycpLFxyXG59O1xyXG4iXX0=
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnRzLmNvbnN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9lbmRwb2ludC9lbmRwb2ludHMuY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBOEI7SUFDbEQsVUFBVSxFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSx5QkFBeUIsQ0FBQztJQUUxRCxTQUFTLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQztJQUMxQyxpQkFBaUIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUM7SUFDMUQsa0JBQWtCLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO0lBQzVELGlCQUFpQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSx5QkFBeUIsQ0FBQztJQUNqRSxvQkFBb0IsRUFBRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUM7SUFDakUsb0JBQW9CLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDO0lBQ2hFLHFCQUFxQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxzQkFBc0IsQ0FBQztJQUNsRSx3QkFBd0IsRUFBRSxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQUM7SUFDL0UsNkJBQTZCLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLHNDQUFzQyxDQUFDO0lBQzNGLGtCQUFrQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxxQkFBcUIsQ0FBQztJQUM5RCxlQUFlLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLG1CQUFt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RSxtQkFBbUIsQ0FBQztJQUM5RCxrQkFBa0IsRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsMEJBQTBCLENBQUM7SUFDbkUsb0JBQW9CLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLHdCQUF3QixDQUFDO0lBQ25FLHFCQUFxQixFQUFFLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQztJQUNyRSxvQkFBb0IsRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsK0JBQStCLENBQUM7SUFDMUUsdUJBQXVCLEVBQUUsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLCtCQUErQixDQUFDO0lBQ2hGLHlCQUF5QixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSwwQkFBMEIsQ0FBQztJQUMxRSwwQkFBMEIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsMEJBQTBCLENBQUM7SUFDNUUseUJBQXlCLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLGlDQUFpQyxDQUFDO0NBQ2xGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludCB9IGZyb20gJy4vZW5kcG9pbnQnO1xyXG5cclxuLyoqXHJcbiAqIExpc3Qgb2YgYWxsIGFwcCBlbmRwb2ludHNcclxuICovXHJcbmV4cG9ydCBjb25zdCBFTkRQT0lOVFM6IHtba2V5OiBzdHJpbmddOiBFbmRwb2ludH0gPSB7XHJcbiAgQVNTRVRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9hc3NldHNcXFxcL1xcLlxcKlxcXFwvXFxcXGQrJyksXHJcblxyXG4gIEJBTktTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9iYW5rcycpLFxyXG4gIEJBTktfQUNDT1VOVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2JhbmstYWNjb3VudHMnKSxcclxuICBCQU5LX0FDQ09VTlRTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2JhbmstYWNjb3VudHMnKSxcclxuICBCQU5LX0FDQ09VTlRTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9iYW5rLWFjY291bnRzXFxcXC9cXFxcZCsnKSxcclxuICBCQU5LX0NPTk5FQ1RJT05fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvYmFuay1jb25uZWN0aW9ucycpLFxyXG4gIEJBTktfQ09OTkVDVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2JhbmstY29ubmVjdGlvbnMnKSxcclxuICBCQU5LX1RSQU5TQUNUSU9OU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvYmFuay10cmFuc2FjdGlvbnMnKSxcclxuICBCQU5LX1RSQU5TQUNUSU9OU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvYmFuay10cmFuc2FjdGlvbnNcXFxcL1xcXFxkKycpLFxyXG4gIEJBTktfVFJBTlNBQ1RJT05TX0lNUE9SVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9iYW5rLXRyYW5zYWN0aW9uc1xcXFwvXFxcXGQrXFxcXC9pbXBvcnQnKSxcclxuICBCQVNJUV9BQ0NPVU5UU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvYmFzaXFcXFxcL2FjY291bnRzJyksXHJcbiAgQkFTSVFfVE9LRU5fR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2Jhc2lxXFxcXC90b2tlbnMnKSxcclxuXHJcbiAgQk9SUk9XSU5HX0VYUEVOU0VTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9ib3Jyb3dpbmctZXhwZW5zZXMnKSxcclxuXHJcbiAgQ0hBUlRTX0lOQ09NRV9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvY2hhcnRzXFxcXC9cXFxcaW5jb21lcycpLFxyXG4gIENIQVJUU19FWFBFTlNFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvY2hhcnRzXFxcXC9cXFxcZXhwZW5zZXMnKSxcclxuICBDSEFSVF9BQ0NPVU5UU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvY2hhcnQtYWNjb3VudHMnKSxcclxuICBDTElFTlRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9jbGllbnRzJyksXHJcbiAgQ0xJRU5UU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvY2xpZW50cycpLFxyXG4gIENMSUVOVFNfRVhDTFVERV9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvY2xpZW50c1xcXFwvXFxcXGQrXFxcXC9leGNsdWRlJyksXHJcbiAgQ0xJRU5UU19JTlZJVEVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9jbGllbnRzXFxcXC9cXFxcaW52aXRlcycpLFxyXG4gIENMSUVOVFNfSU5WSVRFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9jbGllbnRzXFxcXC9cXFxcaW52aXRlcycpLFxyXG4gIENMSUVOVFNfSU5WSVRFU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvY2xpZW50c1xcXFwvXFxcXGludml0ZXNcXFxcL1xcXFxkKycpLFxyXG4gIENMSUVOVFNfSU5WSVRFU19BQ0NFUFRfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvY2xpZW50c1xcXFwvXFxcXGludml0ZXNcXFxcL1xcXFxkK1xcXFwvYWNjZXB0JyksXHJcbiAgQ0xJRU5UU19JTlZJVEVTX1JFSkVDVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9jbGllbnRzXFxcXC9cXFxcaW52aXRlc1xcXFwvXFxcXGQrXFxcXC9yZWplY3QnKSxcclxuICBDTElFTlRTX0lOVklURVNfUkVTRU5EX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2NsaWVudHNcXFxcL1xcXFxpbnZpdGVzXFxcXC9cXFxcZCtcXFxcL3Jlc2VuZCcpLFxyXG4gIENMSUVOVF9NT1ZFTUVOVFNfQ0xPU0U6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvY2xpZW50LW1vdmVtZW50c1xcXFwvXFxcXGQrXFxcXC9jbG9zZScpLFxyXG4gIENMSUVOVF9NT1ZFTUVOVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2NsaWVudC1tb3ZlbWVudHMnKSxcclxuICBDTElFTlRfTU9WRU1FTlRTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2NsaWVudC1tb3ZlbWVudHMnKSxcclxuICBDT1VOVFJJRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2NvdW50cmllcycpLFxyXG4gIENPUkVMT0dJQ19UT0tFTl9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJy9hY2Nlc3NcXFxcL29hdXRoXFxcXC90b2tlbi4qJCcpLFxyXG5cclxuICBERVBSRUNJQVRJT05TX09QRU5JTkdfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2RlcHJlY2lhdGlvbnNcXFxcL1xcXFxvcGVuaW5nLWJhbGFuY2VcXC5cXConKSxcclxuICBERVBSRUNJQVRJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9kZXByZWNpYXRpb25zJyksXHJcbiAgREVQUkVDSUFUSU9OU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9kZXByZWNpYXRpb25zJyksXHJcbiAgREVQUkVDSUFUSU9OU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvZGVwcmVjaWF0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgREVQUkVDSUFUSU9OU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvZGVwcmVjaWF0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgREVQUkVDSUFUSU9OX1JFQ0VJUFRTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2RlcHJlY2lhdGlvbnNcXFxcL1xcXFxkK1xcXFwvcmVjZWlwdHMnKSxcclxuICBERVBSRUNJQVRJT05fUkVDRUlQVFNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL2RlcHJlY2lhdGlvbnNcXFxcL1xcXFxkK1xcXFwvcmVjZWlwdHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBFTVBMT1lFRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2VtcGxveWVlcycpLFxyXG4gIEVNUExPWUVFU19JTlZJVEVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9lbXBsb3llZXNcXFxcL1xcXFxpbnZpdGVzJyksXHJcbiAgRU1QTE9ZRUVTX0lOVklURVNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL2VtcGxveWVlc1xcXFwvXFxcXGludml0ZXNcXFxcL1xcXFxkKycpLFxyXG4gIEVNUExPWUVFU19JTlZJVEVfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZW1wbG95ZWVzXFxcXC9cXFxcaW52aXRlcycpLFxyXG4gIEVNUExPWUVFU19JTlZJVEVTX1JFSkVDVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9lbXBsb3llZXNcXFxcL1xcXFxpbnZpdGVzXFxcXC9cXFxcZCtcXFxcL1xcXFxyZWplY3QnKSxcclxuICBFTVBMT1lFRVNfSU5WSVRFU19SRVNFTkRfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZW1wbG95ZWVzXFxcXC9cXFxcaW52aXRlc1xcXFwvXFxcXGQrXFxcXC9cXFxccmVzZW5kJyksXHJcblxyXG4gIEZBQ0VCT09LX0xPR0lOX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3VzZXJzXFxcXC9hdXRoZW50aWNhdGlvblxcXFwvZmFjZWJvb2snKSxcclxuICBGSVJNX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9maXJtcycpLFxyXG4gIEZJUk1fQ1VSUkVOVF9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvZmlybXNcXFxcL2N1cnJlbnQnKSxcclxuICBGSVJNX0NVUlJFTlRfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2Zpcm1zXFxcXC9jdXJyZW50XFwuXFwqJyksXHJcbiAgRklSTV9JTlZJVEVfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZmlybXNcXFxcL2ludml0ZScpLFxyXG4gIEZJUk1fUkVHSVNUUkFUSU9OX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2Zpcm1zXFxcXC9yZWdpc3RyYXRpb24nKSxcclxuICBGSVJNX1VQREFURV9QSE9UT19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9maXJtc1xcXFwvcGhvdG9cXC5cXConKSxcclxuICBGT0xERVJTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9mb2xkZXJzJyksXHJcbiAgRk9MREVSU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9mb2xkZXJzJyksXHJcbiAgRk9MREVSU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvZm9sZGVyc1xcXFwvXFxcXGQrJyksXHJcbiAgRk9MREVSU19ET0NVTUVOVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZm9sZGVyc1xcXFwvXFxcXGQrXFxcXC9kb2N1bWVudHMnKSxcclxuICBGT0xERVJTX0RPQ1VNRU5UU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvZm9sZGVyc1xcXFwvXFxcXGQrXFxcXC9kb2N1bWVudHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBJTkNPTUVfU09VUkNFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvaW5jb21lLXNvdXJjZXMnKSxcclxuICBJTkNPTUVfU09VUkNFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9pbmNvbWUtc291cmNlcycpLFxyXG4gIElOQ09NRV9TT1VSQ0VTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9pbmNvbWUtc291cmNlcycpLFxyXG4gIElOQ09NRV9TT1VSQ0VTX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9pbmNvbWUtc291cmNlc1xcXFwvXFxcXGQrJyksXHJcbiAgSU5DT01FX1NPVVJDRV9GT1JFQ0FTVF9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvaW5jb21lLXNvdXJjZS1mb3JlY2FzdHMnKSxcclxuICBJTkNPTUVfU09VUkNFX0ZPUkVDQVNUX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2luY29tZS1zb3VyY2UtZm9yZWNhc3RzJyksXHJcbiAgSU5DT01FX1NPVVJDRV9GT1JFQ0FTVF9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvaW5jb21lLXNvdXJjZS1mb3JlY2FzdHMnKSxcclxuICBJTkNPTUVfU09VUkNFX0ZPUkVDQVNUX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9pbmNvbWUtc291cmNlLWZvcmVjYXN0c1xcXFwvXFxcXGQrJyksXHJcbiAgSU5DT01FX1NPVVJDRV9UWVBFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvaW5jb21lLXNvdXJjZS10eXBlcycpLFxyXG5cclxuICBMT0FOU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvYmFuay1hY2NvdW50c1xcXFwvbG9hbnMnKSxcclxuICBMT0FOU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9iYW5rLWFjY291bnRzXFxcXC9sb2FucycpLFxyXG4gIExPQU5TX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9iYW5rLWFjY291bnRzXFxcXC9sb2Fucy9cXFxcZCsnKSxcclxuICBMT0FOU19QQVlPVVRfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvbG9hbnNcXFxcL1xcXFxkK1xcXFwvcGF5b3V0JyksXHJcbiAgTE9BTlNfUEFZT1VUX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9sb2Fuc1xcXFwvXFxcXGQrXFxcXC9wYXlvdXRcXFxcL1xcXFxkKycpLFxyXG4gIExPQU5TX1BBWU9VVF9ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvbG9hbnNcXFxcL1xcXFxkK1xcXFwvcGF5b3V0XFxcXC9cXFxcZCsnKSxcclxuICBMT0FOU19DQUxDVUxBVElPTl9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9iYW5rLWFjY291bnRzXFxcXC9sb2Fuc1xcXFwvY2FsY3VsYXRpb24nKSxcclxuICBMT0dJTl9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9sb2dpbicpLFxyXG5cclxuICBOT1RJRklDQVRJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zZXJ2aWNlLW5vdGlmaWNhdGlvbnMnKSxcclxuXHJcbiAgT0NDVVBBVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL29jY3VwYXRpb25zJyksXHJcblxyXG4gIFBST1BFUlRJRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3Byb3BlcnRpZXMnKSxcclxuICBQUk9QRVJUSUVTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3Byb3BlcnRpZXMnKSxcclxuICBQUk9QRVJUWV9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllcy9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9wcm9wZXJ0aWVzJyksXHJcbiAgUFJPUEVSVElFU19DQVRFR09SSUVTX0VRVUlUWV9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvY2F0ZWdvcmllc1xcXFwvZXF1aXR5JyksXHJcbiAgUFJPUEVSVElFU19DQVRFR09SSUVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9jYXRlZ29yaWVzJyksXHJcbiAgUFJPUEVSVElFU19DQVRFR09SSUVTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9jYXRlZ29yaWVzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX0NBVEVHT1JJRVNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvY2F0ZWdvcmllcycpLFxyXG4gIFBST1BFUlRJRVNfQ0FURUdPUklFU19NT1ZFTUVOVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvY2F0ZWdvcnktbW92ZW1lbnRzJyksXHJcbiAgUFJPUEVSVElFU19DQVRFR09SWV9NT1ZFTUVOVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9jYXRlZ29yeS1tb3ZlbWVudHMnKSxcclxuICBQUk9QRVJUSUVTX0NBVEVHT1JZX01PVkVNRU5UU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9jYXRlZ29yeS1tb3ZlbWVudHNcXFxcL1xcXFxkKycpLFxyXG4gIFBST1BFUlRJRVNfU0hBUkVTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9zaGFyZXNcXFxcL1xcXFxkKycpLFxyXG4gIFBST1BFUlRJRVNfU0hBUkVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9zaGFyZXMnKSxcclxuICBQUk9QRVJUSUVTX1NIQVJFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9zaGFyZXMnKSxcclxuICBQUk9QRVJUSUVTX0RFQUNUSVZBVEVfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvZGVhY3RpdmF0ZScpLFxyXG4gIFBST1BFUlRJRVNfREVQUkVDSUFUSU9OX0NBUElUQUxfUFJPSkVDVF9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9kZXByZWNpYXRpb24tY2FwaXRhbC1wcm9qZWN0cycpLFxyXG4gIFBST1BFUlRJRVNfREVQUkVDSUFUSU9OX0NBUElUQUxfUFJPSkVDVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL2RlcHJlY2lhdGlvbi1jYXBpdGFsLXByb2plY3RzJyksXHJcbiAgUFJPUEVSVElFU19ERVBSRUNJQVRJT05fQ0FQSVRBTF9QUk9KRUNUX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL2RlcHJlY2lhdGlvbi1jYXBpdGFsLXByb2plY3RzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX0RFUFJFQ0lBVElPTl9DQVBJVEFMX1BST0pFQ1RfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvZGVwcmVjaWF0aW9uLWNhcGl0YWwtcHJvamVjdHNcXFxcL1xcXFxkKycpLFxyXG4gIFBST1BFUlRJRVNfRE9DVU1FTlRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9kb2N1bWVudHMnKSxcclxuICBQUk9QRVJUSUVTX0RPQ1VNRU5UU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL2RvY3VtZW50cycpLFxyXG4gIFBST1BFUlRJRVNfRE9DVU1FTlRTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9kb2N1bWVudHNcXFxcL1xcXFxkKycpLFxyXG4gIFBST1BFUlRJRVNfRE9DVU1FTlRTX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9kb2N1bWVudHNcXFxcL1xcXFxkKycpLFxyXG4gIFBST1BFUlRJRVNfUEhPVE9fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9waG90b1xcLlxcKicpLFxyXG4gIFBST1BFUlRJRVNfU0FMRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL3NhbGVzJyksXHJcbiAgUFJPUEVSVElFU19TVUdHRVNUSU9OU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJy9wcm9wZXJ0eVxcXFwvXFxcXHcrXFxcXC92MlxcXFwvLiokJyksXHJcbiAgUFJPUEVSVElFU19WQUxVQVRJT05TX0RPQ1VNRU5UU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL3ZhbHVhdGlvbnNcXFxcL1xcXFxkK1xcXFwvZG9jdW1lbnRzJyksXHJcblxyXG4gIC8vIEBUT0RPIHJlbmFtZVxyXG4gIFBST1JBVElPTl9DT1NUX1BPU1Q6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc2VydmljZS1zdWJzY3JpcHRpb25zXFxcXC9cXFxcZCtcXFxcL3Byb3JhdGlvbi1jb3N0JyksXHJcblxyXG4gIFNBTEFSWV9GT1JFQ0FTVF9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc2FsYXJ5LWZvcmVjYXN0cycpLFxyXG4gIFNBTEFSWV9GT1JFQ0FTVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zYWxhcnktZm9yZWNhc3RzJyksXHJcbiAgU0FMQVJZX0ZPUkVDQVNUX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9zYWxhcnktZm9yZWNhc3RzJyksXHJcbiAgU0VSVklDRV9QUklDRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NlcnZpY2UtcHJpY2VzJyksXHJcbiAgU0VSVklDRV9QUk9EVUNUU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc2VydmljZS1wcm9kdWN0cycpLFxyXG4gIFNFUlZJQ0VfUEFZTUVOVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NlcnZpY2UtcGF5bWVudHMnKSxcclxuICBTRVJWSUNFX1NVQlNDUklQVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NlcnZpY2Utc3Vic2NyaXB0aW9ucycpLFxyXG4gIFNFUlZJQ0VfU1VCU0NSSVBUSU9OU19DQU5DRUw6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc2VydmljZS1zdWJzY3JpcHRpb25zXFxcXC9cXFxcZCtcXFxcL2NhbmNlbCcpLFxyXG4gIFNFUlZJQ0VfUEFZTUVOVF9JTlZPSUNFX1VSTF9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc2VydmljZS1wYXltZW50c1xcXFwvXFxcXGQrXFxcXC9pbnZvaWNlLXVybCcpLFxyXG4gIFNVQlNDUklQVElPTl9JVEVNU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc2VydmljZS1zdWJzY3JpcHRpb25zXFxcXC9cXFxcZCtcXFxcL2l0ZW1zJyksXHJcblxyXG4gIFNPTEVfQlVTSU5FU1NFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc29sZS1idXNpbmVzc2VzJyksXHJcbiAgU09MRV9CVVNJTkVTU0VTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3NvbGUtYnVzaW5lc3NlcycpLFxyXG4gIFNPTEVfQlVTSU5FU1NFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1idXNpbmVzc2VzXFxcXC9cXFxcZCsnKSxcclxuICBTT0xFX0JVU0lORVNTX0xPU1NFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc29sZS1idXNpbmVzcy1sb3NzZXMnKSxcclxuICBTT0xFX0JVU0lORVNTX0xPU1NFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWJ1c2luZXNzLWxvc3NlcycpLFxyXG4gIFNPTEVfQlVTSU5FU1NfTE9TU0VTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9zb2xlLWJ1c2luZXNzLWxvc3Nlc1xcXFwvXFxcXGQrJyksXHJcbiAgU09MRV9CVVNJTkVTU19MT1NTX09GRlNFVF9SVUxFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc29sZS1idXNpbmVzcy1sb3NzLW9mZnNldC1ydWxlcycpLFxyXG4gIFNPTEVfQlVTSU5FU1NfTE9HT19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWJ1c2luZXNzZXNcXFxcL1xcXFxkK1xcXFwvbG9nbycpLFxyXG5cclxuICBTT0xFX0NPTlRBQ1RTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zb2xlLWNvbnRhY3RzJyksXHJcbiAgU09MRV9DT05UQUNUU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWNvbnRhY3RzJyksXHJcbiAgU09MRV9DT05UQUNUU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1jb250YWN0c1xcXFwvXFxcXGQrJyksXHJcblxyXG4gIEJVU0lORVNTX0FDVElWSVRJRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtYnVzaW5lc3MtYWN0aXZpdGllcycpLFxyXG5cclxuICBTT0xFX0RFUFJFQ0lBVElPTl9NRVRIT0RTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zb2xlLWRlcHJlY2lhdGlvbi1tZXRob2RzJyksXHJcbiAgU09MRV9ERVBSRUNJQVRJT05fTUVUSE9EU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1kZXByZWNpYXRpb24tbWV0aG9kc1xcXFwvXFxcXGQrJyksXHJcblxyXG4gIFNPTEVfREVUQUlMU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc29sZS1kZXRhaWxzJyksXHJcbiAgU09MRV9ERVRBSUxTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9zb2xlLWRldGFpbHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBTT0xFX0ZPUkVDQVNUU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWZvcmVjYXN0cycpLFxyXG4gIFNPTEVfRk9SRUNBU1RTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9zb2xlLWZvcmVjYXN0c1xcXFwvXFxcXGQrJyksXHJcblxyXG4gIFNPTEVfSU5WT0lDRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtaW52b2ljZXMnKSxcclxuICBTT0xFX0lOVk9JQ0VTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3NvbGUtaW52b2ljZXMnKSxcclxuICBTT0xFX0lOVk9JQ0VTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9zb2xlLWludm9pY2VzXFxcXC9cXFxcZCsnKSxcclxuICBTT0xFX0lOVk9JQ0VTX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9zb2xlLWludm9pY2VzXFxcXC9cXFxcZCsnKSxcclxuICBTT0xFX0lOVk9JQ0VTX0VNQUlMX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3NvbGUtaW52b2ljZXNcXFxcL1xcXFxkK1xcXFwvc2VuZCcpLFxyXG4gIFNPTEVfSU5WT0lDRV9URU1QTEFURVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtaW52b2ljZS10ZW1wbGF0ZXMnKSxcclxuICBTT0xFX0lOVk9JQ0VfVEVNUExBVEVTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3NvbGUtaW52b2ljZS10ZW1wbGF0ZXMnKSxcclxuICBTT0xFX0lOVk9JQ0VfVEVNUExBVEVTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9zb2xlLWludm9pY2UtdGVtcGxhdGVzXFxcXC9cXFxcZCsnKSxcclxuICBTT0xFX0lOVk9JQ0VfVEVNUExBVEVTX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9zb2xlLWludm9pY2UtdGVtcGxhdGVzXFxcXC9cXFxcZCsnKSxcclxuXHJcbiAgVEFYX0VYRU1QVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3RheC1leGVtcHRpb25zJyksXHJcblxyXG4gIFRBWF9DQUxDVUxBVElPTl9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC90YXgtY2FsY3VsYXRpb24nKSxcclxuICBUQVhfUkVWSUVXU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdGF4LXJldmlld3MnKSxcclxuICBUQVhfUkVWSUVXU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvdGF4LXJldmlld3NcXFxcL1xcXFxkKycpLFxyXG4gIFRBWF9SRVZJRVdTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3RheC1yZXZpZXdzJyksXHJcbiAgVEFYX1JFVklFV1NfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3RheC1yZXZpZXdzXFxcXC9cXFxcZCsnKSxcclxuICBUQVhfU1VNTUFSWV9BQ1RVQUxfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3RheC1zdW1tYXJ5XFxcXC9hY3R1YWxzJyksXHJcbiAgVEFYX1NVTU1BUllfRk9SRUNBU1RfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3RheC1zdW1tYXJ5XFxcXC9mb3JlY2FzdHMnKSxcclxuICBUUkFOU0FDVElPTl9ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvdHJhbnNhY3Rpb25zXFxcXC9cXFxcZCsnKSxcclxuICBUUkFOU0FDVElPTl9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvdHJhbnNhY3Rpb25zXFxcXC9cXFxcZCsnKSxcclxuICBUUkFOU0FDVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3RyYW5zYWN0aW9ucycpLFxyXG4gIFRSQU5TQUNUSU9OU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC90cmFuc2FjdGlvbnMnKSxcclxuICBUUkFOU0FDVElPTlNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3RyYW5zYWN0aW9ucycpLFxyXG4gIFRSQU5TQUNUSU9OU19BTExPQ0FUSU9OU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdHJhbnNhY3Rpb25zLWFsbG9jYXRpb25zJyksXHJcbiAgVFJBTlNBQ1RJT05TX0FMTE9DQVRJT05TX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3RyYW5zYWN0aW9ucy1hbGxvY2F0aW9ucycpLFxyXG4gIFRSQU5TQUNUSU9OU19BTExPQ0FUSU9OU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvdHJhbnNhY3Rpb25zLWFsbG9jYXRpb25zXFxcXC9cXFxcZCsnKSxcclxuICBUUkFOU0FDVElPTl9SRUNFSVBUU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC90cmFuc2FjdGlvbnNcXFxcL1xcXFxkK1xcXFwvcmVjZWlwdHMnKSxcclxuICBUUkFOU0FDVElPTl9SRUNFSVBUU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvdHJhbnNhY3Rpb25zXFxcXC9cXFxcZCtcXFxcL3JlY2VpcHRzXFxcXC9cXFxcZCsnKSxcclxuXHJcbiAgVVNFUl9DT05GSVJNQVRJT05fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdXNlcnNcXFxcL2NvbmZpcm1hdGlvbicpLFxyXG4gIFVTRVJfQ09ORklSTUFUSU9OX1JFU0VORF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC91c2Vyc1xcXFwvY29uZmlybWF0aW9uXFxcXC9yZXNlbmQnKSxcclxuICBVU0VSX0NVUlJFTlRfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3VzZXJzXFxcXC9jdXJyZW50JyksXHJcbiAgVVNFUl9DVVJSRU5UX1BBU1NXT1JEX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC91c2Vyc1xcXFwvY3VycmVudFxcXFwvcGFzc3dvcmRcXC5cXConKSxcclxuICBVU0VSX0VWRU5UX1NFVFRJTkdTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC91c2VyLWV2ZW50LXNldHRpbmdzJyksXHJcbiAgVVNFUl9FVkVOVF9UWVBFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdXNlci1ldmVudC10eXBlcycpLFxyXG4gIFVTRVJfSU5WSVRFX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC91c2Vyc1xcXFwvaW52aXRlXFxcXC9cXFxcZCsnKSxcclxuICBVU0VSX0lOVklURV9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC91c2Vyc1xcXFwvaW52aXRlJyksXHJcbiAgVVNFUl9JTlZJVEVfUkVTRU5EX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3VzZXJzXFxcXC9pbnZpdGUvXFxcXGQrXFxcXC9yZXNlbmQnKSxcclxuICBVU0VSX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC91c2Vyc1xcXFwvXFxcXGQrJyksXHJcbiAgVVNFUl9SRUdJU1RSQVRJT05fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdXNlcnNcXFxcL3JlZ2lzdHJhdGlvbicpLFxyXG4gIFVTRVJfUkVTRVRfUEFTU1dPUkRfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3VzZXJzXFxcXC9yZXNldC1wYXNzd29yZCcpLFxyXG4gIFVTRVJfU0VBUkNIX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC91c2Vyc1xcXFwvc2VhcmNoXFwuXFwqJyksXHJcbiAgVVNFUl9VUERBVEVfUEhPVE9fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdXNlcnNcXFxcL3Bob3RvXFwuXFwqJyksXHJcbiAgVVNFUl9TVEFUVVNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3VzZXJzXFxcXC9zdGF0dXMnKSxcclxuXHJcbiAgVkVISUNMRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3ZlaGljbGVzJyksXHJcbiAgVkVISUNMRVNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdmVoaWNsZXMnKSxcclxuICBWRUhJQ0xFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvdmVoaWNsZXNcXFxcL1xcXFxkKycpLFxyXG4gIFZFSElDTEVfQ0xBSU1TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC92ZWhpY2xlLWNsYWltcycpLFxyXG4gIFZFSElDTEVfQ0xBSU1TX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3ZlaGljbGUtY2xhaW1zJyksXHJcbiAgVkVISUNMRV9DTEFJTVNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3ZlaGljbGUtY2xhaW1zXFxcXC9cXFxcZCsnKSxcclxuICBWRUhJQ0xFX0xPR0JPT0tTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC92ZWhpY2xlc1xcXFwvbG9nYm9va3MnKSxcclxuICBWRUhJQ0xFX0xPR0JPT0tTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3ZlaGljbGVzXFxcXC9sb2dib29rcycpLFxyXG4gIFZFSElDTEVfTE9HQk9PS1NfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3ZlaGljbGVzXFxcXC9sb2dib29rc1xcXFwvXFxcXGQrJyksXHJcbiAgVkVISUNMRV9MT0dCT09LU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvdmVoaWNsZXNcXFxcL2xvZ2Jvb2tzXFxcXC9cXFxcZCsnKSxcclxuICBWRUhJQ0xFX0NMQUlNX0RFVEFJTFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3ZlaGljbGUtY2xhaW0tZGV0YWlscycpLFxyXG4gIFZFSElDTEVfQ0xBSU1fREVUQUlMU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC92ZWhpY2xlLWNsYWltLWRldGFpbHMnKSxcclxuICBWRUhJQ0xFX0NMQUlNX0RFVEFJTFNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3ZlaGljbGUtY2xhaW0tZGV0YWlsc1xcXFwvXFxcXGQrJyksXHJcbn07XHJcbiJdfQ==
@@ -3,12 +3,16 @@ import { ServicePrice as BaseServicePrice } from '../../db/Models/subscription/s
3
3
  import { ServiceProduct } from './service-product';
4
4
  import { plainToClass, Type } from 'class-transformer';
5
5
  import { ServiceSubscriptionItem } from './service-subscription-item';
6
+ import { ServicePriceTypeEnum } from '../../db/Enums/subscription/service-price-type.enum';
6
7
  export class ServicePrice extends BaseServicePrice {
7
8
  toSubscriptionItem() {
8
9
  return plainToClass(ServiceSubscriptionItem, { price: this, quantity: this.product.minQty });
9
10
  }
11
+ isAnnual() {
12
+ return [ServicePriceTypeEnum.YEARLY, ServicePriceTypeEnum.YEARLY_PACKAGE].includes(this.type);
13
+ }
10
14
  }
11
15
  __decorate([
12
16
  Type(() => ServiceProduct)
13
17
  ], ServicePrice.prototype, "product", void 0);
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvc2VydmljZS1zdWJzY3JpcHRpb24vc2VydmljZS1wcmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFFLElBQUksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRXBFLE1BQU0sT0FBTyxZQUFhLFNBQVEsZ0JBQWdCO0lBSWhELGtCQUFrQjtRQUNoQixPQUFPLFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0NBQ0Y7QUFMQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7NkNBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2aWNlUHJpY2UgYXMgQmFzZVNlcnZpY2VQcmljZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9zdWJzY3JpcHRpb24vc2VydmljZS1wcmljZSc7XG5pbXBvcnQgeyBTZXJ2aWNlUHJvZHVjdCB9IGZyb20gJy4vc2VydmljZS1wcm9kdWN0JztcbmltcG9ydCB7cGxhaW5Ub0NsYXNzLCBUeXBlfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1NlcnZpY2VTdWJzY3JpcHRpb25JdGVtfSBmcm9tICcuL3NlcnZpY2Utc3Vic2NyaXB0aW9uLWl0ZW0nO1xuXG5leHBvcnQgY2xhc3MgU2VydmljZVByaWNlIGV4dGVuZHMgQmFzZVNlcnZpY2VQcmljZSB7XG4gIEBUeXBlKCgpID0+IFNlcnZpY2VQcm9kdWN0KVxuICBwcm9kdWN0OiBTZXJ2aWNlUHJvZHVjdDtcblxuICB0b1N1YnNjcmlwdGlvbkl0ZW0oKTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHJldHVybiBwbGFpblRvQ2xhc3MoU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0sIHtwcmljZTogdGhpcywgcXVhbnRpdHk6IHRoaXMucHJvZHVjdC5taW5RdHl9KTtcbiAgfVxufVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvc2VydmljZS1zdWJzY3JpcHRpb24vc2VydmljZS1wcmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFFLElBQUksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBRXpGLE1BQU0sT0FBTyxZQUFhLFNBQVEsZ0JBQWdCO0lBSWhELGtCQUFrQjtRQUNoQixPQUFPLFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRyxDQUFDO0NBQ0Y7QUFUQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7NkNBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2aWNlUHJpY2UgYXMgQmFzZVNlcnZpY2VQcmljZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9zdWJzY3JpcHRpb24vc2VydmljZS1wcmljZSc7XG5pbXBvcnQgeyBTZXJ2aWNlUHJvZHVjdCB9IGZyb20gJy4vc2VydmljZS1wcm9kdWN0JztcbmltcG9ydCB7cGxhaW5Ub0NsYXNzLCBUeXBlfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1NlcnZpY2VTdWJzY3JpcHRpb25JdGVtfSBmcm9tICcuL3NlcnZpY2Utc3Vic2NyaXB0aW9uLWl0ZW0nO1xuaW1wb3J0IHtTZXJ2aWNlUHJpY2VUeXBlRW51bX0gZnJvbSAnLi4vLi4vZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJpY2UtdHlwZS5lbnVtJztcblxuZXhwb3J0IGNsYXNzIFNlcnZpY2VQcmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlUHJpY2Uge1xuICBAVHlwZSgoKSA9PiBTZXJ2aWNlUHJvZHVjdClcbiAgcHJvZHVjdDogU2VydmljZVByb2R1Y3Q7XG5cbiAgdG9TdWJzY3JpcHRpb25JdGVtKCk6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIHtcbiAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtLCB7cHJpY2U6IHRoaXMsIHF1YW50aXR5OiB0aGlzLnByb2R1Y3QubWluUXR5fSk7XG4gIH1cblxuICBpc0FubnVhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gW1NlcnZpY2VQcmljZVR5cGVFbnVtLllFQVJMWSwgU2VydmljZVByaWNlVHlwZUVudW0uWUVBUkxZX1BBQ0tBR0VdLmluY2x1ZGVzKHRoaXMudHlwZSk7XG4gIH1cbn1cbiJdfQ==
@@ -12,6 +12,9 @@ export class ServiceSubscription extends ServiceSubscriptionBase {
12
12
  // Number of days after which the trial time will be expired
13
13
  this.lastTrialDays = 4;
14
14
  }
15
+ get frequency() {
16
+ return this.isAnnual() ? 'year' : 'month';
17
+ }
15
18
  get isTrial() {
16
19
  return !this.stripeId;
17
20
  }
@@ -102,6 +105,9 @@ export class ServiceSubscription extends ServiceSubscriptionBase {
102
105
  isPackage() {
103
106
  return this.items.length === ServiceProduct.quantity;
104
107
  }
108
+ isAnnual() {
109
+ return !!(this.getItems().getPrices().annual.length || this.getItems().getPrices().annualPackage.length);
110
+ }
105
111
  /**
106
112
  * Recommended number of properties to buy,
107
113
  * based on the property service product and the number of properties the user has
@@ -120,4 +126,4 @@ __decorate([
120
126
  __decorate([
121
127
  Type(() => ServiceSubscriptionItem)
122
128
  ], ServiceSubscription.prototype, "items", void 0);
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLElBQUksdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQXVCO0lBQWhFOztRQVVFLDREQUE0RDtRQUM1RCxrQkFBYSxHQUFXLENBQUMsQ0FBQztJQTZINUIsQ0FBQztJQTNIQyxJQUFJLE9BQU87UUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxJQUE2QixFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJ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QUFPLENBQUMsTUFBTSxDQUFDO1FBRXRELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBdElDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztzREFDRDtBQUdoQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7b0RBQ0g7QUFHZDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztrREFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb24gYXMgU2VydmljZVN1YnNjcmlwdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIH0gZnJvbSAnLi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1pdGVtJztcbmltcG9ydCB7IFVzZXJSb2xlc0VudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy91c2VyLXJvbGVzLmVudW0nO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLXN0YXR1cy5lbnVtJztcbmltcG9ydCB7IFNlcnZpY2VQcm9kdWN0IH0gZnJvbSAnLi9zZXJ2aWNlLXByb2R1Y3QnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uSXRlbUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBTZXJ2aWNlU3Vic2NyaXB0aW9uIGV4dGVuZHMgU2VydmljZVN1YnNjcmlwdGlvbkJhc2Uge1xuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBzdGFydERhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZW5kRGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSlcbiAgaXRlbXM6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtW107XG5cbiAgLy8gTnVtYmVyIG9mIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHRyaWFsIHRpbWUgd2lsbCBiZSBleHBpcmVkXG4gIGxhc3RUcmlhbERheXM6IG51bWJlciA9IDQ7XG5cbiAgZ2V0IGlzVHJpYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnN0cmlwZUlkO1xuICB9XG5cbiAgZ2V0IGlzUGFpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnN0cmlwZUlkO1xuICB9XG5cbiAgZ2V0IHByaWNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHN1bSArIGl0ZW0udG90YWwsIDApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCB0aXRsZSBvZiBzdWJzY3JpcHRpb25cbiAgICovXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5wcmljZS5wcm9kdWN0LnRpdGxlKS5qb2luKCcgKyAnKTtcbiAgICAvLyByZXR1cm4gdGhpcy5pc1RyaWFsID8gJ1RyaWFsIHBlcmlvZCcgOiB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5wcmljZS5wcm9kdWN0LnRpdGxlKS5qb2luKCcgKyAnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHN1YnNjcmlwdGlvbiBpcyBjb25zaWRlcmVkIGFjdGl2ZSBpZiB0aGUgZW5kIGRhdGUgaGFzIG5vdCB5ZXQgYXJyaXZlZCBhbmQgaXRzIHN0YXR1cyBpcyBcIkFjdGl2ZVwiIG9yIFwiUGFzdCBkdWVcIlxuICAgKi9cbiAgZ2V0IGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzRXhwaXJlZDogYm9vbGVhbiA9IG5ldyBEYXRlKHRoaXMuZW5kRGF0ZSkuZ2V0VGltZSgpIDwgbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgICByZXR1cm4gIWlzRXhwaXJlZCAmJiAoW1NlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtLkFDVElWRSwgU2VydmljZVN1YnNjcmlwdGlvblN0YXR1c0VudW0uUEFTVF9EVUVdLmluY2x1ZGVzKHRoaXMuc3RhdHVzKSk7XG4gIH1cblxuICBnZXQgZGF5c1JlbWFpbigpOiBudW1iZXIge1xuICAgIGNvbnN0IGRheXNSZW1haW5zOiBudW1iZXIgPSBNYXRoLnJvdW5kKFxuICAgICAgKG5ldyBEYXRlKHRoaXMuZW5kRGF0ZSkuZ2V0VGltZSgpIC0gbmV3IERhdGUoKS5nZXRUaW1lKCkpIC8gKDEwMDAgKiAzNjAwICogMjQpXG4gICAgKTtcblxuICAgIHJldHVybiBkYXlzUmVtYWlucyA+IDAgPyBkYXlzUmVtYWlucyA6IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJpYWwgZXhwaXJlZFxuICAgKi9cbiAgaXNUcmlhbEV4cGlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF5c1JlbWFpbiAmJiB0aGlzLmRheXNSZW1haW4gPD0gMDtcbiAgfVxuXG4gIGlzVHJpYWxFeHBpcmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kYXlzUmVtYWluID4gMCAmJiB0aGlzLmRheXNSZW1haW4gPD0gdGhpcy5sYXN0VHJpYWxEYXlzO1xuICB9XG5cbiAgaXNSZW5ld2FibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmlzVHJpYWwgJiYgdGhpcy5pc0FjdGl2ZTtcbiAgfVxuXG4gIGdldEl0ZW1zKCk6IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uKHRoaXMuaXRlbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0IHdvcmtUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1dvcmtUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHNvbGVUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1NvbGVUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHByb3BlcnR5VGFua0l0ZW0oKTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNQcm9wZXJ0aWVzKCkpO1xuICB9XG5cbiAgaGFzUHJvcGVydHlUYW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmluZCgoc3Vic2NyaXB0aW9uSXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb25JdGVtLnByaWNlLnByb2R1Y3Qucm9sZS5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLlBST1BFUlRZX1RBTkspO1xuICAgIH0pO1xuICB9XG5cbiAgaGFzV29ya1RhbmsoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChzdWJzY3JpcHRpb25JdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbkl0ZW0ucHJpY2UucHJvZHVjdC5yb2xlLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uV09SS19UQU5LKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBib3VnaHQgYmVmb3JlIHByaWNlIHVwZGF0ZXMsIGFjdGl2ZSBmb3Igc29tZSB0aW1lIHRvIGxldCBjdXN0b21lciBzZWxlY3QgYSBuZXcgcGxhblxuICAgKiBpbXBvc3NpYmxlIHRvIHVwZGF0ZSwgb25seSBwcm9sb25nIG9yIGJ1eSBuZXdcbiAgICovXG4gIGlzQXJjaGl2ZWQoKTogYm9vbGVhbiB7XG4gICAgLy8gc3Vic2NyaXB0aW9uIHdpdGggYXQgbGVhc3Qgb25lIGFyY2hpdmVkIHByb2R1Y3QgY29uc2lkZXJlZCBhcyBhcmNoaXZlZFxuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNBcmNoaXZlZCgpKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQ2FzZSB3aGVuIHBheW1lbnQgd2FzIGZhaWxlZCwgYnV0IHVzZXIgaGFzIGEgdGltZSB0byB1cGRhdGUgcGF5bWVudCBtZXRob2RcbiAgICovXG4gIGlzUGFzdER1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtLlBBU1RfRFVFO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnJlbnQgc3Vic2NyaXB0aW9uIGhhcyBwcm92aWRlZCBzdWJzY3JpcHRpb24gaXRlbVxuICAgKi9cbiAgaGFzSXRlbShpdGVtVG9DaGVjazogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLmlkID09PSBpdGVtVG9DaGVjay5wcmljZS5pZCk7XG4gIH1cblxuICBoYXNQcm9kdWN0KHByb2R1Y3Q6IFNlcnZpY2VQcm9kdWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4gPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlkID09PSBwcm9kdWN0LmlkKTtcbiAgfVxuXG4gIGlzUGFja2FnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGggPT09IFNlcnZpY2VQcm9kdWN0LnF1YW50aXR5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY29tbWVuZGVkIG51bWJlciBvZiBwcm9wZXJ0aWVzIHRvIGJ1eSxcbiAgICogYmFzZWQgb24gdGhlIHByb3BlcnR5IHNlcnZpY2UgcHJvZHVjdCBhbmQgdGhlIG51bWJlciBvZiBwcm9wZXJ0aWVzIHRoZSB1c2VyIGhhc1xuICAgKi9cbiAgZ2V0UmVjb21tZW5kZWRQcm9wZXJ0aWVzUXR5KHByb3BlcnR5SXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0sIHByb3BlcnRpZXNRdHk6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgbWluOiBudW1iZXIgPSBwcm9wZXJ0eUl0ZW0ucHJpY2UucHJvZHVjdC5taW5RdHk7XG5cbiAgICByZXR1cm4gTWF0aC5tYXgobWluLCBwcm9wZXJ0aWVzUXR5KTtcbiAgfVxufVxuIl19
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLElBQUksdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQXVCO0lBQWhFOztRQVVFLDREQUE0RDtRQUM1RCxrQkFBYSxHQUFXLENBQUMsQ0FBQztJQXFJNUIsQ0FBQztJQW5JQyxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FB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QztJQUN2RCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsMkJBQTJCLENBQUMsWUFBcUMsRUFBRSxhQUFxQjtRQUN0RixNQUFNLEdBQUcsR0FBVyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFdEQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUE5SUM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3NEQUNEO0FBR2hCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztvREFDSDtBQUdkO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2tEQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VydmljZVN1YnNjcmlwdGlvbiBhcyBTZXJ2aWNlU3Vic2NyaXB0aW9uQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0gfSBmcm9tICcuL3NlcnZpY2Utc3Vic2NyaXB0aW9uLWl0ZW0nO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3VzZXItcm9sZXMuZW51bSc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgU2VydmljZVN1YnNjcmlwdGlvblN0YXR1c0VudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24tc3RhdHVzLmVudW0nO1xuaW1wb3J0IHsgU2VydmljZVByb2R1Y3QgfSBmcm9tICcuL3NlcnZpY2UtcHJvZHVjdCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25JdGVtQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcblxuZXhwb3J0IGNsYXNzIFNlcnZpY2VTdWJzY3JpcHRpb24gZXh0ZW5kcyBTZXJ2aWNlU3Vic2NyaXB0aW9uQmFzZSB7XG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIHN0YXJ0RGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBlbmREYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKVxuICBpdGVtczogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW1bXTtcblxuICAvLyBOdW1iZXIgb2YgZGF5cyBhZnRlciB3aGljaCB0aGUgdHJpYWwgdGltZSB3aWxsIGJlIGV4cGlyZWRcbiAgbGFzdFRyaWFsRGF5czogbnVtYmVyID0gNDtcblxuICBnZXQgZnJlcXVlbmN5KCk6ICdtb250aCcgfCAneWVhcicge1xuICAgIHJldHVybiB0aGlzLmlzQW5udWFsKCkgPyAneWVhcicgOiAnbW9udGgnO1xuICB9XG5cbiAgZ2V0IGlzVHJpYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnN0cmlwZUlkO1xuICB9XG5cbiAgZ2V0IGlzUGFpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnN0cmlwZUlkO1xuICB9XG5cbiAgZ2V0IHByaWNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHN1bSArIGl0ZW0udG90YWwsIDApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCB0aXRsZSBvZiBzdWJzY3JpcHRpb25cbiAgICovXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5wcmljZS5wcm9kdWN0LnRpdGxlKS5qb2luKCcgKyAnKTtcbiAgICAvLyByZXR1cm4gdGhpcy5pc1RyaWFsID8gJ1RyaWFsIHBlcmlvZCcgOiB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5wcmljZS5wcm9kdWN0LnRpdGxlKS5qb2luKCcgKyAnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHN1YnNjcmlwdGlvbiBpcyBjb25zaWRlcmVkIGFjdGl2ZSBpZiB0aGUgZW5kIGRhdGUgaGFzIG5vdCB5ZXQgYXJyaXZlZCBhbmQgaXRzIHN0YXR1cyBpcyBcIkFjdGl2ZVwiIG9yIFwiUGFzdCBkdWVcIlxuICAgKi9cbiAgZ2V0IGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzRXhwaXJlZDogYm9vbGVhbiA9IG5ldyBEYXRlKHRoaXMuZW5kRGF0ZSkuZ2V0VGltZSgpIDwgbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgICByZXR1cm4gIWlzRXhwaXJlZCAmJiAoW1NlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtLkFDVElWRSwgU2VydmljZVN1YnNjcmlwdGlvblN0YXR1c0VudW0uUEFTVF9EVUVdLmluY2x1ZGVzKHRoaXMuc3RhdHVzKSk7XG4gIH1cblxuICBnZXQgZGF5c1JlbWFpbigpOiBudW1iZXIge1xuICAgIGNvbnN0IGRheXNSZW1haW5zOiBudW1iZXIgPSBNYXRoLnJvdW5kKFxuICAgICAgKG5ldyBEYXRlKHRoaXMuZW5kRGF0ZSkuZ2V0VGltZSgpIC0gbmV3IERhdGUoKS5nZXRUaW1lKCkpIC8gKDEwMDAgKiAzNjAwICogMjQpXG4gICAgKTtcblxuICAgIHJldHVybiBkYXlzUmVtYWlucyA+IDAgPyBkYXlzUmVtYWlucyA6IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJpYWwgZXhwaXJlZFxuICAgKi9cbiAgaXNUcmlhbEV4cGlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF5c1JlbWFpbiAmJiB0aGlzLmRheXNSZW1haW4gPD0gMDtcbiAgfVxuXG4gIGlzVHJpYWxFeHBpcmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kYXlzUmVtYWluID4gMCAmJiB0aGlzLmRheXNSZW1haW4gPD0gdGhpcy5sYXN0VHJpYWxEYXlzO1xuICB9XG5cbiAgaXNSZW5ld2FibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmlzVHJpYWwgJiYgdGhpcy5pc0FjdGl2ZTtcbiAgfVxuXG4gIGdldEl0ZW1zKCk6IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uKHRoaXMuaXRlbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0IHdvcmtUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1dvcmtUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHNvbGVUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1NvbGVUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHByb3BlcnR5VGFua0l0ZW0oKTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNQcm9wZXJ0aWVzKCkpO1xuICB9XG5cbiAgaGFzUHJvcGVydHlUYW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmluZCgoc3Vic2NyaXB0aW9uSXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb25JdGVtLnByaWNlLnByb2R1Y3Qucm9sZS5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLlBST1BFUlRZX1RBTkspO1xuICAgIH0pO1xuICB9XG5cbiAgaGFzV29ya1RhbmsoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChzdWJzY3JpcHRpb25JdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbkl0ZW0ucHJpY2UucHJvZHVjdC5yb2xlLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uV09SS19UQU5LKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBib3VnaHQgYmVmb3JlIHByaWNlIHVwZGF0ZXMsIGFjdGl2ZSBmb3Igc29tZSB0aW1lIHRvIGxldCBjdXN0b21lciBzZWxlY3QgYSBuZXcgcGxhblxuICAgKiBpbXBvc3NpYmxlIHRvIHVwZGF0ZSwgb25seSBwcm9sb25nIG9yIGJ1eSBuZXdcbiAgICovXG4gIGlzQXJjaGl2ZWQoKTogYm9vbGVhbiB7XG4gICAgLy8gc3Vic2NyaXB0aW9uIHdpdGggYXQgbGVhc3Qgb25lIGFyY2hpdmVkIHByb2R1Y3QgY29uc2lkZXJlZCBhcyBhcmNoaXZlZFxuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNBcmNoaXZlZCgpKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQ2FzZSB3aGVuIHBheW1lbnQgd2FzIGZhaWxlZCwgYnV0IHVzZXIgaGFzIGEgdGltZSB0byB1cGRhdGUgcGF5bWVudCBtZXRob2RcbiAgICovXG4gIGlzUGFzdER1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtLlBBU1RfRFVFO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnJlbnQgc3Vic2NyaXB0aW9uIGhhcyBwcm92aWRlZCBzdWJzY3JpcHRpb24gaXRlbVxuICAgKi9cbiAgaGFzSXRlbShpdGVtVG9DaGVjazogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLmlkID09PSBpdGVtVG9DaGVjay5wcmljZS5pZCk7XG4gIH1cblxuICBoYXNQcm9kdWN0KHByb2R1Y3Q6IFNlcnZpY2VQcm9kdWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4gPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlkID09PSBwcm9kdWN0LmlkKTtcbiAgfVxuXG4gIGlzUGFja2FnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGggPT09IFNlcnZpY2VQcm9kdWN0LnF1YW50aXR5O1xuICB9XG5cbiAgaXNBbm51YWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMuZ2V0SXRlbXMoKS5nZXRQcmljZXMoKS5hbm51YWwubGVuZ3RoIHx8IHRoaXMuZ2V0SXRlbXMoKS5nZXRQcmljZXMoKS5hbm51YWxQYWNrYWdlLmxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmVjb21tZW5kZWQgbnVtYmVyIG9mIHByb3BlcnRpZXMgdG8gYnV5LFxuICAgKiBiYXNlZCBvbiB0aGUgcHJvcGVydHkgc2VydmljZSBwcm9kdWN0IGFuZCB0aGUgbnVtYmVyIG9mIHByb3BlcnRpZXMgdGhlIHVzZXIgaGFzXG4gICAqL1xuICBnZXRSZWNvbW1lbmRlZFByb3BlcnRpZXNRdHkocHJvcGVydHlJdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSwgcHJvcGVydGllc1F0eTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBtaW46IG51bWJlciA9IHByb3BlcnR5SXRlbS5wcmljZS5wcm9kdWN0Lm1pblF0eTtcblxuICAgIHJldHVybiBNYXRoLm1heChtaW4sIHByb3BlcnRpZXNRdHkpO1xuICB9XG59XG4iXX0=
@@ -50,6 +50,7 @@ export class SubscriptionService extends RestService {
50
50
  return this.getActive().pipe(map((subscriptions) => subscriptions.getTrials()));
51
51
  }
52
52
  /**
53
+ * @TODO remove
53
54
  * redirect to stripe payment page
54
55
  */
55
56
  checkoutRedirect(subscription) {
@@ -67,6 +68,7 @@ export class SubscriptionService extends RestService {
67
68
  });
68
69
  }
69
70
  /**
71
+ * @TODO remove
70
72
  * redirect to stripe billing page
71
73
  */
72
74
  billingRedirect(returnUrl) {
@@ -90,6 +92,9 @@ export class SubscriptionService extends RestService {
90
92
  changeSubscription(subscription) {
91
93
  return this.http.put(`${this.environment.apiV2}/service-subscriptions/${subscription.id}`, subscription);
92
94
  }
95
+ cancel(subscription) {
96
+ return this.http.put(`${this.environment.apiV2}/service-subscriptions/${subscription.id}/cancel`, {});
97
+ }
93
98
  listenSubscriptions() {
94
99
  this.sseService.on(`serviceSubscriptions`)
95
100
  .subscribe((serviceSubscription) => {
@@ -120,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
120
125
  type: Inject,
121
126
  args: ['environment']
122
127
  }] }]; } });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR2pELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBR2pHLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sb0JBQW9CLENBQUM7QUFFaEYsT0FBTyxFQUFhLFdBQVcsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUVuRCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFFdEU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBd0Y7SUFPL0gsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDaEQsVUFBc0IsRUFDdEIsWUFBMEIsRUFDRCxXQUFnQjtRQUVqRCxLQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBTnZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUNoRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ0QsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFYbkQsa0JB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O2dCQUNkLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDeEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUNqRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2lIQS9HVSxtQkFBbUIsd0lBWXBCLGFBQWE7cUhBWlosbUJBQW1CLGNBRmxCLE1BQU07NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBYUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtsb2FkU3RyaXBlfSBmcm9tICdAc3RyaXBlL3N0cmlwZS1qcyc7XG5pbXBvcnQge3BsYWluVG9DbGFzc30gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHtTZXJ2aWNlU3Vic2NyaXB0aW9ufSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvc2VydmljZS1zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHtFdmVudERpc3BhdGNoZXJTZXJ2aWNlLCBTc2VTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9ldmVudCc7XG5pbXBvcnQge1NlcnZpY2VTdWJzY3JpcHRpb25JdGVtfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvc2VydmljZS1zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24taXRlbSc7XG5pbXBvcnQgeyBBcHBFdmVudCwgQXBwRXZlbnRUeXBlRW51bSwgU2VydmljZVByb2R1Y3QgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtUb2FzdFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3RvYXN0JztcbmltcG9ydCB7UmVzdE1ldGhvZCwgUmVzdFNlcnZpY2V9IGZyb20gJy4uLy4uL3Jlc3QnO1xuaW1wb3J0IHtTZXJ2aWNlU3Vic2NyaXB0aW9uIGFzIFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHtTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuXG4vKipcbiAqIEBUT0RPIEFsZXggcmVmYWN0b3JcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3Vic2NyaXB0aW9uU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlLCBTZXJ2aWNlU3Vic2NyaXB0aW9uLCBTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbj4ge1xuICBpc0FwaVBsYXRmb3JtOiBib29sZWFuID0gdHJ1ZTtcbiAgZW5kcG9pbnRVcmk6IHN0cmluZyA9ICdzZXJ2aWNlLXN1YnNjcmlwdGlvbnMnO1xuICBtb2RlbENsYXNzOiB0eXBlb2YgU2VydmljZVN1YnNjcmlwdGlvbiA9IFNlcnZpY2VTdWJzY3JpcHRpb247XG4gIGNvbGxlY3Rpb25DbGFzczogdHlwZW9mIFNlcnZpY2VTdWJzY3JpcHRpb25Db2xsZWN0aW9uID0gU2VydmljZVN1YnNjcmlwdGlvbkNvbGxlY3Rpb247XG4gIGRpc2FibGVkTWV0aG9kczogUmVzdE1ldGhvZFtdID0gWydwdXRCYXRjaCcsICdkZWxldGUnLCAnZGVsZXRlQmF0Y2gnXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBwcml2YXRlIHNzZVNlcnZpY2U6IFNzZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHN1cGVyKGh0dHAsIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIGVudmlyb25tZW50KTtcblxuICAgIHRoaXMubGlzdGVuU3Vic2NyaXB0aW9ucygpO1xuICB9XG5cbiAgc3RhcnRUcmlhbChzdWJzY3JpcHRpb246IFNlcnZpY2VTdWJzY3JpcHRpb24pOiBPYnNlcnZhYmxlPFNlcnZpY2VTdWJzY3JpcHRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hcGlVcmx9L3RyaWFsYCwgc3Vic2NyaXB0aW9uKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3U3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uID0gcGxhaW5Ub0NsYXNzKFNlcnZpY2VTdWJzY3JpcHRpb24sIHJlc3BvbnNlKTtcblxuICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW25ld1N1YnNjcmlwdGlvbl0sICdwb3N0Jyk7XG5cbiAgICAgICAgICByZXR1cm4gbmV3U3Vic2NyaXB0aW9uO1xuICAgICAgICB9KVxuICAgICAgKVxuICB9XG5cbiAgZ2V0U3RyaXBlQ2xpZW50U2VjcmV0KHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbik6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuYXBpVXJsLCBzdWJzY3JpcHRpb24pLnBpcGUobWFwKChyZXNwb25zZTogc3RyaW5nKSA9PiByZXNwb25zZSkpO1xuICB9XG5cbiAgZ2V0QWN0aXZlKCk6IE9ic2VydmFibGU8U2VydmljZVN1YnNjcmlwdGlvbkNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKG1hcCgoc3Vic2NyaXB0aW9ucykgPT4gc3Vic2NyaXB0aW9ucy5nZXRBY3RpdmUoKSkpO1xuICB9XG5cbiAgZ2V0VHJpYWxzKCk6IE9ic2VydmFibGU8U2VydmljZVN1YnNjcmlwdGlvbkNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKG1hcCgoc3Vic2NyaXB0aW9ucykgPT4gc3Vic2NyaXB0aW9ucy5nZXRUcmlhbHMoKSkpO1xuICB9XG5cbiAgZ2V0QWN0aXZlVHJpYWxzKCk6IE9ic2VydmFibGU8U2VydmljZVN1YnNjcmlwdGlvbkNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRBY3RpdmUoKS5waXBlKG1hcCgoc3Vic2NyaXB0aW9ucykgPT4gc3Vic2NyaXB0aW9ucy5nZXRUcmlhbHMoKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIHJlZGlyZWN0IHRvIHN0cmlwZSBwYXltZW50IHBhZ2VcbiAgICovXG4gIGFzeW5jIGNoZWNrb3V0UmVkaXJlY3Qoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzdHJpcGU6IGFueSA9IGF3YWl0IGxvYWRTdHJpcGUodGhpcy5lbnZpcm9ubWVudC5zdHJpcGVQayk7XG5cbiAgICB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zdHJpcGUvY2hlY2tvdXQtc2Vzc2lvbmAsIHtcbiAgICAgIGl0ZW1zOiBzdWJzY3JpcHRpb24uaXRlbXMsXG4gICAgICBzdWNjZXNzVXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICAgIGNhbmNlbFVybDogd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoc2Vzc2lvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vIEBUb2RvIHJlbW92ZSB1c2VyIFRSSUFMIHN0YXR1c1xuICAgICAgICBzdHJpcGUucmVkaXJlY3RUb0NoZWNrb3V0KHtzZXNzaW9uSWQ6IHNlc3Npb259KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIHJlZGlyZWN0IHRvIHN0cmlwZSBiaWxsaW5nIHBhZ2VcbiAgICovXG4gIGJpbGxpbmdSZWRpcmVjdChyZXR1cm5Vcmw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vc3RyaXBlL2JpbGxpbmctcG9ydGFsLXNlc3Npb25gLCB7XG4gICAgICBwYXJhbXM6IHtyZXR1cm5Vcmx9XG4gICAgfSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZShyZXNwb25zZS51cmwpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBkaWZmZXJlbmNlIGJldHdlZW4gY3VycmVudCBzdWJzY3JpcHRpb24gYW5kIHNlbGVjdGVkIG5ldyBzdWJzY3JpcHRpb25cbiAgICovXG4gIGdldFByb3JhdGlvbkNvc3Qoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zZXJ2aWNlLXN1YnNjcmlwdGlvbnMvJHtzdWJzY3JpcHRpb24uaWR9L3Byb3JhdGlvbi1jb3N0YCwgc3Vic2NyaXB0aW9uKS5waXBlKFxuICAgICAgbWFwKChwcm9yYXRpb25Db3N0OiBudW1iZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIHByb3JhdGlvbkNvc3Q7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHN1YnNjcmlwdGlvbiBwbGFuXG4gICAqL1xuICBjaGFuZ2VTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zZXJ2aWNlLXN1YnNjcmlwdGlvbnMvJHtzdWJzY3JpcHRpb24uaWR9YCwgc3Vic2NyaXB0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnNzZVNlcnZpY2Uub24oYHNlcnZpY2VTdWJzY3JpcHRpb25zYClcbiAgICAgIC5zdWJzY3JpYmUoKHNlcnZpY2VTdWJzY3JpcHRpb246IFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbiA9IHBsYWluVG9DbGFzcyhTZXJ2aWNlU3Vic2NyaXB0aW9uLCBzZXJ2aWNlU3Vic2NyaXB0aW9uKTtcbiAgICAgICAgLy8gdXBkYXRlIGV4aXN0aW5nIG1lc3NhZ2UgaWYgcmVhZCBhbmQgYWRkIG5ldyBtZXNzYWdlIGlmIG5vdCByZWFkXG4gICAgICAgIGlmICh0aGlzLmNhY2hlLmZpbmRCeSgnaWQnLCBzdWJzY3JpcHRpb24uaWQpKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbc3Vic2NyaXB0aW9uXSwgJ3B1dCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW3N1YnNjcmlwdGlvbl0sICdwb3N0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBAVE9ETyB2aWsgdGVzdCBhbmQgcmVtb3ZlXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5TRVJWSUNFX1NVQlNDUklQVElPTl9VUERBVEVELCBudWxsKSk7XG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2VzcygnU3Vic2NyaXB0aW9uIHN1Y2Nlc3NmdWxseSB1cGRhdGVkJyk7XG4gICAgICAgIH0sIDIwMDApO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR2pELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBR2pHLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sb0JBQW9CLENBQUM7QUFFaEYsT0FBTyxFQUFhLFdBQVcsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUVuRCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFFdEU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBd0Y7SUFPL0gsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDaEQsVUFBc0IsRUFDdEIsWUFBMEIsRUFDRCxXQUFnQjtRQUVqRCxLQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBTnZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUNoRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ0QsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFYbkQsa0JB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LENBQUMsWUFBWSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDNUM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQzdDO1lBRUQsNEJBQTRCO1lBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN4RyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7aUhBckhVLG1CQUFtQix3SUFZcEIsYUFBYTtxSEFaWixtQkFBbUIsY0FGbEIsTUFBTTs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFhSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2xvYWRTdHJpcGV9IGZyb20gJ0BzdHJpcGUvc3RyaXBlLWpzJztcbmltcG9ydCB7cGxhaW5Ub0NsYXNzfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1NlcnZpY2VTdWJzY3JpcHRpb259IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbic7XG5pbXBvcnQge0V2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIFNzZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2V2ZW50JztcbmltcG9ydCB7U2VydmljZVN1YnNjcmlwdGlvbkl0ZW19IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1pdGVtJztcbmltcG9ydCB7IEFwcEV2ZW50LCBBcHBFdmVudFR5cGVFbnVtLCBTZXJ2aWNlUHJvZHVjdCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1RvYXN0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vdG9hc3QnO1xuaW1wb3J0IHtSZXN0TWV0aG9kLCBSZXN0U2VydmljZX0gZnJvbSAnLi4vLi4vcmVzdCc7XG5pbXBvcnQge1NlcnZpY2VTdWJzY3JpcHRpb24gYXMgU2VydmljZVN1YnNjcmlwdGlvbkJhc2V9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQge1NlcnZpY2VTdWJzY3JpcHRpb25Db2xsZWN0aW9ufSBmcm9tICcuLi8uLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5cbi8qKlxuICogQFRPRE8gQWxleCByZWZhY3RvclxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25TZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8U2VydmljZVN1YnNjcmlwdGlvbkJhc2UsIFNlcnZpY2VTdWJzY3JpcHRpb24sIFNlcnZpY2VTdWJzY3JpcHRpb25Db2xsZWN0aW9uPiB7XG4gIGlzQXBpUGxhdGZvcm06IGJvb2xlYW4gPSB0cnVlO1xuICBlbmRwb2ludFVyaTogc3RyaW5nID0gJ3NlcnZpY2Utc3Vic2NyaXB0aW9ucyc7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBTZXJ2aWNlU3Vic2NyaXB0aW9uID0gU2VydmljZVN1YnNjcmlwdGlvbjtcbiAgY29sbGVjdGlvbkNsYXNzOiB0eXBlb2YgU2VydmljZVN1YnNjcmlwdGlvbkNvbGxlY3Rpb24gPSBTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbjtcbiAgZGlzYWJsZWRNZXRob2RzOiBSZXN0TWV0aG9kW10gPSBbJ3B1dEJhdGNoJywgJ2RlbGV0ZScsICdkZWxldGVCYXRjaCddO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3NlU2VydmljZTogU3NlU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gICAgc3VwZXIoaHR0cCwgZXZlbnREaXNwYXRjaGVyU2VydmljZSwgZW52aXJvbm1lbnQpO1xuXG4gICAgdGhpcy5saXN0ZW5TdWJzY3JpcHRpb25zKCk7XG4gIH1cblxuICBzdGFydFRyaWFsKHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbik6IE9ic2VydmFibGU8U2VydmljZVN1YnNjcmlwdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFwaVVybH0vdHJpYWxgLCBzdWJzY3JpcHRpb24pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogU2VydmljZVN1YnNjcmlwdGlvbkJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdTdWJzY3JpcHRpb246IFNlcnZpY2VTdWJzY3JpcHRpb24gPSBwbGFpblRvQ2xhc3MoU2VydmljZVN1YnNjcmlwdGlvbiwgcmVzcG9uc2UpO1xuXG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbbmV3U3Vic2NyaXB0aW9uXSwgJ3Bvc3QnKTtcblxuICAgICAgICAgIHJldHVybiBuZXdTdWJzY3JpcHRpb247XG4gICAgICAgIH0pXG4gICAgICApXG4gIH1cblxuICBnZXRTdHJpcGVDbGllbnRTZWNyZXQoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5hcGlVcmwsIHN1YnNjcmlwdGlvbikucGlwZShtYXAoKHJlc3BvbnNlOiBzdHJpbmcpID0+IHJlc3BvbnNlKSk7XG4gIH1cblxuICBnZXRBY3RpdmUoKTogT2JzZXJ2YWJsZTxTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUobWFwKChzdWJzY3JpcHRpb25zKSA9PiBzdWJzY3JpcHRpb25zLmdldEFjdGl2ZSgpKSk7XG4gIH1cblxuICBnZXRUcmlhbHMoKTogT2JzZXJ2YWJsZTxTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUobWFwKChzdWJzY3JpcHRpb25zKSA9PiBzdWJzY3JpcHRpb25zLmdldFRyaWFscygpKSk7XG4gIH1cblxuICBnZXRBY3RpdmVUcmlhbHMoKTogT2JzZXJ2YWJsZTxTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZSgpLnBpcGUobWFwKChzdWJzY3JpcHRpb25zKSA9PiBzdWJzY3JpcHRpb25zLmdldFRyaWFscygpKSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gcmVtb3ZlXG4gICAqIHJlZGlyZWN0IHRvIHN0cmlwZSBwYXltZW50IHBhZ2VcbiAgICovXG4gIGFzeW5jIGNoZWNrb3V0UmVkaXJlY3Qoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzdHJpcGU6IGFueSA9IGF3YWl0IGxvYWRTdHJpcGUodGhpcy5lbnZpcm9ubWVudC5zdHJpcGVQayk7XG5cbiAgICB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zdHJpcGUvY2hlY2tvdXQtc2Vzc2lvbmAsIHtcbiAgICAgIGl0ZW1zOiBzdWJzY3JpcHRpb24uaXRlbXMsXG4gICAgICBzdWNjZXNzVXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICAgIGNhbmNlbFVybDogd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoc2Vzc2lvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vIEBUb2RvIHJlbW92ZSB1c2VyIFRSSUFMIHN0YXR1c1xuICAgICAgICBzdHJpcGUucmVkaXJlY3RUb0NoZWNrb3V0KHtzZXNzaW9uSWQ6IHNlc3Npb259KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHJlbW92ZVxuICAgKiByZWRpcmVjdCB0byBzdHJpcGUgYmlsbGluZyBwYWdlXG4gICAqL1xuICBiaWxsaW5nUmVkaXJlY3QocmV0dXJuVXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3N0cmlwZS9iaWxsaW5nLXBvcnRhbC1zZXNzaW9uYCwge1xuICAgICAgcGFyYW1zOiB7cmV0dXJuVXJsfVxuICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgd2luZG93LmxvY2F0aW9uLnJlcGxhY2UocmVzcG9uc2UudXJsKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZGlmZmVyZW5jZSBiZXR3ZWVuIGN1cnJlbnQgc3Vic2NyaXB0aW9uIGFuZCBzZWxlY3RlZCBuZXcgc3Vic2NyaXB0aW9uXG4gICAqL1xuICBnZXRQcm9yYXRpb25Db3N0KHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbik6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vc2VydmljZS1zdWJzY3JpcHRpb25zLyR7c3Vic2NyaXB0aW9uLmlkfS9wcm9yYXRpb24tY29zdGAsIHN1YnNjcmlwdGlvbikucGlwZShcbiAgICAgIG1hcCgocHJvcmF0aW9uQ29zdDogbnVtYmVyKSA9PiB7XG4gICAgICAgIHJldHVybiBwcm9yYXRpb25Db3N0O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBzdWJzY3JpcHRpb24gcGxhblxuICAgKi9cbiAgY2hhbmdlU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbik6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vc2VydmljZS1zdWJzY3JpcHRpb25zLyR7c3Vic2NyaXB0aW9uLmlkfWAsIHN1YnNjcmlwdGlvbik7XG4gIH1cblxuICBjYW5jZWwoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zZXJ2aWNlLXN1YnNjcmlwdGlvbnMvJHtzdWJzY3JpcHRpb24uaWR9L2NhbmNlbGAsIHt9KTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnNzZVNlcnZpY2Uub24oYHNlcnZpY2VTdWJzY3JpcHRpb25zYClcbiAgICAgIC5zdWJzY3JpYmUoKHNlcnZpY2VTdWJzY3JpcHRpb246IFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbiA9IHBsYWluVG9DbGFzcyhTZXJ2aWNlU3Vic2NyaXB0aW9uLCBzZXJ2aWNlU3Vic2NyaXB0aW9uKTtcbiAgICAgICAgLy8gdXBkYXRlIGV4aXN0aW5nIG1lc3NhZ2UgaWYgcmVhZCBhbmQgYWRkIG5ldyBtZXNzYWdlIGlmIG5vdCByZWFkXG4gICAgICAgIGlmICh0aGlzLmNhY2hlLmZpbmRCeSgnaWQnLCBzdWJzY3JpcHRpb24uaWQpKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbc3Vic2NyaXB0aW9uXSwgJ3B1dCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW3N1YnNjcmlwdGlvbl0sICdwb3N0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBAVE9ETyB2aWsgdGVzdCBhbmQgcmVtb3ZlXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5TRVJWSUNFX1NVQlNDUklQVElPTl9VUERBVEVELCBudWxsKSk7XG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2VzcygnU3Vic2NyaXB0aW9uIHN1Y2Nlc3NmdWxseSB1cGRhdGVkJyk7XG4gICAgICAgIH0sIDIwMDApO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1375,10 +1375,22 @@ ServiceProduct.quantity = 3;
1375
1375
  // 6: 6
1376
1376
  // }
1377
1377
 
1378
+ var ServicePriceTypeEnum;
1379
+ (function (ServicePriceTypeEnum) {
1380
+ ServicePriceTypeEnum[ServicePriceTypeEnum["DEPRECATED"] = 0] = "DEPRECATED";
1381
+ ServicePriceTypeEnum[ServicePriceTypeEnum["MONTHLY"] = 1] = "MONTHLY";
1382
+ ServicePriceTypeEnum[ServicePriceTypeEnum["MONTHLY_PACKAGE"] = 2] = "MONTHLY_PACKAGE";
1383
+ ServicePriceTypeEnum[ServicePriceTypeEnum["YEARLY"] = 3] = "YEARLY";
1384
+ ServicePriceTypeEnum[ServicePriceTypeEnum["YEARLY_PACKAGE"] = 4] = "YEARLY_PACKAGE";
1385
+ })(ServicePriceTypeEnum || (ServicePriceTypeEnum = {}));
1386
+
1378
1387
  class ServicePrice extends ServicePrice$1 {
1379
1388
  toSubscriptionItem() {
1380
1389
  return plainToClass(ServiceSubscriptionItem, { price: this, quantity: this.product.minQty });
1381
1390
  }
1391
+ isAnnual() {
1392
+ return [ServicePriceTypeEnum.YEARLY, ServicePriceTypeEnum.YEARLY_PACKAGE].includes(this.type);
1393
+ }
1382
1394
  }
1383
1395
  __decorate([
1384
1396
  Type(() => ServiceProduct)
@@ -3872,15 +3884,6 @@ class SoleInvoiceCollection extends Collection {
3872
3884
  }
3873
3885
  }
3874
3886
 
3875
- var ServicePriceTypeEnum;
3876
- (function (ServicePriceTypeEnum) {
3877
- ServicePriceTypeEnum[ServicePriceTypeEnum["DEPRECATED"] = 0] = "DEPRECATED";
3878
- ServicePriceTypeEnum[ServicePriceTypeEnum["MONTHLY"] = 1] = "MONTHLY";
3879
- ServicePriceTypeEnum[ServicePriceTypeEnum["MONTHLY_PACKAGE"] = 2] = "MONTHLY_PACKAGE";
3880
- ServicePriceTypeEnum[ServicePriceTypeEnum["YEARLY"] = 3] = "YEARLY";
3881
- ServicePriceTypeEnum[ServicePriceTypeEnum["YEARLY_PACKAGE"] = 4] = "YEARLY_PACKAGE";
3882
- })(ServicePriceTypeEnum || (ServicePriceTypeEnum = {}));
3883
-
3884
3887
  /**
3885
3888
  * @TODO vik refactor
3886
3889
  */
@@ -3938,6 +3941,9 @@ class SubscriptionItemCollection extends Collection {
3938
3941
  hasProduct(product) {
3939
3942
  return !!this.findBy('price.product.id', product.id);
3940
3943
  }
3944
+ getPrices() {
3945
+ return new ServicePriceCollection(this.mapBy('price'));
3946
+ }
3941
3947
  }
3942
3948
 
3943
3949
  class ServiceSubscriptionCollection extends Collection {
@@ -4866,6 +4872,9 @@ class ServiceSubscription extends ServiceSubscription$1 {
4866
4872
  // Number of days after which the trial time will be expired
4867
4873
  this.lastTrialDays = 4;
4868
4874
  }
4875
+ get frequency() {
4876
+ return this.isAnnual() ? 'year' : 'month';
4877
+ }
4869
4878
  get isTrial() {
4870
4879
  return !this.stripeId;
4871
4880
  }
@@ -4956,6 +4965,9 @@ class ServiceSubscription extends ServiceSubscription$1 {
4956
4965
  isPackage() {
4957
4966
  return this.items.length === ServiceProduct.quantity;
4958
4967
  }
4968
+ isAnnual() {
4969
+ return !!(this.getItems().getPrices().annual.length || this.getItems().getPrices().annualPackage.length);
4970
+ }
4959
4971
  /**
4960
4972
  * Recommended number of properties to buy,
4961
4973
  * based on the property service product and the number of properties the user has
@@ -7737,7 +7749,8 @@ const ENDPOINTS = {
7737
7749
  PROPERTIES_SALES_GET: new Endpoint('GET', '\\/properties\\/sales'),
7738
7750
  PROPERTIES_SUGGESTIONS_GET: new Endpoint('GET', '/property\\/\\w+\\/v2\\/.*$'),
7739
7751
  PROPERTIES_VALUATIONS_DOCUMENTS_POST: new Endpoint('POST', '\\/properties\\/\\d+\\/valuations\\/\\d+\\/documents'),
7740
- PRORATION_COST_POST: new Endpoint('POST', '\\/subscriptions\\/proration-cost'),
7752
+ // @TODO rename
7753
+ PRORATION_COST_POST: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/proration-cost'),
7741
7754
  SALARY_FORECAST_GET: new Endpoint('GET', '\\/salary-forecasts'),
7742
7755
  SALARY_FORECAST_POST: new Endpoint('POST', '\\/salary-forecasts'),
7743
7756
  SALARY_FORECAST_PUT: new Endpoint('PUT', '\\/salary-forecasts'),
@@ -7745,11 +7758,9 @@ const ENDPOINTS = {
7745
7758
  SERVICE_PRODUCTS_GET: new Endpoint('GET', '\\/service-products'),
7746
7759
  SERVICE_PAYMENTS_GET: new Endpoint('GET', '\\/service-payments'),
7747
7760
  SERVICE_SUBSCRIPTIONS_GET: new Endpoint('GET', '\\/service-subscriptions'),
7761
+ SERVICE_SUBSCRIPTIONS_CANCEL: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/cancel'),
7748
7762
  SERVICE_PAYMENT_INVOICE_URL_GET: new Endpoint('GET', '\\/service-payments\\/\\d+\\/invoice-url'),
7749
- STRIPE_BILLING_PORTAL_GET: new Endpoint('GET', '\\/stripe\\/billing-portal-session'),
7750
- STRIPE_CHECKOUT_SESSION_POST: new Endpoint('POST', '\\/stripe\\/checkout-session'),
7751
- SUBSCRIPTION_LAST_GET: new Endpoint('GET', '\\/subscriptions\\/last'),
7752
- SUBSCRIPTION_ITEMS_PUT: new Endpoint('PUT', '\\/subscriptions\\/items'),
7763
+ SUBSCRIPTION_ITEMS_PUT: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/items'),
7753
7764
  SOLE_BUSINESSES_GET: new Endpoint('GET', '\\/sole-businesses'),
7754
7765
  SOLE_BUSINESSES_POST: new Endpoint('POST', '\\/sole-businesses'),
7755
7766
  SOLE_BUSINESSES_PUT: new Endpoint('PUT', '\\/sole-businesses\\/\\d+'),
@@ -13381,6 +13392,7 @@ class SubscriptionService extends RestService$1 {
13381
13392
  return this.getActive().pipe(map((subscriptions) => subscriptions.getTrials()));
13382
13393
  }
13383
13394
  /**
13395
+ * @TODO remove
13384
13396
  * redirect to stripe payment page
13385
13397
  */
13386
13398
  checkoutRedirect(subscription) {
@@ -13398,6 +13410,7 @@ class SubscriptionService extends RestService$1 {
13398
13410
  });
13399
13411
  }
13400
13412
  /**
13413
+ * @TODO remove
13401
13414
  * redirect to stripe billing page
13402
13415
  */
13403
13416
  billingRedirect(returnUrl) {
@@ -13421,6 +13434,9 @@ class SubscriptionService extends RestService$1 {
13421
13434
  changeSubscription(subscription) {
13422
13435
  return this.http.put(`${this.environment.apiV2}/service-subscriptions/${subscription.id}`, subscription);
13423
13436
  }
13437
+ cancel(subscription) {
13438
+ return this.http.put(`${this.environment.apiV2}/service-subscriptions/${subscription.id}/cancel`, {});
13439
+ }
13424
13440
  listenSubscriptions() {
13425
13441
  this.sseService.on(`serviceSubscriptions`)
13426
13442
  .subscribe((serviceSubscription) => {