coer-elements 0.0.29 → 0.0.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/components/lib/coer-accordion/coer-accordion.component.d.ts +18 -0
  2. package/components/lib/coer-button/coer-button.component.d.ts +1 -1
  3. package/components/lib/coer-form/coer-form.component.d.ts +3 -1
  4. package/components/lib/coer-numberbox/coer-numberbox.component.d.ts +1 -1
  5. package/components/lib/coer-textarea/coer-textarea.component.d.ts +1 -1
  6. package/components/lib/coer-textbox/coer-textbox.component.d.ts +1 -1
  7. package/components/lib/components.module.d.ts +34 -33
  8. package/components/public-api.d.ts +1 -1
  9. package/esm2022/components/lib/coer-accordion/coer-accordion.component.mjs +53 -0
  10. package/esm2022/components/lib/coer-button/coer-button.component.mjs +11 -5
  11. package/esm2022/components/lib/coer-checkbox/coer-checkbox.component.mjs +2 -2
  12. package/esm2022/components/lib/coer-filebox/coer-filebox.component.mjs +3 -3
  13. package/esm2022/components/lib/coer-form/coer-form.component.mjs +9 -3
  14. package/esm2022/components/lib/coer-grid/coer-grid.component.mjs +3 -3
  15. package/esm2022/components/lib/coer-modal/coer-modal.component.mjs +1 -1
  16. package/esm2022/components/lib/coer-numberbox/coer-numberbox.component.mjs +2 -2
  17. package/esm2022/components/lib/coer-page-title/coer-page-title.component.mjs +2 -2
  18. package/esm2022/components/lib/coer-selectbox/coer-selectbox.component.mjs +2 -2
  19. package/esm2022/components/lib/coer-switch/coer-switch.component.mjs +2 -2
  20. package/esm2022/components/lib/coer-tab/coer-tab.component.mjs +2 -2
  21. package/esm2022/components/lib/coer-textarea/coer-textarea.component.mjs +2 -2
  22. package/esm2022/components/lib/coer-textbox/coer-textbox.component.mjs +2 -2
  23. package/esm2022/components/lib/components.module.mjs +8 -3
  24. package/esm2022/components/public-api.mjs +2 -2
  25. package/esm2022/tools/lib/coer-alert/coer-alert.component.mjs +8 -7
  26. package/esm2022/tools/lib/coer-grid.templates.mjs +34 -0
  27. package/esm2022/tools/lib/colors.class.mjs +68 -0
  28. package/esm2022/tools/lib/page.class.mjs +7 -1
  29. package/esm2022/tools/lib/service.class.mjs +2 -2
  30. package/esm2022/tools/public-api.mjs +3 -1
  31. package/fesm2022/coer-elements-components.mjs +104 -69
  32. package/fesm2022/coer-elements-components.mjs.map +1 -1
  33. package/fesm2022/coer-elements-tools.mjs +115 -8
  34. package/fesm2022/coer-elements-tools.mjs.map +1 -1
  35. package/package.json +1 -1
  36. package/styles/angular-material.scss +1 -0
  37. package/styles/bootstrap.scss +2 -7
  38. package/styles/coer-elements.css +314 -6
  39. package/styles/colors.scss +2 -0
  40. package/styles/containers.scss +2 -0
  41. package/{components/lib/coer-grid → tools/lib}/coer-grid.templates.d.ts +2 -0
  42. package/tools/lib/colors.class.d.ts +21 -0
  43. package/tools/lib/page.class.d.ts +4 -0
  44. package/tools/public-api.d.ts +2 -0
  45. package/esm2022/components/lib/coer-grid/coer-grid.templates.mjs +0 -30
@@ -1,5 +1,6 @@
1
1
  import { Component } from '@angular/core';
2
2
  import { Tools } from '../tools';
3
+ import { Colors } from '../colors.class';
3
4
  import * as bootstrap from 'bootstrap';
4
5
  import Swal from 'sweetalert2';
5
6
  import * as i0 from "@angular/core";
@@ -112,7 +113,7 @@ export class CoerAlert {
112
113
  if (Tools.IsNull(icon))
113
114
  icon = 'bi-exclamation-octagon';
114
115
  iconType = 'error';
115
- color = '#dc3545'; //red
116
+ color = Colors.red;
116
117
  break;
117
118
  }
118
119
  ;
@@ -121,7 +122,7 @@ export class CoerAlert {
121
122
  if (Tools.IsNull(icon))
122
123
  icon = 'bi-check-circle';
123
124
  iconType = 'info';
124
- color = '#198754'; //green
125
+ color = Colors.green;
125
126
  break;
126
127
  }
127
128
  ;
@@ -130,7 +131,7 @@ export class CoerAlert {
130
131
  if (Tools.IsNull(icon))
131
132
  icon = 'bi-info-circle';
132
133
  iconType = 'error';
133
- color = '#0d6efd'; //blue
134
+ color = Colors.black;
134
135
  break;
135
136
  }
136
137
  ;
@@ -138,7 +139,7 @@ export class CoerAlert {
138
139
  if (Tools.IsNull(icon))
139
140
  icon = 'bi-exclamation-triangle-fill';
140
141
  iconType = 'warning';
141
- color = '#ffc107'; //yellow
142
+ color = Colors.yellow;
142
143
  break;
143
144
  }
144
145
  }
@@ -219,10 +220,10 @@ export class CoerAlert {
219
220
  return icon;
220
221
  }
221
222
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CoerAlert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
222
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CoerAlert, isStandalone: true, selector: "coer-alert", ngImport: i0, template: "<aside class=\"toast-container coer-alert\">\r\n <!-- Success -->\r\n <div id=\"alert-success\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-success-icon\"></i>\r\n <strong id=\"alert-success-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-success')\" class=\"btn-close btn-close-white\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-success-message\"></pre>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Error -->\r\n <div id=\"alert-error\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-error-icon\"></i>\r\n <strong id=\"alert-error-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-error')\" class=\"btn-close btn-close-white\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-error-message\"></pre>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Info -->\r\n <div id=\"alert-info\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-info-icon\"></i>\r\n <strong id=\"alert-info-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-info')\" class=\"btn-close btn-close-white\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-info-message\"></pre>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Warning -->\r\n <div id=\"alert-warning\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-warning-icon\"></i>\r\n <strong id=\"alert-warning-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-warning')\" class=\"btn-close\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-warning-message\"></pre>\r\n </div>\r\n </div>\r\n</aside>", styles: ["*{--blue: #0d6efd;--gray: #6c757d;--green: #198754;--yellow: #ffc107;--red: #dc3545;--white: #f5f5f5;--black: #252525;--orange: #fd6031}.text-blue{color:#0d6efd!important}.text-blue-bold{color:#0d6efd!important;font-weight:700!important}.background-blue{background-color:#0d6efd!important}.background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}.border-blue{border-color:#0d6efd!important}.text-gray{color:#6c757d!important}.text-gray-bold{color:#6c757d!important;font-weight:700!important}.background-gray{background-color:#6c757d!important}.background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}.border-gray{border-color:#6c757d!important}.text-green{color:#198754!important}.text-green-bold{color:#198754!important;font-weight:700!important}.background-green{background-color:#198754!important}.background-border-green{background-color:#198754!important;border-color:#198754!important}.border-green{border-color:#198754!important}.text-yellow{color:#ffc107!important}.text-yellow-bold{color:#ffc107!important;font-weight:700!important}.background-yellow{background-color:#ffc107!important}.background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}.border-yellow{border-color:#ffc107!important}.text-red{color:#dc3545!important}.text-red-bold{color:#dc3545!important;font-weight:700!important}.background-red{background-color:#dc3545!important}.background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}.border-red{border-color:#dc3545!important}.text-white{color:#f5f5f5!important}.text-white-bold{color:#f5f5f5!important;font-weight:700!important}.background-white{background-color:#f5f5f5!important}.background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}.border-white{border-color:#f5f5f5!important}.text-black{color:#252525!important}.text-black-bold{color:#252525!important;font-weight:700!important}.background-black{background-color:#252525!important}.background-border-black{background-color:#252525!important;border-color:#252525!important}.border-black{border-color:#252525!important}.text-orange{color:#fd6031!important}.text-orange-bold{color:#fd6031!important;font-weight:700!important}.background-orange{background-color:#fd6031!important}.background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}.border-orange{border-color:#fd6031!important}aside.toast-container{position:fixed;bottom:0;right:0;padding:15px!important;z-index:2000!important}aside.toast-container i,aside.toast-container svg{display:flex;align-items:center}aside.toast-container strong{margin:0 auto 0 5px}aside.toast-container div.toast,aside.toast-container div.toast-header{border-top-left-radius:10px;border-top-right-radius:10px;color:#f5f5f5}aside.toast-container div.toast,aside.toast-container div.toast-body{border-bottom-left-radius:10px;border-bottom-right-radius:10px;color:#f5f5f5}aside.toast-container div.toast-body{min-height:36px}aside.toast-container pre{font-family:Roboto,RobotoFallback,Noto Kufi Arabic,Helvetica,Arial,sans-serif;white-space:pre-wrap;font-size:medium}aside.toast-container button{margin:0 2px!important;width:10px!important;height:10px!important;box-shadow:none!important;outline:none!important;border:none!important}aside.toast-container div#alert-success div.toast-header,aside.toast-container div#alert-success div.toast-body{background-color:#198754}aside.toast-container div#alert-info div.toast-header,aside.toast-container div#alert-info div.toast-body{background-color:#0d6efd}aside.toast-container div#alert-error div.toast-header,aside.toast-container div#alert-error div.toast-body{background-color:#dc3545}aside.toast-container div#alert-warning div.toast-header,aside.toast-container div#alert-warning div.toast-body{background-color:#ffc107;border-color:#252525;color:#252525}aside.toast-container div#alert-success:hover,aside.toast-container div#alert-info:hover,aside.toast-container div#alert-error:hover,aside.toast-container div#alert-warning:hover{transform:scale(1.01);box-shadow:2px 2px 10px #789;cursor:default}button.sweet-alert-button{width:100px!important;height:40px!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0 5px!important;outline:none!important;border:none!important;box-shadow:none!important}aside.toast-container>*{border:none!important;z-index:2000!important;margin:15px 0 0!important}\n"] }); }
223
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CoerAlert, isStandalone: true, selector: "coer-alert", ngImport: i0, template: "<aside class=\"toast-container coer-alert\">\r\n <!-- Success -->\r\n <div id=\"alert-success\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-success-icon\"></i>\r\n <strong id=\"alert-success-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-success')\" class=\"btn-close btn-close-white\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-success-message\"></pre>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Error -->\r\n <div id=\"alert-error\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-error-icon\"></i>\r\n <strong id=\"alert-error-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-error')\" class=\"btn-close btn-close-white\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-error-message\"></pre>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Info -->\r\n <div id=\"alert-info\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-info-icon\"></i>\r\n <strong id=\"alert-info-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-info')\" class=\"btn-close btn-close-white\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-info-message\"></pre>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Warning -->\r\n <div id=\"alert-warning\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-warning-icon\"></i>\r\n <strong id=\"alert-warning-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-warning')\" class=\"btn-close\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-warning-message\"></pre>\r\n </div>\r\n </div>\r\n</aside>", styles: ["*{--blue: #0d6efd;--gray: #6c757d;--green: #198754;--yellow: #ffc107;--red: #dc3545;--white: #f5f5f5;--black: #252525;--orange: #fd6031;--purple: #a615bc}.text-blue{color:#0d6efd!important}.text-blue-bold{color:#0d6efd!important;font-weight:700!important}.background-blue{background-color:#0d6efd!important}.background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}.border-blue{border-color:#0d6efd!important}.text-gray{color:#6c757d!important}.text-gray-bold{color:#6c757d!important;font-weight:700!important}.background-gray{background-color:#6c757d!important}.background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}.border-gray{border-color:#6c757d!important}.text-green{color:#198754!important}.text-green-bold{color:#198754!important;font-weight:700!important}.background-green{background-color:#198754!important}.background-border-green{background-color:#198754!important;border-color:#198754!important}.border-green{border-color:#198754!important}.text-yellow{color:#ffc107!important}.text-yellow-bold{color:#ffc107!important;font-weight:700!important}.background-yellow{background-color:#ffc107!important}.background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}.border-yellow{border-color:#ffc107!important}.text-red{color:#dc3545!important}.text-red-bold{color:#dc3545!important;font-weight:700!important}.background-red{background-color:#dc3545!important}.background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}.border-red{border-color:#dc3545!important}.text-white{color:#f5f5f5!important}.text-white-bold{color:#f5f5f5!important;font-weight:700!important}.background-white{background-color:#f5f5f5!important}.background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}.border-white{border-color:#f5f5f5!important}.text-black{color:#252525!important}.text-black-bold{color:#252525!important;font-weight:700!important}.background-black{background-color:#252525!important}.background-border-black{background-color:#252525!important;border-color:#252525!important}.border-black{border-color:#252525!important}.text-orange{color:#fd6031!important}.text-orange-bold{color:#fd6031!important;font-weight:700!important}.background-orange{background-color:#fd6031!important}.background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}.border-orange{border-color:#fd6031!important}aside.toast-container{position:fixed;bottom:0;right:0;padding:15px!important;z-index:2000!important}aside.toast-container i,aside.toast-container svg{display:flex;align-items:center}aside.toast-container strong{margin:0 auto 0 5px}aside.toast-container div.toast,aside.toast-container div.toast-header{border-top-left-radius:10px;border-top-right-radius:10px;color:#f5f5f5}aside.toast-container div.toast,aside.toast-container div.toast-body{border-bottom-left-radius:10px;border-bottom-right-radius:10px;color:#f5f5f5}aside.toast-container div.toast-body{min-height:36px}aside.toast-container pre{font-family:Roboto,RobotoFallback,Noto Kufi Arabic,Helvetica,Arial,sans-serif;white-space:pre-wrap;font-size:medium}aside.toast-container button{margin:0 2px!important;width:10px!important;height:10px!important;box-shadow:none!important;outline:none!important;border:none!important}aside.toast-container div#alert-success div.toast-header,aside.toast-container div#alert-success div.toast-body{background-color:#198754}aside.toast-container div#alert-info div.toast-header,aside.toast-container div#alert-info div.toast-body{background-color:#0d6efd}aside.toast-container div#alert-error div.toast-header,aside.toast-container div#alert-error div.toast-body{background-color:#dc3545}aside.toast-container div#alert-warning div.toast-header,aside.toast-container div#alert-warning div.toast-body{background-color:#ffc107;border-color:#252525;color:#252525}aside.toast-container div#alert-success:hover,aside.toast-container div#alert-info:hover,aside.toast-container div#alert-error:hover,aside.toast-container div#alert-warning:hover{transform:scale(1.01);box-shadow:2px 2px 10px #789;cursor:default}button.sweet-alert-button{width:100px!important;height:40px!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0 5px!important;outline:none!important;border:none!important;box-shadow:none!important}aside.toast-container>*{border:none!important;z-index:2000!important;margin:15px 0 0!important}\n"] }); }
223
224
  }
