@sbb-esta/lyne-elements-experimental 4.0.1 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/custom-elements.json +198 -50
  2. package/development/pearl-chain/pearl-chain.component.js +1 -3
  3. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +11 -5
  4. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  5. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +116 -56
  6. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  7. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +145 -259
  8. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts.map +1 -1
  9. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +11 -8
  10. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  11. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +153 -45
  12. package/package.json +2 -2
  13. package/pearl-chain/pearl-chain.component.js +1 -1
  14. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +11 -5
  15. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  16. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +201 -175
  17. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  18. package/seat-reservation/seat-reservation/seat-reservation.component.js +188 -194
  19. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts.map +1 -1
  20. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +31 -28
  21. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  22. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +143 -142
@@ -3056,7 +3056,7 @@
3056
3056
  },
3057
3057
  {
3058
3058
  "kind": "field",
3059
- "name": "hoveredScrollCoachIndex",
3059
+ "name": "hoveredCoachIndex",
3060
3060
  "type": {
3061
3061
  "text": "number"
3062
3062
  },
@@ -3157,24 +3157,6 @@
3157
3157
  "privacy": "protected",
3158
3158
  "default": "[]"
3159
3159
  },
3160
- {
3161
- "kind": "field",
3162
- "name": "firstTabElement",
3163
- "type": {
3164
- "text": "HTMLElement"
3165
- },
3166
- "privacy": "protected",
3167
- "default": "null!"
3168
- },
3169
- {
3170
- "kind": "field",
3171
- "name": "lastTabElement",
3172
- "type": {
3173
- "text": "HTMLElement"
3174
- },
3175
- "privacy": "protected",
3176
- "default": "null!"
3177
- },
3178
3160
  {
3179
3161
  "kind": "field",
3180
3162
  "name": "navigationScrollArea",
@@ -3310,6 +3292,15 @@
3310
3292
  "text": "{\n ArrowLeft: 'ArrowLeft',\n ArrowRight: 'ArrowRight',\n ArrowUp: 'ArrowUp',\n ArrowDown: 'ArrowDown',\n Tab: 'Tab',\n Enter: 'Enter',\n }"
3311
3293
  }
3312
3294
  },
3295
+ {
3296
+ "kind": "field",
3297
+ "name": "_isRunningInitPreselectCoachIndex",
3298
+ "type": {
3299
+ "text": "boolean"
3300
+ },
3301
+ "privacy": "private",
3302
+ "default": "false"
3303
+ },
3313
3304
  {
3314
3305
  "kind": "field",
3315
3306
  "name": "_scrollTimeout",
@@ -3318,6 +3309,15 @@
3318
3309
  },
3319
3310
  "privacy": "private"
3320
3311
  },
3312
+ {
3313
+ "kind": "field",
3314
+ "name": "_lastStartScrollPos",
3315
+ "type": {
3316
+ "text": "number"
3317
+ },
3318
+ "privacy": "private",
3319
+ "default": "-1"
3320
+ },
3321
3321
  {
3322
3322
  "kind": "method",
3323
3323
  "name": "navigateByDirectionBtn",
@@ -3390,7 +3390,18 @@
3390
3390
  },
3391
3391
  {
3392
3392
  "kind": "method",
3393
- "name": "handleKeyboardEvent",
3393
+ "name": "onFocusNavDirectionButton",
3394
+ "privacy": "protected",
3395
+ "return": {
3396
+ "type": {
3397
+ "text": "void"
3398
+ }
3399
+ },
3400
+ "description": "Will be triggerd by focus navigation direction"
3401
+ },
3402
+ {
3403
+ "kind": "method",
3404
+ "name": "onKeyNavigationNavCoachButton",
3394
3405
  "privacy": "protected",
3395
3406
  "return": {
3396
3407
  "type": {
@@ -3403,9 +3414,66 @@
3403
3414
  "type": {
3404
3415
  "text": "KeyboardEvent"
3405
3416
  }
3417
+ },
3418
+ {
3419
+ "name": "currNavCoachButtonIndex",
3420
+ "type": {
3421
+ "text": "number"
3422
+ }
3406
3423
  }
3407
3424
  ],
3408
- "description": "Initialisation of Keyboard event handling to navigation between each places inside a selected coach by using [arrow] keys.\nWith the [TAB] key the user navigation goes to the next coach navigation element and the currently selected place is automatically reset."
3425
+ "description": "TAB Key Event handling for Coach Navigation"
3426
+ },
3427
+ {
3428
+ "kind": "method",
3429
+ "name": "_handleTabKeyNavigation",
3430
+ "privacy": "private",
3431
+ "return": {
3432
+ "type": {
3433
+ "text": "void"
3434
+ }
3435
+ },
3436
+ "parameters": [
3437
+ {
3438
+ "name": "event",
3439
+ "type": {
3440
+ "text": "KeyboardEvent"
3441
+ }
3442
+ },
3443
+ {
3444
+ "name": "eventArea",
3445
+ "type": {
3446
+ "text": "string"
3447
+ }
3448
+ },
3449
+ {
3450
+ "name": "currTabIndex",
3451
+ "optional": true,
3452
+ "type": {
3453
+ "text": "number"
3454
+ }
3455
+ }
3456
+ ],
3457
+ "description": "General TAB Key Event handling for tab navigation inside the coach navigation area and the seatmap area"
3458
+ },
3459
+ {
3460
+ "kind": "method",
3461
+ "name": "keyboardSeatmapEventHadling",
3462
+ "privacy": "protected",
3463
+ "return": {
3464
+ "type": {
3465
+ "text": "void"
3466
+ }
3467
+ },
3468
+ "parameters": [
3469
+ {
3470
+ "name": "event",
3471
+ "type": {
3472
+ "text": "KeyboardEvent"
3473
+ }
3474
+ }
3475
+ ],
3476
+ "description": "Initialisation of Keyboard Seatmap event handling to navigation between each places inside a selected coach by using [arrow] keys.\nWith the [TAB] key the user navigation goes to the next coach navigation element and the currently selected place is automatically reset."
3409
3477
  },
3410
3478
  {
3411
3479
  "kind": "method",
@@ -4949,7 +5017,7 @@
4949
5017
  },
4950
5018
  {
4951
5019
  "kind": "field",
4952
- "name": "hoveredScrollCoachIndex",
5020
+ "name": "hoveredCoachIndex",
4953
5021
  "type": {
4954
5022
  "text": "number"
4955
5023
  },
@@ -5098,32 +5166,6 @@
5098
5166
  "module": "seat-reservation/seat-reservation/seat-reservation-base-element.js"
5099
5167
  }
5100
5168
  },
5101
- {
5102
- "kind": "field",
5103
- "name": "firstTabElement",
5104
- "type": {
5105
- "text": "HTMLElement"
5106
- },
5107
- "privacy": "protected",
5108
- "default": "null!",
5109
- "inheritedFrom": {
5110
- "name": "SeatReservationBaseElement",
5111
- "module": "seat-reservation/seat-reservation/seat-reservation-base-element.js"
5112
- }
5113
- },
5114
- {
5115
- "kind": "field",
5116
- "name": "lastTabElement",
5117
- "type": {
5118
- "text": "HTMLElement"
5119
- },
5120
- "privacy": "protected",
5121
- "default": "null!",
5122
- "inheritedFrom": {
5123
- "name": "SeatReservationBaseElement",
5124
- "module": "seat-reservation/seat-reservation/seat-reservation-base-element.js"
5125
- }
5126
- },
5127
5169
  {
5128
5170
  "kind": "field",
5129
5171
  "name": "navigationScrollArea",
@@ -5319,6 +5361,19 @@
5319
5361
  "module": "seat-reservation/seat-reservation/seat-reservation-base-element.js"
5320
5362
  }
5321
5363
  },
5364
+ {
5365
+ "kind": "field",
5366
+ "name": "_isRunningInitPreselectCoachIndex",
5367
+ "type": {
5368
+ "text": "boolean"
5369
+ },
5370
+ "privacy": "private",
5371
+ "default": "false",
5372
+ "inheritedFrom": {
5373
+ "name": "SeatReservationBaseElement",
5374
+ "module": "seat-reservation/seat-reservation/seat-reservation-base-element.js"
5375
+ }
5376
+ },
5322
5377
  {
5323
5378
  "kind": "field",
5324
5379
  "name": "_scrollTimeout",
@@ -5331,6 +5386,19 @@
5331
5386
  "module": "seat-reservation/seat-reservation/seat-reservation-base-element.js"
5332
5387
  }
5333
5388
  },
5389
+ {
5390
+ "kind": "field",
5391
+ "name": "_lastStartScrollPos",
5392
+ "type": {
5393
+ "text": "number"
5394
+ },
5395
+ "privacy": "private",
5396
+ "default": "-1",
5397
+ "inheritedFrom": {
5398
+ "name": "SeatReservationBaseElement",
5399
+ "module": "seat-reservation/seat-reservation/seat-reservation-base-element.js"
5400
+ }
5401
+ },
5334
5402
  {
5335
5403
  "kind": "method",
5336
5404
  "name": "navigateByDirectionBtn",
@@ -5423,7 +5491,87 @@
5423
5491
  },
5424
5492
  {
5425
5493
  "kind": "method",
5426
- "name": "handleKeyboardEvent",
5494
+ "name": "onFocusNavDirectionButton",
5495
+ "privacy": "protected",
5496
+ "return": {
5497
+ "type": {
5498
+ "text": "void"
5499
+ }
5500
+ },
5501
+ "description": "Will be triggerd by focus navigation direction",
5502
+ "inheritedFrom": {
5503
+ "name": "SeatReservationBaseElement",
5504
+ "module": "seat-reservation/seat-reservation/seat-reservation-base-element.js"
5505
+ }
5506
+ },
5507
+ {
5508
+ "kind": "method",
5509
+ "name": "onKeyNavigationNavCoachButton",
5510
+ "privacy": "protected",
5511
+ "return": {
5512
+ "type": {
5513
+ "text": "void"
5514
+ }
5515
+ },
5516
+ "parameters": [
5517
+ {
5518
+ "name": "event",
5519
+ "type": {
5520
+ "text": "KeyboardEvent"
5521
+ }
5522
+ },
5523
+ {
5524
+ "name": "currNavCoachButtonIndex",
5525
+ "type": {
5526
+ "text": "number"
5527
+ }
5528
+ }
5529
+ ],
5530
+ "description": "TAB Key Event handling for Coach Navigation",
5531
+ "inheritedFrom": {
5532
+ "name": "SeatReservationBaseElement",
5533
+ "module": "seat-reservation/seat-reservation/seat-reservation-base-element.js"
5534
+ }
5535
+ },
5536
+ {
5537
+ "kind": "method",
5538
+ "name": "_handleTabKeyNavigation",
5539
+ "privacy": "private",
5540
+ "return": {
5541
+ "type": {
5542
+ "text": "void"
5543
+ }
5544
+ },
5545
+ "parameters": [
5546
+ {
5547
+ "name": "event",
5548
+ "type": {
5549
+ "text": "KeyboardEvent"
5550
+ }
5551
+ },
5552
+ {
5553
+ "name": "eventArea",
5554
+ "type": {
5555
+ "text": "string"
5556
+ }
5557
+ },
5558
+ {
5559
+ "name": "currTabIndex",
5560
+ "optional": true,
5561
+ "type": {
5562
+ "text": "number"
5563
+ }
5564
+ }
5565
+ ],
5566
+ "description": "General TAB Key Event handling for tab navigation inside the coach navigation area and the seatmap area",
5567
+ "inheritedFrom": {
5568
+ "name": "SeatReservationBaseElement",
5569
+ "module": "seat-reservation/seat-reservation/seat-reservation-base-element.js"
5570
+ }
5571
+ },
5572
+ {
5573
+ "kind": "method",
5574
+ "name": "keyboardSeatmapEventHadling",
5427
5575
  "privacy": "protected",
5428
5576
  "return": {
5429
5577
  "type": {
@@ -5438,7 +5586,7 @@
5438
5586
  }
5439
5587
  }
5440
5588
  ],
