simpo-component-library 3.0.36 → 3.0.37

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.
Files changed (59) hide show
  1. package/esm2022/lib/elements/index.mjs +7 -6
  2. package/esm2022/lib/elements/portfolio/portfolio.component.mjs +45 -37
  3. package/esm2022/lib/elements/property/property.component.mjs +41 -0
  4. package/esm2022/lib/pipes/amount.pipe.mjs +2 -2
  5. package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +12 -41
  6. package/esm2022/lib/sections/property-component/property-component.component.mjs +7 -84
  7. package/esm2022/lib/sections/property-component/property-component.modal.mjs +1 -1
  8. package/esm2022/lib/sections/property-list/property-list.component.mjs +57 -29
  9. package/esm2022/lib/services/events.service.mjs +1 -2
  10. package/esm2022/lib/services/rest.service.mjs +3 -104
  11. package/esm2022/lib/styles/index.mjs +1 -6
  12. package/esm2022/public-api.mjs +1 -5
  13. package/fesm2022/simpo-component-library.mjs +1534 -2711
  14. package/fesm2022/simpo-component-library.mjs.map +1 -1
  15. package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +1 -1
  16. package/lib/elements/index.d.ts +3 -2
  17. package/lib/elements/portfolio/portfolio.component.d.ts +12 -13
  18. package/lib/elements/property/property.component.d.ts +8 -0
  19. package/lib/sections/navbar-section/navbar-section.component.d.ts +1 -9
  20. package/lib/sections/property-component/property-component.component.d.ts +4 -25
  21. package/lib/sections/property-component/property-component.modal.d.ts +18 -11
  22. package/lib/sections/property-list/property-list.component.d.ts +2 -9
  23. package/lib/services/events.service.d.ts +0 -1
  24. package/lib/services/rest.service.d.ts +0 -26
  25. package/lib/styles/index.d.ts +0 -4
  26. package/package.json +1 -1
  27. package/public-api.d.ts +0 -4
  28. package/simpo-component-library-3.0.37.tgz +0 -0
  29. package/esm2022/lib/elements/my-documents/my-documents.component.mjs +0 -11
  30. package/esm2022/lib/elements/my-orders/my-orders.component.mjs +0 -64
  31. package/esm2022/lib/elements/my-statement/my-statement.component.mjs +0 -26
  32. package/esm2022/lib/elements/need-help/need-help.component.mjs +0 -11
  33. package/esm2022/lib/elements/payment-confirmation/payment-confirmation.component.mjs +0 -98
  34. package/esm2022/lib/elements/properties/properties.component.mjs +0 -41
  35. package/esm2022/lib/elements/property-view/property-view.component.mjs +0 -64
  36. package/esm2022/lib/sections/kyc-details/kyc-details.component.mjs +0 -163
  37. package/esm2022/lib/sections/profile-section/profile-section.component.mjs +0 -58
  38. package/esm2022/lib/sections/profile-section/profile-section.modal.mjs +0 -2
  39. package/esm2022/lib/sections/property-detail/property-detail.component.mjs +0 -169
  40. package/esm2022/lib/sections/property-detail/property-detail.model.mjs +0 -2
  41. package/esm2022/lib/sections/signup-signin/signup-signin.component.mjs +0 -441
  42. package/esm2022/lib/sections/signup-signin/signup-signin.model.mjs +0 -2
  43. package/esm2022/lib/sections/verify-property-payment/verify-property-payment.component.mjs +0 -55
  44. package/lib/elements/my-documents/my-documents.component.d.ts +0 -5
  45. package/lib/elements/my-orders/my-orders.component.d.ts +0 -10
  46. package/lib/elements/my-statement/my-statement.component.d.ts +0 -8
  47. package/lib/elements/need-help/need-help.component.d.ts +0 -5
  48. package/lib/elements/payment-confirmation/payment-confirmation.component.d.ts +0 -26
  49. package/lib/elements/properties/properties.component.d.ts +0 -16
  50. package/lib/elements/property-view/property-view.component.d.ts +0 -16
  51. package/lib/sections/kyc-details/kyc-details.component.d.ts +0 -38
  52. package/lib/sections/profile-section/profile-section.component.d.ts +0 -18
  53. package/lib/sections/profile-section/profile-section.modal.d.ts +0 -5
  54. package/lib/sections/property-detail/property-detail.component.d.ts +0 -40
  55. package/lib/sections/property-detail/property-detail.model.d.ts +0 -5
  56. package/lib/sections/signup-signin/signup-signin.component.d.ts +0 -67
  57. package/lib/sections/signup-signin/signup-signin.model.d.ts +0 -10
  58. package/lib/sections/verify-property-payment/verify-property-payment.component.d.ts +0 -16
  59. package/simpo-component-library-3.0.36.tgz +0 -0