224
225
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CoerAlert, decorators: [{
225
226
  type: Component,
226
- args: [{ selector: 'coer-alert', standalone: true, template: "<aside class=\"toast-container coer-alert\">\r\n <!-- Success -->\r\n <div id=\"alert-success\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-success-icon\"></i>\r\n <strong id=\"alert-success-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-success')\" class=\"btn-close btn-close-white\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-success-message\"></pre>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Error -->\r\n <div id=\"alert-error\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-error-icon\"></i>\r\n <strong id=\"alert-error-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-error')\" class=\"btn-close btn-close-white\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-error-message\"></pre>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Info -->\r\n <div id=\"alert-info\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-info-icon\"></i>\r\n <strong id=\"alert-info-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-info')\" class=\"btn-close btn-close-white\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-info-message\"></pre>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Warning -->\r\n <div id=\"alert-warning\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-warning-icon\"></i>\r\n <strong id=\"alert-warning-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-warning')\" class=\"btn-close\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-warning-message\"></pre>\r\n </div>\r\n </div>\r\n</aside>", styles: ["*{--blue: #0d6efd;--gray: #6c757d;--green: #198754;--yellow: #ffc107;--red: #dc3545;--white: #f5f5f5;--black: #252525;--orange: #fd6031}.text-blue{color:#0d6efd!important}.text-blue-bold{color:#0d6efd!important;font-weight:700!important}.background-blue{background-color:#0d6efd!important}.background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}.border-blue{border-color:#0d6efd!important}.text-gray{color:#6c757d!important}.text-gray-bold{color:#6c757d!important;font-weight:700!important}.background-gray{background-color:#6c757d!important}.background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}.border-gray{border-color:#6c757d!important}.text-green{color:#198754!important}.text-green-bold{color:#198754!important;font-weight:700!important}.background-green{background-color:#198754!important}.background-border-green{background-color:#198754!important;border-color:#198754!important}.border-green{border-color:#198754!important}.text-yellow{color:#ffc107!important}.text-yellow-bold{color:#ffc107!important;font-weight:700!important}.background-yellow{background-color:#ffc107!important}.background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}.border-yellow{border-color:#ffc107!important}.text-red{color:#dc3545!important}.text-red-bold{color:#dc3545!important;font-weight:700!important}.background-red{background-color:#dc3545!important}.background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}.border-red{border-color:#dc3545!important}.text-white{color:#f5f5f5!important}.text-white-bold{color:#f5f5f5!important;font-weight:700!important}.background-white{background-color:#f5f5f5!important}.background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}.border-white{border-color:#f5f5f5!important}.text-black{color:#252525!important}.text-black-bold{color:#252525!important;font-weight:700!important}.background-black{background-color:#252525!important}.background-border-black{background-color:#252525!important;border-color:#252525!important}.border-black{border-color:#252525!important}.text-orange{color:#fd6031!important}.text-orange-bold{color:#fd6031!important;font-weight:700!important}.background-orange{background-color:#fd6031!important}.background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}.border-orange{border-color:#fd6031!important}aside.toast-container{position:fixed;bottom:0;right:0;padding:15px!important;z-index:2000!important}aside.toast-container i,aside.toast-container svg{display:flex;align-items:center}aside.toast-container strong{margin:0 auto 0 5px}aside.toast-container div.toast,aside.toast-container div.toast-header{border-top-left-radius:10px;border-top-right-radius:10px;color:#f5f5f5}aside.toast-container div.toast,aside.toast-container div.toast-body{border-bottom-left-radius:10px;border-bottom-right-radius:10px;color:#f5f5f5}aside.toast-container div.toast-body{min-height:36px}aside.toast-container pre{font-family:Roboto,RobotoFallback,Noto Kufi Arabic,Helvetica,Arial,sans-serif;white-space:pre-wrap;font-size:medium}aside.toast-container button{margin:0 2px!important;width:10px!important;height:10px!important;box-shadow:none!important;outline:none!important;border:none!important}aside.toast-container div#alert-success div.toast-header,aside.toast-container div#alert-success div.toast-body{background-color:#198754}aside.toast-container div#alert-info div.toast-header,aside.toast-container div#alert-info div.toast-body{background-color:#0d6efd}aside.toast-container div#alert-error div.toast-header,aside.toast-container div#alert-error div.toast-body{background-color:#dc3545}aside.toast-container div#alert-warning div.toast-header,aside.toast-container div#alert-warning div.toast-body{background-color:#ffc107;border-color:#252525;color:#252525}aside.toast-container div#alert-success:hover,aside.toast-container div#alert-info:hover,aside.toast-container div#alert-error:hover,aside.toast-container div#alert-warning:hover{transform:scale(1.01);box-shadow:2px 2px 10px #789;cursor:default}button.sweet-alert-button{width:100px!important;height:40px!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0 5px!important;outline:none!important;border:none!important;box-shadow:none!important}aside.toast-container>*{border:none!important;z-index:2000!important;margin:15px 0 0!important}\n"] }]
227
+ args: [{ selector: 'coer-alert', standalone: true, template: "<aside class=\"toast-container coer-alert\">\r\n <!-- Success -->\r\n <div id=\"alert-success\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-success-icon\"></i>\r\n <strong id=\"alert-success-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-success')\" class=\"btn-close btn-close-white\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-success-message\"></pre>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Error -->\r\n <div id=\"alert-error\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-error-icon\"></i>\r\n <strong id=\"alert-error-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-error')\" class=\"btn-close btn-close-white\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-error-message\"></pre>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Info -->\r\n <div id=\"alert-info\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-info-icon\"></i>\r\n <strong id=\"alert-info-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-info')\" class=\"btn-close btn-close-white\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-info-message\"></pre>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Warning -->\r\n <div id=\"alert-warning\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" class=\"toast\">\r\n <div class=\"toast-header\">\r\n <i id=\"alert-warning-icon\"></i>\r\n <strong id=\"alert-warning-title\"></strong>\r\n <button type=\"button\" (click)=\"Close('alert-warning')\" class=\"btn-close\"></button>\r\n </div>\r\n\r\n <div class=\"toast-body\">\r\n <pre id=\"alert-warning-message\"></pre>\r\n </div>\r\n </div>\r\n</aside>", styles: ["*{--blue: #0d6efd;--gray: #6c757d;--green: #198754;--yellow: #ffc107;--red: #dc3545;--white: #f5f5f5;--black: #252525;--orange: #fd6031;--purple: #a615bc}.text-blue{color:#0d6efd!important}.text-blue-bold{color:#0d6efd!important;font-weight:700!important}.background-blue{background-color:#0d6efd!important}.background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}.border-blue{border-color:#0d6efd!important}.text-gray{color:#6c757d!important}.text-gray-bold{color:#6c757d!important;font-weight:700!important}.background-gray{background-color:#6c757d!important}.background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}.border-gray{border-color:#6c757d!important}.text-green{color:#198754!important}.text-green-bold{color:#198754!important;font-weight:700!important}.background-green{background-color:#198754!important}.background-border-green{background-color:#198754!important;border-color:#198754!important}.border-green{border-color:#198754!important}.text-yellow{color:#ffc107!important}.text-yellow-bold{color:#ffc107!important;font-weight:700!important}.background-yellow{background-color:#ffc107!important}.background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}.border-yellow{border-color:#ffc107!important}.text-red{color:#dc3545!important}.text-red-bold{color:#dc3545!important;font-weight:700!important}.background-red{background-color:#dc3545!important}.background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}.border-red{border-color:#dc3545!important}.text-white{color:#f5f5f5!important}.text-white-bold{color:#f5f5f5!important;font-weight:700!important}.background-white{background-color:#f5f5f5!important}.background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}.border-white{border-color:#f5f5f5!important}.text-black{color:#252525!important}.text-black-bold{color:#252525!important;font-weight:700!important}.background-black{background-color:#252525!important}.background-border-black{background-color:#252525!important;border-color:#252525!important}.border-black{border-color:#252525!important}.text-orange{color:#fd6031!important}.text-orange-bold{color:#fd6031!important;font-weight:700!important}.background-orange{background-color:#fd6031!important}.background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}.border-orange{border-color:#fd6031!important}aside.toast-container{position:fixed;bottom:0;right:0;padding:15px!important;z-index:2000!important}aside.toast-container i,aside.toast-container svg{display:flex;align-items:center}aside.toast-container strong{margin:0 auto 0 5px}aside.toast-container div.toast,aside.toast-container div.toast-header{border-top-left-radius:10px;border-top-right-radius:10px;color:#f5f5f5}aside.toast-container div.toast,aside.toast-container div.toast-body{border-bottom-left-radius:10px;border-bottom-right-radius:10px;color:#f5f5f5}aside.toast-container div.toast-body{min-height:36px}aside.toast-container pre{font-family:Roboto,RobotoFallback,Noto Kufi Arabic,Helvetica,Arial,sans-serif;white-space:pre-wrap;font-size:medium}aside.toast-container button{margin:0 2px!important;width:10px!important;height:10px!important;box-shadow:none!important;outline:none!important;border:none!important}aside.toast-container div#alert-success div.toast-header,aside.toast-container div#alert-success div.toast-body{background-color:#198754}aside.toast-container div#alert-info div.toast-header,aside.toast-container div#alert-info div.toast-body{background-color:#0d6efd}aside.toast-container div#alert-error div.toast-header,aside.toast-container div#alert-error div.toast-body{background-color:#dc3545}aside.toast-container div#alert-warning div.toast-header,aside.toast-container div#alert-warning div.toast-body{background-color:#ffc107;border-color:#252525;color:#252525}aside.toast-container div#alert-success:hover,aside.toast-container div#alert-info:hover,aside.toast-container div#alert-error:hover,aside.toast-container div#alert-warning:hover{transform:scale(1.01);box-shadow:2px 2px 10px #789;cursor:default}button.sweet-alert-button{width:100px!important;height:40px!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0 5px!important;outline:none!important;border:none!important;box-shadow:none!important}aside.toast-container>*{border:none!important;z-index:2000!important;margin:15px 0 0!important}\n"] }]
227
228
  }] });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1hbGVydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL3Rvb2xzL2xpYi9jb2VyLWFsZXJ0L2NvZXItYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy90b29scy9saWIvY29lci1hbGVydC9jb2VyLWFsZXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqQyxPQUFPLEtBQUssU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUN2QyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUE7O0FBUTlCLE1BQU0sT0FBTyxTQUFTO0lBRWxCLE1BQU07SUFDQyxPQUFPLENBQUMsVUFBeUIsSUFBSSxFQUFFLFFBQXVCLElBQUksRUFBRSxPQUFzQixJQUFJLEVBQUUsV0FBMEIsSUFBSTtRQUNqSSxPQUFPO1FBQ1AsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1lBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUNyRCxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUUsQ0FBQztRQUMxRSxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXRDLE1BQU07UUFDTixJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFNLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFDN0QsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFFLENBQUM7UUFDeEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FB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S0FBSyxTQUFTLENBQUMsQ0FBQyxPQUFPLDBDQUEwQyxDQUFDO2dCQUNsRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLE9BQU8sNENBQTRDLENBQUM7Z0JBQ3BFLEtBQUssVUFBVSxDQUFDLENBQUMsT0FBTyw0Q0FBNEMsQ0FBQztnQkFDckUsS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPLHlCQUF5QixDQUFDO2dCQUNoRCxLQUFLLFNBQVMsQ0FBQyxDQUFDLE9BQU8seUJBQXlCLENBQUM7Z0JBQ2pELE9BQU8sQ0FBQyxDQUFDLE9BQU8sV0FBVyxDQUFDO1lBQ2hDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzsrR0E5T1EsU0FBUzttR0FBVCxTQUFTLHNFQ1h0QiwrckVBdURROzs0RkQ1Q0ssU0FBUztrQkFOckIsU0FBUzsrQkFDSSxZQUFZLGNBR1YsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUb29scyB9IGZyb20gJy4uL3Rvb2xzJztcclxuaW1wb3J0ICogYXMgYm9vdHN0cmFwIGZyb20gJ2Jvb3RzdHJhcCc7XHJcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJ1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvZXItYWxlcnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZXItYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY29lci1hbGVydC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29lckFsZXJ0IHtcclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBTdWNjZXNzKG1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsLCB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGljb246IHN0cmluZyB8IG51bGwgPSBudWxsLCBhdXRvaGlkZTogbnVtYmVyIHwgbnVsbCA9IDMwMDApOiB2b2lkIHtcclxuICAgICAgICAvL1RpdGxlXHJcbiAgICAgICAgaWYgKFRvb2xzLklzT25seVdoaXRlU3BhY2UodGl0bGUpKSB0aXRsZSA9ICdTdWNjZXNzJztcclxuICAgICAgICBjb25zdCBhbGVydFN1Y2Nlc3NUaXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGVydC1zdWNjZXNzLXRpdGxlJykhO1xyXG4gICAgICAgIGFsZXJ0U3VjY2Vzc1RpdGxlLnRleHRDb250ZW50ID0gdGl0bGU7XHJcblxyXG4gICAgICAgIC8vSWNvblxyXG4gICAgICAgIGljb24gPSB0aGlzLkdldEljb24odGl0bGUhLCBpY29uLCAnYmktY2hlY2stY2lyY2xlIGZhLWJlYXQnKTtcclxuICAgICAgICBjb25zdCBhbGVydFN1Y2Nlc3NJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsZXJ0LXN1Y2Nlc3MtaWNvbicpITtcclxuICAgICAgICB0aGlzLlNldEljb24oYWxlcnRTdWNjZXNzSWNvbiwgaWNvbik7XHJcblxyXG4gICAgICAgIC8vTWVzc2FnZVxyXG4gICAgICAgIGlmIChUb29scy5Jc051bGwobWVzc2FnZSkpIG1lc3NhZ2UgPSAnJztcclxuICAgICAgICBjb25zdCBhbGVydFN1Y2Nlc3NNZXNzYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsZXJ0LXN1Y2Nlc3MtbWVzc2FnZScpITtcclxuICAgICAgICBhbGVydFN1Y2Nlc3NNZXNzYWdlLmlubmVySFRNTCA9IG1lc3NhZ2UhO1xyXG5cclxuICAgICAgICAvL1RvYXN0XHJcbiAgICAgICAgY29uc3QgYWxlcnRTdWNjZXNzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsZXJ0LXN1Y2Nlc3MnKSE7XHJcbiAgICAgICAgdGhpcy5TZXRBdXRvSGlkZShhbGVydFN1Y2Nlc3MsIGF1dG9oaWRlKTtcclxuXHJcbiAgICAgICAgY29uc3QgdG9hc3QgPSBib290c3RyYXAuVG9hc3QuZ2V0T3JDcmVhdGVJbnN0YW5jZShhbGVydFN1Y2Nlc3MpO1xyXG4gICAgICAgIHRvYXN0LnNob3coKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgRXJyb3IobWVzc2FnZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIHRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgaWNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGF1dG9oaWRlOiBudW1iZXIgfCBudWxsID0gMzAwMCk6IHZvaWQge1xyXG4gICAgICAgIC8vVGl0bGVcclxuICAgICAgICBpZiAoVG9vbHMuSXNPbmx5V2hpdGVTcGFjZSh0aXRsZSkpIHRpdGxlID0gJ0Vycm9yJztcclxuICAgICAgICBjb25zdCBhbGVydEVycm9yVGl0bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnQtZXJyb3ItdGl0bGUnKSE7XHJcbiAgICAgICAgYWxlcnRFcnJvclRpdGxlLnRleHRDb250ZW50ID0gdGl0bGU7XHJcblxyXG4gICAgICAgIC8vSWNvblxyXG4gICAgICAgIGljb24gPSB0aGlzLkdldEljb24odGl0bGUhLCBpY29uLCAnYmktZXhjbGFtYXRpb24tb2N0YWdvbiBmYS1iZWF0Jyk7XHJcbiAgICAgICAgY29uc3QgYWxlcnRFcnJvckljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnQtZXJyb3ItaWNvbicpITtcclxuICAgICAgICB0aGlzLlNldEljb24oYWxlcnRFcnJvckljb24sIGljb24pO1xyXG5cclxuICAgICAgICAvL01lc3NhZ2VcclxuICAgICAgICBpZiAoVG9vbHMuSXNOdWxsKG1lc3NhZ2UpKSBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgY29uc3QgYWxlcnRFcnJvckJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnQtZXJyb3ItbWVzc2FnZScpITtcclxuICAgICAgICBhbGVydEVycm9yQm9keS5pbm5lckhUTUwgPSBtZXNzYWdlITtcclxuXHJcbiAgICAgICAgLy9Ub2FzdFxyXG4gICAgICAgIGNvbnN0IGFsZXJ0RXJyb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnQtZXJyb3InKSE7XHJcbiAgICAgICAgdGhpcy5TZXRBdXRvSGlkZShhbGVydEVycm9yLCBhdXRvaGlkZSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHRvYXN0ID0gYm9vdHN0cmFwLlRvYXN0LmdldE9yQ3JlYXRlSW5zdGFuY2UoYWxlcnRFcnJvcik7XHJcbiAgICAgICAgdG9hc3Quc2hvdygpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBJbmZvKG1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsLCB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGljb246IHN0cmluZyB8IG51bGwgPSBudWxsLCBhdXRvaGlkZTogbnVtYmVyIHwgbnVsbCA9IDMwMDApOiB2b2lkIHtcclxuICAgICAgICAvL1RpdGxlXHJcbiAgICAgICAgaWYgKFRvb2xzLklzT25seVdoaXRlU3BhY2UodGl0bGUpKSB0aXRsZSA9ICdJbmZvJztcclxuICAgICAgICBjb25zdCBhbGVydEluZm9UaXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGVydC1pbmZvLXRpdGxlJykhO1xyXG4gICAgICAgIGFsZXJ0SW5mb1RpdGxlLnRleHRDb250ZW50ID0gdGl0bGU7XHJcblxyXG4gICAgICAgIC8vSWNvblxyXG4gICAgICAgIGljb24gPSB0aGlzLkdldEljb24odGl0bGUhLCBpY29uLCAnYmktaW5mby1jaXJjbGUgZmEtYmVhdCcpO1xyXG4gICAgICAgIGNvbnN0IGFsZXJ0SW5mb0ljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnQtaW5mby1pY29uJykhO1xyXG4gICAgICAgIHRoaXMuU2V0SWNvbihhbGVydEluZm9JY29uLCBpY29uKTtcclxuXHJcbiAgICAgICAgLy9NZXNzYWdlXHJcbiAgICAgICAgaWYgKFRvb2xzLklzTnVsbChtZXNzYWdlKSkgbWVzc2FnZSA9ICcnO1xyXG4gICAgICAgIGNvbnN0IGFsZXJ0SW5mb0JvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnQtaW5mby1tZXNzYWdlJykhO1xyXG4gICAgICAgIGFsZXJ0SW5mb0JvZHkuaW5uZXJIVE1MID0gbWVzc2FnZSE7XHJcblxyXG4gICAgICAgIC8vVG9hc3RcclxuICAgICAgICBjb25zdCBhbGVydEluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnQtaW5mbycpITtcclxuICAgICAgICB0aGlzLlNldEF1dG9IaWRlKGFsZXJ0SW5mbywgYXV0b2hpZGUpO1xyXG5cclxuICAgICAgICBjb25zdCB0b2FzdCA9IGJvb3RzdHJhcC5Ub2FzdC5nZXRPckNyZWF0ZUluc3RhbmNlKGFsZXJ0SW5mbyk7XHJcbiAgICAgICAgdG9hc3Quc2hvdygpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBXYXJuaW5nKG1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsLCB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGljb246IHN0cmluZyB8IG51bGwgPSBudWxsLCBhdXRvaGlkZTogbnVtYmVyIHwgbnVsbCA9IDMwMDApOiB2b2lkIHtcclxuICAgICAgICAvL1RpdGxlXHJcbiAgICAgICAgaWYgKFRvb2xzLklzT25seVdoaXRlU3BhY2UodGl0bGUpKSB0aXRsZSA9ICdXYXJuaW5nJztcclxuICAgICAgICBjb25zdCBhbGVydFdhcm5pbmdUaXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGVydC13YXJuaW5nLXRpdGxlJykhO1xyXG4gICAgICAgIGFsZXJ0V2FybmluZ1RpdGxlLnRleHRDb250ZW50ID0gdGl0bGU7XHJcblxyXG4gICAgICAgIC8vSWNvblxyXG4gICAgICAgIGljb24gPSB0aGlzLkdldEljb24odGl0bGUhLCBpY29uLCAnYmktZXhjbGFtYXRpb24tdHJpYW5nbGUtZmlsbCBmYS1iZWF0Jyk7XHJcbiAgICAgICAgY29uc3QgYWxlcnRXYXJuaW5nSWNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGVydC13YXJuaW5nLWljb24nKSE7XHJcbiAgICAgICAgdGhpcy5TZXRJY29uKGFsZXJ0V2FybmluZ0ljb24sIGljb24pO1xyXG5cclxuICAgICAgICAvL01lc3NhZ2VcclxuICAgICAgICBpZiAoVG9vbHMuSXNOdWxsKG1lc3NhZ2UpKSBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgY29uc3QgYWxlcnRXYXJuaW5nQm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGVydC13YXJuaW5nLW1lc3NhZ2UnKSE7XHJcbiAgICAgICAgYWxlcnRXYXJuaW5nQm9keS5pbm5lckhUTUwgPSBtZXNzYWdlITtcclxuXHJcbiAgICAgICAgLy9Ub2FzdFxyXG4gICAgICAgIGNvbnN0IGFsZXJ0V2FybmluZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGVydC13YXJuaW5nJykhO1xyXG4gICAgICAgIHRoaXMuU2V0QXV0b0hpZGUoYWxlcnRXYXJuaW5nLCBhdXRvaGlkZSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHRvYXN0ID0gYm9vdHN0cmFwLlRvYXN0LmdldE9yQ3JlYXRlSW5zdGFuY2UoYWxlcnRXYXJuaW5nKTtcclxuICAgICAgICB0b2FzdC5zaG93KCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIENsb3NlKGFsZXJ0OiAnYWxlcnQtc3VjY2VzcycgfCAnYWxlcnQtZXJyb3InIHwgJ2FsZXJ0LWluZm8nIHwgJ2FsZXJ0LXdhcm5pbmcnKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KFJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYWxlcnQpITtcclxuICAgICAgICAgICAgY29uc3QgdG9hc3QgPSBib290c3RyYXAuVG9hc3QuZ2V0T3JDcmVhdGVJbnN0YW5jZShlbGVtZW50KTtcclxuICAgICAgICAgICAgdG9hc3QuaGlkZSgpO1xyXG5cclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IFJlc29sdmUoKSB9LCAyMDApO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIENvbmZpcm0oXHJcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nID0gJ1Byb2NlZWQ/JyxcclxuICAgICAgICBhbGVydFR5cGU6ICd3YXJuaW5nJyB8ICdkYW5nZXInIHwgJ3N1Y2Nlc3MnIHwgJ2luZm8nID0gJ3dhcm5pbmcnLFxyXG4gICAgICAgIGljb246IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KFJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY29sb3I6IHN0cmluZztcclxuICAgICAgICAgICAgbGV0IGljb25UeXBlOiAnd2FybmluZycgfCAnZXJyb3InIHwgJ3N1Y2Nlc3MnIHwgJ2luZm8nO1xyXG4gICAgICAgICAgICBzd2l0Y2goYWxlcnRUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdkYW5nZXInOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFRvb2xzLklzTnVsbChpY29uKSkgaWNvbiA9ICdiaS1leGNsYW1hdGlvbi1vY3RhZ29uJztcclxuICAgICAgICAgICAgICAgICAgICBpY29uVHlwZSA9ICdlcnJvcic7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3IgPSAnI2RjMzU0NSc7IC8vcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFRvb2xzLklzTnVsbChpY29uKSkgaWNvbiA9ICdiaS1jaGVjay1jaXJjbGUnO1xyXG4gICAgICAgICAgICAgICAgICAgIGljb25UeXBlID0gJ2luZm8nO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yID0gJyMxOTg3NTQnOyAvL2dyZWVuXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgJ2luZm8nOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFRvb2xzLklzTnVsbChpY29uKSkgaWNvbiA9ICdiaS1pbmZvLWNpcmNsZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgaWNvblR5cGUgPSAnZXJyb3InO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yID0gJyMwZDZlZmQnOyAvL2JsdWVcclxuICAgICAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFRvb2xzLklzTnVsbChpY29uKSkgaWNvbiA9ICdiaS1leGNsYW1hdGlvbi10cmlhbmdsZS1maWxsJztcclxuICAgICAgICAgICAgICAgICAgICBpY29uVHlwZSA9ICd3YXJuaW5nJztcclxuICAgICAgICAgICAgICAgICAgICBjb2xvciA9ICcjZmZjMTA3JzsgLy95ZWxsb3dcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3dpdGNoKGljb24pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2RlbGV0ZSc6IGljb24gPSAnZmEtcmVndWxhciBmYS10cmFzaC1jYW4nOyBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgU3dhbC5maXJlKHtcclxuICAgICAgICAgICAgICAgIGljb246IGljb25UeXBlLFxyXG4gICAgICAgICAgICAgICAgaWNvbkNvbG9yOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICAgICAgICAgICAgaWNvbkh0bWw6IGA8aSBjbGFzcz1cIiR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiAke2NvbG9yfTtcIj48L2k+YCxcclxuICAgICAgICAgICAgICAgIGh0bWw6IG1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAnWWVzJyxcclxuICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b25Db2xvcjogY29sb3IsXHJcbiAgICAgICAgICAgICAgICBmb2N1c0NvbmZpcm06IHRydWUsXHJcbiAgICAgICAgICAgICAgICBzaG93RGVueUJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGRlbnlCdXR0b25Db2xvcjogY29sb3IsXHJcbiAgICAgICAgICAgICAgICBmb2N1c0Rlbnk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcmV2ZXJzZUJ1dHRvbnM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBhbGxvd091dHNpZGVDbGljazogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBhbGxvd0VzY2FwZUtleTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBhbGxvd0VudGVyS2V5OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY3VzdG9tQ2xhc3M6IHtcclxuICAgICAgICAgICAgICAgICAgICBkZW55QnV0dG9uOiAnc3dlZXQtYWxlcnQtYnV0dG9uJyxcclxuICAgICAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uOiAnc3dlZXQtYWxlcnQtYnV0dG9uJ1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KS50aGVuKCh7IHZhbHVlIH0pID0+IHNldFRpbWVvdXQoKCkgPT4gUmVzb2x2ZSh2YWx1ZSkpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIFNldEljb24oZWxlbWVudDogSFRNTEVsZW1lbnQsIGljb246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBbLi4uZWxlbWVudC5jbGFzc0xpc3QudmFsdWUuc3BsaXQoJyAnKV0pIHtcclxuICAgICAgICAgICAgaWYgKGl0ZW0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdxJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGljb24gPSBpY29uLnRyaW0oKTtcclxuICAgICAgICBjb25zdCBoYXNXaGl0ZVNwYWNlczogUmVnRXhwID0gLyAvO1xyXG4gICAgICAgIGlmIChoYXNXaGl0ZVNwYWNlcy50ZXN0KGljb24pKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzZXMgPSBpY29uLnNwbGl0KCcgJyk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgaWNvbiBvZiBjbGFzc2VzKSBlbGVtZW50LmNsYXNzTGlzdC5hZGQoaWNvbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChpY29uKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIFNldEF1dG9IaWRlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBhdXRvaGlkZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWJzLWF1dG9oaWRlJyk7XHJcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtYnMtZGVsYXknKTtcclxuXHJcbiAgICAgICAgaWYgKGF1dG9oaWRlICYmIGF1dG9oaWRlID4gMCkge1xyXG4gICAgICAgICAgICBpZiAoYXV0b2hpZGUgPCAxMDAwKSBhdXRvaGlkZSA9IDEwMDA7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLWF1dG9oaWRlJywgJ3RydWUnKTtcclxuICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtZGVsYXknLCBTdHJpbmcoYXV0b2hpZGUpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2UgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtYXV0b2hpZGUnLCAnZmFsc2UnKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIEdldEljb24odGl0bGU6IHN0cmluZywgaWNvbjogc3RyaW5nIHwgbnVsbCwgaWNvbkRlZmF1bHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKGljb24gPT0gbnVsbCB8fCBpY29uID09ICcnKSB7XHJcbiAgICAgICAgICAgIHRpdGxlID0gdGl0bGUucmVwbGFjZUFsbCgnICcsICcnKS50b1VwcGVyQ2FzZSgpO1xyXG5cclxuICAgICAgICAgICAgc3dpdGNoKHRpdGxlKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdFTkFCTEVEJzogcmV0dXJuICdmYS1zb2xpZCBmYS10aHVtYnMtdXAgZmEtZmxpcC1ob3Jpem9udGFsJztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ0FDVElWRSc6IHJldHVybiAnZmEtc29saWQgZmEtdGh1bWJzLXVwIGZhLWZsaXAtaG9yaXpvbnRhbCc7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdBQ1RJVkVEJzogcmV0dXJuICdmYS1zb2xpZCBmYS10aHVtYnMtdXAgZmEtZmxpcC1ob3Jpem9udGFsJztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ0RJU0FCTEUnOiByZXR1cm4gJ2ZhLXNvbGlkIGZhLXRodW1icy1kb3duIGZhLWZsaXAtaG9yaXpvbnRhbCc7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdESVNBQkxFRCc6IHJldHVybiAnZmEtc29saWQgZmEtdGh1bWJzLWRvd24gZmEtZmxpcC1ob3Jpem9udGFsJztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ0RFTEVURSc6IHJldHVybiAnZmEtcmVndWxhciBmYS10cmFzaC1jYW4nO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnREVMRVRFRCc6IHJldHVybiAnZmEtcmVndWxhciBmYS10cmFzaC1jYW4nO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuIGljb25EZWZhdWx0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaWNvbjtcclxuICAgIH1cclxufSIsIjxhc2lkZSBjbGFzcz1cInRvYXN0LWNvbnRhaW5lciBjb2VyLWFsZXJ0XCI+XHJcbiAgICA8IS0tIFN1Y2Nlc3MgLS0+XHJcbiAgICA8ZGl2IGlkPVwiYWxlcnQtc3VjY2Vzc1wiIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIGFyaWEtYXRvbWljPVwidHJ1ZVwiIGNsYXNzPVwidG9hc3RcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9hc3QtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxpIGlkPVwiYWxlcnQtc3VjY2Vzcy1pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICA8c3Ryb25nIGlkPVwiYWxlcnQtc3VjY2Vzcy10aXRsZVwiPjwvc3Ryb25nPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiQ2xvc2UoJ2FsZXJ0LXN1Y2Nlc3MnKVwiIGNsYXNzPVwiYnRuLWNsb3NlIGJ0bi1jbG9zZS13aGl0ZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9hc3QtYm9keVwiPlxyXG4gICAgICAgICAgICA8cHJlIGlkPVwiYWxlcnQtc3VjY2Vzcy1tZXNzYWdlXCI+PC9wcmU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPCEtLSBFcnJvciAtLT5cclxuICAgIDxkaXYgaWQ9XCJhbGVydC1lcnJvclwiIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIGFyaWEtYXRvbWljPVwidHJ1ZVwiIGNsYXNzPVwidG9hc3RcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9hc3QtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxpIGlkPVwiYWxlcnQtZXJyb3ItaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgPHN0cm9uZyBpZD1cImFsZXJ0LWVycm9yLXRpdGxlXCI+PC9zdHJvbmc+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJDbG9zZSgnYWxlcnQtZXJyb3InKVwiIGNsYXNzPVwiYnRuLWNsb3NlIGJ0bi1jbG9zZS13aGl0ZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9hc3QtYm9keVwiPlxyXG4gICAgICAgICAgICA8cHJlIGlkPVwiYWxlcnQtZXJyb3ItbWVzc2FnZVwiPjwvcHJlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwhLS0gSW5mbyAtLT5cclxuICAgIDxkaXYgaWQ9XCJhbGVydC1pbmZvXCIgcm9sZT1cImFsZXJ0XCIgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCIgY2xhc3M9XCJ0b2FzdFwiPlxyXG4gICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8aSBpZD1cImFsZXJ0LWluZm8taWNvblwiPjwvaT5cclxuICAgICAgICAgICAgPHN0cm9uZyBpZD1cImFsZXJ0LWluZm8tdGl0bGVcIj48L3N0cm9uZz5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIkNsb3NlKCdhbGVydC1pbmZvJylcIiBjbGFzcz1cImJ0bi1jbG9zZSBidG4tY2xvc2Utd2hpdGVcIj48L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWJvZHlcIj5cclxuICAgICAgICAgICAgPHByZSBpZD1cImFsZXJ0LWluZm8tbWVzc2FnZVwiPjwvcHJlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwhLS0gV2FybmluZyAtLT5cclxuICAgIDxkaXYgaWQ9XCJhbGVydC13YXJuaW5nXCIgcm9sZT1cImFsZXJ0XCIgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCIgY2xhc3M9XCJ0b2FzdFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPGkgaWQ9XCJhbGVydC13YXJuaW5nLWljb25cIj48L2k+XHJcbiAgICAgICAgICAgIDxzdHJvbmcgaWQ9XCJhbGVydC13YXJuaW5nLXRpdGxlXCI+PC9zdHJvbmc+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJDbG9zZSgnYWxlcnQtd2FybmluZycpXCIgY2xhc3M9XCJidG4tY2xvc2VcIj48L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWJvZHlcIj5cclxuICAgICAgICAgICAgPHByZSBpZD1cImFsZXJ0LXdhcm5pbmctbWVzc2FnZVwiPjwvcHJlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvYXNpZGU+Il19
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1hbGVydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL3Rvb2xzL2xpYi9jb2VyLWFsZXJ0L2NvZXItYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy90b29scy9saWIvY29lci1hbGVydC9jb2VyLWFsZXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxLQUFLLFNBQVMsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFBOztBQVE5QixNQUFNLE9BQU8sU0FBUztJQUVsQixNQUFNO0lBQ0MsT0FBTyxDQUFDLFVBQXlCLElBQUksRUFBRSxRQUF1QixJQUFJLEVBQUUsT0FBc0IsSUFBSSxFQUFFLFdBQTBCLElBQUk7UUFDakksT0FBTztRQUNQLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztZQUFFLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDckQsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFFLENBQUM7UUFDMUUsaUJBQWlCLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV0QyxNQUFNO1FBQ04sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBTSxFQUFFLElBQUksRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBRSxDQUFDO1FBQ3hFLElB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QUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8sMENBQTBDLENBQUM7Z0JBQ2pFLEtBQUssU0FBUyxDQUFDLENBQUMsT0FBTywwQ0FBMEMsQ0FBQztnQkFDbEUsS0FBSyxTQUFTLENBQUMsQ0FBQyxPQUFPLDRDQUE0QyxDQUFDO2dCQUNwRSxLQUFLLFVBQVUsQ0FBQyxDQUFDLE9BQU8sNENBQTRDLENBQUM7Z0JBQ3JFLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyx5QkFBeUIsQ0FBQztnQkFDaEQsS0FBSyxTQUFTLENBQUMsQ0FBQyxPQUFPLHlCQUF5QixDQUFDO2dCQUNqRCxPQUFPLENBQUMsQ0FBQyxPQUFPLFdBQVcsQ0FBQztZQUNoQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7K0dBOU9RLFNBQVM7bUdBQVQsU0FBUyxzRUNadEIsK3JFQXVEUTs7NEZEM0NLLFNBQVM7a0JBTnJCLFNBQVM7K0JBQ0ksWUFBWSxjQUdWLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVG9vbHMgfSBmcm9tICcuLi90b29scyc7XHJcbmltcG9ydCB7IENvbG9ycyB9IGZyb20gJy4uL2NvbG9ycy5jbGFzcyc7XHJcbmltcG9ydCAqIGFzIGJvb3RzdHJhcCBmcm9tICdib290c3RyYXAnO1xyXG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0MidcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjb2VyLWFsZXJ0JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2VyLWFsZXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NvZXItYWxlcnQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZXJBbGVydCB7XHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgU3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgdGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYXV0b2hpZGU6IG51bWJlciB8IG51bGwgPSAzMDAwKTogdm9pZCB7XHJcbiAgICAgICAgLy9UaXRsZVxyXG4gICAgICAgIGlmIChUb29scy5Jc09ubHlXaGl0ZVNwYWNlKHRpdGxlKSkgdGl0bGUgPSAnU3VjY2Vzcyc7XHJcbiAgICAgICAgY29uc3QgYWxlcnRTdWNjZXNzVGl0bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnQtc3VjY2Vzcy10aXRsZScpITtcclxuICAgICAgICBhbGVydFN1Y2Nlc3NUaXRsZS50ZXh0Q29udGVudCA9IHRpdGxlO1xyXG5cclxuICAgICAgICAvL0ljb25cclxuICAgICAgICBpY29uID0gdGhpcy5HZXRJY29uKHRpdGxlISwgaWNvbiwgJ2JpLWNoZWNrLWNpcmNsZSBmYS1iZWF0Jyk7XHJcbiAgICAgICAgY29uc3QgYWxlcnRTdWNjZXNzSWNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGVydC1zdWNjZXNzLWljb24nKSE7XHJcbiAgICAgICAgdGhpcy5TZXRJY29uKGFsZXJ0U3VjY2Vzc0ljb24sIGljb24pO1xyXG5cclxuICAgICAgICAvL01lc3NhZ2VcclxuICAgICAgICBpZiAoVG9vbHMuSXNOdWxsKG1lc3NhZ2UpKSBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgY29uc3QgYWxlcnRTdWNjZXNzTWVzc2FnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGVydC1zdWNjZXNzLW1lc3NhZ2UnKSE7XHJcbiAgICAgICAgYWxlcnRTdWNjZXNzTWVzc2FnZS5pbm5lckhUTUwgPSBtZXNzYWdlITtcclxuXHJcbiAgICAgICAgLy9Ub2FzdFxyXG4gICAgICAgIGNvbnN0IGFsZXJ0U3VjY2VzcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGVydC1zdWNjZXNzJykhO1xyXG4gICAgICAgIHRoaXMuU2V0QXV0b0hpZGUoYWxlcnRTdWNjZXNzLCBhdXRvaGlkZSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHRvYXN0ID0gYm9vdHN0cmFwLlRvYXN0LmdldE9yQ3JlYXRlSW5zdGFuY2UoYWxlcnRTdWNjZXNzKTtcclxuICAgICAgICB0b2FzdC5zaG93KCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIEVycm9yKG1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsLCB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGljb246IHN0cmluZyB8IG51bGwgPSBudWxsLCBhdXRvaGlkZTogbnVtYmVyIHwgbnVsbCA9IDMwMDApOiB2b2lkIHtcclxuICAgICAgICAvL1RpdGxlXHJcbiAgICAgICAgaWYgKFRvb2xzLklzT25seVdoaXRlU3BhY2UodGl0bGUpKSB0aXRsZSA9ICdFcnJvcic7XHJcbiAgICAgICAgY29uc3QgYWxlcnRFcnJvclRpdGxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsZXJ0LWVycm9yLXRpdGxlJykhO1xyXG4gICAgICAgIGFsZXJ0RXJyb3JUaXRsZS50ZXh0Q29udGVudCA9IHRpdGxlO1xyXG5cclxuICAgICAgICAvL0ljb25cclxuICAgICAgICBpY29uID0gdGhpcy5HZXRJY29uKHRpdGxlISwgaWNvbiwgJ2JpLWV4Y2xhbWF0aW9uLW9jdGFnb24gZmEtYmVhdCcpO1xyXG4gICAgICAgIGNvbnN0IGFsZXJ0RXJyb3JJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsZXJ0LWVycm9yLWljb24nKSE7XHJcbiAgICAgICAgdGhpcy5TZXRJY29uKGFsZXJ0RXJyb3JJY29uLCBpY29uKTtcclxuXHJcbiAgICAgICAgLy9NZXNzYWdlXHJcbiAgICAgICAgaWYgKFRvb2xzLklzTnVsbChtZXNzYWdlKSkgbWVzc2FnZSA9ICcnO1xyXG4gICAgICAgIGNvbnN0IGFsZXJ0RXJyb3JCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsZXJ0LWVycm9yLW1lc3NhZ2UnKSE7XHJcbiAgICAgICAgYWxlcnRFcnJvckJvZHkuaW5uZXJIVE1MID0gbWVzc2FnZSE7XHJcblxyXG4gICAgICAgIC8vVG9hc3RcclxuICAgICAgICBjb25zdCBhbGVydEVycm9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsZXJ0LWVycm9yJykhO1xyXG4gICAgICAgIHRoaXMuU2V0QXV0b0hpZGUoYWxlcnRFcnJvciwgYXV0b2hpZGUpO1xyXG5cclxuICAgICAgICBjb25zdCB0b2FzdCA9IGJvb3RzdHJhcC5Ub2FzdC5nZXRPckNyZWF0ZUluc3RhbmNlKGFsZXJ0RXJyb3IpO1xyXG4gICAgICAgIHRvYXN0LnNob3coKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgSW5mbyhtZXNzYWdlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgdGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYXV0b2hpZGU6IG51bWJlciB8IG51bGwgPSAzMDAwKTogdm9pZCB7XHJcbiAgICAgICAgLy9UaXRsZVxyXG4gICAgICAgIGlmIChUb29scy5Jc09ubHlXaGl0ZVNwYWNlKHRpdGxlKSkgdGl0bGUgPSAnSW5mbyc7XHJcbiAgICAgICAgY29uc3QgYWxlcnRJbmZvVGl0bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnQtaW5mby10aXRsZScpITtcclxuICAgICAgICBhbGVydEluZm9UaXRsZS50ZXh0Q29udGVudCA9IHRpdGxlO1xyXG5cclxuICAgICAgICAvL0ljb25cclxuICAgICAgICBpY29uID0gdGhpcy5HZXRJY29uKHRpdGxlISwgaWNvbiwgJ2JpLWluZm8tY2lyY2xlIGZhLWJlYXQnKTtcclxuICAgICAgICBjb25zdCBhbGVydEluZm9JY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsZXJ0LWluZm8taWNvbicpITtcclxuICAgICAgICB0aGlzLlNldEljb24oYWxlcnRJbmZvSWNvbiwgaWNvbik7XHJcblxyXG4gICAgICAgIC8vTWVzc2FnZVxyXG4gICAgICAgIGlmIChUb29scy5Jc051bGwobWVzc2FnZSkpIG1lc3NhZ2UgPSAnJztcclxuICAgICAgICBjb25zdCBhbGVydEluZm9Cb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsZXJ0LWluZm8tbWVzc2FnZScpITtcclxuICAgICAgICBhbGVydEluZm9Cb2R5LmlubmVySFRNTCA9IG1lc3NhZ2UhO1xyXG5cclxuICAgICAgICAvL1RvYXN0XHJcbiAgICAgICAgY29uc3QgYWxlcnRJbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsZXJ0LWluZm8nKSE7XHJcbiAgICAgICAgdGhpcy5TZXRBdXRvSGlkZShhbGVydEluZm8sIGF1dG9oaWRlKTtcclxuXHJcbiAgICAgICAgY29uc3QgdG9hc3QgPSBib290c3RyYXAuVG9hc3QuZ2V0T3JDcmVhdGVJbnN0YW5jZShhbGVydEluZm8pO1xyXG4gICAgICAgIHRvYXN0LnNob3coKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgV2FybmluZyhtZXNzYWdlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgdGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYXV0b2hpZGU6IG51bWJlciB8IG51bGwgPSAzMDAwKTogdm9pZCB7XHJcbiAgICAgICAgLy9UaXRsZVxyXG4gICAgICAgIGlmIChUb29scy5Jc09ubHlXaGl0ZVNwYWNlKHRpdGxlKSkgdGl0bGUgPSAnV2FybmluZyc7XHJcbiAgICAgICAgY29uc3QgYWxlcnRXYXJuaW5nVGl0bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnQtd2FybmluZy10aXRsZScpITtcclxuICAgICAgICBhbGVydFdhcm5pbmdUaXRsZS50ZXh0Q29udGVudCA9IHRpdGxlO1xyXG5cclxuICAgICAgICAvL0ljb25cclxuICAgICAgICBpY29uID0gdGhpcy5HZXRJY29uKHRpdGxlISwgaWNvbiwgJ2JpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlLWZpbGwgZmEtYmVhdCcpO1xyXG4gICAgICAgIGNvbnN0IGFsZXJ0V2FybmluZ0ljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnQtd2FybmluZy1pY29uJykhO1xyXG4gICAgICAgIHRoaXMuU2V0SWNvbihhbGVydFdhcm5pbmdJY29uLCBpY29uKTtcclxuXHJcbiAgICAgICAgLy9NZXNzYWdlXHJcbiAgICAgICAgaWYgKFRvb2xzLklzTnVsbChtZXNzYWdlKSkgbWVzc2FnZSA9ICcnO1xyXG4gICAgICAgIGNvbnN0IGFsZXJ0V2FybmluZ0JvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnQtd2FybmluZy1tZXNzYWdlJykhO1xyXG4gICAgICAgIGFsZXJ0V2FybmluZ0JvZHkuaW5uZXJIVE1MID0gbWVzc2FnZSE7XHJcblxyXG4gICAgICAgIC8vVG9hc3RcclxuICAgICAgICBjb25zdCBhbGVydFdhcm5pbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnQtd2FybmluZycpITtcclxuICAgICAgICB0aGlzLlNldEF1dG9IaWRlKGFsZXJ0V2FybmluZywgYXV0b2hpZGUpO1xyXG5cclxuICAgICAgICBjb25zdCB0b2FzdCA9IGJvb3RzdHJhcC5Ub2FzdC5nZXRPckNyZWF0ZUluc3RhbmNlKGFsZXJ0V2FybmluZyk7XHJcbiAgICAgICAgdG9hc3Quc2hvdygpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBDbG9zZShhbGVydDogJ2FsZXJ0LXN1Y2Nlc3MnIHwgJ2FsZXJ0LWVycm9yJyB8ICdhbGVydC1pbmZvJyB8ICdhbGVydC13YXJuaW5nJykge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihSZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGFsZXJ0KSE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvYXN0ID0gYm9vdHN0cmFwLlRvYXN0LmdldE9yQ3JlYXRlSW5zdGFuY2UoZWxlbWVudCk7XHJcbiAgICAgICAgICAgIHRvYXN0LmhpZGUoKTtcclxuXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBSZXNvbHZlKCkgfSwgMjAwKTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBDb25maXJtKFxyXG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZyA9ICdQcm9jZWVkPycsXHJcbiAgICAgICAgYWxlcnRUeXBlOiAnd2FybmluZycgfCAnZGFuZ2VyJyB8ICdzdWNjZXNzJyB8ICdpbmZvJyA9ICd3YXJuaW5nJyxcclxuICAgICAgICBpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPihSZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgbGV0IGNvbG9yOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGxldCBpY29uVHlwZTogJ3dhcm5pbmcnIHwgJ2Vycm9yJyB8ICdzdWNjZXNzJyB8ICdpbmZvJztcclxuICAgICAgICAgICAgc3dpdGNoKGFsZXJ0VHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZGFuZ2VyJzoge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChUb29scy5Jc051bGwoaWNvbikpIGljb24gPSAnYmktZXhjbGFtYXRpb24tb2N0YWdvbic7XHJcbiAgICAgICAgICAgICAgICAgICAgaWNvblR5cGUgPSAnZXJyb3InO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yID0gQ29sb3JzLnJlZDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoVG9vbHMuSXNOdWxsKGljb24pKSBpY29uID0gJ2JpLWNoZWNrLWNpcmNsZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgaWNvblR5cGUgPSAnaW5mbyc7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBDb2xvcnMuZ3JlZW47XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgJ2luZm8nOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFRvb2xzLklzTnVsbChpY29uKSkgaWNvbiA9ICdiaS1pbmZvLWNpcmNsZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgaWNvblR5cGUgPSAnZXJyb3InO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yID0gQ29sb3JzLmJsYWNrO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoVG9vbHMuSXNOdWxsKGljb24pKSBpY29uID0gJ2JpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlLWZpbGwnO1xyXG4gICAgICAgICAgICAgICAgICAgIGljb25UeXBlID0gJ3dhcm5pbmcnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yID0gQ29sb3JzLnllbGxvdzsgXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHN3aXRjaChpY29uKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdkZWxldGUnOiBpY29uID0gJ2ZhLXJlZ3VsYXIgZmEtdHJhc2gtY2FuJzsgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICAgICAgICBpY29uOiBpY29uVHlwZSxcclxuICAgICAgICAgICAgICAgIGljb25Db2xvcjogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICAgICAgICAgIGljb25IdG1sOiBgPGkgY2xhc3M9XCIke2ljb259XCIgc3R5bGU9XCJjb2xvcjogJHtjb2xvcn07XCI+PC9pPmAsXHJcbiAgICAgICAgICAgICAgICBodG1sOiBtZXNzYWdlLFxyXG4gICAgICAgICAgICAgICAgc2hvd0NvbmZpcm1CdXR0b246IHRydWUsXHJcbiAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ1llcycsXHJcbiAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uQ29sb3I6IGNvbG9yLFxyXG4gICAgICAgICAgICAgICAgZm9jdXNDb25maXJtOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgc2hvd0RlbnlCdXR0b246IHRydWUsXHJcbiAgICAgICAgICAgICAgICBkZW55QnV0dG9uQ29sb3I6IGNvbG9yLFxyXG4gICAgICAgICAgICAgICAgZm9jdXNEZW55OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHJldmVyc2VCdXR0b25zOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgYWxsb3dPdXRzaWRlQ2xpY2s6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgYWxsb3dFc2NhcGVLZXk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgYWxsb3dFbnRlcktleTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGN1c3RvbUNsYXNzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVueUJ1dHRvbjogJ3N3ZWV0LWFsZXJ0LWJ1dHRvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgY29uZmlybUJ1dHRvbjogJ3N3ZWV0LWFsZXJ0LWJ1dHRvbidcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkudGhlbigoeyB2YWx1ZSB9KSA9PiBzZXRUaW1lb3V0KCgpID0+IFJlc29sdmUodmFsdWUpKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBTZXRJY29uKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBpY29uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgWy4uLmVsZW1lbnQuY2xhc3NMaXN0LnZhbHVlLnNwbGl0KCcgJyldKSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShpdGVtKTtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgncScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpY29uID0gaWNvbi50cmltKCk7XHJcbiAgICAgICAgY29uc3QgaGFzV2hpdGVTcGFjZXM6IFJlZ0V4cCA9IC8gLztcclxuICAgICAgICBpZiAoaGFzV2hpdGVTcGFjZXMudGVzdChpY29uKSkge1xyXG4gICAgICAgICAgICBjb25zdCBjbGFzc2VzID0gaWNvbi5zcGxpdCgnICcpO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGljb24gb2YgY2xhc3NlcykgZWxlbWVudC5jbGFzc0xpc3QuYWRkKGljb24pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSBlbGVtZW50LmNsYXNzTGlzdC5hZGQoaWNvbik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBTZXRBdXRvSGlkZShlbGVtZW50OiBIVE1MRWxlbWVudCwgYXV0b2hpZGU6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcclxuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1icy1hdXRvaGlkZScpO1xyXG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWJzLWRlbGF5Jyk7XHJcblxyXG4gICAgICAgIGlmIChhdXRvaGlkZSAmJiBhdXRvaGlkZSA+IDApIHtcclxuICAgICAgICAgICAgaWYgKGF1dG9oaWRlIDwgMTAwMCkgYXV0b2hpZGUgPSAxMDAwO1xyXG4gICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1icy1hdXRvaGlkZScsICd0cnVlJyk7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLWRlbGF5JywgU3RyaW5nKGF1dG9oaWRlKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLWF1dG9oaWRlJywgJ2ZhbHNlJyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBHZXRJY29uKHRpdGxlOiBzdHJpbmcsIGljb246IHN0cmluZyB8IG51bGwsIGljb25EZWZhdWx0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChpY29uID09IG51bGwgfHwgaWNvbiA9PSAnJykge1xyXG4gICAgICAgICAgICB0aXRsZSA9IHRpdGxlLnJlcGxhY2VBbGwoJyAnLCAnJykudG9VcHBlckNhc2UoKTtcclxuXHJcbiAgICAgICAgICAgIHN3aXRjaCh0aXRsZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnRU5BQkxFRCc6IHJldHVybiAnZmEtc29saWQgZmEtdGh1bWJzLXVwIGZhLWZsaXAtaG9yaXpvbnRhbCc7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdBQ1RJVkUnOiByZXR1cm4gJ2ZhLXNvbGlkIGZhLXRodW1icy11cCBmYS1mbGlwLWhvcml6b250YWwnO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnQUNUSVZFRCc6IHJldHVybiAnZmEtc29saWQgZmEtdGh1bWJzLXVwIGZhLWZsaXAtaG9yaXpvbnRhbCc7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdESVNBQkxFJzogcmV0dXJuICdmYS1zb2xpZCBmYS10aHVtYnMtZG93biBmYS1mbGlwLWhvcml6b250YWwnO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnRElTQUJMRUQnOiByZXR1cm4gJ2ZhLXNvbGlkIGZhLXRodW1icy1kb3duIGZhLWZsaXAtaG9yaXpvbnRhbCc7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdERUxFVEUnOiByZXR1cm4gJ2ZhLXJlZ3VsYXIgZmEtdHJhc2gtY2FuJztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ0RFTEVURUQnOiByZXR1cm4gJ2ZhLXJlZ3VsYXIgZmEtdHJhc2gtY2FuJztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiBpY29uRGVmYXVsdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGljb247XHJcbiAgICB9XHJcbn0iLCI8YXNpZGUgY2xhc3M9XCJ0b2FzdC1jb250YWluZXIgY29lci1hbGVydFwiPlxyXG4gICAgPCEtLSBTdWNjZXNzIC0tPlxyXG4gICAgPGRpdiBpZD1cImFsZXJ0LXN1Y2Nlc3NcIiByb2xlPVwiYWxlcnRcIiBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiBhcmlhLWF0b21pYz1cInRydWVcIiBjbGFzcz1cInRvYXN0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8aSBpZD1cImFsZXJ0LXN1Y2Nlc3MtaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgPHN0cm9uZyBpZD1cImFsZXJ0LXN1Y2Nlc3MtdGl0bGVcIj48L3N0cm9uZz5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIkNsb3NlKCdhbGVydC1zdWNjZXNzJylcIiBjbGFzcz1cImJ0bi1jbG9zZSBidG4tY2xvc2Utd2hpdGVcIj48L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWJvZHlcIj5cclxuICAgICAgICAgICAgPHByZSBpZD1cImFsZXJ0LXN1Y2Nlc3MtbWVzc2FnZVwiPjwvcHJlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwhLS0gRXJyb3IgLS0+XHJcbiAgICA8ZGl2IGlkPVwiYWxlcnQtZXJyb3JcIiByb2xlPVwiYWxlcnRcIiBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiBhcmlhLWF0b21pYz1cInRydWVcIiBjbGFzcz1cInRvYXN0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8aSBpZD1cImFsZXJ0LWVycm9yLWljb25cIj48L2k+XHJcbiAgICAgICAgICAgIDxzdHJvbmcgaWQ9XCJhbGVydC1lcnJvci10aXRsZVwiPjwvc3Ryb25nPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiQ2xvc2UoJ2FsZXJ0LWVycm9yJylcIiBjbGFzcz1cImJ0bi1jbG9zZSBidG4tY2xvc2Utd2hpdGVcIj48L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWJvZHlcIj5cclxuICAgICAgICAgICAgPHByZSBpZD1cImFsZXJ0LWVycm9yLW1lc3NhZ2VcIj48L3ByZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8IS0tIEluZm8gLS0+XHJcbiAgICA8ZGl2IGlkPVwiYWxlcnQtaW5mb1wiIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIGFyaWEtYXRvbWljPVwidHJ1ZVwiIGNsYXNzPVwidG9hc3RcIj5cclxuICAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPGkgaWQ9XCJhbGVydC1pbmZvLWljb25cIj48L2k+XHJcbiAgICAgICAgICAgIDxzdHJvbmcgaWQ9XCJhbGVydC1pbmZvLXRpdGxlXCI+PC9zdHJvbmc+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJDbG9zZSgnYWxlcnQtaW5mbycpXCIgY2xhc3M9XCJidG4tY2xvc2UgYnRuLWNsb3NlLXdoaXRlXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1ib2R5XCI+XHJcbiAgICAgICAgICAgIDxwcmUgaWQ9XCJhbGVydC1pbmZvLW1lc3NhZ2VcIj48L3ByZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8IS0tIFdhcm5pbmcgLS0+XHJcbiAgICA8ZGl2IGlkPVwiYWxlcnQtd2FybmluZ1wiIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIGFyaWEtYXRvbWljPVwidHJ1ZVwiIGNsYXNzPVwidG9hc3RcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9hc3QtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxpIGlkPVwiYWxlcnQtd2FybmluZy1pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICA8c3Ryb25nIGlkPVwiYWxlcnQtd2FybmluZy10aXRsZVwiPjwvc3Ryb25nPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiQ2xvc2UoJ2FsZXJ0LXdhcm5pbmcnKVwiIGNsYXNzPVwiYnRuLWNsb3NlXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1ib2R5XCI+XHJcbiAgICAgICAgICAgIDxwcmUgaWQ9XCJhbGVydC13YXJuaW5nLW1lc3NhZ2VcIj48L3ByZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2FzaWRlPiJdfQ==
@@ -0,0 +1,34 @@
1
+ export const GridTemplates = {
2
+ /** Template for boolean property */
3
+ isActiveTemplate: (item) => {
4
+ if (item.value) {
5
+ return `
6
+ <span class='text-green-bold'>
7
+ <i class="fa-solid fa-circle-check"></i> Active
8
+ </span>
9
+ `;
10
+ }
11
+ else {
12
+ return `
13
+ <span class='text-gray-bold'>
14
+ <i class="fa-solid fa-circle-minus"></i> Disabled
15
+ </span>
16
+ `;
17
+ }
18
+ },
19
+ /** Template for boolean property */
20
+ coerSwitchTemplate: (item) => ({
21
+ isInput: true,
22
+ tooltip: `${item.value ? 'Active' : 'Disabled'}`
23
+ }),
24
+ /** Template for text property */
25
+ coerTextboxTemplate: (item) => ({
26
+ isInput: true,
27
+ isInvalid: item.value.length <= 0
28
+ }),
29
+ /** Template for text property */
30
+ coerIconTemplate: (icon, color = 'black') => {
31
+ return `<i class='${icon} d-block w-100 text-center' style='color: ${color};'></i>`;
32
+ }
33
+ };
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1ncmlkLnRlbXBsYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvdG9vbHMvbGliL2NvZXItZ3JpZC50ZW1wbGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBRXpCLG9DQUFvQztJQUNwQyxnQkFBZ0IsRUFBRSxDQUFDLElBQW9CLEVBQVUsRUFBRTtRQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLE9BQU87Ozs7YUFJTixDQUFDO1FBQ04sQ0FBQzthQUVJLENBQUM7WUFDRixPQUFPOzs7O2FBSU4sQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBR0Qsb0NBQW9DO0lBQ3BDLGtCQUFrQixFQUFFLENBQUMsSUFBb0IsRUFBbUIsRUFBRSxDQUFDLENBQUM7UUFDNUQsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVcsRUFBRTtLQUNwRCxDQUFDO0lBR0YsaUNBQWlDO0lBQ2pDLG1CQUFtQixFQUFFLENBQUMsSUFBb0IsRUFBb0IsRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxFQUFFLElBQUk7UUFDYixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztLQUNwQyxDQUFDO0lBR0YsaUNBQWlDO0lBQ2pDLGdCQUFnQixFQUFFLENBQUMsSUFBWSxFQUFFLFFBQWdCLE9BQU8sRUFBVSxFQUFFO1FBQ2hFLE9BQU8sYUFBYSxJQUFJLDZDQUE2QyxLQUFLLFNBQVMsQ0FBQztJQUN4RixDQUFDO0NBQ0osQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElHcmlkQ29lclN3aXRjaCwgSUdyaWRDb2VyVGV4dEJveCwgSUdyaWRJdGVtIH0gZnJvbSBcImNvZXItZWxlbWVudHMvaW50ZXJmYWNlc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdyaWRUZW1wbGF0ZXMgPSB7XHJcblxyXG4gICAgLyoqIFRlbXBsYXRlIGZvciBib29sZWFuIHByb3BlcnR5ICovXHJcbiAgICBpc0FjdGl2ZVRlbXBsYXRlOiAoaXRlbTogSUdyaWRJdGVtPGFueT4pOiBzdHJpbmcgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ndGV4dC1ncmVlbi1ib2xkJz5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNpcmNsZS1jaGVja1wiPjwvaT4gQWN0aXZlXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIGA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGBcclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSd0ZXh0LWdyYXktYm9sZCc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaXJjbGUtbWludXNcIj48L2k+IERpc2FibGVkXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIGA7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLyoqIFRlbXBsYXRlIGZvciBib29sZWFuIHByb3BlcnR5ICovXHJcbiAgICBjb2VyU3dpdGNoVGVtcGxhdGU6IChpdGVtOiBJR3JpZEl0ZW08YW55Pik6IElHcmlkQ29lclN3aXRjaCA9PiAoe1xyXG4gICAgICAgIGlzSW5wdXQ6IHRydWUsXHJcbiAgICAgICAgdG9vbHRpcDogYCR7aXRlbS52YWx1ZSA/ICdBY3RpdmUnIDogJ0Rpc2FibGVkJyB9YFxyXG4gICAgfSksXHJcblxyXG5cclxuICAgIC8qKiBUZW1wbGF0ZSBmb3IgdGV4dCBwcm9wZXJ0eSAqL1xyXG4gICAgY29lclRleHRib3hUZW1wbGF0ZTogKGl0ZW06IElHcmlkSXRlbTxhbnk+KTogSUdyaWRDb2VyVGV4dEJveCA9PiAoe1xyXG4gICAgICAgIGlzSW5wdXQ6IHRydWUsXHJcbiAgICAgICAgaXNJbnZhbGlkOiBpdGVtLnZhbHVlLmxlbmd0aCA8PSAwXHJcbiAgICB9KSxcclxuXHJcblxyXG4gICAgLyoqIFRlbXBsYXRlIGZvciB0ZXh0IHByb3BlcnR5ICovXHJcbiAgICBjb2VySWNvblRlbXBsYXRlOiAoaWNvbjogc3RyaW5nLCBjb2xvcjogc3RyaW5nID0gJ2JsYWNrJyk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGA8aSBjbGFzcz0nJHtpY29ufSBkLWJsb2NrIHctMTAwIHRleHQtY2VudGVyJyBzdHlsZT0nY29sb3I6ICR7Y29sb3J9Oyc+PC9pPmA7XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,68 @@
1
+ export class Colors {
2
+ static { this.blue = '#0d6efd'; }
3
+ static { this.gray = '#6c757d'; }
4
+ static { this.green = '#198754'; }
5
+ static { this.yellow = '#ffc107'; }
6
+ static { this.red = '#dc3545'; }
7
+ static { this.white = '#f5f5f5'; }
8
+ static { this.black = '#252525'; }
9
+ static { this.orange = '#fd6031'; }
10
+ static { this.purple = '#a615bc'; }
11
+ /** Returns the color palette in hexadecimal */
12
+ static { this.colorsHex = new Map([
13
+ ['blue', '#0d6efd'],
14
+ ['gray', '#6c757d'],
15
+ ['green', '#198754'],
16
+ ['yellow', '#ffc107'],
17
+ ['red', '#dc3545'],
18
+ ['white', '#f5f5f5'],
19
+ ['black', '#252525'],
20
+ ['orange', '#fd6031'],
21
+ ['purple', '#a615bc'],
22
+ ]); }
23
+ /** Returns the color palette in RGB */
24
+ static { this.ColorsRGB = new Map([
25
+ ['blue', [13, 110, 253]],
26
+ ['gray', [108, 117, 125]],
27
+ ['green', [25, 135, 84]],
28
+ ['yellow', [225, 193, 7]],
29
+ ['red', [220, 53, 69]],
30
+ ['white', [245, 245, 245]],
31
+ ['black', [37, 37, 37]],
32
+ ['orange', [253, 96, 49]],
33
+ ['purple', [166, 21, 188]],
34
+ ]); }
35
+ /** Returns a random color in hexadecimal */
36
+ static { this.GetRandomColorHex = () => "#xxxxxx".replace(/x/g, () => (Math.random() * 16 | 0).toString(16)); }
37
+ /** Returns the number of colors requested */
38
+ static GetColorHexList(quantity) {
39
+ const colors = [];
40
+ let counter = 0;
41
+ while (counter < quantity) {
42
+ for (const color of this.colorsHex.values()) {
43
+ colors.push(color);
44
+ if (++counter === quantity)
45
+ break;
46
+ }
47
+ }
48
+ return colors;
49
+ }
50
+ /** Returns the number of colors requested with opacity */
51
+ static GetColorRGBList(quantity) {
52
+ const colors = [];
53
+ let alpha = 1.0;
54
+ let counter = 0;
55
+ let lastColor = [...Array.from(this.ColorsRGB.keys())].pop();
56
+ while (counter < quantity) {
57
+ for (const [color, value] of this.ColorsRGB.entries()) {
58
+ colors.push(`rgba(${value[0]}, ${value[1]}, ${value[2]}, ${alpha})`);
59
+ if (color === lastColor)
60
+ alpha -= 0.2;
61
+ if (++counter === quantity)
62
+ break;
63
+ }
64
+ }
65
+ return colors;
66
+ }
67
+ }
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy90b29scy9saWIvY29sb3JzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxNQUFNO2FBRVEsU0FBSSxHQUFLLFNBQVMsQ0FBQzthQUNuQixTQUFJLEdBQUssU0FBUyxDQUFDO2FBQ25CLFVBQUssR0FBSSxTQUFTLENBQUM7YUFDbkIsV0FBTSxHQUFHLFNBQVMsQ0FBQzthQUNuQixRQUFHLEdBQU0sU0FBUyxDQUFDO2FBQ25CLFVBQUssR0FBSSxTQUFTLENBQUM7YUFDbkIsVUFBSyxHQUFJLFNBQVMsQ0FBQzthQUNuQixXQUFNLEdBQUcsU0FBUyxDQUFDO2FBQ25CLFdBQU0sR0FBRyxTQUFTLENBQUM7SUFHMUMsK0NBQStDO2FBQ3ZCLGNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBaUI7UUFDeEQsQ0FBQyxNQUFNLEVBQUksU0FBUyxDQUFDO1FBQ3JCLENBQUMsTUFBTSxFQUFJLFNBQVMsQ0FBQztRQUNyQixDQUFDLE9BQU8sRUFBRyxTQUFTLENBQUM7UUFDckIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO1FBQ3JCLENBQUMsS0FBSyxFQUFLLFNBQVMsQ0FBQztRQUNyQixDQUFDLE9BQU8sRUFBRyxTQUFTLENBQUM7UUFDckIsQ0FBQyxPQUFPLEVBQUcsU0FBUyxDQUFDO1FBQ3JCLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQztRQUNyQixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7S0FDeEIsQ0FBQyxDQUFDO0lBR0gsdUNBQXVDO2FBQ2YsY0FBUyxHQUFHLElBQUksR0FBRyxDQUFtQjtRQUMxRCxDQUFDLE1BQU0sRUFBWSxDQUFDLEVBQUUsRUFBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxNQUFNLEVBQVksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLENBQUMsT0FBTyxFQUFXLENBQUMsRUFBRSxFQUFHLEdBQUcsRUFBRSxFQUFFLENBQUUsQ0FBQztRQUNuQyxDQUFDLFFBQVEsRUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFHLENBQUM7UUFDbkMsQ0FBQyxLQUFLLEVBQWEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsQ0FBRSxDQUFDO1FBQ25DLENBQUMsT0FBTyxFQUFXLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDLE9BQU8sRUFBVyxDQUFDLEVBQUUsRUFBRyxFQUFFLEVBQUcsRUFBRSxDQUFFLENBQUM7UUFDbkMsQ0FBQyxRQUFRLEVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFHLEVBQUUsQ0FBRSxDQUFDO1FBQ25DLENBQUMsUUFBUSxFQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRyxHQUFHLENBQUMsQ0FBQztLQUN0QyxDQUFDLENBQUM7SUFHSCw0Q0FBNEM7YUFDOUIsc0JBQWlCLEdBQUcsR0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBR3JILDZDQUE2QztJQUN0QyxNQUFNLENBQUMsZUFBZSxDQUFDLFFBQWdCO1FBQzFDLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUM1QixJQUFJLE9BQU8sR0FBVyxDQUFDLENBQUM7UUFFeEIsT0FBTyxPQUFPLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDeEIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25CLElBQUksRUFBRSxPQUFPLEtBQUssUUFBUTtvQkFBRSxNQUFNO1lBQ3RDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUdELDBEQUEwRDtJQUNuRCxNQUFNLENBQUMsZUFBZSxDQUFDLFFBQWdCO1FBQzFDLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUU1QixJQUFJLEtBQUssR0FBVyxHQUFHLENBQUM7UUFDeEIsSUFBSSxPQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLElBQUksU0FBUyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRTdELE9BQU8sT0FBTyxHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUVyRSxJQUFJLEtBQUssS0FBSyxTQUFTO29CQUFFLEtBQUssSUFBSSxHQUFHLENBQUM7Z0JBQ3RDLElBQUksRUFBRSxPQUFPLEtBQUssUUFBUTtvQkFBRSxNQUFNO1lBQ3RDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb2xvcnMge1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgYmx1ZSAgID0gJyMwZDZlZmQnO1xyXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBncmF5ICAgPSAnIzZjNzU3ZCc7XHJcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGdyZWVuICA9ICcjMTk4NzU0JztcclxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgeWVsbG93ID0gJyNmZmMxMDcnO1xyXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWQgICAgPSAnI2RjMzU0NSc7XHJcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHdoaXRlICA9ICcjZjVmNWY1JztcclxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgYmxhY2sgID0gJyMyNTI1MjUnO1xyXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBvcmFuZ2UgPSAnI2ZkNjAzMSc7XHJcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHB1cnBsZSA9ICcjYTYxNWJjJztcclxuXHJcblxyXG4gICAgLyoqIFJldHVybnMgdGhlIGNvbG9yIHBhbGV0dGUgaW4gaGV4YWRlY2ltYWwgKi9cclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNvbG9yc0hleCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtcclxuICAgICAgICBbJ2JsdWUnICAsICcjMGQ2ZWZkJ10sXHJcbiAgICAgICAgWydncmF5JyAgLCAnIzZjNzU3ZCddLFxyXG4gICAgICAgIFsnZ3JlZW4nICwgJyMxOTg3NTQnXSxcclxuICAgICAgICBbJ3llbGxvdycsICcjZmZjMTA3J10sXHJcbiAgICAgICAgWydyZWQnICAgLCAnI2RjMzU0NSddLFxyXG4gICAgICAgIFsnd2hpdGUnICwgJyNmNWY1ZjUnXSxcclxuICAgICAgICBbJ2JsYWNrJyAsICcjMjUyNTI1J10sXHJcbiAgICAgICAgWydvcmFuZ2UnLCAnI2ZkNjAzMSddLFxyXG4gICAgICAgIFsncHVycGxlJywgJyNhNjE1YmMnXSxcclxuICAgIF0pO1xyXG5cclxuXHJcbiAgICAvKiogUmV0dXJucyB0aGUgY29sb3IgcGFsZXR0ZSBpbiBSR0IgKi9cclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENvbG9yc1JHQiA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXJbXT4oW1xyXG4gICAgICAgIFsnYmx1ZScsICAgICAgICAgICBbMTMsICAxMTAsIDI1M11dLFxyXG4gICAgICAgIFsnZ3JheScsICAgICAgICAgICBbMTA4LCAxMTcsIDEyNV1dLFxyXG4gICAgICAgIFsnZ3JlZW4nLCAgICAgICAgICBbMjUsICAxMzUsIDg0IF1dLFxyXG4gICAgICAgIFsneWVsbG93JywgICAgICAgICBbMjI1LCAxOTMsIDcgIF1dLFxyXG4gICAgICAgIFsncmVkJywgICAgICAgICAgICBbMjIwLCA1MyAsIDY5IF1dLFxyXG4gICAgICAgIFsnd2hpdGUnLCAgICAgICAgICBbMjQ1LCAyNDUsIDI0NV1dLFxyXG4gICAgICAgIFsnYmxhY2snLCAgICAgICAgICBbMzcgLCAzNyAsIDM3IF1dLFxyXG4gICAgICAgIFsnb3JhbmdlJywgICAgICAgICBbMjUzLCA5NiAsIDQ5IF1dLFxyXG4gICAgICAgIFsncHVycGxlJywgICAgICAgICBbMTY2LCAyMSwgIDE4OF1dLFxyXG4gICAgXSk7XHJcblxyXG5cclxuICAgIC8qKiBSZXR1cm5zIGEgcmFuZG9tIGNvbG9yIGluIGhleGFkZWNpbWFsICovXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldFJhbmRvbUNvbG9ySGV4ID0gKCk6IHN0cmluZyA9PiBcIiN4eHh4eHhcIi5yZXBsYWNlKC94L2csICgpID0+IChNYXRoLnJhbmRvbSgpICogMTYgfCAwKS50b1N0cmluZygxNikpO1xyXG5cclxuXHJcbiAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNvbG9ycyByZXF1ZXN0ZWQgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Q29sb3JIZXhMaXN0KHF1YW50aXR5OiBudW1iZXIpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgY29uc3QgY29sb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIGxldCBjb3VudGVyOiBudW1iZXIgPSAwO1xyXG5cclxuICAgICAgICB3aGlsZSAoY291bnRlciA8IHF1YW50aXR5KSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgY29sb3Igb2YgdGhpcy5jb2xvcnNIZXgudmFsdWVzKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbG9ycy5wdXNoKGNvbG9yKTtcclxuICAgICAgICAgICAgICAgIGlmICgrK2NvdW50ZXIgPT09IHF1YW50aXR5KSBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNvbG9ycztcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBjb2xvcnMgcmVxdWVzdGVkIHdpdGggb3BhY2l0eSAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBHZXRDb2xvclJHQkxpc3QocXVhbnRpdHk6IG51bWJlcik6IHN0cmluZ1tdIHtcclxuICAgICAgICBjb25zdCBjb2xvcnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgICAgIGxldCBhbHBoYTogbnVtYmVyID0gMS4wO1xyXG4gICAgICAgIGxldCBjb3VudGVyOiBudW1iZXIgPSAwO1xyXG4gICAgICAgIGxldCBsYXN0Q29sb3IgPSBbLi4uQXJyYXkuZnJvbSh0aGlzLkNvbG9yc1JHQi5rZXlzKCkpXS5wb3AoKTtcclxuXHJcbiAgICAgICAgd2hpbGUgKGNvdW50ZXIgPCBxdWFudGl0eSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtjb2xvciwgdmFsdWVdIG9mIHRoaXMuQ29sb3JzUkdCLmVudHJpZXMoKSkge1xyXG4gICAgICAgICAgICAgICAgY29sb3JzLnB1c2goYHJnYmEoJHt2YWx1ZVswXX0sICR7dmFsdWVbMV19LCAke3ZhbHVlWzJdfSwgJHthbHBoYX0pYCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNvbG9yID09PSBsYXN0Q29sb3IpIGFscGhhIC09IDAuMjtcclxuICAgICAgICAgICAgICAgIGlmICgrK2NvdW50ZXIgPT09IHF1YW50aXR5KSBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNvbG9ycztcclxuICAgIH1cclxufSJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { ActivatedRoute, Router } from '@angular/router';
2
2
  import { Component, Inject, inject } from '@angular/core';