5441
- "description": "Initialisation of Keyboard event handling to navigation between each places inside a selected coach by using [arrow] keys.\nWith the [TAB] key the user navigation goes to the next coach navigation element and the currently selected place is automatically reset.",
5589
+ "description": "Initialisation of Keyboard Seatmap event handling to navigation between each places inside a selected coach by using [arrow] keys.\nWith the [TAB] key the user navigation goes to the next coach navigation element and the currently selected place is automatically reset.",
5442
5590
  "inheritedFrom": {
5443
5591
  "name": "SeatReservationBaseElement",
5444
5592
  "module": "seat-reservation/seat-reservation/seat-reservation-base-element.js"
@@ -389,8 +389,6 @@ const style = css`:host {
389
389
  }
390
390
  .sbb-pearl-chain__position {
391
391
  animation: pearl-chain-bullet-position-pulse var(--sbb-pearl-chain-bullet-animation-duration) var(--sbb-pearl-chain-bullet-animation-easing) infinite;
392
- }
393
- .sbb-pearl-chain__position {
394
392
  position: absolute;
395
393
  inset-block-start: -200%;
396
394
  z-index: 4;
@@ -638,4 +636,4 @@ let SbbPearlChainElement = (() => {
638
636
  export {
639
637
  SbbPearlChainElement
640
638
  };
641
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVhcmwtY2hhaW4uY29tcG9uZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNBZnRlci5qcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0JlZm9yZS5qcyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvcGVhcmwtY2hhaW4vcGVhcmwtY2hhaW4uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGlzQWZ0ZXJcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGZpcnN0IGRhdGUgYWZ0ZXIgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZmlyc3QgZGF0ZSBhZnRlciB0aGUgc2Vjb25kIG9uZT9cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRoYXQgc2hvdWxkIGJlIGFmdGVyIHRoZSBvdGhlciBvbmUgdG8gcmV0dXJuIHRydWVcbiAqIEBwYXJhbSBkYXRlVG9Db21wYXJlIC0gVGhlIGRhdGUgdG8gY29tcGFyZSB3aXRoXG4gKlxuICogQHJldHVybnMgVGhlIGZpcnN0IGRhdGUgaXMgYWZ0ZXIgdGhlIHNlY29uZCBkYXRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElzIDEwIEp1bHkgMTk4OSBhZnRlciAxMSBGZWJydWFyeSAxOTg3P1xuICogY29uc3QgcmVzdWx0ID0gaXNBZnRlcihuZXcgRGF0ZSgxOTg5LCA2LCAxMCksIG5ldyBEYXRlKDE5ODcsIDEsIDExKSlcbiAqIC8vPT4gdHJ1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBZnRlcihkYXRlLCBkYXRlVG9Db21wYXJlKSB7XG4gIHJldHVybiArdG9EYXRlKGRhdGUpID4gK3RvRGF0ZShkYXRlVG9Db21wYXJlKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc0FmdGVyO1xuIiwiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgaXNCZWZvcmVcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGZpcnN0IGRhdGUgYmVmb3JlIHRoZSBzZWNvbmQgb25lP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGZpcnN0IGRhdGUgYmVmb3JlIHRoZSBzZWNvbmQgb25lP1xuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdGhhdCBzaG91bGQgYmUgYmVmb3JlIHRoZSBvdGhlciBvbmUgdG8gcmV0dXJuIHRydWVcbiAqIEBwYXJhbSBkYXRlVG9Db21wYXJlIC0gVGhlIGRhdGUgdG8gY29tcGFyZSB3aXRoXG4gKlxuICogQHJldHVybnMgVGhlIGZpcnN0IGRhdGUgaXMgYmVmb3JlIHRoZSBzZWNvbmQgZGF0ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJcyAxMCBKdWx5IDE5ODkgYmVmb3JlIDExIEZlYnJ1YXJ5IDE5ODc/XG4gKiBjb25zdCByZXN1bHQgPSBpc0JlZm9yZShuZXcgRGF0ZSgxOTg5LCA2LCAxMCksIG5ldyBEYXRlKDE5ODcsIDEsIDExKSlcbiAqIC8vPT4gZmFsc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmVmb3JlKGRhdGUsIGRhdGVUb0NvbXBhcmUpIHtcbiAgcmV0dXJuICt0b0RhdGUoZGF0ZSkgPCArdG9EYXRlKGRhdGVUb0NvbXBhcmUpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzQmVmb3JlO1xuIiwiaW1wb3J0IHsgZGVmYXVsdERhdGVBZGFwdGVyIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kYXRldGltZS5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9zdHlsZXMuanMnO1xuaW1wb3J0IHsgYWRkTWludXRlcywgZGlmZmVyZW5jZUluTWludXRlcywgaXNBZnRlciwgaXNCZWZvcmUgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50LCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgc3R5bGVNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9zdHlsZS1tYXAuanMnO1xuXG5pbXBvcnQgeyByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nIH0gZnJvbSAnLi4vY29yZS9kYXRldGltZS50cyc7XG5pbXBvcnQgdHlwZSB7IExlZywgUHRSaWRlTGVnIH0gZnJvbSAnLi4vY29yZS90aW1ldGFibGUudHMnO1xuaW1wb3J0IHsgaXNSaWRlTGVnIH0gZnJvbSAnLi4vY29yZS90aW1ldGFibGUudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9wZWFybC1jaGFpbi5zY3NzP2xpdCZpbmxpbmUnO1xuXG50eXBlIFN0YXR1cyA9ICdwcm9ncmVzcycgfCAnZnV0dXJlJyB8ICdwYXN0JztcbnR5cGUgVGltZSA9IHtcbiAgdGltZT86IERhdGU7XG4gIGRlbGF5OiBudW1iZXI7XG59O1xuXG4vKipcbiAqIEl0IHZpc3VhbGx5IGRpc3BsYXlzIGpvdXJuZXkgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1wZWFybC1jaGFpbicpXG5jbGFzcyBTYmJQZWFybENoYWluRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgbGVncyBvZiB0aGUgcGVhcmwtY2hhaW4uXG4gICAqIEZvcm1hdDpcbiAgICogYHtcImxlZ3NcIjogW3tcImR1cmF0aW9uXCI6IDI1fSwgLi4uXX1gXG4gICAqIGBkdXJhdGlvbmAgaW4gbWludXRlcy4gRHVyYXRpb24gb2YgdGhlIGxlZyBpcyByZWxhdGl2ZVxuICAgKiB0byB0aGUgdG90YWwgdHJhdmVsIHRpbWUuIEV4YW1wbGU6IGRlcGFydHVyZSAxNjozMCwgY2hhbmdlIGF0IDE2OjQwLFxuICAgKiBhcnJpdmFsIGF0IDE3OjAwLiBTbyB0aGUgY2hhbmdlIHNob3VsZCBoYXZlIGEgZHVyYXRpb24gb2YgMzMuMzMlLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSkgcHVibGljIGFjY2Vzc29yIGxlZ3M6IChMZWcgfCBQdFJpZGVMZWcpW10gPSBbXTtcblxuICAvKipcbiAgICogUGVyIGRlZmF1bHQsIHRoZSBjdXJyZW50IGxvY2F0aW9uIGhhcyBhIHB1bHNhdGluZyBhbmltYXRpb24uIFlvdSBjYW5cbiAgICogZGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdpdGggdGhpcyBwcm9wZXJ0eS5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXNhYmxlLWFuaW1hdGlvbicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVBbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBjb25maWd1cmVkIGRhdGUgd2hpY2ggYWN0cyBhcyB0aGUgY3VycmVudCBkYXRlIGluc3RlYWQgb2YgdGhlIHJlYWwgY3VycmVudCBkYXRlLlxuICAgKiBPbmx5IHJlY29tbWVuZGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBub3codmFsdWU6IERhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5fbm93ID0gZGVmYXVsdERhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbChkZWZhdWx0RGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5vdygpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX25vdztcbiAgfVxuICBwcml2YXRlIF9ub3c6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9nZXRBbGxEdXJhdGlvbihsZWdzOiBQdFJpZGVMZWdbXSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGxlZ3M/LnJlZHVjZSgoc3VtOiBudW1iZXIsIGxlZykgPT4ge1xuICAgICAgY29uc3QgYXJyaXZhbE5vVHogPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5hcnJpdmFsPy50aW1lKTtcbiAgICAgIGNvbnN0IGRlcGFydHVyZU5vVHogPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5kZXBhcnR1cmU/LnRpbWUpO1xuICAgICAgaWYgKGFycml2YWxOb1R6ICYmIGRlcGFydHVyZU5vVHopIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBzdW0gK1xuICAgICAgICAgIGRpZmZlcmVuY2VJbk1pbnV0ZXMoXG4gICAgICAgICAgICByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5hcnJpdmFsLnRpbWUpISxcbiAgICAgICAgICAgIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZS50aW1lKSEsXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN1bTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQWxsQ2FuY2VsbGVkKGxlZ3M6IFB0UmlkZUxlZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGxlZ3M/LmV2ZXJ5KChsZWcpID0+IGxlZz8uc2VydmljZUpvdXJuZXk/LnNlcnZpY2VBbHRlcmF0aW9uPy5jYW5jZWxsZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVsYXRpdmVEdXJhdGlvbihsZWdzOiBQdFJpZGVMZWdbXSwgbGVnOiBQdFJpZGVMZWcpOiBudW1iZXIge1xuICAgIGNvbnN0IGFycml2YWxOb1R6ID0gcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuYXJyaXZhbD8udGltZSk7XG4gICAgY29uc3QgZGVwYXJ0dXJlTm9UeiA9IHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZT8udGltZSk7XG4gICAgaWYgKGFycml2YWxOb1R6ICYmIGRlcGFydHVyZU5vVHopIHtcbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gZGlmZmVyZW5jZUluTWludXRlcyhcbiAgICAgICAgcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuYXJyaXZhbC50aW1lKSEsXG4gICAgICAgIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZS50aW1lKSEsXG4gICAgICApO1xuICAgICAgY29uc3QgYWxsRHVyYXRpb25zID0gdGhpcy5fZ2V0QWxsRHVyYXRpb24obGVncyk7XG5cbiAgICAgIGlmIChhbGxEdXJhdGlvbnMgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDEwMDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChkdXJhdGlvbiAvIGFsbER1cmF0aW9ucykgKiAxMDA7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UHJvZ3Jlc3Mobm93OiBEYXRlLCBzdGFydD86IFRpbWUsIGVuZD86IFRpbWUpOiBudW1iZXIge1xuICAgIGlmICghc3RhcnQ/LnRpbWUgfHwgIWVuZD8udGltZSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRXaXRoRGVsYXkgPSBhZGRNaW51dGVzKHN0YXJ0LnRpbWUsIHN0YXJ0LmRlbGF5ID8/IDApO1xuICAgIGNvbnN0IGVuZFdpdGhEZWxheSA9IGFkZE1pbnV0ZXMoZW5kLnRpbWUsIGVuZC5kZWxheSA/PyAwKTtcbiAgICBjb25zdCB0b3RhbCA9IGRpZmZlcmVuY2VJbk1pbnV0ZXMoZW5kV2l0aERlbGF5LCBzdGFydFdpdGhEZWxheSk7XG4gICAgY29uc3QgcHJvZ3Jlc3MgPSBkaWZmZXJlbmNlSW5NaW51dGVzKG5vdywgc3RhcnRXaXRoRGVsYXkpO1xuXG4gICAgcmV0dXJuIHRvdGFsICYmIChwcm9ncmVzcyAvIHRvdGFsKSAqIDEwMDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFN0YXR1cyhub3c6IERhdGUsIHN0YXJ0PzogVGltZSwgZW5kPzogVGltZSk6IFN0YXR1cyB7XG4gICAgY29uc3Qgc3RhcnRXaXRoRGVsYXkgPSBzdGFydCAmJiBzdGFydC50aW1lICYmIGFkZE1pbnV0ZXMoc3RhcnQudGltZSwgc3RhcnQuZGVsYXkgPz8gMCk7XG4gICAgY29uc3QgZW5kV2l0aERlbGF5ID0gZW5kICYmIGVuZC50aW1lICYmIGFkZE1pbnV0ZXMoZW5kLnRpbWUsIGVuZC5kZWxheSA/PyAwKTtcblxuICAgIGlmIChcbiAgICAgIHN0YXJ0V2l0aERlbGF5ICYmXG4gICAgICBpc0JlZm9yZShzdGFydFdpdGhEZWxheSwgbm93KSAmJlxuICAgICAgZW5kV2l0aERlbGF5ICYmXG4gICAgICBpc0FmdGVyKGVuZFdpdGhEZWxheSwgbm93KVxuICAgICkge1xuICAgICAgcmV0dXJuICdwcm9ncmVzcyc7XG4gICAgfSBlbHNlIGlmIChlbmRXaXRoRGVsYXkgJiYgaXNCZWZvcmUoZW5kV2l0aERlbGF5LCBub3cpKSB7XG4gICAgICByZXR1cm4gJ3Bhc3QnO1xuICAgIH1cbiAgICByZXR1cm4gJ2Z1dHVyZSc7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJQb3NpdGlvbihub3c6IERhdGUsIHN0YXJ0PzogVGltZSwgZW5kPzogVGltZSk6IFRlbXBsYXRlUmVzdWx0IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjdXJyZW50UG9zaXRpb24gPSB0aGlzLl9nZXRQcm9ncmVzcyhub3csIHN0YXJ0LCBlbmQpO1xuICAgIGlmIChjdXJyZW50UG9zaXRpb24gPCAwICYmIGN1cnJlbnRQb3NpdGlvbiA+IDEwMCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHN0YXR1c1N0eWxlID0gKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJy0tc2JiLXBlYXJsLWNoYWluLXN0YXR1cy1wb3NpdGlvbic6IGAke2N1cnJlbnRQb3NpdGlvbn0lYCxcbiAgICAgICAgLi4uKGN1cnJlbnRQb3NpdGlvbiA+PSA1MCA/IHsgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWCgtMTAwJSlgIH0gOiB7fSksXG4gICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBhbmltYXRpb24gPSB0aGlzLmRpc2FibGVBbmltYXRpb24gPyAnc2JiLXBlYXJsLWNoYWluX19wb3NpdGlvbi0tbm8tYW5pbWF0aW9uJyA6ICcnO1xuXG4gICAgcmV0dXJuIGh0bWxgPHNwYW5cbiAgICAgIHN0eWxlPSR7c3R5bGVNYXAoc3RhdHVzU3R5bGUoKSl9XG4gICAgICBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fcG9zaXRpb24gJHthbmltYXRpb259XCJcbiAgICA+PC9zcGFuPmA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBub3cgPSB0aGlzLm5vdyA/PyBuZXcgRGF0ZSgpO1xuXG4gICAgY29uc3QgcmlkZUxlZ3M6IFB0UmlkZUxlZ1tdID0gdGhpcy5sZWdzPy5maWx0ZXIoKGxlZykgPT4gaXNSaWRlTGVnKGxlZykpIGFzIFB0UmlkZUxlZ1tdO1xuXG4gICAgY29uc3QgZGVwYXJ0dXJlVGltZSA9XG4gICAgICByaWRlTGVncz8ubGVuZ3RoICYmIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcocmlkZUxlZ3NbMF0/LmRlcGFydHVyZT8udGltZSk7XG4gICAgY29uc3QgZGVwYXJ0dXJlV2l0aERlbGF5ID0gZGVwYXJ0dXJlVGltZSAmJiB7XG4gICAgICB0aW1lOiBkZXBhcnR1cmVUaW1lLFxuICAgICAgZGVsYXk6IHJpZGVMZWdzWzBdLmRlcGFydHVyZS5kZWxheSA/PyAwLFxuICAgIH07XG5cbiAgICBjb25zdCBhcnJpdmFsVGltZSA9XG4gICAgICByaWRlTGVncz8ubGVuZ3RoICYmXG4gICAgICByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKHJpZGVMZWdzW3JpZGVMZWdzLmxlbmd0aCAtIDFdLmFycml2YWw/LnRpbWUpO1xuICAgIGNvbnN0IGFycml2YWxUaW1lRGVsYXkgPSBhcnJpdmFsVGltZSAmJiB7XG4gICAgICB0aW1lOiBhcnJpdmFsVGltZSxcbiAgICAgIGRlbGF5OiByaWRlTGVnc1tyaWRlTGVncy5sZW5ndGggLSAxXT8uYXJyaXZhbC5kZWxheSA/PyAwLFxuICAgIH07XG5cbiAgICBjb25zdCBkZXBhcnR1cmVOb3RTZXJ2aWNlZCA9ICgoKTogc3RyaW5nID0+IHtcbiAgICAgIHJldHVybiByaWRlTGVncyAmJlxuICAgICAgICByaWRlTGVnc1swXT8uc2VydmljZUpvdXJuZXk/LnN0b3BQb2ludHMgJiZcbiAgICAgICAgcmlkZUxlZ3NbMF0/LnNlcnZpY2VKb3VybmV5Py5zdG9wUG9pbnRzWzBdLnN0b3BTdGF0dXMgPT09ICdOT1RfU0VSVklDRUQnXG4gICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbi0tZGVwYXJ0dXJlLXNraXBwZWQnXG4gICAgICAgIDogJyc7XG4gICAgfSkoKTtcblxuICAgIGNvbnN0IGFycml2YWxOb3RTZXJ2aWNlZCA9ICgoKTogc3RyaW5nID0+IHtcbiAgICAgIGNvbnN0IGxhc3RMZWcgPSByaWRlTGVncyAmJiByaWRlTGVnc1tyaWRlTGVncy5sZW5ndGggLSAxXTtcbiAgICAgIGNvbnN0IHN0b3BzID0gbGFzdExlZyAmJiBsYXN0TGVnLnNlcnZpY2VKb3VybmV5Py5zdG9wUG9pbnRzO1xuXG4gICAgICByZXR1cm4gc3RvcHMgJiYgc3RvcHNbc3RvcHMubGVuZ3RoIC0gMV0uc3RvcFN0YXR1cyA9PT0gJ05PVF9TRVJWSUNFRCdcbiAgICAgICAgPyAnc2JiLXBlYXJsLWNoYWluLS1hcnJpdmFsLXNraXBwZWQnXG4gICAgICAgIDogJyc7XG4gICAgfSkoKTtcblxuICAgIGNvbnN0IGRlcGFydHVyZUNhbmNlbENsYXNzID0gKCgpOiBzdHJpbmcgPT4ge1xuICAgICAgcmV0dXJuIHJpZGVMZWdzICYmIHJpZGVMZWdzWzBdPy5zZXJ2aWNlSm91cm5leT8uc2VydmljZUFsdGVyYXRpb24/LmNhbmNlbGxlZFxuICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1kaXNydXB0aW9uJ1xuICAgICAgICA6ICcnO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBhcnJpdmFsQ2FuY2VsQ2xhc3MgPSAoKCk6IHN0cmluZyA9PiB7XG4gICAgICByZXR1cm4gcmlkZUxlZ3MgJiYgcmlkZUxlZ3NbcmlkZUxlZ3MubGVuZ3RoIC0gMV0/LnNlcnZpY2VKb3VybmV5Py5zZXJ2aWNlQWx0ZXJhdGlvbj8uY2FuY2VsbGVkXG4gICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbi0tYXJyaXZhbC1kaXNydXB0aW9uJ1xuICAgICAgICA6ICcnO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBzdGF0dXMgPVxuICAgICAgZGVwYXJ0dXJlV2l0aERlbGF5ICYmXG4gICAgICBhcnJpdmFsVGltZURlbGF5ICYmXG4gICAgICB0aGlzLl9nZXRTdGF0dXMobm93LCBkZXBhcnR1cmVXaXRoRGVsYXksIGFycml2YWxUaW1lRGVsYXkpO1xuXG4gICAgY29uc3Qgc3RhdHVzQ2xhc3NEZXBhcnR1cmUgPVxuICAgICAgcmlkZUxlZ3MgJiYgc3RhdHVzICYmICFkZXBhcnR1cmVDYW5jZWxDbGFzcyA/ICdzYmItcGVhcmwtY2hhaW5fX2J1bGxldC0tJyArIHN0YXR1cyA6ICcnO1xuXG4gICAgY29uc3Qgc3RhdHVzQ2xhc3NBcnJpdmFsID1cbiAgICAgIHJpZGVMZWdzICYmIHN0YXR1cyAmJiAhYXJyaXZhbENhbmNlbENsYXNzXG4gICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbl9fYnVsbGV0LS0nICsgdGhpcy5fZ2V0U3RhdHVzKG5vdywgdW5kZWZpbmVkLCBhcnJpdmFsVGltZURlbGF5KVxuICAgICAgICA6ICcnO1xuXG4gICAgaWYgKHRoaXMuX2lzQWxsQ2FuY2VsbGVkKHJpZGVMZWdzKSkge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fYnVsbGV0IHNiYi1wZWFybC1jaGFpbi0tZGVwYXJ0dXJlLWRpc3J1cHRpb25cIj48L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fbGVnIHNiYi1wZWFybC1jaGFpbl9fbGVnLS1kaXNydXB0aW9uXCI+PC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2J1bGxldCBzYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1kaXNydXB0aW9uXCI+PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXBlYXJsLWNoYWluXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2J1bGxldCAke3N0YXR1c0NsYXNzRGVwYXJ0dXJlfSAke2RlcGFydHVyZU5vdFNlcnZpY2VkfSAke2RlcGFydHVyZUNhbmNlbENsYXNzfVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICAgICR7cmlkZUxlZ3M/Lm1hcCgobGVnOiBQdFJpZGVMZWcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICBjb25zdCB7IHN0b3BQb2ludHMsIHNlcnZpY2VBbHRlcmF0aW9uIH0gPSBsZWc/LnNlcnZpY2VKb3VybmV5IHx8IHt9O1xuXG4gICAgICAgICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLl9nZXRSZWxhdGl2ZUR1cmF0aW9uKHJpZGVMZWdzLCBsZWcpO1xuICAgICAgICAgIGNvbnN0IGRlcGFydHVyZSA9IHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZT8udGltZSk7XG4gICAgICAgICAgY29uc3QgYXJyaXZhbCA9IHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmFycml2YWw/LnRpbWUpO1xuXG4gICAgICAgICAgY29uc3QgaXNBcnJpdmFsTm90U2VydmljZWQgPVxuICAgICAgICAgICAgc3RvcFBvaW50cyAmJiBzdG9wUG9pbnRzW3N0b3BQb2ludHMubGVuZ3RoIC0gMV0/LnN0b3BTdGF0dXMgPT09ICdOT1RfU0VSVklDRUQnO1xuICAgICAgICAgIGNvbnN0IGlzQXJyaXZhbFBsYW5uZWQgPVxuICAgICAgICAgICAgc3RvcFBvaW50cyAmJiBzdG9wUG9pbnRzW3N0b3BQb2ludHMubGVuZ3RoIC0gMV0/LnN0b3BTdGF0dXMgPT09ICdQTEFOTkVEJztcbiAgICAgICAgICBjb25zdCBpc0RlcGFydHVyZU5vdFNlcnZpY2VkID0gc3RvcFBvaW50cyAmJiBzdG9wUG9pbnRzWzBdPy5zdG9wU3RhdHVzID09PSAnTk9UX1NFUlZJQ0VEJztcblxuICAgICAgICAgIGNvbnN0IHN0b3BQb2ludHNCZWZvcmUgPSBpbmRleCA+IDAgJiYgcmlkZUxlZ3NbaW5kZXggLSAxXS5zZXJ2aWNlSm91cm5leS5zdG9wUG9pbnRzO1xuICAgICAgICAgIGNvbnN0IGlzQmVmb3JlTGVnQXJyaXZhbE5vdFNlcnZpY2VkID1cbiAgICAgICAgICAgIHN0b3BQb2ludHNCZWZvcmUgJiZcbiAgICAgICAgICAgIHN0b3BQb2ludHNCZWZvcmVbc3RvcFBvaW50c0JlZm9yZS5sZW5ndGggLSAxXT8uc3RvcFN0YXR1cyA9PT0gJ05PVF9TRVJWSUNFRCc7XG5cbiAgICAgICAgICBjb25zdCBza2lwcGVkTGVnID1cbiAgICAgICAgICAgIGlzQXJyaXZhbE5vdFNlcnZpY2VkIHx8IChpc0RlcGFydHVyZU5vdFNlcnZpY2VkICYmIGlzQXJyaXZhbFBsYW5uZWQpXG4gICAgICAgICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbl9fbGVnLS1za2lwcGVkJ1xuICAgICAgICAgICAgICA6ICcnO1xuICAgICAgICAgIGNvbnN0IGRlcGFydHVyZVNraXBwZWRCdWxsZXQgPVxuICAgICAgICAgICAgaXNEZXBhcnR1cmVOb3RTZXJ2aWNlZCB8fCBpc0JlZm9yZUxlZ0Fycml2YWxOb3RTZXJ2aWNlZFxuICAgICAgICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW5fX3N0b3AtLWRlcGFydHVyZS1za2lwcGVkJ1xuICAgICAgICAgICAgICA6ICcnO1xuXG4gICAgICAgICAgY29uc3QgY2FuY2VsbGVkID1cbiAgICAgICAgICAgIHNlcnZpY2VBbHRlcmF0aW9uPy5jYW5jZWxsZWQgfHwgc2VydmljZUFsdGVyYXRpb24/LnBhcnRpYWxseUNhbmNlbGxlZFxuICAgICAgICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW5fX2xlZy0tZGlzcnVwdGlvbidcbiAgICAgICAgICAgICAgOiAnJztcblxuICAgICAgICAgIGNvbnN0IGxlZ0RlcGFydHVyZVdpdGhEZWxheSA9IHsgdGltZTogZGVwYXJ0dXJlLCBkZWxheTogbGVnLmRlcGFydHVyZT8uZGVsYXkgPz8gMCB9O1xuICAgICAgICAgIGNvbnN0IGxlZ0Fycml2YWxXaXRoRGVsYXkgPSB7IHRpbWU6IGFycml2YWwsIGRlbGF5OiBsZWcuYXJyaXZhbD8uZGVsYXkgPz8gMCB9O1xuICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuX2dldFN0YXR1cyhub3csIGxlZ0RlcGFydHVyZVdpdGhEZWxheSwgbGVnQXJyaXZhbFdpdGhEZWxheSk7XG5cbiAgICAgICAgICBjb25zdCBsZWdTdGF0dXMgPSAhY2FuY2VsbGVkICYmICFza2lwcGVkTGVnICYmICdzYmItcGVhcmwtY2hhaW5fX2xlZy0tJyArIHN0YXR1cztcbiAgICAgICAgICBjb25zdCBsZWdTdHlsZSA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICctLXNiYi1wZWFybC1jaGFpbi1sZWctd2lkdGgnOiBgJHtkdXJhdGlvbn0lYCxcbiAgICAgICAgICAgICAgLi4uKHN0YXR1cyA9PT0gJ3Byb2dyZXNzJyAmJiAhY2FuY2VsbGVkICYmICFza2lwcGVkTGVnXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICctLXNiYi1wZWFybC1jaGFpbi1sZWctc3RhdHVzJzogYCR7dGhpcy5fZ2V0UHJvZ3Jlc3Mobm93LCBsZWdEZXBhcnR1cmVXaXRoRGVsYXksIGxlZ0Fycml2YWxXaXRoRGVsYXkpfSVgLFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmV0dXJuIGh0bWxgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwic2JiLXBlYXJsLWNoYWluX19sZWcgJHtsZWdTdGF0dXMgfHwgJyd9ICR7Y2FuY2VsbGVkfSAke3NraXBwZWRMZWd9XCJcbiAgICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAobGVnU3R5bGUoKSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHtpbmRleCA+IDAgJiYgaW5kZXggPCByaWRlTGVncy5sZW5ndGhcbiAgICAgICAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXBlYXJsLWNoYWluX19zdG9wICR7ZGVwYXJ0dXJlU2tpcHBlZEJ1bGxldH1cIj48L3NwYW4+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAke3N0YXR1cyA9PT0gJ3Byb2dyZXNzJyAmJiAhY2FuY2VsbGVkICYmICFza2lwcGVkTGVnXG4gICAgICAgICAgICAgID8gdGhpcy5fcmVuZGVyUG9zaXRpb24obm93LCBsZWdEZXBhcnR1cmVXaXRoRGVsYXksIGxlZ0Fycml2YWxXaXRoRGVsYXkpXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9KX1cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fYnVsbGV0ICR7c3RhdHVzQ2xhc3NBcnJpdmFsfSAke2Fycml2YWxOb3RTZXJ2aWNlZH0gJHthcnJpdmFsQ2FuY2VsQ2xhc3N9XCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1wZWFybC1jaGFpbic6IFNiYlBlYXJsQ2hhaW5FbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsic3RhdHVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQk8sU0FBUyxRQUFRLE1BQU0sZUFBZTtBQUMzQyxTQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLGFBQWE7QUFDOUM7QUNGTyxTQUFTLFNBQVMsTUFBTSxlQUFlO0FBQzVDLFNBQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sYUFBYTtBQUM5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
639
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVhcmwtY2hhaW4uY29tcG9uZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNBZnRlci5qcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0JlZm9yZS5qcyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvcGVhcmwtY2hhaW4vcGVhcmwtY2hhaW4uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGlzQWZ0ZXJcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGZpcnN0IGRhdGUgYWZ0ZXIgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZmlyc3QgZGF0ZSBhZnRlciB0aGUgc2Vjb25kIG9uZT9cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRoYXQgc2hvdWxkIGJlIGFmdGVyIHRoZSBvdGhlciBvbmUgdG8gcmV0dXJuIHRydWVcbiAqIEBwYXJhbSBkYXRlVG9Db21wYXJlIC0gVGhlIGRhdGUgdG8gY29tcGFyZSB3aXRoXG4gKlxuICogQHJldHVybnMgVGhlIGZpcnN0IGRhdGUgaXMgYWZ0ZXIgdGhlIHNlY29uZCBkYXRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElzIDEwIEp1bHkgMTk4OSBhZnRlciAxMSBGZWJydWFyeSAxOTg3P1xuICogY29uc3QgcmVzdWx0ID0gaXNBZnRlcihuZXcgRGF0ZSgxOTg5LCA2LCAxMCksIG5ldyBEYXRlKDE5ODcsIDEsIDExKSlcbiAqIC8vPT4gdHJ1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBZnRlcihkYXRlLCBkYXRlVG9Db21wYXJlKSB7XG4gIHJldHVybiArdG9EYXRlKGRhdGUpID4gK3RvRGF0ZShkYXRlVG9Db21wYXJlKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc0FmdGVyO1xuIiwiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgaXNCZWZvcmVcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGZpcnN0IGRhdGUgYmVmb3JlIHRoZSBzZWNvbmQgb25lP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGZpcnN0IGRhdGUgYmVmb3JlIHRoZSBzZWNvbmQgb25lP1xuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdGhhdCBzaG91bGQgYmUgYmVmb3JlIHRoZSBvdGhlciBvbmUgdG8gcmV0dXJuIHRydWVcbiAqIEBwYXJhbSBkYXRlVG9Db21wYXJlIC0gVGhlIGRhdGUgdG8gY29tcGFyZSB3aXRoXG4gKlxuICogQHJldHVybnMgVGhlIGZpcnN0IGRhdGUgaXMgYmVmb3JlIHRoZSBzZWNvbmQgZGF0ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJcyAxMCBKdWx5IDE5ODkgYmVmb3JlIDExIEZlYnJ1YXJ5IDE5ODc/XG4gKiBjb25zdCByZXN1bHQgPSBpc0JlZm9yZShuZXcgRGF0ZSgxOTg5LCA2LCAxMCksIG5ldyBEYXRlKDE5ODcsIDEsIDExKSlcbiAqIC8vPT4gZmFsc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmVmb3JlKGRhdGUsIGRhdGVUb0NvbXBhcmUpIHtcbiAgcmV0dXJuICt0b0RhdGUoZGF0ZSkgPCArdG9EYXRlKGRhdGVUb0NvbXBhcmUpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzQmVmb3JlO1xuIiwiaW1wb3J0IHsgZGVmYXVsdERhdGVBZGFwdGVyIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kYXRldGltZS5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9zdHlsZXMuanMnO1xuaW1wb3J0IHsgYWRkTWludXRlcywgZGlmZmVyZW5jZUluTWludXRlcywgaXNBZnRlciwgaXNCZWZvcmUgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50LCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgc3R5bGVNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9zdHlsZS1tYXAuanMnO1xuXG5pbXBvcnQgeyByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nIH0gZnJvbSAnLi4vY29yZS9kYXRldGltZS50cyc7XG5pbXBvcnQgdHlwZSB7IExlZywgUHRSaWRlTGVnIH0gZnJvbSAnLi4vY29yZS90aW1ldGFibGUudHMnO1xuaW1wb3J0IHsgaXNSaWRlTGVnIH0gZnJvbSAnLi4vY29yZS90aW1ldGFibGUudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9wZWFybC1jaGFpbi5zY3NzP2xpdCZpbmxpbmUnO1xuXG50eXBlIFN0YXR1cyA9ICdwcm9ncmVzcycgfCAnZnV0dXJlJyB8ICdwYXN0JztcbnR5cGUgVGltZSA9IHtcbiAgdGltZT86IERhdGU7XG4gIGRlbGF5OiBudW1iZXI7XG59O1xuXG4vKipcbiAqIEl0IHZpc3VhbGx5IGRpc3BsYXlzIGpvdXJuZXkgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1wZWFybC1jaGFpbicpXG5jbGFzcyBTYmJQZWFybENoYWluRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgbGVncyBvZiB0aGUgcGVhcmwtY2hhaW4uXG4gICAqIEZvcm1hdDpcbiAgICogYHtcImxlZ3NcIjogW3tcImR1cmF0aW9uXCI6IDI1fSwgLi4uXX1gXG4gICAqIGBkdXJhdGlvbmAgaW4gbWludXRlcy4gRHVyYXRpb24gb2YgdGhlIGxlZyBpcyByZWxhdGl2ZVxuICAgKiB0byB0aGUgdG90YWwgdHJhdmVsIHRpbWUuIEV4YW1wbGU6IGRlcGFydHVyZSAxNjozMCwgY2hhbmdlIGF0IDE2OjQwLFxuICAgKiBhcnJpdmFsIGF0IDE3OjAwLiBTbyB0aGUgY2hhbmdlIHNob3VsZCBoYXZlIGEgZHVyYXRpb24gb2YgMzMuMzMlLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSkgcHVibGljIGFjY2Vzc29yIGxlZ3M6IChMZWcgfCBQdFJpZGVMZWcpW10gPSBbXTtcblxuICAvKipcbiAgICogUGVyIGRlZmF1bHQsIHRoZSBjdXJyZW50IGxvY2F0aW9uIGhhcyBhIHB1bHNhdGluZyBhbmltYXRpb24uIFlvdSBjYW5cbiAgICogZGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdpdGggdGhpcyBwcm9wZXJ0eS5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXNhYmxlLWFuaW1hdGlvbicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVBbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBjb25maWd1cmVkIGRhdGUgd2hpY2ggYWN0cyBhcyB0aGUgY3VycmVudCBkYXRlIGluc3RlYWQgb2YgdGhlIHJlYWwgY3VycmVudCBkYXRlLlxuICAgKiBPbmx5IHJlY29tbWVuZGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBub3codmFsdWU6IERhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5fbm93ID0gZGVmYXVsdERhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbChkZWZhdWx0RGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5vdygpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX25vdztcbiAgfVxuICBwcml2YXRlIF9ub3c6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9nZXRBbGxEdXJhdGlvbihsZWdzOiBQdFJpZGVMZWdbXSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGxlZ3M/LnJlZHVjZSgoc3VtOiBudW1iZXIsIGxlZykgPT4ge1xuICAgICAgY29uc3QgYXJyaXZhbE5vVHogPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5hcnJpdmFsPy50aW1lKTtcbiAgICAgIGNvbnN0IGRlcGFydHVyZU5vVHogPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5kZXBhcnR1cmU/LnRpbWUpO1xuICAgICAgaWYgKGFycml2YWxOb1R6ICYmIGRlcGFydHVyZU5vVHopIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBzdW0gK1xuICAgICAgICAgIGRpZmZlcmVuY2VJbk1pbnV0ZXMoXG4gICAgICAgICAgICByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5hcnJpdmFsLnRpbWUpISxcbiAgICAgICAgICAgIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZS50aW1lKSEsXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN1bTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQWxsQ2FuY2VsbGVkKGxlZ3M6IFB0UmlkZUxlZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGxlZ3M/LmV2ZXJ5KChsZWcpID0+IGxlZz8uc2VydmljZUpvdXJuZXk/LnNlcnZpY2VBbHRlcmF0aW9uPy5jYW5jZWxsZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVsYXRpdmVEdXJhdGlvbihsZWdzOiBQdFJpZGVMZWdbXSwgbGVnOiBQdFJpZGVMZWcpOiBudW1iZXIge1xuICAgIGNvbnN0IGFycml2YWxOb1R6ID0gcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuYXJyaXZhbD8udGltZSk7XG4gICAgY29uc3QgZGVwYXJ0dXJlTm9UeiA9IHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZT8udGltZSk7XG4gICAgaWYgKGFycml2YWxOb1R6ICYmIGRlcGFydHVyZU5vVHopIHtcbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gZGlmZmVyZW5jZUluTWludXRlcyhcbiAgICAgICAgcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuYXJyaXZhbC50aW1lKSEsXG4gICAgICAgIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZS50aW1lKSEsXG4gICAgICApO1xuICAgICAgY29uc3QgYWxsRHVyYXRpb25zID0gdGhpcy5fZ2V0QWxsRHVyYXRpb24obGVncyk7XG5cbiAgICAgIGlmIChhbGxEdXJhdGlvbnMgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDEwMDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChkdXJhdGlvbiAvIGFsbER1cmF0aW9ucykgKiAxMDA7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UHJvZ3Jlc3Mobm93OiBEYXRlLCBzdGFydD86IFRpbWUsIGVuZD86IFRpbWUpOiBudW1iZXIge1xuICAgIGlmICghc3RhcnQ/LnRpbWUgfHwgIWVuZD8udGltZSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRXaXRoRGVsYXkgPSBhZGRNaW51dGVzKHN0YXJ0LnRpbWUsIHN0YXJ0LmRlbGF5ID8/IDApO1xuICAgIGNvbnN0IGVuZFdpdGhEZWxheSA9IGFkZE1pbnV0ZXMoZW5kLnRpbWUsIGVuZC5kZWxheSA/PyAwKTtcbiAgICBjb25zdCB0b3RhbCA9IGRpZmZlcmVuY2VJbk1pbnV0ZXMoZW5kV2l0aERlbGF5LCBzdGFydFdpdGhEZWxheSk7XG4gICAgY29uc3QgcHJvZ3Jlc3MgPSBkaWZmZXJlbmNlSW5NaW51dGVzKG5vdywgc3RhcnRXaXRoRGVsYXkpO1xuXG4gICAgcmV0dXJuIHRvdGFsICYmIChwcm9ncmVzcyAvIHRvdGFsKSAqIDEwMDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFN0YXR1cyhub3c6IERhdGUsIHN0YXJ0PzogVGltZSwgZW5kPzogVGltZSk6IFN0YXR1cyB7XG4gICAgY29uc3Qgc3RhcnRXaXRoRGVsYXkgPSBzdGFydCAmJiBzdGFydC50aW1lICYmIGFkZE1pbnV0ZXMoc3RhcnQudGltZSwgc3RhcnQuZGVsYXkgPz8gMCk7XG4gICAgY29uc3QgZW5kV2l0aERlbGF5ID0gZW5kICYmIGVuZC50aW1lICYmIGFkZE1pbnV0ZXMoZW5kLnRpbWUsIGVuZC5kZWxheSA/PyAwKTtcblxuICAgIGlmIChcbiAgICAgIHN0YXJ0V2l0aERlbGF5ICYmXG4gICAgICBpc0JlZm9yZShzdGFydFdpdGhEZWxheSwgbm93KSAmJlxuICAgICAgZW5kV2l0aERlbGF5ICYmXG4gICAgICBpc0FmdGVyKGVuZFdpdGhEZWxheSwgbm93KVxuICAgICkge1xuICAgICAgcmV0dXJuICdwcm9ncmVzcyc7XG4gICAgfSBlbHNlIGlmIChlbmRXaXRoRGVsYXkgJiYgaXNCZWZvcmUoZW5kV2l0aERlbGF5LCBub3cpKSB7XG4gICAgICByZXR1cm4gJ3Bhc3QnO1xuICAgIH1cbiAgICByZXR1cm4gJ2Z1dHVyZSc7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJQb3NpdGlvbihub3c6IERhdGUsIHN0YXJ0PzogVGltZSwgZW5kPzogVGltZSk6IFRlbXBsYXRlUmVzdWx0IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjdXJyZW50UG9zaXRpb24gPSB0aGlzLl9nZXRQcm9ncmVzcyhub3csIHN0YXJ0LCBlbmQpO1xuICAgIGlmIChjdXJyZW50UG9zaXRpb24gPCAwICYmIGN1cnJlbnRQb3NpdGlvbiA+IDEwMCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHN0YXR1c1N0eWxlID0gKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJy0tc2JiLXBlYXJsLWNoYWluLXN0YXR1cy1wb3NpdGlvbic6IGAke2N1cnJlbnRQb3NpdGlvbn0lYCxcbiAgICAgICAgLi4uKGN1cnJlbnRQb3NpdGlvbiA+PSA1MCA/IHsgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWCgtMTAwJSlgIH0gOiB7fSksXG4gICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBhbmltYXRpb24gPSB0aGlzLmRpc2FibGVBbmltYXRpb24gPyAnc2JiLXBlYXJsLWNoYWluX19wb3NpdGlvbi0tbm8tYW5pbWF0aW9uJyA6ICcnO1xuXG4gICAgcmV0dXJuIGh0bWxgPHNwYW5cbiAgICAgIHN0eWxlPSR7c3R5bGVNYXAoc3RhdHVzU3R5bGUoKSl9XG4gICAgICBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fcG9zaXRpb24gJHthbmltYXRpb259XCJcbiAgICA+PC9zcGFuPmA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBub3cgPSB0aGlzLm5vdyA/PyBuZXcgRGF0ZSgpO1xuXG4gICAgY29uc3QgcmlkZUxlZ3M6IFB0UmlkZUxlZ1tdID0gdGhpcy5sZWdzPy5maWx0ZXIoKGxlZykgPT4gaXNSaWRlTGVnKGxlZykpIGFzIFB0UmlkZUxlZ1tdO1xuXG4gICAgY29uc3QgZGVwYXJ0dXJlVGltZSA9XG4gICAgICByaWRlTGVncz8ubGVuZ3RoICYmIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcocmlkZUxlZ3NbMF0/LmRlcGFydHVyZT8udGltZSk7XG4gICAgY29uc3QgZGVwYXJ0dXJlV2l0aERlbGF5ID0gZGVwYXJ0dXJlVGltZSAmJiB7XG4gICAgICB0aW1lOiBkZXBhcnR1cmVUaW1lLFxuICAgICAgZGVsYXk6IHJpZGVMZWdzWzBdLmRlcGFydHVyZS5kZWxheSA/PyAwLFxuICAgIH07XG5cbiAgICBjb25zdCBhcnJpdmFsVGltZSA9XG4gICAgICByaWRlTGVncz8ubGVuZ3RoICYmXG4gICAgICByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKHJpZGVMZWdzW3JpZGVMZWdzLmxlbmd0aCAtIDFdLmFycml2YWw/LnRpbWUpO1xuICAgIGNvbnN0IGFycml2YWxUaW1lRGVsYXkgPSBhcnJpdmFsVGltZSAmJiB7XG4gICAgICB0aW1lOiBhcnJpdmFsVGltZSxcbiAgICAgIGRlbGF5OiByaWRlTGVnc1tyaWRlTGVncy5sZW5ndGggLSAxXT8uYXJyaXZhbC5kZWxheSA/PyAwLFxuICAgIH07XG5cbiAgICBjb25zdCBkZXBhcnR1cmVOb3RTZXJ2aWNlZCA9ICgoKTogc3RyaW5nID0+IHtcbiAgICAgIHJldHVybiByaWRlTGVncyAmJlxuICAgICAgICByaWRlTGVnc1swXT8uc2VydmljZUpvdXJuZXk/LnN0b3BQb2ludHMgJiZcbiAgICAgICAgcmlkZUxlZ3NbMF0/LnNlcnZpY2VKb3VybmV5Py5zdG9wUG9pbnRzWzBdLnN0b3BTdGF0dXMgPT09ICdOT1RfU0VSVklDRUQnXG4gICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbi0tZGVwYXJ0dXJlLXNraXBwZWQnXG4gICAgICAgIDogJyc7XG4gICAgfSkoKTtcblxuICAgIGNvbnN0IGFycml2YWxOb3RTZXJ2aWNlZCA9ICgoKTogc3RyaW5nID0+IHtcbiAgICAgIGNvbnN0IGxhc3RMZWcgPSByaWRlTGVncyAmJiByaWRlTGVnc1tyaWRlTGVncy5sZW5ndGggLSAxXTtcbiAgICAgIGNvbnN0IHN0b3BzID0gbGFzdExlZyAmJiBsYXN0TGVnLnNlcnZpY2VKb3VybmV5Py5zdG9wUG9pbnRzO1xuXG4gICAgICByZXR1cm4gc3RvcHMgJiYgc3RvcHNbc3RvcHMubGVuZ3RoIC0gMV0uc3RvcFN0YXR1cyA9PT0gJ05PVF9TRVJWSUNFRCdcbiAgICAgICAgPyAnc2JiLXBlYXJsLWNoYWluLS1hcnJpdmFsLXNraXBwZWQnXG4gICAgICAgIDogJyc7XG4gICAgfSkoKTtcblxuICAgIGNvbnN0IGRlcGFydHVyZUNhbmNlbENsYXNzID0gKCgpOiBzdHJpbmcgPT4ge1xuICAgICAgcmV0dXJuIHJpZGVMZWdzICYmIHJpZGVMZWdzWzBdPy5zZXJ2aWNlSm91cm5leT8uc2VydmljZUFsdGVyYXRpb24/LmNhbmNlbGxlZFxuICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1kaXNydXB0aW9uJ1xuICAgICAgICA6ICcnO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBhcnJpdmFsQ2FuY2VsQ2xhc3MgPSAoKCk6IHN0cmluZyA9PiB7XG4gICAgICByZXR1cm4gcmlkZUxlZ3MgJiYgcmlkZUxlZ3NbcmlkZUxlZ3MubGVuZ3RoIC0gMV0/LnNlcnZpY2VKb3VybmV5Py5zZXJ2aWNlQWx0ZXJhdGlvbj8uY2FuY2VsbGVkXG4gICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbi0tYXJyaXZhbC1kaXNydXB0aW9uJ1xuICAgICAgICA6ICcnO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBzdGF0dXMgPVxuICAgICAgZGVwYXJ0dXJlV2l0aERlbGF5ICYmXG4gICAgICBhcnJpdmFsVGltZURlbGF5ICYmXG4gICAgICB0aGlzLl9nZXRTdGF0dXMobm93LCBkZXBhcnR1cmVXaXRoRGVsYXksIGFycml2YWxUaW1lRGVsYXkpO1xuXG4gICAgY29uc3Qgc3RhdHVzQ2xhc3NEZXBhcnR1cmUgPVxuICAgICAgcmlkZUxlZ3MgJiYgc3RhdHVzICYmICFkZXBhcnR1cmVDYW5jZWxDbGFzcyA/ICdzYmItcGVhcmwtY2hhaW5fX2J1bGxldC0tJyArIHN0YXR1cyA6ICcnO1xuXG4gICAgY29uc3Qgc3RhdHVzQ2xhc3NBcnJpdmFsID1cbiAgICAgIHJpZGVMZWdzICYmIHN0YXR1cyAmJiAhYXJyaXZhbENhbmNlbENsYXNzXG4gICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbl9fYnVsbGV0LS0nICsgdGhpcy5fZ2V0U3RhdHVzKG5vdywgdW5kZWZpbmVkLCBhcnJpdmFsVGltZURlbGF5KVxuICAgICAgICA6ICcnO1xuXG4gICAgaWYgKHRoaXMuX2lzQWxsQ2FuY2VsbGVkKHJpZGVMZWdzKSkge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fYnVsbGV0IHNiYi1wZWFybC1jaGFpbi0tZGVwYXJ0dXJlLWRpc3J1cHRpb25cIj48L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fbGVnIHNiYi1wZWFybC1jaGFpbl9fbGVnLS1kaXNydXB0aW9uXCI+PC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2J1bGxldCBzYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1kaXNydXB0aW9uXCI+PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXBlYXJsLWNoYWluXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2J1bGxldCAke3N0YXR1c0NsYXNzRGVwYXJ0dXJlfSAke2RlcGFydHVyZU5vdFNlcnZpY2VkfSAke2RlcGFydHVyZUNhbmNlbENsYXNzfVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICAgICR7cmlkZUxlZ3M/Lm1hcCgobGVnOiBQdFJpZGVMZWcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICBjb25zdCB7IHN0b3BQb2ludHMsIHNlcnZpY2VBbHRlcmF0aW9uIH0gPSBsZWc/LnNlcnZpY2VKb3VybmV5IHx8IHt9O1xuXG4gICAgICAgICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLl9nZXRSZWxhdGl2ZUR1cmF0aW9uKHJpZGVMZWdzLCBsZWcpO1xuICAgICAgICAgIGNvbnN0IGRlcGFydHVyZSA9IHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZT8udGltZSk7XG4gICAgICAgICAgY29uc3QgYXJyaXZhbCA9IHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmFycml2YWw/LnRpbWUpO1xuXG4gICAgICAgICAgY29uc3QgaXNBcnJpdmFsTm90U2VydmljZWQgPVxuICAgICAgICAgICAgc3RvcFBvaW50cyAmJiBzdG9wUG9pbnRzW3N0b3BQb2ludHMubGVuZ3RoIC0gMV0/LnN0b3BTdGF0dXMgPT09ICdOT1RfU0VSVklDRUQnO1xuICAgICAgICAgIGNvbnN0IGlzQXJyaXZhbFBsYW5uZWQgPVxuICAgICAgICAgICAgc3RvcFBvaW50cyAmJiBzdG9wUG9pbnRzW3N0b3BQb2ludHMubGVuZ3RoIC0gMV0/LnN0b3BTdGF0dXMgPT09ICdQTEFOTkVEJztcbiAgICAgICAgICBjb25zdCBpc0RlcGFydHVyZU5vdFNlcnZpY2VkID0gc3RvcFBvaW50cyAmJiBzdG9wUG9pbnRzWzBdPy5zdG9wU3RhdHVzID09PSAnTk9UX1NFUlZJQ0VEJztcblxuICAgICAgICAgIGNvbnN0IHN0b3BQb2ludHNCZWZvcmUgPSBpbmRleCA+IDAgJiYgcmlkZUxlZ3NbaW5kZXggLSAxXS5zZXJ2aWNlSm91cm5leS5zdG9wUG9pbnRzO1xuICAgICAgICAgIGNvbnN0IGlzQmVmb3JlTGVnQXJyaXZhbE5vdFNlcnZpY2VkID1cbiAgICAgICAgICAgIHN0b3BQb2ludHNCZWZvcmUgJiZcbiAgICAgICAgICAgIHN0b3BQb2ludHNCZWZvcmVbc3RvcFBvaW50c0JlZm9yZS5sZW5ndGggLSAxXT8uc3RvcFN0YXR1cyA9PT0gJ05PVF9TRVJWSUNFRCc7XG5cbiAgICAgICAgICBjb25zdCBza2lwcGVkTGVnID1cbiAgICAgICAgICAgIGlzQXJyaXZhbE5vdFNlcnZpY2VkIHx8IChpc0RlcGFydHVyZU5vdFNlcnZpY2VkICYmIGlzQXJyaXZhbFBsYW5uZWQpXG4gICAgICAgICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbl9fbGVnLS1za2lwcGVkJ1xuICAgICAgICAgICAgICA6ICcnO1xuICAgICAgICAgIGNvbnN0IGRlcGFydHVyZVNraXBwZWRCdWxsZXQgPVxuICAgICAgICAgICAgaXNEZXBhcnR1cmVOb3RTZXJ2aWNlZCB8fCBpc0JlZm9yZUxlZ0Fycml2YWxOb3RTZXJ2aWNlZFxuICAgICAgICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW5fX3N0b3AtLWRlcGFydHVyZS1za2lwcGVkJ1xuICAgICAgICAgICAgICA6ICcnO1xuXG4gICAgICAgICAgY29uc3QgY2FuY2VsbGVkID1cbiAgICAgICAgICAgIHNlcnZpY2VBbHRlcmF0aW9uPy5jYW5jZWxsZWQgfHwgc2VydmljZUFsdGVyYXRpb24/LnBhcnRpYWxseUNhbmNlbGxlZFxuICAgICAgICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW5fX2xlZy0tZGlzcnVwdGlvbidcbiAgICAgICAgICAgICAgOiAnJztcblxuICAgICAgICAgIGNvbnN0IGxlZ0RlcGFydHVyZVdpdGhEZWxheSA9IHsgdGltZTogZGVwYXJ0dXJlLCBkZWxheTogbGVnLmRlcGFydHVyZT8uZGVsYXkgPz8gMCB9O1xuICAgICAgICAgIGNvbnN0IGxlZ0Fycml2YWxXaXRoRGVsYXkgPSB7IHRpbWU6IGFycml2YWwsIGRlbGF5OiBsZWcuYXJyaXZhbD8uZGVsYXkgPz8gMCB9O1xuICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuX2dldFN0YXR1cyhub3csIGxlZ0RlcGFydHVyZVdpdGhEZWxheSwgbGVnQXJyaXZhbFdpdGhEZWxheSk7XG5cbiAgICAgICAgICBjb25zdCBsZWdTdGF0dXMgPSAhY2FuY2VsbGVkICYmICFza2lwcGVkTGVnICYmICdzYmItcGVhcmwtY2hhaW5fX2xlZy0tJyArIHN0YXR1cztcbiAgICAgICAgICBjb25zdCBsZWdTdHlsZSA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICctLXNiYi1wZWFybC1jaGFpbi1sZWctd2lkdGgnOiBgJHtkdXJhdGlvbn0lYCxcbiAgICAgICAgICAgICAgLi4uKHN0YXR1cyA9PT0gJ3Byb2dyZXNzJyAmJiAhY2FuY2VsbGVkICYmICFza2lwcGVkTGVnXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICctLXNiYi1wZWFybC1jaGFpbi1sZWctc3RhdHVzJzogYCR7dGhpcy5fZ2V0UHJvZ3Jlc3Mobm93LCBsZWdEZXBhcnR1cmVXaXRoRGVsYXksIGxlZ0Fycml2YWxXaXRoRGVsYXkpfSVgLFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmV0dXJuIGh0bWxgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwic2JiLXBlYXJsLWNoYWluX19sZWcgJHtsZWdTdGF0dXMgfHwgJyd9ICR7Y2FuY2VsbGVkfSAke3NraXBwZWRMZWd9XCJcbiAgICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAobGVnU3R5bGUoKSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHtpbmRleCA+IDAgJiYgaW5kZXggPCByaWRlTGVncy5sZW5ndGhcbiAgICAgICAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXBlYXJsLWNoYWluX19zdG9wICR7ZGVwYXJ0dXJlU2tpcHBlZEJ1bGxldH1cIj48L3NwYW4+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAke3N0YXR1cyA9PT0gJ3Byb2dyZXNzJyAmJiAhY2FuY2VsbGVkICYmICFza2lwcGVkTGVnXG4gICAgICAgICAgICAgID8gdGhpcy5fcmVuZGVyUG9zaXRpb24obm93LCBsZWdEZXBhcnR1cmVXaXRoRGVsYXksIGxlZ0Fycml2YWxXaXRoRGVsYXkpXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9KX1cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fYnVsbGV0ICR7c3RhdHVzQ2xhc3NBcnJpdmFsfSAke2Fycml2YWxOb3RTZXJ2aWNlZH0gJHthcnJpdmFsQ2FuY2VsQ2xhc3N9XCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1wZWFybC1jaGFpbic6IFNiYlBlYXJsQ2hhaW5FbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsic3RhdHVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQk8sU0FBUyxRQUFRLE1BQU0sZUFBZTtBQUMzQyxTQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLGFBQWE7QUFDOUM7QUNGTyxTQUFTLFNBQVMsTUFBTSxlQUFlO0FBQzVDLFNBQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sYUFBYTtBQUM5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNJTSx3QkFBb0IsTUFBQTs7MEJBRHpCLGNBQWMsaUJBQWlCLENBQUM7Ozs7b0JBQ0U7Ozs7Ozs7OztBQUFSLEVBQUEsbUJBQVEsWUFBVTtBQUFBOztBQVdoQjtBQVEzQjtBQVIyQyx5QkFBQSx5QkFYdkMsa0JBQUEsTUFBQSwwQkFBQSxHQUFvQixrQkFBQSxNQUFBLG9CQVcrQyxDQUFBLENBQUU7QUFRekQseUJBQUEscUNBQUEsa0JBQUEsTUFBQSx1QkFBQSxHQUFBLGtCQUFBLE1BQUEsZ0NBQTRCLEtBQUs7QUFhekMsV0FBQSxRQUFJLGtCQUFBLE1BQUEsbUNBQUEsR0FBZ0I7QUFBQSxJQTBPOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUEvUDZCLElBQWdCLE9BQUk7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXBCLElBQWdCLEtBQUksT0FBQTtBQUFBLHlCQUFBLHdCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFRL0MsSUFBZ0IsbUJBQWdCO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUFoQyxJQUFnQixpQkFBZ0IsT0FBQTtBQUFBLHlCQUFBLG9DQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFPaEMsSUFBVyxJQUFJLE9BQWtCO0FBQy9CLFdBQUssT0FBTyxtQkFBbUIsbUJBQW1CLG1CQUFtQixZQUFZLEtBQUssQ0FBQztBQUFBLElBQ3pGO0FBQUEsSUFDQSxJQUFXLE1BQUc7QUFDWixhQUFPLEtBQUs7QUFBQSxJQUNkO0FBQUEsSUFHUSxnQkFBZ0IsTUFBaUI7QUFDdkMsYUFBTyxNQUFNLE9BQU8sQ0FBQyxLQUFhLFFBQU87QUFDdkMsY0FBTSxjQUFjLGdDQUFnQyxJQUFJLFNBQVMsSUFBSTtBQUNyRSxjQUFNLGdCQUFnQixnQ0FBZ0MsSUFBSSxXQUFXLElBQUk7QUFDekUsWUFBSSxlQUFlLGVBQWU7QUFDaEMsaUJBQ0UsTUFDQSxvQkFDRSxnQ0FBZ0MsSUFBSSxRQUFRLElBQUksR0FDaEQsZ0NBQWdDLElBQUksVUFBVSxJQUFJLENBQUU7QUFBQSxRQUcxRDtBQUNBLGVBQU87QUFBQSxNQUNULEdBQUcsQ0FBQztBQUFBLElBQ047QUFBQSxJQUVRLGdCQUFnQixNQUFpQjtBQUN2QyxhQUFPLE1BQU0sTUFBTSxDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsbUJBQW1CLFNBQVM7QUFBQSxJQUMvRTtBQUFBLElBRVEscUJBQXFCLE1BQW1CLEtBQWM7QUFDNUQsWUFBTSxjQUFjLGdDQUFnQyxJQUFJLFNBQVMsSUFBSTtBQUNyRSxZQUFNLGdCQUFnQixnQ0FBZ0MsSUFBSSxXQUFXLElBQUk7QUFDekUsVUFBSSxlQUFlLGVBQWU7QUFDaEMsY0FBTSxXQUFXLG9CQUNmLGdDQUFnQyxJQUFJLFFBQVEsSUFBSSxHQUNoRCxnQ0FBZ0MsSUFBSSxVQUFVLElBQUksQ0FBRTtBQUV0RCxjQUFNLGVBQWUsS0FBSyxnQkFBZ0IsSUFBSTtBQUU5QyxZQUFJLGlCQUFpQixHQUFHO0FBQ3RCLGlCQUFPO0FBQUEsUUFDVDtBQUVBLGVBQVEsV0FBVyxlQUFnQjtBQUFBLE1BQ3JDO0FBQ0EsYUFBTztBQUFBLElBQ1Q7QUFBQSxJQUVRLGFBQWEsS0FBVyxPQUFjLEtBQVU7QUFDdEQsVUFBSSxDQUFDLE9BQU8sUUFBUSxDQUFDLEtBQUssTUFBTTtBQUM5QixlQUFPO0FBQUEsTUFDVDtBQUVBLFlBQU0saUJBQWlCLFdBQVcsTUFBTSxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQzlELFlBQU0sZUFBZSxXQUFXLElBQUksTUFBTSxJQUFJLFNBQVMsQ0FBQztBQUN4RCxZQUFNLFFBQVEsb0JBQW9CLGNBQWMsY0FBYztBQUM5RCxZQUFNLFdBQVcsb0JBQW9CLEtBQUssY0FBYztBQUV4RCxhQUFPLFNBQVUsV0FBVyxRQUFTO0FBQUEsSUFDdkM7QUFBQSxJQUVRLFdBQVcsS0FBVyxPQUFjLEtBQVU7QUFDcEQsWUFBTSxpQkFBaUIsU0FBUyxNQUFNLFFBQVEsV0FBVyxNQUFNLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDckYsWUFBTSxlQUFlLE9BQU8sSUFBSSxRQUFRLFdBQVcsSUFBSSxNQUFNLElBQUksU0FBUyxDQUFDO0FBRTNFLFVBQ0Usa0JBQ0EsU0FBUyxnQkFBZ0IsR0FBRyxLQUM1QixnQkFDQSxRQUFRLGNBQWMsR0FBRyxHQUN6QjtBQUNBLGVBQU87QUFBQSxNQUNULFdBQVcsZ0JBQWdCLFNBQVMsY0FBYyxHQUFHLEdBQUc7QUFDdEQsZUFBTztBQUFBLE1BQ1Q7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUFBLElBRVEsZ0JBQWdCLEtBQVcsT0FBYyxLQUFVO0FBQ3pELFlBQU0sa0JBQWtCLEtBQUssYUFBYSxLQUFLLE9BQU8sR0FBRztBQUN6RCxVQUFJLGtCQUFrQixLQUFLLGtCQUFrQjtBQUFLLGVBQU87QUFFekQsWUFBTSxjQUFjLE1BQTZCO0FBQy9DLGVBQU87QUFBQSxVQUNMLHFDQUFxQyxHQUFHLGVBQWU7QUFBQSxVQUN2RCxHQUFJLG1CQUFtQixLQUFLLEVBQUUsV0FBVyxvQkFBQSxJQUF3QixDQUFBO0FBQUE7TUFFckU7QUFFQSxZQUFNLFlBQVksS0FBSyxtQkFBbUIsNENBQTRDO0FBRXRGLGFBQU87QUFBQSxjQUNHLFNBQVMsYUFBYSxDQUFDO0FBQUEseUNBQ0ksU0FBUztBQUFBO0FBQUEsSUFFaEQ7QUFBQSxJQUVtQixTQUFNO0FBQ3ZCLFlBQU0sTUFBTSxLQUFLLE9BQU8sb0JBQUksS0FBQTtBQUU1QixZQUFNLFdBQXdCLEtBQUssTUFBTSxPQUFPLENBQUMsUUFBUSxVQUFVLEdBQUcsQ0FBQztBQUV2RSxZQUFNLGdCQUNKLFVBQVUsVUFBVSxnQ0FBZ0MsU0FBUyxDQUFDLEdBQUcsV0FBVyxJQUFJO0FBQ2xGLFlBQU0scUJBQXFCLGlCQUFpQjtBQUFBLFFBQzFDLE1BQU07QUFBQSxRQUNOLE9BQU8sU0FBUyxDQUFDLEVBQUUsVUFBVSxTQUFTO0FBQUEsTUFBQTtBQUd4QyxZQUFNLGNBQ0osVUFBVSxVQUNWLGdDQUFnQyxTQUFTLFNBQVMsU0FBUyxDQUFDLEVBQUUsU0FBUyxJQUFJO0FBQzdFLFlBQU0sbUJBQW1CLGVBQWU7QUFBQSxRQUN0QyxNQUFNO0FBQUEsUUFDTixPQUFPLFNBQVMsU0FBUyxTQUFTLENBQUMsR0FBRyxRQUFRLFNBQVM7QUFBQSxNQUFBO0FBR3pELFlBQU0sd0JBQXdCLE1BQWE7QUFDekMsZUFBTyxZQUNMLFNBQVMsQ0FBQyxHQUFHLGdCQUFnQixjQUM3QixTQUFTLENBQUMsR0FBRyxnQkFBZ0IsV0FBVyxDQUFDLEVBQUUsZUFBZSxpQkFDeEQsdUNBQ0E7QUFBQSxNQUNOLEdBQUE7QUFFQSxZQUFNLHNCQUFzQixNQUFhO0FBQ3ZDLGNBQU0sVUFBVSxZQUFZLFNBQVMsU0FBUyxTQUFTLENBQUM7QUFDeEQsY0FBTSxRQUFRLFdBQVcsUUFBUSxnQkFBZ0I7QUFFakQsZUFBTyxTQUFTLE1BQU0sTUFBTSxTQUFTLENBQUMsRUFBRSxlQUFlLGlCQUNuRCxxQ0FDQTtBQUFBLE1BQ04sR0FBQTtBQUVBLFlBQU0sd0JBQXdCLE1BQWE7QUFDekMsZUFBTyxZQUFZLFNBQVMsQ0FBQyxHQUFHLGdCQUFnQixtQkFBbUIsWUFDL0QsMENBQ0E7QUFBQSxNQUNOLEdBQUE7QUFFQSxZQUFNLHNCQUFzQixNQUFhO0FBQ3ZDLGVBQU8sWUFBWSxTQUFTLFNBQVMsU0FBUyxDQUFDLEdBQUcsZ0JBQWdCLG1CQUFtQixZQUNqRix3Q0FDQTtBQUFBLE1BQ04sR0FBQTtBQUVBLFlBQU0sU0FDSixzQkFDQSxvQkFDQSxLQUFLLFdBQVcsS0FBSyxvQkFBb0IsZ0JBQWdCO0FBRTNELFlBQU0sdUJBQ0osWUFBWSxVQUFVLENBQUMsdUJBQXVCLDhCQUE4QixTQUFTO0FBRXZGLFlBQU0scUJBQ0osWUFBWSxVQUFVLENBQUMscUJBQ25CLDhCQUE4QixLQUFLLFdBQVcsS0FBSyxRQUFXLGdCQUFnQixJQUM5RTtBQUVOLFVBQUksS0FBSyxnQkFBZ0IsUUFBUSxHQUFHO0FBQ2xDLGVBQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQU9UO0FBRUEsYUFBTztBQUFBO0FBQUE7QUFBQSwyQ0FHZ0Msb0JBQW9CLElBQUksb0JBQW9CLElBQUksb0JBQW9CO0FBQUE7QUFBQSxVQUVyRyxVQUFVLElBQUksQ0FBQyxLQUFnQixVQUFpQjtBQUNoRCxjQUFNLEVBQUUsWUFBWSxrQkFBQSxJQUFzQixLQUFLLGtCQUFrQixDQUFBO0FBRWpFLGNBQU0sV0FBVyxLQUFLLHFCQUFxQixVQUFVLEdBQUc7QUFDeEQsY0FBTSxZQUFZLGdDQUFnQyxJQUFJLFdBQVcsSUFBSTtBQUNyRSxjQUFNLFVBQVUsZ0NBQWdDLElBQUksU0FBUyxJQUFJO0FBRWpFLGNBQU0sdUJBQ0osY0FBYyxXQUFXLFdBQVcsU0FBUyxDQUFDLEdBQUcsZUFBZTtBQUNsRSxjQUFNLG1CQUNKLGNBQWMsV0FBVyxXQUFXLFNBQVMsQ0FBQyxHQUFHLGVBQWU7QUFDbEUsY0FBTSx5QkFBeUIsY0FBYyxXQUFXLENBQUMsR0FBRyxlQUFlO0FBRTNFLGNBQU0sbUJBQW1CLFFBQVEsS0FBSyxTQUFTLFFBQVEsQ0FBQyxFQUFFLGVBQWU7QUFDekUsY0FBTSxnQ0FDSixvQkFDQSxpQkFBaUIsaUJBQWlCLFNBQVMsQ0FBQyxHQUFHLGVBQWU7QUFFaEUsY0FBTSxhQUNKLHdCQUF5QiwwQkFBMEIsbUJBQy9DLGtDQUNBO0FBQ04sY0FBTSx5QkFDSiwwQkFBMEIsZ0NBQ3RCLDZDQUNBO0FBRU4sY0FBTSxZQUNKLG1CQUFtQixhQUFhLG1CQUFtQixxQkFDL0MscUNBQ0E7QUFFTixjQUFNLHdCQUF3QixFQUFFLE1BQU0sV0FBVyxPQUFPLElBQUksV0FBVyxTQUFTLEVBQUE7QUFDaEYsY0FBTSxzQkFBc0IsRUFBRSxNQUFNLFNBQVMsT0FBTyxJQUFJLFNBQVMsU0FBUyxFQUFBO0FBQzFFLGNBQU1BLFVBQVMsS0FBSyxXQUFXLEtBQUssdUJBQXVCLG1CQUFtQjtBQUU5RSxjQUFNLFlBQVksQ0FBQyxhQUFhLENBQUMsY0FBYywyQkFBMkJBO0FBQzFFLGNBQU0sV0FBVyxNQUE2QjtBQUM1QyxpQkFBTztBQUFBLFlBQ0wsK0JBQStCLEdBQUcsUUFBUTtBQUFBLFlBQzFDLEdBQUlBLFlBQVcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxhQUN4QztBQUFBLGNBQ0UsZ0NBQWdDLEdBQUcsS0FBSyxhQUFhLEtBQUssdUJBQXVCLG1CQUFtQixDQUFDO0FBQUEsWUFBQSxJQUV2RyxDQUFBO0FBQUE7UUFFUjtBQUVBLGVBQU87QUFBQSwwQ0FDeUIsYUFBYSxFQUFFLElBQUksU0FBUyxJQUFJLFVBQVU7QUFBQSxvQkFDaEUsU0FBUyxVQUFVLENBQUM7QUFBQTtBQUFBLGNBRTFCLFFBQVEsS0FBSyxRQUFRLFNBQVMsU0FDNUIsMENBQTBDLHNCQUFzQixjQUNoRSxPQUFPO0FBQUEsY0FDVEEsWUFBVyxjQUFjLENBQUMsYUFBYSxDQUFDLGFBQ3RDLEtBQUssZ0JBQWdCLEtBQUssdUJBQXVCLG1CQUFtQixJQUNwRSxPQUFPO0FBQUE7QUFBQSxNQUVmLENBQUMsQ0FBQztBQUFBO0FBQUEsMkNBRWlDLGtCQUFrQixJQUFJLGtCQUFrQixJQUFJLGtCQUFrQjtBQUFBO0FBQUE7QUFBQTtBQUFBLElBSXZHO0FBQUEsS0E5UDJCLHdDQVEzQjs7QUFSQyx1QkFBQSxDQUFBLFNBQVMsRUFBRSxNQUFNLE1BQUEsQ0FBTyxDQUFDO0FBTXpCLG1DQUFBLENBQUEsVUFBQSxHQUNBLFNBQVMsRUFBRSxXQUFXLHFCQUFxQixNQUFNLFFBQUEsQ0FBUyxDQUFDO0FBTzNELDBCQUFBLENBQUEsVUFBVTtBQWRnQixpQkFBQSxJQUFBLE1BQUEsa0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxRQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFVBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixNQUFJLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFKLE9BQUk7QUFBQSxJQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsb0JBQUEsdUJBQUE7QUFRL0MsaUJBQUEsSUFBQSxNQUFBLDhCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsb0JBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsc0JBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixrQkFBZ0IsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQWhCLG1CQUFnQjtBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSxnQ0FBQSxtQ0FBQTtBQU9oQyxpQkFBQSxJQUFBLE1BQUEscUJBQUEsRUFBQSxNQUFBLFVBQUEsTUFBQSxPQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFNBQUEsS0FBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBVyxNQUFHO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsMEJBQUE7QUExQmhCLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFDeUIsR0FBQSxTQUF5QixDQUFDLGlCQUFpQixLQUFLLEdBRG5FLGtCQUFBLFlBQUEsdUJBQUEsR0FBcUI7OzsiLCJ4X2dvb2dsZV9pZ25vcmVMaXN0IjpbMCwxXX0=
@@ -33,7 +33,7 @@ export declare class SeatReservationBaseElement extends LitElement {
33
33
  accessor preselectCoachIndex: number;
34
34
  protected accessor selectedCoachIndex: number;
35
35
  protected accessor focusedCoachIndex: number;
36
- protected accessor hoveredScrollCoachIndex: number;
36
+ protected accessor hoveredCoachIndex: number;
37
37
  protected coachBorderPadding: number;
38
38
  protected gapBetweenCoaches: number;
39
39
  protected coachBorderOffset: number;
@@ -45,8 +45,6 @@ export declare class SeatReservationBaseElement extends LitElement {
45
45
  protected scrollCoachsAreaWidth: number;
46
46
  protected scrollNavigationAreaDim: number;
47
47
  protected triggerCoachPositionsCollection: CoachScrollTriggerPoint[];
48
- protected firstTabElement: HTMLElement;
49
- protected lastTabElement: HTMLElement;
50
48
  protected navigationScrollArea: HTMLElement;
51
49
  protected coachScrollArea: HTMLElement;
52
50
  protected currSelectedPlace: Place | null;
@@ -69,7 +67,9 @@ export declare class SeatReservationBaseElement extends LitElement {
69
67
  readonly Tab: "Tab";
70
68
  readonly Enter: "Enter";
71
69
  };
70
+ private _isRunningInitPreselectCoachIndex;
72
71
  private _scrollTimeout;
72
+ private _lastStartScrollPos;
73
73
  protected willUpdate(changedProperties: PropertyValues<this>): void;
74
74
  protected navigateByDirectionBtn(btnDirection: string): void;
75
75
  /**
@@ -93,11 +93,17 @@ export declare class SeatReservationBaseElement extends LitElement {
93
93
  * @param focusCoachIndex
94
94
  */
95
95
  protected onFocusTableCoachAndPreselectPlace(focusCoachIndex: number): void;
96
+ /** Will be triggerd by focus navigation direction */
97
+ protected onFocusNavDirectionButton(): void;
98
+ /** TAB Key Event handling for Coach Navigation */
99
+ protected onKeyNavigationNavCoachButton(event: KeyboardEvent, currNavCoachButtonIndex: number): void;
100
+ /** General TAB Key Event handling for tab navigation inside the coach navigation area and the seatmap area */
101
+ private _handleTabKeyNavigation;
96
102
  /**
97
- * Initialisation of Keyboard event handling to navigation between each places inside a selected coach by using [arrow] keys.
103
+ * Initialisation of Keyboard Seatmap event handling to navigation between each places inside a selected coach by using [arrow] keys.
98
104
  * With the [TAB] key the user navigation goes to the next coach navigation element and the currently selected place is automatically reset.
99
105
  */
100
- protected handleKeyboardEvent(event: KeyboardEvent): void;
106
+ protected keyboardSeatmapEventHadling(event: KeyboardEvent): void;
101
107
  /**
102
108
  * Selects a place inside the coach if navigated via keyboard,
103
109
  * otherwise the coach grid is selected (necessary for ScreenReader)
@@ -1 +1 @@
1
- {"version":3,"file":"seat-reservation-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation-base-element.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAShE,OAAO,KAAK,EACV,WAAW,EAEX,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,KAAK,EACL,cAAc,EAEd,eAAe,EAGf,6BAA6B,EAC9B,MAAM,cAAc,CAAC;AAGtB,aAAK,eAAe;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAaD,qBAAa,0BAA2B,SAAQ,UAAU;IACxD,gBAAuB,MAAM;;;MAGlB;IAEX,kEAAkE;IAClE,SACgB,gBAAgB,EAAE,eAAe,EAAE,CAAS;IAE5D,sEAAsE;IACtE,SAEgB,aAAa,EAAE,OAAO,CAAQ;IAE9C,sDAAsD;IACtD,SAEgB,aAAa,EAAE,OAAO,CAAS;IAE/C,iDAAiD;IACjD,SAEgB,YAAY,EAAE,MAAM,CAAM;IAE1C,wCAAwC;IACxC,SAEgB,MAAM,EAAE,MAAM,CAAS;IAEvC,iDAAiD;IACjD,SAEgB,mBAAmB,EAAE,MAAM,CAAM;IAEjD,0DAA0D;IAC1D,SAEgB,sBAAsB,EAAE,MAAM,CAAM;IAEpD,2CAA2C;IAC3C,SAEgB,iBAAiB,EAAE,OAAO,CAAS;IAEnD,SAEgB,mBAAmB,EAAE,MAAM,CAAM;IAExC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAM;IACnD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAM;IAElD,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAM;IAGjE,SAAS,CAAC,kBAAkB,SAAK;IAEjC,SAAS,CAAC,iBAAiB,SAAK;IAGhC,SAAS,CAAC,iBAAiB,SAA+C;IAE1E,SAAS,CAAC,oBAAoB,SAAM;IAEpC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAK;IACxC,SAAS,CAAC,YAAY,EAAE,mBAAmB,EAAE,CAAM;IACnD,SAAS,CAAC,mBAAmB,EAAE,eAAe,CAAyB;IACvE,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAK;IACzC,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAK;IAC5C,SAAS,CAAC,uBAAuB,EAAE,MAAM,CAAK;IAC9C,SAAS,CAAC,+BAA+B,EAAE,uBAAuB,EAAE,CAAM;IAC1E,SAAS,CAAC,eAAe,EAAE,WAAW,CAAS;IAC/C,SAAS,CAAC,cAAc,EAAE,WAAW,CAAS;IAC9C,SAAS,CAAC,oBAAoB,EAAE,WAAW,CAAS;IACpD,SAAS,CAAC,eAAe,EAAE,WAAW,CAAS;IAC/C,SAAS,CAAC,iBAAiB,EAAE,KAAK,GAAG,IAAI,CAAQ;IACjD,SAAS,CAAC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3D,SAAS,CAAC,sBAAsB,EAAE,MAAM,CAAM;IAC9C,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAK;IAC5C,SAAS,CAAC,8BAA8B,EAAE,OAAO,CAAS;IAC1D,SAAS,CAAC,6BAA6B,EAAE,6BAA6B,CAGpE;IACF,SAAS,CAAC,wCAAwC,UAAS;IAC3D,SAAS,CAAC,oBAAoB,UAAS;IACvC,SAAS,CAAC,eAAe,UAAS;IAClC,SAAS,CAAC,oBAAoB,UAAS;IACvC,SAAS,CAAC,gBAAgB,UAAS;IACnC,SAAS,CAAC,6BAA6B,UAAS;IAChD,SAAS,CAAC,wBAAwB;;;;;;;MAOvB;IAEX,OAAO,CAAC,cAAc,CAA4C;cAE/C,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAyC5E,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAiB5D;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAYvC,sDAAsD;IACtD,SAAS,CAAC,oCAAoC,IAAI,IAAI;IAqEtD;;;;;OAKG;IAEH,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAUpC;;;;;OAKG;IACH,SAAS,CAAC,kCAAkC,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAW3E;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IA0EzD;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAuBvC,SAAS,CAAC,wBAAwB,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI;IA+BvE,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI;IAatD,SAAS,CAAC,mBAAmB,IAAI,IAAI;IASrC,SAAS,CAAC,sBAAsB,CAC9B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,CAAC,EAAE,gBAAgB,EACjC,cAAc,CAAC,EAAE,OAAO,EACxB,eAAe,CAAC,EAAE,OAAO,GACxB,gBAAgB;IAmBnB,SAAS,CAAC,qBAAqB,CAC7B,eAAe,EAAE,eAAe,EAChC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,cAAc,CAAC,EAAE,gBAAgB,EACjC,cAAc,CAAC,EAAE,OAAO,GACvB,eAAe;IAoBlB;;;;;OAKG;IACH,SAAS,CAAC,yBAAyB,CACjC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,gBAAgB,GAC/B,OAAO;IAOV;;;;;OAKG;IACH,SAAS,CAAC,kCAAkC,CAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,GAC1B,uBAAuB;IAiB1B;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IA4CtC;;;;OAIG;IACH,OAAO,CAAC,iCAAiC;IAqBzC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAOvC;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAYhC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAapC;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAkBpC;;;OAGG;IACH,OAAO,CAAC,qCAAqC;IAU7C;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAkBrC,OAAO,CAAC,yCAAyC;IA6BjD;;;;;OAKG;IACH,OAAO,CAAC,8BAA8B;IAgHtC,OAAO,CAAC,kCAAkC;IAoE1C,OAAO,CAAC,0BAA0B;IAkClC,SAAS,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IAOnE,SAAS,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IAKnE,SAAS,CAAC,mCAAmC,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAwBnF,OAAO,CAAC,oCAAoC;IAkC5C,SAAS,CAAC,iCAAiC,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IA+BjF,SAAS,CAAC,0BAA0B,IAAI,IAAI;IAmB5C,SAAS,CAAC,iBAAiB,CACzB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,MAAM;IAMT;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IA+BlC;;;OAGG;IACH,OAAO,CAAC,kCAAkC;IA4B1C;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,iCAAiC;IAoBzC,OAAO,CAAC,gCAAgC;IAUxC,OAAO,CAAC,8BAA8B;IAUtC;;;SAGK;IACL,OAAO,CAAC,sBAAsB;IAS9B;;;;;;;SAOK;IACL,OAAO,CAAC,2BAA2B;IA+BnC,OAAO,CAAC,6BAA6B;IAMrC,OAAO,CAAC,gCAAgC;IAsBxC,OAAO,CAAC,8BAA8B,CA4BpC;IAEF;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,kBAAkB;IAO1B;;;;;;;;;OASG;IACH,OAAO,CAAC,0BAA0B;IAkBlC;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;CAKxC"}
1
+ {"version":3,"file":"seat-reservation-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation-base-element.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAShE,OAAO,KAAK,EACV,WAAW,EAEX,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,KAAK,EACL,cAAc,EAEd,eAAe,EAGf,6BAA6B,EAC9B,MAAM,cAAc,CAAC;AAGtB,aAAK,eAAe;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAaD,qBAAa,0BAA2B,SAAQ,UAAU;IACxD,gBAAuB,MAAM;;;MAGlB;IAEX,kEAAkE;IAClE,SACgB,gBAAgB,EAAE,eAAe,EAAE,CAAS;IAE5D,sEAAsE;IACtE,SAEgB,aAAa,EAAE,OAAO,CAAQ;IAE9C,sDAAsD;IACtD,SAEgB,aAAa,EAAE,OAAO,CAAS;IAE/C,iDAAiD;IACjD,SAEgB,YAAY,EAAE,MAAM,CAAM;IAE1C,wCAAwC;IACxC,SAEgB,MAAM,EAAE,MAAM,CAAS;IAEvC,iDAAiD;IACjD,SAEgB,mBAAmB,EAAE,MAAM,CAAM;IAEjD,0DAA0D;IAC1D,SAEgB,sBAAsB,EAAE,MAAM,CAAM;IAEpD,2CAA2C;IAC3C,SAEgB,iBAAiB,EAAE,OAAO,CAAS;IAEnD,SAEgB,mBAAmB,EAAE,MAAM,CAAM;IAExC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAM;IACnD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAM;IAClD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAM;IAG3D,SAAS,CAAC,kBAAkB,SAAK;IAEjC,SAAS,CAAC,iBAAiB,SAAK;IAGhC,SAAS,CAAC,iBAAiB,SAA+C;IAE1E,SAAS,CAAC,oBAAoB,SAAM;IAEpC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAK;IACxC,SAAS,CAAC,YAAY,EAAE,mBAAmB,EAAE,CAAM;IACnD,SAAS,CAAC,mBAAmB,EAAE,eAAe,CAAyB;IACvE,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAK;IACzC,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAK;IAC5C,SAAS,CAAC,uBAAuB,EAAE,MAAM,CAAK;IAC9C,SAAS,CAAC,+BAA+B,EAAE,uBAAuB,EAAE,CAAM;IAC1E,SAAS,CAAC,oBAAoB,EAAE,WAAW,CAAS;IACpD,SAAS,CAAC,eAAe,EAAE,WAAW,CAAS;IAC/C,SAAS,CAAC,iBAAiB,EAAE,KAAK,GAAG,IAAI,CAAQ;IACjD,SAAS,CAAC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3D,SAAS,CAAC,sBAAsB,EAAE,MAAM,CAAM;IAC9C,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAK;IAC5C,SAAS,CAAC,8BAA8B,EAAE,OAAO,CAAS;IAC1D,SAAS,CAAC,6BAA6B,EAAE,6BAA6B,CAGpE;IACF,SAAS,CAAC,wCAAwC,UAAS;IAC3D,SAAS,CAAC,oBAAoB,UAAS;IACvC,SAAS,CAAC,eAAe,UAAS;IAClC,SAAS,CAAC,oBAAoB,UAAS;IACvC,SAAS,CAAC,gBAAgB,UAAS;IACnC,SAAS,CAAC,6BAA6B,UAAS;IAChD,SAAS,CAAC,wBAAwB;;;;;;;MAOvB;IAEX,OAAO,CAAC,iCAAiC,CAAS;IAClD,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,mBAAmB,CAAM;cAEd,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA0C5E,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAiB5D;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAYvC,sDAAsD;IACtD,SAAS,CAAC,oCAAoC,IAAI,IAAI;IAqEtD;;;;;OAKG;IAEH,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAUpC;;;;;OAKG;IACH,SAAS,CAAC,kCAAkC,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAW3E,qDAAqD;IACrD,SAAS,CAAC,yBAAyB,IAAI,IAAI;IAK3C,kDAAkD;IAClD,SAAS,CAAC,6BAA6B,CACrC,KAAK,EAAE,aAAa,EACpB,uBAAuB,EAAE,MAAM,GAC9B,IAAI;IAcP,8GAA8G;IAC9G,OAAO,CAAC,uBAAuB;IA2C/B;;;OAGG;IACH,SAAS,CAAC,2BAA2B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAgEjE;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IA2CvC,SAAS,CAAC,wBAAwB,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI;IAiCvE,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI;IAwBtD,SAAS,CAAC,mBAAmB,IAAI,IAAI;IASrC,SAAS,CAAC,sBAAsB,CAC9B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,CAAC,EAAE,gBAAgB,EACjC,cAAc,CAAC,EAAE,OAAO,EACxB,eAAe,CAAC,EAAE,OAAO,GACxB,gBAAgB;IAmBnB,SAAS,CAAC,qBAAqB,CAC7B,eAAe,EAAE,eAAe,EAChC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,cAAc,CAAC,EAAE,gBAAgB,EACjC,cAAc,CAAC,EAAE,OAAO,GACvB,eAAe;IAoBlB;;;;;OAKG;IACH,SAAS,CAAC,yBAAyB,CACjC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,gBAAgB,GAC/B,OAAO;IAOV;;;;;OAKG;IACH,SAAS,CAAC,kCAAkC,CAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,GAC1B,uBAAuB;IAiB1B;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAuDtC;;;;OAIG;IACH,OAAO,CAAC,iCAAiC;IAiBzC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAOvC;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAYhC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAapC;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAkBpC;;;OAGG;IACH,OAAO,CAAC,qCAAqC;IAU7C;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAkBrC,OAAO,CAAC,yCAAyC;IA6BjD;;;;;OAKG;IACH,OAAO,CAAC,8BAA8B;IAgHtC,OAAO,CAAC,kCAAkC;IA6E1C,OAAO,CAAC,0BAA0B;IAkClC,SAAS,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IAOnE,SAAS,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IAKnE,SAAS,CAAC,mCAAmC,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAwBnF,OAAO,CAAC,oCAAoC;IAkC5C,SAAS,CAAC,iCAAiC,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IA6BjF,SAAS,CAAC,0BAA0B,IAAI,IAAI;IA0B5C,SAAS,CAAC,iBAAiB,CACzB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,MAAM;IAMT;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IA+BlC;;;OAGG;IACH,OAAO,CAAC,kCAAkC;IA4B1C;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,iCAAiC;IAoBzC,OAAO,CAAC,gCAAgC;IAUxC,OAAO,CAAC,8BAA8B;IAUtC;;;SAGK;IACL,OAAO,CAAC,sBAAsB;IAS9B;;;;;;;SAOK;IACL,OAAO,CAAC,2BAA2B;IA+BnC,OAAO,CAAC,6BAA6B;IAMrC,OAAO,CAAC,gCAAgC;IAsBxC,OAAO,CAAC,8BAA8B,CA4BpC;IAEF;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,kBAAkB;IAO1B;;;;;;;;;OASG;IACH,OAAO,CAAC,0BAA0B;IAkBlC;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;CAKxC"}