@@ -1,98 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, Inject } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
5
- import { MatIconModule } from '@angular/material/icon';
6
- import { StorageKeys } from '../../styles/index';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/material/dialog";
9
- import * as i2 from "../../services/rest.service";
10
- import * as i3 from "../../services/events.service";
11
- import * as i4 from "@angular/material/icon";
12
- import * as i5 from "@angular/forms";
13
- export class PaymentConfirmationComponent {
14
- constructor(dialogRef, data, restService, _eventService) {
15
- this.dialogRef = dialogRef;
16
- this.data = data;
17
- this.restService = restService;
18
- this._eventService = _eventService;
19
- this.sqFeetArea = 0;
20
- this.payload = {
21
- totalAmount: 0,
22
- totalTax: 0
23
- };
24
- this.tokenRequest = {
25
- investorProperty: {
26
- investorId: localStorage.getItem(StorageKeys.INVESTOR_ID),
27
- propertyId: 0,
28
- sqFeetArea: 1,
29
- totalSqFeetAmount: 0,
30
- totalGstApplied: 0,
31
- buyingPrice: 0,
32
- status: 'PENDING',
33
- deleted: false
34
- },
35
- name: '',
36
- email: '',
37
- mobile: '',
38
- paymentCurrency: 'INR'
39
- };
40
- }
41
- ngOnInit() {
42
- this.propertyDetails = this.data.details;
43
- this.tokenRequest.investorProperty.sqFeetArea = this.data.totalArea;
44
- this.tokenRequest.investorProperty.propertyId = this.propertyDetails.propertyId;
45
- this.addOrRemoveProperty();
46
- this.getInvestorDetails();
47
- }
48
- close() {
49
- this.dialogRef.close();
50
- }
51
- addOrRemoveProperty() {
52
- this.tokenRequest.investorProperty.totalSqFeetAmount = Number(Number((this.propertyDetails?.financeDetails?.pricePerSqFeet || 0) * this.tokenRequest.investorProperty.sqFeetArea).toFixed(2));
53
- this.tokenRequest.investorProperty.totalGstApplied = Number(Number((0.28) * this.tokenRequest.investorProperty.totalSqFeetAmount).toFixed(2));
54
- }
55
- addSqFeet() {
56
- this.tokenRequest.investorProperty.sqFeetArea++;
57
- this.addOrRemoveProperty();
58
- }
59
- removeSqFeet() {
60
- if (this.tokenRequest.investorProperty.sqFeetArea > 1) {
61
- this.tokenRequest.investorProperty.sqFeetArea--;
62
- this.addOrRemoveProperty();
63
- }
64
- }
65
- purchaseProperty() {
66
- this.tokenRequest.investorProperty.buyingPrice = Number(Number(this.tokenRequest.investorProperty.totalSqFeetAmount + this.tokenRequest.investorProperty.totalGstApplied).toFixed(2));
67
- this.restService.createPropertyPaymentToken(this.tokenRequest).subscribe((res) => {
68
- this._eventService.cashFreeEvent.emit({ data: res });
69
- });
70
- }
71
- getInvestorDetails() {
72
- this.restService.getInvesterById().subscribe((res) => {
73
- this.investorDetails = res.message;
74
- this.tokenRequest.name = this.investorDetails.fulName;
75
- this.tokenRequest.email = this.investorDetails.emailId;
76
- this.tokenRequest.mobile = this.investorDetails.phoneNumber;
77
- });
78
- }
79
- preventMinus(event) {
80
- if (event.key === '-') {
81
- event.preventDefault();
82
- this.tokenRequest.investorProperty.sqFeetArea = 1;
83
- }
84
- }
85
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: PaymentConfirmationComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.RestService }, { token: i3.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
86
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: PaymentConfirmationComponent, isStandalone: true, selector: "simpo-payment-confirmation", ngImport: i0, template: "<section>\r\n <div class=\"header\">\r\n <p>Payment Confirmation</p>\r\n <mat-icon (click)=\"close()\">close</mat-icon>\r\n </div>\r\n\r\n <div class=\"body\">\r\n <div class=\"property\">\r\n <div class=\"left-side\">\r\n <img [src]=\"propertyDetails?.imgUrl[0]\"\r\n alt=\"No Image Available\">\r\n <div>\r\n <p class=\"property-name\">{{propertyDetails?.name ?? \"N/A\"}}</p>\r\n <p class=\"location\">{{propertyDetails?.location ?? \"N/A\"}}</p>\r\n </div>\r\n </div>\r\n <div class=\"right-side\">\r\n <p class=\"Price-text\">Price/Sq.ft</p>\r\n <p class=\"perSqFtAmount\">\u20B9 {{propertyDetails?.financeDetails?.pricePerSqFeet ?? 0}}/Sq.ft</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"price-detail\">\r\n <div class=\"d-flex justify-space mb-30\">\r\n <div class=\"price-left-side\">\r\n Quantity\r\n </div>\r\n <div class=\"price-right-side\">\r\n <div class=\"quantity\">\r\n <div class=\"remove\" (click)=\"removeSqFeet()\"><mat-icon>remove</mat-icon></div>\r\n <input type=\"number\" [(ngModel)]=\"tokenRequest.investorProperty.sqFeetArea\" (ngModelChange)=\"addOrRemoveProperty()\" (keyup)=\"preventMinus($event)\">\r\n <div class=\"add\" (click)=\"addSqFeet()\"><mat-icon>add</mat-icon></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-space mb-15\">\r\n <div class=\"price-left-side\">\r\n Total Price\r\n </div>\r\n <div class=\"price-right-side\">\r\n \u20B9{{tokenRequest?.investorProperty?.totalSqFeetAmount ?? \"N/A\"}}\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-space mb-15\">\r\n <div class=\"price-left-side\">\r\n Property Tax\r\n </div>\r\n <div class=\"price-text\">\r\n \u20B9 0\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-space mb-15\">\r\n <div class=\"price-left-side\">\r\n GST(28%)\r\n </div>\r\n <div class=\"price-text\">\r\n \u20B9 {{tokenRequest?.investorProperty?.totalGstApplied ?? \"0\"}}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"footer\">\r\n <div class=\"d-flex justify-space mb-15\">\r\n <div class=\"price-left-side\">\r\n Total Payable\r\n </div>\r\n <div class=\"price-text\">\r\n \u20B9 {{tokenRequest.investorProperty.totalSqFeetAmount + tokenRequest.investorProperty.totalGstApplied}}\r\n </div>\r\n </div>\r\n <button class=\"buy-btn\" (click)=\"purchaseProperty()\">Buy Now</button>\r\n </div>\r\n </div>\r\n\r\n</section>\r\n", styles: [".header{display:flex;height:60px;justify-content:space-between;align-items:center;padding-left:20px;padding-right:20px;border-bottom:1px solid rgba(14,35,60,.16)}.header P{font-size:20px;font-weight:700;font-family:DM SANS}.body{padding:20px;background:#fcfcfc;border:10px}.property{display:flex;justify-content:space-between;background:#fff;padding:15px}.left-side{display:flex;gap:15px;width:70%}.left-side img{height:77px;width:97px;border-radius:8px}.property-name{margin-bottom:10px!important;font-size:16px;font-weight:600;color:#0009;font-family:DM SANS}.location{font-size:14px;color:#0000004d;font-family:DM SANS;font-weight:600}.perSqFtAmount{font-size:20px;color:#494949;font-weight:700;font-family:DM SANS}.Price-text{font-size:13px;font-weight:600;font-family:DM SANS;margin-bottom:10px!important;color:#393838}p{margin-bottom:0!important}.price-detail{margin-top:15px;background:#fff;padding:15px;border-radius:10px}.mb-15{margin-bottom:15px}.justify-space{justify-content:space-between}.price-left-side{font-size:16px;font-weight:700;font-family:DM SANS}.price-right-side{font-size:18px;font-weight:700;font-family:DM SANS}.price-text{font-size:17px;font-weight:600;font-family:DM SANS}.footer{margin-top:20px}.buy-btn{background:#122335;border:1px solid rgba(18,35,53,1);border-radius:7px;color:#fff;padding:5px;font-size:17px!important;font-family:DM SANS}.quantity{display:flex;gap:10px;justify-content:end}.quantity .add{background:#122335;color:#fff;display:flex;display:display;align-items:center;justify-content:center;border-radius:7px;cursor:pointer}.quantity input{background:#f8a938;border:1px solid rgba(248,169,56,1);border-radius:7px;outline:none;width:30%;padding-left:10px;color:#fff;text-align:center}.quantity .remove{background:#122335;color:#fff;display:flex;display:display;align-items:center;justify-content:center;border-radius:7px;cursor:pointer}.mb-30{margin-bottom:30px}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }] }); }
87
- }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: PaymentConfirmationComponent, decorators: [{
89
- type: Component,
90
- args: [{ selector: 'simpo-payment-confirmation', standalone: true, imports: [MatIconModule,
91
- FormsModule,
92
- CommonModule
93
- ], template: "<section>\r\n <div class=\"header\">\r\n <p>Payment Confirmation</p>\r\n <mat-icon (click)=\"close()\">close</mat-icon>\r\n </div>\r\n\r\n <div class=\"body\">\r\n <div class=\"property\">\r\n <div class=\"left-side\">\r\n <img [src]=\"propertyDetails?.imgUrl[0]\"\r\n alt=\"No Image Available\">\r\n <div>\r\n <p class=\"property-name\">{{propertyDetails?.name ?? \"N/A\"}}</p>\r\n <p class=\"location\">{{propertyDetails?.location ?? \"N/A\"}}</p>\r\n </div>\r\n </div>\r\n <div class=\"right-side\">\r\n <p class=\"Price-text\">Price/Sq.ft</p>\r\n <p class=\"perSqFtAmount\">\u20B9 {{propertyDetails?.financeDetails?.pricePerSqFeet ?? 0}}/Sq.ft</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"price-detail\">\r\n <div class=\"d-flex justify-space mb-30\">\r\n <div class=\"price-left-side\">\r\n Quantity\r\n </div>\r\n <div class=\"price-right-side\">\r\n <div class=\"quantity\">\r\n <div class=\"remove\" (click)=\"removeSqFeet()\"><mat-icon>remove</mat-icon></div>\r\n <input type=\"number\" [(ngModel)]=\"tokenRequest.investorProperty.sqFeetArea\" (ngModelChange)=\"addOrRemoveProperty()\" (keyup)=\"preventMinus($event)\">\r\n <div class=\"add\" (click)=\"addSqFeet()\"><mat-icon>add</mat-icon></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-space mb-15\">\r\n <div class=\"price-left-side\">\r\n Total Price\r\n </div>\r\n <div class=\"price-right-side\">\r\n \u20B9{{tokenRequest?.investorProperty?.totalSqFeetAmount ?? \"N/A\"}}\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-space mb-15\">\r\n <div class=\"price-left-side\">\r\n Property Tax\r\n </div>\r\n <div class=\"price-text\">\r\n \u20B9 0\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-space mb-15\">\r\n <div class=\"price-left-side\">\r\n GST(28%)\r\n </div>\r\n <div class=\"price-text\">\r\n \u20B9 {{tokenRequest?.investorProperty?.totalGstApplied ?? \"0\"}}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"footer\">\r\n <div class=\"d-flex justify-space mb-15\">\r\n <div class=\"price-left-side\">\r\n Total Payable\r\n </div>\r\n <div class=\"price-text\">\r\n \u20B9 {{tokenRequest.investorProperty.totalSqFeetAmount + tokenRequest.investorProperty.totalGstApplied}}\r\n </div>\r\n </div>\r\n <button class=\"buy-btn\" (click)=\"purchaseProperty()\">Buy Now</button>\r\n </div>\r\n </div>\r\n\r\n</section>\r\n", styles: [".header{display:flex;height:60px;justify-content:space-between;align-items:center;padding-left:20px;padding-right:20px;border-bottom:1px solid rgba(14,35,60,.16)}.header P{font-size:20px;font-weight:700;font-family:DM SANS}.body{padding:20px;background:#fcfcfc;border:10px}.property{display:flex;justify-content:space-between;background:#fff;padding:15px}.left-side{display:flex;gap:15px;width:70%}.left-side img{height:77px;width:97px;border-radius:8px}.property-name{margin-bottom:10px!important;font-size:16px;font-weight:600;color:#0009;font-family:DM SANS}.location{font-size:14px;color:#0000004d;font-family:DM SANS;font-weight:600}.perSqFtAmount{font-size:20px;color:#494949;font-weight:700;font-family:DM SANS}.Price-text{font-size:13px;font-weight:600;font-family:DM SANS;margin-bottom:10px!important;color:#393838}p{margin-bottom:0!important}.price-detail{margin-top:15px;background:#fff;padding:15px;border-radius:10px}.mb-15{margin-bottom:15px}.justify-space{justify-content:space-between}.price-left-side{font-size:16px;font-weight:700;font-family:DM SANS}.price-right-side{font-size:18px;font-weight:700;font-family:DM SANS}.price-text{font-size:17px;font-weight:600;font-family:DM SANS}.footer{margin-top:20px}.buy-btn{background:#122335;border:1px solid rgba(18,35,53,1);border-radius:7px;color:#fff;padding:5px;font-size:17px!important;font-family:DM SANS}.quantity{display:flex;gap:10px;justify-content:end}.quantity .add{background:#122335;color:#fff;display:flex;display:display;align-items:center;justify-content:center;border-radius:7px;cursor:pointer}.quantity input{background:#f8a938;border:1px solid rgba(248,169,56,1);border-radius:7px;outline:none;width:30%;padding-left:10px;color:#fff;text-align:center}.quantity .remove{background:#122335;color:#fff;display:flex;display:display;align-items:center;justify-content:center;border-radius:7px;cursor:pointer}.mb-30{margin-bottom:30px}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
94
- }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
95
- type: Inject,
96
- args: [MAT_DIALOG_DATA]
97
- }] }, { type: i2.RestService }, { type: i3.EventsService }] });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1jb25maXJtYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy9wYXltZW50LWNvbmZpcm1hdGlvbi9wYXltZW50LWNvbmZpcm1hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3BheW1lbnQtY29uZmlybWF0aW9uL3BheW1lbnQtY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0FBYWpELE1BQU0sT0FBTyw0QkFBNEI7SUFFdkMsWUFBbUIsU0FBcUQsRUFDdEMsSUFBUyxFQUNqQyxXQUF3QixFQUN4QixhQUE2QjtRQUhwQixjQUFTLEdBQVQsU0FBUyxDQUE0QztRQUN0QyxTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUl2QyxlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLFlBQU8sR0FBUTtZQUNiLFdBQVcsRUFBRSxDQUFDO1lBQ2QsUUFBUSxFQUFFLENBQUM7U0FDWixDQUFBO1FBR0QsaUJBQVksR0FBUTtZQUNsQixnQkFBZ0IsRUFBRTtnQkFDaEIsVUFBVSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztnQkFDekQsVUFBVSxFQUFFLENBQUM7Z0JBQ2IsVUFBVSxFQUFFLENBQUM7Z0JBQ2IsaUJBQWlCLEVBQUUsQ0FBQztnQkFDcEIsZUFBZSxFQUFFLENBQUM7Z0JBQ2xCLFdBQVcsRUFBRSxDQUFDO2dCQUNkLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixPQUFPLEVBQUUsS0FBSzthQUNmO1lBQ0QsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxFQUFFO1lBQ1YsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQTtJQXpCRSxDQUFDO0lBMkJKLFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRXBFLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO1FBRWhGLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlMLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEosQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQ3BELENBQUM7WUFDQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEwsSUFBSSxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDcEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDO1lBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFvQjtRQUMvQixJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDdEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQTtRQUNuRCxDQUFDO0lBQ0gsQ0FBQzs4R0F0RlUsNEJBQTRCLDhDQUc3QixlQUFlO2tHQUhkLDRCQUE0QixzRkNuQnpDLHl0RkE0RUEscWhFRGhFWSxhQUFhLG1MQUNyQixXQUFXLGd4QkFDWCxZQUFZOzsyRkFLSCw0QkFBNEI7a0JBVnhDLFNBQVM7K0JBQ0UsNEJBQTRCLGNBQzFCLElBQUksV0FDUCxDQUFDLGFBQWE7d0JBQ3JCLFdBQVc7d0JBQ1gsWUFBWTtxQkFDYjs7MEJBT0UsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VLZXlzIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2luZGV4JztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tcGF5bWVudC1jb25maXJtYXRpb24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW01hdEljb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BheW1lbnQtY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcGF5bWVudC1jb25maXJtYXRpb24uY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFBheW1lbnRDb25maXJtYXRpb25Db21wb25lbnQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UGF5bWVudENvbmZpcm1hdGlvbkNvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcclxuICAgIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZXZlbnRTZXJ2aWNlIDogRXZlbnRzU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgcHJvcGVydHlEZXRhaWxzOiBhbnk7XHJcbiAgc3FGZWV0QXJlYTogbnVtYmVyID0gMDtcclxuICBwYXlsb2FkOiBhbnkgPSB7XHJcbiAgICB0b3RhbEFtb3VudDogMCxcclxuICAgIHRvdGFsVGF4OiAwXHJcbiAgfVxyXG4gIGludmVzdG9yRGV0YWlsczogYW55O1xyXG5cclxuICB0b2tlblJlcXVlc3Q6IGFueSA9IHtcclxuICAgIGludmVzdG9yUHJvcGVydHk6IHtcclxuICAgICAgaW52ZXN0b3JJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oU3RvcmFnZUtleXMuSU5WRVNUT1JfSUQpLFxyXG4gICAgICBwcm9wZXJ0eUlkOiAwLFxyXG4gICAgICBzcUZlZXRBcmVhOiAxLFxyXG4gICAgICB0b3RhbFNxRmVldEFtb3VudDogMCxcclxuICAgICAgdG90YWxHc3RBcHBsaWVkOiAwLFxyXG4gICAgICBidXlpbmdQcmljZTogMCxcclxuICAgICAgc3RhdHVzOiAnUEVORElORycsXHJcbiAgICAgIGRlbGV0ZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgbmFtZTogJycsXHJcbiAgICBlbWFpbDogJycsXHJcbiAgICBtb2JpbGU6ICcnLFxyXG4gICAgcGF5bWVudEN1cnJlbmN5OiAnSU5SJ1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnByb3BlcnR5RGV0YWlscyA9IHRoaXMuZGF0YS5kZXRhaWxzO1xyXG4gICAgdGhpcy50b2tlblJlcXVlc3QuaW52ZXN0b3JQcm9wZXJ0eS5zcUZlZXRBcmVhID0gdGhpcy5kYXRhLnRvdGFsQXJlYTtcclxuXHJcbiAgICB0aGlzLnRva2VuUmVxdWVzdC5pbnZlc3RvclByb3BlcnR5LnByb3BlcnR5SWQgPSB0aGlzLnByb3BlcnR5RGV0YWlscy5wcm9wZXJ0eUlkO1xyXG5cclxuICAgIHRoaXMuYWRkT3JSZW1vdmVQcm9wZXJ0eSgpO1xyXG4gICAgdGhpcy5nZXRJbnZlc3RvckRldGFpbHMoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGFkZE9yUmVtb3ZlUHJvcGVydHkoKSB7XHJcbiAgICB0aGlzLnRva2VuUmVxdWVzdC5pbnZlc3RvclByb3BlcnR5LnRvdGFsU3FGZWV0QW1vdW50ID0gTnVtYmVyKE51bWJlcigodGhpcy5wcm9wZXJ0eURldGFpbHM/LmZpbmFuY2VEZXRhaWxzPy5wcmljZVBlclNxRmVldCB8fCAwKSAqIHRoaXMudG9rZW5SZXF1ZXN0LmludmVzdG9yUHJvcGVydHkuc3FGZWV0QXJlYSkudG9GaXhlZCgyKSk7XHJcbiAgICB0aGlzLnRva2VuUmVxdWVzdC5pbnZlc3RvclByb3BlcnR5LnRvdGFsR3N0QXBwbGllZCA9IE51bWJlcihOdW1iZXIoKDAuMjgpICogdGhpcy50b2tlblJlcXVlc3QuaW52ZXN0b3JQcm9wZXJ0eS50b3RhbFNxRmVldEFtb3VudCkudG9GaXhlZCgyKSk7XHJcbiAgfVxyXG5cclxuICBhZGRTcUZlZXQoKSB7XHJcbiAgICB0aGlzLnRva2VuUmVxdWVzdC5pbnZlc3RvclByb3BlcnR5LnNxRmVldEFyZWErKztcclxuICAgIHRoaXMuYWRkT3JSZW1vdmVQcm9wZXJ0eSgpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlU3FGZWV0KCkge1xyXG4gICAgaWYodGhpcy50b2tlblJlcXVlc3QuaW52ZXN0b3JQcm9wZXJ0eS5zcUZlZXRBcmVhID4gMSlcclxuICAgIHtcclxuICAgICAgdGhpcy50b2tlblJlcXVlc3QuaW52ZXN0b3JQcm9wZXJ0eS5zcUZlZXRBcmVhLS07XHJcbiAgICAgIHRoaXMuYWRkT3JSZW1vdmVQcm9wZXJ0eSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVyY2hhc2VQcm9wZXJ0eSgpIHtcclxuICAgIHRoaXMudG9rZW5SZXF1ZXN0LmludmVzdG9yUHJvcGVydHkuYnV5aW5nUHJpY2UgPSBOdW1iZXIoTnVtYmVyKHRoaXMudG9rZW5SZXF1ZXN0LmludmVzdG9yUHJvcGVydHkudG90YWxTcUZlZXRBbW91bnQgKyB0aGlzLnRva2VuUmVxdWVzdC5pbnZlc3RvclByb3BlcnR5LnRvdGFsR3N0QXBwbGllZCkudG9GaXhlZCgyKSk7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmNyZWF0ZVByb3BlcnR5UGF5bWVudFRva2VuKHRoaXMudG9rZW5SZXF1ZXN0KS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5jYXNoRnJlZUV2ZW50LmVtaXQoe2RhdGE6IHJlc30pO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldEludmVzdG9yRGV0YWlscygpIHtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0SW52ZXN0ZXJCeUlkKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmludmVzdG9yRGV0YWlscyA9IHJlcy5tZXNzYWdlO1xyXG4gICAgICB0aGlzLnRva2VuUmVxdWVzdC5uYW1lID0gdGhpcy5pbnZlc3RvckRldGFpbHMuZnVsTmFtZTtcclxuICAgICAgdGhpcy50b2tlblJlcXVlc3QuZW1haWwgPSB0aGlzLmludmVzdG9yRGV0YWlscy5lbWFpbElkO1xyXG4gICAgICB0aGlzLnRva2VuUmVxdWVzdC5tb2JpbGUgPSB0aGlzLmludmVzdG9yRGV0YWlscy5waG9uZU51bWJlcjtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcmV2ZW50TWludXMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICctJykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnRva2VuUmVxdWVzdC5pbnZlc3RvclByb3BlcnR5LnNxRmVldEFyZWEgPSAxXHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8c2VjdGlvbj5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICA8cD5QYXltZW50IENvbmZpcm1hdGlvbjwvcD5cclxuICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiY2xvc2UoKVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImJvZHlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwcm9wZXJ0eVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGVmdC1zaWRlXCI+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cInByb3BlcnR5RGV0YWlscz8uaW1nVXJsWzBdXCJcclxuICAgICAgICAgIGFsdD1cIk5vIEltYWdlIEF2YWlsYWJsZVwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInByb3BlcnR5LW5hbWVcIj57e3Byb3BlcnR5RGV0YWlscz8ubmFtZSA/PyBcIk4vQVwifX08L3A+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cImxvY2F0aW9uXCI+e3twcm9wZXJ0eURldGFpbHM/LmxvY2F0aW9uID8/IFwiTi9BXCJ9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1zaWRlXCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJQcmljZS10ZXh0XCI+UHJpY2UvU3EuZnQ8L3A+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJwZXJTcUZ0QW1vdW50XCI+4oK5IHt7cHJvcGVydHlEZXRhaWxzPy5maW5hbmNlRGV0YWlscz8ucHJpY2VQZXJTcUZlZXQgPz8gMH19L1NxLmZ0PC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwcmljZS1kZXRhaWxcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LXNwYWNlIG1iLTMwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLWxlZnQtc2lkZVwiPlxyXG4gICAgICAgICAgUXVhbnRpdHlcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcmlnaHQtc2lkZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZW1vdmVcIiAoY2xpY2spPVwicmVtb3ZlU3FGZWV0KClcIj48bWF0LWljb24+cmVtb3ZlPC9tYXQtaWNvbj48L2Rpdj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBbKG5nTW9kZWwpXT1cInRva2VuUmVxdWVzdC5pbnZlc3RvclByb3BlcnR5LnNxRmVldEFyZWFcIiAobmdNb2RlbENoYW5nZSk9XCJhZGRPclJlbW92ZVByb3BlcnR5KClcIiAoa2V5dXApPVwicHJldmVudE1pbnVzKCRldmVudClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZFwiIChjbGljayk9XCJhZGRTcUZlZXQoKVwiPjxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktc3BhY2UgbWItMTVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtbGVmdC1zaWRlXCI+XHJcbiAgICAgICAgICBUb3RhbCBQcmljZVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1yaWdodC1zaWRlXCI+XHJcbiAgICAgICAgICDigrl7e3Rva2VuUmVxdWVzdD8uaW52ZXN0b3JQcm9wZXJ0eT8udG90YWxTcUZlZXRBbW91bnQgPz8gXCJOL0FcIn19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktc3BhY2UgbWItMTVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtbGVmdC1zaWRlXCI+XHJcbiAgICAgICAgICBQcm9wZXJ0eSBUYXhcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdGV4dFwiPlxyXG4gICAgICAgICAg4oK5IDBcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1zcGFjZSBtYi0xNVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1sZWZ0LXNpZGVcIj5cclxuICAgICAgICAgIEdTVCgyOCUpXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXRleHRcIj5cclxuICAgICAgICAgIOKCuSB7e3Rva2VuUmVxdWVzdD8uaW52ZXN0b3JQcm9wZXJ0eT8udG90YWxHc3RBcHBsaWVkID8/IFwiMFwifX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktc3BhY2UgbWItMTVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtbGVmdC1zaWRlXCI+XHJcbiAgICAgICAgICBUb3RhbCBQYXlhYmxlXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXRleHRcIj5cclxuICAgICAgICAgIOKCuSB7e3Rva2VuUmVxdWVzdC5pbnZlc3RvclByb3BlcnR5LnRvdGFsU3FGZWV0QW1vdW50ICsgdG9rZW5SZXF1ZXN0LmludmVzdG9yUHJvcGVydHkudG90YWxHc3RBcHBsaWVkfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJidXktYnRuXCIgKGNsaWNrKT1cInB1cmNoYXNlUHJvcGVydHkoKVwiPkJ1eSBOb3c8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
@@ -1,41 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, HostListener } from '@angular/core';
3
- import { MatIcon } from '@angular/material/icon';
4
- import { PropertyViewComponent } from '../property-view/property-view.component';
5
- import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
6
- import { FormateAmount } from '../../pipes/amount.pipe';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "./../../services/rest.service";
9
- import * as i2 from "@angular/common";
10
- import * as i3 from "ngx-skeleton-loader";
11
- export class PropertiesComponent {
12
- constructor(restService) {
13
- this.restService = restService;
14
- this.pageLoader = false;
15
- this.viewTab = false;
16
- }
17
- ngOnInit() {
18
- this.getPropertyDetails();
19
- this.getScreenSize();
20
- }
21
- getPropertyDetails() {
22
- this.pageLoader = true;
23
- this.restService.getMyPropertyDetails().subscribe((res) => {
24
- this.propertyDetails = res;
25
- this.pageLoader = false;
26
- });
27
- }
28
- getScreenSize() {
29
- this.screenWidth = window.innerWidth;
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: PropertiesComponent, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: PropertiesComponent, isStandalone: true, selector: "simpo-properties", host: { listeners: { "window: resize": "getScreenSize($event)" } }, ngImport: i0, template: "<section class=\"main-container\" *ngIf=\"!viewTab && !pageLoader\">\r\n <!-- <div class=\"card-section d-flex gap-2\">\r\n <div class=\"cards\" *ngFor=\"let ele of investments\">\r\n <div class=\"head\">{{ele.name}}</div>\r\n <div class=\"mini-cards\">\r\n <div class=\"mini-card\" *ngFor=\"let ele of ele.details\">\r\n <div class=\"text\">{{ele.name}}</div>\r\n <div class=\"number d-flex\">{{ele.value}}&nbsp;&nbsp;<span *ngIf=\"ele?.spanValue\"\r\n class=\"span-text d-flex\"><mat-icon>arrow_drop_up</mat-icon>\r\n {{ele.spanValue}}</span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"property-tabs d-flex gap-10 mt-3\">\r\n <div class=\"tab\" *ngFor=\"let ele of tabs\" (click)=\"activeTab = ele.value\"\r\n [class.tabActive]=\"activeTab == ele.value\">{{ele.viewValue}}</div>\r\n </div> -->\r\n <div class=\"property-cards\">\r\n <ng-container *ngFor=\"let ele of propertyDetails\">\r\n <div class=\"property-card w-100 d-flex gap-10\" (click)=\"viewTab = true;selectedId = ele.propertyId\">\r\n <div id=\"carouselExampleInterval\" class=\"carousel slide p-relative w-35 h-34\" data-bs-ride=\"carousel\" *ngIf=\"ele?.propertyImage\">\r\n <div class=\"carousel-inner\">\r\n <ng-container *ngFor=\"let ele of ele?.propertyImage;let i = index\">\r\n <div class=\"carousel-item active\" [class.active]=\"i\" data-bs-interval=\"3000\">\r\n <img [src]=\"ele\" class=\"d-block w-100 height-30 br-10\" alt=\"property-image\">\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"propertyName d-flex justify-content-center p-15\">\r\n <div class=\"carousel d-flex justify-content-end align-items-end\">\r\n <div class=\"carousel-indicators additional-properties-1\">\r\n <ng-container *ngFor=\"let ele of ele.propertyImage;let i = index\">\r\n <button type=\"button\" data-bs-target=\"#carouselExampleInterval\"\r\n [attr.data-bs-slide-to]=\"i\" class=\"active additional-properties\"\r\n aria-current=\"true\" aria-label=\"Slide 1\"></button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"property-card w-35 d-flex gap-10\" *ngIf=\"!ele?.propertyImage\">\r\n <img src=\"https://upload.wikimedia.org/wikipedia/commons/1/14/No_Image_Available.jpg\" class=\"d-block w-100 height-30 br-10\" alt=\"property-image\">\r\n </div>\r\n <div class=\"right-section\">\r\n <div class=\"right-top d-flex justify-content-between\">\r\n <div class=\"head-left\">\r\n <div class=\"propertyname\">{{ele?.name ?? \"N/A\"}}</div>\r\n <div class=\"property-location\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/384275c1737629729545location_on.png\"\r\n alt=\"location image\" class=\"grey-icon\">{{ele?.location ?? \"N/A\"}}</div>\r\n </div>\r\n </div>\r\n <!-- <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/637983c1739855715188Vector%2012%20%281%29.png\" class=\"curve-img\"> -->\r\n <div class=\"row right-bottom width\">\r\n <!-- <div class=\"row w-100\"> -->\r\n <div class=\"col-md-3 col-6 details\">\r\n <div class=\"top-detail text-center\">\u20B9 {{ele?.investedAmount ?? 0}}</div>\r\n <div class=\"bottom-detail text-center\">Invested Amount</div>\r\n </div>\r\n <div class=\"col-md-3 col-6 details\" [class.lst-div]=\"screenWidth < 475\">\r\n <div class=\"top-detail text-center\">{{ele?.totalSqFeetOwned ?? 0}}</div>\r\n <div class=\"bottom-detail text-center\">Sq.ft</div>\r\n </div>\r\n <div class=\"col-md-3 col-6 details\">\r\n <div class=\"top-detail text-center\">\u20B9 {{ele?.indicativeMarketValue ?? 0}}</div>\r\n <div class=\"bottom-detail text-center\">Current Value</div>\r\n </div>\r\n <div class=\"col-md-3 col-6 details lst-div\">\r\n <div class=\"top-detail text-center\" [ngClass]=\"{'text-profit': (ele?.currentAmount - ele?.investedAmount) > 0,\r\n 'text-loss': (ele?.currentAmount - ele?.investedAmount) < 0}\">\r\n \u20B9 {{ (ele?.currentAmount ?? 0) - (ele?.investedAmount ?? 0) | formateAmount:'IND' }}</div>\r\n <div class=\"bottom-detail text-center\" [ngClass]=\"{'text-profit': (ele?.currentAmount - ele?.investedAmount) > 0,\r\n 'text-loss': (ele?.currentAmount - ele?.investedAmount) < 0}\">Profit/Loss</div>\r\n </div>\r\n <!-- lst-div -->\r\n <!-- </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</section>\r\n<section class=\"view-container\" *ngIf=\"viewTab\">\r\n <div class=\"back\">\r\n <div class=\"back-text d-flex align-items-center\">\r\n <p class=\"my-text mb-0 common-style\" (click)=\"viewTab = false\">My Properties</p><mat-icon\r\n class=\"my-text\">keyboard_arrow_right</mat-icon>\r\n <p class=\"prty-text mb-0 common-style\">Property Details</p>\r\n </div>\r\n </div>\r\n <simpo-property-view [id]=\"selectedId\"></simpo-property-view>\r\n</section>\r\n<section class=\"pageloader\" *ngIf=\"pageLoader\">\r\n <div class=\"property-cards\">\r\n <div *ngFor=\"let skel of [1,2,3]\">\r\n <ngx-skeleton-loader count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width : '100%',\r\n height: '30vh',\r\n 'border-radius': '10px',\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n\r\n</section>", styles: ["*{font-family:DM Sans!important}mat-icon{font-family:Material Icons!important}.gap-2{gap:2%!important}.cards{background:#fff;border-radius:10px;border:1px solid rgba(0,0,0,.03);width:49%;padding:10px}.head{font-size:18px;font-weight:600;line-height:24px;color:#000;margin-bottom:10px}.mini-cards{display:grid;grid-template-columns:48% 48%;gap:3%}.mini-card{background:#fafafa;border-radius:7px;padding:10px 15px;margin-bottom:10px}.text{font-size:14px;line-height:24px;font-weight:500;color:#01161ecc;margin-bottom:10px}.number{font-size:24px;line-height:24px;font-weight:700;color:#01161e}.span-text{font-size:13px;line-height:24px;font-weight:700;color:#36b37e}.property-tab{display:flex;gap:10px;margin-top:15px}.gap-10{gap:10px}.tab{padding:10px;background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:8px;font-size:16px;line-height:24px;font-weight:500;color:#01161e;cursor:pointer}.tabActive{color:#f8a938!important;border:1px solid rgba(248,169,56,1)!important}.additional-properties{border-radius:50%;height:1vh;width:8px!important}.additional-properties-1{position:unset!important;padding:unset!important;margin:unset!important;width:100%}.p-relative{position:relative}.propertyName{position:absolute;bottom:0;width:100%}.height-30{height:35vh}.w-35{width:35%!important}.property-cards{overflow-y:scroll;height:81vh}.property-card{border-radius:10px!important;background:#fff;border:1px solid rgba(0,0,0,.04);margin-bottom:15px;position:relative;overflow:hidden;cursor:pointer}.br-10{border-radius:10px 0 0 10px}.right-section{width:65%}.property-name{font-size:16px;font-weight:600;line-height:21px;color:#000}.property-location{font-size:14px;font-weight:500;line-height:44px;color:#0000004d}.type{font-size:14px;font-weight:600;line-height:24px;color:#f8a938;background:#ffebcb;border-radius:8px 0 0 9px;padding:6px}.right-bottom{background:#219ebc;margin-left:5px}.details{border-right:1px solid rgba(255,255,255,.2);padding:8px;margin:8px 0}.top-detail{font-size:20px;font-weight:700;line-height:24px;color:#fff}.bottom-detail{font-size:13px;font-weight:500;line-height:24px;color:#ffffffb3}.head-left{padding:10px}.head-right{padding:10px 0}.lst-div{border:unset!important}.width{width:90%!important}.curve-img{position:absolute;width:33px;top:33%;left:31%}.p-15{padding:15px}.my-text{color:#00000080;cursor:pointer}.prty-text{color:#000}.common-style{font-size:14px;line-height:24px;font-weight:500}.grey-icon{filter:grayscale(100%) brightness(50%)}.text-profit{color:#4eeeaa}.text-loss{color:#f36f56}@media only screen and (max-width: 475px){.property-card{width:100%;display:flex;flex-direction:column;gap:10px}.carousel{position:unset;width:100%!important;padding:10px}.right-section{width:100%}.head-right{display:none}.propertyName{position:relative;bottom:50px}.h-34{height:32vh}.right-bottom{border-radius:10px}.propertyname{font-size:19px;font-weight:600}.property-location{font-size:20px}.property-cards{height:100%}.width{width:95%!important}.br-10{border-radius:10px}.height-30{height:32vh}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: PropertyViewComponent, selector: "simpo-property-view", inputs: ["id"] }, { kind: "pipe", type: FormateAmount, name: "formateAmount" }, { kind: "ngmodule", type: NgxSkeletonLoaderModule }, { kind: "component", type: i3.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }] }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: PropertiesComponent, decorators: [{
35
- type: Component,
36
- args: [{ selector: 'simpo-properties', standalone: true, imports: [CommonModule, MatIcon, PropertyViewComponent, FormateAmount, NgxSkeletonLoaderModule], template: "<section class=\"main-container\" *ngIf=\"!viewTab && !pageLoader\">\r\n <!-- <div class=\"card-section d-flex gap-2\">\r\n <div class=\"cards\" *ngFor=\"let ele of investments\">\r\n <div class=\"head\">{{ele.name}}</div>\r\n <div class=\"mini-cards\">\r\n <div class=\"mini-card\" *ngFor=\"let ele of ele.details\">\r\n <div class=\"text\">{{ele.name}}</div>\r\n <div class=\"number d-flex\">{{ele.value}}&nbsp;&nbsp;<span *ngIf=\"ele?.spanValue\"\r\n class=\"span-text d-flex\"><mat-icon>arrow_drop_up</mat-icon>\r\n {{ele.spanValue}}</span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"property-tabs d-flex gap-10 mt-3\">\r\n <div class=\"tab\" *ngFor=\"let ele of tabs\" (click)=\"activeTab = ele.value\"\r\n [class.tabActive]=\"activeTab == ele.value\">{{ele.viewValue}}</div>\r\n </div> -->\r\n <div class=\"property-cards\">\r\n <ng-container *ngFor=\"let ele of propertyDetails\">\r\n <div class=\"property-card w-100 d-flex gap-10\" (click)=\"viewTab = true;selectedId = ele.propertyId\">\r\n <div id=\"carouselExampleInterval\" class=\"carousel slide p-relative w-35 h-34\" data-bs-ride=\"carousel\" *ngIf=\"ele?.propertyImage\">\r\n <div class=\"carousel-inner\">\r\n <ng-container *ngFor=\"let ele of ele?.propertyImage;let i = index\">\r\n <div class=\"carousel-item active\" [class.active]=\"i\" data-bs-interval=\"3000\">\r\n <img [src]=\"ele\" class=\"d-block w-100 height-30 br-10\" alt=\"property-image\">\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"propertyName d-flex justify-content-center p-15\">\r\n <div class=\"carousel d-flex justify-content-end align-items-end\">\r\n <div class=\"carousel-indicators additional-properties-1\">\r\n <ng-container *ngFor=\"let ele of ele.propertyImage;let i = index\">\r\n <button type=\"button\" data-bs-target=\"#carouselExampleInterval\"\r\n [attr.data-bs-slide-to]=\"i\" class=\"active additional-properties\"\r\n aria-current=\"true\" aria-label=\"Slide 1\"></button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"property-card w-35 d-flex gap-10\" *ngIf=\"!ele?.propertyImage\">\r\n <img src=\"https://upload.wikimedia.org/wikipedia/commons/1/14/No_Image_Available.jpg\" class=\"d-block w-100 height-30 br-10\" alt=\"property-image\">\r\n </div>\r\n <div class=\"right-section\">\r\n <div class=\"right-top d-flex justify-content-between\">\r\n <div class=\"head-left\">\r\n <div class=\"propertyname\">{{ele?.name ?? \"N/A\"}}</div>\r\n <div class=\"property-location\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/384275c1737629729545location_on.png\"\r\n alt=\"location image\" class=\"grey-icon\">{{ele?.location ?? \"N/A\"}}</div>\r\n </div>\r\n </div>\r\n <!-- <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/637983c1739855715188Vector%2012%20%281%29.png\" class=\"curve-img\"> -->\r\n <div class=\"row right-bottom width\">\r\n <!-- <div class=\"row w-100\"> -->\r\n <div class=\"col-md-3 col-6 details\">\r\n <div class=\"top-detail text-center\">\u20B9 {{ele?.investedAmount ?? 0}}</div>\r\n <div class=\"bottom-detail text-center\">Invested Amount</div>\r\n </div>\r\n <div class=\"col-md-3 col-6 details\" [class.lst-div]=\"screenWidth < 475\">\r\n <div class=\"top-detail text-center\">{{ele?.totalSqFeetOwned ?? 0}}</div>\r\n <div class=\"bottom-detail text-center\">Sq.ft</div>\r\n </div>\r\n <div class=\"col-md-3 col-6 details\">\r\n <div class=\"top-detail text-center\">\u20B9 {{ele?.indicativeMarketValue ?? 0}}</div>\r\n <div class=\"bottom-detail text-center\">Current Value</div>\r\n </div>\r\n <div class=\"col-md-3 col-6 details lst-div\">\r\n <div class=\"top-detail text-center\" [ngClass]=\"{'text-profit': (ele?.currentAmount - ele?.investedAmount) > 0,\r\n 'text-loss': (ele?.currentAmount - ele?.investedAmount) < 0}\">\r\n \u20B9 {{ (ele?.currentAmount ?? 0) - (ele?.investedAmount ?? 0) | formateAmount:'IND' }}</div>\r\n <div class=\"bottom-detail text-center\" [ngClass]=\"{'text-profit': (ele?.currentAmount - ele?.investedAmount) > 0,\r\n 'text-loss': (ele?.currentAmount - ele?.investedAmount) < 0}\">Profit/Loss</div>\r\n </div>\r\n <!-- lst-div -->\r\n <!-- </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</section>\r\n<section class=\"view-container\" *ngIf=\"viewTab\">\r\n <div class=\"back\">\r\n <div class=\"back-text d-flex align-items-center\">\r\n <p class=\"my-text mb-0 common-style\" (click)=\"viewTab = false\">My Properties</p><mat-icon\r\n class=\"my-text\">keyboard_arrow_right</mat-icon>\r\n <p class=\"prty-text mb-0 common-style\">Property Details</p>\r\n </div>\r\n </div>\r\n <simpo-property-view [id]=\"selectedId\"></simpo-property-view>\r\n</section>\r\n<section class=\"pageloader\" *ngIf=\"pageLoader\">\r\n <div class=\"property-cards\">\r\n <div *ngFor=\"let skel of [1,2,3]\">\r\n <ngx-skeleton-loader count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width : '100%',\r\n height: '30vh',\r\n 'border-radius': '10px',\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n\r\n</section>", styles: ["*{font-family:DM Sans!important}mat-icon{font-family:Material Icons!important}.gap-2{gap:2%!important}.cards{background:#fff;border-radius:10px;border:1px solid rgba(0,0,0,.03);width:49%;padding:10px}.head{font-size:18px;font-weight:600;line-height:24px;color:#000;margin-bottom:10px}.mini-cards{display:grid;grid-template-columns:48% 48%;gap:3%}.mini-card{background:#fafafa;border-radius:7px;padding:10px 15px;margin-bottom:10px}.text{font-size:14px;line-height:24px;font-weight:500;color:#01161ecc;margin-bottom:10px}.number{font-size:24px;line-height:24px;font-weight:700;color:#01161e}.span-text{font-size:13px;line-height:24px;font-weight:700;color:#36b37e}.property-tab{display:flex;gap:10px;margin-top:15px}.gap-10{gap:10px}.tab{padding:10px;background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:8px;font-size:16px;line-height:24px;font-weight:500;color:#01161e;cursor:pointer}.tabActive{color:#f8a938!important;border:1px solid rgba(248,169,56,1)!important}.additional-properties{border-radius:50%;height:1vh;width:8px!important}.additional-properties-1{position:unset!important;padding:unset!important;margin:unset!important;width:100%}.p-relative{position:relative}.propertyName{position:absolute;bottom:0;width:100%}.height-30{height:35vh}.w-35{width:35%!important}.property-cards{overflow-y:scroll;height:81vh}.property-card{border-radius:10px!important;background:#fff;border:1px solid rgba(0,0,0,.04);margin-bottom:15px;position:relative;overflow:hidden;cursor:pointer}.br-10{border-radius:10px 0 0 10px}.right-section{width:65%}.property-name{font-size:16px;font-weight:600;line-height:21px;color:#000}.property-location{font-size:14px;font-weight:500;line-height:44px;color:#0000004d}.type{font-size:14px;font-weight:600;line-height:24px;color:#f8a938;background:#ffebcb;border-radius:8px 0 0 9px;padding:6px}.right-bottom{background:#219ebc;margin-left:5px}.details{border-right:1px solid rgba(255,255,255,.2);padding:8px;margin:8px 0}.top-detail{font-size:20px;font-weight:700;line-height:24px;color:#fff}.bottom-detail{font-size:13px;font-weight:500;line-height:24px;color:#ffffffb3}.head-left{padding:10px}.head-right{padding:10px 0}.lst-div{border:unset!important}.width{width:90%!important}.curve-img{position:absolute;width:33px;top:33%;left:31%}.p-15{padding:15px}.my-text{color:#00000080;cursor:pointer}.prty-text{color:#000}.common-style{font-size:14px;line-height:24px;font-weight:500}.grey-icon{filter:grayscale(100%) brightness(50%)}.text-profit{color:#4eeeaa}.text-loss{color:#f36f56}@media only screen and (max-width: 475px){.property-card{width:100%;display:flex;flex-direction:column;gap:10px}.carousel{position:unset;width:100%!important;padding:10px}.right-section{width:100%}.head-right{display:none}.propertyName{position:relative;bottom:50px}.h-34{height:32vh}.right-bottom{border-radius:10px}.propertyname{font-size:19px;font-weight:600}.property-location{font-size:20px}.property-cards{height:100%}.width{width:95%!important}.br-10{border-radius:10px}.height-30{height:32vh}}\n"] }]
37
- }], ctorParameters: () => [{ type: i1.RestService }], propDecorators: { getScreenSize: [{
38
- type: HostListener,
39
- args: ["window: resize", ["$event"]]
40
- }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3Byb3BlcnRpZXMvcHJvcGVydGllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3Byb3BlcnRpZXMvcHJvcGVydGllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRWpGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFVeEQsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXlDNUMsZUFBVSxHQUFhLEtBQUssQ0FBQTtRQWlCNUIsWUFBTyxHQUFZLEtBQUssQ0FBQTtJQXhEeEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUN6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDdEIsQ0FBQztJQW1DRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUE7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLFNBQVMsQ0FDL0MsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFBO1lBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFBO1FBQ3pCLENBQUMsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUdELGFBQWE7UUFDWCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDdkMsQ0FBQzs4R0F6RFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsZ0pDakJoQyx5ME5BeUdVLDRnR0Q1RkUsWUFBWSw4VkFBRSxPQUFPLDJJQUFFLHFCQUFxQiwyRUFBQyxhQUFhLHFEQUFFLHVCQUF1Qjs7MkZBSWxGLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBQyxhQUFhLEVBQUUsdUJBQXVCLENBQUM7Z0ZBMkQ5RixhQUFhO3NCQURaLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFByb3BlcnR5Vmlld0NvbXBvbmVudCB9IGZyb20gJy4uL3Byb3BlcnR5LXZpZXcvcHJvcGVydHktdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUgfSBmcm9tICduZ3gtc2tlbGV0b24tbG9hZGVyJztcclxuXHJcbmltcG9ydCB7IEZvcm1hdGVBbW91bnQgfSBmcm9tICcuLi8uLi9waXBlcy9hbW91bnQucGlwZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1wcm9wZXJ0aWVzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEljb24sIFByb3BlcnR5Vmlld0NvbXBvbmVudCxGb3JtYXRlQW1vdW50LCBOZ3hTa2VsZXRvbkxvYWRlck1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0aWVzLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0aWVzQ29tcG9uZW50IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0UHJvcGVydHlEZXRhaWxzKClcclxuICAgIHRoaXMuZ2V0U2NyZWVuU2l6ZSgpXHJcbiAgfVxyXG5cclxuICAvLyBpbnZlc3RtZW50czogYW55ID0gW1xyXG4gIC8vICAge1xyXG4gIC8vICAgICBuYW1lOiBcIlNRRlQgSW52ZXN0bWVudFwiLFxyXG4gIC8vICAgICBkZXRhaWxzOiBbXHJcbiAgLy8gICAgICAgeyBuYW1lOiBcIlRvdGFsIFNxLmZ0IE93bmVkXCIsIHZhbHVlOiBcIjQzXCIgfSxcclxuICAvLyAgICAgICB7IG5hbWU6IFwiQW1vdW50IEludmVzdGVkXCIsIHZhbHVlOiBcIuKCuTUuNzMgTFwiIH0sXHJcbiAgLy8gICAgICAgeyBuYW1lOiBcIkluZGljYXRpdmUgTWFya2V0IFZhbHVlXCIsIHZhbHVlOiBcIuKCuTYuMjEgTFwiLCBzcGFuVmFsdWU6IFwiKzIuMSVcIiB9LFxyXG4gIC8vICAgICAgIHsgbmFtZTogXCJJUlJcIiwgdmFsdWU6IFwiMTQlXCIgfSxcclxuICAvLyAgICAgXVxyXG4gIC8vICAgfSxcclxuICAvLyAgIHtcclxuICAvLyAgICAgbmFtZTogXCJQcml2YXRlIEludmVzdG1lbnQgXCIsXHJcbiAgLy8gICAgIGRldGFpbHM6IFtcclxuICAvLyAgICAgICB7IG5hbWU6IFwiUHJvcGVydGllcyBPd25lZFwiLCB2YWx1ZTogXCIyXCIgfSxcclxuICAvLyAgICAgICB7IG5hbWU6IFwiUHJvcGVydGllcyBTcS5mdFwiLCB2YWx1ZTogXCIzMDkyXCIgfSxcclxuICAvLyAgICAgICB7IG5hbWU6IFwiSW52ZXN0ZWQgVmFsdWVcIiwgdmFsdWU6IFwi4oK5MzIuNDEgTFwiLCBzcGFuVmFsdWU6IFwiKzIuMSVcIiB9LFxyXG4gIC8vICAgICAgIHsgbmFtZTogXCJJbmRpY2F0aXZlIE1hcmtldCBWYWx1ZVwiLCB2YWx1ZTogXCLigrkzOC41OSBMXCIgfSxcclxuICAvLyAgICAgXVxyXG4gIC8vICAgfVxyXG4gIC8vIF1cclxuXHJcbiAgLy8gYWN0aXZlVGFiOiBhbnkgPSBcIkFMTF9QUk9QRVJUSUVTXCJcclxuXHJcbiAgLy8gdGFiczogYW55ID0gW1xyXG4gIC8vICAgeyB2aWV3VmFsdWU6IFwiQWxsIFByb3BlcnRpZXNcIiwgdmFsdWU6IFwiQUxMX1BST1BFUlRJRVNcIiB9LFxyXG4gIC8vICAgeyB2aWV3VmFsdWU6IFwiTXkgU1FGVFwiLCB2YWx1ZTogXCJTUUZUXCIgfSxcclxuICAvLyAgIHsgdmlld1ZhbHVlOiBcIlByaXZhdGUgSW52ZXN0bWVudHNcIiwgdmFsdWU6IFwiUFJJVkFURVwiIH0sXHJcbiAgLy8gXVxyXG5cclxuICBwcm9wZXJ0eURldGFpbHM6IGFueTtcclxuICBzZWxlY3RlZElkIDogYW55O1xyXG5cclxuICBwYWdlTG9hZGVyIDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgZ2V0UHJvcGVydHlEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5wYWdlTG9hZGVyID0gdHJ1ZVxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRNeVByb3BlcnR5RGV0YWlscygpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5wcm9wZXJ0eURldGFpbHMgPSByZXNcclxuICAgICAgICB0aGlzLnBhZ2VMb2FkZXIgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG4gIHNjcmVlbldpZHRoIDogYW55XHJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzogcmVzaXplXCIsIFtcIiRldmVudFwiXSlcclxuICBnZXRTY3JlZW5TaXplKCkge1xyXG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gIH1cclxuXHJcblxyXG4gIHZpZXdUYWI6IGJvb2xlYW4gPSBmYWxzZVxyXG5cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCIgKm5nSWY9XCIhdmlld1RhYiAmJiAhcGFnZUxvYWRlclwiPlxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2FyZC1zZWN0aW9uIGQtZmxleCBnYXAtMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkc1wiICpuZ0Zvcj1cImxldCBlbGUgb2YgaW52ZXN0bWVudHNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRcIj57e2VsZS5uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktY2FyZHNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWNhcmRcIiAqbmdGb3I9XCJsZXQgZWxlIG9mIGVsZS5kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIj57e2VsZS5uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibnVtYmVyIGQtZmxleFwiPnt7ZWxlLnZhbHVlfX0mbmJzcDsmbmJzcDs8c3BhbiAqbmdJZj1cImVsZT8uc3BhblZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3Bhbi10ZXh0IGQtZmxleFwiPjxtYXQtaWNvbj5hcnJvd19kcm9wX3VwPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxlLnNwYW5WYWx1ZX19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvcGVydHktdGFicyBkLWZsZXggZ2FwLTEwIG10LTNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiXCIgKm5nRm9yPVwibGV0IGVsZSBvZiB0YWJzXCIgKGNsaWNrKT1cImFjdGl2ZVRhYiA9IGVsZS52YWx1ZVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy50YWJBY3RpdmVdPVwiYWN0aXZlVGFiID09IGVsZS52YWx1ZVwiPnt7ZWxlLnZpZXdWYWx1ZX19PC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvcGVydHktY2FyZHNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2YgcHJvcGVydHlEZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9wZXJ0eS1jYXJkIHctMTAwIGQtZmxleCBnYXAtMTBcIiAoY2xpY2spPVwidmlld1RhYiA9IHRydWU7c2VsZWN0ZWRJZCA9IGVsZS5wcm9wZXJ0eUlkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2Fyb3VzZWxFeGFtcGxlSW50ZXJ2YWxcIiBjbGFzcz1cImNhcm91c2VsIHNsaWRlIHAtcmVsYXRpdmUgdy0zNSBoLTM0XCIgZGF0YS1icy1yaWRlPVwiY2Fyb3VzZWxcIiAqbmdJZj1cImVsZT8ucHJvcGVydHlJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pbm5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2YgZWxlPy5wcm9wZXJ0eUltYWdlO2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtIGFjdGl2ZVwiIFtjbGFzcy5hY3RpdmVdPVwiaVwiIGRhdGEtYnMtaW50ZXJ2YWw9XCIzMDAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImVsZVwiIGNsYXNzPVwiZC1ibG9jayB3LTEwMCBoZWlnaHQtMzAgYnItMTBcIiBhbHQ9XCJwcm9wZXJ0eS1pbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9wZXJ0eU5hbWUgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgcC0xNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaW5kaWNhdG9ycyBhZGRpdGlvbmFsLXByb3BlcnRpZXMtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsZSBvZiBlbGUucHJvcGVydHlJbWFnZTtsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtYnMtdGFyZ2V0PVwiI2Nhcm91c2VsRXhhbXBsZUludGVydmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYnMtc2xpZGUtdG9dPVwiaVwiIGNsYXNzPVwiYWN0aXZlIGFkZGl0aW9uYWwtcHJvcGVydGllc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWN1cnJlbnQ9XCJ0cnVlXCIgYXJpYS1sYWJlbD1cIlNsaWRlIDFcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb3BlcnR5LWNhcmQgdy0zNSBkLWZsZXggZ2FwLTEwXCIgKm5nSWY9XCIhZWxlPy5wcm9wZXJ0eUltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zLzEvMTQvTm9fSW1hZ2VfQXZhaWxhYmxlLmpwZ1wiIGNsYXNzPVwiZC1ibG9jayB3LTEwMCBoZWlnaHQtMzAgYnItMTBcIiBhbHQ9XCJwcm9wZXJ0eS1pbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC10b3AgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9wZXJ0eW5hbWVcIj57e2VsZT8ubmFtZSA/PyBcIk4vQVwifX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9wZXJ0eS1sb2NhdGlvblwiPjxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy8zODQyNzVjMTczNzYyOTcyOTU0NWxvY2F0aW9uX29uLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImxvY2F0aW9uIGltYWdlXCIgY2xhc3M9XCJncmV5LWljb25cIj57e2VsZT8ubG9jYXRpb24gPz8gXCJOL0FcIn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGltZyBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzYzNzk4M2MxNzM5ODU1NzE1MTg4VmVjdG9yJTIwMTIlMjAlMjgxJTI5LnBuZ1wiIGNsYXNzPVwiY3VydmUtaW1nXCI+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcmlnaHQtYm90dG9tIHdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJvdyB3LTEwMFwiPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBjb2wtNiBkZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvcC1kZXRhaWwgdGV4dC1jZW50ZXJcIj7igrkge3tlbGU/LmludmVzdGVkQW1vdW50ID8/IDB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tZGV0YWlsIHRleHQtY2VudGVyXCI+SW52ZXN0ZWQgQW1vdW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBjb2wtNiBkZXRhaWxzXCIgW2NsYXNzLmxzdC1kaXZdPVwic2NyZWVuV2lkdGggPCA0NzVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9wLWRldGFpbCB0ZXh0LWNlbnRlclwiPnt7ZWxlPy50b3RhbFNxRmVldE93bmVkID8/IDB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tZGV0YWlsIHRleHQtY2VudGVyXCI+U3EuZnQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIGNvbC02IGRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9wLWRldGFpbCB0ZXh0LWNlbnRlclwiPuKCuSB7e2VsZT8uaW5kaWNhdGl2ZU1hcmtldFZhbHVlID8/IDB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tZGV0YWlsIHRleHQtY2VudGVyXCI+Q3VycmVudCBWYWx1ZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgY29sLTYgZGV0YWlscyBsc3QtZGl2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvcC1kZXRhaWwgdGV4dC1jZW50ZXJcIiBbbmdDbGFzc109XCJ7J3RleHQtcHJvZml0JzogKGVsZT8uY3VycmVudEFtb3VudCAtIGVsZT8uaW52ZXN0ZWRBbW91bnQpID4gMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0LWxvc3MnOiAoZWxlPy5jdXJyZW50QW1vdW50IC0gZWxlPy5pbnZlc3RlZEFtb3VudCkgPCAwfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oK5IHt7IChlbGU/LmN1cnJlbnRBbW91bnQgPz8gMCkgLSAoZWxlPy5pbnZlc3RlZEFtb3VudCA/PyAwKSB8IGZvcm1hdGVBbW91bnQ6J0lORCcgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLWRldGFpbCB0ZXh0LWNlbnRlclwiIFtuZ0NsYXNzXT1cInsndGV4dC1wcm9maXQnOiAoZWxlPy5jdXJyZW50QW1vdW50IC0gZWxlPy5pbnZlc3RlZEFtb3VudCkgPiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dC1sb3NzJzogKGVsZT8uY3VycmVudEFtb3VudCAtIGVsZT8uaW52ZXN0ZWRBbW91bnQpIDwgMH1cIj5Qcm9maXQvTG9zczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIGxzdC1kaXYgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuPHNlY3Rpb24gY2xhc3M9XCJ2aWV3LWNvbnRhaW5lclwiICpuZ0lmPVwidmlld1RhYlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJhY2tcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmFjay10ZXh0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJteS10ZXh0IG1iLTAgY29tbW9uLXN0eWxlXCIgKGNsaWNrKT1cInZpZXdUYWIgPSBmYWxzZVwiPk15IFByb3BlcnRpZXM8L3A+PG1hdC1pY29uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm15LXRleHRcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwicHJ0eS10ZXh0IG1iLTAgY29tbW9uLXN0eWxlXCI+UHJvcGVydHkgRGV0YWlsczwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHNpbXBvLXByb3BlcnR5LXZpZXcgW2lkXT1cInNlbGVjdGVkSWRcIj48L3NpbXBvLXByb3BlcnR5LXZpZXc+XHJcbjwvc2VjdGlvbj5cclxuPHNlY3Rpb24gY2xhc3M9XCJwYWdlbG9hZGVyXCIgKm5nSWY9XCJwYWdlTG9hZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvcGVydHktY2FyZHNcIj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBza2VsIG9mIFsxLDIsM11cIj5cclxuICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA6ICcxMDAlJyxcclxuICAgICAgICAgICAgICAgIGhlaWdodDogJzMwdmgnLFxyXG4gICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnMTBweCcsXHJcbiAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuPC9zZWN0aW9uPiJdfQ==
@@ -1,64 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, Input } from '@angular/core';
3
- import { MatIcon } from '@angular/material/icon';
4
- import { HostListener } from '@angular/core';
5
- import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./../../services/rest.service";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "ngx-skeleton-loader";
10
- export class PropertyViewComponent {
11
- constructor(restService) {
12
- this.restService = restService;
13
- this.propertyDetails = {
14
- propertyImage: ["https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/815921c1739254843186image%20%285%29.png", "https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/815921c1739254843186image%20%285%29.png", "https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/815921c1739254843186image%20%285%29.png"],
15
- propertyName: "Ananta One - Blue Moon",
16
- propertyLocation: "RRR Hyderabad, Telangana",
17
- investedDate: "12 Jun 2024",
18
- type: "Rental",
19
- share: "1.40%",
20
- documents: ["Title deed", "Property Registration Certificate"],
21
- description: "Ananta one Apartments is a premium residential development located in the bustling heart of hyderabad. It offers modern amenities and a luxurious lifestyle designed to meet the needs of urban families and professionals.",
22
- managedBy: [{ img: "https://media.istockphoto.com/id/1410538853/photo/young-man-in-the-public-park.jpg?s=612x612&w=0&k=20&c=EtRJGnNOFPJ2HniBSLWKzsL9Xf7GHinHd5y2Tx3da0E=", name: "Vijay Shankar", role: "Property Manager" }, { img: "https://t3.ftcdn.net/jpg/01/86/40/16/360_F_186401650_6tXxwc5x3pwuA9bYjJG65l9pCFRIAu06.jpg", name: "Sanjana", role: "Operational Manager" }],
23
- invested: "₹4.1 L",
24
- totalSqft: "32",
25
- irr: "12%",
26
- imv: "₹4.1 L",
27
- income: "+₹52 k",
28
- projectedValue: "₹5.21 L",
29
- potentialApperciation: "8%",
30
- guaranteedGrowth: "5%",
31
- marketMovement: "High"
32
- };
33
- this.pageLoader = false;
34
- }
35
- ngOnInit() {
36
- console.log(this.id);
37
- this.getPropertyDetails(this.id);
38
- this.getScreenSize();
39
- }
40
- getScreenSize(event) {
41
- this.srcHeight = window.innerHeight;
42
- this.srcWidth = window.innerWidth;
43
- }
44
- getPropertyDetails(id) {
45
- this.pageLoader = true;
46
- this.restService.getPropertyById(id).subscribe((res) => {
47
- this.propertyDetails = res;
48
- this.pageLoader = false;
49
- // console.log(res)
50
- });
51
- }
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: PropertyViewComponent, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: PropertyViewComponent, isStandalone: true, selector: "simpo-property-view", inputs: { id: "id" }, host: { listeners: { "window:resize": "getScreenSize($event)" } }, ngImport: i0, template: "<div class=\" row main-container gap-10 \" *ngIf=\"!pageLoader\">\r\n <div class=\" col-md-6 left-container w-60 \">\r\n <div class=\"property-detail common-style1\">\r\n <div class=\" row carousel-01\">\r\n <div id=\"carouselExampleInterval\" class=\" col-12 col-6 carousel slide p-relative \" data-bs-ride=\"carousel\">\r\n <div class=\"carousel-inner\">\r\n <ng-container *ngFor=\"let ele of propertyDetails?.property?.imgUrl;let i = index\">\r\n <div class=\"carousel-item active\" [class.active]=\"i\" data-bs-interval=\"3000\">\r\n <img [src]=\"ele\" class=\"d-block w-100 br-10\" alt=\"property-image\">\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"propertyName d-flex justify-content-center\">\r\n <div class=\"carousel d-flex justify-content-end align-items-end\">\r\n <div class=\"carousel-indicators additional-properties-1\">\r\n <ng-container *ngFor=\"let ele of propertyDetails.property.imgUrl;let i = index\">\r\n <button type=\"button\" data-bs-target=\"#carouselExampleInterval\"\r\n [attr.data-bs-slide-to]=\"i\" class=\"active additional-properties\" aria-current=\"true\"\r\n aria-label=\"Slide 1\"></button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"srcWidth < 475\" class=\" col-6 bottom-details d-flex gap-10 mt-10\">\r\n <div class=\"left-right d-flex gap-10\">\r\n <div class=\"left\">Invested Date</div>\r\n <div class=\"right\">{{(propertyDetails?.earliestPurchaseDate | date) ?? \"N/A\"}}</div>\r\n </div>\r\n <div class=\"left-right d-flex gap-10\">\r\n <div class=\"left\">Property Type</div>\r\n <div class=\"right\">{{propertyDetails?.property?.propertyType ?? \"N/A\"}}</div>\r\n </div>\r\n <div class=\"left-right d-flex gap-10\">\r\n <div class=\"left\">Ownership Share</div>\r\n <div class=\"right\">{{propertyDetails?.share ?? \"N/A\"}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"details mt-10\">\r\n <div class=\"row top-details\">\r\n <div class=\"col-md-6 col-12 top-left\">\r\n <div class=\"main-text\">{{propertyDetails?.property?.name ?? \"N/A\"}}</div>\r\n <div class=\"span-text\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/384275c1737629729545location_on.png\"\r\n alt=\"location image\" class=\"grey-icon\" width=\"15px\">{{propertyDetails?.property?.location ?? \"N/A\"}}</div>\r\n </div>\r\n <div *ngIf=\"srcWidth > 475\" class=\"col-md-6 top-right d-flex gap-10\">\r\n <div class=\"buy-more common-style2\">\r\n Buy More SQFT\r\n </div>\r\n <div class=\"sell common-style2\">\r\n Sell SQFT\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"srcWidth > 475\" class=\"bottom-details d-flex gap-10 mt-10 justify-content-center\">\r\n <div class=\"left-right d-flex gap-10\">\r\n <div class=\"left\">Invested Date</div>\r\n <div class=\"right\">{{(propertyDetails?.earliestPurchaseDate | date) ?? \"N/A\"}}</div>\r\n </div>\r\n <div class=\"left-right d-flex gap-10\">\r\n <div class=\"left\">Property Type</div>\r\n <div class=\"right\">{{propertyDetails?.property?.propertyType ?? \"N/A\"}}</div>\r\n </div>\r\n <div class=\"left-right d-flex gap-10\">\r\n <div class=\"left\">Ownership Share</div>\r\n <div class=\"right\">{{propertyDetails?.share ?? \"N/A\"}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"doc-rep common-style1\" *ngIf=\"propertyDetails?.property?.documents.length > 0\">\r\n <div class=\"head-about-property\">Documents & Reports</div>\r\n <div class=\"file-container d-flex flex-column gap-10\">\r\n <div class=\"file d-flex justify-content-between\" *ngFor=\"let ele of propertyDetails?.property?.documents\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/678394c1739183726107image%209.png\"\r\n alt=\"pdf\" class=\"w-10\">\r\n <div class=\"doc-text w-75 d-flex align-items-center\"> {{ele.length > 15 ?\r\n ele.substring(0,15)+'...' : ele }}</div>\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/195414c1739183779845fi_3502477.png\"\r\n alt=\"download\" class=\"download-img w-10\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"common-style1\">\r\n <div class=\"head-about-property\">About Property</div>\r\n <div class=\"about-property-text\">{{propertyDetails?.property?.description ?? \"N/A\"}}</div>\r\n <!-- <div class=\"head-about-property\">Property Managed by</div>\r\n <div class=\"managed-cards d-flex gap-10 w-100\">\r\n <div class=\"card-container br-10\" *ngFor=\"let ele of propertyDetails.managedBy\">\r\n <div class=\"img-container d-flex justify-content-center\">\r\n <img [src]=\"ele.img\" alt=\"Manager Image\" class=\"manage-img\">\r\n </div>\r\n <div class=\"card-details\">\r\n <p class=\"name-text text-center mt-10\">{{ele.name}}</p>\r\n <p class=\"role-text text-center\">{{ele.role}}</p>\r\n </div>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n <div class=\" col-md-6 right-container w-40 \">\r\n <div class=\"right-content\">\r\n <div class=\"right-head\">Holdings Details</div>\r\n <div class=\"holding-details common-style3\">\r\n <div class=\"top-bottom\">\r\n <div class=\"top\">\u20B9{{propertyDetails?.totalInvestedAmount ?? \"N/A\"}}</div>\r\n <div class=\"bottom\">Invested</div>\r\n </div>\r\n <div class=\"top-bottom\">\r\n <div class=\"top\">{{propertyDetails?.totalSqFeetOwned ?? \"N/A\"}}</div>\r\n <div class=\"bottom\">Sq.ft</div>\r\n </div>\r\n <div class=\"top-bottom\">\r\n <div class=\"top\">{{propertyDetails?.property?.financeDetails?.indicativeMarketValue ?? \"N/A\"}}</div>\r\n <div class=\"bottom\">Indicative Market Value</div>\r\n </div>\r\n <div class=\"top-bottom\">\r\n <div class=\"top\">{{propertyDetails?.property?.financeDetails?.irr ?? \"N/A\"}}</div>\r\n <div class=\"bottom\">Internal Returns Rate</div>\r\n </div>\r\n </div>\r\n <div class=\"income br-0-10\">\r\n <div class=\"left-right-1\">\r\n <div class=\"left-1\">Profit/Loss</div><div class=\"right-1\">\u20B9{{propertyDetails?.property?.financeDetails?.annualReturn ?? \"N/A\"}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"right-content\">\r\n <div class=\"right-head\">Financial Projections</div>\r\n <div class=\"financial-details common-style3 br-0-10\">\r\n <div class=\"right-left-1 d-flex justify-content-between mb-3\">\r\n <div class=\"left-2\">Projected Value (Next Year)</div><div class=\"right-2\">{{propertyDetails.projectedValue}}</div>\r\n </div>\r\n <div class=\"right-left-1 d-flex justify-content-between mb-3\">\r\n <div class=\"left-2\">Potential Appreciation</div><div class=\"right-2\">{{propertyDetails.potentialApperciation}}</div>\r\n </div>\r\n <div class=\"right-left-1 d-flex justify-content-between mb-3\">\r\n <div class=\"left-2\">Guaranteed Growth</div><div class=\"right-2\">{{propertyDetails.guaranteedGrowth}}</div>\r\n </div>\r\n <div class=\"note-section\">\r\n Note: Above projection are based on past performance\r\n </div>\r\n </div>\r\n </div> -->\r\n </div>\r\n <div *ngIf=\"srcWidth < 475\" class=\"top-right d-flex gap-10\">\r\n <div class=\"buy-more common-style2\">\r\n Buy More SQFT\r\n </div>\r\n <div class=\"sell common-style2\">\r\n Sell SQFT\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<section class=\"pageloader\" *ngIf=\"pageLoader\">\r\n <div class=\"row gap-10 overflow-y-scroll\" [class.flex-column]=\"srcWidth < 475\">\r\n <div class=\"left-container-1 w-60\">\r\n <div class=\"skel-loader\" *ngFor=\"let skel of [1,2,4]\">\r\n <ngx-skeleton-loader count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width : '100%',\r\n height: '25vh',\r\n 'border-radius': '10px',\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n <div class=\"right-container-1 w-40\">\r\n <div class=\"skel-loader\">\r\n <ngx-skeleton-loader count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width : '100%',\r\n height: '35vh',\r\n 'border-radius': '10px',\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: ["*{font-family:DM Sans!important}mat-icon{font-family:Material Icons!important}.main-container{padding:10px;width:100%;gap:5px}.left-container,.right-container{height:90vh;overflow-y:scroll}.row{flex-wrap:unset!important}.carousel-item{display:unset!important}.w-60{width:60%}.w-40{width:35%}.additional-properties{border-radius:50%;height:1vh;width:8px!important}.additional-properties-1{position:unset!important;padding:unset!important;margin:unset!important;width:100%}.p-relative{position:relative}.propertyName{position:absolute;bottom:0;width:100%}.br-10{border-radius:10px}.common-style1{padding:10px;border-radius:10px;background:#fff;margin-bottom:10px}.mt-10{margin-top:10px!important}.main-text{font-weight:600;font-size:18px;line-height:24px;color:#000}.span-text{font-size:14px;font-weight:500;line-height:44px;color:#00000080}.gap-10{gap:10px}.common-style2{padding:5px 7px;border-radius:10px;font-size:12px;line-height:24px;font-weight:600;height:6vh;align-content:center}.buy-more{background:#36b37e;color:#fff}.sell{background:#ffcfc6;color:#f36f56}.left{font-size:14px;line-height:18px;font-weight:500;color:#01161ecc}.right{font-size:14px;line-height:20px;font-weight:600;color:#01161e}.head-about-property{font-weight:600;font-size:16px;line-height:26px;margin-bottom:10px}.file{background:#f7f7f7;border-radius:5px;padding:12px}.doc-text{font-size:16px;font-weight:500;line-height:26px;color:#000}.about-property-text{font-weight:400;font-size:16px;line-height:29px;color:#01161eb3}.manage-img{width:70px;height:10vh;border-radius:50%}.card-container{background:#f7f7f7;padding:10px;width:48%}.name-text{font-size:14px;line-height:24px;font-weight:500;color:#000}.role-text{font-size:14px;font-weight:400;line-height:24px;color:#000000b3}.managed-cards{overflow-x:scroll}.right-content{border:1px solid rgba(0,0,0,.03);border-radius:10px;margin-bottom:15px}.right-head{font-weight:600;font-size:16px;line-height:21px;color:#000;padding:10px;background:#f1f6ff}.holding-details{display:grid;grid-template-columns:50% 50%;gap:10px}.top-bottom{padding:10px}.top{font-size:20px;font-weight:700;line-height:24px;color:#000}.bottom{font-size:14px;font-weight:500;line-height:24px;color:#000000b3}.income{background:#fff;padding:10px}.left-right-1{background:linear-gradient(180deg,#0d1b2a,#172b40);display:flex;justify-content:space-between;padding:15px;border-radius:10px}.left-1{font-size:16px;font-weight:700;line-height:24px;color:#fff}.right-1{font-weight:800;font-size:20px;line-height:24px;color:#32f4a2}.left-2{font-size:14px;line-height:20px;font-weight:500;color:#000000b3}.right-2{font-size:20px;line-height:24px;font-weight:700;color:#000}.note-section{font-size:14px;line-height:20px;font-weight:500;color:#01161e66}.common-style3{padding:10px;background:#fff}.br-0-10{border-radius:0 0 10px 10px!important}.grey-icon{filter:grayscale(100%) brightness(50%)}.doc-rep{overflow-y:scroll;height:17vh}@media only screen and (max-width: 475px){.main-container{flex-direction:column;width:auto}.left-container,.right-container{height:auto}.carousel{height:16vh;width:40%}.w-60,.w-40{width:auto}.w-4 .carousel{width:40%}.d-block{height:16vh}.bottom-details{flex-direction:column;width:60%}.left-right{justify-content:space-between}.propertyName{width:88%}.top-right{position:sticky;bottom:0%;background:#fff;justify-content:center;padding:8px 2px}.common-style2{padding:11px 8px;width:40vw;text-align:center;font-size:14px}.right-head{border-radius:10px}.w-10{width:14%}.file{padding:5px 10px;height:8vh}.doc-text{font-size:12px}.left-container-1,.right-container-1{width:100%}.overflow-y-scroll{overflow-y:scroll;height:75vh}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "ngmodule", type: NgxSkeletonLoaderModule }, { kind: "component", type: i3.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }] }); }
54
- }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: PropertyViewComponent, decorators: [{
56
- type: Component,
57
- args: [{ selector: 'simpo-property-view', standalone: true, imports: [CommonModule, MatIcon, NgxSkeletonLoaderModule], template: "<div class=\" row main-container gap-10 \" *ngIf=\"!pageLoader\">\r\n <div class=\" col-md-6 left-container w-60 \">\r\n <div class=\"property-detail common-style1\">\r\n <div class=\" row carousel-01\">\r\n <div id=\"carouselExampleInterval\" class=\" col-12 col-6 carousel slide p-relative \" data-bs-ride=\"carousel\">\r\n <div class=\"carousel-inner\">\r\n <ng-container *ngFor=\"let ele of propertyDetails?.property?.imgUrl;let i = index\">\r\n <div class=\"carousel-item active\" [class.active]=\"i\" data-bs-interval=\"3000\">\r\n <img [src]=\"ele\" class=\"d-block w-100 br-10\" alt=\"property-image\">\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"propertyName d-flex justify-content-center\">\r\n <div class=\"carousel d-flex justify-content-end align-items-end\">\r\n <div class=\"carousel-indicators additional-properties-1\">\r\n <ng-container *ngFor=\"let ele of propertyDetails.property.imgUrl;let i = index\">\r\n <button type=\"button\" data-bs-target=\"#carouselExampleInterval\"\r\n [attr.data-bs-slide-to]=\"i\" class=\"active additional-properties\" aria-current=\"true\"\r\n aria-label=\"Slide 1\"></button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"srcWidth < 475\" class=\" col-6 bottom-details d-flex gap-10 mt-10\">\r\n <div class=\"left-right d-flex gap-10\">\r\n <div class=\"left\">Invested Date</div>\r\n <div class=\"right\">{{(propertyDetails?.earliestPurchaseDate | date) ?? \"N/A\"}}</div>\r\n </div>\r\n <div class=\"left-right d-flex gap-10\">\r\n <div class=\"left\">Property Type</div>\r\n <div class=\"right\">{{propertyDetails?.property?.propertyType ?? \"N/A\"}}</div>\r\n </div>\r\n <div class=\"left-right d-flex gap-10\">\r\n <div class=\"left\">Ownership Share</div>\r\n <div class=\"right\">{{propertyDetails?.share ?? \"N/A\"}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"details mt-10\">\r\n <div class=\"row top-details\">\r\n <div class=\"col-md-6 col-12 top-left\">\r\n <div class=\"main-text\">{{propertyDetails?.property?.name ?? \"N/A\"}}</div>\r\n <div class=\"span-text\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/384275c1737629729545location_on.png\"\r\n alt=\"location image\" class=\"grey-icon\" width=\"15px\">{{propertyDetails?.property?.location ?? \"N/A\"}}</div>\r\n </div>\r\n <div *ngIf=\"srcWidth > 475\" class=\"col-md-6 top-right d-flex gap-10\">\r\n <div class=\"buy-more common-style2\">\r\n Buy More SQFT\r\n </div>\r\n <div class=\"sell common-style2\">\r\n Sell SQFT\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"srcWidth > 475\" class=\"bottom-details d-flex gap-10 mt-10 justify-content-center\">\r\n <div class=\"left-right d-flex gap-10\">\r\n <div class=\"left\">Invested Date</div>\r\n <div class=\"right\">{{(propertyDetails?.earliestPurchaseDate | date) ?? \"N/A\"}}</div>\r\n </div>\r\n <div class=\"left-right d-flex gap-10\">\r\n <div class=\"left\">Property Type</div>\r\n <div class=\"right\">{{propertyDetails?.property?.propertyType ?? \"N/A\"}}</div>\r\n </div>\r\n <div class=\"left-right d-flex gap-10\">\r\n <div class=\"left\">Ownership Share</div>\r\n <div class=\"right\">{{propertyDetails?.share ?? \"N/A\"}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"doc-rep common-style1\" *ngIf=\"propertyDetails?.property?.documents.length > 0\">\r\n <div class=\"head-about-property\">Documents & Reports</div>\r\n <div class=\"file-container d-flex flex-column gap-10\">\r\n <div class=\"file d-flex justify-content-between\" *ngFor=\"let ele of propertyDetails?.property?.documents\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/678394c1739183726107image%209.png\"\r\n alt=\"pdf\" class=\"w-10\">\r\n <div class=\"doc-text w-75 d-flex align-items-center\"> {{ele.length > 15 ?\r\n ele.substring(0,15)+'...' : ele }}</div>\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/195414c1739183779845fi_3502477.png\"\r\n alt=\"download\" class=\"download-img w-10\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"common-style1\">\r\n <div class=\"head-about-property\">About Property</div>\r\n <div class=\"about-property-text\">{{propertyDetails?.property?.description ?? \"N/A\"}}</div>\r\n <!-- <div class=\"head-about-property\">Property Managed by</div>\r\n <div class=\"managed-cards d-flex gap-10 w-100\">\r\n <div class=\"card-container br-10\" *ngFor=\"let ele of propertyDetails.managedBy\">\r\n <div class=\"img-container d-flex justify-content-center\">\r\n <img [src]=\"ele.img\" alt=\"Manager Image\" class=\"manage-img\">\r\n </div>\r\n <div class=\"card-details\">\r\n <p class=\"name-text text-center mt-10\">{{ele.name}}</p>\r\n <p class=\"role-text text-center\">{{ele.role}}</p>\r\n </div>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n <div class=\" col-md-6 right-container w-40 \">\r\n <div class=\"right-content\">\r\n <div class=\"right-head\">Holdings Details</div>\r\n <div class=\"holding-details common-style3\">\r\n <div class=\"top-bottom\">\r\n <div class=\"top\">\u20B9{{propertyDetails?.totalInvestedAmount ?? \"N/A\"}}</div>\r\n <div class=\"bottom\">Invested</div>\r\n </div>\r\n <div class=\"top-bottom\">\r\n <div class=\"top\">{{propertyDetails?.totalSqFeetOwned ?? \"N/A\"}}</div>\r\n <div class=\"bottom\">Sq.ft</div>\r\n </div>\r\n <div class=\"top-bottom\">\r\n <div class=\"top\">{{propertyDetails?.property?.financeDetails?.indicativeMarketValue ?? \"N/A\"}}</div>\r\n <div class=\"bottom\">Indicative Market Value</div>\r\n </div>\r\n <div class=\"top-bottom\">\r\n <div class=\"top\">{{propertyDetails?.property?.financeDetails?.irr ?? \"N/A\"}}</div>\r\n <div class=\"bottom\">Internal Returns Rate</div>\r\n </div>\r\n </div>\r\n <div class=\"income br-0-10\">\r\n <div class=\"left-right-1\">\r\n <div class=\"left-1\">Profit/Loss</div><div class=\"right-1\">\u20B9{{propertyDetails?.property?.financeDetails?.annualReturn ?? \"N/A\"}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"right-content\">\r\n <div class=\"right-head\">Financial Projections</div>\r\n <div class=\"financial-details common-style3 br-0-10\">\r\n <div class=\"right-left-1 d-flex justify-content-between mb-3\">\r\n <div class=\"left-2\">Projected Value (Next Year)</div><div class=\"right-2\">{{propertyDetails.projectedValue}}</div>\r\n </div>\r\n <div class=\"right-left-1 d-flex justify-content-between mb-3\">\r\n <div class=\"left-2\">Potential Appreciation</div><div class=\"right-2\">{{propertyDetails.potentialApperciation}}</div>\r\n </div>\r\n <div class=\"right-left-1 d-flex justify-content-between mb-3\">\r\n <div class=\"left-2\">Guaranteed Growth</div><div class=\"right-2\">{{propertyDetails.guaranteedGrowth}}</div>\r\n </div>\r\n <div class=\"note-section\">\r\n Note: Above projection are based on past performance\r\n </div>\r\n </div>\r\n </div> -->\r\n </div>\r\n <div *ngIf=\"srcWidth < 475\" class=\"top-right d-flex gap-10\">\r\n <div class=\"buy-more common-style2\">\r\n Buy More SQFT\r\n </div>\r\n <div class=\"sell common-style2\">\r\n Sell SQFT\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<section class=\"pageloader\" *ngIf=\"pageLoader\">\r\n <div class=\"row gap-10 overflow-y-scroll\" [class.flex-column]=\"srcWidth < 475\">\r\n <div class=\"left-container-1 w-60\">\r\n <div class=\"skel-loader\" *ngFor=\"let skel of [1,2,4]\">\r\n <ngx-skeleton-loader count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width : '100%',\r\n height: '25vh',\r\n 'border-radius': '10px',\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n <div class=\"right-container-1 w-40\">\r\n <div class=\"skel-loader\">\r\n <ngx-skeleton-loader count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width : '100%',\r\n height: '35vh',\r\n 'border-radius': '10px',\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: ["*{font-family:DM Sans!important}mat-icon{font-family:Material Icons!important}.main-container{padding:10px;width:100%;gap:5px}.left-container,.right-container{height:90vh;overflow-y:scroll}.row{flex-wrap:unset!important}.carousel-item{display:unset!important}.w-60{width:60%}.w-40{width:35%}.additional-properties{border-radius:50%;height:1vh;width:8px!important}.additional-properties-1{position:unset!important;padding:unset!important;margin:unset!important;width:100%}.p-relative{position:relative}.propertyName{position:absolute;bottom:0;width:100%}.br-10{border-radius:10px}.common-style1{padding:10px;border-radius:10px;background:#fff;margin-bottom:10px}.mt-10{margin-top:10px!important}.main-text{font-weight:600;font-size:18px;line-height:24px;color:#000}.span-text{font-size:14px;font-weight:500;line-height:44px;color:#00000080}.gap-10{gap:10px}.common-style2{padding:5px 7px;border-radius:10px;font-size:12px;line-height:24px;font-weight:600;height:6vh;align-content:center}.buy-more{background:#36b37e;color:#fff}.sell{background:#ffcfc6;color:#f36f56}.left{font-size:14px;line-height:18px;font-weight:500;color:#01161ecc}.right{font-size:14px;line-height:20px;font-weight:600;color:#01161e}.head-about-property{font-weight:600;font-size:16px;line-height:26px;margin-bottom:10px}.file{background:#f7f7f7;border-radius:5px;padding:12px}.doc-text{font-size:16px;font-weight:500;line-height:26px;color:#000}.about-property-text{font-weight:400;font-size:16px;line-height:29px;color:#01161eb3}.manage-img{width:70px;height:10vh;border-radius:50%}.card-container{background:#f7f7f7;padding:10px;width:48%}.name-text{font-size:14px;line-height:24px;font-weight:500;color:#000}.role-text{font-size:14px;font-weight:400;line-height:24px;color:#000000b3}.managed-cards{overflow-x:scroll}.right-content{border:1px solid rgba(0,0,0,.03);border-radius:10px;margin-bottom:15px}.right-head{font-weight:600;font-size:16px;line-height:21px;color:#000;padding:10px;background:#f1f6ff}.holding-details{display:grid;grid-template-columns:50% 50%;gap:10px}.top-bottom{padding:10px}.top{font-size:20px;font-weight:700;line-height:24px;color:#000}.bottom{font-size:14px;font-weight:500;line-height:24px;color:#000000b3}.income{background:#fff;padding:10px}.left-right-1{background:linear-gradient(180deg,#0d1b2a,#172b40);display:flex;justify-content:space-between;padding:15px;border-radius:10px}.left-1{font-size:16px;font-weight:700;line-height:24px;color:#fff}.right-1{font-weight:800;font-size:20px;line-height:24px;color:#32f4a2}.left-2{font-size:14px;line-height:20px;font-weight:500;color:#000000b3}.right-2{font-size:20px;line-height:24px;font-weight:700;color:#000}.note-section{font-size:14px;line-height:20px;font-weight:500;color:#01161e66}.common-style3{padding:10px;background:#fff}.br-0-10{border-radius:0 0 10px 10px!important}.grey-icon{filter:grayscale(100%) brightness(50%)}.doc-rep{overflow-y:scroll;height:17vh}@media only screen and (max-width: 475px){.main-container{flex-direction:column;width:auto}.left-container,.right-container{height:auto}.carousel{height:16vh;width:40%}.w-60,.w-40{width:auto}.w-4 .carousel{width:40%}.d-block{height:16vh}.bottom-details{flex-direction:column;width:60%}.left-right{justify-content:space-between}.propertyName{width:88%}.top-right{position:sticky;bottom:0%;background:#fff;justify-content:center;padding:8px 2px}.common-style2{padding:11px 8px;width:40vw;text-align:center;font-size:14px}.right-head{border-radius:10px}.w-10{width:14%}.file{padding:5px 10px;height:8vh}.doc-text{font-size:12px}.left-container-1,.right-container-1{width:100%}.overflow-y-scroll{overflow-y:scroll;height:75vh}}\n"] }]
58
- }], ctorParameters: () => [{ type: i1.RestService }], propDecorators: { id: [{
59
- type: Input
60
- }], getScreenSize: [{
61
- type: HostListener,
62
- args: ['window:resize', ['$event']]
63
- }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3Byb3BlcnR5LXZpZXcvcHJvcGVydHktdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3Byb3BlcnR5LXZpZXcvcHJvcGVydHktdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBVzlELE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFXNUMsb0JBQWUsR0FBUztZQUN0QixhQUFhLEVBQUssQ0FBQyxvR0FBb0csRUFBQyxvR0FBb0csRUFBQyxvR0FBb0csQ0FBQztZQUNsVSxZQUFZLEVBQUcsd0JBQXdCO1lBQ3ZDLGdCQUFnQixFQUFHLDBCQUEwQjtZQUM3QyxZQUFZLEVBQUcsYUFBYTtZQUM1QixJQUFJLEVBQUcsUUFBUTtZQUNmLEtBQUssRUFBRyxPQUFPO1lBQ2YsU0FBUyxFQUFHLENBQUMsWUFBWSxFQUFDLG1DQUFtQyxDQUFDO1lBQzlELFdBQVcsRUFBRyw2TkFBNk47WUFDM08sU0FBUyxFQUFHLENBQUMsRUFBQyxHQUFHLEVBQUcsc0pBQXNKLEVBQUMsSUFBSSxFQUFHLGVBQWUsRUFBQyxJQUFJLEVBQUcsa0JBQWtCLEVBQUMsRUFBQyxFQUFDLEdBQUcsRUFBRywyRkFBMkYsRUFBQyxJQUFJLEVBQUcsU0FBUyxFQUFDLElBQUksRUFBRyxxQkFBcUIsRUFBQyxDQUFDO1lBQy9XLFFBQVEsRUFBRyxRQUFRO1lBQ25CLFNBQVMsRUFBRyxJQUFJO1lBQ2hCLEdBQUcsRUFBRyxLQUFLO1lBQ1gsR0FBRyxFQUFHLFFBQVE7WUFDZCxNQUFNLEVBQUcsUUFBUTtZQUNqQixjQUFjLEVBQUcsU0FBUztZQUMxQixxQkFBcUIsRUFBRyxJQUFJO1lBQzVCLGdCQUFnQixFQUFHLElBQUk7WUFDdkIsY0FBYyxFQUFHLE1BQU07U0FDeEIsQ0FBQTtRQVlELGVBQVUsR0FBYSxLQUFLLENBQUE7SUF2QzVCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDcEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNoQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQTRCRCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFHRCxrQkFBa0IsQ0FBQyxFQUFNO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFBO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FDNUMsQ0FBQyxHQUFHLEVBQUMsRUFBRTtZQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFBO1lBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFBO1lBQ3ZCLG1CQUFtQjtRQUNyQixDQUFDLENBQ0YsQ0FBQTtJQUNILENBQUM7OEdBeERVLHFCQUFxQjtrR0FBckIscUJBQXFCLHdLQ2hCbEMsbWpWQXFMQSx5bkhEektZLFlBQVksa1RBQVMsdUJBQXVCOzsyRkFJM0MscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUMsT0FBTyxFQUFDLHVCQUF1QixDQUFDO2dGQU03QyxFQUFFO3NCQUFYLEtBQUs7Z0JBdUNOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxlQUFlLEVBQUMsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ3hTa2VsZXRvbkxvYWRlck1vZHVsZSB9IGZyb20gJ25neC1za2VsZXRvbi1sb2FkZXInO1xyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXByb3BlcnR5LXZpZXcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxNYXRJY29uLE5neFNrZWxldG9uTG9hZGVyTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LXZpZXcuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb3BlcnR5Vmlld0NvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpICBpZCA6IGFueVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSlcclxuICB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKXtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuaWQpXHJcbiAgICB0aGlzLmdldFByb3BlcnR5RGV0YWlscyh0aGlzLmlkKVxyXG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XHJcbiAgfVxyXG5cclxuICBwcm9wZXJ0eURldGFpbHMgOiBhbnkgPSB7XHJcbiAgICBwcm9wZXJ0eUltYWdlICA6ICBbXCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzgxNTkyMWMxNzM5MjU0ODQzMTg2aW1hZ2UlMjAlMjg1JTI5LnBuZ1wiLFwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy84MTU5MjFjMTczOTI1NDg0MzE4NmltYWdlJTIwJTI4NSUyOS5wbmdcIixcImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvODE1OTIxYzE3MzkyNTQ4NDMxODZpbWFnZSUyMCUyODUlMjkucG5nXCJdLFxyXG4gICAgcHJvcGVydHlOYW1lIDogXCJBbmFudGEgT25lIC0gQmx1ZSBNb29uXCIsXHJcbiAgICBwcm9wZXJ0eUxvY2F0aW9uIDogXCJSUlIgSHlkZXJhYmFkLCBUZWxhbmdhbmFcIixcclxuICAgIGludmVzdGVkRGF0ZSA6IFwiMTIgSnVuIDIwMjRcIixcclxuICAgIHR5cGUgOiBcIlJlbnRhbFwiLFxyXG4gICAgc2hhcmUgOiBcIjEuNDAlXCIsXHJcbiAgICBkb2N1bWVudHMgOiBbXCJUaXRsZSBkZWVkXCIsXCJQcm9wZXJ0eSBSZWdpc3RyYXRpb24gQ2VydGlmaWNhdGVcIl0sXHJcbiAgICBkZXNjcmlwdGlvbiA6IFwiQW5hbnRhIG9uZSBBcGFydG1lbnRzIGlzIGEgcHJlbWl1bSByZXNpZGVudGlhbCBkZXZlbG9wbWVudCBsb2NhdGVkIGluIHRoZSBidXN0bGluZyBoZWFydCBvZiBoeWRlcmFiYWQuIEl0IG9mZmVycyBtb2Rlcm4gYW1lbml0aWVzIGFuZCBhIGx1eHVyaW91cyBsaWZlc3R5bGUgZGVzaWduZWQgdG8gbWVldCB0aGUgbmVlZHMgb2YgdXJiYW4gZmFtaWxpZXMgYW5kIHByb2Zlc3Npb25hbHMuXCIsXHJcbiAgICBtYW5hZ2VkQnkgOiBbe2ltZyA6IFwiaHR0cHM6Ly9tZWRpYS5pc3RvY2twaG90by5jb20vaWQvMTQxMDUzODg1My9waG90by95b3VuZy1tYW4taW4tdGhlLXB1YmxpYy1wYXJrLmpwZz9zPTYxMng2MTImdz0wJms9MjAmYz1FdFJKR25OT0ZQSjJIbmlCU0xXS3pzTDlYZjdHSGluSGQ1eTJUeDNkYTBFPVwiLG5hbWUgOiBcIlZpamF5IFNoYW5rYXJcIixyb2xlIDogXCJQcm9wZXJ0eSBNYW5hZ2VyXCJ9LHtpbWcgOiBcImh0dHBzOi8vdDMuZnRjZG4ubmV0L2pwZy8wMS84Ni80MC8xNi8zNjBfRl8xODY0MDE2NTBfNnRYeHdjNXgzcHd1QTliWWpKRzY1bDlwQ0ZSSUF1MDYuanBnXCIsbmFtZSA6IFwiU2FuamFuYVwiLHJvbGUgOiBcIk9wZXJhdGlvbmFsIE1hbmFnZXJcIn1dLFxyXG4gICAgaW52ZXN0ZWQgOiBcIuKCuTQuMSBMXCIsXHJcbiAgICB0b3RhbFNxZnQgOiBcIjMyXCIsXHJcbiAgICBpcnIgOiBcIjEyJVwiLFxyXG4gICAgaW12IDogXCLigrk0LjEgTFwiLFxyXG4gICAgaW5jb21lIDogXCIr4oK5NTIga1wiLFxyXG4gICAgcHJvamVjdGVkVmFsdWUgOiBcIuKCuTUuMjEgTFwiLFxyXG4gICAgcG90ZW50aWFsQXBwZXJjaWF0aW9uIDogXCI4JVwiLFxyXG4gICAgZ3VhcmFudGVlZEdyb3d0aCA6IFwiNSVcIixcclxuICAgIG1hcmtldE1vdmVtZW50IDogXCJIaWdoXCJcclxuICB9XHJcblxyXG5cclxuXHJcbiAgc3JjSGVpZ2h0OiBhbnk7XHJcbiAgc3JjV2lkdGg6IGFueTtcclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJyxbJyRldmVudCddKVxyXG4gIGdldFNjcmVlblNpemUoZXZlbnQ/OmFueSl7XHJcbiAgICB0aGlzLnNyY0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgIHRoaXMuc3JjV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIHBhZ2VMb2FkZXIgOiBib29sZWFuID0gZmFsc2VcclxuICBnZXRQcm9wZXJ0eURldGFpbHMoaWQ6YW55KXtcclxuICAgIHRoaXMucGFnZUxvYWRlciA9IHRydWVcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0UHJvcGVydHlCeUlkKGlkKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXMpPT57XHJcbiAgICAgICAgdGhpcy5wcm9wZXJ0eURldGFpbHMgPSByZXNcclxuICAgICAgICB0aGlzLnBhZ2VMb2FkZXIgPSBmYWxzZVxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHJlcylcclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuXHJcblxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiIHJvdyBtYWluLWNvbnRhaW5lciBnYXAtMTAgXCIgKm5nSWY9XCIhcGFnZUxvYWRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIiBjb2wtbWQtNiBsZWZ0LWNvbnRhaW5lciB3LTYwIFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9wZXJ0eS1kZXRhaWwgY29tbW9uLXN0eWxlMVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHJvdyBjYXJvdXNlbC0wMVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNhcm91c2VsRXhhbXBsZUludGVydmFsXCIgY2xhc3M9XCIgY29sLTEyIGNvbC02IGNhcm91c2VsIHNsaWRlIHAtcmVsYXRpdmUgXCIgZGF0YS1icy1yaWRlPVwiY2Fyb3VzZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaW5uZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxlIG9mIHByb3BlcnR5RGV0YWlscz8ucHJvcGVydHk/LmltZ1VybDtsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbSBhY3RpdmVcIiBbY2xhc3MuYWN0aXZlXT1cImlcIiBkYXRhLWJzLWludGVydmFsPVwiMzAwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJlbGVcIiBjbGFzcz1cImQtYmxvY2sgdy0xMDAgYnItMTBcIiBhbHQ9XCJwcm9wZXJ0eS1pbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9wZXJ0eU5hbWUgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWluZGljYXRvcnMgYWRkaXRpb25hbC1wcm9wZXJ0aWVzLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2YgcHJvcGVydHlEZXRhaWxzLnByb3BlcnR5LmltZ1VybDtsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtYnMtdGFyZ2V0PVwiI2Nhcm91c2VsRXhhbXBsZUludGVydmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYnMtc2xpZGUtdG9dPVwiaVwiIGNsYXNzPVwiYWN0aXZlIGFkZGl0aW9uYWwtcHJvcGVydGllc1wiIGFyaWEtY3VycmVudD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNsaWRlIDFcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzcmNXaWR0aCA8IDQ3NVwiIGNsYXNzPVwiIGNvbC02IGJvdHRvbS1kZXRhaWxzIGQtZmxleCBnYXAtMTAgbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdC1yaWdodCBkLWZsZXggZ2FwLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+SW52ZXN0ZWQgRGF0ZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj57eyhwcm9wZXJ0eURldGFpbHM/LmVhcmxpZXN0UHVyY2hhc2VEYXRlIHwgZGF0ZSkgPz8gXCJOL0FcIn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtcmlnaHQgZC1mbGV4IGdhcC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlByb3BlcnR5IFR5cGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+e3twcm9wZXJ0eURldGFpbHM/LnByb3BlcnR5Py5wcm9wZXJ0eVR5cGUgPz8gXCJOL0FcIn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtcmlnaHQgZC1mbGV4IGdhcC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPk93bmVyc2hpcCBTaGFyZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj57e3Byb3BlcnR5RGV0YWlscz8uc2hhcmUgPz8gXCJOL0FcIn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzIG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHRvcC1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiB0b3AtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi10ZXh0XCI+e3twcm9wZXJ0eURldGFpbHM/LnByb3BlcnR5Py5uYW1lID8/IFwiTi9BXCJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bhbi10ZXh0XCI+PGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMzg0Mjc1YzE3Mzc2Mjk3Mjk1NDVsb2NhdGlvbl9vbi5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImxvY2F0aW9uIGltYWdlXCIgY2xhc3M9XCJncmV5LWljb25cIiB3aWR0aD1cIjE1cHhcIj57e3Byb3BlcnR5RGV0YWlscz8ucHJvcGVydHk/LmxvY2F0aW9uID8/IFwiTi9BXCJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzcmNXaWR0aCA+IDQ3NVwiIGNsYXNzPVwiY29sLW1kLTYgdG9wLXJpZ2h0IGQtZmxleCBnYXAtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1eS1tb3JlIGNvbW1vbi1zdHlsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1eSBNb3JlIFNRRlRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxsIGNvbW1vbi1zdHlsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGwgU1FGVFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzcmNXaWR0aCA+IDQ3NVwiIGNsYXNzPVwiYm90dG9tLWRldGFpbHMgZC1mbGV4IGdhcC0xMCBtdC0xMCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtcmlnaHQgZC1mbGV4IGdhcC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPkludmVzdGVkIERhdGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+e3socHJvcGVydHlEZXRhaWxzPy5lYXJsaWVzdFB1cmNoYXNlRGF0ZSB8IGRhdGUpID8/IFwiTi9BXCJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXJpZ2h0IGQtZmxleCBnYXAtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5Qcm9wZXJ0eSBUeXBlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPnt7cHJvcGVydHlEZXRhaWxzPy5wcm9wZXJ0eT8ucHJvcGVydHlUeXBlID8/IFwiTi9BXCJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXJpZ2h0IGQtZmxleCBnYXAtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5Pd25lcnNoaXAgU2hhcmU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+e3twcm9wZXJ0eURldGFpbHM/LnNoYXJlID8/IFwiTi9BXCJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkb2MtcmVwIGNvbW1vbi1zdHlsZTFcIiAqbmdJZj1cInByb3BlcnR5RGV0YWlscz8ucHJvcGVydHk/LmRvY3VtZW50cy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkLWFib3V0LXByb3BlcnR5XCI+RG9jdW1lbnRzICYgUmVwb3J0czwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgKm5nRm9yPVwibGV0IGVsZSBvZiBwcm9wZXJ0eURldGFpbHM/LnByb3BlcnR5Py5kb2N1bWVudHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvNjc4Mzk0YzE3MzkxODM3MjYxMDdpbWFnZSUyMDkucG5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwicGRmXCIgY2xhc3M9XCJ3LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy10ZXh0IHctNzUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPiB7e2VsZS5sZW5ndGggPiAxNSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZS5zdWJzdHJpbmcoMCwxNSkrJy4uLicgOiBlbGUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMTk1NDE0YzE3MzkxODM3Nzk4NDVmaV8zNTAyNDc3LnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImRvd25sb2FkXCIgY2xhc3M9XCJkb3dubG9hZC1pbWcgdy0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb21tb24tc3R5bGUxXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkLWFib3V0LXByb3BlcnR5XCI+QWJvdXQgUHJvcGVydHk8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFib3V0LXByb3BlcnR5LXRleHRcIj57e3Byb3BlcnR5RGV0YWlscz8ucHJvcGVydHk/LmRlc2NyaXB0aW9uID8/IFwiTi9BXCJ9fTwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJoZWFkLWFib3V0LXByb3BlcnR5XCI+UHJvcGVydHkgTWFuYWdlZCBieTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFuYWdlZC1jYXJkcyBkLWZsZXggZ2FwLTEwIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1jb250YWluZXIgYnItMTBcIiAqbmdGb3I9XCJsZXQgZWxlIG9mIHByb3BlcnR5RGV0YWlscy5tYW5hZ2VkQnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nLWNvbnRhaW5lciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZWxlLmltZ1wiIGFsdD1cIk1hbmFnZXIgSW1hZ2VcIiBjbGFzcz1cIm1hbmFnZS1pbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibmFtZS10ZXh0IHRleHQtY2VudGVyIG10LTEwXCI+e3tlbGUubmFtZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInJvbGUtdGV4dCB0ZXh0LWNlbnRlclwiPnt7ZWxlLnJvbGV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCIgY29sLW1kLTYgcmlnaHQtY29udGFpbmVyIHctNDAgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWhlYWRcIj5Ib2xkaW5ncyBEZXRhaWxzPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob2xkaW5nLWRldGFpbHMgY29tbW9uLXN0eWxlM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvcC1ib3R0b21cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9wXCI+4oK5e3twcm9wZXJ0eURldGFpbHM/LnRvdGFsSW52ZXN0ZWRBbW91bnQgPz8gXCJOL0FcIn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbVwiPkludmVzdGVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3AtYm90dG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvcFwiPnt7cHJvcGVydHlEZXRhaWxzPy50b3RhbFNxRmVldE93bmVkID8/IFwiTi9BXCJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b21cIj5TcS5mdDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9wLWJvdHRvbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3BcIj57e3Byb3BlcnR5RGV0YWlscz8ucHJvcGVydHk/LmZpbmFuY2VEZXRhaWxzPy5pbmRpY2F0aXZlTWFya2V0VmFsdWUgPz8gXCJOL0FcIn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbVwiPkluZGljYXRpdmUgTWFya2V0IFZhbHVlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3AtYm90dG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvcFwiPnt7cHJvcGVydHlEZXRhaWxzPy5wcm9wZXJ0eT8uZmluYW5jZURldGFpbHM/LmlyciA/PyBcIk4vQVwifX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tXCI+SW50ZXJuYWwgUmV0dXJucyBSYXRlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmNvbWUgYnItMC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtcmlnaHQtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LTFcIj5Qcm9maXQvTG9zczwvZGl2PjxkaXYgY2xhc3M9XCJyaWdodC0xXCI+4oK5e3twcm9wZXJ0eURldGFpbHM/LnByb3BlcnR5Py5maW5hbmNlRGV0YWlscz8uYW5udWFsUmV0dXJuID8/IFwiTi9BXCJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJpZ2h0LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWhlYWRcIj5GaW5hbmNpYWwgUHJvamVjdGlvbnM8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbmFuY2lhbC1kZXRhaWxzIGNvbW1vbi1zdHlsZTMgYnItMC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWxlZnQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LTJcIj5Qcm9qZWN0ZWQgVmFsdWUgKE5leHQgWWVhcik8L2Rpdj48ZGl2IGNsYXNzPVwicmlnaHQtMlwiPnt7cHJvcGVydHlEZXRhaWxzLnByb2plY3RlZFZhbHVlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWxlZnQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LTJcIj5Qb3RlbnRpYWwgQXBwcmVjaWF0aW9uPC9kaXY+PGRpdiBjbGFzcz1cInJpZ2h0LTJcIj57e3Byb3BlcnR5RGV0YWlscy5wb3RlbnRpYWxBcHBlcmNpYXRpb259fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtbGVmdC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtMlwiPkd1YXJhbnRlZWQgR3Jvd3RoPC9kaXY+PGRpdiBjbGFzcz1cInJpZ2h0LTJcIj57e3Byb3BlcnR5RGV0YWlscy5ndWFyYW50ZWVkR3Jvd3RofX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGUtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIE5vdGU6IEFib3ZlIHByb2plY3Rpb24gYXJlIGJhc2VkIG9uIHBhc3QgcGVyZm9ybWFuY2VcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJzcmNXaWR0aCA8IDQ3NVwiIGNsYXNzPVwidG9wLXJpZ2h0IGQtZmxleCBnYXAtMTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV5LW1vcmUgY29tbW9uLXN0eWxlMlwiPlxyXG4gICAgICAgICAgICBCdXkgTW9yZSBTUUZUXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGwgY29tbW9uLXN0eWxlMlwiPlxyXG4gICAgICAgICAgICBTZWxsIFNRRlRcclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxzZWN0aW9uIGNsYXNzPVwicGFnZWxvYWRlclwiICpuZ0lmPVwicGFnZUxvYWRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBnYXAtMTAgb3ZlcmZsb3cteS1zY3JvbGxcIiBbY2xhc3MuZmxleC1jb2x1bW5dPVwic3JjV2lkdGggPCA0NzVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdC1jb250YWluZXItMSB3LTYwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsLWxvYWRlclwiICpuZ0Zvcj1cImxldCBza2VsIG9mIFsxLDIsNF1cIj5cclxuICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjaXJjbGVcIiBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoIDogJzEwMCUnLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzI1dmgnLFxyXG4gICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzEwcHgnLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbnRhaW5lci0xIHctNDBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrZWwtbG9hZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBjb3VudD1cIjFcIiBhcHBlYXJhbmNlPVwiY2lyY2xlXCIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aCA6ICcxMDAlJyxcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICczNXZoJyxcclxuICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcclxuICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuIl19