@colijnit/transaction 12.1.32 → 12.1.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/colijnit-transaction.umd.js +3585 -2224
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +246 -238
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/colijnit-transaction.js +247 -239
- package/esm2015/lib/assets/dictionary/text.properties.js +18 -4
- package/esm2015/lib/cache/cache-field.js +75 -0
- package/esm2015/lib/cache/parameter-cache-field.js +54 -0
- package/esm2015/lib/cache/service/business-object-cache-manager.service.js +150 -0
- package/esm2015/lib/cache/service/select-multiple-cache.service.js +38 -0
- package/esm2015/lib/cache/service/select-multiple-parameterized-cache.service.js +47 -0
- package/esm2015/lib/cache/service/select-single-cache.service.js +30 -0
- package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +2 -2
- package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.component.js +3 -3
- package/esm2015/lib/component/core/base/transaction-header-base.component.js +58 -0
- package/esm2015/lib/component/core/base/transaction-line-base.component.js +1 -1
- package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.component.js +35 -0
- package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.module.js +28 -0
- package/esm2015/lib/component/payment/payment.component.js +2 -2
- package/esm2015/lib/component/relation/relation-contact-details/relation-contact-details.component.js +2 -2
- package/esm2015/lib/component/relation/relation-general/relation-general.component.js +2 -2
- package/esm2015/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.module.js +4 -2
- package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +17 -5
- package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +17 -8
- package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +7 -1
- package/esm2015/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.js +3 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-branch.component.js +30 -16
- package/esm2015/lib/component/transaction-header-fields/transaction-header-definitive.component.js +3 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-date.component.js +3 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-method.component.js +3 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-options.component.js +3 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-downpayment-amount.component.js +3 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.component.js +3 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-marketing.component.js +19 -10
- package/esm2015/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.js +3 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.component.js +3 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-reference.component.js +3 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-relation-reference.component.js +3 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-remarks.component.js +3 -3
- package/esm2015/lib/component/transaction-line/transaction-line.component.js +29 -11
- package/esm2015/lib/component/transaction-line/transaction-line.module.js +4 -2
- package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.component.js +8 -3
- package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.component.js +9 -4
- package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.component.js +35 -12
- package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.module.js +4 -3
- package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.component.js +12 -7
- package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +4 -1
- package/esm2015/lib/component/transaction-lines/transaction-lines.module.js +4 -3
- package/esm2015/lib/enum/icon.enum.js +6 -2
- package/esm2015/lib/model/icon-svg.js +6 -2
- package/esm2015/lib/service/article-connector.service.js +24 -29
- package/esm2015/lib/service/article.service.js +8 -4
- package/esm2015/lib/service/error.service.js +33 -0
- package/esm2015/lib/service/payment.service.js +20 -13
- package/esm2015/lib/service/pending-reason.service.js +3 -2
- package/esm2015/lib/service/transaction-connector-adapter.service.js +1388 -0
- package/esm2015/lib/service/transaction-connector.service.js +163 -1067
- package/esm2015/lib/service/transaction-mapping.service.js +2 -2
- package/esm2015/lib/service/transaction.service.js +8 -4
- package/fesm2015/colijnit-transaction.js +2202 -1162
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/cache/cache-field.d.ts +25 -0
- package/lib/cache/parameter-cache-field.d.ts +11 -0
- package/lib/cache/service/business-object-cache-manager.service.d.ts +57 -0
- package/lib/cache/service/select-multiple-cache.service.d.ts +15 -0
- package/lib/cache/service/select-multiple-parameterized-cache.service.d.ts +19 -0
- package/lib/cache/service/select-single-cache.service.d.ts +11 -0
- package/lib/component/core/base/transaction-header-base.component.d.ts +28 -0
- package/lib/component/core/base/transaction-line-base.component.d.ts +2 -0
- package/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.component.d.ts +4 -0
- package/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.module.d.ts +2 -0
- package/lib/component/dialog/transaction-line/dialog-transaction-line-vat/style/_layout.scss +19 -0
- package/lib/component/dialog/transaction-line/dialog-transaction-line-vat/style/_material-definition.scss +0 -0
- package/lib/component/dialog/transaction-line/dialog-transaction-line-vat/style/_theme.scss +4 -0
- package/lib/component/dialog/transaction-line/dialog-transaction-line-vat/style/material.scss +5 -0
- package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/_layout.scss +19 -0
- package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/_material-definition.scss +0 -0
- package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/_theme.scss +4 -0
- package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/material.scss +5 -0
- package/lib/component/relation/relation-contact-details/style/_layout.scss +11 -0
- package/lib/component/relation/relation-contact-details/style/_material-definition.scss +2 -0
- package/lib/component/transaction-header/transaction-header-delivery/style/_layout.scss +3 -2
- package/lib/component/transaction-header/transaction-header-delivery/style/_material-definition.scss +4 -2
- package/lib/component/transaction-header/transaction-header-delivery/style/_theme.scss +3 -1
- package/lib/component/transaction-header/transaction-header-relation/style/_layout.scss +3 -0
- package/lib/component/transaction-header/transaction-header-relation/style/material.scss +1 -0
- package/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-branch.component.d.ts +4 -9
- package/lib/component/transaction-header-fields/transaction-header-definitive.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-delivery-date.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-delivery-method.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-delivery-options.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-downpayment-amount.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-marketing.component.d.ts +2 -8
- package/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-reference.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-relation-reference.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-remarks.component.d.ts +2 -2
- package/lib/component/transaction-line/style/_layout.scss +20 -5
- package/lib/component/transaction-line/style/_material-definition.scss +8 -0
- package/lib/component/transaction-line/style/_theme.scss +2 -1
- package/lib/component/transaction-line/style/material.scss +1 -0
- package/lib/component/transaction-line/transaction-line.component.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-vat.component.d.ts +6 -2
- package/lib/component/transaction-line-fields/transaction-line-warehouse.component.d.ts +1 -1
- package/lib/component/transaction-lines/style/_layout.scss +16 -3
- package/lib/enum/icon.enum.d.ts +5 -1
- package/lib/service/article-connector.service.d.ts +1 -3
- package/lib/service/article.service.d.ts +3 -1
- package/lib/service/error.service.d.ts +8 -0
- package/lib/service/payment.service.d.ts +5 -3
- package/lib/service/pending-reason.service.d.ts +2 -1
- package/lib/service/transaction-connector-adapter.service.d.ts +152 -0
- package/lib/service/transaction-connector.service.d.ts +13 -13
- package/lib/style/_variables.scss +3 -1
- package/lib/style/transaction-globals.scss +6 -0
- package/package.json +1 -1
- package/esm2015/lib/component/transaction-header-fields/transaction-header-fields-base.component.js +0 -27
- package/esm2015/lib/service/collection-cache.service.js +0 -40
- package/lib/component/transaction-header-fields/transaction-header-fields-base.component.d.ts +0 -8
- package/lib/service/collection-cache.service.d.ts +0 -6
|
@@ -50,6 +50,7 @@ export class Dictionary {
|
|
|
50
50
|
"CHECKOUT_FINISH": "Bestelling afronden",
|
|
51
51
|
"CITY": "Stad",
|
|
52
52
|
"CLIENT_DATA": "Klantgegevens",
|
|
53
|
+
"CLIENT_INFORMATION": "Klantinformatie",
|
|
53
54
|
"COMPANY": "Bedrijf",
|
|
54
55
|
"COMPANY_NAME": "Bedrijfsnaam",
|
|
55
56
|
"COMMISSION_CODE": "Commisiecode",
|
|
@@ -89,6 +90,7 @@ export class Dictionary {
|
|
|
89
90
|
"DELIVERY_DATE_DEFINITIVE": "Leverdatum definitief",
|
|
90
91
|
"DELIVERY_DATE_FINAL": "Definitieve leverdatum",
|
|
91
92
|
"DELIVERY_DIRECT": "Direct leverbaar",
|
|
93
|
+
"DELIVERY_INFORMATION": "Leverinformatie",
|
|
92
94
|
"DELIVERY_LOCATION": "Bezorgingslocatie",
|
|
93
95
|
"DELIVERY_NOTE": "Afleverbon",
|
|
94
96
|
"DELIVERY_OPTIONS": "Leveropties",
|
|
@@ -199,6 +201,7 @@ export class Dictionary {
|
|
|
199
201
|
"ORDER_TYPE": "Type bestelling",
|
|
200
202
|
"ORDERED": "Besteld",
|
|
201
203
|
"OTHER": "Overig",
|
|
204
|
+
"OVERVIEW": "Overzicht",
|
|
202
205
|
"OVERVIEW_AND_PAYMENT": "Overzicht en betaling",
|
|
203
206
|
"OWN_REFERENCE": "Eigen referentie",
|
|
204
207
|
"PACKING_SLIP": "Pakbon",
|
|
@@ -215,6 +218,7 @@ export class Dictionary {
|
|
|
215
218
|
"PASSWORD": "Wachtwoord",
|
|
216
219
|
"PAY": "Betalen",
|
|
217
220
|
"PAYMENT": "Betaling",
|
|
221
|
+
"PAYMENT_INFORMATION": "Betaalinformatie",
|
|
218
222
|
"PAYMENT_METHOD": "Betaalmethode",
|
|
219
223
|
"PERSONAL_DATA": "Basisgegevens",
|
|
220
224
|
"PICKED": "Gepickt",
|
|
@@ -260,9 +264,11 @@ export class Dictionary {
|
|
|
260
264
|
"SAME_AS_DELIVERY": "Hetzelfde als bezorgadres",
|
|
261
265
|
"SAVE": "Opslaan",
|
|
262
266
|
"SEARCH": "Zoeken",
|
|
263
|
-
"SEARCH_NUMBER_CUSTOMER_OR_DATE": "Zoeken op nummer, klant of datum",
|
|
264
|
-
"SEARCH_IN_COLLECTION": "Zoek binnen collectie...",
|
|
265
267
|
"SEARCH_ADD_ARTICLE": "Zoeken en toevoegen artikel",
|
|
268
|
+
"SEARCH_DELIVERY_METHOD": "Zoek levermethode",
|
|
269
|
+
"SEARCH_IN_COLLECTION": "Zoek binnen collectie...",
|
|
270
|
+
"SEARCH_NUMBER_CUSTOMER_OR_DATE": "Zoeken op nummer, klant of datum",
|
|
271
|
+
"SEARCH_VAT": "Zoek btw",
|
|
266
272
|
"SEARCH_WAREHOUSE": "Zoek magazijn",
|
|
267
273
|
"SELECT": "Selecteren",
|
|
268
274
|
"SELECT_A": "Selecteer een",
|
|
@@ -314,6 +320,7 @@ export class Dictionary {
|
|
|
314
320
|
"UNKNOWN_ADDRESS_CHECK_IT": "Onbekend adres",
|
|
315
321
|
"USER": "Gebruiker",
|
|
316
322
|
"VAT": "Btw",
|
|
323
|
+
"VAT2": "BTW",
|
|
317
324
|
"VAT_AMOUNT": "BTW-bedrag",
|
|
318
325
|
"VALUE": "Waarde",
|
|
319
326
|
"WHERE_ARE_YOU_LOOKING_FOR": "Waar ben je naar op zoek?",
|
|
@@ -372,6 +379,7 @@ export class Dictionary {
|
|
|
372
379
|
"CHECKOUT_FINISH": "Finish checkout",
|
|
373
380
|
"CITY": "City",
|
|
374
381
|
"CLIENT_DATA": "Client data",
|
|
382
|
+
"CLIENT_INFORMATION": "Client information",
|
|
375
383
|
"COMPANY": "Company",
|
|
376
384
|
"COMPANY_NAME": "Company name",
|
|
377
385
|
"COMMISSION_CODE": "Commission code",
|
|
@@ -410,6 +418,7 @@ export class Dictionary {
|
|
|
410
418
|
"DELIVERY_DATE_DEFINITIVE": "Delivery date definitive",
|
|
411
419
|
"DELIVERY_DATE_FINAL": "Final delivery date",
|
|
412
420
|
"DELIVERY_DIRECT": "Direct delivery",
|
|
421
|
+
"DELIVERY_INFORMATION": "Direct information",
|
|
413
422
|
"DELIVERY_LOCATION": "Delivery location",
|
|
414
423
|
"DELIVERY_NOTE": "Delivery note",
|
|
415
424
|
"DELIVERY_OPTIONS": "Delivery options",
|
|
@@ -519,6 +528,7 @@ export class Dictionary {
|
|
|
519
528
|
"ORDER_TYPE": "Order type",
|
|
520
529
|
"ORDERED": "Ordered",
|
|
521
530
|
"OTHER": "Other",
|
|
531
|
+
"OVERVIEW": "Overview",
|
|
522
532
|
"OVERVIEW_AND_PAYMENT": "Overview and payment",
|
|
523
533
|
"OWN_REFERENCE": "Own reference",
|
|
524
534
|
"PACKING_SLIP": "Packing slip",
|
|
@@ -535,6 +545,7 @@ export class Dictionary {
|
|
|
535
545
|
"PASSWORD": "Password",
|
|
536
546
|
"PAY": "Pay",
|
|
537
547
|
"PAYMENT": "Payment",
|
|
548
|
+
"PAYMENT_INFORMATION": "Payment information",
|
|
538
549
|
"PAYMENT_METHOD": "Payment method",
|
|
539
550
|
"PERSONAL_DATA": "Personal data",
|
|
540
551
|
"PHONE_NO": "Telephone number",
|
|
@@ -571,9 +582,11 @@ export class Dictionary {
|
|
|
571
582
|
"SAME_AS_DELIVERY": "Same as delivery address",
|
|
572
583
|
"SAVE": "Save",
|
|
573
584
|
"SEARCH": "Search",
|
|
574
|
-
"SEARCH_NUMBER_CUSTOMER_OR_DATE": "Search for number, customer or date",
|
|
575
585
|
"SEARCH_ADD_ARTICLE": "Search and add article",
|
|
586
|
+
"SEARCH_DELIVERY_METHOD": "Search deliverymethod",
|
|
576
587
|
"SEARCH_IN_COLLECTION": "Search in collection...",
|
|
588
|
+
"SEARCH_NUMBER_CUSTOMER_OR_DATE": "Search for number, customer or date",
|
|
589
|
+
"SEARCH_VAT": "Search vat",
|
|
577
590
|
"SEARCH_WAREHOUSE": "Search warehouse",
|
|
578
591
|
"SELECT": "Select",
|
|
579
592
|
"SELECT_A": "Select a",
|
|
@@ -625,6 +638,7 @@ export class Dictionary {
|
|
|
625
638
|
"USER": "User",
|
|
626
639
|
"VALUE": "Value",
|
|
627
640
|
"VAT": "VAT",
|
|
641
|
+
"VAT2": "VAT",
|
|
628
642
|
"VAT_AMOUNT": "VAT amount",
|
|
629
643
|
"WAREHOUSE": "Warehouse",
|
|
630
644
|
"WHERE_ARE_YOU_LOOKING_FOR": "Where are you looking for?",
|
|
@@ -637,4 +651,4 @@ export class Dictionary {
|
|
|
637
651
|
};
|
|
638
652
|
}
|
|
639
653
|
}
|
|
640
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5wcm9wZXJ0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9hc3NldHMvZGljdGlvbmFyeS90ZXh0LnByb3BlcnRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFVBQVU7SUFBdkI7UUFDUyxZQUFPLEdBQU87WUFDbkIsSUFBSSxFQUFFO2dCQUNKLGlCQUFpQixFQUFFLGlCQUFpQjtnQkFDcEMscUJBQXFCLEVBQUUsa0ZBQWtGO29CQUN2RywwRkFBMEY7Z0JBQzVGLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixxQkFBcUIsRUFBRSw4QkFBOEI7Z0JBQ3JELHVCQUF1QixFQUFFLDhCQUE4QjtnQkFDdkQsMEJBQTBCLEVBQUUsNEJBQTRCO2dCQUN4RCw0QkFBNEIsRUFBRSw0QkFBNEI7Z0JBQzFELHFCQUFxQixFQUFFLHlCQUF5QjtnQkFDaEQsZUFBZSxFQUFFLG1CQUFtQjtnQkFDcEMsZUFBZSxFQUFFLHFCQUFxQjtnQkFDdEMsWUFBWSxFQUFFLHdCQUF3QjtnQkFDdEMsU0FBUyxFQUFFLE9BQU87Z0JBQ2xCLFdBQVcsRUFBRSxVQUFVO2dCQUN2QixhQUFhLEVBQUUsaUJBQWlCO2dCQUNoQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7Z0JBQ2xDLHdCQUF3QixFQUFFLGtDQUFrQztnQkFDNUQsV0FBVyxFQUFFLFlBQVk7Z0JBQ3pCLDZCQUE2QixFQUFFLHNDQUFzQztnQkFDckUsY0FBYyxFQUFFLGVBQWU7Z0JBQy9CLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixxQkFBcUIsRUFBRSxxQkFBcUI7Z0JBQzVDLGVBQWUsRUFBRSxvQkFBb0I7Z0JBQ3JDLDJCQUEyQixFQUFFLGdFQUFnRTtnQkFDN0YsWUFBWSxFQUFFLGVBQWU7Z0JBQzdCLHFCQUFxQixFQUFFLHVCQUF1QjtnQkFDOUMsaUJBQWlCLEVBQUUsa0JBQWtCO2dCQUNyQyxnQkFBZ0Is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Q29udGVudCI6WyJleHBvcnQgY2xhc3MgRGljdGlvbmFyeSB7XHJcbiAgcHVibGljIHN0cmluZ3M6IHt9ID0ge1xyXG4gICAgXCJubFwiOiB7XHJcbiAgICAgIFwiQUNDT1VOVF9ERVRBSUxTXCI6IFwiQWNjb3VudGdlZ2V2ZW5zXCIsXHJcbiAgICAgIFwiQUNDT1VOVF9FWFBMQU5BVElPTlwiOiBcIkhldCBlLW1haWxhZHJlcyBlbiB3YWNodHdvb3JkIHppam4gbm9kaWcgb20gdG9lZ2FuZyB0ZSBrcmlqZ2VuIHRvdCBkZSBnZWdldmVucy4gXCIgK1xyXG4gICAgICAgIFwiT29rIHp1bGxlbiB3ZSBqZSB2aWEgZGl0IGUtbWFpbGFkcmVzIG9wIGRlIGhvb2d0ZSBob3VkZW4gdmFuIGRlIHN0YXR1cyB2YW4gYmVzdGVsbGluZ2VuLlwiLFxyXG4gICAgICBcIkFDVElWRVwiOiBcIkFjdGllZlwiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX0xJTkVfVVBcIjogXCJBcnRpa2VscmVnZWwgYm92ZW4gdG9ldm9lZ2VuXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfTElORV9ET1dOXCI6IFwiQXJ0aWtlbHJlZ2VsIG9uZGVyIHRvZXZvZWdlblwiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX1RFWFRfTElORV9VUFwiOiBcIlRla3N0cmVnZWwgYm92ZW4gdG9ldm9lZ2VuXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfVEVYVF9MSU5FX0RPV05cIjogXCJUZWtzdHJlZ2VsIG9uZGVyIHRvZXZvZWdlblwiLFxyXG4gICAgICBcIkFERF9ERUxJVkVSWV9PUFRJT05cIjogXCJWb2VnIGVlbiBsZXZlcm9wdGllIHRvZVwiLFxyXG4gICAgICBcIkFERF9ESVNDT1VOVFNcIjogXCJLb3J0aW5nIHRvZXZvZWdlblwiLFxyXG4gICAgICBcIkFERF9SRUZFUkVOQ0VcIjogXCJWb2VnIHJlZmVyZW50aWUgdG9lXCIsXHJcbiAgICAgIFwiQUREX1JFTUFSS1wiOiBcIlZvZWcgZWVuIG9wbWVya2luZyB0b2VcIixcclxuICAgICAgXCJBRERSRVNTXCI6IFwiQWRyZXNcIixcclxuICAgICAgXCJBRERSRVNTRVNcIjogXCJBZHJlc3NlblwiLFxyXG4gICAgICBcIkFERFJFU1NfQUREXCI6IFwiQWRyZXMgdG9ldm9lZ2VuXCIsXHJcbiAgICAgIFwiQUREUkVTU19DSEFOR0VcIjogXCJBZHJlcyB3aWp6aWdlblwiLFxyXG4gICAgICBcIkFETUlOSVNUUkFUSVZFX01BTkFHRVJcIjogXCJBZG1pbmlzdHJhdGllZiB2ZXJhbnR3b29yZGVsaWprZVwiLFxyXG4gICAgICBcIkFMTE9DQVRFRFwiOiBcIlRvZWdld2V6ZW5cIixcclxuICAgICAgXCJBTFdBWVNfU0hPV19MT0dJU1RJQ1NfUE9QVVBcIjogXCJDb250cm9sZWVyIG1hZ2F6aWpuIGVuIGNvbW1pc3NpZWNvZGVcIixcclxuICAgICAgXCJBUlJJVkFMX0RBVEVcIjogXCJBYW5rb21zdGRhdHVtXCIsXHJcbiAgICAgIFwiQVJUSUNMRVwiOiBcIkFydGlrZWxcIixcclxuICAgICAgXCJBUlRJQ0xFX0RFU0NSSVBUSU9OXCI6IFwiQXJ0aWtlbG9tc2NocmlqdmluZ1wiLFxyXG4gICAgICBcIkFSVElDTEVfSU1BR0VcIjogXCJBcnRpa2VsIGFmYmVlbGRpbmdcIixcclxuICAgICAgXCJBUlRJQ0xFX0lOX09VVF9DT0xMRUNUSU9OXCI6IFwiU3RhdHVzIHZhbiBhcnRpa2VsIGlzICd8ficuIFdlZXQgdSB6ZWtlciBkYXQgdSBkb29yIHdpbHQgZ2Fhbj9cIixcclxuICAgICAgXCJBUlRJQ0xFX05SXCI6IFwiQXJ0aWtlbG51bW1lclwiLFxyXG4gICAgICBcIkFSVElDTEVfTlJfU1VQUExJRVJcIjogXCJBcnRpa2VsbnIgbGV2ZXJhbmNpZXJcIixcclxuICAgICAgXCJBUlRJQ0xFX1VOS05PV05cIjogXCJPbmJla2VuZCBhcnRpa2VsXCIsXHJcbiAgICAgIFwiQVNTRU1CTFlfQ09TVFNcIjogXCJNb250YWdla29zdGVuXCIsXHJcbiAgICAgIFwiQVNTRU1CTFlfREFURVwiOiBcIk1vbnRhZ2VkYXR1bVwiLFxyXG4gICAgICBcIkFTU0VNQkxZX1RJTUVcIjogXCJNb250YWdldGlqZFwiLFxyXG4gICAgICBcIkFNT1VOVFwiOiBcIkFhbnRhbFwiLFxyXG4gICAgICBcIkFWQUlMQUJMRV9TVE9DS1wiOiBcIkJlY2hpa2JhYXJcIixcclxuICAgICAgXCJCQUNLXCI6IFwiVGVydWdcIixcclxuICAgICAgXCJCQUNLX1RPX1NUT0NLX0xJTkVTXCI6IFwiVGVydWcgbmFhciB2b29ycmFhZHJlZ2Vsc1wiLFxyXG4gICAgICBcIkJBTEFOQ0VcIjogXCJTYWxkb1wiLFxyXG4gICAgICBcIkJBVENIX05VTUJFUlwiOiBcIkJhdGNobnVtbWVyXCIsXHJcbiAgICAgIFwiQlJBTkNIXCI6IFwiRmlsaWFhbFwiLFxyXG4gICAgICBcIkJSQU5DSF9OVU1CRVJcIjogXCJGaWxpYWFsbnVtbWVyXCIsXHJcbiAgICAgIFwiQlVTSU5FU1NfUlVMRV9ESVNDT1VOVFwiOiBcIkJ1c2luZXNzIHJ1bGUga29ydGluZ1wiLFxyXG4gICAgICBcIkNBTkNFTFwiOiBcIkFubnVsZXJlblwiLFxyXG4gICAgICBcIkNBTk5PVF9DSEFOR0VfTkVHQVRJVkVfUVVBTlRJVFlcIjogXCJFZW4gbmVnYXRpZXZlIHZvb3JyYWFkIGthbiBuaWV0IGdld2lqemlnZCB3b3JkZW4uXCIsXHJcbiAgICAgIFwiQ0FSVFwiOiBcIldpbmtlbHdhZ2VuXCIsXHJcbiAgICAgIFwiQ0hBTkdFX0RBVEFcIjogXCJXaWp6aWcgZ2VnZXZlbnNcIixcclxuICAgICAgXCJDSEFSQUNURVJJU1RJQ19RVUVTVElPTlwiOiBcIktlbm1lcmt2cmFhZ1wiLFxyXG4gICAgICBcIkNIRUNLX1dBUkVIT1VTRV9BTkRfQ09NTUlTU0lPTkNPREVcIjogXCJDb250cm9sZWVyIG1hZ2F6aWpuIGVuIGNvbW1pc3NpZWNvZGUuXCIsXHJcbiAgICAgIFwiQ0hFQ0tPVVRfRklOSVNIXCI6IFwiQmVzdGVsbGluZyBhZnJvbmRlblwiLFxyXG4gICAgICBcIkNJVFlcIjogXCJTdGFkXCIsXHJcbiAgICAgIFwiQ0xJRU5UX0RBVEFcIjogXCJLbGFudGdlZ2V2ZW5zXCIsXHJcbiAgICAgIFwiQ09NUEFOWVwiOiBcIkJlZHJpamZcIixcclxuICAgICAgXCJDT01QQU5ZX05BTUVcIjogXCJCZWRyaWpmc25hYW1cIixcclxuICAgICAgXCJDT01NSVNTSU9OX0NPREVcIjogXCJDb21taXNpZWNvZGVcIixcclxuICAgICAgXCJDT05GSVJNRURcIjogXCJCZXZlc3RpZ2RcIixcclxuICAgICAgXCJDT05GSVJNQVRJT05cIjogXCJCZXZlc3RpZ2luZ1wiLFxyXG4gICAgICBcIkNPTkZJUk1FRF9EQVRFXCI6IFwiQmV2ZXN0aWdkZSBkYXR1bVwiLFxyXG4gICAgICBcIkNPTkZJUk1FRF9ERUxJVkVSWV9EQVRFXCI6IFwiQmV2ZXN0aWdkZSBsZXZlcmRhdHVtXCIsXHJcbiAgICAgIFwiQ09ORklSTUVEX1BSSUNFXCI6IFwiQmV2ZXN0aWdkZSBwcmlqc1wiLFxyXG4gICAgICBcIkNPTlRBQ1RfREVUQUlMU1wiOiBcIkNvbnRhY3RnZWdldmVuc1wiLFxyXG4gICAgICBcIkNPTlRJTlVFXCI6IFwiVm9sZ2VuZGVcIixcclxuICAgICAgXCJDT05USU5VRV9PUkRFUl9XSElMRV9TVE9DS19BVkFJTEFCTEVfUExFQVNFX0NPTkZJUk1cIjogXCJVIGhlZWZ0IGdla296ZW4gdm9vciBoZXQgYmVzdGVsbGVuIHZhbiBhcnRpa2VsZW4gdGVyd2lqbCBlciBub2cgdm9vcnJhYWQgYWFud2V6aWcgaXMuIFdpbHQgdSB2ZXJkZXJnYWFuP1wiLFxyXG4gICAgICBcIkNPTlRJTlVFX1dJVEhPVVRfQUNDT1VOVFwiOiBcIkdhIGRvb3Igem9uZGVyIGFjY291bnRcIixcclxuICAgICAgXCJDT1NUU1wiOiBcIktvc3RlblwiLFxyXG4gICAgICBcIkNPVU5UUllcIjogXCJMYW5kXCIsXHJcbiAgICAgIFwiQ1JFQVRFX0FDQ09VTlRcIjogXCJNYWFrIGVlbiBhY2NvdW50IGFhblwiLFxyXG4gICAgICBcIkNSRUFURV9BQ0NPVU5UX0lOXzJfTUlOXCI6IFwiTWFhayBiaW5uZW4gMiBtaW51dGVuIGVlbiBhY2NvdW50IGFhbi5cIixcclxuICAgICAgXCJDVVNUT01FUlwiOiBcIktsYW50XCIsXHJcbiAgICAgIFwiQ1VTVE9NRVJfR1JPVVBcIjogXCJLbGFudGdyb2VwXCIsXHJcbiAgICAgIFwiQ1VTVE9NRVJfTkFNRVwiOiBcIktsYW50bmFhbVwiLFxyXG4gICAgICBcIkRBVEVcIjogXCJEYXR1bVwiLFxyXG4gICAgICBcIkRBVEVfT0ZfQklSVEhcIjogXCJHZWJvb3J0ZWRhdHVtXCIsXHJcbiAgICAgIFwiREVGSU5JVElWRVwiOiBcIkRlZmluaXRpZWZcIixcclxuICAgICAgXCJERUxFVEVcIjogXCJWZXJ3aWpkZXJlblwiLFxyXG4gICAgICBcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FXCI6IFwidmVyd2lqZGVyZW5cIixcclxuICAgICAgXCJERUxFVEVfVFJBTlNBQ1RJT05fTElORV9ISU5UXCI6IFwiVmVyd2lqZGVyZW4gdHJhbnNhY3RpZXJlZ2VsXCIsXHJcbiAgICAgIFwiREVMRVRFX1RSQU5TQUNUSU9OX0xJTkVfRkFJTEVEXCI6IFwiSGV0IHZlcndpamRlcmVuIHZhbiBkZSB0cmFuc2FjdGllcmVnZWwgaXMgbWlzbHVrdFwiLFxyXG4gICAgICBcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FX1FVRVNUSU9OXCI6IFwiV2VldCB1IHpla2VyIGRhdCB1IGRlemUgcmVnZWwgd2lsdCB2ZXJ3aWpkZXJlbj9cIixcclxuICAgICAgXCJERUxJVkVSRURcIjogXCJHZWxldmVyZFwiLFxyXG4gICAgICBcIkRFTElWRVJZXCI6IFwiQmV6b3JnaW5nXCIsXHJcbiAgICAgIFwiREVMSVZFUllfQUREUkVTU1wiOiBcIkFmbGV2ZXJhZHJlc1wiLFxyXG4gICAgICBcIkRFTElWRVJZX0FERFJFU1NfQUREXCI6IFwiQmV6b3JnYWRyZXMgdG9ldm9lZ2VuXCIsXHJcbiAgICAgIFwiREVMSVZFUllfQUREUkVTU19DSEFOR0VcIjogXCJCZXpvcmdhZHJlcyB3aWp6aWdlblwiLFxyXG4gICAgICBcIkRFTElWRVJZX0JBVENIXCI6IFwiTGV2ZXJiYXRjaFwiLFxyXG4gICAgICBcIkRFTElWRVJZX0NPU1RTXCI6IFwiQmV6b3Jna29zdGVuXCIsXHJcbiAgICAgIFwiREVMSVZFUllfREFUQVwiOiBcIkxldmVyZ2VnZXZlbnNcIixcclxuICAgICAgXCJERUxJVkVSWV9EQVRFXCI6IFwiTGV2ZXJkYXR1bVwiLFxyXG4gICAgICBcIkRFTElWRVJZX0RBVEVfREVGSU5JVElWRVwiOiBcIkxldmVyZGF0dW0gZGVmaW5pdGllZlwiLFxyXG4gICAgICBcIkRFTElWRVJZX0RBVEVfRklOQUxcIjogXCJEZWZpbml0aWV2ZSBsZXZlcmRhdHVtXCIsXHJcbiAgICAgIFwiREVMSVZFUllfRElSRUNUXCI6IFwiRGlyZWN0IGxldmVyYmFhclwiLFxyXG4gICAgICBcIkRFTElWRVJZX0xPQ0FUSU9OXCI6IFwiQmV6b3JnaW5nc2xvY2F0aWVcIixcclxuICAgICAgXCJERUxJVkVSWV9OT1RFXCI6IFwiQWZsZXZlcmJvblwiLFxyXG4gICAgICBcIkRFTElWRVJZX09QVElPTlNcIjogXCJMZXZlcm9wdGllc1wiLFxyXG4gICAgICBcIkRFTElWRVJZX01FVEhPRFwiOiBcIkxldmVybWV0aG9kZVwiLFxyXG4gICAgICBcIkRFTElWRVJZX01PTUVOVFwiOiBcIkxldmVybW9tZW50XCIsXHJcbiAgICAgIFwiREVMSVZFUllfT1BUQVJUSUNMRV9OUklPTlNcIjogXCJCZXpvcmdvcHRpZXNcIixcclxuICAgICAgXCJERUxJVkVSWV9USU1FX1BFUklPRFwiOiBcIkxldmVydGlqZFwiLFxyXG4gICAgICBcIkRFU0NSSVBUSU9OXCI6IFwiT21zY2hyaWp2aW5nXCIsXHJcbiAgICAgIFwiREVUQUlMU1wiOiBcIkRldGFpbHNcIixcclxuICAgICAgXCJESVNDT1VOVFwiOiBcIktvcnRpbmdcIixcclxuICAgICAgXCJESVNDT1VOVFNcIjogXCJLb3J0aW5nZW5cIixcclxuICAgICAgXCJESVNDT1VOVF9BTU9VTlRcIjogXCJLb3J0aW5nc2JlZHJhZ1wiLFxyXG4gICAgICBcIkRJU0NPVU5UX1BFUkNFTlRBR0VcIjogXCJLb3J0aW5ncyAlXCIsXHJcbiAgICAgIFwiRE9XTlBBWU1FTlRcIjogXCJBYW5iZXRhbGluZ1wiLFxyXG4gICAgICBcIkRPV05QQVlNRU5UX1BFUkNFTlRBR0VcIjogXCJBYW4gdGUgYmV0YWxlbiAlXCIsXHJcbiAgICAgIFwiRE9XTlBBWU1FTlRfQU1PVU5UXCI6IFwiQWFuIHRlIGJldGFsZW4gYmVkcmFnXCIsXHJcbiAgICAgIFwiRE9XTlBBWU1FTlRfQllfQlJcIjogXCJCZXJla2VuZCBkb29yIEJSXCIsXHJcbiAgICAgIFwiRE9XTlBBWU1FTlRfT05fREVMSVZFUllcIjogXCJSZW1ib3Vyc1wiLFxyXG4gICAgICBcIkRST1BTSElQTUVOVFwiOiBcIkRyb3BzaGlwbWVudFwiLFxyXG4gICAgICBcIkVDT05PTUlDQUxfU1RPQ0tcIjogXCJMYXRlciBiZXNjaGlrYmFhclwiLFxyXG4gICAgICBcIkVESVRfQ0FSVFwiOiBcIldpanppZyB3aW5rZWx3YWdlblwiLFxyXG4gICAgICBcIkVNQUlMX0FERFJFU1NcIjogXCJFLW1haWxhZHJlc1wiLFxyXG4gICAgICBcIkVYQ0VFREVOQ0VfQ09ERVwiOiBcIlVpdGxvb3Bjb2RlXCIsXHJcbiAgICAgIFwiRVhJU1RJTkdfQ1VTVE9NRVJTXCI6IFwiQmVzdGFhbmRlIGtsYW50ZW5cIixcclxuICAgICAgXCJFWFBFQ1RFRF9ERUxJVkVSWV9EQVRFXCI6IFwiKFZlcndhY2h0ZSkgbGV2ZXJkYXR1bVwiLFxyXG4gICAgICBcIkVYUEVDVEVEX0RFTElWRVJZX1dFRUtcIjogXCIoVmVyd2FjaHRlKSBsZXZlcndlZWtcIixcclxuICAgICAgXCJGQUJSSUNBVElPTl9DT1NUXCI6IFwiRmFicmljYWdlcHJpanNcIixcclxuICAgICAgXCJGQUJSSUNBVElPTl9DT1NUX0xJTkVfVE9UQUxcIjogXCJGYWJyaWNhZ2VwcmlqcyByZWdlbHRvdGFhbFwiLFxyXG4gICAgICBcIkZFTUFMRVwiOiBcIlZyb3V3XCIsXHJcbiAgICAgIFwiRklSU1RfTkFNRVwiOiBcIlZvb3JuYWFtXCIsXHJcbiAgICAgIFwiRlJFRVwiOiBcIkdyYXRpc1wiLFxyXG4gICAgICBcIkZVTExZX0FMTE9DQVRFRFwiOiBcIlZvbGxlZGlnIHRvZWdld2V6ZW5cIixcclxuICAgICAgXCJGVUxMWV9DT05GSVJNRURcIjogXCJWb2xsZWRpZyBiZXZlc3RpZ2RcIixcclxuICAgICAgXCJGVUxMWV9ERUxJVkVSRURcIjogXCJWb2xsZWRpZyBnZWxldmVyZFwiLFxyXG4gICAgICBcIkZVTExZX1JFQ0VJVkVEX0RFTElWRVJFRFwiOiBcIlZvbGxlZGlnIGJpbm5lbmdlbWVsZCAvIGdlbGV2ZXJkXCIsXHJcbiAgICAgIFwiRlVMTFlfSU5WT0lDRURcIjogXCJWb2xsZWRpZyBnZWZhY3R1cmVlcmRcIixcclxuICAgICAgXCJGVUxMWV9UT19CRV9QSUNLRURcIjogXCJWb2xsZWRpZyB0ZSBwaWNrZW5cIixcclxuICAgICAgXCJGVUxMWV9QSUNLRURcIjogXCJWb2xsZWRpZyBnZXBpY2t0XCIsXHJcbiAgICAgIFwiR1JPU1NfUFJJQ0VcIjogXCJCcnV0byBwcmlqc1wiLFxyXG4gICAgICBcIkdPT0RfREVTQ1JJUFRJT05cIjogXCJBcnRpa2Vsb21zY2hyaWp2aW5nXCIsXHJcbiAgICAgIFwiSEFORExFRF9CWVwiOiBcIlZlcmtvcGVyXCIsXHJcbiAgICAgIFwiSE9VU0VfTk9cIjogXCJIdWlzbnVtbWVyXCIsXHJcbiAgICAgIFwiSE9VU0VfTk9fQURESVRJT05cIjogXCJIdWlzbnVtbWVyIHRvZXZvZWdpbmdcIixcclxuICAgICAgXCJJTlwiOiBcIkluXCIsXHJcbiAgICAgIFwiSU5BQ1RJVkVfVFJBTlNBQ1RJT05TXCI6IFwiSW5hY3RpZXZlIHRyYW5zYWN0aWVzXCIsXHJcbiAgICAgIFwiSU5DTFVESU5HX1JFVFVSTlNcIjogXCJJbmNsdXNpZWYgcmV0b3VyZW5cIixcclxuICAgICAgXCJJTl9TRUFSQ0hPUkRFUlNcIjogXCJJbiB2ZXJrb29wb3JkZXJzXCIsXHJcbiAgICAgIFwiSU5fT1JERVJcIjogXCJJbiBiZXN0ZWxsaW5nXCIsXHJcbiAgICAgIFwiSU5fT1VUX0NPTExFQ1RJT05cIjogXCJJbi11aXQtY29sbGVjdGllXCIsXHJcbiAgICAgIFwiSU5WSVRFX1RPX0FDQ09VTlRcIjogXCJVaXRub2RpZ2VuIHZvb3IgYWNjb3VudFwiLFxyXG4gICAgICBcIklOVk9JQ0VEXCI6IFwiR2VmYWN0dXJlZXJkXCIsXHJcbiAgICAgIFwiSU5WT0lDRVwiOiBcIkZhY3R1cmVyZW5cIixcclxuICAgICAgXCJJTlZPSUNFX0FERFJFU1NcIjogXCJGYWN0dXVyYWRyZXNcIixcclxuICAgICAgXCJJTlZPSUNFX0FERFJFU1NfQUREXCI6IFwiRmFjdHV1cmFkcmVzIHRvZXZvZWdlblwiLFxyXG4gICAgICBcIklOVk9JQ0VfQUREUkVTU19DSEFOR0VcIjogXCJGYWN0dXVyYWRyZXMgd2lqemlnZW5cIixcclxuICAgICAgXCJJTlZPSUNFX0NIRUNLXCI6IFwiRmFjdHV1cmNvbnRyb2xlXCIsXHJcbiAgICAgIFwiTEFTVF9FRElURURfREFURVwiOiBcIkRhdHVtIGxhYXRzdGUgd2lqemlnaW5nXCIsXHJcbiAgICAgIFwiTEFTVF9FRElURURfVVNFUlwiOiBcIkdlYnJ1aWtlciBsYWF0c3RlIHdpanppZ2luZ1wiLFxyXG4gICAgICBcIkxBU1RfTkFNRVwiOiBcIkFjaHRlcm5hYW1cIixcclxuICAgICAgXCJMSU5FX05FRURTX0NPTU1JU1NJT05fQ09ERVwiOiBcIkRlIGNvbW1pc2llY29kZSBvbnRicmVla3QuIFZ1bCBkZSBjb21taXNzaWVjb2RlIGluLlwiLFxyXG4gICAgICBcIkxPQ0FUSU9OXCI6IFwiTG9jYXRpZVwiLFxyXG4gICAgICBcIkxPR0lOXCI6IFwiSW5sb2dnZW5cIixcclxuICAgICAgXCJMT0dJTl9ERVRBSUxTXCI6IFwiSW5sb2dnZWdldmVuc1wiLFxyXG4gICAgICBcIkxPR0lTVElDU1wiOiBcIkxvZ2lzdGlla1wiLFxyXG4gICAgICBcIkxPR0lTVElDU19BTkRfUExBTk5JTkdcIjogXCJMb2dpc3RpZWsgJiBwbGFubmluZ1wiLFxyXG4gICAgICBcIk1BSU5fQVJUSUNMRVwiOiBcIkhvb2ZkIGFydGlrZWxcIixcclxuICAgICAgXCJNQUxFXCI6IFwiTWFuXCIsXHJcbiAgICAgIFwiTUFSS0VUSU5HXCI6IFwiTWFya2V0aW5nXCIsXHJcbiAgICAgIFwiTUFSS0VUSU5HX0NPREVcIjogXCJNYXJrZXRpbmdjb2RlXCIsXHJcbiAgICAgIFwiTUVOVVwiOiBcIk1lbnVcIixcclxuICAgICAgXCJNT0RJRklDQVRJT05fVElNRVwiOiBcIkJld2Vya2luZ3N0aWpkXCIsXHJcbiAgICAgIFwiTU9SRV9GSUxURVJTXCI6IFwiTWVlciBmaWx0ZXJzXCIsXHJcbiAgICAgIFwiTkFNRVwiOiBcIk5hYW1cIixcclxuICAgICAgXCJORVRfTElORV9UT1RBTFwiOiBcIlJlZ2VsdG90YWFsXCIsXHJcbiAgICAgIFwiTkVUVFwiOiBcIk5ldHRvXCIsXHJcbiAgICAgIFwiTkVUVE9fUFJJQ0VcIjogXCJOZXR0byBwcmlqc1wiLFxyXG4gICAgICBcIk5FV19BVFwiOiBcIk5pZXV3IGJpaiBcIixcclxuICAgICAgXCJORVdfTE9DQVRJT05cIjogXCJOaWV1d2UgbG9jYXRpZVwiLFxyXG4gICAgICBcIk5FWFRcIjogXCJWb2xnZW5kZVwiLFxyXG4gICAgICBcIk5PX0lNQUdFXCI6IFwiR2VlbiBhZmJlZWxkaW5nXCIsXHJcbiAgICAgIFwiTk9fUkVTVUxUU1wiOiBcIkdlZW4gcmVzdWx0YXRlblwiLFxyXG4gICAgICBcIk5PVF9BRlRFUlwiOiBcIk5pZXQgbGF0ZXIgZGFuXCIsXHJcbiAgICAgIFwiTk9UX0JFRk9SRVwiOiBcIk5pZXQgZWVyZGVyIGRhblwiLFxyXG4gICAgICBcIk5PVEhJTkdfQUxMT0NBVEVEXCI6IFwiTmlldHMgdG9lZ2V3ZXplblwiLFxyXG4gICAgICBcIk5PVEhJTkdfQ09ORklSTUVEXCI6IFwiTmlldHMgYmV2ZXN0aWdkXCIsXHJcbiAgICAgIFwiTk9USElOR19ERUxJVkVSRURcIjogXCJOaWV0cyBnZWxldmVyZFwiLFxyXG4gICAgICBcIk5PVEhJTkdfUkVDRUlWRURfREVMSVZFUkVEXCI6IFwiTmlldHMgYmlubmVuZ2VtZWxkIC8gZ2VsZXZlcmRcIixcclxuICAgICAgXCJOT1RISU5HX0lOVk9JQ0VEXCI6IFwiTmlldHMgZ2VmYWN0dXJlZXJkXCIsXHJcbiAgICAgIFwiTk9USElOR19UT19CRV9QSUNLRURcIjogXCJOaWV0cyB0ZSBwaWNrZW5cIixcclxuICAgICAgXCJOT1RISU5HX1BJQ0tFRFwiOiBcIk5pZXRzIGdlcGlja3RcIixcclxuICAgICAgXCJOUlwiOiBcIk51bW1lclwiLFxyXG4gICAgICBcIk5VTUJFUlwiOiBcIkFhbnRhbFwiLFxyXG4gICAgICBcIk9OX0RBVEVcIjogXCJPcCBkYXR1bVwiLFxyXG4gICAgICBcIk9OX0hPTERcIjogXCJHZXBhdXplZXJkXCIsXHJcbiAgICAgIFwiT1BFTl9TSE9QUElOR19DQVJUXCI6IFwiT3BlbiB3aW5rZWx3YWdlblwiLFxyXG4gICAgICBcIk9SREVSX0NPTkZJUk1BVElPTlNcIjogXCJCZXZlc3RpZ2luZ2VuXCIsXHJcbiAgICAgIFwiT1JERVJfREFURVwiOiBcIk9yZGVyZGF0dW1cIixcclxuICAgICAgXCJPUkRFUl9EQVRBXCI6IFwiT3JkZXJnZWdldmVuc1wiLFxyXG4gICAgICBcIk9SREVSX0RFRklOSVRJVkVcIjogXCJPcmRlciBkZWZpbml0aWVmXCIsXHJcbiAgICAgIFwiT1JERVJfR1JPU1NcIjogXCJPcmRlcnRvdGFhbCBicnV0b1wiLFxyXG4gICAgICBcIk9SREVSX0xJTkVTXCI6IFwiT3JkZXJyZWdlbHNcIixcclxuICAgICAgXCJPUkRFUl9ORVRcIjogXCJPcmRlcnRvdGFhbCBuZXR0b1wiLFxyXG4gICAgICBcIk9SREVSX05VTUJFUlwiOiBcIk9yZGVybnVtbWVyXCIsXHJcbiAgICAgIFwiT1JERVJfUEFSQU1FVEVSU1wiOiBcIk9yZGVycGFyYW1ldGVyc1wiLFxyXG4gICAgICBcIk9SREVSX1JVTEVcIjogXCJPcmRlcnJlZ2VsXCIsXHJcbiAgICAgIFwiT1JERVJfUlVMRVNFVFwiOiBcIk9yZGVycmVnZWxzZXRcIixcclxuICAgICAgXCJPUkRFUl9UT1RBTFwiOiBcIk9yZGVydG90YWFsXCIsXHJcbiAgICAgIFwiT1JERVJfVFlQRVwiOiBcIlR5cGUgYmVzdGVsbGluZ1wiLFxyXG4gICAgICBcIk9SREVSRURcIjogXCJCZXN0ZWxkXCIsXHJcbiAgICAgIFwiT1RIRVJcIjogXCJPdmVyaWdcIixcclxuICAgICAgXCJPVkVSVklFV19BTkRfUEFZTUVOVFwiOiBcIk92ZXJ6aWNodCBlbiBiZXRhbGluZ1wiLFxyXG4gICAgICBcIk9XTl9SRUZFUkVOQ0VcIjogXCJFaWdlbiByZWZlcmVudGllXCIsXHJcbiAgICAgIFwiUEFDS0lOR19TTElQXCI6IFwiUGFrYm9uXCIsXHJcbiAgICAgIFwiUEFJRF9ET1dOMlwiOiBcIkFhbmJldGFhbGRcIixcclxuICAgICAgXCJQQVJUX0RFTElWRVJZXCI6IFwiRGVlbGxldmVyaW5nXCIsXHJcbiAgICAgIFwiUEFSVF9ERUxJVkVSSUVTXCI6IFwiRGVlbGxldmVyaW5nZW5cIixcclxuICAgICAgXCJQQVJUTFlfQUxMT0NBVEVEXCI6IFwiR2VkZWVsdGVsaWprIHRvZWdld2V6ZW5cIixcclxuICAgICAgXCJQQVJUTFlfQ09ORklSTUVEXCI6IFwiR2VkZWVsdGVsaWprIGJldmVzdGlnZFwiLFxyXG4gICAgICBcIlBBUlRMWV9ERUxJVkVSRURcIjogXCJHZWRlZWx0ZWxpamsgZ2VsZXZlcmRcIixcclxuICAgICAgXCJQQVJUTFlfUkVDRUlWRURfREVMSVZFUkVEXCI6IFwiR2VkZWVsdGVsaWprIGJpbm5lbmdlbWVsZCAvIGdlbGV2ZXJkXCIsXHJcbiAgICAgIFwiUEFSVExZX0lOVk9JQ0VEXCI6IFwiR2VkZWVsdGVsaWprIGdlZmFjdHVyZWVyZFwiLFxyXG4gICAgICBcIlBBUlRMWV9UT19CRV9QSUNLRURcIjogXCJHZWRlZWx0ZWxpamsgdGUgcGlja2VuXCIsXHJcbiAgICAgIFwiUEFSVExZX1BJQ0tFRFwiOiBcIkdlZGVlbHRlbGlqayBnZXBpY2t0XCIsXHJcbiAgICAgIFwiUEFTU1dPUkRcIjogXCJXYWNodHdvb3JkXCIsXHJcbiAgICAgIFwiUEFZXCI6IFwiQmV0YWxlblwiLFxyXG4gICAgICBcIlBBWU1FTlRcIjogXCJCZXRhbGluZ1wiLFxyXG4gICAgICBcIlBBWU1FTlRfTUVUSE9EXCI6IFwiQmV0YWFsbWV0aG9kZVwiLFxyXG4gICAgICBcIlBFUlNPTkFMX0RBVEFcIjogXCJCYXNpc2dlZ2V2ZW5zXCIsXHJcbiAgICAgIFwiUElDS0VEXCI6IFwiR2VwaWNrdFwiLFxyXG4gICAgICBcIlBIT05FX05PXCI6IFwiVGVsZWZvb25udW1tZXJcIixcclxuICAgICAgXCJQSFlTSUNBTF9TVE9DS1wiOiBcIkZ5c2lla2Ugdm9vcnJhYWRcIixcclxuICAgICAgXCJQTEFOTklOR1wiOiBcIlBsYW5uaW5nXCIsXHJcbiAgICAgIFwiUE9TVEFMX0NPREVcIjogXCJQb3N0Y29kZVwiLFxyXG4gICAgICBcIlBSRUZFUlJFRF9EQVRFXCI6IFwiVm9vcmtldXJzZGF0dW1cIixcclxuICAgICAgXCJQUkVGSVhcIjogXCJUdXNzZW52b2Vnc2VsXCIsXHJcbiAgICAgIFwiUFJFVklPVVNcIjogXCJWb3JpZ2VcIixcclxuICAgICAgXCJQUklDRVwiOiBcIlByaWpzXCIsXHJcbiAgICAgIFwiUFJJQ0VfTElTVFwiOiBcIlByaWpzbGlqc3RcIixcclxuICAgICAgXCJQUklDSU5HXCI6IFwiUHJpanplblwiLFxyXG4gICAgICBcIlBSSVZBQ1lfUFJFRkVSRU5DRVNcIjogXCJQcml2YWN5dm9vcmtldXJlblwiLFxyXG4gICAgICBcIlBSSVZBVEVfUEVSU09OXCI6IFwiUGFydGljdWxpZXJcIixcclxuICAgICAgXCJQUk9EVUNUXCI6IFwiUHJvZHVjdFwiLFxyXG4gICAgICBcIlBST0RVQ1RfVFlQRVwiOiBcIlByb2R1Y3Rzb29ydFwiLFxyXG4gICAgICBcIlBVUkNIQVNFXCI6IFwiSW5rb29wXCIsXHJcbiAgICAgIFwiUFVSQ0hBU0VOVU1CRVJcIjogXCJJbmtvb3BudW1tZXJcIixcclxuICAgICAgXCJQVVJDSEFTRU9SREVSU1wiOiBcIklua29vcG9yZGVyc1wiLFxyXG4gICAgICBcIlBVUkNIQVNFX1BFUlNPTlwiOiBcIklua29wZXJcIixcclxuICAgICAgXCJRVUFOVElUWV9DQU5OT1RfQkVfWkVST19PUl9FTVBUWVwiOiBcIkhldCBhYW50YWwgbWFnIGdlZW4gMCB6aWpuLlwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9MRVNTX1RIQU5fREVMSVZFUkVEXCI6IFwiSGV0IGFhbnRhbCBtb2V0IGdlbGlqayB6aWpuIGFhbiBoZXQgZ2VsZXZlcmRlIGFhbnRhbFwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9NT1JFX1RIQU5fREVMSVZFUkVEXCI6IFwiSGV0IGFhbnRhbCBtb2V0IGdlbGlqayB6aWpuIGFhbiBoZXQgZ2VsZXZlcmRlIGFhbnRhbFwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9MRVNTX1RIQU5fSU5WT0lDRURcIjogXCJIZXQgYWFudGFsIG1vZXQgZ2VsaWprIHppam4gYWFuIGRlIGJlc3RlbGRlIHZvb3JyYWFkXCIsXHJcbiAgICAgIFwiUVVBTlRJVFlfQ0FOTk9UX0JFX01PUkVfVEhBTl9JTlZPSUNFRFwiOiBcIkhldCBhYW50YWwgbW9ldCBnZWxpamsgemlqbiBhYW4gZGUgYmVzdGVsZGUgdm9vcnJhYWRcIixcclxuICAgICAgXCJRVUFOVElUWV9DQU5OT1RfQkVfTEVTU19USEFOX0FMTE9DQVRFRFwiOiBcIkhldCBhYW50YWwgbW9ldCBnZWxpamsgemlqbiBhYW4gZGRlIHRvZWdld2V6ZW4gdm9vcnJhYWRcIixcclxuICAgICAgXCJRVUFOVElUWV9DQU5OT1RfQkVfTU9SRV9USEFOX0FMTE9DQVRFRFwiOiBcIkhldCBhYW50YWwgbW9ldCBnZWxpamsgemlqbiBhYW4gZGRlIHRvZWdld2V6ZW4gdm9vcnJhYWRcIixcclxuICAgICAgXCJRVUFOVElUWV9DQU5OT1RfQkVfTEVTU19USEFOX1JFQ0VJVkVEXCI6IFwiSGV0IGFhbnRhbCBtb2V0IGdlbGlqayB6aWpuIGFhbiBoZXQgYWFudGFsIG9udHZhbmdlbi5cIixcclxuICAgICAgXCJRVUFOVElUWV9DQU5OT1RfQkVfTU9SRV9USEFOX1JFQ0VJVkVEXCI6IFwiSGV0IGFhbnRhbCBtb2V0IGdlbGlqayB6aWpuIGFhbiBoZXQgYWFudGFsIG9udHZhbmdlblwiLFxyXG4gICAgICBcIlFVQU5UVU1fRElTQ09VTlRcIjogXCJLd2FudHVta29ydGluZ1wiLFxyXG4gICAgICBcIlJFQ0VJUFRfREVUQUlMU1wiOiBcIk9udHZhbmdzdCBkZXRhaWxzXCIsXHJcbiAgICAgIFwiUkVDRUlWRURcIjogXCJPbnR2YW5nc3RcIixcclxuICAgICAgXCJSRUNFSVZFRF9ERUxJVkVSRURcIjogXCJCaW5uZW5nZW1lbGQgLyBnZWxldmVyZFwiLFxyXG4gICAgICBcIlJFQ0VJVkVEX0RBVEVcIjogXCJPbnR2YW5nc3QgZGF0dW1cIixcclxuICAgICAgXCJSRUZFUkVOQ0VcIjogXCJSZWZlcmVudGllXCIsXHJcbiAgICAgIFwiUkVGRVJFTkNFX1JFTEFUSU9OXCI6IFwiUmVmLiByZWxhdGllXCIsXHJcbiAgICAgIFwiUkVMQVRJT05fTlVNQkVSXCI6IFwiUmVsYXRpZW51bW1lclwiLFxyXG4gICAgICBcIlJFTUFSS1NcIjogXCJPcG1lcmtpbmdlblwiLFxyXG4gICAgICBcIlJFUVVFU1RFRF9ERUxJVkVSWVwiOiBcIkdldnJhYWdkZSBsZXZlcmRhdHVtXCIsXHJcbiAgICAgIFwiU0FMVVRBVElPTlwiOiBcIkFhbmhlZlwiLFxyXG4gICAgICBcIlNBTEVTT1JERVJTXCI6IFwiVmVya29vcG9yZGVyc1wiLFxyXG4gICAgICBcIlNBTUVfQVNfREVMSVZFUllcIjogXCJIZXR6ZWxmZGUgYWxzIGJlem9yZ2FkcmVzXCIsXHJcbiAgICAgIFwiU0FWRVwiOiBcIk9wc2xhYW5cIixcclxuICAgICAgXCJTRUFSQ0hcIjogXCJab2VrZW5cIixcclxuICAgICAgXCJTRUFSQ0hfTlVNQkVSX0NVU1RPTUVSX09SX0RBVEVcIjogXCJab2VrZW4gb3AgbnVtbWVyLCBrbGFudCBvZiBkYXR1bVwiLFxyXG4gICAgICBcIlNFQVJDSF9JTl9DT0xMRUNUSU9OXCI6IFwiWm9layBiaW5uZW4gY29sbGVjdGllLi4uXCIsXHJcbiAgICAgIFwiU0VBUkNIX0FERF9BUlRJQ0xFXCI6IFwiWm9la2VuIGVuIHRvZXZvZWdlbiBhcnRpa2VsXCIsXHJcbiAgICAgIFwiU0VBUkNIX1dBUkVIT1VTRVwiOiBcIlpvZWsgbWFnYXppam5cIixcclxuICAgICAgXCJTRUxFQ1RcIjogXCJTZWxlY3RlcmVuXCIsXHJcbiAgICAgIFwiU0VMRUNUX0FcIjogXCJTZWxlY3RlZXIgZWVuXCIsXHJcbiAgICAgIFwiU0VMRUNUX0NBU0hfUkVHSVNURVJcIjogXCJTZWxlY3RlZXIga2Fzc2FcIixcclxuICAgICAgXCJTRUxFQ1RfREFURVwiOiBcIlNlbGVjdGVlciBlZW4gc3RhcnQtIGVuIGVpbmRkYXR1bVwiLFxyXG4gICAgICBcIlNFUklBTF9OVU1CRVJcIjogXCJTZXJpZW51bW1lclwiLFxyXG4gICAgICBcIlNFUlZJQ0VfTlVNQkVSXCI6IFwiU2VydmljZW51bW1lclwiLFxyXG4gICAgICBcIlNFUlZJQ0VfUkVRVUVTVF9EQVRFXCI6IFwiRGF0dW0gYWFudnJhYWdcIixcclxuICAgICAgXCJTRVJWSUNFX1NUQVRFXCI6IFwiU2VydmljZSBzdGF0dXNcIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUXCI6IFwiV2lua2Vsd2FnZW5cIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUX0NIRUNLT1VUXCI6IFwiQmVzdGVsbGVuXCIsXHJcbiAgICAgIFwiU0hPUFBJTkdfQ0FSVF9PVkVSVklFV1wiOiBcIk92ZXJ6aWNodCB2YW4gdXcgYmVzdGVsbGluZ1wiLFxyXG4gICAgICBcIlNIT1BQSU5HX0NBUlRfUkVTVU1FXCI6IFwiVmVyZGVyIHdpbmtlbGVuXCIsXHJcbiAgICAgIFwiU0hPV19NT1JFXCI6IFwiVG9vbiBtZWVyXCIsXHJcbiAgICAgIFwiU0hPV19MRVNTXCI6IFwiVG9vbiBtaW5kZXJcIixcclxuICAgICAgXCJTUEVDSUFMX0RJU0NPVU5UXCI6IFwiU3BlY2lhbGUga29ydGluZ1wiLFxyXG4gICAgICBcIlNPVVJDRV9XQVJFSE9VU0VcIjogXCJCcm9uIG1hZ2F6aWpuXCIsXHJcbiAgICAgIFwiU1RPQ0tcIjogXCJWb29ycmFhZFwiLFxyXG4gICAgICBcIlNUT0NLX05PVElGSUNBVElPTlwiOiBcIlZvb3JyYWFkbWVsZGluZ1wiLFxyXG4gICAgICBcIlNUT0NLX0FWQUlMQUJMRV9DSEFOR0VfV0FSRUhPVVNFX09SX0NPTU1JU1NJT05DT0RFXCI6IFwiRXIgaXMgdm9sZG9lbmRlIHZvb3JyYWFkLiBWZXJhbmRlciBtYWdhemlqbiBlbi9vZiBjb21taXNzaWVjb2RlXCIsXHJcbiAgICAgIFwiU1VCVE9UQUxcIjogXCJTdWJ0b3RhYWxcIixcclxuICAgICAgXCJTVUdHRVNUSU9OU1wiOiBcIlN1Z2dlc3RpZXNcIixcclxuICAgICAgXCJTVVBQTElFUlwiOiBcIkxldmVyYW5jaWVyXCIsXHJcbiAgICAgIFwiU1VSQ0hBUkdFX0FNT1VOVFwiOiBcIlRvZXNsYWdcIixcclxuICAgICAgXCJTVEFURVwiOiBcIlN0YXR1c1wiLFxyXG4gICAgICBcIlNUUkVFVFwiOiBcIlN0cmFhdG5hYW1cIixcclxuICAgICAgXCJUQUdTXCI6IFwiVGFnc1wiLFxyXG4gICAgICBcIlRFWFRfQVJUSUNMRV9CT1VORFwiOiBcIlRleHQgYmlqIGFydGlrZWwgfH5cIixcclxuICAgICAgXCJUT19SRVBPUlRfSU5cIjogJ0Jpbm5lbiB0ZSBtZWxkZW4nLFxyXG4gICAgICBcIlRPX0JFX1BJQ0tFRFwiOiBcIlRlIHBpY2tlblwiLFxyXG4gICAgICBcIlRPX0RFTElWRVJcIjogXCJUZSBsZXZlcmVuXCIsXHJcbiAgICAgIFwiVE9fUEFZXCI6IFwiVGUgYmV0YWxlblwiLFxyXG4gICAgICBcIlRPVEFMX0FNT1VOVFwiOiBcIlRvdGFhbGJlZHJhZ1wiLFxyXG4gICAgICBcIlRPVEFMX0FTU0VNQkxZX1RJTUVcIjogXCJUb3RhbGUgbW9udGFnZXRpamRcIixcclxuICAgICAgXCJUT1RBTF9HUk9TU1wiOiBcIlRvdGFhbCBicnV0b1wiLFxyXG4gICAgICBcIlRPVEFMX0xJTkVfRElTQ09VTlRcIjogXCJUb3RhbGUgcmVnZWxrb3J0aW5nXCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fREFURVwiOiBcIk9yZGVyZGF0dW1cIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9ESVNDT1VOVFwiOiBcIlRvdGFsZSB0cmFuc2FjdGllIGtvcnRpbmdcIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9ESVNDT1VOVF9QRVJDXCI6IFwiJSBUcmFucy4ga29ydGluZ1wiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX1BSSUNFX0RFQ0xBUkFUSU9OXCI6IFwiT3JkZXIgcHJpanN2ZXJrbGFyaW5nXCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fU1VNX0lcIjogXCJPcmRlcnRvdGFhbCBpbmNsLiBCVFdcIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9UT1RBTFwiOiBcIlRyYW5zYWN0aWUgdG90YWFsXCIsXHJcbiAgICAgIFwiVFJBTlNQT1JUXCI6IFwiVHJhbnNwb3J0XCIsXHJcbiAgICAgIFwiVFJBTlNQT1JUX0NPU1RcIjogXCJUcmFuc3BvcnRrb3N0ZW5cIixcclxuICAgICAgXCJUUkFOU1BPUlRfQ09TVF9MSU5FX1RPVEFMXCI6IFwiVHJhbnNwb3J0a29zdGVuIHJlZ2VsdG90YWFsXCIsXHJcbiAgICAgIFwiVFVSTk9WRVJfR1JPVVBcIjogXCJPbXpldGdyb2VwXCIsXHJcbiAgICAgIFwiVFlQRVwiOiBcIlNvb3J0XCIsXHJcbiAgICAgIFwiVU5LTk9XTlwiOiBcIk9uYmVrZW5kXCIsXHJcbiAgICAgIFwiVU5LTk9XTl9BRERSRVNTX0NIRUNLX0lUXCI6IFwiT25iZWtlbmQgYWRyZXNcIixcclxuICAgICAgXCJVU0VSXCI6IFwiR2VicnVpa2VyXCIsXHJcbiAgICAgIFwiVkFUXCI6IFwiQnR3XCIsXHJcbiAgICAgIFwiVkFUX0FNT1VOVFwiOiBcIkJUVy1iZWRyYWdcIixcclxuICAgICAgXCJWQUxVRVwiOiBcIldhYXJkZVwiLFxyXG4gICAgICBcIldIRVJFX0FSRV9ZT1VfTE9PS0lOR19GT1JcIjogXCJXYWFyIGJlbiBqZSBuYWFyIG9wIHpvZWs/XCIsXHJcbiAgICAgIFwiV0FSRUhPVVNFXCI6IFwiTWFnYXppam5cIixcclxuICAgICAgXCJZT1VSX0RBVEFcIjogXCJHZWdldmVuc1wiLFxyXG4gICAgICBcIlNUQU5EQVJEX1RFWFRTXCI6XCJTdGFuZGFhcmR0ZWtzdGVuXCIsXHJcbiAgICAgIFwiQVJUSUNMRV9CT1VORF9URVhUXCI6IFwiQXJ0aWtlbGdlYm9uZGVuIHRla3N0XCIsXHJcbiAgICAgIFwiRk9SX0RPQ1VNRU5UU1wiOiBcIkJlc3RlbWQgdm9vciBkb2N1bWVudGVuXCIsXHJcbiAgICAgIFwiQ0hBTkdFX0FSVElDTEVfVEVYVFwiOiBcIldpanppZ2VuIGFydGlrZWx0ZWtzdFwiLFxyXG4gICAgfSxcclxuICAgIFwiZGVcIjoge30sXHJcbiAgICBcImZyXCI6IHt9LFxyXG4gICAgXCJlblwiOiB7XHJcbiAgICAgIFwiQUNDT1VOVF9ERVRBSUxTXCI6IFwiQWNjb3VudCBkZXRhaWxzXCIsXHJcbiAgICAgIFwiQUNDT1VOVF9FWFBMQU5BVElPTlwiOiBcIkUtbWFpbGFkZHJlc3MgYW5kIHBhc3N3b3JkIGFyZSBuZWVkZWQgdG8gZ2FpbiBhY2Nlc3MgdG8gdGhlIGRhdGEuIFdlIGFsc28gbm90aWZ5IHlvdSBvbiB0aGlzIGUtbWFpbGFkZHJlc3MgYWJvdXQgdGhlIG9yZGVyIHN0YXR1c1wiLFxyXG4gICAgICBcIkFDVElWRVwiOiBcIkFjdGl2ZVwiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX0xJTkVfVVBcIjogXCJBZGQgYXJ0aWNsZSBsaW5lIHVwXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfTElORV9ET1dOXCI6IFwiQWRkIGFydGljbGUgbGluZSBkb3duXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfVEVYVF9MSU5FX1VQXCI6IFwiQWRkIHRleHQgbGluZSB1cFwiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX1RFWFRfTElORV9ET1dOXCI6IFwiQWRkIHRleHQgbGluZSBkb3duXCIsXHJcbiAgICAgIFwiQUREX0RFTElWRVJZX09QVElPTlwiOiBcIkFkZCBkZWxpdmVyeSBvcHRpb25cIixcclxuICAgICAgXCJBRERfRElTQ09VTlRTXCI6IFwiQWRkIGRpc2NvdW50XCIsXHJcbiAgICAgIFwiQUREX1JFRkVSRU5DRVwiOiBcIkFkZCByZWZlcmVuY2VcIixcclxuICAgICAgXCJBRERfUkVNQVJLXCI6IFwiQWRkIHJlbWFya1wiLFxyXG4gICAgICBcIkFERFJFU1NcIjogXCJBZGRyZXNzXCIsXHJcbiAgICAgIFwiQUREUkVTU0VTXCI6IFwiQWRkcmVzc2VzXCIsXHJcbiAgICAgIFwiQUREUkVTU19BRERcIjogXCJBZGQgYWRkcmVzc1wiLFxyXG4gICAgICBcIkFERFJFU1NfQ0hBTkdFXCI6IFwiQ2hhbmdlIGFkZHJlc3NcIixcclxuICAgICAgXCJBRE1JTklTVFJBVElWRV9NQU5BR0VSXCI6IFwiQWRtaW5pc3RyYXRpdmUgbWFuYWdlclwiLFxyXG4gICAgICBcIkFMTE9DQVRFRFwiOiBcIkFsbG9jYXRlZFwiLFxyXG4gICAgICBcIkFMV0FZU19TSE9XX0xPR0lTVElDU19QT1BVUFwiOiBcIkNoZWNrIHdhcmVob3VzZSBhbmQgY29tbWlzc2lvbmNvZGVcIixcclxuICAgICAgXCJBUlJJVkFMX0RBVEVcIjogXCJBcnJpdmFsIGRhdGVcIixcclxuICAgICAgXCJBUlRJQ0xFXCI6IFwiQXJ0aWNsZVwiLFxyXG4gICAgICBcIkFSVElDTEVfREVTQ1JJUFRJT05cIjogXCJBcnRpY2xlIGRlc2NyaXB0aW9uXCIsXHJcbiAgICAgIFwiQVJUSUNMRV9JTUFHRVwiOiBcIkFydGljbGUgaW1hZ2VcIixcclxuICAgICAgXCJBUlRJQ0xFX0lOX09VVF9DT0xMRUNUSU9OXCI6IFwiU3RhdHVzIG9mIGFydGljbGUgaXMgJ3x+Jy4gQXJlIHlvdSBzdXJlIHRvIHByb2NlZWQ/XCIsXHJcbiAgICAgIFwiQVJUSUNMRV9OUlwiOiBcIkFydGljbGUgbnVtYmVyXCIsXHJcbiAgICAgIFwiQVJUSUNMRV9OUl9TVVBQTElFUlwiOiBcIkFydGlrZWxuciBzdXBwbGllclwiLFxyXG4gICAgICBcIkFSVElDTEVfVU5LTk9XTlwiOiBcIkFydGljbGUgdW5rbm93blwiLFxyXG4gICAgICBcIkFTU0VNQkxZX0NPU1RTXCI6IFwiQXNzZW1ibHkgY29zdHNcIixcclxuICAgICAgXCJBU1NFTUJMWV9EQVRFXCI6IFwiQXNzZW1ibHkgZGF0ZVwiLFxyXG4gICAgICBcIkFTU0VNQkxZX1RJTUVcIjogXCJBc3NlbWJseSB0aW1lXCIsXHJcbiAgICAgIFwiQU1PVU5UXCI6IFwiQW1vdW50XCIsXHJcbiAgICAgIFwiQkFDS1wiOiBcIkJhY2tcIixcclxuICAgICAgXCJCQUxBTkNFXCI6IFwiQmFsYW5jZVwiLFxyXG4gICAgICBcIkJBVENIX05VTUJFUlwiOiBcIkJhdGNobnVtYmVyXCIsXHJcbiAgICAgIFwiQlJBTkNIXCI6IFwiQnJhbmNoXCIsXHJcbiAgICAgIFwiQlJBTkNIX05VTUJFUlwiOiBcIkJyYW5jaCBudW1iZXJcIixcclxuICAgICAgXCJCVVNJTkVTU19SVUxFX0RJU0NPVU5UXCI6IFwiQnVzaW5lc3MgcnVsZSBkaXNjb3VudFwiLFxyXG4gICAgICBcIkNBTkNFTFwiOiBcIkNhbmNlbFwiLFxyXG4gICAgICBcIkNBTk5PVF9DSEFOR0VfTkVHQVRJVkVfUVVBTlRJVFlcIjogXCJBIG5lZ2F0aXZlIHN1cHBseSBjYW5ub3QgYmUgY2hhbmdlZC5cIixcclxuICAgICAgXCJDQVJUXCI6IFwiQ2FydFwiLFxyXG4gICAgICBcIkNIQU5HRV9EQVRBXCI6IFwiQ2hhbmdlIGRhdGFcIixcclxuICAgICAgXCJDSEFSQUNURVJJU1RJQ19RVUVTVElPTlwiOiBcIkNoYXJhY3RlcmlzdGljIHF1ZXN0aW9uXCIsXHJcbiAgICAgIFwiQ0hFQ0tfV0FSRUhPVVNFX0FORF9DT01NSVNTSU9OQ09ERVwiOiBcIkNoZWNrIHdhcmVob3VzZSBhbmQgY29tbWlzc2lvbmNvZGVcIixcclxuICAgICAgXCJDSEVDS09VVF9GSU5JU0hcIjogXCJGaW5pc2ggY2hlY2tvdXRcIixcclxuICAgICAgXCJDSVRZXCI6IFwiQ2l0eVwiLFxyXG4gICAgICBcIkNMSUVOVF9EQVRBXCI6IFwiQ2xpZW50IGRhdGFcIixcclxuICAgICAgXCJDT01QQU5ZXCI6IFwiQ29tcGFueVwiLFxyXG4gICAgICBcIkNPTVBBTllfTkFNRVwiOiBcIkNvbXBhbnkgbmFtZVwiLFxyXG4gICAgICBcIkNPTU1JU1NJT05fQ09ERVwiOiBcIkNvbW1pc3Npb24gY29kZVwiLFxyXG4gICAgICBcIkNPTkZJUk1BVElPTlwiOiBcIkNvbmZpcm1hdGlvblwiLFxyXG4gICAgICBcIkNPTkZJUk1FRF9EQVRFXCI6IFwiQ29uZmlybWVkIGRhdGVcIixcclxuICAgICAgXCJDT05GSVJNRURfREVMSVZFUllfREFURVwiOiBcIkNvbmZpcm1lZCBkZWxpdmVyeSBkYXRlXCIsXHJcbiAgICAgIFwiQ09ORklSTUVEX1BSSUNFXCI6IFwiQ29uZmlybWVkIHByaWNlXCIsXHJcbiAgICAgIFwiQ09OVEFDVF9ERVRBSUxTXCI6IFwiQ29udGFjdGRldGFpbHNcIixcclxuICAgICAgXCJDT05USU5VRVwiOiBcIk5leHRcIixcclxuICAgICAgXCJDT05GSVJNRURcIjogXCJDb25maXJtZWRcIixcclxuICAgICAgXCJDT05USU5VRV9PUkRFUl9XSElMRV9TVE9DS19BVkFJTEFCTEVfUExFQVNFX0NPTkZJUk1cIjogXCJZb3UgaGF2ZSBjaG9zZW4gdG8gb3JkZXIgYXJ0aWNsZXMgd2hpbGUgc3RvY2sgaXMgc3RpbGwgYXZhaWxhYmxlLiBEbyB5b3Ugd2lzaCB0byBwcm9jZWVkP1wiLFxyXG4gICAgICBcIkNPTlRJTlVFX1dJVEhPVVRfQUNDT1VOVFwiOiBcIkNvbnRpbnVlIHdpdGhvdXQgYW4gYWNjb3VudFwiLFxyXG4gICAgICBcIkNPU1RTXCI6IFwiQ29zdHNcIixcclxuICAgICAgXCJDT1VOVFJZXCI6IFwiQ291bnRyeVwiLFxyXG4gICAgICBcIkNSRUFURV9BQ0NPVU5UXCI6IFwiQ3JlYXRlIGFuIGFjY291bnRcIixcclxuICAgICAgXCJDUkVBVEVfQUNDT1VOVF9JTl8yX01JTlwiOiBcIkNyZWF0ZSBhbiBhY2NvdW50IGluIDIgbWludXRlcy5cIixcclxuICAgICAgXCJDVVNUT01FUlwiOiBcIkN1c3RvbWVyXCIsXHJcbiAgICAgIFwiQ1VTVE9NRVJfR1JPVVBcIjogXCJDdXN0b21lcmdyb3VwXCIsXHJcbiAgICAgIFwiQ1VTVE9NRVJfTkFNRVwiOiBcIkN1c3RvbWVyIG5hbWVcIixcclxuICAgICAgXCJEQVRFXCI6IFwiRGF0ZVwiLFxyXG4gICAgICBcIkRBVEVfT0ZfQklSVEhcIjogXCJEYXRlIG9mIGJpcnRoXCIsXHJcbiAgICAgIFwiREVGSU5JVElWRVwiOiBcIkRlZmluaXRpdmVcIixcclxuICAgICAgXCJERUxFVEVcIjogXCJEZWxldGVcIixcclxuICAgICAgXCJERUxFVEVfVFJBTlNBQ1RJT05fTElORVwiOiBcIkRlbGV0ZSB0cmFuc2FjdGlvbiBsaW5lIHZlcndpamRlcmVuP1wiLFxyXG4gICAgICBcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FX0hJTlRcIjogXCJEZWxldGUgdHJhbnNhY3Rpb24gbGluZVwiLFxyXG4gICAgICBcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FX0ZBSUxFRFwiOiBcIkRlbGV0aW9uIG9mIHRyYW5zYWN0aW9uIGxpbmUgaGFzIGZhaWxlZFwiLFxyXG4gICAgICBcIkRFTElWRVJFRFwiOiBcIkRlbGl2ZXJlZFwiLFxyXG4gICAgICBcIkRFTElWRVJZXCI6IFwiRGVsaXZlcnlcIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTXCI6IFwiRGVsaXZlcnkgYWRkcmVzc1wiLFxyXG4gICAgICBcIkRFTElWRVJZX0FERFJFU1NfQUREXCI6IFwiQWRkIGRlbGl2ZXJ5IGFkZHJlc3NcIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTX0NIQU5HRVwiOiBcIkNoYW5nZSBkZWxpdmVyeSBhZGRyZXNzXCIsXHJcbiAgICAgIFwiREVMSVZFUllfQkFUQ0hcIjogXCJEZWxpdmVyeSBiYXRjaFwiLFxyXG4gICAgICBcIkRFTElWRVJZX0NPU1RTXCI6IFwiRGVsaXZlcnkgY29zdHNcIixcclxuICAgICAgXCJERUxJVkVSWV9EQVRBXCI6IFwiRGVsaXZlcnlkYXRhXCIsXHJcbiAgICAgIFwiREVMSVZFUllfREFURVwiOiBcIkRlbGl2ZXJ5IGRhdGVcIixcclxuICAgICAgXCJERUxJVkVSWV9EQVRFX0RFRklOSVRJVkVcIjogXCJEZWxpdmVyeSBkYXRlIGRlZmluaXRpdmVcIixcclxuICAgICAgXCJERUxJVkVSWV9EQVRFX0ZJTkFMXCI6IFwiRmluYWwgZGVsaXZlcnkgZGF0ZVwiLFxyXG4gICAgICBcIkRFTElWRVJZX0RJUkVDVFwiOiBcIkRpcmVjdCBkZWxpdmVyeVwiLFxyXG4gICAgICBcIkRFTElWRVJZX0xPQ0FUSU9OXCI6IFwiRGVsaXZlcnkgbG9jYXRpb25cIixcclxuICAgICAgXCJERUxJVkVSWV9OT1RFXCI6IFwiRGVsaXZlcnkgbm90ZVwiLFxyXG4gICAgICBcIkRFTElWRVJZX09QVElPTlNcIjogXCJEZWxpdmVyeSBvcHRpb25zXCIsXHJcbiAgICAgIFwiREVMSVZFUllfTUVUSE9EXCI6IFwiRGVsaXZlcnkgbWV0aG9kXCIsXHJcbiAgICAgIFwiREVMSVZFUllfTU9NRU5UXCI6IFwiRGVsaXZlcnkgbW9tZW50XCIsXHJcbiAgICAgIFwiREVMSVZFUllfT1BUQVJUSUNMRV9OUklPTlNcIjogXCJEZWxpdmVyeSBvcHRpb25zXCIsXHJcbiAgICAgIFwiREVMSVZFUllfVElNRV9QRVJJT0RcIjogXCJEZWxpdmVyeSB0aW1lIHBlcmlvZFwiLFxyXG4gICAgICBcIkRFU0NSSVBUSU9OXCI6IFwiRGVzY3JpcHRpb25cIixcclxuICAgICAgXCJERVRBSUxTXCI6IFwiRGV0YWlsc1wiLFxyXG4gICAgICBcIkRJU0NPVU5UXCI6IFwiRGlzY291bnRcIixcclxuICAgICAgXCJESVNDT1VOVFNcIjogXCJEaXNjb3VudHNcIixcclxuICAgICAgXCJESVNDT1VOVF9BTU9VTlRcIjogXCJEaXNjb3VudCBhbW91bnRcIixcclxuICAgICAgXCJESVNDT1VOVF9QRVJDRU5UQUdFXCI6IFwiRGlzY291bnQgJVwiLFxyXG4gICAgICBcIkRPV05QQVlNRU5UXCI6IFwiRG93bnBheW1lbnRcIixcclxuICAgICAgXCJET1dOUEFZTUVOVF9QRVJDRU5UQUdFXCI6IFwiUGVyY2VudGFnZSB0byBiZSBwYWlkXCIsXHJcbiAgICAgIFwiRE9XTlBBWU1FTlRfQU1PVU5UXCI6IFwiQW1vdW50IHRvIGJlIHBhaWRcIixcclxuICAgICAgXCJET1dOUEFZTUVOVF9CWV9CUlwiOiBcIkNhbGN1bGF0ZWQgYnkgQlJcIixcclxuICAgICAgXCJET1dOUEFZTUVOVF9PTl9ERUxJVkVSWVwiOiBcIk9uIGRlbGl2ZXJ5XCIsXHJcbiAgICAgIFwiRFJPUFNISVBNRU5UXCI6IFwiRHJvcHNoaXBtZW50XCIsXHJcbiAgICAgIFwiRURJVF9DQVJUXCI6IFwiRWRpdCBjYXJ0XCIsXHJcbiAgICAgIFwiRU1BSUxfQUREUkVTU1wiOiBcIkUtbWFpbGFkcmVzXCIsXHJcbiAgICAgIFwiRVhDRUVERU5DRV9DT0RFXCI6IFwiRXhjZWVkZW5jZSBjb2RlXCIsXHJcbiAgICAgIFwiRVhJU1RJTkdfQ1VTVE9NRVJTXCI6IFwiRXhpc3RpbmcgY3VzdG9tZXJzXCIsXHJcbiAgICAgIFwiRVhQRUNURURfREVMSVZFUllfREFURVwiOiBcIihFeHBlY3RlZCkgZGVsaXZlcnkgZGF0ZVwiLFxyXG4gICAgICBcIkVYUEVDVEVEX0RFTElWRVJZX1dFRUtcIjogXCIoRXhwZWN0ZWQpIGRlbGl2ZXJ5IHdlZWtcIixcclxuICAgICAgXCJGQUJSSUNBVElPTl9DT1NUXCI6IFwiRmFicmljYXRpb25jb3N0XCIsXHJcbiAgICAgIFwiRkFCUklDQVRJT05fQ09TVF9MSU5FX1RPVEFMXCI6IFwiRmFicmljYXRpb25jb3N0IGxpbmV0b3RhbFwiLFxyXG4gICAgICBcIkZFTUFMRVwiOiBcIkZlbWFsZVwiLFxyXG4gICAgICBcIkZJUlNUX05BTUVcIjogXCJGaXJzdCBuYW1lXCIsXHJcbiAgICAgIFwiRlJFRVwiOiBcIkZyZWVcIixcclxuICAgICAgXCJGVUxMWV9BTExPQ0FURURcIjogXCJGdWxseSBhbGxvY2F0ZWRcIixcclxuICAgICAgXCJGVUxMWV9DT05GSVJNRURcIjogXCJGdWxseSBjb25maXJtZWRcIixcclxuICAgICAgXCJGVUxMWV9ERUxJVkVSRURcIjogXCJGdWxseSBkZWxpdmVyZWRcIixcclxuICAgICAgXCJGVUxMWV9SRUNFSVZFRF9ERUxJVkVSRURcIjogXCJGdWxseSByZWNlaXZlZCAvIGRlbGl2ZXJlZFwiLFxyXG4gICAgICBcIkZVTExZX0lOVk9JQ0VEXCI6IFwiRnVsbHkgaW52b2ljZWRcIixcclxuICAgICAgXCJGVUxMWV9UT19CRV9QSUNLRURcIjogXCJGdWxseSB0byBiZSBwaWNrZWRcIixcclxuICAgICAgXCJGVUxMWV9QSUNLRURcIjogXCJGdWxseSBwaWNrZWRcIixcclxuICAgICAgXCJHT09EX0RFU0NSSVBUSU9OXCI6IFwiQXJ0aWNsZSBkZXNjcmlwdGlvblwiLFxyXG4gICAgICBcIkdST1NTX1BSSUNFXCI6IFwiR3Jvc3MgcHJpY2VcIixcclxuICAgICAgXCJIQU5ETEVEX0JZXCI6IFwiSGFuZGxlZCBieVwiLFxyXG4gICAgICBcIkhPVVNFX05PXCI6IFwiSG91c2VudW1iZXJcIixcclxuICAgICAgXCJIT1VTRV9OT19BRERJVElPTlwiOiBcIkhvdXNlbnVtYmVyIGFkZGl0aW9uXCIsXHJcbiAgICAgIFwiSU5cIjogXCJJblwiLFxyXG4gICAgICBcIklOQUNUSVZFX1RSQU5TQUNUSU9OU1wiOiBcIkluYWN0aWV2ZSB0cmFuc2FjdGllc1wiLFxyXG4gICAgICBcIklOQ0xVRElOR19SRVRVUk5TXCI6IFwiSW5jbHVkaW5nIHJldHVybnNcIixcclxuICAgICAgXCJJTl9TRUFSQ0hPUkRFUlNcIjogXCJJbiBzYWxlcyBvcmRlcnNcIixcclxuICAgICAgXCJJTl9PUkRFUlwiOiBcIkluIG9yZGVyXCIsXHJcbiAgICAgIFwiSU5fT1VUX0NPTExFQ1RJT05cIjogXCJJbi1vdXQtY29sbGVjdGlvblwiLFxyXG4gICAgICBcIklOVklURV9UT19BQ0NPVU5UXCI6IFwiSW52aXRlIGFjY291bnRcIixcclxuICAgICAgXCJJTlZPSUNFRFwiOiBcIkludm9pY2VkXCIsXHJcbiAgICAgIFwiSU5WT0lDRVwiOiBcIkludm9pY2VcIixcclxuICAgICAgXCJJTlZPSUNFX0FERFJFU1NcIjogXCJJbnZvaWNlIGFkZHJlc3NcIixcclxuICAgICAgXCJJTlZPSUNFX0FERFJFU1NfQUREXCI6IFwiQWRkIGludm9pY2UgYWRkcmVzc1wiLFxyXG4gICAgICBcIklOVk9JQ0VfQUREUkVTU19DSEFOR0VcIjogXCJDaGFuZ2UgaW52b2ljZSBhZGRyZXNzXCIsXHJcbiAgICAgIFwiSU5WT0lDRV9DSEVDS1wiOiBcIkludm9pY2UgY2hlY2tcIixcclxuICAgICAgXCJMQVNUX0VESVRFRF9EQVRFXCI6IFwiRGF0ZSBsYXN0IG11dGF0aW9uXCIsXHJcbiAgICAgIFwiTEFTVF9FRElURURfVVNFUlwiOiBcIlVzZXIgbGFzdCBtdXRhdGlvblwiLFxyXG4gICAgICBcIkxBU1RfTkFNRVwiOiBcIkxhc3QgbmFtZVwiLFxyXG4gICAgICBcIkxJTkVfTkVFRFNfQ09NTUlTU0lPTl9DT0RFXCI6IFwiTGluZSBuZWVkcyBhIGNvbW1pc3Npb24gY29kZVwiLFxyXG4gICAgICBcIkxPQ0FUSU9OXCI6IFwiTG9jYXRpb25cIixcclxuICAgICAgXCJMT0dJTlwiOiBcIkxvZ2luXCIsXHJcbiAgICAgIFwiTE9HSU5fREVUQUlMU1wiOiBcIkxvZ2luIGRldGFpbHNcIixcclxuICAgICAgXCJMT0dJU1RJQ1NcIjogXCJMb2dpc3RpY3NcIixcclxuICAgICAgXCJMT0dJU1RJQ1NfQU5EX1BMQU5OSU5HXCI6IFwiTG9naXN0aWNzICYgcGxhbm5pbmdcIixcclxuICAgICAgXCJNQUlOX0FSVElDTEVcIjogXCJNYWluIGFydGljbGVcIixcclxuICAgICAgXCJNQUxFXCI6IFwiTWFsZVwiLFxyXG4gICAgICBcIk1BUktFVElOR1wiOiBcIk1hcmtldGluZ1wiLFxyXG4gICAgICBcIk1BUktFVElOR19DT0RFXCI6IFwiTWFya2V0aW5nY29kZVwiLFxyXG4gICAgICBcIk1FTlVcIjogXCJNZW51XCIsXHJcbiAgICAgIFwiTU9ESUZJQ0FUSU9OX1RJTUVcIjogXCJNb2RpZmljYXRpb24gdGltZVwiLFxyXG4gICAgICBcIk1PUkVfRklMVEVSU1wiOiBcIk1vcmUgZmlsdGVyc1wiLFxyXG4gICAgICBcIk5BTUVcIjogXCJOYW1lXCIsXHJcbiAgICAgIFwiTkVUX0xJTkVfVE9UQUxcIjogXCJMaW5ldG90YWxcIixcclxuICAgICAgXCJORVRUXCI6IFwiTmV0XCIsXHJcbiAgICAgIFwiTkVUVE9fUFJJQ0VcIjogXCJOZXR0byBwcmljZVwiLFxyXG4gICAgICBcIk5FV19BVFwiOiBcIk5ldyBhdCBcIixcclxuICAgICAgXCJORVdfTE9DQVRJT05cIjogXCJOZXcgbG9jYXRpb25cIixcclxuICAgICAgXCJORVhUXCI6IFwiTmV4dFwiLFxyXG4gICAgICBcIk5PX0lNQUdFXCI6IFwiTm8gaW1hZ2UgYXZhaWxhYmxlXCIsXHJcbiAgICAgIFwiTk9fUkVTVUxUU1wiOiBcIk5vIHJlc3VsdHNcIixcclxuICAgICAgXCJOT1RfQUZURVJcIjogXCJOb3QgYWZ0ZXJcIixcclxuICAgICAgXCJOT1RfQkVGT1JFXCI6IFwiTm90IGJlZm9yZVwiLFxyXG4gICAgICBcIk5PVEhJTkdfQUxMT0NBVEVEXCI6IFwiTm90aGluZyBhbGxvY2F0ZWRcIixcclxuICAgICAgXCJOT1RISU5HX0NPTkZJUk1FRFwiOiBcIk5vdGhpbmcgY29uZmlybWVkXCIsXHJcbiAgICAgIFwiTk9USElOR19ERUxJVkVSRURcIjogXCJOb3RoaW5nIGRlbGl2ZXJlZFwiLFxyXG4gICAgICBcIk5PVEhJTkdfUkVDRUlWRURfREVMSVZFUkVEXCI6IFwiTm90aGluZyByZWNlaXZlZCAvIGRlbGl2ZXJlZFwiLFxyXG4gICAgICBcIk5PVEhJTkdfSU5WT0lDRURcIjogXCJOb3RoaW5nIGludm9pY2VkXCIsXHJcbiAgICAgIFwiTk9USElOR19UT19CRV9QSUNLRURcIjogXCJOb3RoaW5nIHRvIGJlIHBpY2tlZFwiLFxyXG4gICAgICBcIk5PVEhJTkdfUElDS0VEXCI6IFwiTm90aGluZyBwaWNrZWRcIixcclxuICAgICAgXCJOUlwiOiBcIk51bWJlclwiLFxyXG4gICAgICBcIk5VTUJFUlwiOiBcIkFtb3VudFwiLFxyXG4gICAgICBcIk9OX0RBVEVcIjogXCJPbiBkYXRlXCIsXHJcbiAgICAgIFwiT05fSE9MRFwiOiBcIk9uIGhvbGRcIixcclxuICAgICAgXCJPUEVOX1NIT1BQSU5HX0NBUlRcIjogXCJPcGVuIHNob3BwaW5nIGNhcnRcIixcclxuICAgICAgXCJPUkRFUl9DT05GSVJNQVRJT05TXCI6IFwiT3JkZXIgY29uZmlybWF0aW9uc1wiLFxyXG4gICAgICBcIk9SREVSX0RBVEVcIjogXCJPcmRlciBkYXRlXCIsXHJcbiAgICAgIFwiT1JERVJfREFUQVwiOiBcIk9yZGVyZGF0YVwiLFxyXG4gICAgICBcIk9SREVSX0RFRklOSVRJVkVcIjogXCJPcmRlciBkZWZpbml0aXZlXCIsXHJcbiAgICAgIFwiT1JERVJfR1JPU1NcIjogXCJUb3RhbCBncm9zcyBhbW91bnRcIixcclxuICAgICAgXCJPUkRFUl9MSU5FU1wiOiBcIk9yZGVybGluZXNcIixcclxuICAgICAgXCJPUkRFUl9ORVRcIjogXCJUb3RhbCBuZXQgYW1vdW50XCIsXHJcbiAgICAgIFwiT1JERVJfTlVNQkVSXCI6IFwiT3JkZXIgbnVtYmVyXCIsXHJcbiAgICAgIFwiT1JERVJfUEFSQU1FVEVSU1wiOiBcIk9yZGVyIHBhcmFtZXRlcnNcIixcclxuICAgICAgXCJPUkRFUl9SVUxFXCI6IFwiT3JkZXIgcnVsZVwiLFxyXG4gICAgICBcIk9SREVSX1JVTEVTRVRcIjogXCJPcmRlcnJ1bGVzZXRcIixcclxuICAgICAgXCJPUkRFUl9UT1RBQUxcIjogXCJPcmRlciB0b3RhbFwiLFxyXG4gICAgICBcIk9SREVSX1RZUEVcIjogXCJPcmRlciB0eXBlXCIsXHJcbiAgICAgIFwiT1JERVJFRFwiOiBcIk9yZGVyZWRcIixcclxuICAgICAgXCJPVEhFUlwiOiBcIk90aGVyXCIsXHJcbiAgICAgIFwiT1ZFUlZJRVdfQU5EX1BBWU1FTlRcIjogXCJPdmVydmlldyBhbmQgcGF5bWVudFwiLFxyXG4gICAgICBcIk9XTl9SRUZFUkVOQ0VcIjogXCJPd24gcmVmZXJlbmNlXCIsXHJcbiAgICAgIFwiUEFDS0lOR19TTElQXCI6IFwiUGFja2luZyBzbGlwXCIsXHJcbiAgICAgIFwiUEFJRF9ET1dOMlwiOiBcIlByZXBhaWRcIixcclxuICAgICAgXCJQQVJUX0RFTElWRVJZXCI6IFwiUGFydGlhbCBkZWxpdmVyeVwiLFxyXG4gICAgICBcIlBBUlRfREVMSVZFUklFU1wiOiBcIlBhcnRpYWwgZGVsaXZlcmllc1wiLFxyXG4gICAgICBcIlBBUlRMWV9BTExPQ0FURURcIjogXCJQYXJ0bHkgYWxsb2NhdGVkXCIsXHJcbiAgICAgIFwiUEFSVExZX0NPTkZJUk1FRFwiOiBcIlBhcnRseSBjb25maXJtZWRcIixcclxuICAgICAgXCJQQVJUTFlfREVMSVZFUkVEXCI6IFwiUGFydGx5IGRlbGl2ZXJlZFwiLFxyXG4gICAgICBcIlBBUlRMWV9SRUNFSVZFRF9ERUxJVkVSRURcIjogXCJQYXJ0bHkgcmVjZWl2ZWQgLyBkZWxpdmVyZWRcIixcclxuICAgICAgXCJQQVJUTFlfSU5WT0lDRURcIjogXCJQYXJ0bHkgaW52b2ljZWRcIixcclxuICAgICAgXCJQQVJUTFlfVE9fQkVfUElDS0VEXCI6IFwiUGFydGx5IHRvIGJlIHBpY2tlZFwiLFxyXG4gICAgICBcIlBBUlRMWV9QSUNLRURcIjogXCJQYXJ0bHkgcGlja2VkXCIsXHJcbiAgICAgIFwiUEFTU1dPUkRcIjogXCJQYXNzd29yZFwiLFxyXG4gICAgICBcIlBBWVwiOiBcIlBheVwiLFxyXG4gICAgICBcIlBBWU1FTlRcIjogXCJQYXltZW50XCIsXHJcbiAgICAgIFwiUEFZTUVOVF9NRVRIT0RcIjogXCJQYXltZW50IG1ldGhvZFwiLFxyXG4gICAgICBcIlBFUlNPTkFMX0RBVEFcIjogXCJQZXJzb25hbCBkYXRhXCIsXHJcbiAgICAgIFwiUEhPTkVfTk9cIjogXCJUZWxlcGhvbmUgbnVtYmVyXCIsXHJcbiAgICAgIFwiUExBTk5JTkdcIjogXCJQbGFubmluZ1wiLFxyXG4gICAgICBcIlBJQ0tFRFwiOiBcIlBpY2tlZFwiLFxyXG4gICAgICBcIlBPU1RBTF9DT0RFXCI6IFwicG9zdGFsIGNvZGVcIixcclxuICAgICAgXCJQUkVGRVJSRURfREFURVwiOiBcIlByZWZlcnJlZCBkYXRlXCIsXHJcbiAgICAgIFwiUFJFRklYXCI6IFwiUHJlZml4XCIsXHJcbiAgICAgIFwiUFJFVklPVVNcIjogXCJQcmV2aW91c1wiLFxyXG4gICAgICBcIlBSSUNFXCI6IFwiUHJpY2VcIixcclxuICAgICAgXCJQUklDRV9MSVNUXCI6IFwiUHJpY2VsaXN0XCIsXHJcbiAgICAgIFwiUFJJQ0lOR1wiOiBcIlByaWNpbmdcIixcclxuICAgICAgXCJQUklWQUNZX1BSRUZFUkVOQ0VTXCI6IFwiUHJpdmFjeSBwcmVmZXJlbmNlc1wiLFxyXG4gICAgICBcIlBSSVZBVEVfUEVSU09OXCI6IFwiUHJpdmF0ZVwiLFxyXG4gICAgICBcIlBST0RVQ1RcIjogXCJQcm9kdWN0XCIsXHJcbiAgICAgIFwiUFJPRFVDVF9UWVBFXCI6IFwiUHJvZHVjdCB0eXBlXCIsXHJcbiAgICAgIFwiUFVSQ0hBU0VcIjogXCJQdXJjaGFzZVwiLFxyXG4gICAgICBcIlBVUkNIQVNFTlVNQkVSXCI6IFwiUHVyY2hhc2UgbnVtYmVyXCIsXHJcbiAgICAgIFwiUFVSQ0hBU0VPUkRFUlNcIjogXCJQdXJjaGFzZSBvcmRlcnNcIixcclxuICAgICAgXCJQVVJDSEFTRV9QRVJTT05cIjogXCJQdXJjaGFzZSBwZXJzb25cIixcclxuICAgICAgXCJRVUFOVElUWV9DQU5OT1RfQkVfWkVST19PUl9FTVBUWVwiOiBcIlF1YW50aXR5IGNhbm5vdCBiZSB6ZXJvIG9yIGVtcHR5XCIsXHJcbiAgICAgIFwiUVVBTlRVTV9ESVNDT1VOVFwiOiBcIlF1YW50dW0gZGlzY291bnRcIixcclxuICAgICAgXCJSRUNFSVBUX0RFVEFJTFNcIjogXCJSZWNlaXB0IGRldGFpbHNcIixcclxuICAgICAgXCJSRUNFSVZFRFwiOiBcIlJlY2VpdmVkXCIsXHJcbiAgICAgIFwiUkVDRUlWRURfREFURVwiOiBcIlJlY2VpdmVkIGRhdGVcIixcclxuICAgICAgXCJSRUNFSVZFRF9ERUxJVkVSRURcIjogXCJSZWNlaXZlZCAvIGRlbGl2ZXJlZFwiLFxyXG4gICAgICBcIlJFRkVSRU5DRVwiOiBcIlJlZmVyZW5jZVwiLFxyXG4gICAgICBcIlJFRkVSRU5DRV9SRUxBVElPTlwiOiBcIlJlZi4gcmVsYXRpb25cIixcclxuICAgICAgXCJSRUxBVElPTl9OVU1CRVJcIjogXCJSZWxhdGlvbiBudW1iZXJcIixcclxuICAgICAgXCJSRU1BUktTXCI6IFwiUmVtYXJrc1wiLFxyXG4gICAgICBcIlJFUVVFU1RFRF9ERUxJVkVSWVwiOiBcIlJlcXVlc3RlZCBkZWxpdmVyeVwiLFxyXG4gICAgICBcIlNBTEVTT1JERVJTXCI6IFwiU2FsZXMgb3JkZXJzXCIsXHJcbiAgICAgIFwiU0FMVVRBVElPTlwiOiBcIlNhbHV0YXRpb25cIixcclxuICAgICAgXCJTQU1FX0FTX0RFTElWRVJZXCI6IFwiU2FtZSBhcyBkZWxpdmVyeSBhZGRyZXNzXCIsXHJcbiAgICAgIFwiU0FWRVwiOiBcIlNhdmVcIixcclxuICAgICAgXCJTRUFSQ0hcIjogXCJTZWFyY2hcIixcclxuICAgICAgXCJTRUFSQ0hfTlVNQkVSX0NVU1RPTUVSX09SX0RBVEVcIjogXCJTZWFyY2ggZm9yIG51bWJlciwgY3VzdG9tZXIgb3IgZGF0ZVwiLFxyXG4gICAgICBcIlNFQVJDSF9BRERfQVJUSUNMRVwiOiBcIlNlYXJjaCBhbmQgYWRkIGFydGljbGVcIixcclxuICAgICAgXCJTRUFSQ0hfSU5fQ09MTEVDVElPTlwiOiBcIlNlYXJjaCBpbiBjb2xsZWN0aW9uLi4uXCIsXHJcbiAgICAgIFwiU0VBUkNIX1dBUkVIT1VTRVwiOiBcIlNlYXJjaCB3YXJlaG91c2VcIixcclxuICAgICAgXCJTRUxFQ1RcIjogXCJTZWxlY3RcIixcclxuICAgICAgXCJTRUxFQ1RfQVwiOiBcIlNlbGVjdCBhXCIsXHJcbiAgICAgIFwiU0VMRUNUX0NBU0hfUkVHSVNURVJcIjogXCJTZWxlY3QgY2FzaCByZWdpc3RlclwiLFxyXG4gICAgICBcIlNFTEVDVF9EQVRFX1JBTkdFXCI6IFwiU2VsZWN0IGEgZGF0ZSByYW5nZVwiLFxyXG4gICAgICBcIlNFUklBTF9OVU1CRVJcIjogXCJTZXJpYWwgbnVtYmVyXCIsXHJcbiAgICAgIFwiU0VSVklDRV9OVU1CRVJcIjogXCJTZXJ2aWNlIG51bWJlclwiLFxyXG4gICAgICBcIlNFUlZJQ0VfUkVRVUVTVF9EQVRFXCI6IFwiU2VydmljZSByZXF1ZXN0IGRhdGFcIixcclxuICAgICAgXCJTRVJWSUNFX1NUQVRFXCI6IFwiU2VydmljZSBzdGF0ZVwiLFxyXG4gICAgICBcIlNIT1BQSU5HX0NBUlRcIjogXCJTaG9wcGluZyBjYXJ0XCIsXHJcbiAgICAgIFwiU0hPUFBJTkdfQ0FSVF9DSEVDS09VVFwiOiBcIkNoZWNrb3V0XCIsXHJcbiAgICAgIFwiU0hPUFBJTkdfQ0FSVF9PVkVSVklFV1wiOiBcIk9yZGVyIG92ZXJ2aWV3XCIsXHJcbiAgICAgIFwiU0hPUFBJTkdfQ0FSVF9SRVNVTUVcIjogXCJSZXN1bWUgc2hvcHBpbmdcIixcclxuICAgICAgXCJTSE9XX01PUkVcIjogXCJTaG93IG1vcmVcIixcclxuICAgICAgXCJTSE9XX0xFU1NcIjogXCJTaG93IGxlc3NcIixcclxuICAgICAgXCJTUEVDSUFMX0RJU0NPVU5UXCI6IFwiU3BlY2lhbCBkaXNjb3VudFwiLFxyXG4gICAgICBcIlNPVVJDRV9XQVJFSE9VU0VcIjogXCJTb3VyY2Ugd2FyZWhvdXNlXCIsXHJcbiAgICAgIFwiU1RPQ0tcIjogXCJTdG9ja1wiLFxyXG4gICAgICBcIlNUT0NLX05PVElGSUNBVElPTlwiOiBcIlN0b2NrIG5vdGlmaWNhdGlvblwiLFxyXG4gICAgICBcIlNUT0NLX0FWQUlMQUJMRV9DSEFOR0VfV0FSRUhPVVNFX09SX0NPTU1JU1NJT05DT0RFXCI6IFwiTm90IGVub3VnaCBzdXBwbHkuIENoYW5nZSB3YXJlaG91c2UgYW5kL29yIGNvbW1pc3Npb25jb2RlXCIsXHJcbiAgICAgIFwiU1VCVE9UQUxcIjogXCJTdWJ0b3RhbFwiLFxyXG4gICAgICBcIlNVR0dFU1RJT05TXCI6IFwiU3VnZ2VzdGlvbnNcIixcclxuICAgICAgXCJTVVBQTElFUlwiOiBcIlN1cHBsaWVyXCIsXHJcbiAgICAgIFwiU1VSQ0hBUkdFX0FNT1VOVFwiOiBcIlN1cmNoYXJnZVwiLFxyXG4gICAgICBcIlNUQVRFXCI6IFwiU1RBVFVTXCIsXHJcbiAgICAgIFwiU1RSRUVUXCI6IFwiU3RyZWV0bmFtZVwiLFxyXG4gICAgICBcIlRBR1NcIjogXCJUYWdzXCIsXHJcbiAgICAgIFwiVE9fUkVQT1JUX0lOXCI6ICdUbyByZXBvcnQgaW4nLFxyXG4gICAgICBcIlRPX0JFX1BJQ0tFRFwiOiBcIlRlIGJlIHBpY2tlZFwiLFxyXG4gICAgICBcIlRPX0RFTElWRVJcIjogXCJUbyBkZWxpdmVyXCIsXHJcbiAgICAgIFwiVE9fUEFZXCI6IFwiVG8gcGF5XCIsXHJcbiAgICAgIFwiVE9UQUxfQU1PVU5UXCI6IFwiVG90YWwgYW1vdW50XCIsXHJcbiAgICAgIFwiVE9UQUxfQVNTRU1CTFlfVElNRVwiOiBcIlRvdGFsIGFzc2VtYmx5IHRpbWVcIixcclxuICAgICAgXCJUT1RBTF9HUk9TU1wiOiBcIkdyb3NzIHRvdGFsXCIsXHJcbiAgICAgIFwiVE9UQUxfTElORV9ESVNDT1VOVFwiOiBcIlRvdGFsIGxpbmVkaXNjb3VudFwiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX0RBVEVcIjogXCJUcmFuc2FjdGlvbiBkYXRlXCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fRElTQ09VTlRcIjogXCJUb3RhbCB0cmFuc2FjdGlvbiBkaXNjb3VudFwiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX0RJU0NPVU5UX1BFUkNcIjogXCIlIFRyYW5zLiBkaXNjb3VudFwiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX1BSSUNFX0RFQ0xBUkFUSU9OXCI6IFwiVHJhbnNhY3Rpb24gcHJpY2UgZGVjbGFyYXRpb25cIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9TVU1fSVwiOiBcIk9yZGVydG90YWwgaW5jbCBWQVRcIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9UT1RBTFwiOiBcIlRyYW5zYWN0aW9uIHRvdGFsXCIsXHJcbiAgICAgIFwiVFJBTlNQT1JUXCI6IFwiVHJhbnNwb3J0XCIsXHJcbiAgICAgIFwiVFJBTlNQT1JUX0NPU1RcIjogXCJUcmFuc3BvcnRjb3N0c1wiLFxyXG4gICAgICBcIlRSQU5TUE9SVF9DT1NUX0xJTkVfVE9UQUxcIjogXCJUcmFuc3BvcnRjb3N0cyBsaW5ldG90YWxcIixcclxuICAgICAgXCJUVVJOT1ZFUl9HUk9VUFwiOiBcIlR1cm5vdmVyIGdyb3VwXCIsXHJcbiAgICAgIFwiVFlQRVwiOiBcIlR5cGVcIixcclxuICAgICAgXCJVTktOT1dOXCI6IFwidW5rbm93blwiLFxyXG4gICAgICBcIlVOS05PV05fQUREUkVTU19DSEVDS19JVFwiOiBcIlVua25vd24gYWRkcmVzc1wiLFxyXG4gICAgICBcIlVTRVJcIjogXCJVc2VyXCIsXHJcbiAgICAgIFwiVkFMVUVcIjogXCJWYWx1ZVwiLFxyXG4gICAgICBcIlZBVFwiOiBcIlZBVFwiLFxyXG4gICAgICBcIlZBVF9BTU9VTlRcIjogXCJWQVQgYW1vdW50XCIsXHJcbiAgICAgIFwiV0FSRUhPVVNFXCI6IFwiV2FyZWhvdXNlXCIsXHJcbiAgICAgIFwiV0hFUkVfQVJFX1lPVV9MT09LSU5HX0ZPUlwiOiBcIldoZXJlIGFyZSB5b3UgbG9va2luZyBmb3I/XCIsXHJcbiAgICAgIFwiWU9VUl9EQVRBXCI6IFwiWW91ciBkYXRhXCIsXHJcbiAgICAgIFwiU1RBTkRBUkRfVEVYVFNcIjpcIlN0YW5kYXJkIHRleHRzXCIsXHJcbiAgICAgIFwiQVJUSUNMRV9CT1VORF9URVhUXCI6IFwiQXJ0aWNsZSBib3VuZCB0ZXh0XCIsXHJcbiAgICAgIFwiRk9SX0RPQ1VNRU5UU1wiOiBcIlVzZWQgYXQgZG9jdW1lbnRzXCIsXHJcbiAgICAgIFwiQ0hBTkdFX0FSVElDTEVfVEVYVFwiOiBcIkNoYW5nZSBhcnRpY2xlIHRleHRcIixcclxuICAgIH0sXHJcbiAgfTtcclxufVxyXG4iXX0=
|
|
654
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5wcm9wZXJ0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9hc3NldHMvZGljdGlvbmFyeS90ZXh0LnByb3BlcnRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFVBQVU7SUFBdkI7UUFDUyxZQUFPLEdBQU87WUFDbkIsSUFBSSxFQUFFO2dCQUNKLGlCQUFpQixFQUFFLGlCQUFpQjtnQkFDcEMscUJBQXFCLEVBQUUsa0ZBQWtGO29CQUN2RywwRkFBMEY7Z0JBQzVGLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixxQkFBcUIsRUFBRSw4QkFBOEI7Z0JBQ3JELHVCQUF1QixFQUFFLDhCQUE4QjtnQkFDdkQsMEJBQTBCLEVBQUUsNEJBQTRCO2dCQUN4RCw0QkFBNEIsRUFBRSw0QkFBNEI7Z0JBQzFELHFCQUFxQixFQUFFLHlCQUF5QjtnQkFDaEQsZUFBZSxFQUFFLG1CQUFtQjtnQkFDcEMsZUFBZSxFQUFFLHFCQUFxQjtnQkFDdEMsWUFBWSxFQUFFLHdCQUF3QjtnQkFDdEMsU0FBUyxFQUFFLE9BQU87Z0JBQ2xCLFdBQVcsRUFBRSxVQUFVO2dCQUN2QixhQUFhLEVBQUUsaUJBQWlCO2dCQUNoQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7Z0JBQ2xDLHdCQUF3QixFQUFFLGtDQUFrQztnQkFDNUQsV0FBVyxFQUFFLFlBQVk7Z0JBQ3pCLDZCQUE2QixFQUFFLHNDQUFzQztnQkFDckUsY0FBYyxFQUFFLGVBQWU7Z0JBQy9CLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixxQkFBcUIsRUFBRSxxQkFBcUI7Z0JBQzVDLGVBQWUsRUFBRSxvQkFBb0I7Z0JBQ3JDLDJCQUEyQixFQUFFLGdFQUFnRTtnQkFDN0YsWUFBWSxFQUFFLGVBQWU7Z0JBQzdCLHFCQUFxQixFQUFFLHVCQUF1QjtnQkFDOUMsaUJBQWlCLEVBQUUsa0JBQWtCO2dCQUNyQyxnQkFBZ0IsRUFBRSxlQUFlO2dCQUNqQyxlQUFlLEVBQUUsY0FBYztnQkFDL0IsZUFBZSxFQUFFLGFBQWE7Z0JBQzlCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixpQkFBaUIsRUFBRSxZQUFZO2dCQUMvQixNQUFNLEVBQUUsT0FBTztnQkFDZixxQkFBcUIsRUFBRSwyQkFBMkI7Z0JBQ2xELFNBQVMsRUFBRSxPQUFPO2dCQUNsQixjQUFjLEVBQUUsYUFBYTtnQkFDN0IsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyx3QkFBd0IsRUFBRSx1QkFBdUI7Z0JBQ2pELFFBQVEsRUFBRSxXQUFXO2dCQUNyQixpQ0FBaUMsRUFBRSxtREFBbUQ7Z0JBQ3RGLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixhQUFhLEVBQUUsaUJBQWlCO2dCQUNoQyx5QkFBeUIsRUFBRSxjQUFjO2dCQUN6QyxvQ0FBb0MsRUFBRSx1Q0FBdUM7Z0JBQzdFLGlCQUFpQixFQUFFLHFCQUFxQjtnQkFDeEMsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsYUFBYSxFQUFFLGVBQWU7Z0JBQzlCLG9CQUFvQixFQUFFLGlCQUFpQjtnQkFDdkMsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLGNBQWMsRUFBRSxjQUFjO2dCQUM5QixpQkFBaUIsRUFBRSxjQUFjO2dCQUNqQyxXQUFXLEVBQUUsV0FBVztnQkFDeEIsY0FBYyxFQUFFLGFBQWE7Z0JBQzdCLGdCQUFnQixFQUFFLGtCQUFrQjtnQkFDcEMseUJBQXlCLEVBQUUsdUJBQXVCO2dCQUNsRCxpQkFBaUIsRUFBRSxrQkFBa0I7Z0JBQ3JDLGlCQUFpQixFQUFFLGlCQUFpQjtnQkFDcEMsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLHFEQUFxRCxFQUFFLDBHQUEwRztnQkFDakssMEJBQTBCLEVBQUUsd0JBQXdCO2dCQUNwRCxPQUFPLEVBQUUsUUFBUTtnQkFDakIsU0FBUyxFQUFFLE1BQU07Z0JBQ2pCLGdCQUFnQixFQUFFLHNCQUFzQjtnQkFDeEMseUJBQXlCLEVBQUUsd0NBQXdDO2dCQUNuRSxVQUFVLEVBQUUsT0FBTztnQkFDbkIsZ0JBQWdCLEVBQUUsWUFBWTtnQkFDOUIsZUFBZSxFQUFFLFdBQVc7Z0JBQzVCLE1BQU0sRUFBRSxPQUFPO2dCQUNmLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxZQUFZLEVBQUUsWUFBWTtnQkFDMUIsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLHlCQUF5QixFQUFFLGFBQWE7Z0JBQ3hDLDhCQUE4QixFQUFFLDZCQUE2QjtnQkFDN0QsZ0NBQWdDLEVBQUUsbURBQW1EO2dCQUNyRixrQ0FBa0MsRUFBRSxpREFBaUQ7Z0JBQ3JGLFdBQVcsRUFBRSxVQUFVO2dCQUN2QixVQUFVLEVBQUUsV0FBVztnQkFDdkIsa0JBQWtCLEVBQUUsY0FBYztnQkFDbEMsc0JBQXNCLEVBQUUsdUJBQXVCO2dCQUMvQyx5QkFBeUIsRUFBRSxzQkFBc0I7Z0JBQ2pELGdCQUFnQixFQUFFLFlBQVk7Z0JBQzlCLGdCQUFnQixFQUFFLGNBQWM7Z0JBQ2hDLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxlQUFlLEVBQUUsWUFBWTtnQkFDN0IsMEJBQTBCLEVBQUUsdUJBQXVCO2dCQUNuRCxxQkFBcUIsRUFBRSx3QkFBd0I7Z0JBQy9DLGlCQUFpQixFQUFFLGtCQUFrQjtnQkFDckMsc0JBQXNCLEVBQUUsaUJBQWlCO2dCQUN6QyxtQkFBbUIsRUFBRSxtQkFBbUI7Z0JBQ3hDLGVBQWUsRUFBRSxZQUFZO2dCQUM3QixrQkFBa0IsRUFBRSxhQUFhO2dCQUNqQyxpQkFBaUIsRUFBRSxjQUFjO2dCQUNqQyxpQkFBaUIsRUFBRSxhQUFhO2dCQUNoQyw0QkFBNEIsRUFBRSxjQUFjO2dCQUM1QyxzQkFBc0IsRUFBRSxXQUFXO2dCQUNuQyxhQUFhLEVBQUUsY0FBYztnQkFDN0IsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLFVBQVUsRUFBRSxTQUFTO2dCQUNyQixXQUFXLEVBQUUsV0FBVztnQkFDeEIsaUJBQWlCLEVBQUUsZ0JBQWdCO2dCQUNuQyxxQkFBcUIsRUFBRSxZQUFZO2dCQUNuQyxhQUFhLEVBQUUsYUFBYTtnQkFDNUIsd0JBQXdCLEVBQUUsa0JBQWtCO2dCQUM1QyxvQkFBb0IsRUFBRSx1QkFBdUI7Z0JBQzdDLG1CQUFtQixFQUFFLGtCQUFrQjtnQkFDdkMseUJBQXlCLEVBQUUsVUFBVTtnQkFDckMsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLGtCQUFrQixFQUFFLG1CQUFtQjtnQkFDdkMsV0FBVyxFQUFFLG9CQUFvQjtnQkFDakMsZUFBZSxFQUFFLGFBQWE7Z0JBQzlCLGlCQUFpQixFQUFFLGFBQWE7Z0JBQ2hDLG9CQUFvQixFQUFFLG1CQUFtQjtnQkFDekMsd0JBQXdCLEVBQUUsd0JBQXdCO2dCQUNsRCx3QkFBd0IsRUFBRSx1QkFBdUI7Z0JBQ2pELGtCQUFrQixFQUFFLGdCQUFnQjtnQkFDcEMsNkJBQTZCLEVBQUUsNEJBQTRCO2dCQUMzRCxRQUFRLEVBQUUsT0FBTztnQkFDakIsWUFBWSxFQUFFLFVBQVU7Z0JBQ3hCLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixpQkFBaUIsRUFBRSxxQkFBcUI7Z0JBQ3hDLGlCQUFpQixFQUFFLG9CQUFvQjtnQkFDdkMsaUJBQWlCLEVBQUUsbUJBQW1CO2dCQUN0QywwQkFBMEIsRUFBRSxrQ0FBa0M7Z0JBQzlELGdCQUFnQixFQUFFLHVCQUF1QjtnQkFDekMsb0JBQW9CLEVBQUUsb0JBQW9CO2dCQUMxQyxjQUFjLEVBQUUsa0JBQWtCO2dCQUNsQyxhQUFhLEVBQUUsYUFBYTtnQkFDNUIsa0JBQWtCLEVBQUUscUJBQXFCO2dCQUN6QyxZQUFZLEVBQUUsVUFBVTtnQkFDeEIsVUFBVSxFQUFFLFlBQVk7Z0JBQ3hCLG1CQUFtQixFQUFFLHVCQUF1QjtnQkFDNUMsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsdUJBQXVCLEVBQUUsdUJBQXVCO2dCQUNoRCxtQkFBbUIsRUFBRSxvQkFBb0I7Z0JBQ3pDLGlCQUFpQixFQUFFLGtCQUFrQjtnQkFDckMsVUFBVSxFQUFFLGVBQWU7Z0JBQzNCLG1CQUFtQixFQUFFLGtCQUFrQjtnQkFDdkMsbUJBQW1CLEVBQUUseUJBQXlCO2dCQUM5QyxVQUFVLEVBQUUsY0FBYztnQkFDMUIsU0FBUyxFQUFFLFlBQVk7Z0JBQ3ZCLGlCQUFpQixFQUFFLGNBQWM7Z0JBQ2pDLHFCQUFxQixFQUFFLHdCQUF3QjtnQkFDL0Msd0JBQXdCLEVBQUUsdUJBQXVCO2dCQUNqRCxlQUFlLEVBQUUsaUJBQWlCO2dCQUNsQyxrQkFBa0IsRUFBRSx5QkFBeUI7Z0JBQzdDLGtCQUFrQixFQUFFLDZCQUE2QjtnQkFDakQsV0FBVyxFQUFFLFlBQVk7Z0JBQ3pCLDRCQUE0QixFQUFFLHFEQUFxRDtnQkFDbkYsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixlQUFlLEVBQUUsZUFBZTtnQkFDaEMsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLHdCQUF3QixFQUFFLHNCQUFzQjtnQkFDaEQsY0FBYyxFQUFFLGVBQWU7Z0JBQy9CLE1BQU0sRUFBRSxLQUFLO2dCQUNiLFdBQVcsRUFBRSxXQUFXO2dCQUN4QixnQkFBZ0IsRUFBRSxlQUFlO2dCQUNqQyxNQUFNLEVBQUUsTUFBTTtnQkFDZCxtQkFBbUIsRUFBRSxnQkFBZ0I7Z0JBQ3JDLGNBQWMsRUFBRSxjQUFjO2dCQUM5QixNQUFNLEVBQUUsTUFBTTtnQkFDZCxnQkFBZ0IsRUFBRSxhQUFhO2dCQUMvQixNQUFNLEVBQUUsT0FBTztnQkFDZixhQUFhLEVBQUUsYUFBYTtnQkFDNUIsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLGNBQWMsRUFBRSxnQkFBZ0I7Z0JBQ2hDLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixVQUFVLEVBQUUsaUJBQWlCO2dCQUM3QixZQUFZLEVBQUUsaUJBQWlCO2dCQUMvQixXQUFXLEVBQUUsZ0JBQWdCO2dCQUM3QixZQUFZLEVBQUUsaUJBQWlCO2dCQUMvQixtQkFBbUIsRUFBRSxrQkFBa0I7Z0JBQ3ZDLG1CQUFtQixFQUFFLGlCQUFpQjtnQkFDdEMsbUJBQW1CLEVBQUUsZ0JBQWdCO2dCQUNyQyw0QkFBNEIsRUFBRSwrQkFBK0I7Z0JBQzdELGtCQUFrQixFQUFFLG9CQUFvQjtnQkFDeEMsc0JBQXNCLEVBQUUsaUJBQWlCO2dCQUN6QyxnQkFBZ0IsRUFBRSxlQUFlO2dCQUNqQyxJQUFJLEVBQUUsUUFBUTtnQkFDZCxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsU0FBUyxFQUFFLFVBQVU7Z0JBQ3JCLFNBQVMsRUFBRSxZQUFZO2dCQUN2QixvQkFBb0IsRUFBRSxrQkFBa0I7Z0JBQ3hDLHFCQUFxQixFQUFFLGVBQWU7Z0JBQ3RDLFlBQVksRUFBRSxZQUFZO2dCQUMxQixZQUFZLEVBQUUsZUFBZTtnQkFDN0Isa0JBQWtCLEVBQUUsa0JBQWtCO2dCQUN0QyxhQUFhLEVBQUUsbUJBQW1CO2dCQUNsQyxhQUFhLEVBQUUsYUFBYTtnQkFDNUIsV0FBVyxFQUFFLG1CQUFtQjtnQkFDaEMsY0FBYyxFQUFFLGFBQWE7Z0JBQzdCLGtCQUFrQixFQUFFLGlCQUFpQjtnQkFDckMsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxhQUFhLEVBQUUsYUFBYTtnQkFDNUIsWUFBWSxFQUFFLGlCQUFpQjtnQkFDL0IsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixVQUFVLEVBQUUsV0FBVztnQkFDdkIsc0JBQXNCLEVBQUUsdUJBQXVCO2dCQUMvQyxlQUFlLEVBQUUsa0JBQWtCO2dCQUNuQyxjQUFjLEVBQUUsUUFBUTtnQkFDeEIsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLGVBQWUsRUFBRSxjQUFjO2dCQUMvQixpQkFBaUIsRUFBRSxnQkFBZ0I7Z0JBQ25DLGtCQUFrQixFQUFFLHlCQUF5QjtnQkFDN0Msa0JBQWtCLEVBQUUsd0JBQXdCO2dCQUM1QyxrQkFBa0IsRUFBRSx1QkFBdUI7Z0JBQzNDLDJCQUEyQixFQUFFLHNDQUFzQztnQkFDbkUsaUJBQWlCLEVBQUUsMkJBQTJCO2dCQUM5QyxxQkFBcUIsRUFBRSx3QkFBd0I7Z0JBQy9DLGVBQWUsRUFBRSxzQkFBc0I7Z0JBQ3ZDLFVBQVUsRUFBRSxZQUFZO2dCQUN4QixLQUFLLEVBQUUsU0FBUztnQkFDaEIsU0FBUyxFQUFFLFVBQVU7Z0JBQ3JCLHFCQUFxQixFQUFFLGtCQUFrQjtnQkFDekMsZ0JBQWdCLEVBQUUsZUFBZTtnQkFDakMsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixVQUFVLEVBQUUsZ0JBQWdCO2dCQUM1QixnQkFBZ0IsRUFBRSxrQkFBa0I7Z0JBQ3BDLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixhQUFhLEVBQUUsVUFBVTtnQkFDekIsZ0JBQWdCLEVBQUUsZ0JBQWdCO2dCQUNsQyxRQUFRLEVBQUUsZUFBZTtnQkFDekIsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixZQUFZLEVBQUUsWUFBWTtnQkFDMUIsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLHFCQUFxQixFQUFFLG1CQUFtQjtnQkFDMUMsZ0JBQWdCLEVBQUUsYUFBYTtnQkFDL0IsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLGNBQWMsRUFBRSxjQUFjO2dCQUM5QixVQUFVLEVBQUUsUUFBUTtnQkFDcEIsZ0JBQWdCLEVBQUUsY0FBYztnQkFDaEMsZ0JBQWdCLEVBQUUsY0FBYztnQkFDaEMsaUJBQWlCLEVBQUUsU0FBUztnQkFDNUIsa0NBQWtDLEVBQUUsNkJBQTZCO2dCQUNqRSx3Q0FBd0MsRUFBRSxzREFBc0Q7Z0JBQ2hHLHdDQUF3QyxFQUFFLHNEQUFzRDtnQkFDaEcsdUNBQXVDLEVBQUUsc0RBQXNEO2dCQUMvRix1Q0FBdUMsRUFBRSxzREFBc0Q7Z0JBQy9GLHdDQUF3QyxFQUFFLHlEQUF5RDtnQkFDbkcsd0NBQXdDLEVBQUUseURBQXlEO2dCQUNuRyx1Q0FBdUMsRUFBRSx1REFBdUQ7Z0JBQ2hHLHVDQUF1QyxFQUFFLHNEQUFzRDtnQkFDL0Ysa0JBQWtCLEVBQUUsZ0JBQWdCO2dCQUNwQyxpQkFBaUIsRUFBRSxtQkFBbUI7Z0JBQ3RDLFVBQVUsRUFBRSxXQUFXO2dCQUN2QixvQkFBb0IsRUFBRSx5QkFBeUI7Z0JBQy9DLGVBQWUsRUFBRSxpQkFBaUI7Z0JBQ2xDLFdBQVcsRUFBRSxZQUFZO2dCQUN6QixvQkFBb0IsRUFBRSxjQUFjO2dCQUNwQyxpQkFBaUIsRUFBRSxlQUFlO2dCQUNsQyxTQUFTLEVBQUUsYUFBYTtnQkFDeEIsb0JBQW9CLEVBQUUsc0JBQXNCO2dCQUM1QyxZQUFZLEVBQUUsUUFBUTtnQkFDdEIsYUFBYSxFQUFFLGVBQWU7Z0JBQzlCLGtCQUFrQixFQUFFLDJCQUEyQjtnQkFDL0MsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixvQkFBb0IsRUFBRSw2QkFBNkI7Z0JBQ25ELHdCQUF3QixFQUFFLG1CQUFtQjtnQkFDN0Msc0JBQXNCLEVBQUUsMEJBQTBCO2dCQUNsRCxnQ0FBZ0MsRUFBRSxrQ0FBa0M7Z0JBQ3BFLFlBQVksRUFBRSxVQUFVO2dCQUN4QixrQkFBa0IsRUFBRSxlQUFlO2dCQUNuQyxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsVUFBVSxFQUFFLGVBQWU7Z0JBQzNCLHNCQUFzQixFQUFFLGlCQUFpQjtnQkFDekMsYUFBYSxFQUFFLG1DQUFtQztnQkFDbEQsZUFBZSxFQUFFLGFBQWE7Z0JBQzlCLGdCQUFnQixFQUFFLGVBQWU7Z0JBQ2pDLHNCQUFzQixFQUFFLGdCQUFnQjtnQkFDeEMsZUFBZSxFQUFFLGdCQUFnQjtnQkFDakMsZUFBZSxFQUFFLGFBQWE7Z0JBQzlCLHdCQUF3QixFQUFFLFdBQVc7Z0JBQ3JDLHdCQUF3QixFQUFFLDZCQUE2QjtnQkFDdkQsc0JBQXNCLEVBQUUsaUJBQWlCO2dCQUN6QyxXQUFXLEVBQUUsV0FBVztnQkFDeEIsV0FBVyxFQUFFLGFBQWE7Z0JBQzFCLGtCQUFrQixFQUFFLGtCQUFrQjtnQkFDdEMsa0JBQWtCLEVBQUUsZUFBZTtnQkFDbkMsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLG9CQUFvQixFQUFFLGlCQUFpQjtnQkFDdkMsb0RBQW9ELEVBQUUsaUVBQWlFO2dCQUN2SCxVQUFVLEVBQUUsV0FBVztnQkFDdkIsYUFBYSxFQUFFLFlBQVk7Z0JBQzNCLFVBQVUsRUFBRSxhQUFhO2dCQUN6QixrQkFBa0IsRUFBRSxTQUFTO2dCQUM3QixPQUFPLEVBQUUsUUFBUTtnQkFDakIsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLE1BQU0sRUFBRSxNQUFNO2dCQUNkLG9CQUFvQixFQUFFLHFCQUFxQjtnQkFDM0MsY0FBYyxFQUFFLGtCQUFrQjtnQkFDbEMsY0FBYyxFQUFFLFdBQVc7Z0JBQzNCLFlBQVksRUFBRSxZQUFZO2dCQUMxQixRQUFRLEVBQUUsWUFBWTtnQkFDdEIsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLHFCQUFxQixFQUFFLG9CQUFvQjtnQkFDM0MsYUFBYSxFQUFFLGNBQWM7Z0JBQzdCLHFCQUFxQixFQUFFLHFCQUFxQjtnQkFDNUMsa0JBQWtCLEVBQUUsWUFBWTtnQkFDaEMsc0JBQXNCLEVBQUUsMkJBQTJCO2dCQUNuRCwyQkFBMkIsRUFBRSxrQkFBa0I7Z0JBQy9DLCtCQUErQixFQUFFLHVCQUF1QjtnQkFDeEQsbUJBQW1CLEVBQUUsdUJBQXVCO2dCQUM1QyxtQkFBbUIsRUFBRSxtQkFBbUI7Z0JBQ3hDLFdBQVcsRUFBRSxXQUFXO2dCQUN4QixnQkFBZ0IsRUFBRSxpQkFBaUI7Z0JBQ25DLDJCQUEyQixFQUFFLDZCQUE2QjtnQkFDMUQsZ0JBQWdCLEVBQUUsWUFBWTtnQkFDOUIsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsU0FBUyxFQUFFLFVBQVU7Z0JBQ3JCLDBCQUEwQixFQUFFLGdCQUFnQjtnQkFDNUMsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLEtBQUssRUFBRSxLQUFLO2dCQUNaLE1BQU0sRUFBRSxLQUFLO2dCQUNiLFlBQVksRUFBRSxZQUFZO2dCQUMxQixPQUFPLEVBQUUsUUFBUTtnQkFDakIsMkJBQTJCLEVBQUUsMkJBQTJCO2dCQUN4RCxXQUFXLEVBQUUsVUFBVTtnQkFDdkIsV0FBVyxFQUFFLFVBQVU7Z0JBQ3ZCLGdCQUFnQixFQUFDLGtCQUFrQjtnQkFDbkMsb0JBQW9CLEVBQUUsdUJBQXVCO2dCQUM3QyxlQUFlLEVBQUUseUJBQXlCO2dCQUMxQyxxQkFBcUIsRUFBRSx1QkFBdUI7YUFDL0M7WUFDRCxJQUFJLEVBQUUsRUFBRTtZQUNSLElBQUksRUFBRSxFQUFFO1lBQ1IsSUFBSSxFQUFFO2dCQUNKLGlCQUFpQixFQUFFLGlCQUFpQjtnQkFDcEMscUJBQXFCLEVBQUUsbUlBQW1JO2dCQUMxSixRQUFRLEVBQUUsUUFBUTtnQkFDbEIscUJBQXFCLEVBQUUscUJBQXFCO2dCQUM1Qyx1QkFBdUIsRUFBRSx1QkFBdUI7Z0JBQ2hELDBCQUEwQixFQUFFLGtCQUFrQjtnQkFDOUMsNEJBQTRCLEVBQUUsb0JBQW9CO2dCQUNsRCxxQkFBcUIsRUFBRSxxQkFBcUI7Z0JBQzVDLGVBQWUsRUFBRSxjQUFjO2dCQUMvQixlQUFlLEVBQUUsZUFBZTtnQkFDaEMsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixXQUFXLEVBQUUsV0FBVztnQkFDeEIsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLGdCQUFnQixFQUFFLGdCQUFnQjtnQkFDbEMsd0JBQXdCLEVBQUUsd0JBQXdCO2dCQUNsRCxXQUFXLEVBQUUsV0FBVztnQkFDeEIsNkJBQTZCLEVBQUUsb0NBQW9DO2dCQUNuRSxjQUFjLEVBQUUsY0FBYztnQkFDOUIsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLHFCQUFxQixFQUFFLHFCQUFxQjtnQkFDNUMsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLDJCQUEyQixFQUFFLHFEQUFxRDtnQkFDbEYsWUFBWSxFQUFFLGdCQUFnQjtnQkFDOUIscUJBQXFCLEVBQUUsb0JBQW9CO2dCQUMzQyxpQkFBaUIsRUFBRSxpQkFBaUI7Z0JBQ3BDLGdCQUFnQixFQUFFLGdCQUFnQjtnQkFDbEMsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLGNBQWMsRUFBRSxhQUFhO2dCQUM3QixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLHdCQUF3QixFQUFFLHdCQUF3QjtnQkFDbEQsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLGlDQUFpQyxFQUFFLHNDQUFzQztnQkFDekUsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLHlCQUF5QixFQUFFLHlCQUF5QjtnQkFDcEQsb0NBQW9DLEVBQUUsb0NBQW9DO2dCQUMxRSxpQkFBaUIsRUFBRSxpQkFBaUI7Z0JBQ3BDLE1BQU0sRUFBRSxNQUFNO2dCQUNkLGFBQWEsRUFBRSxhQUFhO2dCQUM1QixvQkFBb0IsRUFBRSxvQkFBb0I7Z0JBQzFDLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixjQUFjLEVBQUUsY0FBYztnQkFDOUIsaUJBQWlCLEVBQUUsaUJBQWlCO2dCQUNwQyxjQUFjLEVBQUUsY0FBYztnQkFDOUIsZ0JBQWdCLEVBQUUsZ0JBQWdCO2dCQUNsQyx5QkFBeUIsRUFBRSx5QkFBeUI7Z0JBQ3BELGlCQUFpQixFQUFFLGlCQUFpQjtnQkFDcEMsaUJBQWlCLEVBQUUsZ0JBQWdCO2dCQUNuQyxVQUFVLEVBQUUsTUFBTTtnQkFDbEIsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLHFEQUFxRCxFQUFFLDJGQUEyRjtnQkFDbEosMEJBQTBCLEVBQUUsNkJBQTZCO2dCQUN6RCxPQUFPLEVBQUUsT0FBTztnQkFDaEIsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLGdCQUFnQixFQUFFLG1CQUFtQjtnQkFDckMseUJBQXlCLEVBQUUsaUNBQWlDO2dCQUM1RCxVQUFVLEVBQUUsVUFBVTtnQkFDdEIsZ0JBQWdCLEVBQUUsZUFBZTtnQkFDakMsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLE1BQU0sRUFBRSxNQUFNO2dCQUNkLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxZQUFZLEVBQUUsWUFBWTtnQkFDMUIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLHlCQUF5QixFQUFFLHNDQUFzQztnQkFDakUsOEJBQThCLEVBQUUseUJBQXlCO2dCQUN6RCxnQ0FBZ0MsRUFBRSx5Q0FBeUM7Z0JBQzNFLFdBQVcsRUFBRSxXQUFXO2dCQUN4QixVQUFVLEVBQUUsVUFBVTtnQkFDdEIsa0JBQWtCLEVBQUUsa0JBQWtCO2dCQUN0QyxzQkFBc0IsRUFBRSxzQkFBc0I7Z0JBQzlDLHlCQUF5QixFQUFFLHlCQUF5QjtnQkFDcEQsZ0JBQWdCLEVBQUUsZ0JBQWdCO2dCQUNsQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7Z0JBQ2xDLGVBQWUsRUFBRSxjQUFjO2dCQUMvQixlQUFlLEVBQUUsZUFBZTtnQkFDaEMsMEJBQTBCLEVBQUUsMEJBQTBCO2dCQUN0RCxxQkFBcUIsRUFBRSxxQkFBcUI7Z0JBQzVDLGlCQUFpQixFQUFFLGlCQUFpQjtnQkFDcEMsc0JBQXNCLEVBQUUsb0JBQW9CO2dCQUM1QyxtQkFBbUIsRUFBRSxtQkFBbUI7Z0JBQ3hDLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxrQkFBa0IsRUFBRSxrQkFBa0I7Z0JBQ3RDLGlCQUFpQixFQUFFLGlCQUFpQjtnQkFDcEMsaUJBQWlCLEVBQUUsaUJBQWlCO2dCQUNwQyw0QkFBNEIsRUFBRSxrQkFBa0I7Z0JBQ2hELHNCQUFzQixFQUFFLHNCQUFzQjtnQkFDOUMsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixVQUFVLEVBQUUsVUFBVTtnQkFDdEIsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLGlCQUFpQixFQUFFLGlCQUFpQjtnQkFDcEMscUJBQXFCLEVBQUUsWUFBWTtnQkFDbkMsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLHdCQUF3QixFQUFFLHVCQUF1QjtnQkFDakQsb0JBQW9CLEVBQUUsbUJBQW1CO2dCQUN6QyxtQkFBbUIsRUFBRSxrQkFBa0I7Z0JBQ3ZDLHlCQUF5QixFQUFFLGFBQWE7Z0JBQ3hDLGNBQWMsRUFBRSxjQUFjO2dCQUM5QixXQUFXLEVBQUUsV0FBVztnQkFDeEIsZUFBZSxFQUFFLGFBQWE7Z0JBQzlCLGlCQUFpQixFQUFFLGlCQUFpQjtnQkFDcEMsb0JBQW9CLEVBQUUsb0JBQW9CO2dCQUMxQyx3QkFBd0IsRUFBRSwwQkFBMEI7Z0JBQ3BELHdCQUF3QixFQUFFLDBCQUEwQjtnQkFDcEQsa0JBQWtCLEVBQUUsaUJBQWlCO2dCQUNyQyw2QkFBNkIsRUFBRSwyQkFBMkI7Z0JBQzFELFFBQVEsRUFBRSxRQUFRO2dCQUNsQixZQUFZLEVBQUUsWUFBWTtnQkFDMUIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsaUJBQWlCLEVBQUUsaUJBQWlCO2dCQUNwQyxpQkFBaUIsRUFBRSxpQkFBaUI7Z0JBQ3BDLGlCQUFpQixFQUFFLGlCQUFpQjtnQkFDcEMsMEJBQTBCLEVBQUUsNEJBQTRCO2dCQUN4RCxnQkFBZ0IsRUFBRSxnQkFBZ0I7Z0JBQ2xDLG9CQUFvQixFQUFFLG9CQUFvQjtnQkFDMUMsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLGtCQUFrQixFQUFFLHFCQUFxQjtnQkFDekMsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLFlBQVksRUFBRSxZQUFZO2dCQUMxQixVQUFVLEVBQUUsYUFBYTtnQkFDekIsbUJBQW1CLEVBQUUsc0JBQXNCO2dCQUMzQyxJQUFJLEVBQUUsSUFBSTtnQkFDVix1QkFBdUIsRUFBRSx1QkFBdUI7Z0JBQ2hELG1CQUFtQixFQUFFLG1CQUFtQjtnQkFDeEMsaUJBQWlCLEVBQUUsaUJBQWlCO2dCQUNwQyxVQUFVLEVBQUUsVUFBVTtnQkFDdEIsbUJBQW1CLEVBQUUsbUJBQW1CO2dCQUN4QyxtQkFBbUIsRUFBRSxnQkFBZ0I7Z0JBQ3JDLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixTQUFTLEVBQUUsU0FBUztnQkFDcEIsaUJBQWlCLEVBQUUsaUJBQWlCO2dCQUNwQyxxQkFBcUIsRUFBRSxxQkFBcUI7Z0JBQzVDLHdCQUF3QixFQUFFLHdCQUF3QjtnQkFDbEQsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLGtCQUFrQixFQUFFLG9CQUFvQjtnQkFDeEMsa0JBQWtCLEVBQUUsb0JBQW9CO2dCQUN4QyxXQUFXLEVBQUUsV0FBVztnQkFDeEIsNEJBQTRCLEVBQUUsOEJBQThCO2dCQUM1RCxVQUFVLEVBQUUsVUFBVTtnQkFDdEIsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxXQUFXLEVBQUUsV0FBVztnQkFDeEIsd0JBQXdCLEVBQUUsc0JBQXNCO2dCQUNoRCxjQUFjLEVBQUUsY0FBYztnQkFDOUIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLGdCQUFnQixFQUFFLGVBQWU7Z0JBQ2pDLE1BQU0sRUFBRSxNQUFNO2dCQUNkLG1CQUFtQixFQUFFLG1CQUFtQjtnQkFDeEMsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLE1BQU0sRUFBRSxNQUFNO2dCQUNkLGdCQUFnQixFQUFFLFdBQVc7Z0JBQzdCLE1BQU0sRUFBRSxLQUFLO2dCQUNiLGFBQWEsRUFBRSxhQUFhO2dCQUM1QixRQUFRLEVBQUUsU0FBUztnQkFDbkIsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLE1BQU0sRUFBRSxNQUFNO2dCQUNkLFVBQVUsRUFBRSxvQkFBb0I7Z0JBQ2hDLFlBQVksRUFBRSxZQUFZO2dCQUMxQixXQUFXLEVBQUUsV0FBVztnQkFDeEIsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLG1CQUFtQixFQUFFLG1CQUFtQjtnQkFDeEMsbUJBQW1CLEVBQUUsbUJBQW1CO2dCQUN4QyxtQkFBbUIsRUFBRSxtQkFBbUI7Z0JBQ3hDLDRCQUE0QixFQUFFLDhCQUE4QjtnQkFDNUQsa0JBQWtCLEVBQUUsa0JBQWtCO2dCQUN0QyxzQkFBc0IsRUFBRSxzQkFBc0I7Z0JBQzlDLGdCQUFnQixFQUFFLGdCQUFnQjtnQkFDbEMsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixTQUFTLEVBQUUsU0FBUztnQkFDcEIsb0JBQW9CLEVBQUUsb0JBQW9CO2dCQUMxQyxxQkFBcUIsRUFBRSxxQkFBcUI7Z0JBQzVDLFlBQVksRUFBRSxZQUFZO2dCQUMxQixZQUFZLEVBQUUsV0FBVztnQkFDekIsa0JBQWtCLEVBQUUsa0JBQWtCO2dCQUN0QyxhQUFhLEVBQUUsb0JBQW9CO2dCQUNuQyxhQUFhLEVBQUUsWUFBWTtnQkFDM0IsV0FBVyxFQUFFLGtCQUFrQjtnQkFDL0IsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLGtCQUFrQixFQUFFLGtCQUFrQjtnQkFDdEMsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLGVBQWUsRUFBRSxjQUFjO2dCQUMvQixjQUFjLEVBQUUsYUFBYTtnQkFDN0IsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixPQUFPLEVBQUUsT0FBTztnQkFDaEIsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLHNCQUFzQixFQUFFLHNCQUFzQjtnQkFDOUMsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLGNBQWMsRUFBRSxjQUFjO2dCQUM5QixZQUFZLEVBQUUsU0FBUztnQkFDdkIsZUFBZSxFQUFFLGtCQUFrQjtnQkFDbkMsaUJBQWlCLEVBQUUsb0JBQW9CO2dCQUN2QyxrQkFBa0IsRUFBRSxrQkFBa0I7Z0JBQ3RDLGtCQUFrQixFQUFFLGtCQUFrQjtnQkFDdEMsa0JBQWtCLEVBQUUsa0JBQWtCO2dCQUN0QywyQkFBMkIsRUFBRSw2QkFBNkI7Z0JBQzFELGlCQUFpQixFQUFFLGlCQUFpQjtnQkFDcEMscUJBQXFCLEVBQUUscUJBQXFCO2dCQUM1QyxlQUFlLEVBQUUsZUFBZTtnQkFDaEMsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLEtBQUssRUFBRSxLQUFLO2dCQUNaLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixxQkFBcUIsRUFBRSxxQkFBcUI7Z0JBQzVDLGdCQUFnQixFQUFFLGdCQUFnQjtnQkFDbEMsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLFVBQVUsRUFBRSxrQkFBa0I7Z0JBQzlCLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLGdCQUFnQixFQUFFLGdCQUFnQjtnQkFDbEMsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixPQUFPLEVBQUUsT0FBTztnQkFDaEIsWUFBWSxFQUFFLFdBQVc7Z0JBQ3pCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixxQkFBcUIsRUFBRSxxQkFBcUI7Z0JBQzVDLGdCQUFnQixFQUFFLFNBQVM7Z0JBQzNCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixjQUFjLEVBQUUsY0FBYztnQkFDOUIsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLGdCQUFnQixFQUFFLGlCQUFpQjtnQkFDbkMsZ0JBQWdCLEVBQUUsaUJBQWlCO2dCQUNuQyxpQkFBaUIsRUFBRSxpQkFBaUI7Z0JBQ3BDLGtDQUFrQyxFQUFFLGtDQUFrQztnQkFDdEUsa0JBQWtCLEVBQUUsa0JBQWtCO2dCQUN0QyxpQkFBaUIsRUFBRSxpQkFBaUI7Z0JBQ3BDLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixlQUFlLEVBQUUsZUFBZTtnQkFDaEMsb0JBQW9CLEVBQUUsc0JBQXNCO2dCQUM1QyxXQUFXLEVBQUUsV0FBVztnQkFDeEIsb0JBQW9CLEVBQUUsZUFBZTtnQkFDckMsaUJBQWlCLEVBQUUsaUJBQWlCO2dCQUNwQyxTQUFTLEVBQUUsU0FBUztnQkFDcEIsb0JBQW9CLEVBQUUsb0JBQW9CO2dCQUMxQyxhQUFhLEVBQUUsY0FBYztnQkFDN0IsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLGtCQUFrQixFQUFFLDBCQUEwQjtnQkFDOUMsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLG9CQUFvQixFQUFFLHdCQUF3QjtnQkFDOUMsd0JBQXdCLEVBQUUsdUJBQXVCO2dCQUNqRCxzQkFBc0IsRUFBRSx5QkFBeUI7Z0JBQ2pELGdDQUFnQyxFQUFFLHFDQUFxQztnQkFDdkUsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLGtCQUFrQixFQUFFLGtCQUFrQjtnQkFDdEMsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixzQkFBc0IsRUFBRSxzQkFBc0I7Z0JBQzlDLG1CQUFtQixFQUFFLHFCQUFxQjtnQkFDMUMsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLGdCQUFnQixFQUFFLGdCQUFnQjtnQkFDbEMsc0JBQXNCLEVBQUUsc0JBQXNCO2dCQUM5QyxlQUFlLEVBQUUsZUFBZTtnQkFDaEMsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLHdCQUF3QixFQUFFLFVBQVU7Z0JBQ3BDLHdCQUF3QixFQUFFLGdCQUFnQjtnQkFDMUMsc0JBQXNCLEVBQUUsaUJBQWlCO2dCQUN6QyxXQUFXLEVBQUUsV0FBVztnQkFDeEIsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLGtCQUFrQixFQUFFLGtCQUFrQjtnQkFDdEMsa0JBQWtCLEVBQUUsa0JBQWtCO2dCQUN0QyxPQUFPLEVBQUUsT0FBTztnQkFDaEIsb0JBQW9CLEVBQUUsb0JBQW9CO2dCQUMxQyxvREFBb0QsRUFBRSwyREFBMkQ7Z0JBQ2pILFVBQVUsRUFBRSxVQUFVO2dCQUN0QixhQUFhLEVBQUUsYUFBYTtnQkFDNUIsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLGtCQUFrQixFQUFFLFdBQVc7Z0JBQy9CLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixRQUFRLEVBQUUsWUFBWTtnQkFDdEIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLGNBQWMsRUFBRSxjQUFjO2dCQUM5QixZQUFZLEVBQUUsWUFBWTtnQkFDMUIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLGNBQWMsRUFBRSxjQUFjO2dCQUM5QixxQkFBcUIsRUFBRSxxQkFBcUI7Z0JBQzVDLGFBQWEsRUFBRSxhQUFhO2dCQUM1QixxQkFBcUIsRUFBRSxvQkFBb0I7Z0JBQzNDLGtCQUFrQixFQUFFLGtCQUFrQjtnQkFDdEMsc0JBQXNCLEVBQUUsNEJBQTRCO2dCQUNwRCwyQkFBMkIsRUFBRSxtQkFBbUI7Z0JBQ2hELCtCQUErQixFQUFFLCtCQUErQjtnQkFDaEUsbUJBQW1CLEVBQUUscUJBQXFCO2dCQUMxQyxtQkFBbUIsRUFBRSxtQkFBbUI7Z0JBQ3hDLFdBQVcsRUFBRSxXQUFXO2dCQUN4QixnQkFBZ0IsRUFBRSxnQkFBZ0I7Z0JBQ2xDLDJCQUEyQixFQUFFLDBCQUEwQjtnQkFDdkQsZ0JBQWdCLEVBQUUsZ0JBQWdCO2dCQUNsQyxNQUFNLEVBQUUsTUFBTTtnQkFDZCxTQUFTLEVBQUUsU0FBUztnQkFDcEIsMEJBQTBCLEVBQUUsaUJBQWlCO2dCQUM3QyxNQUFNLEVBQUUsTUFBTTtnQkFDZCxPQUFPLEVBQUUsT0FBTztnQkFDaEIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLFdBQVcsRUFBRSxXQUFXO2dCQUN4QiwyQkFBMkIsRUFBRSw0QkFBNEI7Z0JBQ3pELFdBQVcsRUFBRSxXQUFXO2dCQUN4QixnQkFBZ0IsRUFBQyxnQkFBZ0I7Z0JBQ2pDLG9CQUFvQixFQUFFLG9CQUFvQjtnQkFDMUMsZUFBZSxFQUFFLG1CQUFtQjtnQkFDcEMscUJBQXFCLEVBQUUscUJBQXFCO2FBQzdDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBEaWN0aW9uYXJ5IHtcclxuICBwdWJsaWMgc3RyaW5nczoge30gPSB7XHJcbiAgICBcIm5sXCI6IHtcclxuICAgICAgXCJBQ0NPVU5UX0RFVEFJTFNcIjogXCJBY2NvdW50Z2VnZXZlbnNcIixcclxuICAgICAgXCJBQ0NPVU5UX0VYUExBTkFUSU9OXCI6IFwiSGV0IGUtbWFpbGFkcmVzIGVuIHdhY2h0d29vcmQgemlqbiBub2RpZyBvbSB0b2VnYW5nIHRlIGtyaWpnZW4gdG90IGRlIGdlZ2V2ZW5zLiBcIiArXHJcbiAgICAgICAgXCJPb2sgenVsbGVuIHdlIGplIHZpYSBkaXQgZS1tYWlsYWRyZXMgb3AgZGUgaG9vZ3RlIGhvdWRlbiB2YW4gZGUgc3RhdHVzIHZhbiBiZXN0ZWxsaW5nZW4uXCIsXHJcbiAgICAgIFwiQUNUSVZFXCI6IFwiQWN0aWVmXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfTElORV9VUFwiOiBcIkFydGlrZWxyZWdlbCBib3ZlbiB0b2V2b2VnZW5cIixcclxuICAgICAgXCJBRERfQVJUSUNMRV9MSU5FX0RPV05cIjogXCJBcnRpa2VscmVnZWwgb25kZXIgdG9ldm9lZ2VuXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfVEVYVF9MSU5FX1VQXCI6IFwiVGVrc3RyZWdlbCBib3ZlbiB0b2V2b2VnZW5cIixcclxuICAgICAgXCJBRERfQVJUSUNMRV9URVhUX0xJTkVfRE9XTlwiOiBcIlRla3N0cmVnZWwgb25kZXIgdG9ldm9lZ2VuXCIsXHJcbiAgICAgIFwiQUREX0RFTElWRVJZX09QVElPTlwiOiBcIlZvZWcgZWVuIGxldmVyb3B0aWUgdG9lXCIsXHJcbiAgICAgIFwiQUREX0RJU0NPVU5UU1wiOiBcIktvcnRpbmcgdG9ldm9lZ2VuXCIsXHJcbiAgICAgIFwiQUREX1JFRkVSRU5DRVwiOiBcIlZvZWcgcmVmZXJlbnRpZSB0b2VcIixcclxuICAgICAgXCJBRERfUkVNQVJLXCI6IFwiVm9lZyBlZW4gb3BtZXJraW5nIHRvZVwiLFxyXG4gICAgICBcIkFERFJFU1NcIjogXCJBZHJlc1wiLFxyXG4gICAgICBcIkFERFJFU1NFU1wiOiBcIkFkcmVzc2VuXCIsXHJcbiAgICAgIFwiQUREUkVTU19BRERcIjogXCJBZHJlcyB0b2V2b2VnZW5cIixcclxuICAgICAgXCJBRERSRVNTX0NIQU5HRVwiOiBcIkFkcmVzIHdpanppZ2VuXCIsXHJcbiAgICAgIFwiQURNSU5JU1RSQVRJVkVfTUFOQUdFUlwiOiBcIkFkbWluaXN0cmF0aWVmIHZlcmFudHdvb3JkZWxpamtlXCIsXHJcbiAgICAgIFwiQUxMT0NBVEVEXCI6IFwiVG9lZ2V3ZXplblwiLFxyXG4gICAgICBcIkFMV0FZU19TSE9XX0xPR0lTVElDU19QT1BVUFwiOiBcIkNvbnRyb2xlZXIgbWFnYXppam4gZW4gY29tbWlzc2llY29kZVwiLFxyXG4gICAgICBcIkFSUklWQUxfREFURVwiOiBcIkFhbmtvbXN0ZGF0dW1cIixcclxuICAgICAgXCJBUlRJQ0xFXCI6IFwiQXJ0aWtlbFwiLFxyXG4gICAgICBcIkFSVElDTEVfREVTQ1JJUFRJT05cIjogXCJBcnRpa2Vsb21zY2hyaWp2aW5nXCIsXHJcbiAgICAgIFwiQVJUSUNMRV9JTUFHRVwiOiBcIkFydGlrZWwgYWZiZWVsZGluZ1wiLFxyXG4gICAgICBcIkFSVElDTEVfSU5fT1VUX0NPTExFQ1RJT05cIjogXCJTdGF0dXMgdmFuIGFydGlrZWwgaXMgJ3x+Jy4gV2VldCB1IHpla2VyIGRhdCB1IGRvb3Igd2lsdCBnYWFuP1wiLFxyXG4gICAgICBcIkFSVElDTEVfTlJcIjogXCJBcnRpa2VsbnVtbWVyXCIsXHJcbiAgICAgIFwiQVJUSUNMRV9OUl9TVVBQTElFUlwiOiBcIkFydGlrZWxuciBsZXZlcmFuY2llclwiLFxyXG4gICAgICBcIkFSVElDTEVfVU5LTk9XTlwiOiBcIk9uYmVrZW5kIGFydGlrZWxcIixcclxuICAgICAgXCJBU1NFTUJMWV9DT1NUU1wiOiBcIk1vbnRhZ2Vrb3N0ZW5cIixcclxuICAgICAgXCJBU1NFTUJMWV9EQVRFXCI6IFwiTW9udGFnZWRhdHVtXCIsXHJcbiAgICAgIFwiQVNTRU1CTFlfVElNRVwiOiBcIk1vbnRhZ2V0aWpkXCIsXHJcbiAgICAgIFwiQU1PVU5UXCI6IFwiQWFudGFsXCIsXHJcbiAgICAgIFwiQVZBSUxBQkxFX1NUT0NLXCI6IFwiQmVjaGlrYmFhclwiLFxyXG4gICAgICBcIkJBQ0tcIjogXCJUZXJ1Z1wiLFxyXG4gICAgICBcIkJBQ0tfVE9fU1RPQ0tfTElORVNcIjogXCJUZXJ1ZyBuYWFyIHZvb3JyYWFkcmVnZWxzXCIsXHJcbiAgICAgIFwiQkFMQU5DRVwiOiBcIlNhbGRvXCIsXHJcbiAgICAgIFwiQkFUQ0hfTlVNQkVSXCI6IFwiQmF0Y2hudW1tZXJcIixcclxuICAgICAgXCJCUkFOQ0hcIjogXCJGaWxpYWFsXCIsXHJcbiAgICAgIFwiQlJBTkNIX05VTUJFUlwiOiBcIkZpbGlhYWxudW1tZXJcIixcclxuICAgICAgXCJCVVNJTkVTU19SVUxFX0RJU0NPVU5UXCI6IFwiQnVzaW5lc3MgcnVsZSBrb3J0aW5nXCIsXHJcbiAgICAgIFwiQ0FOQ0VMXCI6IFwiQW5udWxlcmVuXCIsXHJcbiAgICAgIFwiQ0FOTk9UX0NIQU5HRV9ORUdBVElWRV9RVUFOVElUWVwiOiBcIkVlbiBuZWdhdGlldmUgdm9vcnJhYWQga2FuIG5pZXQgZ2V3aWp6aWdkIHdvcmRlbi5cIixcclxuICAgICAgXCJDQVJUXCI6IFwiV2lua2Vsd2FnZW5cIixcclxuICAgICAgXCJDSEFOR0VfREFUQVwiOiBcIldpanppZyBnZWdldmVuc1wiLFxyXG4gICAgICBcIkNIQVJBQ1RFUklTVElDX1FVRVNUSU9OXCI6IFwiS2VubWVya3ZyYWFnXCIsXHJcbiAgICAgIFwiQ0hFQ0tfV0FSRUhPVVNFX0FORF9DT01NSVNTSU9OQ09ERVwiOiBcIkNvbnRyb2xlZXIgbWFnYXppam4gZW4gY29tbWlzc2llY29kZS5cIixcclxuICAgICAgXCJDSEVDS09VVF9GSU5JU0hcIjogXCJCZXN0ZWxsaW5nIGFmcm9uZGVuXCIsXHJcbiAgICAgIFwiQ0lUWVwiOiBcIlN0YWRcIixcclxuICAgICAgXCJDTElFTlRfREFUQVwiOiBcIktsYW50Z2VnZXZlbnNcIixcclxuICAgICAgXCJDTElFTlRfSU5GT1JNQVRJT05cIjogXCJLbGFudGluZm9ybWF0aWVcIixcclxuICAgICAgXCJDT01QQU5ZXCI6IFwiQmVkcmlqZlwiLFxyXG4gICAgICBcIkNPTVBBTllfTkFNRVwiOiBcIkJlZHJpamZzbmFhbVwiLFxyXG4gICAgICBcIkNPTU1JU1NJT05fQ09ERVwiOiBcIkNvbW1pc2llY29kZVwiLFxyXG4gICAgICBcIkNPTkZJUk1FRFwiOiBcIkJldmVzdGlnZFwiLFxyXG4gICAgICBcIkNPTkZJUk1BVElPTlwiOiBcIkJldmVzdGlnaW5nXCIsXHJcbiAgICAgIFwiQ09ORklSTUVEX0RBVEVcIjogXCJCZXZlc3RpZ2RlIGRhdHVtXCIsXHJcbiAgICAgIFwiQ09ORklSTUVEX0RFTElWRVJZX0RBVEVcIjogXCJCZXZlc3RpZ2RlIGxldmVyZGF0dW1cIixcclxuICAgICAgXCJDT05GSVJNRURfUFJJQ0VcIjogXCJCZXZlc3RpZ2RlIHByaWpzXCIsXHJcbiAgICAgIFwiQ09OVEFDVF9ERVRBSUxTXCI6IFwiQ29udGFjdGdlZ2V2ZW5zXCIsXHJcbiAgICAgIFwiQ09OVElOVUVcIjogXCJWb2xnZW5kZVwiLFxyXG4gICAgICBcIkNPTlRJTlVFX09SREVSX1dISUxFX1NUT0NLX0FWQUlMQUJMRV9QTEVBU0VfQ09ORklSTVwiOiBcIlUgaGVlZnQgZ2Vrb3plbiB2b29yIGhldCBiZXN0ZWxsZW4gdmFuIGFydGlrZWxlbiB0ZXJ3aWpsIGVyIG5vZyB2b29ycmFhZCBhYW53ZXppZyBpcy4gV2lsdCB1IHZlcmRlcmdhYW4/XCIsXHJcbiAgICAgIFwiQ09OVElOVUVfV0lUSE9VVF9BQ0NPVU5UXCI6IFwiR2EgZG9vciB6b25kZXIgYWNjb3VudFwiLFxyXG4gICAgICBcIkNPU1RTXCI6IFwiS29zdGVuXCIsXHJcbiAgICAgIFwiQ09VTlRSWVwiOiBcIkxhbmRcIixcclxuICAgICAgXCJDUkVBVEVfQUNDT1VOVFwiOiBcIk1hYWsgZWVuIGFjY291bnQgYWFuXCIsXHJcbiAgICAgIFwiQ1JFQVRFX0FDQ09VTlRfSU5fMl9NSU5cIjogXCJNYWFrIGJpbm5lbiAyIG1pbnV0ZW4gZWVuIGFjY291bnQgYWFuLlwiLFxyXG4gICAgICBcIkNVU1RPTUVSXCI6IFwiS2xhbnRcIixcclxuICAgICAgXCJDVVNUT01FUl9HUk9VUFwiOiBcIktsYW50Z3JvZXBcIixcclxuICAgICAgXCJDVVNUT01FUl9OQU1FXCI6IFwiS2xhbnRuYWFtXCIsXHJcbiAgICAgIFwiREFURVwiOiBcIkRhdHVtXCIsXHJcbiAgICAgIFwiREFURV9PRl9CSVJUSFwiOiBcIkdlYm9vcnRlZGF0dW1cIixcclxuICAgICAgXCJERUZJTklUSVZFXCI6IFwiRGVmaW5pdGllZlwiLFxyXG4gICAgICBcIkRFTEVURVwiOiBcIlZlcndpamRlcmVuXCIsXHJcbiAgICAgIFwiREVMRVRFX1RSQU5TQUNUSU9OX0xJTkVcIjogXCJ2ZXJ3aWpkZXJlblwiLFxyXG4gICAgICBcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FX0hJTlRcIjogXCJWZXJ3aWpkZXJlbiB0cmFuc2FjdGllcmVnZWxcIixcclxuICAgICAgXCJERUxFVEVfVFJBTlNBQ1RJT05fTElORV9GQUlMRURcIjogXCJIZXQgdmVyd2lqZGVyZW4gdmFuIGRlIHRyYW5zYWN0aWVyZWdlbCBpcyBtaXNsdWt0XCIsXHJcbiAgICAgIFwiREVMRVRFX1RSQU5TQUNUSU9OX0xJTkVfUVVFU1RJT05cIjogXCJXZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSByZWdlbCB3aWx0IHZlcndpamRlcmVuP1wiLFxyXG4gICAgICBcIkRFTElWRVJFRFwiOiBcIkdlbGV2ZXJkXCIsXHJcbiAgICAgIFwiREVMSVZFUllcIjogXCJCZXpvcmdpbmdcIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTXCI6IFwiQWZsZXZlcmFkcmVzXCIsXHJcbiAgICAgIFwiREVMSVZFUllfQUREUkVTU19BRERcIjogXCJCZXpvcmdhZHJlcyB0b2V2b2VnZW5cIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTX0NIQU5HRVwiOiBcIkJlem9yZ2FkcmVzIHdpanppZ2VuXCIsXHJcbiAgICAgIFwiREVMSVZFUllfQkFUQ0hcIjogXCJMZXZlcmJhdGNoXCIsXHJcbiAgICAgIFwiREVMSVZFUllfQ09TVFNcIjogXCJCZXpvcmdrb3N0ZW5cIixcclxuICAgICAgXCJERUxJVkVSWV9EQVRBXCI6IFwiTGV2ZXJnZWdldmVuc1wiLFxyXG4gICAgICBcIkRFTElWRVJZX0RBVEVcIjogXCJMZXZlcmRhdHVtXCIsXHJcbiAgICAgIFwiREVMSVZFUllfREFURV9ERUZJTklUSVZFXCI6IFwiTGV2ZXJkYXR1bSBkZWZpbml0aWVmXCIsXHJcbiAgICAgIFwiREVMSVZFUllfREFURV9GSU5BTFwiOiBcIkRlZmluaXRpZXZlIGxldmVyZGF0dW1cIixcclxuICAgICAgXCJERUxJVkVSWV9ESVJFQ1RcIjogXCJEaXJlY3QgbGV2ZXJiYWFyXCIsXHJcbiAgICAgIFwiREVMSVZFUllfSU5GT1JNQVRJT05cIjogXCJMZXZlcmluZm9ybWF0aWVcIixcclxuICAgICAgXCJERUxJVkVSWV9MT0NBVElPTlwiOiBcIkJlem9yZ2luZ3Nsb2NhdGllXCIsXHJcbiAgICAgIFwiREVMSVZFUllfTk9URVwiOiBcIkFmbGV2ZXJib25cIixcclxuICAgICAgXCJERUxJVkVSWV9PUFRJT05TXCI6IFwiTGV2ZXJvcHRpZXNcIixcclxuICAgICAgXCJERUxJVkVSWV9NRVRIT0RcIjogXCJMZXZlcm1ldGhvZGVcIixcclxuICAgICAgXCJERUxJVkVSWV9NT01FTlRcIjogXCJMZXZlcm1vbWVudFwiLFxyXG4gICAgICBcIkRFTElWRVJZX09QVEFSVElDTEVfTlJJT05TXCI6IFwiQmV6b3Jnb3B0aWVzXCIsXHJcbiAgICAgIFwiREVMSVZFUllfVElNRV9QRVJJT0RcIjogXCJMZXZlcnRpamRcIixcclxuICAgICAgXCJERVNDUklQVElPTlwiOiBcIk9tc2NocmlqdmluZ1wiLFxyXG4gICAgICBcIkRFVEFJTFNcIjogXCJEZXRhaWxzXCIsXHJcbiAgICAgIFwiRElTQ09VTlRcIjogXCJLb3J0aW5nXCIsXHJcbiAgICAgIFwiRElTQ09VTlRTXCI6IFwiS29ydGluZ2VuXCIsXHJcbiAgICAgIFwiRElTQ09VTlRfQU1PVU5UXCI6IFwiS29ydGluZ3NiZWRyYWdcIixcclxuICAgICAgXCJESVNDT1VOVF9QRVJDRU5UQUdFXCI6IFwiS29ydGluZ3MgJVwiLFxyXG4gICAgICBcIkRPV05QQVlNRU5UXCI6IFwiQWFuYmV0YWxpbmdcIixcclxuICAgICAgXCJET1dOUEFZTUVOVF9QRVJDRU5UQUdFXCI6IFwiQWFuIHRlIGJldGFsZW4gJVwiLFxyXG4gICAgICBcIkRPV05QQVlNRU5UX0FNT1VOVFwiOiBcIkFhbiB0ZSBiZXRhbGVuIGJlZHJhZ1wiLFxyXG4gICAgICBcIkRPV05QQVlNRU5UX0JZX0JSXCI6IFwiQmVyZWtlbmQgZG9vciBCUlwiLFxyXG4gICAgICBcIkRPV05QQVlNRU5UX09OX0RFTElWRVJZXCI6IFwiUmVtYm91cnNcIixcclxuICAgICAgXCJEUk9QU0hJUE1FTlRcIjogXCJEcm9wc2hpcG1lbnRcIixcclxuICAgICAgXCJFQ09OT01JQ0FMX1NUT0NLXCI6IFwiTGF0ZXIgYmVzY2hpa2JhYXJcIixcclxuICAgICAgXCJFRElUX0NBUlRcIjogXCJXaWp6aWcgd2lua2Vsd2FnZW5cIixcclxuICAgICAgXCJFTUFJTF9BRERSRVNTXCI6IFwiRS1tYWlsYWRyZXNcIixcclxuICAgICAgXCJFWENFRURFTkNFX0NPREVcIjogXCJVaXRsb29wY29kZVwiLFxyXG4gICAgICBcIkVYSVNUSU5HX0NVU1RPTUVSU1wiOiBcIkJlc3RhYW5kZSBrbGFudGVuXCIsXHJcbiAgICAgIFwiRVhQRUNURURfREVMSVZFUllfREFURVwiOiBcIihWZXJ3YWNodGUpIGxldmVyZGF0dW1cIixcclxuICAgICAgXCJFWFBFQ1RFRF9ERUxJVkVSWV9XRUVLXCI6IFwiKFZlcndhY2h0ZSkgbGV2ZXJ3ZWVrXCIsXHJcbiAgICAgIFwiRkFCUklDQVRJT05fQ09TVFwiOiBcIkZhYnJpY2FnZXByaWpzXCIsXHJcbiAgICAgIFwiRkFCUklDQVRJT05fQ09TVF9MSU5FX1RPVEFMXCI6IFwiRmFicmljYWdlcHJpanMgcmVnZWx0b3RhYWxcIixcclxuICAgICAgXCJGRU1BTEVcIjogXCJWcm91d1wiLFxyXG4gICAgICBcIkZJUlNUX05BTUVcIjogXCJWb29ybmFhbVwiLFxyXG4gICAgICBcIkZSRUVcIjogXCJHcmF0aXNcIixcclxuICAgICAgXCJGVUxMWV9BTExPQ0FURURcIjogXCJWb2xsZWRpZyB0b2VnZXdlemVuXCIsXHJcbiAgICAgIFwiRlVMTFlfQ09ORklSTUVEXCI6IFwiVm9sbGVkaWcgYmV2ZXN0aWdkXCIsXHJcbiAgICAgIFwiRlVMTFlfREVMSVZFUkVEXCI6IFwiVm9sbGVkaWcgZ2VsZXZlcmRcIixcclxuICAgICAgXCJGVUxMWV9SRUNFSVZFRF9ERUxJVkVSRURcIjogXCJWb2xsZWRpZyBiaW5uZW5nZW1lbGQgLyBnZWxldmVyZFwiLFxyXG4gICAgICBcIkZVTExZX0lOVk9JQ0VEXCI6IFwiVm9sbGVkaWcgZ2VmYWN0dXJlZXJkXCIsXHJcbiAgICAgIFwiRlVMTFlfVE9fQkVfUElDS0VEXCI6IFwiVm9sbGVkaWcgdGUgcGlja2VuXCIsXHJcbiAgICAgIFwiRlVMTFlfUElDS0VEXCI6IFwiVm9sbGVkaWcgZ2VwaWNrdFwiLFxyXG4gICAgICBcIkdST1NTX1BSSUNFXCI6IFwiQnJ1dG8gcHJpanNcIixcclxuICAgICAgXCJHT09EX0RFU0NSSVBUSU9OXCI6IFwiQXJ0aWtlbG9tc2NocmlqdmluZ1wiLFxyXG4gICAgICBcIkhBTkRMRURfQllcIjogXCJWZXJrb3BlclwiLFxyXG4gICAgICBcIkhPVVNFX05PXCI6IFwiSHVpc251bW1lclwiLFxyXG4gICAgICBcIkhPVVNFX05PX0FERElUSU9OXCI6IFwiSHVpc251bW1lciB0b2V2b2VnaW5nXCIsXHJcbiAgICAgIFwiSU5cIjogXCJJblwiLFxyXG4gICAgICBcIklOQUNUSVZFX1RSQU5TQUNUSU9OU1wiOiBcIkluYWN0aWV2ZSB0cmFuc2FjdGllc1wiLFxyXG4gICAgICBcIklOQ0xVRElOR19SRVRVUk5TXCI6IFwiSW5jbHVzaWVmIHJldG91cmVuXCIsXHJcbiAgICAgIFwiSU5fU0VBUkNIT1JERVJTXCI6IFwiSW4gdmVya29vcG9yZGVyc1wiLFxyXG4gICAgICBcIklOX09SREVSXCI6IFwiSW4gYmVzdGVsbGluZ1wiLFxyXG4gICAgICBcIklOX09VVF9DT0xMRUNUSU9OXCI6IFwiSW4tdWl0LWNvbGxlY3RpZVwiLFxyXG4gICAgICBcIklOVklURV9UT19BQ0NPVU5UXCI6IFwiVWl0bm9kaWdlbiB2b29yIGFjY291bnRcIixcclxuICAgICAgXCJJTlZPSUNFRFwiOiBcIkdlZmFjdHVyZWVyZFwiLFxyXG4gICAgICBcIklOVk9JQ0VcIjogXCJGYWN0dXJlcmVuXCIsXHJcbiAgICAgIFwiSU5WT0lDRV9BRERSRVNTXCI6IFwiRmFjdHV1cmFkcmVzXCIsXHJcbiAgICAgIFwiSU5WT0lDRV9BRERSRVNTX0FERFwiOiBcIkZhY3R1dXJhZHJlcyB0b2V2b2VnZW5cIixcclxuICAgICAgXCJJTlZPSUNFX0FERFJFU1NfQ0hBTkdFXCI6IFwiRmFjdHV1cmFkcmVzIHdpanppZ2VuXCIsXHJcbiAgICAgIFwiSU5WT0lDRV9DSEVDS1wiOiBcIkZhY3R1dXJjb250cm9sZVwiLFxyXG4gICAgICBcIkxBU1RfRURJVEVEX0RBVEVcIjogXCJEYXR1bSBsYWF0c3RlIHdpanppZ2luZ1wiLFxyXG4gICAgICBcIkxBU1RfRURJVEVEX1VTRVJcIjogXCJHZWJydWlrZXIgbGFhdHN0ZSB3aWp6aWdpbmdcIixcclxuICAgICAgXCJMQVNUX05BTUVcIjogXCJBY2h0ZXJuYWFtXCIsXHJcbiAgICAgIFwiTElORV9ORUVEU19DT01NSVNTSU9OX0NPREVcIjogXCJEZSBjb21taXNpZWNvZGUgb250YnJlZWt0LiBWdWwgZGUgY29tbWlzc2llY29kZSBpbi5cIixcclxuICAgICAgXCJMT0NBVElPTlwiOiBcIkxvY2F0aWVcIixcclxuICAgICAgXCJMT0dJTlwiOiBcIklubG9nZ2VuXCIsXHJcbiAgICAgIFwiTE9HSU5fREVUQUlMU1wiOiBcIklubG9nZ2VnZXZlbnNcIixcclxuICAgICAgXCJMT0dJU1RJQ1NcIjogXCJMb2dpc3RpZWtcIixcclxuICAgICAgXCJMT0dJU1RJQ1NfQU5EX1BMQU5OSU5HXCI6IFwiTG9naXN0aWVrICYgcGxhbm5pbmdcIixcclxuICAgICAgXCJNQUlOX0FSVElDTEVcIjogXCJIb29mZCBhcnRpa2VsXCIsXHJcbiAgICAgIFwiTUFMRVwiOiBcIk1hblwiLFxyXG4gICAgICBcIk1BUktFVElOR1wiOiBcIk1hcmtldGluZ1wiLFxyXG4gICAgICBcIk1BUktFVElOR19DT0RFXCI6IFwiTWFya2V0aW5nY29kZVwiLFxyXG4gICAgICBcIk1FTlVcIjogXCJNZW51XCIsXHJcbiAgICAgIFwiTU9ESUZJQ0FUSU9OX1RJTUVcIjogXCJCZXdlcmtpbmdzdGlqZFwiLFxyXG4gICAgICBcIk1PUkVfRklMVEVSU1wiOiBcIk1lZXIgZmlsdGVyc1wiLFxyXG4gICAgICBcIk5BTUVcIjogXCJOYWFtXCIsXHJcbiAgICAgIFwiTkVUX0xJTkVfVE9UQUxcIjogXCJSZWdlbHRvdGFhbFwiLFxyXG4gICAgICBcIk5FVFRcIjogXCJOZXR0b1wiLFxyXG4gICAgICBcIk5FVFRPX1BSSUNFXCI6IFwiTmV0dG8gcHJpanNcIixcclxuICAgICAgXCJORVdfQVRcIjogXCJOaWV1dyBiaWogXCIsXHJcbiAgICAgIFwiTkVXX0xPQ0FUSU9OXCI6IFwiTmlldXdlIGxvY2F0aWVcIixcclxuICAgICAgXCJORVhUXCI6IFwiVm9sZ2VuZGVcIixcclxuICAgICAgXCJOT19JTUFHRVwiOiBcIkdlZW4gYWZiZWVsZGluZ1wiLFxyXG4gICAgICBcIk5PX1JFU1VMVFNcIjogXCJHZWVuIHJlc3VsdGF0ZW5cIixcclxuICAgICAgXCJOT1RfQUZURVJcIjogXCJOaWV0IGxhdGVyIGRhblwiLFxyXG4gICAgICBcIk5PVF9CRUZPUkVcIjogXCJOaWV0IGVlcmRlciBkYW5cIixcclxuICAgICAgXCJOT1RISU5HX0FMTE9DQVRFRFwiOiBcIk5pZXRzIHRvZWdld2V6ZW5cIixcclxuICAgICAgXCJOT1RISU5HX0NPTkZJUk1FRFwiOiBcIk5pZXRzIGJldmVzdGlnZFwiLFxyXG4gICAgICBcIk5PVEhJTkdfREVMSVZFUkVEXCI6IFwiTmlldHMgZ2VsZXZlcmRcIixcclxuICAgICAgXCJOT1RISU5HX1JFQ0VJVkVEX0RFTElWRVJFRFwiOiBcIk5pZXRzIGJpbm5lbmdlbWVsZCAvIGdlbGV2ZXJkXCIsXHJcbiAgICAgIFwiTk9USElOR19JTlZPSUNFRFwiOiBcIk5pZXRzIGdlZmFjdHVyZWVyZFwiLFxyXG4gICAgICBcIk5PVEhJTkdfVE9fQkVfUElDS0VEXCI6IFwiTmlldHMgdGUgcGlja2VuXCIsXHJcbiAgICAgIFwiTk9USElOR19QSUNLRURcIjogXCJOaWV0cyBnZXBpY2t0XCIsXHJcbiAgICAgIFwiTlJcIjogXCJOdW1tZXJcIixcclxuICAgICAgXCJOVU1CRVJcIjogXCJBYW50YWxcIixcclxuICAgICAgXCJPTl9EQVRFXCI6IFwiT3AgZGF0dW1cIixcclxuICAgICAgXCJPTl9IT0xEXCI6IFwiR2VwYXV6ZWVyZFwiLFxyXG4gICAgICBcIk9QRU5fU0hPUFBJTkdfQ0FSVFwiOiBcIk9wZW4gd2lua2Vsd2FnZW5cIixcclxuICAgICAgXCJPUkRFUl9DT05GSVJNQVRJT05TXCI6IFwiQmV2ZXN0aWdpbmdlblwiLFxyXG4gICAgICBcIk9SREVSX0RBVEVcIjogXCJPcmRlcmRhdHVtXCIsXHJcbiAgICAgIFwiT1JERVJfREFUQVwiOiBcIk9yZGVyZ2VnZXZlbnNcIixcclxuICAgICAgXCJPUkRFUl9ERUZJTklUSVZFXCI6IFwiT3JkZXIgZGVmaW5pdGllZlwiLFxyXG4gICAgICBcIk9SREVSX0dST1NTXCI6IFwiT3JkZXJ0b3RhYWwgYnJ1dG9cIixcclxuICAgICAgXCJPUkRFUl9MSU5FU1wiOiBcIk9yZGVycmVnZWxzXCIsXHJcbiAgICAgIFwiT1JERVJfTkVUXCI6IFwiT3JkZXJ0b3RhYWwgbmV0dG9cIixcclxuICAgICAgXCJPUkRFUl9OVU1CRVJcIjogXCJPcmRlcm51bW1lclwiLFxyXG4gICAgICBcIk9SREVSX1BBUkFNRVRFUlNcIjogXCJPcmRlcnBhcmFtZXRlcnNcIixcclxuICAgICAgXCJPUkRFUl9SVUxFXCI6IFwiT3JkZXJyZWdlbFwiLFxyXG4gICAgICBcIk9SREVSX1JVTEVTRVRcIjogXCJPcmRlcnJlZ2Vsc2V0XCIsXHJcbiAgICAgIFwiT1JERVJfVE9UQUxcIjogXCJPcmRlcnRvdGFhbFwiLFxyXG4gICAgICBcIk9SREVSX1RZUEVcIjogXCJUeXBlIGJlc3RlbGxpbmdcIixcclxuICAgICAgXCJPUkRFUkVEXCI6IFwiQmVzdGVsZFwiLFxyXG4gICAgICBcIk9USEVSXCI6IFwiT3ZlcmlnXCIsXHJcbiAgICAgIFwiT1ZFUlZJRVdcIjogXCJPdmVyemljaHRcIixcclxuICAgICAgXCJPVkVSVklFV19BTkRfUEFZTUVOVFwiOiBcIk92ZXJ6aWNodCBlbiBiZXRhbGluZ1wiLFxyXG4gICAgICBcIk9XTl9SRUZFUkVOQ0VcIjogXCJFaWdlbiByZWZlcmVudGllXCIsXHJcbiAgICAgIFwiUEFDS0lOR19TTElQXCI6IFwiUGFrYm9uXCIsXHJcbiAgICAgIFwiUEFJRF9ET1dOMlwiOiBcIkFhbmJldGFhbGRcIixcclxuICAgICAgXCJQQVJUX0RFTElWRVJZXCI6IFwiRGVlbGxldmVyaW5nXCIsXHJcbiAgICAgIFwiUEFSVF9ERUxJVkVSSUVTXCI6IFwiRGVlbGxldmVyaW5nZW5cIixcclxuICAgICAgXCJQQVJUTFlfQUxMT0NBVEVEXCI6IFwiR2VkZWVsdGVsaWprIHRvZWdld2V6ZW5cIixcclxuICAgICAgXCJQQVJUTFlfQ09ORklSTUVEXCI6IFwiR2VkZWVsdGVsaWprIGJldmVzdGlnZFwiLFxyXG4gICAgICBcIlBBUlRMWV9ERUxJVkVSRURcIjogXCJHZWRlZWx0ZWxpamsgZ2VsZXZlcmRcIixcclxuICAgICAgXCJQQVJUTFlfUkVDRUlWRURfREVMSVZFUkVEXCI6IFwiR2VkZWVsdGVsaWprIGJpbm5lbmdlbWVsZCAvIGdlbGV2ZXJkXCIsXHJcbiAgICAgIFwiUEFSVExZX0lOVk9JQ0VEXCI6IFwiR2VkZWVsdGVsaWprIGdlZmFjdHVyZWVyZFwiLFxyXG4gICAgICBcIlBBUlRMWV9UT19CRV9QSUNLRURcIjogXCJHZWRlZWx0ZWxpamsgdGUgcGlja2VuXCIsXHJcbiAgICAgIFwiUEFSVExZX1BJQ0tFRFwiOiBcIkdlZGVlbHRlbGlqayBnZXBpY2t0XCIsXHJcbiAgICAgIFwiUEFTU1dPUkRcIjogXCJXYWNodHdvb3JkXCIsXHJcbiAgICAgIFwiUEFZXCI6IFwiQmV0YWxlblwiLFxyXG4gICAgICBcIlBBWU1FTlRcIjogXCJCZXRhbGluZ1wiLFxyXG4gICAgICBcIlBBWU1FTlRfSU5GT1JNQVRJT05cIjogXCJCZXRhYWxpbmZvcm1hdGllXCIsXHJcbiAgICAgIFwiUEFZTUVOVF9NRVRIT0RcIjogXCJCZXRhYWxtZXRob2RlXCIsXHJcbiAgICAgIFwiUEVSU09OQUxfREFUQVwiOiBcIkJhc2lzZ2VnZXZlbnNcIixcclxuICAgICAgXCJQSUNLRURcIjogXCJHZXBpY2t0XCIsXHJcbiAgICAgIFwiUEhPTkVfTk9cIjogXCJUZWxlZm9vbm51bW1lclwiLFxyXG4gICAgICBcIlBIWVNJQ0FMX1NUT0NLXCI6IFwiRnlzaWVrZSB2b29ycmFhZFwiLFxyXG4gICAgICBcIlBMQU5OSU5HXCI6IFwiUGxhbm5pbmdcIixcclxuICAgICAgXCJQT1NUQUxfQ09ERVwiOiBcIlBvc3Rjb2RlXCIsXHJcbiAgICAgIFwiUFJFRkVSUkVEX0RBVEVcIjogXCJWb29ya2V1cnNkYXR1bVwiLFxyXG4gICAgICBcIlBSRUZJWFwiOiBcIlR1c3NlbnZvZWdzZWxcIixcclxuICAgICAgXCJQUkVWSU9VU1wiOiBcIlZvcmlnZVwiLFxyXG4gICAgICBcIlBSSUNFXCI6IFwiUHJpanNcIixcclxuICAgICAgXCJQUklDRV9MSVNUXCI6IFwiUHJpanNsaWpzdFwiLFxyXG4gICAgICBcIlBSSUNJTkdcIjogXCJQcmlqemVuXCIsXHJcbiAgICAgIFwiUFJJVkFDWV9QUkVGRVJFTkNFU1wiOiBcIlByaXZhY3l2b29ya2V1cmVuXCIsXHJcbiAgICAgIFwiUFJJVkFURV9QRVJTT05cIjogXCJQYXJ0aWN1bGllclwiLFxyXG4gICAgICBcIlBST0RVQ1RcIjogXCJQcm9kdWN0XCIsXHJcbiAgICAgIFwiUFJPRFVDVF9UWVBFXCI6IFwiUHJvZHVjdHNvb3J0XCIsXHJcbiAgICAgIFwiUFVSQ0hBU0VcIjogXCJJbmtvb3BcIixcclxuICAgICAgXCJQVVJDSEFTRU5VTUJFUlwiOiBcIklua29vcG51bW1lclwiLFxyXG4gICAgICBcIlBVUkNIQVNFT1JERVJTXCI6IFwiSW5rb29wb3JkZXJzXCIsXHJcbiAgICAgIFwiUFVSQ0hBU0VfUEVSU09OXCI6IFwiSW5rb3BlclwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9aRVJPX09SX0VNUFRZXCI6IFwiSGV0IGFhbnRhbCBtYWcgZ2VlbiAwIHppam4uXCIsXHJcbiAgICAgIFwiUVVBTlRJVFlfQ0FOTk9UX0JFX0xFU1NfVEhBTl9ERUxJVkVSRURcIjogXCJIZXQgYWFudGFsIG1vZXQgZ2VsaWprIHppam4gYWFuIGhldCBnZWxldmVyZGUgYWFudGFsXCIsXHJcbiAgICAgIFwiUVVBTlRJVFlfQ0FOTk9UX0JFX01PUkVfVEhBTl9ERUxJVkVSRURcIjogXCJIZXQgYWFudGFsIG1vZXQgZ2VsaWprIHppam4gYWFuIGhldCBnZWxldmVyZGUgYWFudGFsXCIsXHJcbiAgICAgIFwiUVVBTlRJVFlfQ0FOTk9UX0JFX0xFU1NfVEhBTl9JTlZPSUNFRFwiOiBcIkhldCBhYW50YWwgbW9ldCBnZWxpamsgemlqbiBhYW4gZGUgYmVzdGVsZGUgdm9vcnJhYWRcIixcclxuICAgICAgXCJRVUFOVElUWV9DQU5OT1RfQkVfTU9SRV9USEFOX0lOVk9JQ0VEXCI6IFwiSGV0IGFhbnRhbCBtb2V0IGdlbGlqayB6aWpuIGFhbiBkZSBiZXN0ZWxkZSB2b29ycmFhZFwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9MRVNTX1RIQU5fQUxMT0NBVEVEXCI6IFwiSGV0IGFhbnRhbCBtb2V0IGdlbGlqayB6aWpuIGFhbiBkZGUgdG9lZ2V3ZXplbiB2b29ycmFhZFwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9NT1JFX1RIQU5fQUxMT0NBVEVEXCI6IFwiSGV0IGFhbnRhbCBtb2V0IGdlbGlqayB6aWpuIGFhbiBkZGUgdG9lZ2V3ZXplbiB2b29ycmFhZFwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9MRVNTX1RIQU5fUkVDRUlWRURcIjogXCJIZXQgYWFudGFsIG1vZXQgZ2VsaWprIHppam4gYWFuIGhldCBhYW50YWwgb250dmFuZ2VuLlwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9NT1JFX1RIQU5fUkVDRUlWRURcIjogXCJIZXQgYWFudGFsIG1vZXQgZ2VsaWprIHppam4gYWFuIGhldCBhYW50YWwgb250dmFuZ2VuXCIsXHJcbiAgICAgIFwiUVVBTlRVTV9ESVNDT1VOVFwiOiBcIkt3YW50dW1rb3J0aW5nXCIsXHJcbiAgICAgIFwiUkVDRUlQVF9ERVRBSUxTXCI6IFwiT250dmFuZ3N0IGRldGFpbHNcIixcclxuICAgICAgXCJSRUNFSVZFRFwiOiBcIk9udHZhbmdzdFwiLFxyXG4gICAgICBcIlJFQ0VJVkVEX0RFTElWRVJFRFwiOiBcIkJpbm5lbmdlbWVsZCAvIGdlbGV2ZXJkXCIsXHJcbiAgICAgIFwiUkVDRUlWRURfREFURVwiOiBcIk9udHZhbmdzdCBkYXR1bVwiLFxyXG4gICAgICBcIlJFRkVSRU5DRVwiOiBcIlJlZmVyZW50aWVcIixcclxuICAgICAgXCJSRUZFUkVOQ0VfUkVMQVRJT05cIjogXCJSZWYuIHJlbGF0aWVcIixcclxuICAgICAgXCJSRUxBVElPTl9OVU1CRVJcIjogXCJSZWxhdGllbnVtbWVyXCIsXHJcbiAgICAgIFwiUkVNQVJLU1wiOiBcIk9wbWVya2luZ2VuXCIsXHJcbiAgICAgIFwiUkVRVUVTVEVEX0RFTElWRVJZXCI6IFwiR2V2cmFhZ2RlIGxldmVyZGF0dW1cIixcclxuICAgICAgXCJTQUxVVEFUSU9OXCI6IFwiQWFuaGVmXCIsXHJcbiAgICAgIFwiU0FMRVNPUkRFUlNcIjogXCJWZXJrb29wb3JkZXJzXCIsXHJcbiAgICAgIFwiU0FNRV9BU19ERUxJVkVSWVwiOiBcIkhldHplbGZkZSBhbHMgYmV6b3JnYWRyZXNcIixcclxuICAgICAgXCJTQVZFXCI6IFwiT3BzbGFhblwiLFxyXG4gICAgICBcIlNFQVJDSFwiOiBcIlpvZWtlblwiLFxyXG4gICAgICBcIlNFQVJDSF9BRERfQVJUSUNMRVwiOiBcIlpvZWtlbiBlbiB0b2V2b2VnZW4gYXJ0aWtlbFwiLFxyXG4gICAgICBcIlNFQVJDSF9ERUxJVkVSWV9NRVRIT0RcIjogXCJab2VrIGxldmVybWV0aG9kZVwiLFxyXG4gICAgICBcIlNFQVJDSF9JTl9DT0xMRUNUSU9OXCI6IFwiWm9layBiaW5uZW4gY29sbGVjdGllLi4uXCIsXHJcbiAgICAgIFwiU0VBUkNIX05VTUJFUl9DVVNUT01FUl9PUl9EQVRFXCI6IFwiWm9la2VuIG9wIG51bW1lciwga2xhbnQgb2YgZGF0dW1cIixcclxuICAgICAgXCJTRUFSQ0hfVkFUXCI6IFwiWm9layBidHdcIixcclxuICAgICAgXCJTRUFSQ0hfV0FSRUhPVVNFXCI6IFwiWm9layBtYWdhemlqblwiLFxyXG4gICAgICBcIlNFTEVDVFwiOiBcIlNlbGVjdGVyZW5cIixcclxuICAgICAgXCJTRUxFQ1RfQVwiOiBcIlNlbGVjdGVlciBlZW5cIixcclxuICAgICAgXCJTRUxFQ1RfQ0FTSF9SRUdJU1RFUlwiOiBcIlNlbGVjdGVlciBrYXNzYVwiLFxyXG4gICAgICBcIlNFTEVDVF9EQVRFXCI6IFwiU2VsZWN0ZWVyIGVlbiBzdGFydC0gZW4gZWluZGRhdHVtXCIsXHJcbiAgICAgIFwiU0VSSUFMX05VTUJFUlwiOiBcIlNlcmllbnVtbWVyXCIsXHJcbiAgICAgIFwiU0VSVklDRV9OVU1CRVJcIjogXCJTZXJ2aWNlbnVtbWVyXCIsXHJcbiAgICAgIFwiU0VSVklDRV9SRVFVRVNUX0RBVEVcIjogXCJEYXR1bSBhYW52cmFhZ1wiLFxyXG4gICAgICBcIlNFUlZJQ0VfU1RBVEVcIjogXCJTZXJ2aWNlIHN0YXR1c1wiLFxyXG4gICAgICBcIlNIT1BQSU5HX0NBUlRcIjogXCJXaW5rZWx3YWdlblwiLFxyXG4gICAgICBcIlNIT1BQSU5HX0NBUlRfQ0hFQ0tPVVRcIjogXCJCZXN0ZWxsZW5cIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUX09WRVJWSUVXXCI6IFwiT3ZlcnppY2h0IHZhbiB1dyBiZXN0ZWxsaW5nXCIsXHJcbiAgICAgIFwiU0hPUFBJTkdfQ0FSVF9SRVNVTUVcIjogXCJWZXJkZXIgd2lua2VsZW5cIixcclxuICAgICAgXCJTSE9XX01PUkVcIjogXCJUb29uIG1lZXJcIixcclxuICAgICAgXCJTSE9XX0xFU1NcIjogXCJUb29uIG1pbmRlclwiLFxyXG4gICAgICBcIlNQRUNJQUxfRElTQ09VTlRcIjogXCJTcGVjaWFsZSBrb3J0aW5nXCIsXHJcbiAgICAgIFwiU09VUkNFX1dBUkVIT1VTRVwiOiBcIkJyb24gbWFnYXppam5cIixcclxuICAgICAgXCJTVE9DS1wiOiBcIlZvb3JyYWFkXCIsXHJcbiAgICAgIFwiU1RPQ0tfTk9USUZJQ0FUSU9OXCI6IFwiVm9vcnJhYWRtZWxkaW5nXCIsXHJcbiAgICAgIFwiU1RPQ0tfQVZBSUxBQkxFX0NIQU5HRV9XQVJFSE9VU0VfT1JfQ09NTUlTU0lPTkNPREVcIjogXCJFciBpcyB2b2xkb2VuZGUgdm9vcnJhYWQuIFZlcmFuZGVyIG1hZ2F6aWpuIGVuL29mIGNvbW1pc3NpZWNvZGVcIixcclxuICAgICAgXCJTVUJUT1RBTFwiOiBcIlN1YnRvdGFhbFwiLFxyXG4gICAgICBcIlNVR0dFU1RJT05TXCI6IFwiU3VnZ2VzdGllc1wiLFxyXG4gICAgICBcIlNVUFBMSUVSXCI6IFwiTGV2ZXJhbmNpZXJcIixcclxuICAgICAgXCJTVVJDSEFSR0VfQU1PVU5UXCI6IFwiVG9lc2xhZ1wiLFxyXG4gICAgICBcIlNUQVRFXCI6IFwiU3RhdHVzXCIsXHJcbiAgICAgIFwiU1RSRUVUXCI6IFwiU3RyYWF0bmFhbVwiLFxyXG4gICAgICBcIlRBR1NcIjogXCJUYWdzXCIsXHJcbiAgICAgIFwiVEVYVF9BUlRJQ0xFX0JPVU5EXCI6IFwiVGV4dCBiaWogYXJ0aWtlbCB8flwiLFxyXG4gICAgICBcIlRPX1JFUE9SVF9JTlwiOiAnQmlubmVuIHRlIG1lbGRlbicsXHJcbiAgICAgIFwiVE9fQkVfUElDS0VEXCI6IFwiVGUgcGlja2VuXCIsXHJcbiAgICAgIFwiVE9fREVMSVZFUlwiOiBcIlRlIGxldmVyZW5cIixcclxuICAgICAgXCJUT19QQVlcIjogXCJUZSBiZXRhbGVuXCIsXHJcbiAgICAgIFwiVE9UQUxfQU1PVU5UXCI6IFwiVG90YWFsYmVkcmFnXCIsXHJcbiAgICAgIFwiVE9UQUxfQVNTRU1CTFlfVElNRVwiOiBcIlRvdGFsZSBtb250YWdldGlqZFwiLFxyXG4gICAgICBcIlRPVEFMX0dST1NTXCI6IFwiVG90YWFsIGJydXRvXCIsXHJcbiAgICAgIFwiVE9UQUxfTElORV9ESVNDT1VOVFwiOiBcIlRvdGFsZSByZWdlbGtvcnRpbmdcIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9EQVRFXCI6IFwiT3JkZXJkYXR1bVwiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX0RJU0NPVU5UXCI6IFwiVG90YWxlIHRyYW5zYWN0aWUga29ydGluZ1wiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX0RJU0NPVU5UX1BFUkNcIjogXCIlIFRyYW5zLiBrb3J0aW5nXCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fUFJJQ0VfREVDTEFSQVRJT05cIjogXCJPcmRlciBwcmlqc3ZlcmtsYXJpbmdcIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9TVU1fSVwiOiBcIk9yZGVydG90YWFsIGluY2wuIEJUV1wiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX1RPVEFMXCI6IFwiVHJhbnNhY3RpZSB0b3RhYWxcIixcclxuICAgICAgXCJUUkFOU1BPUlRcIjogXCJUcmFuc3BvcnRcIixcclxuICAgICAgXCJUUkFOU1BPUlRfQ09TVFwiOiBcIlRyYW5zcG9ydGtvc3RlblwiLFxyXG4gICAgICBcIlRSQU5TUE9SVF9DT1NUX0xJTkVfVE9UQUxcIjogXCJUcmFuc3BvcnRrb3N0ZW4gcmVnZWx0b3RhYWxcIixcclxuICAgICAgXCJUVVJOT1ZFUl9HUk9VUFwiOiBcIk9temV0Z3JvZXBcIixcclxuICAgICAgXCJUWVBFXCI6IFwiU29vcnRcIixcclxuICAgICAgXCJVTktOT1dOXCI6IFwiT25iZWtlbmRcIixcclxuICAgICAgXCJVTktOT1dOX0FERFJFU1NfQ0hFQ0tfSVRcIjogXCJPbmJla2VuZCBhZHJlc1wiLFxyXG4gICAgICBcIlVTRVJcIjogXCJHZWJydWlrZXJcIixcclxuICAgICAgXCJWQVRcIjogXCJCdHdcIixcclxuICAgICAgXCJWQVQyXCI6IFwiQlRXXCIsXHJcbiAgICAgIFwiVkFUX0FNT1VOVFwiOiBcIkJUVy1iZWRyYWdcIixcclxuICAgICAgXCJWQUxVRVwiOiBcIldhYXJkZVwiLFxyXG4gICAgICBcIldIRVJFX0FSRV9ZT1VfTE9PS0lOR19GT1JcIjogXCJXYWFyIGJlbiBqZSBuYWFyIG9wIHpvZWs/XCIsXHJcbiAgICAgIFwiV0FSRUhPVVNFXCI6IFwiTWFnYXppam5cIixcclxuICAgICAgXCJZT1VSX0RBVEFcIjogXCJHZWdldmVuc1wiLFxyXG4gICAgICBcIlNUQU5EQVJEX1RFWFRTXCI6XCJTdGFuZGFhcmR0ZWtzdGVuXCIsXHJcbiAgICAgIFwiQVJUSUNMRV9CT1VORF9URVhUXCI6IFwiQXJ0aWtlbGdlYm9uZGVuIHRla3N0XCIsXHJcbiAgICAgIFwiRk9SX0RPQ1VNRU5UU1wiOiBcIkJlc3RlbWQgdm9vciBkb2N1bWVudGVuXCIsXHJcbiAgICAgIFwiQ0hBTkdFX0FSVElDTEVfVEVYVFwiOiBcIldpanppZ2VuIGFydGlrZWx0ZWtzdFwiLFxyXG4gICAgfSxcclxuICAgIFwiZGVcIjoge30sXHJcbiAgICBcImZyXCI6IHt9LFxyXG4gICAgXCJlblwiOiB7XHJcbiAgICAgIFwiQUNDT1VOVF9ERVRBSUxTXCI6IFwiQWNjb3VudCBkZXRhaWxzXCIsXHJcbiAgICAgIFwiQUNDT1VOVF9FWFBMQU5BVElPTlwiOiBcIkUtbWFpbGFkZHJlc3MgYW5kIHBhc3N3b3JkIGFyZSBuZWVkZWQgdG8gZ2FpbiBhY2Nlc3MgdG8gdGhlIGRhdGEuIFdlIGFsc28gbm90aWZ5IHlvdSBvbiB0aGlzIGUtbWFpbGFkZHJlc3MgYWJvdXQgdGhlIG9yZGVyIHN0YXR1c1wiLFxyXG4gICAgICBcIkFDVElWRVwiOiBcIkFjdGl2ZVwiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX0xJTkVfVVBcIjogXCJBZGQgYXJ0aWNsZSBsaW5lIHVwXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfTElORV9ET1dOXCI6IFwiQWRkIGFydGljbGUgbGluZSBkb3duXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfVEVYVF9MSU5FX1VQXCI6IFwiQWRkIHRleHQgbGluZSB1cFwiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX1RFWFRfTElORV9ET1dOXCI6IFwiQWRkIHRleHQgbGluZSBkb3duXCIsXHJcbiAgICAgIFwiQUREX0RFTElWRVJZX09QVElPTlwiOiBcIkFkZCBkZWxpdmVyeSBvcHRpb25cIixcclxuICAgICAgXCJBRERfRElTQ09VTlRTXCI6IFwiQWRkIGRpc2NvdW50XCIsXHJcbiAgICAgIFwiQUREX1JFRkVSRU5DRVwiOiBcIkFkZCByZWZlcmVuY2VcIixcclxuICAgICAgXCJBRERfUkVNQVJLXCI6IFwiQWRkIHJlbWFya1wiLFxyXG4gICAgICBcIkFERFJFU1NcIjogXCJBZGRyZXNzXCIsXHJcbiAgICAgIFwiQUREUkVTU0VTXCI6IFwiQWRkcmVzc2VzXCIsXHJcbiAgICAgIFwiQUREUkVTU19BRERcIjogXCJBZGQgYWRkcmVzc1wiLFxyXG4gICAgICBcIkFERFJFU1NfQ0hBTkdFXCI6IFwiQ2hhbmdlIGFkZHJlc3NcIixcclxuICAgICAgXCJBRE1JTklTVFJBVElWRV9NQU5BR0VSXCI6IFwiQWRtaW5pc3RyYXRpdmUgbWFuYWdlclwiLFxyXG4gICAgICBcIkFMTE9DQVRFRFwiOiBcIkFsbG9jYXRlZFwiLFxyXG4gICAgICBcIkFMV0FZU19TSE9XX0xPR0lTVElDU19QT1BVUFwiOiBcIkNoZWNrIHdhcmVob3VzZSBhbmQgY29tbWlzc2lvbmNvZGVcIixcclxuICAgICAgXCJBUlJJVkFMX0RBVEVcIjogXCJBcnJpdmFsIGRhdGVcIixcclxuICAgICAgXCJBUlRJQ0xFXCI6IFwiQXJ0aWNsZVwiLFxyXG4gICAgICBcIkFSVElDTEVfREVTQ1JJUFRJT05cIjogXCJBcnRpY2xlIGRlc2NyaXB0aW9uXCIsXHJcbiAgICAgIFwiQVJUSUNMRV9JTUFHRVwiOiBcIkFydGljbGUgaW1hZ2VcIixcclxuICAgICAgXCJBUlRJQ0xFX0lOX09VVF9DT0xMRUNUSU9OXCI6IFwiU3RhdHVzIG9mIGFydGljbGUgaXMgJ3x+Jy4gQXJlIHlvdSBzdXJlIHRvIHByb2NlZWQ/XCIsXHJcbiAgICAgIFwiQVJUSUNMRV9OUlwiOiBcIkFydGljbGUgbnVtYmVyXCIsXHJcbiAgICAgIFwiQVJUSUNMRV9OUl9TVVBQTElFUlwiOiBcIkFydGlrZWxuciBzdXBwbGllclwiLFxyXG4gICAgICBcIkFSVElDTEVfVU5LTk9XTlwiOiBcIkFydGljbGUgdW5rbm93blwiLFxyXG4gICAgICBcIkFTU0VNQkxZX0NPU1RTXCI6IFwiQXNzZW1ibHkgY29zdHNcIixcclxuICAgICAgXCJBU1NFTUJMWV9EQVRFXCI6IFwiQXNzZW1ibHkgZGF0ZVwiLFxyXG4gICAgICBcIkFTU0VNQkxZX1RJTUVcIjogXCJBc3NlbWJseSB0aW1lXCIsXHJcbiAgICAgIFwiQU1PVU5UXCI6IFwiQW1vdW50XCIsXHJcbiAgICAgIFwiQkFDS1wiOiBcIkJhY2tcIixcclxuICAgICAgXCJCQUxBTkNFXCI6IFwiQmFsYW5jZVwiLFxyXG4gICAgICBcIkJBVENIX05VTUJFUlwiOiBcIkJhdGNobnVtYmVyXCIsXHJcbiAgICAgIFwiQlJBTkNIXCI6IFwiQnJhbmNoXCIsXHJcbiAgICAgIFwiQlJBTkNIX05VTUJFUlwiOiBcIkJyYW5jaCBudW1iZXJcIixcclxuICAgICAgXCJCVVNJTkVTU19SVUxFX0RJU0NPVU5UXCI6IFwiQnVzaW5lc3MgcnVsZSBkaXNjb3VudFwiLFxyXG4gICAgICBcIkNBTkNFTFwiOiBcIkNhbmNlbFwiLFxyXG4gICAgICBcIkNBTk5PVF9DSEFOR0VfTkVHQVRJVkVfUVVBTlRJVFlcIjogXCJBIG5lZ2F0aXZlIHN1cHBseSBjYW5ub3QgYmUgY2hhbmdlZC5cIixcclxuICAgICAgXCJDQVJUXCI6IFwiQ2FydFwiLFxyXG4gICAgICBcIkNIQU5HRV9EQVRBXCI6IFwiQ2hhbmdlIGRhdGFcIixcclxuICAgICAgXCJDSEFSQUNURVJJU1RJQ19RVUVTVElPTlwiOiBcIkNoYXJhY3RlcmlzdGljIHF1ZXN0aW9uXCIsXHJcbiAgICAgIFwiQ0hFQ0tfV0FSRUhPVVNFX0FORF9DT01NSVNTSU9OQ09ERVwiOiBcIkNoZWNrIHdhcmVob3VzZSBhbmQgY29tbWlzc2lvbmNvZGVcIixcclxuICAgICAgXCJDSEVDS09VVF9GSU5JU0hcIjogXCJGaW5pc2ggY2hlY2tvdXRcIixcclxuICAgICAgXCJDSVRZXCI6IFwiQ2l0eVwiLFxyXG4gICAgICBcIkNMSUVOVF9EQVRBXCI6IFwiQ2xpZW50IGRhdGFcIixcclxuICAgICAgXCJDTElFTlRfSU5GT1JNQVRJT05cIjogXCJDbGllbnQgaW5mb3JtYXRpb25cIixcclxuICAgICAgXCJDT01QQU5ZXCI6IFwiQ29tcGFueVwiLFxyXG4gICAgICBcIkNPTVBBTllfTkFNRVwiOiBcIkNvbXBhbnkgbmFtZVwiLFxyXG4gICAgICBcIkNPTU1JU1NJT05fQ09ERVwiOiBcIkNvbW1pc3Npb24gY29kZVwiLFxyXG4gICAgICBcIkNPTkZJUk1BVElPTlwiOiBcIkNvbmZpcm1hdGlvblwiLFxyXG4gICAgICBcIkNPTkZJUk1FRF9EQVRFXCI6IFwiQ29uZmlybWVkIGRhdGVcIixcclxuICAgICAgXCJDT05GSVJNRURfREVMSVZFUllfREFURVwiOiBcIkNvbmZpcm1lZCBkZWxpdmVyeSBkYXRlXCIsXHJcbiAgICAgIFwiQ09ORklSTUVEX1BSSUNFXCI6IFwiQ29uZmlybWVkIHByaWNlXCIsXHJcbiAgICAgIFwiQ09OVEFDVF9ERVRBSUxTXCI6IFwiQ29udGFjdGRldGFpbHNcIixcclxuICAgICAgXCJDT05USU5VRVwiOiBcIk5leHRcIixcclxuICAgICAgXCJDT05GSVJNRURcIjogXCJDb25maXJtZWRcIixcclxuICAgICAgXCJDT05USU5VRV9PUkRFUl9XSElMRV9TVE9DS19BVkFJTEFCTEVfUExFQVNFX0NPTkZJUk1cIjogXCJZb3UgaGF2ZSBjaG9zZW4gdG8gb3JkZXIgYXJ0aWNsZXMgd2hpbGUgc3RvY2sgaXMgc3RpbGwgYXZhaWxhYmxlLiBEbyB5b3Ugd2lzaCB0byBwcm9jZWVkP1wiLFxyXG4gICAgICBcIkNPTlRJTlVFX1dJVEhPVVRfQUNDT1VOVFwiOiBcIkNvbnRpbnVlIHdpdGhvdXQgYW4gYWNjb3VudFwiLFxyXG4gICAgICBcIkNPU1RTXCI6IFwiQ29zdHNcIixcclxuICAgICAgXCJDT1VOVFJZXCI6IFwiQ291bnRyeVwiLFxyXG4gICAgICBcIkNSRUFURV9BQ0NPVU5UXCI6IFwiQ3JlYXRlIGFuIGFjY291bnRcIixcclxuICAgICAgXCJDUkVBVEVfQUNDT1VOVF9JTl8yX01JTlwiOiBcIkNyZWF0ZSBhbiBhY2NvdW50IGluIDIgbWludXRlcy5cIixcclxuICAgICAgXCJDVVNUT01FUlwiOiBcIkN1c3RvbWVyXCIsXHJcbiAgICAgIFwiQ1VTVE9NRVJfR1JPVVBcIjogXCJDdXN0b21lcmdyb3VwXCIsXHJcbiAgICAgIFwiQ1VTVE9NRVJfTkFNRVwiOiBcIkN1c3RvbWVyIG5hbWVcIixcclxuICAgICAgXCJEQVRFXCI6IFwiRGF0ZVwiLFxyXG4gICAgICBcIkRBVEVfT0ZfQklSVEhcIjogXCJEYXRlIG9mIGJpcnRoXCIsXHJcbiAgICAgIFwiREVGSU5JVElWRVwiOiBcIkRlZmluaXRpdmVcIixcclxuICAgICAgXCJERUxFVEVcIjogXCJEZWxldGVcIixcclxuICAgICAgXCJERUxFVEVfVFJBTlNBQ1RJT05fTElORVwiOiBcIkRlbGV0ZSB0cmFuc2FjdGlvbiBsaW5lIHZlcndpamRlcmVuP1wiLFxyXG4gICAgICBcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FX0hJTlRcIjogXCJEZWxldGUgdHJhbnNhY3Rpb24gbGluZVwiLFxyXG4gICAgICBcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FX0ZBSUxFRFwiOiBcIkRlbGV0aW9uIG9mIHRyYW5zYWN0aW9uIGxpbmUgaGFzIGZhaWxlZFwiLFxyXG4gICAgICBcIkRFTElWRVJFRFwiOiBcIkRlbGl2ZXJlZFwiLFxyXG4gICAgICBcIkRFTElWRVJZXCI6IFwiRGVsaXZlcnlcIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTXCI6IFwiRGVsaXZlcnkgYWRkcmVzc1wiLFxyXG4gICAgICBcIkRFTElWRVJZX0FERFJFU1NfQUREXCI6IFwiQWRkIGRlbGl2ZXJ5IGFkZHJlc3NcIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTX0NIQU5HRVwiOiBcIkNoYW5nZSBkZWxpdmVyeSBhZGRyZXNzXCIsXHJcbiAgICAgIFwiREVMSVZFUllfQkFUQ0hcIjogXCJEZWxpdmVyeSBiYXRjaFwiLFxyXG4gICAgICBcIkRFTElWRVJZX0NPU1RTXCI6IFwiRGVsaXZlcnkgY29zdHNcIixcclxuICAgICAgXCJERUxJVkVSWV9EQVRBXCI6IFwiRGVsaXZlcnlkYXRhXCIsXHJcbiAgICAgIFwiREVMSVZFUllfREFURVwiOiBcIkRlbGl2ZXJ5IGRhdGVcIixcclxuICAgICAgXCJERUxJVkVSWV9EQVRFX0RFRklOSVRJVkVcIjogXCJEZWxpdmVyeSBkYXRlIGRlZmluaXRpdmVcIixcclxuICAgICAgXCJERUxJVkVSWV9EQVRFX0ZJTkFMXCI6IFwiRmluYWwgZGVsaXZlcnkgZGF0ZVwiLFxyXG4gICAgICBcIkRFTElWRVJZX0RJUkVDVFwiOiBcIkRpcmVjdCBkZWxpdmVyeVwiLFxyXG4gICAgICBcIkRFTElWRVJZX0lORk9STUFUSU9OXCI6IFwiRGlyZWN0IGluZm9ybWF0aW9uXCIsXHJcbiAgICAgIFwiREVMSVZFUllfTE9DQVRJT05cIjogXCJEZWxpdmVyeSBsb2NhdGlvblwiLFxyXG4gICAgICBcIkRFTElWRVJZX05PVEVcIjogXCJEZWxpdmVyeSBub3RlXCIsXHJcbiAgICAgIFwiREVMSVZFUllfT1BUSU9OU1wiOiBcIkRlbGl2ZXJ5IG9wdGlvbnNcIixcclxuICAgICAgXCJERUxJVkVSWV9NRVRIT0RcIjogXCJEZWxpdmVyeSBtZXRob2RcIixcclxuICAgICAgXCJERUxJVkVSWV9NT01FTlRcIjogXCJEZWxpdmVyeSBtb21lbnRcIixcclxuICAgICAgXCJERUxJVkVSWV9PUFRBUlRJQ0xFX05SSU9OU1wiOiBcIkRlbGl2ZXJ5IG9wdGlvbnNcIixcclxuICAgICAgXCJERUxJVkVSWV9USU1FX1BFUklPRFwiOiBcIkRlbGl2ZXJ5IHRpbWUgcGVyaW9kXCIsXHJcbiAgICAgIFwiREVTQ1JJUFRJT05cIjogXCJEZXNjcmlwdGlvblwiLFxyXG4gICAgICBcIkRFVEFJTFNcIjogXCJEZXRhaWxzXCIsXHJcbiAgICAgIFwiRElTQ09VTlRcIjogXCJEaXNjb3VudFwiLFxyXG4gICAgICBcIkRJU0NPVU5UU1wiOiBcIkRpc2NvdW50c1wiLFxyXG4gICAgICBcIkRJU0NPVU5UX0FNT1VOVFwiOiBcIkRpc2NvdW50IGFtb3VudFwiLFxyXG4gICAgICBcIkRJU0NPVU5UX1BFUkNFTlRBR0VcIjogXCJEaXNjb3VudCAlXCIsXHJcbiAgICAgIFwiRE9XTlBBWU1FTlRcIjogXCJEb3ducGF5bWVudFwiLFxyXG4gICAgICBcIkRPV05QQVlNRU5UX1BFUkNFTlRBR0VcIjogXCJQZXJjZW50YWdlIHRvIGJlIHBhaWRcIixcclxuICAgICAgXCJET1dOUEFZTUVOVF9BTU9VTlRcIjogXCJBbW91bnQgdG8gYmUgcGFpZFwiLFxyXG4gICAgICBcIkRPV05QQVlNRU5UX0JZX0JSXCI6IFwiQ2FsY3VsYXRlZCBieSBCUlwiLFxyXG4gICAgICBcIkRPV05QQVlNRU5UX09OX0RFTElWRVJZXCI6IFwiT24gZGVsaXZlcnlcIixcclxuICAgICAgXCJEUk9QU0hJUE1FTlRcIjogXCJEcm9wc2hpcG1lbnRcIixcclxuICAgICAgXCJFRElUX0NBUlRcIjogXCJFZGl0IGNhcnRcIixcclxuICAgICAgXCJFTUFJTF9BRERSRVNTXCI6IFwiRS1tYWlsYWRyZXNcIixcclxuICAgICAgXCJFWENFRURFTkNFX0NPREVcIjogXCJFeGNlZWRlbmNlIGNvZGVcIixcclxuICAgICAgXCJFWElTVElOR19DVVNUT01FUlNcIjogXCJFeGlzdGluZyBjdXN0b21lcnNcIixcclxuICAgICAgXCJFWFBFQ1RFRF9ERUxJVkVSWV9EQVRFXCI6IFwiKEV4cGVjdGVkKSBkZWxpdmVyeSBkYXRlXCIsXHJcbiAgICAgIFwiRVhQRUNURURfREVMSVZFUllfV0VFS1wiOiBcIihFeHBlY3RlZCkgZGVsaXZlcnkgd2Vla1wiLFxyXG4gICAgICBcIkZBQlJJQ0FUSU9OX0NPU1RcIjogXCJGYWJyaWNhdGlvbmNvc3RcIixcclxuICAgICAgXCJGQUJSSUNBVElPTl9DT1NUX0xJTkVfVE9UQUxcIjogXCJGYWJyaWNhdGlvbmNvc3QgbGluZXRvdGFsXCIsXHJcbiAgICAgIFwiRkVNQUxFXCI6IFwiRmVtYWxlXCIsXHJcbiAgICAgIFwiRklSU1RfTkFNRVwiOiBcIkZpcnN0IG5hbWVcIixcclxuICAgICAgXCJGUkVFXCI6IFwiRnJlZVwiLFxyXG4gICAgICBcIkZVTExZX0FMTE9DQVRFRFwiOiBcIkZ1bGx5IGFsbG9jYXRlZFwiLFxyXG4gICAgICBcIkZVTExZX0NPTkZJUk1FRFwiOiBcIkZ1bGx5IGNvbmZpcm1lZFwiLFxyXG4gICAgICBcIkZVTExZX0RFTElWRVJFRFwiOiBcIkZ1bGx5IGRlbGl2ZXJlZFwiLFxyXG4gICAgICBcIkZVTExZX1JFQ0VJVkVEX0RFTElWRVJFRFwiOiBcIkZ1bGx5IHJlY2VpdmVkIC8gZGVsaXZlcmVkXCIsXHJcbiAgICAgIFwiRlVMTFlfSU5WT0lDRURcIjogXCJGdWxseSBpbnZvaWNlZFwiLFxyXG4gICAgICBcIkZVTExZX1RPX0JFX1BJQ0tFRFwiOiBcIkZ1bGx5IHRvIGJlIHBpY2tlZFwiLFxyXG4gICAgICBcIkZVTExZX1BJQ0tFRFwiOiBcIkZ1bGx5IHBpY2tlZFwiLFxyXG4gICAgICBcIkdPT0RfREVTQ1JJUFRJT05cIjogXCJBcnRpY2xlIGRlc2NyaXB0aW9uXCIsXHJcbiAgICAgIFwiR1JPU1NfUFJJQ0VcIjogXCJHcm9zcyBwcmljZVwiLFxyXG4gICAgICBcIkhBTkRMRURfQllcIjogXCJIYW5kbGVkIGJ5XCIsXHJcbiAgICAgIFwiSE9VU0VfTk9cIjogXCJIb3VzZW51bWJlclwiLFxyXG4gICAgICBcIkhPVVNFX05PX0FERElUSU9OXCI6IFwiSG91c2VudW1iZXIgYWRkaXRpb25cIixcclxuICAgICAgXCJJTlwiOiBcIkluXCIsXHJcbiAgICAgIFwiSU5BQ1RJVkVfVFJBTlNBQ1RJT05TXCI6IFwiSW5hY3RpZXZlIHRyYW5zYWN0aWVzXCIsXHJcbiAgICAgIFwiSU5DTFVESU5HX1JFVFVSTlNcIjogXCJJbmNsdWRpbmcgcmV0dXJuc1wiLFxyXG4gICAgICBcIklOX1NFQVJDSE9SREVSU1wiOiBcIkluIHNhbGVzIG9yZGVyc1wiLFxyXG4gICAgICBcIklOX09SREVSXCI6IFwiSW4gb3JkZXJcIixcclxuICAgICAgXCJJTl9PVVRfQ09MTEVDVElPTlwiOiBcIkluLW91dC1jb2xsZWN0aW9uXCIsXHJcbiAgICAgIFwiSU5WSVRFX1RPX0FDQ09VTlRcIjogXCJJbnZpdGUgYWNjb3VudFwiLFxyXG4gICAgICBcIklOVk9JQ0VEXCI6IFwiSW52b2ljZWRcIixcclxuICAgICAgXCJJTlZPSUNFXCI6IFwiSW52b2ljZVwiLFxyXG4gICAgICBcIklOVk9JQ0VfQUREUkVTU1wiOiBcIkludm9pY2UgYWRkcmVzc1wiLFxyXG4gICAgICBcIklOVk9JQ0VfQUREUkVTU19BRERcIjogXCJBZGQgaW52b2ljZSBhZGRyZXNzXCIsXHJcbiAgICAgIFwiSU5WT0lDRV9BRERSRVNTX0NIQU5HRVwiOiBcIkNoYW5nZSBpbnZvaWNlIGFkZHJlc3NcIixcclxuICAgICAgXCJJTlZPSUNFX0NIRUNLXCI6IFwiSW52b2ljZSBjaGVja1wiLFxyXG4gICAgICBcIkxBU1RfRURJVEVEX0RBVEVcIjogXCJEYXRlIGxhc3QgbXV0YXRpb25cIixcclxuICAgICAgXCJMQVNUX0VESVRFRF9VU0VSXCI6IFwiVXNlciBsYXN0IG11dGF0aW9uXCIsXHJcbiAgICAgIFwiTEFTVF9OQU1FXCI6IFwiTGFzdCBuYW1lXCIsXHJcbiAgICAgIFwiTElORV9ORUVEU19DT01NSVNTSU9OX0NPREVcIjogXCJMaW5lIG5lZWRzIGEgY29tbWlzc2lvbiBjb2RlXCIsXHJcbiAgICAgIFwiTE9DQVRJT05cIjogXCJMb2NhdGlvblwiLFxyXG4gICAgICBcIkxPR0lOXCI6IFwiTG9naW5cIixcclxuICAgICAgXCJMT0dJTl9ERVRBSUxTXCI6IFwiTG9naW4gZGV0YWlsc1wiLFxyXG4gICAgICBcIkxPR0lTVElDU1wiOiBcIkxvZ2lzdGljc1wiLFxyXG4gICAgICBcIkxPR0lTVElDU19BTkRfUExBTk5JTkdcIjogXCJMb2dpc3RpY3MgJiBwbGFubmluZ1wiLFxyXG4gICAgICBcIk1BSU5fQVJUSUNMRVwiOiBcIk1haW4gYXJ0aWNsZVwiLFxyXG4gICAgICBcIk1BTEVcIjogXCJNYWxlXCIsXHJcbiAgICAgIFwiTUFSS0VUSU5HXCI6IFwiTWFya2V0aW5nXCIsXHJcbiAgICAgIFwiTUFSS0VUSU5HX0NPREVcIjogXCJNYXJrZXRpbmdjb2RlXCIsXHJcbiAgICAgIFwiTUVOVVwiOiBcIk1lbnVcIixcclxuICAgICAgXCJNT0RJRklDQVRJT05fVElNRVwiOiBcIk1vZGlmaWNhdGlvbiB0aW1lXCIsXHJcbiAgICAgIFwiTU9SRV9GSUxURVJTXCI6IFwiTW9yZSBmaWx0ZXJzXCIsXHJcbiAgICAgIFwiTkFNRVwiOiBcIk5hbWVcIixcclxuICAgICAgXCJORVRfTElORV9UT1RBTFwiOiBcIkxpbmV0b3RhbFwiLFxyXG4gICAgICBcIk5FVFRcIjogXCJOZXRcIixcclxuICAgICAgXCJORVRUT19QUklDRVwiOiBcIk5ldHRvIHByaWNlXCIsXHJcbiAgICAgIFwiTkVXX0FUXCI6IFwiTmV3IGF0IFwiLFxyXG4gICAgICBcIk5FV19MT0NBVElPTlwiOiBcIk5ldyBsb2NhdGlvblwiLFxyXG4gICAgICBcIk5FWFRcIjogXCJOZXh0XCIsXHJcbiAgICAgIFwiTk9fSU1BR0VcIjogXCJObyBpbWFnZSBhdmFpbGFibGVcIixcclxuICAgICAgXCJOT19SRVNVTFRTXCI6IFwiTm8gcmVzdWx0c1wiLFxyXG4gICAgICBcIk5PVF9BRlRFUlwiOiBcIk5vdCBhZnRlclwiLFxyXG4gICAgICBcIk5PVF9CRUZPUkVcIjogXCJOb3QgYmVmb3JlXCIsXHJcbiAgICAgIFwiTk9USElOR19BTExPQ0FURURcIjogXCJOb3RoaW5nIGFsbG9jYXRlZFwiLFxyXG4gICAgICBcIk5PVEhJTkdfQ09ORklSTUVEXCI6IFwiTm90aGluZyBjb25maXJtZWRcIixcclxuICAgICAgXCJOT1RISU5HX0RFTElWRVJFRFwiOiBcIk5vdGhpbmcgZGVsaXZlcmVkXCIsXHJcbiAgICAgIFwiTk9USElOR19SRUNFSVZFRF9ERUxJVkVSRURcIjogXCJOb3RoaW5nIHJlY2VpdmVkIC8gZGVsaXZlcmVkXCIsXHJcbiAgICAgIFwiTk9USElOR19JTlZPSUNFRFwiOiBcIk5vdGhpbmcgaW52b2ljZWRcIixcclxuICAgICAgXCJOT1RISU5HX1RPX0JFX1BJQ0tFRFwiOiBcIk5vdGhpbmcgdG8gYmUgcGlja2VkXCIsXHJcbiAgICAgIFwiTk9USElOR19QSUNLRURcIjogXCJOb3RoaW5nIHBpY2tlZFwiLFxyXG4gICAgICBcIk5SXCI6IFwiTnVtYmVyXCIsXHJcbiAgICAgIFwiTlVNQkVSXCI6IFwiQW1vdW50XCIsXHJcbiAgICAgIFwiT05fREFURVwiOiBcIk9uIGRhdGVcIixcclxuICAgICAgXCJPTl9IT0xEXCI6IFwiT24gaG9sZFwiLFxyXG4gICAgICBcIk9QRU5fU0hPUFBJTkdfQ0FSVFwiOiBcIk9wZW4gc2hvcHBpbmcgY2FydFwiLFxyXG4gICAgICBcIk9SREVSX0NPTkZJUk1BVElPTlNcIjogXCJPcmRlciBjb25maXJtYXRpb25zXCIsXHJcbiAgICAgIFwiT1JERVJfREFURVwiOiBcIk9yZGVyIGRhdGVcIixcclxuICAgICAgXCJPUkRFUl9EQVRBXCI6IFwiT3JkZXJkYXRhXCIsXHJcbiAgICAgIFwiT1JERVJfREVGSU5JVElWRVwiOiBcIk9yZGVyIGRlZmluaXRpdmVcIixcclxuICAgICAgXCJPUkRFUl9HUk9TU1wiOiBcIlRvdGFsIGdyb3NzIGFtb3VudFwiLFxyXG4gICAgICBcIk9SREVSX0xJTkVTXCI6IFwiT3JkZXJsaW5lc1wiLFxyXG4gICAgICBcIk9SREVSX05FVFwiOiBcIlRvdGFsIG5ldCBhbW91bnRcIixcclxuICAgICAgXCJPUkRFUl9OVU1CRVJcIjogXCJPcmRlciBudW1iZXJcIixcclxuICAgICAgXCJPUkRFUl9QQVJBTUVURVJTXCI6IFwiT3JkZXIgcGFyYW1ldGVyc1wiLFxyXG4gICAgICBcIk9SREVSX1JVTEVcIjogXCJPcmRlciBydWxlXCIsXHJcbiAgICAgIFwiT1JERVJfUlVMRVNFVFwiOiBcIk9yZGVycnVsZXNldFwiLFxyXG4gICAgICBcIk9SREVSX1RPVEFBTFwiOiBcIk9yZGVyIHRvdGFsXCIsXHJcbiAgICAgIFwiT1JERVJfVFlQRVwiOiBcIk9yZGVyIHR5cGVcIixcclxuICAgICAgXCJPUkRFUkVEXCI6IFwiT3JkZXJlZFwiLFxyXG4gICAgICBcIk9USEVSXCI6IFwiT3RoZXJcIixcclxuICAgICAgXCJPVkVSVklFV1wiOiBcIk92ZXJ2aWV3XCIsXHJcbiAgICAgIFwiT1ZFUlZJRVdfQU5EX1BBWU1FTlRcIjogXCJPdmVydmlldyBhbmQgcGF5bWVudFwiLFxyXG4gICAgICBcIk9XTl9SRUZFUkVOQ0VcIjogXCJPd24gcmVmZXJlbmNlXCIsXHJcbiAgICAgIFwiUEFDS0lOR19TTElQXCI6IFwiUGFja2luZyBzbGlwXCIsXHJcbiAgICAgIFwiUEFJRF9ET1dOMlwiOiBcIlByZXBhaWRcIixcclxuICAgICAgXCJQQVJUX0RFTElWRVJZXCI6IFwiUGFydGlhbCBkZWxpdmVyeVwiLFxyXG4gICAgICBcIlBBUlRfREVMSVZFUklFU1wiOiBcIlBhcnRpYWwgZGVsaXZlcmllc1wiLFxyXG4gICAgICBcIlBBUlRMWV9BTExPQ0FURURcIjogXCJQYXJ0bHkgYWxsb2NhdGVkXCIsXHJcbiAgICAgIFwiUEFSVExZX0NPTkZJUk1FRFwiOiBcIlBhcnRseSBjb25maXJtZWRcIixcclxuICAgICAgXCJQQVJUTFlfREVMSVZFUkVEXCI6IFwiUGFydGx5IGRlbGl2ZXJlZFwiLFxyXG4gICAgICBcIlBBUlRMWV9SRUNFSVZFRF9ERUxJVkVSRURcIjogXCJQYXJ0bHkgcmVjZWl2ZWQgLyBkZWxpdmVyZWRcIixcclxuICAgICAgXCJQQVJUTFlfSU5WT0lDRURcIjogXCJQYXJ0bHkgaW52b2ljZWRcIixcclxuICAgICAgXCJQQVJUTFlfVE9fQkVfUElDS0VEXCI6IFwiUGFydGx5IHRvIGJlIHBpY2tlZFwiLFxyXG4gICAgICBcIlBBUlRMWV9QSUNLRURcIjogXCJQYXJ0bHkgcGlja2VkXCIsXHJcbiAgICAgIFwiUEFTU1dPUkRcIjogXCJQYXNzd29yZFwiLFxyXG4gICAgICBcIlBBWVwiOiBcIlBheVwiLFxyXG4gICAgICBcIlBBWU1FTlRcIjogXCJQYXltZW50XCIsXHJcbiAgICAgIFwiUEFZTUVOVF9JTkZPUk1BVElPTlwiOiBcIlBheW1lbnQgaW5mb3JtYXRpb25cIixcclxuICAgICAgXCJQQVlNRU5UX01FVEhPRFwiOiBcIlBheW1lbnQgbWV0aG9kXCIsXHJcbiAgICAgIFwiUEVSU09OQUxfREFUQVwiOiBcIlBlcnNvbmFsIGRhdGFcIixcclxuICAgICAgXCJQSE9ORV9OT1wiOiBcIlRlbGVwaG9uZSBudW1iZXJcIixcclxuICAgICAgXCJQTEFOTklOR1wiOiBcIlBsYW5uaW5nXCIsXHJcbiAgICAgIFwiUElDS0VEXCI6IFwiUGlja2VkXCIsXHJcbiAgICAgIFwiUE9TVEFMX0NPREVcIjogXCJwb3N0YWwgY29kZVwiLFxyXG4gICAgICBcIlBSRUZFUlJFRF9EQVRFXCI6IFwiUHJlZmVycmVkIGRhdGVcIixcclxuICAgICAgXCJQUkVGSVhcIjogXCJQcmVmaXhcIixcclxuICAgICAgXCJQUkVWSU9VU1wiOiBcIlByZXZpb3VzXCIsXHJcbiAgICAgIFwiUFJJQ0VcIjogXCJQcmljZVwiLFxyXG4gICAgICBcIlBSSUNFX0xJU1RcIjogXCJQcmljZWxpc3RcIixcclxuICAgICAgXCJQUklDSU5HXCI6IFwiUHJpY2luZ1wiLFxyXG4gICAgICBcIlBSSVZBQ1lfUFJFRkVSRU5DRVNcIjogXCJQcml2YWN5IHByZWZlcmVuY2VzXCIsXHJcbiAgICAgIFwiUFJJVkFURV9QRVJTT05cIjogXCJQcml2YXRlXCIsXHJcbiAgICAgIFwiUFJPRFVDVFwiOiBcIlByb2R1Y3RcIixcclxuICAgICAgXCJQUk9EVUNUX1RZUEVcIjogXCJQcm9kdWN0IHR5cGVcIixcclxuICAgICAgXCJQVVJDSEFTRVwiOiBcIlB1cmNoYXNlXCIsXHJcbiAgICAgIFwiUFVSQ0hBU0VOVU1CRVJcIjogXCJQdXJjaGFzZSBudW1iZXJcIixcclxuICAgICAgXCJQVVJDSEFTRU9SREVSU1wiOiBcIlB1cmNoYXNlIG9yZGVyc1wiLFxyXG4gICAgICBcIlBVUkNIQVNFX1BFUlNPTlwiOiBcIlB1cmNoYXNlIHBlcnNvblwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9aRVJPX09SX0VNUFRZXCI6IFwiUXVhbnRpdHkgY2Fubm90IGJlIHplcm8gb3IgZW1wdHlcIixcclxuICAgICAgXCJRVUFOVFVNX0RJU0NPVU5UXCI6IFwiUXVhbnR1bSBkaXNjb3VudFwiLFxyXG4gICAgICBcIlJFQ0VJUFRfREVUQUlMU1wiOiBcIlJlY2VpcHQgZGV0YWlsc1wiLFxyXG4gICAgICBcIlJFQ0VJVkVEXCI6IFwiUmVjZWl2ZWRcIixcclxuICAgICAgXCJSRUNFSVZFRF9EQVRFXCI6IFwiUmVjZWl2ZWQgZGF0ZVwiLFxyXG4gICAgICBcIlJFQ0VJVkVEX0RFTElWRVJFRFwiOiBcIlJlY2VpdmVkIC8gZGVsaXZlcmVkXCIsXHJcbiAgICAgIFwiUkVGRVJFTkNFXCI6IFwiUmVmZXJlbmNlXCIsXHJcbiAgICAgIFwiUkVGRVJFTkNFX1JFTEFUSU9OXCI6IFwiUmVmLiByZWxhdGlvblwiLFxyXG4gICAgICBcIlJFTEFUSU9OX05VTUJFUlwiOiBcIlJlbGF0aW9uIG51bWJlclwiLFxyXG4gICAgICBcIlJFTUFSS1NcIjogXCJSZW1hcmtzXCIsXHJcbiAgICAgIFwiUkVRVUVTVEVEX0RFTElWRVJZXCI6IFwiUmVxdWVzdGVkIGRlbGl2ZXJ5XCIsXHJcbiAgICAgIFwiU0FMRVNPUkRFUlNcIjogXCJTYWxlcyBvcmRlcnNcIixcclxuICAgICAgXCJTQUxVVEFUSU9OXCI6IFwiU2FsdXRhdGlvblwiLFxyXG4gICAgICBcIlNBTUVfQVNfREVMSVZFUllcIjogXCJTYW1lIGFzIGRlbGl2ZXJ5IGFkZHJlc3NcIixcclxuICAgICAgXCJTQVZFXCI6IFwiU2F2ZVwiLFxyXG4gICAgICBcIlNFQVJDSFwiOiBcIlNlYXJjaFwiLFxyXG4gICAgICBcIlNFQVJDSF9BRERfQVJUSUNMRVwiOiBcIlNlYXJjaCBhbmQgYWRkIGFydGljbGVcIixcclxuICAgICAgXCJTRUFSQ0hfREVMSVZFUllfTUVUSE9EXCI6IFwiU2VhcmNoIGRlbGl2ZXJ5bWV0aG9kXCIsXHJcbiAgICAgIFwiU0VBUkNIX0lOX0NPTExFQ1RJT05cIjogXCJTZWFyY2ggaW4gY29sbGVjdGlvbi4uLlwiLFxyXG4gICAgICBcIlNFQVJDSF9OVU1CRVJfQ1VTVE9NRVJfT1JfREFURVwiOiBcIlNlYXJjaCBmb3IgbnVtYmVyLCBjdXN0b21lciBvciBkYXRlXCIsXHJcbiAgICAgIFwiU0VBUkNIX1ZBVFwiOiBcIlNlYXJjaCB2YXRcIixcclxuICAgICAgXCJTRUFSQ0hfV0FSRUhPVVNFXCI6IFwiU2VhcmNoIHdhcmVob3VzZVwiLFxyXG4gICAgICBcIlNFTEVDVFwiOiBcIlNlbGVjdFwiLFxyXG4gICAgICBcIlNFTEVDVF9BXCI6IFwiU2VsZWN0IGFcIixcclxuICAgICAgXCJTRUxFQ1RfQ0FTSF9SRUdJU1RFUlwiOiBcIlNlbGVjdCBjYXNoIHJlZ2lzdGVyXCIsXHJcbiAgICAgIFwiU0VMRUNUX0RBVEVfUkFOR0VcIjogXCJTZWxlY3QgYSBkYXRlIHJhbmdlXCIsXHJcbiAgICAgIFwiU0VSSUFMX05VTUJFUlwiOiBcIlNlcmlhbCBudW1iZXJcIixcclxuICAgICAgXCJTRVJWSUNFX05VTUJFUlwiOiBcIlNlcnZpY2UgbnVtYmVyXCIsXHJcbiAgICAgIFwiU0VSVklDRV9SRVFVRVNUX0RBVEVcIjogXCJTZXJ2aWNlIHJlcXVlc3QgZGF0YVwiLFxyXG4gICAgICBcIlNFUlZJQ0VfU1RBVEVcIjogXCJTZXJ2aWNlIHN0YXRlXCIsXHJcbiAgICAgIFwiU0hPUFBJTkdfQ0FSVFwiOiBcIlNob3BwaW5nIGNhcnRcIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUX0NIRUNLT1VUXCI6IFwiQ2hlY2tvdXRcIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUX09WRVJWSUVXXCI6IFwiT3JkZXIgb3ZlcnZpZXdcIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUX1JFU1VNRVwiOiBcIlJlc3VtZSBzaG9wcGluZ1wiLFxyXG4gICAgICBcIlNIT1dfTU9SRVwiOiBcIlNob3cgbW9yZVwiLFxyXG4gICAgICBcIlNIT1dfTEVTU1wiOiBcIlNob3cgbGVzc1wiLFxyXG4gICAgICBcIlNQRUNJQUxfRElTQ09VTlRcIjogXCJTcGVjaWFsIGRpc2NvdW50XCIsXHJcbiAgICAgIFwiU09VUkNFX1dBUkVIT1VTRVwiOiBcIlNvdXJjZSB3YXJlaG91c2VcIixcclxuICAgICAgXCJTVE9DS1wiOiBcIlN0b2NrXCIsXHJcbiAgICAgIFwiU1RPQ0tfTk9USUZJQ0FUSU9OXCI6IFwiU3RvY2sgbm90aWZpY2F0aW9uXCIsXHJcbiAgICAgIFwiU1RPQ0tfQVZBSUxBQkxFX0NIQU5HRV9XQVJFSE9VU0VfT1JfQ09NTUlTU0lPTkNPREVcIjogXCJOb3QgZW5vdWdoIHN1cHBseS4gQ2hhbmdlIHdhcmVob3VzZSBhbmQvb3IgY29tbWlzc2lvbmNvZGVcIixcclxuICAgICAgXCJTVUJUT1RBTFwiOiBcIlN1YnRvdGFsXCIsXHJcbiAgICAgIFwiU1VHR0VTVElPTlNcIjogXCJTdWdnZXN0aW9uc1wiLFxyXG4gICAgICBcIlNVUFBMSUVSXCI6IFwiU3VwcGxpZXJcIixcclxuICAgICAgXCJTVVJDSEFSR0VfQU1PVU5UXCI6IFwiU3VyY2hhcmdlXCIsXHJcbiAgICAgIFwiU1RBVEVcIjogXCJTVEFUVVNcIixcclxuICAgICAgXCJTVFJFRVRcIjogXCJTdHJlZXRuYW1lXCIsXHJcbiAgICAgIFwiVEFHU1wiOiBcIlRhZ3NcIixcclxuICAgICAgXCJUT19SRVBPUlRfSU5cIjogJ1RvIHJlcG9ydCBpbicsXHJcbiAgICAgIFwiVE9fQkVfUElDS0VEXCI6IFwiVGUgYmUgcGlja2VkXCIsXHJcbiAgICAgIFwiVE9fREVMSVZFUlwiOiBcIlRvIGRlbGl2ZXJcIixcclxuICAgICAgXCJUT19QQVlcIjogXCJUbyBwYXlcIixcclxuICAgICAgXCJUT1RBTF9BTU9VTlRcIjogXCJUb3RhbCBhbW91bnRcIixcclxuICAgICAgXCJUT1RBTF9BU1NFTUJMWV9USU1FXCI6IFwiVG90YWwgYXNzZW1ibHkgdGltZVwiLFxyXG4gICAgICBcIlRPVEFMX0dST1NTXCI6IFwiR3Jvc3MgdG90YWxcIixcclxuICAgICAgXCJUT1RBTF9MSU5FX0RJU0NPVU5UXCI6IFwiVG90YWwgbGluZWRpc2NvdW50XCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fREFURVwiOiBcIlRyYW5zYWN0aW9uIGRhdGVcIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9ESVNDT1VOVFwiOiBcIlRvdGFsIHRyYW5zYWN0aW9uIGRpc2NvdW50XCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fRElTQ09VTlRfUEVSQ1wiOiBcIiUgVHJhbnMuIGRpc2NvdW50XCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fUFJJQ0VfREVDTEFSQVRJT05cIjogXCJUcmFuc2FjdGlvbiBwcmljZSBkZWNsYXJhdGlvblwiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX1NVTV9JXCI6IFwiT3JkZXJ0b3RhbCBpbmNsIFZBVFwiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX1RPVEFMXCI6IFwiVHJhbnNhY3Rpb24gdG90YWxcIixcclxuICAgICAgXCJUUkFOU1BPUlRcIjogXCJUcmFuc3BvcnRcIixcclxuICAgICAgXCJUUkFOU1BPUlRfQ09TVFwiOiBcIlRyYW5zcG9ydGNvc3RzXCIsXHJcbiAgICAgIFwiVFJBTlNQT1JUX0NPU1RfTElORV9UT1RBTFwiOiBcIlRyYW5zcG9ydGNvc3RzIGxpbmV0b3RhbFwiLFxyXG4gICAgICBcIlRVUk5PVkVSX0dST1VQXCI6IFwiVHVybm92ZXIgZ3JvdXBcIixcclxuICAgICAgXCJUWVBFXCI6IFwiVHlwZVwiLFxyXG4gICAgICBcIlVOS05PV05cIjogXCJ1bmtub3duXCIsXHJcbiAgICAgIFwiVU5LTk9XTl9BRERSRVNTX0NIRUNLX0lUXCI6IFwiVW5rbm93biBhZGRyZXNzXCIsXHJcbiAgICAgIFwiVVNFUlwiOiBcIlVzZXJcIixcclxuICAgICAgXCJWQUxVRVwiOiBcIlZhbHVlXCIsXHJcbiAgICAgIFwiVkFUXCI6IFwiVkFUXCIsXHJcbiAgICAgIFwiVkFUMlwiOiBcIlZBVFwiLFxyXG4gICAgICBcIlZBVF9BTU9VTlRcIjogXCJWQVQgYW1vdW50XCIsXHJcbiAgICAgIFwiV0FSRUhPVVNFXCI6IFwiV2FyZWhvdXNlXCIsXHJcbiAgICAgIFwiV0hFUkVfQVJFX1lPVV9MT09LSU5HX0ZPUlwiOiBcIldoZXJlIGFyZSB5b3UgbG9va2luZyBmb3I/XCIsXHJcbiAgICAgIFwiWU9VUl9EQVRBXCI6IFwiWW91ciBkYXRhXCIsXHJcbiAgICAgIFwiU1RBTkRBUkRfVEVYVFNcIjpcIlN0YW5kYXJkIHRleHRzXCIsXHJcbiAgICAgIFwiQVJUSUNMRV9CT1VORF9URVhUXCI6IFwiQXJ0aWNsZSBib3VuZCB0ZXh0XCIsXHJcbiAgICAgIFwiRk9SX0RPQ1VNRU5UU1wiOiBcIlVzZWQgYXQgZG9jdW1lbnRzXCIsXHJcbiAgICAgIFwiQ0hBTkdFX0FSVElDTEVfVEVYVFwiOiBcIkNoYW5nZSBhcnRpY2xlIHRleHRcIixcclxuICAgIH0sXHJcbiAgfTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { EventEmitter } from "@angular/core";
|
|
2
|
+
// Class represents a value that is to be loaded only once, lazily, by its .loadFunction, despite how many times or how fast its getValue() is called.
|
|
3
|
+
export class CacheField {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.onLoad = new EventEmitter();
|
|
6
|
+
this._isLoaded = false;
|
|
7
|
+
}
|
|
8
|
+
// The value of this cache field. Warning: might not have been loaded yet. Call ensureLoaded() or getvalue() for true value.
|
|
9
|
+
get value() {
|
|
10
|
+
return this._value;
|
|
11
|
+
}
|
|
12
|
+
set value(value) {
|
|
13
|
+
this._value = value;
|
|
14
|
+
this._promiseValue = Promise.resolve(value);
|
|
15
|
+
this._isLoaded = true;
|
|
16
|
+
}
|
|
17
|
+
// Whether the value has been loaded or not.
|
|
18
|
+
get isLoaded() {
|
|
19
|
+
return this._isLoaded;
|
|
20
|
+
}
|
|
21
|
+
// Whether the value is currently loading or not.
|
|
22
|
+
get isLoading() {
|
|
23
|
+
return !this._isLoaded && (this._promiseValue !== null && this._promiseValue !== undefined);
|
|
24
|
+
}
|
|
25
|
+
get loadNeverCalled() {
|
|
26
|
+
return !this.isLoading && !this.isLoaded;
|
|
27
|
+
}
|
|
28
|
+
// Loads and returns the value. Only loads from db if it wasn't loaded before (or forceReload was given true)
|
|
29
|
+
getValue(forceReload) {
|
|
30
|
+
return this.ensureLoaded(forceReload);
|
|
31
|
+
}
|
|
32
|
+
setValue(value) {
|
|
33
|
+
this.value = value;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* POSTCONDITION: The .value of this cache field contains the loaded value as fetched by the resolve data of its .loadFunction.
|
|
37
|
+
* Will load only once, consecutive calls will resolve immediately or wait until the first original database fetch was finished.
|
|
38
|
+
* @returns {Promise<any>} Postcondition holds after resolve
|
|
39
|
+
*/
|
|
40
|
+
ensureLoaded(forceReload) {
|
|
41
|
+
if (!forceReload && this._promiseValue) {
|
|
42
|
+
return this._promiseValue;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return this._load();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// POSTCONDITION: The .value of this cache field contains a freshly loaded value as fetched by the resolve data of its loadFunction.
|
|
49
|
+
reload() {
|
|
50
|
+
return this.ensureLoaded(true);
|
|
51
|
+
}
|
|
52
|
+
// Resets / invaldates this cache field. Makes sure that the next load() will really perform its load function body again (e.g. visit the DB,
|
|
53
|
+
// if that's ur function)
|
|
54
|
+
reset() {
|
|
55
|
+
this._value = undefined;
|
|
56
|
+
this._promiseValue = undefined;
|
|
57
|
+
this._isLoaded = false;
|
|
58
|
+
}
|
|
59
|
+
_load() {
|
|
60
|
+
if (this.loadFunction) {
|
|
61
|
+
this._promiseValue = this.loadFunction.call(this);
|
|
62
|
+
this._promiseValue.then((value) => {
|
|
63
|
+
this._value = value;
|
|
64
|
+
this._isLoaded = true;
|
|
65
|
+
this.onLoad.emit();
|
|
66
|
+
return value;
|
|
67
|
+
});
|
|
68
|
+
return this._promiseValue;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
return Promise.resolve(undefined);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NhY2hlL2NhY2hlLWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFM0Msc0pBQXNKO0FBQ3RKLE1BQU0sT0FBTyxVQUFVO0lBbUNyQjtRQWxDZ0IsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBZ0M1RCxjQUFTLEdBQVksS0FBSyxDQUFDO0lBR25DLENBQUM7SUFqQ0QsNEhBQTRIO0lBQzVILElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBVyxLQUFLLENBQUMsS0FBUTtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxpREFBaUQ7SUFDakQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMzQyxDQUFDO0lBWUQsNkdBQTZHO0lBQ3RHLFFBQVEsQ0FBQyxXQUFxQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLFdBQXFCO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDM0I7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELG9JQUFvSTtJQUM3SCxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCw2SUFBNkk7SUFDN0kseUJBQXlCO0lBQ2xCLEtBQUs7UUFDVixJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBUSxFQUFFLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUMzQjthQUFNO1lBQ0wsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudEVtaXR0ZXJ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDbGFzcyByZXByZXNlbnRzIGEgdmFsdWUgdGhhdCBpcyB0byBiZSBsb2FkZWQgb25seSBvbmNlLCBsYXppbHksIGJ5IGl0cyAubG9hZEZ1bmN0aW9uLCBkZXNwaXRlIGhvdyBtYW55IHRpbWVzIG9yIGhvdyBmYXN0IGl0cyBnZXRWYWx1ZSgpIGlzIGNhbGxlZC5cclxuZXhwb3J0IGNsYXNzIENhY2hlRmllbGQ8VD4ge1xyXG4gIHB1YmxpYyByZWFkb25seSBvbkxvYWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIC8vIFRoZSB2YWx1ZSBvZiB0aGlzIGNhY2hlIGZpZWxkLiBXYXJuaW5nOiBtaWdodCBub3QgaGF2ZSBiZWVuIGxvYWRlZCB5ZXQuIENhbGwgZW5zdXJlTG9hZGVkKCkgb3IgZ2V0dmFsdWUoKSBmb3IgdHJ1ZSB2YWx1ZS5cclxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3Byb21pc2VWYWx1ZSA9IFByb21pc2UucmVzb2x2ZSh2YWx1ZSk7XHJcbiAgICB0aGlzLl9pc0xvYWRlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvLyBXaGV0aGVyIHRoZSB2YWx1ZSBoYXMgYmVlbiBsb2FkZWQgb3Igbm90LlxyXG4gIHB1YmxpYyBnZXQgaXNMb2FkZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNMb2FkZWQ7XHJcbiAgfVxyXG5cclxuICAvLyBXaGV0aGVyIHRoZSB2YWx1ZSBpcyBjdXJyZW50bHkgbG9hZGluZyBvciBub3QuXHJcbiAgcHVibGljIGdldCBpc0xvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuX2lzTG9hZGVkICYmICh0aGlzLl9wcm9taXNlVmFsdWUgIT09IG51bGwgJiYgdGhpcy5fcHJvbWlzZVZhbHVlICE9PSB1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBsb2FkTmV2ZXJDYWxsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuaXNMb2FkaW5nICYmICF0aGlzLmlzTG9hZGVkO1xyXG4gIH1cclxuXHJcbiAgLy8gQXNzaWduIHRoZSBsb2FkIGZ1bmN0aW9uIHRvIHRoaXMgZmllbGQuIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHZhbHVlIGFzIGRhdGEuXHJcbiAgcHVibGljIGxvYWRGdW5jdGlvbjogKHBhcmFtcz86IGFueSkgPT4gUHJvbWlzZTxUPjtcclxuXHJcbiAgcHJpdmF0ZSBfcHJvbWlzZVZhbHVlOiBQcm9taXNlPFQ+O1xyXG4gIHByaXZhdGUgX3ZhbHVlOiBUO1xyXG4gIHByaXZhdGUgX2lzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgLy8gTG9hZHMgYW5kIHJldHVybnMgdGhlIHZhbHVlLiBPbmx5IGxvYWRzIGZyb20gZGIgaWYgaXQgd2Fzbid0IGxvYWRlZCBiZWZvcmUgKG9yIGZvcmNlUmVsb2FkIHdhcyBnaXZlbiB0cnVlKVxyXG4gIHB1YmxpYyBnZXRWYWx1ZShmb3JjZVJlbG9hZD86IGJvb2xlYW4pOiBQcm9taXNlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmVuc3VyZUxvYWRlZChmb3JjZVJlbG9hZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IGFueSk6IHZvaWQgeyAvL05PU09OQVJcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBPU1RDT05ESVRJT046IFRoZSAudmFsdWUgb2YgdGhpcyBjYWNoZSBmaWVsZCBjb250YWlucyB0aGUgbG9hZGVkIHZhbHVlIGFzIGZldGNoZWQgYnkgdGhlIHJlc29sdmUgZGF0YSBvZiBpdHMgLmxvYWRGdW5jdGlvbi5cclxuICAgKiBXaWxsIGxvYWQgb25seSBvbmNlLCBjb25zZWN1dGl2ZSBjYWxscyB3aWxsIHJlc29sdmUgaW1tZWRpYXRlbHkgb3Igd2FpdCB1bnRpbCB0aGUgZmlyc3Qgb3JpZ2luYWwgZGF0YWJhc2UgZmV0Y2ggd2FzIGZpbmlzaGVkLlxyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59IFBvc3Rjb25kaXRpb24gaG9sZHMgYWZ0ZXIgcmVzb2x2ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBlbnN1cmVMb2FkZWQoZm9yY2VSZWxvYWQ/OiBib29sZWFuKTogUHJvbWlzZTxUPiB7XHJcbiAgICBpZiAoIWZvcmNlUmVsb2FkICYmIHRoaXMuX3Byb21pc2VWYWx1ZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fcHJvbWlzZVZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2xvYWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFBPU1RDT05ESVRJT046IFRoZSAudmFsdWUgb2YgdGhpcyBjYWNoZSBmaWVsZCBjb250YWlucyBhIGZyZXNobHkgbG9hZGVkIHZhbHVlIGFzIGZldGNoZWQgYnkgdGhlIHJlc29sdmUgZGF0YSBvZiBpdHMgbG9hZEZ1bmN0aW9uLlxyXG4gIHB1YmxpYyByZWxvYWQoKTogUHJvbWlzZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVMb2FkZWQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvLyBSZXNldHMgLyBpbnZhbGRhdGVzIHRoaXMgY2FjaGUgZmllbGQuIE1ha2VzIHN1cmUgdGhhdCB0aGUgbmV4dCBsb2FkKCkgd2lsbCByZWFsbHkgcGVyZm9ybSBpdHMgbG9hZCBmdW5jdGlvbiBib2R5IGFnYWluIChlLmcuIHZpc2l0IHRoZSBEQixcclxuICAvLyBpZiB0aGF0J3MgdXIgZnVuY3Rpb24pXHJcbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLl9wcm9taXNlVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLl9pc0xvYWRlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9hZCgpOiBQcm9taXNlPFQ+IHtcclxuICAgIGlmICh0aGlzLmxvYWRGdW5jdGlvbikge1xyXG4gICAgICB0aGlzLl9wcm9taXNlVmFsdWUgPSB0aGlzLmxvYWRGdW5jdGlvbi5jYWxsKHRoaXMpO1xyXG4gICAgICB0aGlzLl9wcm9taXNlVmFsdWUudGhlbigodmFsdWU6IFQpID0+IHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX2lzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm9uTG9hZC5lbWl0KCk7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHRoaXMuX3Byb21pc2VWYWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { CacheField } from "./cache-field";
|
|
2
|
+
import { ObjectUtils } from "@colijnit/transactionapi/build/utils/object-utils";
|
|
3
|
+
// Class represents cached values retrieved by a load function that is to be called only once per unique input parameter combination.
|
|
4
|
+
export class ParameterCacheField {
|
|
5
|
+
constructor() {
|
|
6
|
+
// A map from cache params (keys: the loadFunction arguments) to their cache fields
|
|
7
|
+
this._paramsToCacheItems = new Map();
|
|
8
|
+
}
|
|
9
|
+
// Returns the value for given loadfunction parameters. Loads if not yet loaded.
|
|
10
|
+
getValue(...params) {
|
|
11
|
+
return this._getCacheField(params).getValue();
|
|
12
|
+
}
|
|
13
|
+
setValue(value, ...params) {
|
|
14
|
+
return this._getCacheField(params).setValue(value);
|
|
15
|
+
}
|
|
16
|
+
// Returns the freshly reloaded value for given loadfunction parameters.
|
|
17
|
+
reload(...params) {
|
|
18
|
+
return this._getCacheField(params).reload();
|
|
19
|
+
}
|
|
20
|
+
// Resets one or all cache items. If no params given, resets ALL cache items.
|
|
21
|
+
reset(...params) {
|
|
22
|
+
if (params && params.length > 0) {
|
|
23
|
+
this._getCacheField(params).reset();
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this._paramsToCacheItems.forEach(cacheItem => cacheItem.reset());
|
|
27
|
+
this._paramsToCacheItems.clear();
|
|
28
|
+
this._paramsToCacheItems = new Map(); // not sure if clear() is enough for garbage collector?
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Makes a new cache field if none existed for these params. Returns the cache field that matches given params.
|
|
32
|
+
_getCacheField(params) {
|
|
33
|
+
let existingCacheField = undefined;
|
|
34
|
+
this._paramsToCacheItems.forEach((value, key) => {
|
|
35
|
+
if (!existingCacheField && ObjectUtils.DeepEquals(params, key)) {
|
|
36
|
+
existingCacheField = value;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
if (existingCacheField) {
|
|
40
|
+
return existingCacheField;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return this._makeNewCacheField(params);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Creates and returns a new loadField for given params
|
|
47
|
+
_makeNewCacheField(params) {
|
|
48
|
+
const cacheField = new CacheField();
|
|
49
|
+
cacheField.loadFunction = this.loadFunction.bind(cacheField, ...params);
|
|
50
|
+
this._paramsToCacheItems.set(params, cacheField);
|
|
51
|
+
return cacheField;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWNhY2hlLWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jYWNoZS9wYXJhbWV0ZXItY2FjaGUtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFFOUUscUlBQXFJO0FBQ3JJLE1BQU0sT0FBTyxtQkFBbUI7SUFNOUI7UUFIQSxtRkFBbUY7UUFDM0Usd0JBQW1CLEdBQThCLElBQUksR0FBRyxFQUF3QixDQUFDO0lBR3pGLENBQUM7SUFFRCxnRkFBZ0Y7SUFDekUsUUFBUSxDQUFDLEdBQUcsTUFBYTtRQUM5QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFVLEVBQUUsR0FBRyxNQUFhO1FBQzFDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELHdFQUF3RTtJQUNqRSxNQUFNLENBQUMsR0FBRyxNQUFhO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsNkVBQTZFO0lBQ3RFLEtBQUssQ0FBQyxHQUFHLE1BQWE7UUFDM0IsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNyQzthQUFNO1lBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUMsQ0FBQyx1REFBdUQ7U0FDbEg7SUFDSCxDQUFDO0lBRUQsK0dBQStHO0lBQ3ZHLGNBQWMsQ0FBQyxNQUFhO1FBQ2xDLElBQUksa0JBQWtCLEdBQWtCLFNBQVMsQ0FBQztRQUVsRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBb0IsRUFBRSxHQUFVLEVBQUUsRUFBRTtZQUNwRSxJQUFJLENBQUMsa0JBQWtCLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQzlELGtCQUFrQixHQUFHLEtBQUssQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxrQkFBa0IsRUFBRTtZQUN0QixPQUFPLGtCQUFrQixDQUFDO1NBQzNCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFRCx1REFBdUQ7SUFDL0Msa0JBQWtCLENBQUMsTUFBYTtRQUN0QyxNQUFNLFVBQVUsR0FBa0IsSUFBSSxVQUFVLEVBQUssQ0FBQztRQUN0RCxVQUFVLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2FjaGVGaWVsZH0gZnJvbSBcIi4vY2FjaGUtZmllbGRcIjtcclxuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC91dGlscy9vYmplY3QtdXRpbHNcIjtcclxuXHJcbi8vIENsYXNzIHJlcHJlc2VudHMgY2FjaGVkIHZhbHVlcyByZXRyaWV2ZWQgYnkgYSBsb2FkIGZ1bmN0aW9uIHRoYXQgaXMgdG8gYmUgY2FsbGVkIG9ubHkgb25jZSBwZXIgdW5pcXVlIGlucHV0IHBhcmFtZXRlciBjb21iaW5hdGlvbi5cclxuZXhwb3J0IGNsYXNzIFBhcmFtZXRlckNhY2hlRmllbGQ8VD4ge1xyXG4gIHB1YmxpYyBsb2FkRnVuY3Rpb246ICguLi5wYXJhbXM6IGFueVtdKSA9PiBQcm9taXNlPFQ+O1xyXG5cclxuICAvLyBBIG1hcCBmcm9tIGNhY2hlIHBhcmFtcyAoa2V5czogdGhlIGxvYWRGdW5jdGlvbiBhcmd1bWVudHMpIHRvIHRoZWlyIGNhY2hlIGZpZWxkc1xyXG4gIHByaXZhdGUgX3BhcmFtc1RvQ2FjaGVJdGVtczogTWFwPGFueVtdLCBDYWNoZUZpZWxkPFQ+PiA9IG5ldyBNYXA8YW55W10sIENhY2hlRmllbGQ8VD4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgLy8gUmV0dXJucyB0aGUgdmFsdWUgZm9yIGdpdmVuIGxvYWRmdW5jdGlvbiBwYXJhbWV0ZXJzLiBMb2FkcyBpZiBub3QgeWV0IGxvYWRlZC5cclxuICBwdWJsaWMgZ2V0VmFsdWUoLi4ucGFyYW1zOiBhbnlbXSk6IFByb21pc2U8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dldENhY2hlRmllbGQocGFyYW1zKS5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBhbnksIC4uLnBhcmFtczogYW55W10pOiB2b2lkIHtcclxuICAgIHJldHVybiB0aGlzLl9nZXRDYWNoZUZpZWxkKHBhcmFtcykuc2V0VmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gUmV0dXJucyB0aGUgZnJlc2hseSByZWxvYWRlZCB2YWx1ZSBmb3IgZ2l2ZW4gbG9hZGZ1bmN0aW9uIHBhcmFtZXRlcnMuXHJcbiAgcHVibGljIHJlbG9hZCguLi5wYXJhbXM6IGFueVtdKTogUHJvbWlzZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2V0Q2FjaGVGaWVsZChwYXJhbXMpLnJlbG9hZCgpO1xyXG4gIH1cclxuXHJcbiAgLy8gUmVzZXRzIG9uZSBvciBhbGwgY2FjaGUgaXRlbXMuIElmIG5vIHBhcmFtcyBnaXZlbiwgcmVzZXRzIEFMTCBjYWNoZSBpdGVtcy5cclxuICBwdWJsaWMgcmVzZXQoLi4ucGFyYW1zOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgaWYgKHBhcmFtcyAmJiBwYXJhbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLl9nZXRDYWNoZUZpZWxkKHBhcmFtcykucmVzZXQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3BhcmFtc1RvQ2FjaGVJdGVtcy5mb3JFYWNoKGNhY2hlSXRlbSA9PiBjYWNoZUl0ZW0ucmVzZXQoKSk7XHJcbiAgICAgIHRoaXMuX3BhcmFtc1RvQ2FjaGVJdGVtcy5jbGVhcigpO1xyXG4gICAgICB0aGlzLl9wYXJhbXNUb0NhY2hlSXRlbXMgPSBuZXcgTWFwPGFueSwgQ2FjaGVGaWVsZDxUPj4oKTsgLy8gbm90IHN1cmUgaWYgY2xlYXIoKSBpcyBlbm91Z2ggZm9yIGdhcmJhZ2UgY29sbGVjdG9yP1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTWFrZXMgYSBuZXcgY2FjaGUgZmllbGQgaWYgbm9uZSBleGlzdGVkIGZvciB0aGVzZSBwYXJhbXMuIFJldHVybnMgdGhlIGNhY2hlIGZpZWxkIHRoYXQgbWF0Y2hlcyBnaXZlbiBwYXJhbXMuXHJcbiAgcHJpdmF0ZSBfZ2V0Q2FjaGVGaWVsZChwYXJhbXM6IGFueVtdKTogQ2FjaGVGaWVsZDxUPiB7XHJcbiAgICBsZXQgZXhpc3RpbmdDYWNoZUZpZWxkOiBDYWNoZUZpZWxkPFQ+ID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHRoaXMuX3BhcmFtc1RvQ2FjaGVJdGVtcy5mb3JFYWNoKCh2YWx1ZTogQ2FjaGVGaWVsZDxUPiwga2V5OiBhbnlbXSkgPT4ge1xyXG4gICAgICBpZiAoIWV4aXN0aW5nQ2FjaGVGaWVsZCAmJiBPYmplY3RVdGlscy5EZWVwRXF1YWxzKHBhcmFtcywga2V5KSkge1xyXG4gICAgICAgIGV4aXN0aW5nQ2FjaGVGaWVsZCA9IHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoZXhpc3RpbmdDYWNoZUZpZWxkKSB7XHJcbiAgICAgIHJldHVybiBleGlzdGluZ0NhY2hlRmllbGQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5fbWFrZU5ld0NhY2hlRmllbGQocGFyYW1zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENyZWF0ZXMgYW5kIHJldHVybnMgYSBuZXcgbG9hZEZpZWxkIGZvciBnaXZlbiBwYXJhbXNcclxuICBwcml2YXRlIF9tYWtlTmV3Q2FjaGVGaWVsZChwYXJhbXM6IGFueVtdKTogQ2FjaGVGaWVsZDxUPiB7XHJcbiAgICBjb25zdCBjYWNoZUZpZWxkOiBDYWNoZUZpZWxkPFQ+ID0gbmV3IENhY2hlRmllbGQ8VD4oKTtcclxuICAgIGNhY2hlRmllbGQubG9hZEZ1bmN0aW9uID0gdGhpcy5sb2FkRnVuY3Rpb24uYmluZChjYWNoZUZpZWxkLCAuLi5wYXJhbXMpO1xyXG4gICAgdGhpcy5fcGFyYW1zVG9DYWNoZUl0ZW1zLnNldChwYXJhbXMsIGNhY2hlRmllbGQpO1xyXG4gICAgcmV0dXJuIGNhY2hlRmllbGQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|