3
+ import { GridTemplates } from './coer-grid.templates';
3
4
  import { CoerAlert } from './coer-alert/coer-alert.component';
4
5
  import { Breadcrumbs } from './breadcrumbs.class';
5
6
  import { Source } from './source.class';
@@ -36,6 +37,11 @@ export class Page {
36
37
  else
37
38
  Breadcrumbs.RemoveLast();
38
39
  });
40
+ //Grid Templates
41
+ this.isActiveTemplate = GridTemplates.isActiveTemplate;
42
+ this.coerSwitchTemplate = GridTemplates.coerSwitchTemplate;
43
+ this.coerTextboxTemplate = GridTemplates.coerTextboxTemplate;
44
+ this.coerIconTemplate = GridTemplates.coerIconTemplate;
39
45
  this.SetPageName(page);
40
46
  this.SetSource();
41
47
  this.GetSource();
@@ -153,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
153
159
  type: Inject,
154
160
  args: [String]
155
161
  }] }] });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvdG9vbHMvbGliL3BhZ2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBR2hDLE1BQU0sT0FBTyxJQUFJO0lBd0NiLFlBQTRCLElBQVk7UUF0Q3hDLFdBQVc7UUFDUSxVQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFCLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUIsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFekQsTUFBTTtRQUNJLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFcEMsTUFBTTtRQUNJLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFFckMsTUFBTTtRQUNJLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRXZDLE1BQU07UUFDSSxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFRNUMsTUFBTTtRQUNJLGdCQUFXLEdBQWtCLEVBQUUsQ0FBQztRQUUxQyxNQUFNO1FBQ0ksaUJBQVksR0FBUSxJQUFJLENBQUM7UUFFbkMsTUFBTTtRQUNJLFdBQU0sR0FBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUU1QyxtQkFBbUI7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TSxFQUFFOzs0RkFDWixJQUFJO2tCQURoQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs7MEJBeUNWLE1BQU07MkJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEluamVjdCwgaW5qZWN0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUFwcFNvdXJjZSwgSUJyZWFkY3J1bWIsIElHb0JhY2sgfSBmcm9tICdjb2VyLWVsZW1lbnRzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBDb2VyQWxlcnQgfSBmcm9tICcuL2NvZXItYWxlcnQvY29lci1hbGVydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1icyB9IGZyb20gJy4vYnJlYWRjcnVtYnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBTb3VyY2UgfSBmcm9tICcuL3NvdXJjZS5jbGFzcyc7XHJcbmltcG9ydCB7IFRvb2xzIH0gZnJvbSAnLi90b29scyc7XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICAvL0luamVjdGlvblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFsZXJ0ID0gaW5qZWN0KENvZXJBbGVydCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBpc1VwZGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIGlzUmVhZHlQYWdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgZW5hYmxlQW5pbWF0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIHJvdXRlUGFyYW1zOiBhbnk7XHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgcXVlcnlQYXJhbXM6IGFueTtcclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBicmVhZGNydW1iczogSUJyZWFkY3J1bWJbXSA9IFtdO1xyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIHBhZ2VSZXNwb25zZTogYW55ID0gbnVsbDtcclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBnb0JhY2s6IElHb0JhY2sgPSB7IHNob3c6IGZhbHNlIH07XHJcblxyXG4gICAgLy9Qcml2YXRlIFZhcmlhYmxlc1xyXG4gICAgcHJpdmF0ZSBfcGFnZTogc3RyaW5nID0gJyc7XHJcbiAgICBwcml2YXRlIF9zb3VyY2U6IElBcHBTb3VyY2UgfCBudWxsID0gbnVsbDtcclxuICAgIHByaXZhdGUgX3ByZXZlbnREZXN0cm95OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoU3RyaW5nKSBwYWdlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLlNldFBhZ2VOYW1lKHBhZ2UpO1xyXG4gICAgICAgIHRoaXMuU2V0U291cmNlKCk7XHJcbiAgICAgICAgdGhpcy5HZXRTb3VyY2UoKTtcclxuICAgICAgICB0aGlzLkdldE5hdmlnYXRpb24oKTtcclxuICAgICAgICB0aGlzLlNldEdvQmFjaygpO1xyXG4gICAgICAgIHRoaXMuR2V0UGFnZVJlc3BvbnNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMucm91dGVQYXJhbXMgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtcztcclxuICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNSZWFkeVBhZ2UgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLlJ1blBhZ2UoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRoaXMuZW5hYmxlQW5pbWF0aW9ucyA9IHRydWUgfSwgMTAwMCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fcHJldmVudERlc3Ryb3kpIFNvdXJjZS5DbGVhclBhZ2VSZXNwb25zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBNYWluIG1ldGhvZC4gU3RhcnRzIGFmdGVyIG5nQWZ0ZXJWaWV3SW5pdCgpICovXHJcbiAgICBwcm90ZWN0ZWQgUnVuUGFnZSgpOiB2b2lkIHt9O1xyXG5cclxuXHJcbiAgICAvKiogUmVuYW1lIHRoZSBsYXN0IGJyZWFkY3J1bWIgYW5kIHVwZGF0ZSB0aGUgdXJsIGlkICovXHJcbiAgICBwcm90ZWN0ZWQgU2V0UGFnZU5hbWUobmFtZTogc3RyaW5nLCBpZDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9wYWdlID0gbmFtZTtcclxuXHJcbiAgICAgICAgbGV0IHBhdGggPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICAgICAgaWYgKHBhdGguaW5jbHVkZXMoJz8nKSkgcGF0aCA9IHBhdGguc3BsaXQoJz8nKVswXTtcclxuXHJcbiAgICAgICAgaWYgKGlkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IFBBVEhfQVJSQVkgPSBwYXRoLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IFBBVEhfSUQgPSBUb29scy5CcmVha1JlZmVyZW5jZShQQVRIX0FSUkFZKS5wb3AoKTtcclxuICAgICAgICAgICAgaWYgKFBBVEhfSUQpIHtcclxuICAgICAgICAgICAgICAgIFBBVEhfQVJSQVlbUEFUSF9BUlJBWS5sZW5ndGggLSAxXSA9IFN0cmluZyhpZCk7XHJcbiAgICAgICAgICAgICAgICBwYXRoID0gUEFUSF9BUlJBWS5qb2luKCcvJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmJyZWFkY3J1bWJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5icmVhZGNydW1ic1t0aGlzLmJyZWFkY3J1bWJzLmxlbmd0aCAtIDFdLnBhZ2UgPSBuYW1lO1xyXG4gICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWJzW3RoaXMuYnJlYWRjcnVtYnMubGVuZ3RoIC0gMV0ucGF0aCA9IHBhdGg7XHJcbiAgICAgICAgICAgIEJyZWFkY3J1bWJzLlNldExhc3QobmFtZSwgcGF0aCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHBhdGgpXHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBTZXRTb3VyY2UoKTogdm9pZCB7XHJcbiAgICAgICAgU291cmNlLlNldCh0aGlzLl9wYWdlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIEdldFNvdXJjZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSBTb3VyY2UuR2V0KCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIEdldFBhZ2VSZXNwb25zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBhZ2VSZXNwb25zZSA9IFNvdXJjZS5HZXRQYWdlUmVzcG9uc2UoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIEdldE5hdmlnYXRpb24oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWJzID0gQnJlYWRjcnVtYnMuR2V0KCkubWFwKGl0ZW0gPT4gT2JqZWN0LmFzc2lnbih7XHJcbiAgICAgICAgICAgICAgICBwYWdlOiBpdGVtLnBhZ2UsXHJcbiAgICAgICAgICAgICAgICBwYXRoOiBpdGVtLnBhdGgsXHJcbiAgICAgICAgICAgICAgICBjbGljazogdGhpcy5Hb0JhY2soaXRlbS5wYXRoKVxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIHRoaXMuYnJlYWRjcnVtYnMgPSBbeyBwYWdlOiB0aGlzLl9wYWdlIH1dO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByaXZhdGUgU2V0R29CYWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9zb3VyY2UpIHtcclxuICAgICAgICAgICAgdGhpcy5nb0JhY2sgPSB7XHJcbiAgICAgICAgICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgcGF0aDogdGhpcy5fc291cmNlLnBhdGgsXHJcbiAgICAgICAgICAgICAgICBjbGljazogdGhpcy5Hb0JhY2soKVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIEdvQmFjayA9IChwYXRoPzogc3RyaW5nKSA9PiAoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwYXRoKSBCcmVhZGNydW1icy5SZW1vdmUocGF0aCk7XHJcbiAgICAgICAgZWxzZSBCcmVhZGNydW1icy5SZW1vdmVMYXN0KCk7XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgLyoqIE5hdmlnYXRlIHRvIHByZXZpb3VzIHBhZ2UgKi9cclxuICAgIHByb3RlY3RlZCBHb1RvU291cmNlPFQ+KHBhZ2VSZXNwb25zZTogVCB8IG51bGwgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYodGhpcy5fc291cmNlKSB7XHJcbiAgICAgICAgICAgIEJyZWFkY3J1bWJzLlJlbW92ZUxhc3QoKTtcclxuICAgICAgICAgICAgdGhpcy5TZXRQYWdlUmVzcG9uc2UocGFnZVJlc3BvbnNlKTtcclxuICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKF8gPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLl9zb3VyY2UhLnBhdGgpKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBTZXRQYWdlUmVzcG9uc2U8VD4ocGFnZVJlc3BvbnNlOiBUIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICBpZiAoVG9vbHMuSXNOb3ROdWxsKHBhZ2VSZXNwb25zZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5fcHJldmVudERlc3Ryb3kgPSB0cnVlO1xyXG4gICAgICAgICAgICBTb3VyY2UuU2V0UGFnZVJlc3BvbnNlKHBhZ2VSZXNwb25zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgUmVsb2FkUGFnZSgpOiB2b2lkIHtcclxuICAgICAgICBCcmVhZGNydW1icy5SZW1vdmVMYXN0KCk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBMb2codmFsdWU6IGFueSwgbG9nOiBzdHJpbmcgfCBudWxsID0gbnVsbCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChUb29scy5Jc05vdE51bGwobG9nKSkgY29uc29sZS5sb2coeyBsb2csIHZhbHVlIH0pO1xyXG4gICAgICAgIGVsc2UgY29uc29sZS5sb2codmFsdWUpO1xyXG4gICAgfVxyXG59Il19
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvdG9vbHMvbGliL3BhZ2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUdoQyxNQUFNLE9BQU8sSUFBSTtJQXdDYixZQUE0QixJQUFZO1FBdEN4QyxXQUFXO1FBQ1EsVUFBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXpELE1BQU07UUFDSSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRXBDLE1BQU07UUFDSSxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRXJDLE1BQU07UUFDSSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUV2QyxNQUFNO1FBQ0kscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBUTVDLE1BQU07UUFDSSxnQkFBVyxHQUFrQixFQUFFLENBQUM7UUFFMUMsTUFBTTtRQUNJLGlCQUFZLEdBQVEsSUFBSSxDQUFDO1FBRW5DLE1BQU07UUFDSSxXQUFNLEdBQVks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S0FBVSxFQUFFLE1BQXFCLElBQUk7UUFDL0MsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzs7WUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOytHQWhMUSxJQUFJLGtCQXdDTyxNQUFNO21HQXhDakIsSUFBSSxvREFETSxFQUFFOzs0RkFDWixJQUFJO2tCQURoQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs7MEJBeUNWLE1BQU07MkJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEluamVjdCwgaW5qZWN0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUFwcFNvdXJjZSwgSUJyZWFkY3J1bWIsIElHb0JhY2sgfSBmcm9tICdjb2VyLWVsZW1lbnRzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBHcmlkVGVtcGxhdGVzIH0gZnJvbSAnLi9jb2VyLWdyaWQudGVtcGxhdGVzJztcclxuaW1wb3J0IHsgQ29lckFsZXJ0IH0gZnJvbSAnLi9jb2VyLWFsZXJ0L2NvZXItYWxlcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYnMgfSBmcm9tICcuL2JyZWFkY3J1bWJzLmNsYXNzJztcclxuaW1wb3J0IHsgU291cmNlIH0gZnJvbSAnLi9zb3VyY2UuY2xhc3MnO1xyXG5pbXBvcnQgeyBUb29scyB9IGZyb20gJy4vdG9vbHMnO1xyXG5cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgUGFnZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgLy9JbmplY3Rpb25cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBhbGVydCA9IGluamVjdChDb2VyQWxlcnQpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgaXNVcGRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBpc1JlYWR5UGFnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIGVuYWJsZUFuaW1hdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCByb3V0ZVBhcmFtczogYW55O1xyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIHF1ZXJ5UGFyYW1zOiBhbnk7XHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgYnJlYWRjcnVtYnM6IElCcmVhZGNydW1iW10gPSBbXTtcclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBwYWdlUmVzcG9uc2U6IGFueSA9IG51bGw7XHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgZ29CYWNrOiBJR29CYWNrID0geyBzaG93OiBmYWxzZSB9O1xyXG5cclxuICAgIC8vUHJpdmF0ZSBWYXJpYWJsZXNcclxuICAgIHByaXZhdGUgX3BhZ2U6IHN0cmluZyA9ICcnO1xyXG4gICAgcHJpdmF0ZSBfc291cmNlOiBJQXBwU291cmNlIHwgbnVsbCA9IG51bGw7XHJcbiAgICBwcml2YXRlIF9wcmV2ZW50RGVzdHJveTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFN0cmluZykgcGFnZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5TZXRQYWdlTmFtZShwYWdlKTtcclxuICAgICAgICB0aGlzLlNldFNvdXJjZSgpO1xyXG4gICAgICAgIHRoaXMuR2V0U291cmNlKCk7XHJcbiAgICAgICAgdGhpcy5HZXROYXZpZ2F0aW9uKCk7XHJcbiAgICAgICAgdGhpcy5TZXRHb0JhY2soKTtcclxuICAgICAgICB0aGlzLkdldFBhZ2VSZXNwb25zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLnJvdXRlUGFyYW1zID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXM7XHJcbiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcyA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXM7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzUmVhZHlQYWdlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5SdW5QYWdlKCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLmVuYWJsZUFuaW1hdGlvbnMgPSB0cnVlIH0sIDEwMDApO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX3ByZXZlbnREZXN0cm95KSBTb3VyY2UuQ2xlYXJQYWdlUmVzcG9uc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogTWFpbiBtZXRob2QuIFN0YXJ0cyBhZnRlciBuZ0FmdGVyVmlld0luaXQoKSAqL1xyXG4gICAgcHJvdGVjdGVkIFJ1blBhZ2UoKTogdm9pZCB7fTtcclxuXHJcblxyXG4gICAgLyoqIFJlbmFtZSB0aGUgbGFzdCBicmVhZGNydW1iIGFuZCB1cGRhdGUgdGhlIHVybCBpZCAqL1xyXG4gICAgcHJvdGVjdGVkIFNldFBhZ2VOYW1lKG5hbWU6IHN0cmluZywgaWQ6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcGFnZSA9IG5hbWU7XHJcblxyXG4gICAgICAgIGxldCBwYXRoID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKCc/JykpIHBhdGggPSBwYXRoLnNwbGl0KCc/JylbMF07XHJcblxyXG4gICAgICAgIGlmIChpZCkge1xyXG4gICAgICAgICAgICBjb25zdCBQQVRIX0FSUkFZID0gcGF0aC5zcGxpdCgnLycpO1xyXG4gICAgICAgICAgICBjb25zdCBQQVRIX0lEID0gVG9vbHMuQnJlYWtSZWZlcmVuY2UoUEFUSF9BUlJBWSkucG9wKCk7XHJcbiAgICAgICAgICAgIGlmIChQQVRIX0lEKSB7XHJcbiAgICAgICAgICAgICAgICBQQVRIX0FSUkFZW1BBVEhfQVJSQVkubGVuZ3RoIC0gMV0gPSBTdHJpbmcoaWQpO1xyXG4gICAgICAgICAgICAgICAgcGF0aCA9IFBBVEhfQVJSQVkuam9pbignLycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5icmVhZGNydW1icy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnJlYWRjcnVtYnNbdGhpcy5icmVhZGNydW1icy5sZW5ndGggLSAxXS5wYWdlID0gbmFtZTtcclxuICAgICAgICAgICAgdGhpcy5icmVhZGNydW1ic1t0aGlzLmJyZWFkY3J1bWJzLmxlbmd0aCAtIDFdLnBhdGggPSBwYXRoO1xyXG4gICAgICAgICAgICBCcmVhZGNydW1icy5TZXRMYXN0KG5hbWUsIHBhdGgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChwYXRoKVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByaXZhdGUgU2V0U291cmNlKCk6IHZvaWQge1xyXG4gICAgICAgIFNvdXJjZS5TZXQodGhpcy5fcGFnZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBHZXRTb3VyY2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc291cmNlID0gU291cmNlLkdldCgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBHZXRQYWdlUmVzcG9uc2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5wYWdlUmVzcG9uc2UgPSBTb3VyY2UuR2V0UGFnZVJlc3BvbnNlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBHZXROYXZpZ2F0aW9uKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9zb3VyY2UpIHtcclxuICAgICAgICAgICAgdGhpcy5icmVhZGNydW1icyA9IEJyZWFkY3J1bWJzLkdldCgpLm1hcChpdGVtID0+IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgICAgICAgICAgcGFnZTogaXRlbS5wYWdlLFxyXG4gICAgICAgICAgICAgICAgcGF0aDogaXRlbS5wYXRoLFxyXG4gICAgICAgICAgICAgICAgY2xpY2s6IHRoaXMuR29CYWNrKGl0ZW0ucGF0aClcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSB0aGlzLmJyZWFkY3J1bWJzID0gW3sgcGFnZTogdGhpcy5fcGFnZSB9XTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIFNldEdvQmFjaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fc291cmNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ29CYWNrID0ge1xyXG4gICAgICAgICAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHBhdGg6IHRoaXMuX3NvdXJjZS5wYXRoLFxyXG4gICAgICAgICAgICAgICAgY2xpY2s6IHRoaXMuR29CYWNrKClcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBHb0JhY2sgPSAocGF0aD86IHN0cmluZykgPT4gKCgpID0+IHtcclxuICAgICAgICBpZiAocGF0aCkgQnJlYWRjcnVtYnMuUmVtb3ZlKHBhdGgpO1xyXG4gICAgICAgIGVsc2UgQnJlYWRjcnVtYnMuUmVtb3ZlTGFzdCgpO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIC8qKiBOYXZpZ2F0ZSB0byBwcmV2aW91cyBwYWdlICovXHJcbiAgICBwcm90ZWN0ZWQgR29Ub1NvdXJjZTxUPihwYWdlUmVzcG9uc2U6IFQgfCBudWxsID0gbnVsbCk6IHZvaWQge1xyXG4gICAgICAgIGlmKHRoaXMuX3NvdXJjZSkge1xyXG4gICAgICAgICAgICBCcmVhZGNydW1icy5SZW1vdmVMYXN0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuU2V0UGFnZVJlc3BvbnNlKHBhZ2VSZXNwb25zZSk7XHJcbiAgICAgICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbihfID0+IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5fc291cmNlIS5wYXRoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgU2V0UGFnZVJlc3BvbnNlPFQ+KHBhZ2VSZXNwb25zZTogVCB8IG51bGwgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKFRvb2xzLklzTm90TnVsbChwYWdlUmVzcG9uc2UpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ByZXZlbnREZXN0cm95ID0gdHJ1ZTtcclxuICAgICAgICAgICAgU291cmNlLlNldFBhZ2VSZXNwb25zZShwYWdlUmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIFJlbG9hZFBhZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgQnJlYWRjcnVtYnMuUmVtb3ZlTGFzdCgpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgTG9nKHZhbHVlOiBhbnksIGxvZzogc3RyaW5nIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICBpZiAoVG9vbHMuSXNOb3ROdWxsKGxvZykpIGNvbnNvbGUubG9nKHsgbG9nLCB2YWx1ZSB9KTtcclxuICAgICAgICBlbHNlIGNvbnNvbGUubG9nKHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy9HcmlkIFRlbXBsYXRlc1xyXG4gICAgcHJvdGVjdGVkIGlzQWN0aXZlVGVtcGxhdGUgPSBHcmlkVGVtcGxhdGVzLmlzQWN0aXZlVGVtcGxhdGU7XHJcbiAgICBwcm90ZWN0ZWQgY29lclN3aXRjaFRlbXBsYXRlID0gR3JpZFRlbXBsYXRlcy5jb2VyU3dpdGNoVGVtcGxhdGU7XHJcbiAgICBwcm90ZWN0ZWQgY29lclRleHRib3hUZW1wbGF0ZSA9IEdyaWRUZW1wbGF0ZXMuY29lclRleHRib3hUZW1wbGF0ZTtcclxuICAgIHByb3RlY3RlZCBjb2VySWNvblRlbXBsYXRlID0gR3JpZFRlbXBsYXRlcy5jb2VySWNvblRlbXBsYXRlO1xyXG59Il19
@@ -200,7 +200,7 @@ export class Service {
200
200
  AlertError(httpError, message) {
201
201
  if (httpError.status >= 500) {
202
202
  if (Tools.IsNotOnlyWhiteSpace(message)) {
203
- this.alert.Error('', message, 'fa-solid fa-bug', null);
203
+ this.alert.Error(message, `BUG ${httpError.status}`, 'fa-solid fa-bug', null);
204
204
  }
205
205
  }
206
206
  else if (httpError.status < 500) {
@@ -245,4 +245,4 @@ export class Service {
245
245
  }
246
246
  }
247
247
  }
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvdG9vbHMvbGliL3NlcnZpY2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFnQyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFOUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUdoQyxNQUFNLE9BQU8sT0FBTztJQUFwQjtRQUVJLFlBQVk7UUFDTyxVQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFCLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkMsYUFBUSxHQUFHO1lBQ2pCLEVBQUUsRUFBRSxHQUFHO1lBQ1AsT0FBTyxFQUFFLEdBQUc7WUFDWixTQUFTLEVBQUUsR0FBRztZQUNkLFVBQVUsRUFBRSxHQUFHO1lBQ2YsV0FBVyxFQUFFLEdBQUc7WUFDaEIsUUFBUSxFQUFFLEdBQUc7WUFDYixVQUFVLEVBQUUsR0FBRztZQUNmLGFBQWEsRUFBRSxHQUFHO1lBQ2xCLFFBQVEsRUFBRSxHQUFHO1lBQ2IsZUFBZSxFQUFFLEdBQUc7WUFDcEIsVUFBVSxFQUFFLEdBQUc7U0FDbEIsQ0FBQTtJQXFSTCxDQUFDO0lBMVFHLE1BQU07SUFDRSxtQkFBbUIsQ0FBQyxZQUEwQjtRQUNsRCxJQUFJLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFHRCxlQUFlO0lBQ0wsUUFBUSxDQUFJLE9BQXdCO1FBQzFDLE9BQU8sSUFBSSxPQUFPLENBQW1CLE9BQU8sQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFckMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBSSxJQUFJLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDeEksSUFBSSxFQUFFLENBQUMsUUFBNEIsRUFBRSxFQUFFO29CQUNuQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQ3BCLE9BQU8sQ0FBQzs0QkFDSixJQUFJLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBSSxRQUFRLENBQUMsSUFBSSxDQUFDOzRCQUM1QyxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07NEJBQ3ZCLE9BQU8sRUFBRSxRQUFRLENBQUMsVUFBVTs0QkFDNUIsRUFBRSxFQUFFLElBQUk7eUJBQ1gsQ0FBQyxDQUFDO29CQUNQLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxLQUFLLEVBQUUsQ0FBQyxTQUE0QixFQUFFLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFFL0MsT0FBTyxDQUFDO3dCQUNKLElBQUksRUFBRSxFQUFTO3dCQUNmLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTt3QkFDeEIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxLQUFLO3dCQUNwRCxFQUFFLEVBQUUsS0FBSztxQkFDWixDQUFDLENBQUM7Z0JBQ1AsQ0FBQztnQkFFRCxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUNYLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBRXJDLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO3dCQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzdDLENBQUM7Z0JBQ0wsQ0FBQzthQUNKLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdELGdCQUFnQjtJQUNOLFNBQVMsQ0FBSSxPQUF3QjtRQUMzQyxPQUFPLElBQUksT0FBTyxDQUFtQixPQUFPLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXRDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUksSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDeEosSUFBSSxFQUFFLENBQUMsUUFBNEIsRUFBRSxFQUFFO29CQUNuQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQ3BCLE9BQU8sQ0FBQzs0QkFDSixJQUFJLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBSSxRQUFRLENBQUMsSUFBSSxDQUFDOzRCQUM1QyxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07NEJBQ3ZCLE9BQU8sRUFBRSxRQUFRLENBQUMsVUFBVTs0QkFDNUIsRUFBRSxFQUFFLElBQUk7eUJBQ1gsQ0FBQyxDQUFDO29CQUNQLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxLQUFLLEVBQUUsQ0FBQyxTQUE0QixFQUFFLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFFL0MsT0FBTyxDQUFDO3dCQUNKLElBQUksRUFBRSxFQUFTO3dCQUNmLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTt3QkFDeEIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxLQUFLO3dCQUNwRCxFQUFFLEVBQUUsS0FBSztxQkFDWixDQUFDLENBQUM7Z0JBQ1AsQ0FBQztnQkFFRCxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUNYLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBRXRDLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO3dCQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzdDLENBQUM7Z0JBQ0wsQ0FBQzthQUNKLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdELGVBQWU7SUFDTCxRQUFRLENBQUksT0FBd0I7UUFDMUMsT0FBTyxJQUFJLE9BQU8sQ0FBc0IsT0FBTyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFJLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3RKLElBQUksRUFBRSxDQUFDLFFBQTRCLEVBQUUsRUFBRTtvQkFDbkMsSUFBSSxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUNwQixPQUFPLENBQUM7NEJBQ0osSUFBSSxFQUFFLEVBQVM7NEJBQ2YsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNOzRCQUN2QixPQUFPLEVBQUUsUUFBUSxDQUFDLFVBQVU7NEJBQzVCLEVBQUUsRUFBRSxJQUFJO3lCQUNYLENBQUMsQ0FBQztvQkFDUCxDQUFDO2dCQUNMLENBQUM7Z0JBRUQsS0FBSyxFQUFFLENBQUMsU0FBNEIsRUFBRSxFQUFFO29CQUNwQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBRS9DLE9BQU8sQ0FBQzt3QkFDSixJQUFJLEVBQUUsRUFBUzt3QkFDZixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07d0JBQ3hCLE9BQU8sRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSzt3QkFDcEQsRUFBRSxFQUFFLEtBQUs7cUJBQ1osQ0FBQyxDQUFDO2dCQUNQLENBQUM7Z0JBRUQsUUFBUSxFQUFFLEdBQUcsRUFBRTtvQkFDWCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUVyQyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQzt3QkFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsbUNBQW1DLENBQUMsQ0FBQztvQkFDN0YsQ0FBQztnQkFDTCxDQUFDO2FBQ0osQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBR0QsaUJBQWlCO0lBQ1AsVUFBVSxDQUFJLE9BQXdCO1FBQzVDLE9BQU8sSUFBSSxPQUFPLENBQXNCLE9BQU8sQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBSSxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUMxSixJQUFJLEVBQUUsQ0FBQyxRQUE0QixFQUFFLEVBQUU7b0JBQ25DLElBQUksUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDcEIsT0FBTyxDQUFDOzRCQUNKLElBQUksRUFBRSxFQUFTOzRCQUNmLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTs0QkFDdkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxVQUFVOzRCQUM1QixFQUFFLEVBQUUsSUFBSTt5QkFDWCxDQUFDLENBQUM7b0JBQ1AsQ0FBQztnQkFDTCxDQUFDO2dCQUVELEtBQUssRUFBRSxDQUFDLFNBQTRCLEVBQUUsRUFBRTtvQkFDcEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUUvQyxPQUFPLENBQUM7d0JBQ0osSUFBSSxFQUFFLEVBQVM7d0JBQ2YsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNO3dCQUN4QixPQUFPLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksU0FBUyxDQUFDLEtBQUs7d0JBQ3BELEVBQUUsRUFBRSxLQUFLO3FCQUNaLENBQUMsQ0FBQztnQkFDUCxDQUFDO2dCQUVELFFBQVEsRUFBRSxHQUFHLEVBQUU7b0JBQ1gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFFdkMsSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7d0JBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLG1DQUFtQyxDQUFDLENBQUM7b0JBQzdGLENBQUM7Z0JBQ0wsQ0FBQzthQUNKLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdELGtCQUFrQjtJQUNSLFdBQVcsQ0FBSSxPQUF3QjtRQUM3QyxPQUFPLElBQUksT0FBTyxDQUFzQixPQUFPLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXhDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUksSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQzlJLElBQUksRUFBRSxDQUFDLFFBQTRCLEVBQUUsRUFBRTtvQkFDbkMsSUFBSSxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUNwQixPQUFPLENBQUM7NEJBQ0osSUFBSSxFQUFFLEVBQVM7NEJBQ2YsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNOzRCQUN2QixPQUFPLEVBQUUsUUFBUSxDQUFDLFVBQVU7NEJBQzVCLEVBQUUsRUFBRSxJQUFJO3lCQUNYLENBQUMsQ0FBQztvQkFDUCxDQUFDO2dCQUNMLENBQUM7Z0JBRUQsS0FBSyxFQUFFLENBQUMsU0FBNEIsRUFBRSxFQUFFO29CQUNwQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBRS9DLE9BQU8sQ0FBQzt3QkFDSixJQUFJLEVBQUUsRUFBUzt3QkFDZixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07d0JBQ3hCLE9BQU8sRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSzt3QkFDcEQsRUFBRSxFQUFFLEtBQUs7cUJBQ1osQ0FBQyxDQUFDO2dCQUNQLENBQUM7Z0JBRUQsUUFBUSxFQUFFLEdBQUcsRUFBRTtvQkFDWCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN4QyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQzt3QkFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUseUJBQXlCLENBQUMsQ0FBQztvQkFDbkYsQ0FBQztnQkFDTCxDQUFDO2FBQ0osQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBR0QsTUFBTTtJQUNFLFVBQVUsQ0FBQyxTQUE0QixFQUFFLE9BQWdCO1FBQzdELElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUMxQixJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzNELENBQUM7UUFDTCxDQUFDO2FBRUksSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQzlCLFFBQU8sU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN0QixLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsMENBQTBDLENBQUMsQ0FBQztvQkFDM0gsTUFBTTtnQkFDVixDQUFDO2dCQUVELEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSx1Q0FBdUMsQ0FBQyxDQUFDO29CQUN4SCxNQUFNO2dCQUNWLENBQUM7Z0JBRUQsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLDhCQUE4QixDQUFDLENBQUM7b0JBQzdHLE1BQU07Z0JBQ1YsQ0FBQztnQkFFRCxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztvQkFDbkgsTUFBTTtnQkFDVixDQUFDO2dCQUVELEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFLHFDQUFxQyxDQUFDLENBQUM7b0JBQ3pILE1BQU07Z0JBQ1YsQ0FBQztnQkFFRCxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztvQkFDOUcsTUFBTTtnQkFDVixDQUFDO2dCQUVELEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO29CQUNqSCxNQUFNO2dCQUNWLENBQUM7Z0JBRUQsT0FBTyxDQUFDLENBQUMsQ0FBQztvQkFDTixJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLGNBQWMsRUFBRSxxQ0FBcUMsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDMUcsQ0FBQzs7d0JBRUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNyRSxNQUFNO2dCQUNWLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwRXZlbnQsIEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IENvZXJBbGVydCB9IGZyb20gXCIuL2NvZXItYWxlcnQvY29lci1hbGVydC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSUh0dHBSZXF1ZXN0LCBJSHR0cFJlc3BvbnNlIH0gZnJvbSBcImNvZXItZWxlbWVudHMvaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgeyBUb29scyB9IGZyb20gXCIuL3Rvb2xzXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgU2VydmljZSB7XHJcblxyXG4gICAgLy9JbmplY3Rpb25zXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWxlcnQgPSBpbmplY3QoQ29lckFsZXJ0KTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG5cclxuICAgIHByb3RlY3RlZCBodHRwQ29kZSA9IHtcclxuICAgICAgICBPazogMjAwLFxyXG4gICAgICAgIENyZWF0ZWQ6IDIwMSxcclxuICAgICAgICBOb0NvbnRlbnQ6IDIwNCxcclxuICAgICAgICBCYWRSZXF1ZXN0OiA0MDAsXHJcbiAgICAgICAgVW5hdXRob3JpemU6IDQwMSxcclxuICAgICAgICBOb3RGb3VuZDogNDA0LFxyXG4gICAgICAgIE5vdEFsbG93ZWQ6IDQwNSxcclxuICAgICAgICBOb3RBY2NlcHRhYmxlOiA0MDYsXHJcbiAgICAgICAgQ29uZmxpY3Q6IDQwOSxcclxuICAgICAgICBQYXlsb2FkVG9vTGFyZ2U6IDQxMyxcclxuICAgICAgICBJbm5lckVycm9yOiA1MDBcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy9TdWJzY3JpcHRpb25zXHJcbiAgICBwcml2YXRlIF9HRVQkITogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJpdmF0ZSBfUE9TVCQhOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIF9QVVQkITogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJpdmF0ZSBfUEFUQ0gkITogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJpdmF0ZSBfREVMRVRFJCE6IFN1YnNjcmlwdGlvbjtcclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIFJlbGVhc2VTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24pOiB2b2lkIHtcclxuICAgICAgICBpZiAoc3Vic2NyaXB0aW9uICYmICFzdWJzY3JpcHRpb24uY2xvc2VkKSBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIEhUVFAgR0VUICovXHJcbiAgICBwcm90ZWN0ZWQgSFRUUF9HRVQ8VD4ocmVxdWVzdDogSUh0dHBSZXF1ZXN0PFQ+KSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPElIdHRwUmVzcG9uc2U8VD4+KFJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLlJlbGVhc2VTdWJzY3JpcHRpb24odGhpcy5fR0VUJCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9HRVQkID0gdGhpcy5odHRwLnJlcXVlc3Q8VD4obmV3IEh0dHBSZXF1ZXN0KFwiR0VUXCIsIHJlcXVlc3QudXJsLCB7IHBhcmFtczogcmVxdWVzdC5xdWVyeVBhcmFtcywgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzIH0pKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBIdHRwRXZlbnQ8VD4gfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UudHlwZSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVzb2x2ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBUb29scy5CcmVha1JlZmVyZW5jZTxUPihyZXNwb25zZS5ib2R5KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IChodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5SZWxlYXNlU3Vic2NyaXB0aW9uKHRoaXMuX0dFVCQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQWxlcnRFcnJvcihodHRwRXJyb3IsIHJlcXVlc3QuYWxlcnRFcnJvcik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIFJlc29sdmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiB7fSBhcyBhbnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogaHR0cEVycm9yLnN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogaHR0cEVycm9yLmVycm9yPy5tZXNzYWdlIHx8IGh0dHBFcnJvci5lcnJvcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2s6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5SZWxlYXNlU3Vic2NyaXB0aW9uKHRoaXMuX0dFVCQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoVG9vbHMuSXNOb3RPbmx5V2hpdGVTcGFjZShyZXF1ZXN0LmFsZXJ0U3VjY2VzcykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydC5TdWNjZXNzKHJlcXVlc3QuYWxlcnRTdWNjZXNzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogSFRUUCBQT1NUICovXHJcbiAgICBwcm90ZWN0ZWQgSFRUUF9QT1NUPFQ+KHJlcXVlc3Q6IElIdHRwUmVxdWVzdDxUPikge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxJSHR0cFJlc3BvbnNlPFQ+PihSZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5SZWxlYXNlU3Vic2NyaXB0aW9uKHRoaXMuX1BPU1QkKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX1BPU1QkID0gdGhpcy5odHRwLnJlcXVlc3Q8VD4obmV3IEh0dHBSZXF1ZXN0KFwiUE9TVFwiLCByZXF1ZXN0LnVybCwgcmVxdWVzdC5ib2R5LCB7IHBhcmFtczogcmVxdWVzdC5xdWVyeVBhcmFtcywgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzIH0pKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBIdHRwRXZlbnQ8VD4gfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UudHlwZSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVzb2x2ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBUb29scy5CcmVha1JlZmVyZW5jZTxUPihyZXNwb25zZS5ib2R5KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IChodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5SZWxlYXNlU3Vic2NyaXB0aW9uKHRoaXMuX1BPU1QkKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLkFsZXJ0RXJyb3IoaHR0cEVycm9yLCByZXF1ZXN0LmFsZXJ0RXJyb3IpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBSZXNvbHZlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keToge30gYXMgYW55LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGh0dHBFcnJvci5zdGF0dXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGh0dHBFcnJvci5lcnJvcj8ubWVzc2FnZSB8fCBodHRwRXJyb3IuZXJyb3IsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9rOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVsZWFzZVN1YnNjcmlwdGlvbih0aGlzLl9QT1NUJCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChUb29scy5Jc05vdE9ubHlXaGl0ZVNwYWNlKHJlcXVlc3QuYWxlcnRTdWNjZXNzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0LlN1Y2Nlc3MocmVxdWVzdC5hbGVydFN1Y2Nlc3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiBIVFRQIFBVVCAqL1xyXG4gICAgcHJvdGVjdGVkIEhUVFBfUFVUPFQ+KHJlcXVlc3Q6IElIdHRwUmVxdWVzdDxUPikge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxJSHR0cFJlc3BvbnNlPHZvaWQ+PihSZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5SZWxlYXNlU3Vic2NyaXB0aW9uKHRoaXMuX1BVVCQpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fUFVUJCA9IHRoaXMuaHR0cC5yZXF1ZXN0PFQ+KG5ldyBIdHRwUmVxdWVzdChcIlBVVFwiLCByZXF1ZXN0LnVybCwgcmVxdWVzdC5ib2R5LCB7IHBhcmFtczogcmVxdWVzdC5xdWVyeVBhcmFtcywgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzIH0pKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBIdHRwRXZlbnQ8VD4gfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UudHlwZSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVzb2x2ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiB7fSBhcyBhbnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvazogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgICAgIGVycm9yOiAoaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVsZWFzZVN1YnNjcmlwdGlvbih0aGlzLl9QVVQkKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLkFsZXJ0RXJyb3IoaHR0cEVycm9yLCByZXF1ZXN0LmFsZXJ0RXJyb3IpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBSZXNvbHZlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keToge30gYXMgYW55LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGh0dHBFcnJvci5zdGF0dXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGh0dHBFcnJvci5lcnJvcj8ubWVzc2FnZSB8fCBodHRwRXJyb3IuZXJyb3IsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9rOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVsZWFzZVN1YnNjcmlwdGlvbih0aGlzLl9QVVQkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFRvb2xzLklzTm90T25seVdoaXRlU3BhY2UocmVxdWVzdC5hbGVydFN1Y2Nlc3MpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuU3VjY2VzcyhyZXF1ZXN0LmFsZXJ0U3VjY2VzcywgJ1VwZGF0ZWQnLCAnZmEtc29saWQgZmEtYXJyb3dzLXJvdGF0ZSBmYS1zcGluJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIEhUVFAgUEFUQ0ggKi9cclxuICAgIHByb3RlY3RlZCBIVFRQX1BBVENIPFQ+KHJlcXVlc3Q6IElIdHRwUmVxdWVzdDxUPikge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxJSHR0cFJlc3BvbnNlPHZvaWQ+PihSZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5SZWxlYXNlU3Vic2NyaXB0aW9uKHRoaXMuX1BBVENIJCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9QQVRDSCQgPSB0aGlzLmh0dHAucmVxdWVzdDxUPihuZXcgSHR0cFJlcXVlc3QoXCJQQVRDSFwiLCByZXF1ZXN0LnVybCwgcmVxdWVzdC5ib2R5LCB7IHBhcmFtczogcmVxdWVzdC5xdWVyeVBhcmFtcywgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzIH0pKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBIdHRwRXZlbnQ8VD4gfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UudHlwZSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVzb2x2ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiB7fSBhcyBhbnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvazogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgICAgIGVycm9yOiAoaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVsZWFzZVN1YnNjcmlwdGlvbih0aGlzLl9QQVRDSCQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQWxlcnRFcnJvcihodHRwRXJyb3IsIHJlcXVlc3QuYWxlcnRFcnJvcik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIFJlc29sdmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiB7fSBhcyBhbnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogaHR0cEVycm9yLnN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogaHR0cEVycm9yLmVycm9yPy5tZXNzYWdlIHx8IGh0dHBFcnJvci5lcnJvcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2s6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5SZWxlYXNlU3Vic2NyaXB0aW9uKHRoaXMuX1BBVENIJCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChUb29scy5Jc05vdE9ubHlXaGl0ZVNwYWNlKHJlcXVlc3QuYWxlcnRTdWNjZXNzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0LlN1Y2Nlc3MocmVxdWVzdC5hbGVydFN1Y2Nlc3MsICdVcGRhdGVkJywgJ2ZhLXNvbGlkIGZhLWFycm93cy1yb3RhdGUgZmEtc3BpbicpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiBIVFRQIERFTEVURSAqL1xyXG4gICAgcHJvdGVjdGVkIEhUVFBfREVMRVRFPFQ+KHJlcXVlc3Q6IElIdHRwUmVxdWVzdDxUPikge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxJSHR0cFJlc3BvbnNlPHZvaWQ+PihSZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5SZWxlYXNlU3Vic2NyaXB0aW9uKHRoaXMuX0RFTEVURSQpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fREVMRVRFJCA9IHRoaXMuaHR0cC5yZXF1ZXN0PFQ+KG5ldyBIdHRwUmVxdWVzdChcIkRFTEVURVwiLCByZXF1ZXN0LnVybCwgeyBwYXJhbXM6IHJlcXVlc3QucXVlcnlQYXJhbXMsIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVycyB9KSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IChyZXNwb25zZTogSHR0cEV2ZW50PFQ+IHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnR5cGUgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlc29sdmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keToge30gYXMgYW55LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2s6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlbGVhc2VTdWJzY3JpcHRpb24odGhpcy5fREVMRVRFJCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5BbGVydEVycm9yKGh0dHBFcnJvciwgcmVxdWVzdC5hbGVydEVycm9yKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgUmVzb2x2ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IHt9IGFzIGFueSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBodHRwRXJyb3Iuc3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBodHRwRXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgaHR0cEVycm9yLmVycm9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvazogZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlbGVhc2VTdWJzY3JpcHRpb24odGhpcy5fREVMRVRFJCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFRvb2xzLklzTm90T25seVdoaXRlU3BhY2UocmVxdWVzdC5hbGVydFN1Y2Nlc3MpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuU3VjY2VzcyhyZXF1ZXN0LmFsZXJ0U3VjY2VzcywgJ0RlbGV0ZWQnLCAnZmEtcmVndWxhciBmYS10cmFzaC1jYW4nKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByaXZhdGUgQWxlcnRFcnJvcihodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCBtZXNzYWdlPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGh0dHBFcnJvci5zdGF0dXMgPj0gNTAwKSB7XHJcbiAgICAgICAgICAgIGlmIChUb29scy5Jc05vdE9ubHlXaGl0ZVNwYWNlKG1lc3NhZ2UpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0LkVycm9yKCcnLCBtZXNzYWdlLCAnZmEtc29saWQgZmEtYnVnJywgbnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKGh0dHBFcnJvci5zdGF0dXMgPCA1MDApIHtcclxuICAgICAgICAgICAgc3dpdGNoKGh0dHBFcnJvci5zdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgNDAwOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydC5XYXJuaW5nKGh0dHBFcnJvci5lcnJvcj8ubWVzc2FnZSB8fCBodHRwRXJyb3IuZXJyb3IsICdCYWQgUmVxdWVzdCcsICdmYS1yZWd1bGFyIGZhLWZhY2UtZ3Jpbi1iZWFtLXN3ZWF0IGZhLWxnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSA0MDE6IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0Lldhcm5pbmcoaHR0cEVycm9yLmVycm9yPy5tZXNzYWdlIHx8IGh0dHBFcnJvci5lcnJvciwgJ1VuYXV0aG9yaXplJywgJ2ZhLXJlZ3VsYXIgZmEtZmFjZS1yb2xsaW5nLWV5ZXMgZmEtbGcnKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlIDQwNDoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuV2FybmluZyhodHRwRXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgaHR0cEVycm9yLmVycm9yLCAnTm90IEZvdW5kJywgJ2ZhLXJlZ3VsYXIgZmEtZmFjZS1tZWggZmEtbGcnKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlIDQwNToge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuV2FybmluZyhodHRwRXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgaHR0cEVycm9yLmVycm9yLCAnTm90IEFsbG93ZWQnLCAnZmEtcmVndWxhciBmYS1mYWNlLWdyaW1hY2UgZmEtbGcnKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlIDQwNjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuV2FybmluZyhodHRwRXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgaHR0cEVycm9yLmVycm9yLCAnTm90IEFjY2VwdGFibGUnLCAnZmEtcmVndWxhciBmYS1mYWNlLWZyb3duLW9wZW4gZmEtbGcnKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlIDQwOToge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuV2FybmluZyhodHRwRXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgaHR0cEVycm9yLmVycm9yLCAnQ29uZmxpY3QnLCAnZmEtcmVndWxhciBmYS1mYWNlLWRpenp5IGZhLWxnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSA0MTM6IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0Lldhcm5pbmcoaHR0cEVycm9yLmVycm9yPy5tZXNzYWdlIHx8IGh0dHBFcnJvci5lcnJvciwgJ1RvbyBMYXJnZScsICdmYS1yZWd1bGFyIGZhLWZhY2UtZmx1c2hlZCBmYS1sZycpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaHR0cEVycm9yLnN0YXR1cyA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuV2FybmluZygnV2l0aG91dCBDb25uZWN0aW9uJywgJ1dFQiBBUEkgRE9XTicsICdmYS1zb2xpZCBmYS1wbHVnLWNpcmNsZS14bWFyayBmYS1sZycsIG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB0aGlzLmFsZXJ0Lldhcm5pbmcoaHR0cEVycm9yLmVycm9yPy5tZXNzYWdlIHx8IGh0dHBFcnJvci5lcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvdG9vbHMvbGliL3NlcnZpY2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFnQyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFOUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUdoQyxNQUFNLE9BQU8sT0FBTztJQUFwQjtRQUVJLFlBQVk7UUFDTyxVQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFCLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkMsYUFBUSxHQUFHO1lBQ2pCLEVBQUUsRUFBRSxHQUFHO1lBQ1AsT0FBTyxFQUFFLEdBQUc7WUFDWixTQUFTLEVBQUUsR0FBRztZQUNkLFVBQVUsRUFBRSxHQUFHO1lBQ2YsV0FBVyxFQUFFLEdBQUc7WUFDaEIsUUFBUSxFQUFFLEdBQUc7WUFDYixVQUFVLEVBQUUsR0FBRztZQUNmLGFBQWEsRUFBRSxHQUFHO1lBQ2xCLFFBQVEsRUFBRSxHQUFHO1lBQ2IsZUFBZSxFQUFFLEdBQUc7WUFDcEIsVUFBVSxFQUFFLEdBQUc7U0FDbEIsQ0FBQTtJQXFSTCxDQUFDO0lBMVFHLE1BQU07SUFDRSxtQkFBbUIsQ0FBQyxZQUEwQjtRQUNsRCxJQUFJLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFHRCxlQUFlO0lBQ0wsUUFBUSxDQUFJLE9BQXdCO1FBQzFDLE9BQU8sSUFBSSxPQUFPLENBQW1CLE9BQU8sQ0FBQyxF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UCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO29CQUM5RyxNQUFNO2dCQUNWLENBQUM7Z0JBRUQsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLGtDQUFrQyxDQUFDLENBQUM7b0JBQ2pILE1BQU07Z0JBQ1YsQ0FBQztnQkFFRCxPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUNOLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLHFDQUFxQyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUMxRyxDQUFDOzt3QkFFSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3JFLE1BQU07Z0JBQ1YsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgQ29lckFsZXJ0IH0gZnJvbSBcIi4vY29lci1hbGVydC9jb2VyLWFsZXJ0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBJSHR0cFJlcXVlc3QsIElIdHRwUmVzcG9uc2UgfSBmcm9tIFwiY29lci1lbGVtZW50cy9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IFRvb2xzIH0gZnJvbSBcIi4vdG9vbHNcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlIHtcclxuXHJcbiAgICAvL0luamVjdGlvbnNcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBhbGVydCA9IGluamVjdChDb2VyQWxlcnQpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XHJcblxyXG4gICAgcHJvdGVjdGVkIGh0dHBDb2RlID0ge1xyXG4gICAgICAgIE9rOiAyMDAsXHJcbiAgICAgICAgQ3JlYXRlZDogMjAxLFxyXG4gICAgICAgIE5vQ29udGVudDogMjA0LFxyXG4gICAgICAgIEJhZFJlcXVlc3Q6IDQwMCxcclxuICAgICAgICBVbmF1dGhvcml6ZTogNDAxLFxyXG4gICAgICAgIE5vdEZvdW5kOiA0MDQsXHJcbiAgICAgICAgTm90QWxsb3dlZDogNDA1LFxyXG4gICAgICAgIE5vdEFjY2VwdGFibGU6IDQwNixcclxuICAgICAgICBDb25mbGljdDogNDA5LFxyXG4gICAgICAgIFBheWxvYWRUb29MYXJnZTogNDEzLFxyXG4gICAgICAgIElubmVyRXJyb3I6IDUwMFxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL1N1YnNjcmlwdGlvbnNcclxuICAgIHByaXZhdGUgX0dFVCQhOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIF9QT1NUJCE6IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgX1BVVCQhOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIF9QQVRDSCQhOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIF9ERUxFVEUkITogU3Vic2NyaXB0aW9uO1xyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByaXZhdGUgUmVsZWFzZVN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbik6IHZvaWQge1xyXG4gICAgICAgIGlmIChzdWJzY3JpcHRpb24gJiYgIXN1YnNjcmlwdGlvbi5jbG9zZWQpIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogSFRUUCBHRVQgKi9cclxuICAgIHByb3RlY3RlZCBIVFRQX0dFVDxUPihyZXF1ZXN0OiBJSHR0cFJlcXVlc3Q8VD4pIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8SUh0dHBSZXNwb25zZTxUPj4oUmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuUmVsZWFzZVN1YnNjcmlwdGlvbih0aGlzLl9HRVQkKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX0dFVCQgPSB0aGlzLmh0dHAucmVxdWVzdDxUPihuZXcgSHR0cFJlcXVlc3QoXCJHRVRcIiwgcmVxdWVzdC51cmwsIHsgcGFyYW1zOiByZXF1ZXN0LnF1ZXJ5UGFyYW1zLCBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMgfSkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAocmVzcG9uc2U6IEh0dHBFdmVudDxUPiB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS50eXBlID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZXNvbHZlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IFRvb2xzLkJyZWFrUmVmZXJlbmNlPFQ+KHJlc3BvbnNlLmJvZHkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2s6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlbGVhc2VTdWJzY3JpcHRpb24odGhpcy5fR0VUJCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5BbGVydEVycm9yKGh0dHBFcnJvciwgcmVxdWVzdC5hbGVydEVycm9yKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgUmVzb2x2ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IHt9IGFzIGFueSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBodHRwRXJyb3Iuc3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBodHRwRXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgaHR0cEVycm9yLmVycm9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvazogZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlbGVhc2VTdWJzY3JpcHRpb24odGhpcy5fR0VUJCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChUb29scy5Jc05vdE9ubHlXaGl0ZVNwYWNlKHJlcXVlc3QuYWxlcnRTdWNjZXNzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0LlN1Y2Nlc3MocmVxdWVzdC5hbGVydFN1Y2Nlc3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiBIVFRQIFBPU1QgKi9cclxuICAgIHByb3RlY3RlZCBIVFRQX1BPU1Q8VD4ocmVxdWVzdDogSUh0dHBSZXF1ZXN0PFQ+KSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPElIdHRwUmVzcG9uc2U8VD4+KFJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLlJlbGVhc2VTdWJzY3JpcHRpb24odGhpcy5fUE9TVCQpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fUE9TVCQgPSB0aGlzLmh0dHAucmVxdWVzdDxUPihuZXcgSHR0cFJlcXVlc3QoXCJQT1NUXCIsIHJlcXVlc3QudXJsLCByZXF1ZXN0LmJvZHksIHsgcGFyYW1zOiByZXF1ZXN0LnF1ZXJ5UGFyYW1zLCBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMgfSkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAocmVzcG9uc2U6IEh0dHBFdmVudDxUPiB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS50eXBlID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZXNvbHZlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IFRvb2xzLkJyZWFrUmVmZXJlbmNlPFQ+KHJlc3BvbnNlLmJvZHkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2s6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlbGVhc2VTdWJzY3JpcHRpb24odGhpcy5fUE9TVCQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQWxlcnRFcnJvcihodHRwRXJyb3IsIHJlcXVlc3QuYWxlcnRFcnJvcik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIFJlc29sdmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiB7fSBhcyBhbnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogaHR0cEVycm9yLnN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogaHR0cEVycm9yLmVycm9yPy5tZXNzYWdlIHx8IGh0dHBFcnJvci5lcnJvcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2s6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5SZWxlYXNlU3Vic2NyaXB0aW9uKHRoaXMuX1BPU1QkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFRvb2xzLklzTm90T25seVdoaXRlU3BhY2UocmVxdWVzdC5hbGVydFN1Y2Nlc3MpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuU3VjY2VzcyhyZXF1ZXN0LmFsZXJ0U3VjY2Vzcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIEhUVFAgUFVUICovXHJcbiAgICBwcm90ZWN0ZWQgSFRUUF9QVVQ8VD4ocmVxdWVzdDogSUh0dHBSZXF1ZXN0PFQ+KSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPElIdHRwUmVzcG9uc2U8dm9pZD4+KFJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLlJlbGVhc2VTdWJzY3JpcHRpb24odGhpcy5fUFVUJCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9QVVQkID0gdGhpcy5odHRwLnJlcXVlc3Q8VD4obmV3IEh0dHBSZXF1ZXN0KFwiUFVUXCIsIHJlcXVlc3QudXJsLCByZXF1ZXN0LmJvZHksIHsgcGFyYW1zOiByZXF1ZXN0LnF1ZXJ5UGFyYW1zLCBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMgfSkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAocmVzcG9uc2U6IEh0dHBFdmVudDxUPiB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS50eXBlID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZXNvbHZlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IHt9IGFzIGFueSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IChodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5SZWxlYXNlU3Vic2NyaXB0aW9uKHRoaXMuX1BVVCQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQWxlcnRFcnJvcihodHRwRXJyb3IsIHJlcXVlc3QuYWxlcnRFcnJvcik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIFJlc29sdmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiB7fSBhcyBhbnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogaHR0cEVycm9yLnN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogaHR0cEVycm9yLmVycm9yPy5tZXNzYWdlIHx8IGh0dHBFcnJvci5lcnJvcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2s6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5SZWxlYXNlU3Vic2NyaXB0aW9uKHRoaXMuX1BVVCQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoVG9vbHMuSXNOb3RPbmx5V2hpdGVTcGFjZShyZXF1ZXN0LmFsZXJ0U3VjY2VzcykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydC5TdWNjZXNzKHJlcXVlc3QuYWxlcnRTdWNjZXNzLCAnVXBkYXRlZCcsICdmYS1zb2xpZCBmYS1hcnJvd3Mtcm90YXRlIGZhLXNwaW4nKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogSFRUUCBQQVRDSCAqL1xyXG4gICAgcHJvdGVjdGVkIEhUVFBfUEFUQ0g8VD4ocmVxdWVzdDogSUh0dHBSZXF1ZXN0PFQ+KSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPElIdHRwUmVzcG9uc2U8dm9pZD4+KFJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLlJlbGVhc2VTdWJzY3JpcHRpb24odGhpcy5fUEFUQ0gkKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX1BBVENIJCA9IHRoaXMuaHR0cC5yZXF1ZXN0PFQ+KG5ldyBIdHRwUmVxdWVzdChcIlBBVENIXCIsIHJlcXVlc3QudXJsLCByZXF1ZXN0LmJvZHksIHsgcGFyYW1zOiByZXF1ZXN0LnF1ZXJ5UGFyYW1zLCBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMgfSkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAocmVzcG9uc2U6IEh0dHBFdmVudDxUPiB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS50eXBlID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZXNvbHZlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IHt9IGFzIGFueSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IChodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5SZWxlYXNlU3Vic2NyaXB0aW9uKHRoaXMuX1BBVENIJCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5BbGVydEVycm9yKGh0dHBFcnJvciwgcmVxdWVzdC5hbGVydEVycm9yKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgUmVzb2x2ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IHt9IGFzIGFueSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBodHRwRXJyb3Iuc3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBodHRwRXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgaHR0cEVycm9yLmVycm9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvazogZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlbGVhc2VTdWJzY3JpcHRpb24odGhpcy5fUEFUQ0gkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFRvb2xzLklzTm90T25seVdoaXRlU3BhY2UocmVxdWVzdC5hbGVydFN1Y2Nlc3MpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuU3VjY2VzcyhyZXF1ZXN0LmFsZXJ0U3VjY2VzcywgJ1VwZGF0ZWQnLCAnZmEtc29saWQgZmEtYXJyb3dzLXJvdGF0ZSBmYS1zcGluJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIEhUVFAgREVMRVRFICovXHJcbiAgICBwcm90ZWN0ZWQgSFRUUF9ERUxFVEU8VD4ocmVxdWVzdDogSUh0dHBSZXF1ZXN0PFQ+KSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPElIdHRwUmVzcG9uc2U8dm9pZD4+KFJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLlJlbGVhc2VTdWJzY3JpcHRpb24odGhpcy5fREVMRVRFJCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9ERUxFVEUkID0gdGhpcy5odHRwLnJlcXVlc3Q8VD4obmV3IEh0dHBSZXF1ZXN0KFwiREVMRVRFXCIsIHJlcXVlc3QudXJsLCB7IHBhcmFtczogcmVxdWVzdC5xdWVyeVBhcmFtcywgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzIH0pKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBIdHRwRXZlbnQ8VD4gfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UudHlwZSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVzb2x2ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiB7fSBhcyBhbnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvazogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgICAgIGVycm9yOiAoaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVsZWFzZVN1YnNjcmlwdGlvbih0aGlzLl9ERUxFVEUkKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLkFsZXJ0RXJyb3IoaHR0cEVycm9yLCByZXF1ZXN0LmFsZXJ0RXJyb3IpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBSZXNvbHZlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keToge30gYXMgYW55LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGh0dHBFcnJvci5zdGF0dXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGh0dHBFcnJvci5lcnJvcj8ubWVzc2FnZSB8fCBodHRwRXJyb3IuZXJyb3IsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9rOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVsZWFzZVN1YnNjcmlwdGlvbih0aGlzLl9ERUxFVEUkKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoVG9vbHMuSXNOb3RPbmx5V2hpdGVTcGFjZShyZXF1ZXN0LmFsZXJ0U3VjY2VzcykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydC5TdWNjZXNzKHJlcXVlc3QuYWxlcnRTdWNjZXNzLCAnRGVsZXRlZCcsICdmYS1yZWd1bGFyIGZhLXRyYXNoLWNhbicpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBBbGVydEVycm9yKGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UsIG1lc3NhZ2U/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAoaHR0cEVycm9yLnN0YXR1cyA+PSA1MDApIHtcclxuICAgICAgICAgICAgaWYgKFRvb2xzLklzTm90T25seVdoaXRlU3BhY2UobWVzc2FnZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuRXJyb3IobWVzc2FnZSwgYEJVRyAke2h0dHBFcnJvci5zdGF0dXN9YCwgJ2ZhLXNvbGlkIGZhLWJ1ZycsIG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIGlmIChodHRwRXJyb3Iuc3RhdHVzIDwgNTAwKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaChodHRwRXJyb3Iuc3RhdHVzKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQwMDoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuV2FybmluZyhodHRwRXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgaHR0cEVycm9yLmVycm9yLCAnQmFkIFJlcXVlc3QnLCAnZmEtcmVndWxhciBmYS1mYWNlLWdyaW4tYmVhbS1zd2VhdCBmYS1sZycpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgNDAxOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydC5XYXJuaW5nKGh0dHBFcnJvci5lcnJvcj8ubWVzc2FnZSB8fCBodHRwRXJyb3IuZXJyb3IsICdVbmF1dGhvcml6ZScsICdmYS1yZWd1bGFyIGZhLWZhY2Utcm9sbGluZy1leWVzIGZhLWxnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSA0MDQ6IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0Lldhcm5pbmcoaHR0cEVycm9yLmVycm9yPy5tZXNzYWdlIHx8IGh0dHBFcnJvci5lcnJvciwgJ05vdCBGb3VuZCcsICdmYS1yZWd1bGFyIGZhLWZhY2UtbWVoIGZhLWxnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSA0MDU6IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0Lldhcm5pbmcoaHR0cEVycm9yLmVycm9yPy5tZXNzYWdlIHx8IGh0dHBFcnJvci5lcnJvciwgJ05vdCBBbGxvd2VkJywgJ2ZhLXJlZ3VsYXIgZmEtZmFjZS1ncmltYWNlIGZhLWxnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSA0MDY6IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0Lldhcm5pbmcoaHR0cEVycm9yLmVycm9yPy5tZXNzYWdlIHx8IGh0dHBFcnJvci5lcnJvciwgJ05vdCBBY2NlcHRhYmxlJywgJ2ZhLXJlZ3VsYXIgZmEtZmFjZS1mcm93bi1vcGVuIGZhLWxnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSA0MDk6IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0Lldhcm5pbmcoaHR0cEVycm9yLmVycm9yPy5tZXNzYWdlIHx8IGh0dHBFcnJvci5lcnJvciwgJ0NvbmZsaWN0JywgJ2ZhLXJlZ3VsYXIgZmEtZmFjZS1kaXp6eSBmYS1sZycpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgNDEzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydC5XYXJuaW5nKGh0dHBFcnJvci5lcnJvcj8ubWVzc2FnZSB8fCBodHRwRXJyb3IuZXJyb3IsICdUb28gTGFyZ2UnLCAnZmEtcmVndWxhciBmYS1mYWNlLWZsdXNoZWQgZmEtbGcnKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGh0dHBFcnJvci5zdGF0dXMgPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0Lldhcm5pbmcoJ1dpdGhvdXQgQ29ubmVjdGlvbicsICdXRUIgQVBJIERPV04nLCAnZmEtc29saWQgZmEtcGx1Zy1jaXJjbGUteG1hcmsgZmEtbGcnLCBudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5hbGVydC5XYXJuaW5nKGh0dHBFcnJvci5lcnJvcj8ubWVzc2FnZSB8fCBodHRwRXJyb3IuZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19