groove-dev 0.25.0 → 0.25.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.
@@ -356,167 +356,177 @@ Error generating stack: `+c.message+`
356
356
  *
357
357
  * This source code is licensed under the ISC license.
358
358
  * See the LICENSE file in the root directory of this source tree.
359
- */const ZT=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Cc=ae("pencil",ZT);/**
359
+ */const ZT=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],AT=ae("pen",ZT);/**
360
360
  * @license lucide-react v1.7.0 - ISC
361
361
  *
362
362
  * This source code is licensed under the ISC license.
363
363
  * See the LICENSE file in the root directory of this source tree.
364
- */const AT=[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]],Fg=ae("plug-zap",AT);/**
364
+ */const ET=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Cc=ae("pencil",ET);/**
365
365
  * @license lucide-react v1.7.0 - ISC
366
366
  *
367
367
  * This source code is licensed under the ISC license.
368
368
  * See the LICENSE file in the root directory of this source tree.
369
- */const ET=[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]],Ab=ae("plug",ET);/**
369
+ */const qT=[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]],Fg=ae("plug-zap",qT);/**
370
370
  * @license lucide-react v1.7.0 - ISC
371
371
  *
372
372
  * This source code is licensed under the ISC license.
373
373
  * See the LICENSE file in the root directory of this source tree.
374
- */const qT=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Fn=ae("plus",qT);/**
374
+ */const MT=[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]],Ab=ae("plug",MT);/**
375
375
  * @license lucide-react v1.7.0 - ISC
376
376
  *
377
377
  * This source code is licensed under the ISC license.
378
378
  * See the LICENSE file in the root directory of this source tree.
379
- */const MT=[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]],Eb=ae("puzzle",MT);/**
379
+ */const YT=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Fn=ae("plus",YT);/**
380
380
  * @license lucide-react v1.7.0 - ISC
381
381
  *
382
382
  * This source code is licensed under the ISC license.
383
383
  * See the LICENSE file in the root directory of this source tree.
384
- */const YT=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],Wf=ae("radio",YT);/**
384
+ */const VT=[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]],UT=ae("presentation",VT);/**
385
385
  * @license lucide-react v1.7.0 - ISC
386
386
  *
387
387
  * This source code is licensed under the ISC license.
388
388
  * See the LICENSE file in the root directory of this source tree.
389
- */const VT=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],es=ae("refresh-cw",VT);/**
389
+ */const GT=[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]],Eb=ae("puzzle",GT);/**
390
390
  * @license lucide-react v1.7.0 - ISC
391
391
  *
392
392
  * This source code is licensed under the ISC license.
393
393
  * See the LICENSE file in the root directory of this source tree.
394
- */const UT=[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]],qb=ae("rocket",UT);/**
394
+ */const LT=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],Wf=ae("radio",LT);/**
395
395
  * @license lucide-react v1.7.0 - ISC
396
396
  *
397
397
  * This source code is licensed under the ISC license.
398
398
  * See the LICENSE file in the root directory of this source tree.
399
- */const GT=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],El=ae("rotate-cw",GT);/**
399
+ */const DT=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],es=ae("refresh-cw",DT);/**
400
400
  * @license lucide-react v1.7.0 - ISC
401
401
  *
402
402
  * This source code is licensed under the ISC license.
403
403
  * See the LICENSE file in the root directory of this source tree.
404
- */const LT=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],DT=ae("save",LT);/**
404
+ */const WT=[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]],qb=ae("rocket",WT);/**
405
405
  * @license lucide-react v1.7.0 - ISC
406
406
  *
407
407
  * This source code is licensed under the ISC license.
408
408
  * See the LICENSE file in the root directory of this source tree.
409
- */const WT=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],ql=ae("search",WT);/**
409
+ */const BT=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],El=ae("rotate-cw",BT);/**
410
410
  * @license lucide-react v1.7.0 - ISC
411
411
  *
412
412
  * This source code is licensed under the ISC license.
413
413
  * See the LICENSE file in the root directory of this source tree.
414
- */const BT=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],Bf=ae("send",BT);/**
414
+ */const HT=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],IT=ae("save",HT);/**
415
415
  * @license lucide-react v1.7.0 - ISC
416
416
  *
417
417
  * This source code is licensed under the ISC license.
418
418
  * See the LICENSE file in the root directory of this source tree.
419
- */const HT=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],Mb=ae("server",HT);/**
419
+ */const FT=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],ql=ae("search",FT);/**
420
420
  * @license lucide-react v1.7.0 - ISC
421
421
  *
422
422
  * This source code is licensed under the ISC license.
423
423
  * See the LICENSE file in the root directory of this source tree.
424
- */const IT=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Yb=ae("settings",IT);/**
424
+ */const KT=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],Bf=ae("send",KT);/**
425
425
  * @license lucide-react v1.7.0 - ISC
426
426
  *
427
427
  * This source code is licensed under the ISC license.
428
428
  * See the LICENSE file in the root directory of this source tree.
429
- */const FT=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Vb=ae("shield-check",FT);/**
429
+ */const JT=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],Mb=ae("server",JT);/**
430
430
  * @license lucide-react v1.7.0 - ISC
431
431
  *
432
432
  * This source code is licensed under the ISC license.
433
433
  * See the LICENSE file in the root directory of this source tree.
434
- */const KT=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]],JT=ae("shield-x",KT);/**
434
+ */const eP=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Yb=ae("settings",eP);/**
435
435
  * @license lucide-react v1.7.0 - ISC
436
436
  *
437
437
  * This source code is licensed under the ISC license.
438
438
  * See the LICENSE file in the root directory of this source tree.
439
- */const eP=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Fr=ae("shield",eP);/**
439
+ */const tP=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Vb=ae("shield-check",tP);/**
440
440
  * @license lucide-react v1.7.0 - ISC
441
441
  *
442
442
  * This source code is licensed under the ISC license.
443
443
  * See the LICENSE file in the root directory of this source tree.
444
- */const tP=[["path",{d:"M16 10a4 4 0 0 1-8 0",key:"1ltviw"}],["path",{d:"M3.103 6.034h17.794",key:"awc11p"}],["path",{d:"M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z",key:"o988cm"}]],xO=ae("shopping-bag",tP);/**
444
+ */const aP=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]],nP=ae("shield-x",aP);/**
445
445
  * @license lucide-react v1.7.0 - ISC
446
446
  *
447
447
  * This source code is licensed under the ISC license.
448
448
  * See the LICENSE file in the root directory of this source tree.
449
- */const aP=[["path",{d:"m12.5 17-.5-1-.5 1h1z",key:"3me087"}],["path",{d:"M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z",key:"1o5pge"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}]],Hf=ae("skull",aP);/**
449
+ */const sP=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Fr=ae("shield",sP);/**
450
450
  * @license lucide-react v1.7.0 - ISC
451
451
  *
452
452
  * This source code is licensed under the ISC license.
453
453
  * See the LICENSE file in the root directory of this source tree.
454
- */const nP=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Ub=ae("sparkles",nP);/**
454
+ */const lP=[["path",{d:"M16 10a4 4 0 0 1-8 0",key:"1ltviw"}],["path",{d:"M3.103 6.034h17.794",key:"awc11p"}],["path",{d:"M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z",key:"o988cm"}]],xO=ae("shopping-bag",lP);/**
455
455
  * @license lucide-react v1.7.0 - ISC
456
456
  *
457
457
  * This source code is licensed under the ISC license.
458
458
  * See the LICENSE file in the root directory of this source tree.
459
- */const sP=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Gb=ae("star",sP);/**
459
+ */const rP=[["path",{d:"m12.5 17-.5-1-.5 1h1z",key:"3me087"}],["path",{d:"M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z",key:"1o5pge"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}]],Hf=ae("skull",rP);/**
460
460
  * @license lucide-react v1.7.0 - ISC
461
461
  *
462
462
  * This source code is licensed under the ISC license.
463
463
  * See the LICENSE file in the root directory of this source tree.
464
- */const lP=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],ui=ae("terminal",lP);/**
464
+ */const iP=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Ub=ae("sparkles",iP);/**
465
465
  * @license lucide-react v1.7.0 - ISC
466
466
  *
467
467
  * This source code is licensed under the ISC license.
468
468
  * See the LICENSE file in the root directory of this source tree.
469
- */const rP=[["path",{d:"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2",key:"125lnx"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M14.5 16h-5",key:"1ox875"}]],If=ae("test-tube",rP);/**
469
+ */const oP=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Gb=ae("star",oP);/**
470
470
  * @license lucide-react v1.7.0 - ISC
471
471
  *
472
472
  * This source code is licensed under the ISC license.
473
473
  * See the LICENSE file in the root directory of this source tree.
474
- */const iP=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Xc=ae("trash-2",iP);/**
474
+ */const cP=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],ui=ae("terminal",cP);/**
475
475
  * @license lucide-react v1.7.0 - ISC
476
476
  *
477
477
  * This source code is licensed under the ISC license.
478
478
  * See the LICENSE file in the root directory of this source tree.
479
- */const oP=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],_c=ae("triangle-alert",oP);/**
479
+ */const uP=[["path",{d:"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2",key:"125lnx"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M14.5 16h-5",key:"1ox875"}]],If=ae("test-tube",uP);/**
480
480
  * @license lucide-react v1.7.0 - ISC
481
481
  *
482
482
  * This source code is licensed under the ISC license.
483
483
  * See the LICENSE file in the root directory of this source tree.
484
- */const cP=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],uP=ae("upload",cP);/**
484
+ */const dP=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Xc=ae("trash-2",dP);/**
485
485
  * @license lucide-react v1.7.0 - ISC
486
486
  *
487
487
  * This source code is licensed under the ISC license.
488
488
  * See the LICENSE file in the root directory of this source tree.
489
- */const dP=[["path",{d:"m16 11 2 2 4-4",key:"9rsbq5"}],["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],OP=ae("user-check",dP);/**
489
+ */const OP=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],_c=ae("triangle-alert",OP);/**
490
490
  * @license lucide-react v1.7.0 - ISC
491
491
  *
492
492
  * This source code is licensed under the ISC license.
493
493
  * See the LICENSE file in the root directory of this source tree.
494
- */const fP=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],hP=ae("user-plus",fP);/**
494
+ */const fP=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],hP=ae("upload",fP);/**
495
495
  * @license lucide-react v1.7.0 - ISC
496
496
  *
497
497
  * This source code is licensed under the ISC license.
498
498
  * See the LICENSE file in the root directory of this source tree.
499
- */const mP=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],Lb=ae("user",mP);/**
499
+ */const mP=[["path",{d:"m16 11 2 2 4-4",key:"9rsbq5"}],["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],pP=ae("user-check",mP);/**
500
500
  * @license lucide-react v1.7.0 - ISC
501
501
  *
502
502
  * This source code is licensed under the ISC license.
503
503
  * See the LICENSE file in the root directory of this source tree.
504
- */const pP=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],Zc=ae("users",pP);/**
504
+ */const xP=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],gP=ae("user-plus",xP);/**
505
505
  * @license lucide-react v1.7.0 - ISC
506
506
  *
507
507
  * This source code is licensed under the ISC license.
508
508
  * See the LICENSE file in the root directory of this source tree.
509
- */const xP=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],gP=ae("wrench",xP);/**
509
+ */const bP=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],Lb=ae("user",bP);/**
510
510
  * @license lucide-react v1.7.0 - ISC
511
511
  *
512
512
  * This source code is licensed under the ISC license.
513
513
  * See the LICENSE file in the root directory of this source tree.
514
- */const bP=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Rt=ae("x",bP);/**
514
+ */const vP=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],Zc=ae("users",vP);/**
515
515
  * @license lucide-react v1.7.0 - ISC
516
516
  *
517
517
  * This source code is licensed under the ISC license.
518
518
  * See the LICENSE file in the root directory of this source tree.
519
- */const vP=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],Na=ae("zap",vP),yP={success:Br,error:cn,info:Rb,warning:_c},SP={success:"border-l-success",error:"border-l-danger",info:"border-l-accent",warning:"border-l-warning"},QP={success:"text-success",error:"text-danger",info:"text-accent",warning:"text-warning"},jP={success:3e3,error:0,info:5e3,warning:5e3};function wP({toast:t}){const n=D(o=>o.removeToast),s=yP[t.type]||Rb,l=jP[t.type];return v.useEffect(()=>{if(!l)return;const o=setTimeout(()=>n(t.id),l);return()=>clearTimeout(o)},[t.id,l,n]),i.jsxs(b0.div,{layout:!0,initial:{opacity:0,x:80,scale:.95},animate:{opacity:1,x:0,scale:1},exit:{opacity:0,x:80,scale:.95},transition:{duration:.2},className:le("w-80 rounded-md border border-border bg-surface-1 shadow-xl","border-l-4 flex items-center gap-3 px-4 py-3",SP[t.type]),children:[i.jsx(s,{size:16,className:le("flex-shrink-0",QP[t.type])}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-sm text-text-0 font-sans",children:t.message}),t.detail&&i.jsx("p",{className:"text-xs text-text-3 font-sans mt-0.5",children:t.detail})]}),i.jsx("button",{onClick:o=>{o.stopPropagation(),n(t.id)},className:"p-1.5 text-text-4 hover:text-text-1 hover:bg-surface-5 rounded transition-colors cursor-pointer flex-shrink-0 z-10",children:i.jsx(Rt,{size:14})})]})}function kP(){const t=D(n=>n.toasts);return i.jsx("div",{className:"fixed bottom-4 right-4 z-[100] flex flex-col-reverse gap-2",children:i.jsx(g0,{mode:"popLayout",children:t.slice(-3).map(n=>i.jsx(wP,{toast:n},n.id))})})}const $P=[{id:"agents",icon:_b,label:"Agents"},{id:"editor",icon:dn,label:"Editor"},{id:"dashboard",icon:Rc,label:"Dashboard"},{id:"marketplace",icon:Eb,label:"Marketplace"},{id:"teams",icon:Zc,label:"Teams"}],TP=[{id:"journalist",icon:Ir,label:"Journalist",panel:!0},{id:"settings",icon:Yb,label:"Settings",nav:!0}];function PP({activeView:t,detailPanel:n,onNavigate:s,onTogglePanel:l}){return i.jsxs("nav",{className:"w-12 flex-shrink-0 flex flex-col bg-surface-3 border-r border-border",children:[i.jsx("div",{className:"flex flex-col items-center gap-0.5 pt-2",children:$P.map(o=>i.jsx(Wg,{content:o.label,side:"right",children:i.jsx("button",{onClick:()=>s(o.id),className:le("w-10 h-10 flex items-center justify-center rounded-md transition-colors cursor-pointer",t===o.id?"text-text-0 bg-surface-5":"text-text-3 hover:text-text-1 hover:bg-surface-4"),children:i.jsx(o.icon,{size:20,strokeWidth:t===o.id?2:1.5})})},o.id))}),i.jsx("div",{className:"flex-1"}),i.jsx("div",{className:"flex flex-col items-center gap-0.5 pb-2",children:TP.map(o=>{const u=o.panel?(n==null?void 0:n.type)===o.id:t===o.id;return i.jsx(Wg,{content:o.label,side:"right",children:i.jsx("button",{onClick:()=>o.panel?l(o.id):s((o.nav,o.id)),className:le("w-10 h-10 flex items-center justify-center rounded-md transition-colors cursor-pointer",u?"text-text-0 bg-surface-5":"text-text-3 hover:text-text-1 hover:bg-surface-4"),children:i.jsx(o.icon,{size:20,strokeWidth:u?2:1.5})})},o.id)})})]})}const NP={agents:"Agents",editor:"Editor",dashboard:"Dashboard",marketplace:"Marketplace",teams:"Teams"};function zP({activeView:t,connected:n,daemonHost:s,editorActiveFile:l,onOpenCommandPalette:o,onSpawn:u}){const d=["Groove",NP[t]||t];return t==="editor"&&l&&d.push(l.split("/").pop()),i.jsxs("header",{className:"h-11 flex-shrink-0 flex items-center gap-3 px-4 bg-surface-3 border-b border-border",children:[i.jsx("img",{src:"/favicon.png",alt:"Groove",className:"h-7 w-7 rounded-full flex-shrink-0"}),s&&i.jsx("span",{className:"text-2xs font-mono font-semibold text-text-3 bg-surface-5 px-1.5 py-0.5 rounded flex-shrink-0",children:s}),i.jsx("div",{className:"flex-1 min-w-4"}),i.jsxs("button",{onClick:o,className:le("flex items-center gap-2.5 h-8 px-4 rounded-full w-full max-w-md","bg-surface-1 border border-border-subtle","text-sm text-text-4 font-sans","hover:border-border hover:text-text-3 transition-colors cursor-pointer"),children:[i.jsx(ql,{size:14,className:"flex-shrink-0"}),i.jsx("span",{className:"flex-1 text-left",children:"Search commands..."}),i.jsx("kbd",{className:"text-2xs font-mono bg-surface-4 px-1.5 py-0.5 rounded-full text-text-4",children:"Cmd+K"})]}),i.jsx("div",{className:"flex-1 min-w-4"}),i.jsx("div",{className:"flex items-center gap-1 text-xs font-sans text-text-3 flex-shrink-0",children:d.map((O,m)=>i.jsxs("span",{className:"flex items-center gap-1",children:[m>0&&i.jsx(ii,{size:11,className:"text-text-4"}),i.jsx("span",{className:le(m===d.length-1?"text-text-2":"text-text-4"),children:O})]},m))}),n&&i.jsxs("button",{onClick:u,className:"ml-1 flex items-center gap-1 h-7 px-3.5 rounded-full bg-accent/15 text-accent text-xs font-semibold font-sans hover:bg-accent/25 transition-colors cursor-pointer select-none flex-shrink-0",children:[i.jsx(Fn,{size:14}),"Spawn"]})]})}const RP={running:"var(--color-success)",starting:"var(--color-warning)",stopped:"var(--color-text-3)",crashed:"var(--color-danger)",completed:"var(--color-accent)",killed:"var(--color-text-3)",rotating:"var(--color-purple)"};function Ff(t){return RP[t]||"var(--color-text-3)"}const CP={planner:{bg:"rgba(74, 225, 104, 0.12)",text:"#4ae168",border:"#4ae168"},backend:{bg:"rgba(51, 175, 188, 0.12)",text:"#33afbc",border:"#33afbc"},frontend:{bg:"rgba(229, 192, 123, 0.12)",text:"#e5c07b",border:"#e5c07b"},fullstack:{bg:"rgba(74, 225, 104, 0.12)",text:"#4ae168",border:"#4ae168"},testing:{bg:"rgba(97, 175, 239, 0.12)",text:"#61afef",border:"#61afef"},devops:{bg:"rgba(209, 154, 102, 0.12)",text:"#d19a66",border:"#d19a66"},docs:{bg:"rgba(139, 146, 158, 0.12)",text:"#8b929e",border:"#8b929e"},security:{bg:"rgba(224, 108, 117, 0.12)",text:"#e06c75",border:"#e06c75"},database:{bg:"rgba(198, 120, 221, 0.12)",text:"#c678dd",border:"#c678dd"},cmo:{bg:"rgba(229, 192, 123, 0.12)",text:"#e5c07b",border:"#e5c07b"},cfo:{bg:"rgba(74, 225, 104, 0.12)",text:"#4ae168",border:"#4ae168"},ea:{bg:"rgba(97, 175, 239, 0.12)",text:"#61afef",border:"#61afef"},support:{bg:"rgba(51, 175, 188, 0.12)",text:"#33afbc",border:"#33afbc"},analyst:{bg:"rgba(198, 120, 221, 0.12)",text:"#c678dd",border:"#c678dd"}};function Db(t){const n=(t||"").toLowerCase();return CP[n]||{bg:"rgba(139, 146, 158, 0.12)",text:"#8b929e",border:"#8b929e"}}function Nl({status:t,size:n="md",className:s}){const l=t==="running"||t==="starting",o=n==="sm"?"w-1.5 h-1.5":n==="lg"?"w-3 h-3":"w-2 h-2";return i.jsx("span",{className:le("rounded-full inline-block flex-shrink-0",l&&"animate-pulse",o,s),style:{background:Ff(t)}})}function rt(t){return t==null||isNaN(t)?"0":t>=1e6?(t/1e6).toFixed(1).replace(/\.0$/,"")+"M":t>=1e3?(t/1e3).toFixed(1).replace(/\.0$/,"")+"k":Math.round(t).toLocaleString()}function Kf(t){return t==null||isNaN(t)?"$0":t>=1e3?"$"+(t/1e3).toFixed(1).replace(/\.0$/,"")+"k":t>=1||t>=.01?"$"+t.toFixed(2):"$"+t.toFixed(3)}function ws(t){return t==null||isNaN(t)?"0%":Math.round(t)+"%"}function Ac(t){if(!t||t<0)return"0s";const n=Math.floor(t/86400),s=Math.floor(t%86400/3600),l=Math.floor(t%3600/60),o=Math.floor(t%60);return n>0?`${n}d ${s}h`:s>0?`${s}h ${l}m`:l>0?`${l}m ${o}s`:`${o}s`}function Ct(t){if(!t)return"";const n=(Date.now()-new Date(t).getTime())/1e3;return n<5?"just now":n<60?`${Math.floor(n)}s ago`:n<3600?`${Math.floor(n/60)}m ago`:n<86400?`${Math.floor(n/3600)}h ago`:`${Math.floor(n/86400)}d ago`}function XP({connected:t,agentCount:n,runningCount:s,uptime:l,terminalVisible:o,onToggleTerminal:u}){return i.jsxs("footer",{className:"h-6 flex-shrink-0 flex items-center px-3 bg-surface-3 border-t border-border text-2xs font-sans select-none",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx(Nl,{status:t?"running":"crashed",size:"sm"}),i.jsx("span",{className:t?"text-text-2":"text-danger",children:t?"Connected":"Offline"})]}),t&&l>0&&i.jsxs("span",{className:"text-text-4",children:["Up ",Ac(l)]}),t&&n>0&&i.jsxs("span",{className:"text-text-4",children:[s,"/",n," agents"]})]}),i.jsx("div",{className:"flex-1"}),i.jsxs("a",{href:"https://docs.groovedev.ai",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1.5 px-2 h-full text-text-3 hover:text-text-1 hover:bg-surface-5 transition-colors no-underline",children:[i.jsx(g5,{size:12}),i.jsx("span",{children:"Docs"})]}),i.jsxs("button",{onClick:u,className:le("flex items-center gap-1.5 px-2 h-full transition-colors cursor-pointer",o?"text-accent bg-accent/8 hover:bg-accent/12":"text-text-3 hover:text-text-1 hover:bg-surface-5"),children:[i.jsx(ui,{size:12}),i.jsx("span",{children:"Terminal"}),i.jsx("kbd",{className:"font-mono text-text-4 ml-0.5",children:"Cmd+J"})]})]})}function _P({children:t,width:n,onWidthChange:s,onClose:l,className:o}){const u=v.useRef(!1),d=v.useRef(0),O=v.useRef(0),m=v.useCallback(p=>{p.preventDefault(),u.current=!0,d.current=p.clientX,O.current=n;function x(b){if(!u.current)return;const S=d.current-b.clientX,Q=Math.min(Math.max(O.current+S,380),window.innerWidth*.65);s(Q)}function g(){u.current=!1,document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",g)}document.addEventListener("mousemove",x),document.addEventListener("mouseup",g)},[n,s]);return i.jsxs("aside",{className:le("flex-shrink-0 flex bg-surface-1 border-l border-border relative",o),style:{width:n},children:[i.jsx("div",{className:"absolute left-0 top-0 bottom-0 w-1 cursor-col-resize hover:bg-accent/30 transition-colors z-10",onMouseDown:m}),i.jsx("button",{onClick:l,className:"absolute top-3 right-3 z-10 p-1 rounded-md text-text-3 hover:text-text-0 hover:bg-surface-5 transition-colors cursor-pointer",children:i.jsx(Rt,{size:14})}),i.jsx("div",{className:"flex-1 overflow-y-auto overflow-x-hidden",children:t})]})}const ZP=[{id:"nav:agents",label:"Go to Agents",icon:_b,category:"Navigation",action:t=>{t.setActiveView("agents")}},{id:"nav:editor",label:"Go to Editor",icon:dn,category:"Navigation",action:t=>{t.setActiveView("editor")}},{id:"nav:dashboard",label:"Go to Dashboard",icon:Rc,category:"Navigation",action:t=>{t.setActiveView("dashboard")}},{id:"nav:marketplace",label:"Go to Marketplace",icon:Eb,category:"Navigation",action:t=>{t.setActiveView("marketplace")}},{id:"nav:teams",label:"Go to Teams",icon:Zc,category:"Navigation",action:t=>{t.setActiveView("teams")}},{id:"action:spawn",label:"Spawn Agent",icon:Fn,category:"Actions",action:t=>{t.openDetail({type:"spawn"})}},{id:"action:terminal",label:"Toggle Terminal",icon:ui,category:"Actions",action:t=>{t.setTerminalVisible(!t.terminalVisible)},shortcut:"Cmd+J"},{id:"action:journalist",label:"Toggle Journalist",icon:Ir,category:"Actions",action:t=>{var n;((n=t.detailPanel)==null?void 0:n.type)==="journalist"?t.closeDetail():t.openDetail({type:"journalist"})}}];function AP(){const t=D(S=>S.commandPaletteOpen),n=D(S=>S.toggleCommandPalette),s=D(S=>S.agents),l=D,[o,u]=v.useState(""),[d,O]=v.useState(0),m=v.useRef(null),p=v.useMemo(()=>{const S=s.flatMap(Q=>[{id:`chat:${Q.id}`,label:`Chat with ${Q.name}`,icon:ci,category:"Agents",action:k=>{k.selectAgent(Q.id)}},...Q.status==="running"?[{id:`rotate:${Q.id}`,label:`Rotate ${Q.name}`,icon:El,category:"Agents",action:k=>{k.rotateAgent(Q.id)}},{id:`kill:${Q.id}`,label:`Kill ${Q.name}`,icon:Hf,category:"Agents",action:k=>{k.killAgent(Q.id)}}]:[]]);return[...ZP,...S]},[s]),x=v.useMemo(()=>{if(!o.trim())return p.slice(0,12);const S=o.toLowerCase();return p.filter(Q=>Q.label.toLowerCase().includes(S)||Q.category.toLowerCase().includes(S)).slice(0,12)},[p,o]);v.useEffect(()=>{t&&(u(""),O(0),setTimeout(()=>{var S;return(S=m.current)==null?void 0:S.focus()},50))},[t]),v.useEffect(()=>{d>=x.length&&O(Math.max(0,x.length-1))},[x.length,d]);function g(S){S.action(l.getState()),n()}function b(S){S.key==="ArrowDown"?(S.preventDefault(),O(Q=>Math.min(Q+1,x.length-1))):S.key==="ArrowUp"?(S.preventDefault(),O(Q=>Math.max(Q-1,0))):S.key==="Enter"&&x[d]?(S.preventDefault(),g(x[d])):S.key==="Escape"&&n()}return t?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"fixed inset-0 z-50 bg-black/40 backdrop-blur-sm",onClick:n}),i.jsx(g0,{children:i.jsxs(b0.div,{initial:{opacity:0,y:-20,scale:.96},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-10,scale:.98},transition:{duration:.15},className:"fixed top-[15%] left-1/2 -translate-x-1/2 z-50 w-[480px] max-h-[400px] bg-surface-1 border border-border rounded-lg shadow-2xl overflow-hidden",onKeyDown:b,children:[i.jsxs("div",{className:"flex items-center gap-2 px-4 py-3 border-b border-border-subtle",children:[i.jsx(ql,{size:16,className:"text-text-3 flex-shrink-0"}),i.jsx("input",{ref:m,value:o,onChange:S=>{u(S.target.value),O(0)},placeholder:"Type a command...",className:"flex-1 bg-transparent text-sm text-text-0 font-sans placeholder:text-text-4 focus:outline-none"})]}),i.jsxs("div",{className:"overflow-y-auto max-h-[320px] py-1",children:[x.length===0&&i.jsx("div",{className:"px-4 py-6 text-sm text-text-3 text-center font-sans",children:"No results"}),x.map((S,Q)=>i.jsxs("button",{onClick:()=>g(S),onMouseEnter:()=>O(Q),className:le("w-full flex items-center gap-3 px-4 py-2 text-sm font-sans cursor-pointer",Q===d?"bg-surface-5 text-text-0":"text-text-1 hover:bg-surface-4"),children:[i.jsx(S.icon,{size:16,className:"text-text-3 flex-shrink-0"}),i.jsx("span",{className:"flex-1 text-left",children:S.label}),i.jsx("span",{className:"text-2xs text-text-4",children:S.category}),S.shortcut&&i.jsx("kbd",{className:"text-2xs font-mono bg-surface-4 px-1 py-0.5 rounded text-text-3 ml-1",children:S.shortcut})]},S.id))]})]})})]}):null}function EP({children:t,detailContent:n,terminalContent:s}){const l=D(C=>C.activeView),o=D(C=>C.detailPanel),u=D(C=>C.connected),d=D(C=>C.tunneled),O=D(C=>C.daemonHost),m=D(C=>C.agents),p=D(C=>C.editorActiveFile),x=D(C=>C.detailPanelWidth),g=D(C=>C.terminalVisible),b=D(C=>C.terminalFullHeight),S=D(C=>C.setActiveView),Q=D(C=>C.openDetail),k=D(C=>C.closeDetail),T=D(C=>C.setDetailPanelWidth),j=D(C=>C.setTerminalVisible),P=D(C=>C.toggleCommandPalette),N=v.useMemo(()=>m.filter(C=>C.status==="running").length,[m]),A=v.useMemo(()=>[{key:"k",meta:!0,handler:()=>D.getState().toggleCommandPalette()},{key:"p",meta:!0,shift:!0,handler:()=>D.getState().toggleCommandPalette()},{key:"j",meta:!0,handler:()=>{const C=D.getState();C.setTerminalVisible(!C.terminalVisible)}},{key:"n",meta:!0,handler:()=>D.getState().openDetail({type:"spawn"})},{key:"1",meta:!0,handler:()=>D.getState().setActiveView("agents")},{key:"2",meta:!0,handler:()=>D.getState().setActiveView("editor")},{key:"3",meta:!0,handler:()=>D.getState().setActiveView("dashboard")},{key:"4",meta:!0,handler:()=>D.getState().setActiveView("marketplace")},{key:"5",meta:!0,handler:()=>D.getState().setActiveView("teams")},{key:"Escape",handler:()=>{const C=D.getState();C.commandPaletteOpen?C.toggleCommandPalette():C.detailPanel&&C.closeDetail()}}],[]);nw(A);const U=o&&o.type!=="spawn";return i.jsx(i5,{children:i.jsxs("div",{className:"w-full h-full flex flex-col bg-surface-2 text-text-1 font-sans",children:[i.jsx(zP,{activeView:l,connected:u,tunneled:d,daemonHost:O,editorActiveFile:p,onOpenCommandPalette:P,onSpawn:()=>Q({type:"spawn"})}),i.jsxs("div",{className:"flex-1 flex min-h-0",children:[i.jsx(PP,{activeView:l,detailPanel:o,onNavigate:S,onTogglePanel:C=>{(o==null?void 0:o.type)===C?k():Q({type:C})}}),i.jsxs("div",{className:"flex-1 flex flex-col min-w-0 min-h-0",children:[!(g&&b)&&i.jsx("main",{className:"flex-1 min-h-0 overflow-hidden relative",children:t}),s]}),U&&i.jsx(_P,{width:x,onWidthChange:T,onClose:k,children:n})]}),i.jsx(XP,{connected:u,agentCount:m.length,runningCount:N,terminalVisible:g,onToggleTerminal:()=>j(!g)}),i.jsx(AP,{}),i.jsx(kP,{})]})})}const qP=[];function MP(t){if(!t||t==="auto")return"auto";const n=t.match(/^claude-(opus|sonnet|haiku)-(\d+)-(\d+)(?:-\d+)?$/);return n?`${n[1][0].toUpperCase()+n[1].slice(1)} ${n[2]}.${n[3]}`:t.startsWith("gemini-")?t.replace("gemini-","Gemini ").replace("-preview","").replace("-flash-lite"," Flash Lite").replace("-flash"," Flash").replace("-pro"," Pro"):t.startsWith("gpt-")?t.toUpperCase().replace("GPT-","GPT-"):t}function YP(t){if(!t)return null;const n=t.toLowerCase();return n.includes("read")?"READ":n.includes("edit")||n.includes("writ")?"WRITE":n.includes("search")||n.includes("grep")||n.includes("glob")?"SEARCH":n.includes("bash")||n.includes("exec")||n.includes("running")?"EXEC":n.includes("test")?"TEST":n.includes("error")||n.includes("fail")?"ERR":n.includes("complet")||n.includes("done")?"DONE":"WORK"}function VP(t){if(!t)return"";const n=Math.floor((Date.now()-t)/1e3);return n<60?`${n}s`:n<3600?`${Math.floor(n/60)}m`:`${Math.floor(n/3600)}h`}function UP({agent:t}){const s=(D(l=>l.activityLog[t.id])||qP).slice(-8);return i.jsx("div",{className:"absolute left-full top-0 ml-2 z-50 pointer-events-none",style:{width:220,animation:"tooltip-slide-in 0.15s ease-out"},children:i.jsxs("div",{className:"overflow-hidden",style:{background:"#181b21",border:"1px solid #262a32",borderRadius:4},children:[t.prompt&&i.jsx("div",{className:"px-2.5 py-2 border-b border-[#262a32]",children:i.jsx("p",{className:"text-[9px] font-sans text-[#8b929e] line-clamp-3 leading-snug",children:t.prompt})}),s.length>0?i.jsxs("div",{children:[i.jsx("div",{className:"px-2.5 pt-1.5 pb-1",children:i.jsx("span",{className:"text-[8px] font-mono text-[#3a3f4b] uppercase tracking-widest",children:"Activity"})}),s.map((l,o)=>{var O;const u=YP(l.text),d=((O=l.text)==null?void 0:O.length)>45?l.text.slice(0,45)+"...":l.text;return i.jsxs("div",{className:"px-2.5 py-[3px] flex items-start gap-1.5",children:[i.jsx("span",{className:"text-[8px] font-mono text-[#333842] w-5 flex-shrink-0 text-right",children:VP(l.timestamp)}),u&&i.jsx("span",{className:le("text-[7px] font-mono w-7 flex-shrink-0 text-center rounded-sm px-0.5 py-px",u==="ERR"?"text-[#e06c75] bg-[#e06c75]/10":"text-[#505862] bg-[#505862]/10"),children:u}),i.jsx("span",{className:"text-[9px] font-sans text-[#6e7681] truncate flex-1",children:d})]},o)}),i.jsx("div",{className:"h-1.5"})]}):i.jsx("div",{className:"px-2.5 py-3",children:i.jsx("span",{className:"text-[9px] font-mono text-[#333842]",children:"Awaiting activity..."})})]})})}const GP={running:"LIVE",starting:"INIT",stopped:"IDLE",crashed:"ERR",completed:"DONE",killed:"KILL",rotating:"ROT"},Wb=v.memo(({data:t,selected:n})=>{const{agent:s}=t,l=s.status==="running"||s.status==="starting",o=Math.round((s.contextUsage||0)*100),u=Ff(s.status),d=s.tokensUsed||0,[O,m]=v.useState(!1);return i.jsxs("div",{className:"relative",onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:[i.jsxs("div",{className:"w-[220px] overflow-hidden transition-all duration-150",style:{background:"#1c1f26",border:`1px solid ${n?"#2e323a":"#262a32"}`,borderRadius:4},children:[i.jsx(Gn,{id:"top",type:"target",position:Ln.Top,className:"!w-1 !h-1 !bg-transparent !border-0"}),i.jsx(Gn,{id:"bottom",type:"target",position:Ln.Bottom,className:"!w-1 !h-1 !bg-transparent !border-0"}),i.jsx(Gn,{id:"left",type:"target",position:Ln.Left,className:"!w-1 !h-1 !bg-transparent !border-0"}),i.jsx(Gn,{id:"right",type:"target",position:Ln.Right,className:"!w-1 !h-1 !bg-transparent !border-0"}),l&&i.jsx("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",style:{borderRadius:3},children:i.jsx("div",{className:"absolute left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent 0%, rgba(97,175,239,0.25) 50%, transparent 100%)",animation:"node-scan 3s ease-in-out infinite"}})}),i.jsxs("div",{className:"px-3 pt-2.5 pb-1.5",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"relative flex-shrink-0 w-[6px] h-[6px]",children:[i.jsx("span",{className:"absolute inset-0 rounded-sm",style:{background:u}}),l&&i.jsx("span",{className:"absolute inset-[-2px] rounded-sm",style:{background:u,opacity:.15,animation:"node-pulse-bar 2s ease-in-out infinite"}})]}),i.jsx("span",{className:"text-[12px] font-semibold text-[#e6e6e6] font-sans truncate flex-1 leading-none",children:s.name}),i.jsx("span",{className:"text-[7px] font-mono font-bold uppercase tracking-wider px-1 py-px rounded-sm",style:{color:u,background:u+"12"},children:GP[s.status]||s.status})]}),i.jsxs("div",{className:"flex items-center gap-1.5 mt-1.5",children:[i.jsx("span",{className:"text-[9px] font-mono text-[#505862] uppercase tracking-[0.05em]",children:s.role}),i.jsx("span",{className:"text-[9px] text-[#2a2e36]",children:"/"}),i.jsx("span",{className:"text-[9px] font-mono text-[#505862]",children:MP(s.model)})]})]}),i.jsxs("div",{className:"px-3 pt-1 pb-2",children:[i.jsxs("div",{className:"flex items-baseline gap-1.5",children:[i.jsx("span",{className:"text-[14px] font-mono font-medium text-[#bcc2cd] leading-none",children:rt(d)}),i.jsx("span",{className:"text-[8px] font-mono text-[#505862]",children:"tok"}),i.jsx("span",{className:"flex-1"}),i.jsxs("span",{className:"text-[9px] font-mono text-[#505862]",children:[o,"%"]})]}),i.jsx("div",{className:"mt-1.5 h-[2px] rounded-sm bg-[#262a32] overflow-hidden",children:i.jsx("div",{className:"h-full rounded-sm transition-all duration-700",style:{width:`${Math.max(o,1)}%`,background:o>80?"#e06c75":o>60?"#e5c07b":l?"#61afef":"#333842"}})})]})]}),O&&i.jsx(UP,{agent:s})]})});Wb.displayName="AgentNode";const Bb=v.memo(({data:t})=>{const{agentCount:n,runningCount:s}=t,l=s>0,o={background:"transparent",border:0,width:2,height:2};return i.jsxs("div",{className:"relative flex items-center justify-center",style:{width:84,height:84},children:[i.jsx("div",{className:le("absolute inset-0 rounded-full transition-all duration-500",l&&"animate-[spin-slow_30s_linear_infinite]"),style:{border:`1px dashed ${l?"rgba(97,175,239,0.5)":"rgba(97,175,239,0.25)"}`}}),i.jsx("div",{className:"absolute inset-[10px] rounded-full",style:{background:l?"radial-gradient(circle, rgba(97,175,239,0.15) 0%, transparent 70%)":"radial-gradient(circle, rgba(97,175,239,0.05) 0%, transparent 70%)",animation:l?"node-pulse-bar 2.5s ease-in-out infinite":"none"}}),i.jsx("div",{className:le("w-14 h-14 rounded-full flex items-center justify-center relative z-10 transition-all duration-300",l?"bg-[#1c1f26] border-2 border-[#61afef]/35 shadow-[0_0_28px_rgba(97,175,239,0.15)]":"bg-[#1c1f26] border border-[#61afef]/20"),children:i.jsx("img",{src:"/favicon.png",alt:"G",className:le("h-7 w-7 rounded-full transition-opacity",l?"opacity-90":"opacity-60")})}),n>0&&i.jsx("div",{className:le("absolute z-20 min-w-[20px] h-[20px] rounded-sm flex items-center justify-center","text-[10px] font-mono font-bold px-1 transition-all duration-300",l?"bg-[#1c1f26] text-[#61afef] border border-[#61afef]/40":"bg-[#1c1f26] text-[#61afef]/60 border border-[#61afef]/20"),style:{bottom:2,right:2},children:n}),i.jsx(Gn,{id:"bottom",type:"source",position:Ln.Bottom,style:o}),i.jsx(Gn,{id:"right",type:"source",position:Ln.Right,style:o}),i.jsx(Gn,{id:"left",type:"source",position:Ln.Left,style:o}),i.jsx(Gn,{id:"top",type:"source",position:Ln.Top,style:o})]})});Bb.displayName="RootNode";const LP={primary:"bg-accent/20 text-accent border border-accent/25 hover:bg-accent/30 font-medium",secondary:"bg-surface-5/40 text-text-1 border border-border-subtle hover:bg-surface-5/70 hover:text-text-0",ghost:"bg-transparent text-text-2 border border-transparent hover:bg-surface-5/50 hover:text-text-0",danger:"bg-danger/12 text-danger border border-danger/15 hover:bg-danger/20",info:"bg-info/12 text-info border border-info/15 hover:bg-info/20",outline:"bg-transparent text-accent border border-accent/30 hover:bg-accent/10"},DP={sm:"h-7 px-2.5 text-xs gap-1.5 rounded",md:"h-8 px-3 text-sm gap-2 rounded",lg:"h-9 px-4 text-sm gap-2 rounded",icon:"h-8 w-8 rounded"},je=v.forwardRef(({className:t,variant:n="secondary",size:s="md",children:l,...o},u)=>i.jsx("button",{ref:u,className:le("inline-flex items-center justify-center font-sans transition-colors duration-100","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent","disabled:opacity-40 disabled:pointer-events-none","cursor-pointer select-none",LP[n],DP[s],t),...o,children:l}));je.displayName="Button";const WP={default:"bg-surface-4 text-text-2",accent:"bg-accent/12 text-accent",success:"bg-success/12 text-success",warning:"bg-warning/12 text-warning",danger:"bg-danger/12 text-danger",info:"bg-info/12 text-info",purple:"bg-purple/12 text-purple",orange:"bg-orange/12 text-orange"};function We({children:t,variant:n="default",className:s,dot:l,...o}){return i.jsxs("span",{className:le("inline-flex items-center gap-1 px-1.5 py-0.5","text-2xs font-semibold uppercase tracking-wider rounded","font-sans select-none whitespace-nowrap",WP[n],s),...o,children:[l&&i.jsx("span",{className:le("w-1.5 h-1.5 rounded-full",l==="pulse"&&"animate-pulse"),style:{background:"currentColor"}}),t]})}const BP={agentNode:Wb,rootNode:Bb},Kg=220,Jg=82,_o=260,gO=130,Mn=4,Fa="__groove_root__";function bO(){try{return JSON.parse(localStorage.getItem("groove:nodePositions")||"{}")}catch{return{}}}function HP(t){try{localStorage.setItem("groove:nodePositions",JSON.stringify(t))}catch{}}function IP(){const t=D(N=>N.teams),n=D(N=>N.activeTeamId),s=D(N=>N.agents),l=D(N=>N.switchTeam),o=D(N=>N.createTeam),u=D(N=>N.deleteTeam),d=D(N=>N.renameTeam),[O,m]=v.useState(!1),[p,x]=v.useState(""),[g,b]=v.useState(null),[S,Q]=v.useState(""),k=v.useRef(!1);function T(){const N=p.trim();!N||k.current||(k.current=!0,x(""),m(!1),o(N).finally(()=>{k.current=!1}))}function j(N){b(N.id),Q(N.name)}function P(){const N=S.trim();if(!N||!g){b(null);return}d(g,N),b(null)}return i.jsxs("div",{className:"flex items-end px-0 pt-0 pb-0 bg-surface-1 border-b border-border gap-0 flex-shrink-0",children:[t.map(N=>{const A=s.filter($=>$.teamId===N.id).length,U=N.id===n,C=g===N.id,X=s.filter($=>$.teamId===N.id&&($.status==="running"||$.status==="starting")).length;return i.jsxs("div",{onClick:()=>!C&&l(N.id),onDoubleClick:()=>j(N),className:le("group relative flex items-center gap-2 px-4 h-9 text-xs font-sans cursor-pointer select-none transition-colors",U?"bg-surface-0 text-text-0 font-semibold border-x border-x-border":"text-text-3 hover:text-text-1 hover:bg-surface-3/50"),children:[U&&i.jsx("div",{className:"absolute top-0 left-0 right-0 h-px bg-accent",style:{height:"0.5px"}}),i.jsx(Zc,{size:13,className:U?"text-accent":"text-text-4"}),C?i.jsx("input",{value:S,onChange:$=>Q($.target.value),onKeyDown:$=>{$.key==="Enter"&&P(),$.key==="Escape"&&b(null)},onBlur:P,className:"h-5 w-24 px-1.5 text-xs bg-surface-0 border border-accent rounded text-text-0 font-sans focus:outline-none",autoFocus:!0,onClick:$=>$.stopPropagation()}):i.jsx("span",{className:"truncate max-w-[120px]",children:N.name}),A>0&&!C&&i.jsx("span",{className:le("flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full text-2xs font-mono font-semibold",X>0?"bg-accent/15 text-accent":"bg-surface-4 text-text-3"),children:A}),!C&&i.jsxs("div",{className:"flex items-center gap-0.5 ml-0.5 opacity-0 group-hover:opacity-100 transition-opacity",children:[i.jsx("button",{onClick:$=>{$.stopPropagation(),j(N)},className:"p-0.5 rounded hover:bg-surface-5 text-text-4 hover:text-text-1 cursor-pointer",title:"Rename team",children:i.jsx(Cc,{size:10})}),!N.isDefault&&i.jsx("button",{onClick:$=>{$.stopPropagation(),u(N.id)},className:"p-0.5 rounded hover:bg-surface-5 text-text-4 hover:text-danger cursor-pointer",title:"Delete team",children:i.jsx(Rt,{size:10})})]}),U&&i.jsx("div",{className:"absolute bottom-[-1px] left-0 right-0 h-px bg-surface-0"})]},N.id)}),O?i.jsxs("div",{className:"flex items-center gap-1.5 px-3 h-9 bg-surface-3/50",children:[i.jsx("input",{value:p,onChange:N=>x(N.target.value),onKeyDown:N=>{N.key==="Enter"&&T(),N.key==="Escape"&&(m(!1),x(""))},placeholder:"Team name...",className:"h-5 w-28 px-1.5 text-xs bg-surface-0 border border-border-subtle rounded text-text-0 font-sans placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent",autoFocus:!0}),i.jsx("button",{onClick:T,disabled:!p.trim(),className:"p-1 rounded text-accent hover:bg-accent/10 cursor-pointer disabled:opacity-30 disabled:cursor-not-allowed",children:i.jsx(oa,{size:12})}),i.jsx("button",{onClick:()=>{m(!1),x("")},className:"p-1 rounded text-text-4 hover:text-text-1 cursor-pointer",children:i.jsx(Rt,{size:12})})]}):i.jsx("button",{onClick:()=>m(!0),className:"flex items-center justify-center w-9 h-9 text-text-4 hover:text-text-1 hover:bg-surface-3/50 cursor-pointer transition-colors",title:"New team",children:i.jsx(Fn,{size:14})})]})}function FP(){const t=D(C=>C.agents),n=D(C=>C.activeTeamId),s=D(C=>C.tokenTimeline),l=D(C=>C.selectAgent),o=D(C=>C.closeDetail),u=v.useMemo(()=>t.filter(C=>C.teamId===n),[t,n]),{fitView:d}=xj(),[O,m]=v.useState(0),p=v.useMemo(()=>{const C=bO(),X=u.filter(re=>re.status==="running").length,$=[{id:Fa,type:"rootNode",position:C[Fa]||{x:0,y:0},data:{agentCount:u.length,runningCount:X},draggable:!0,selectable:!1}],W=new Set,E=(re,xe)=>`${Math.round(re/100)},${Math.round(xe/100)}`,ne=[];u.forEach((re,xe)=>{const ie=re.name||re.id;if(C[ie]){const J=C[ie];W.add(E(J.x,J.y)),$.push({id:re.id,type:"agentNode",position:J,data:{agent:re,timeline:s[re.id]||[]},draggable:!0,selectable:!0})}else ne.push({agent:re,index:xe})});for(const{agent:re,index:xe}of ne){const ie=Math.floor(xe/Mn),J=xe%Mn;let I={x:-((Math.min(u.length-ie*Mn,Mn)-1)*_o)/2+J*_o,y:140+ie*gO};for(;W.has(E(I.x,I.y));)I={x:I.x,y:I.y+gO};W.add(E(I.x,I.y)),$.push({id:re.id,type:"agentNode",position:I,data:{agent:re,timeline:s[re.id]||[]},draggable:!0,selectable:!0})}return $},[u,s]),x=v.useMemo(()=>{const C=bO(),X=C[Fa]||{x:0,y:0};return u.map(($,W)=>{const E=$.name||$.id,ne=Math.floor(W/Mn),re=W%Mn,ie=-((Math.min(u.length-ne*Mn,Mn)-1)*_o)/2,J=C[E]||{x:ie+re*_o,y:140+ne*gO},z=J.x+Kg/2-X.x,B=J.y+Jg/2-X.y;let I,fe;return Math.abs(B)>Math.abs(z)?(I=B>0?"bottom":"top",fe=B>0?"top":"bottom"):(I=z>0?"right":"left",fe=z>0?"left":"right"),{id:`e-${Fa}-${$.id}`,source:Fa,target:$.id,sourceHandle:I,targetHandle:fe,type:"default",animated:$.status==="running"}})},[u]),[g,b,S]=gj(p),[Q,k,T]=bj(x),j=v.useRef(new Set);v.useEffect(()=>{b(C=>{const X=new Map(C.map($=>[$.id,$]));return new Set(p.map($=>$.id)),p.map($=>{const W=X.get($.id);return W?{...W,data:$.data}:$})})},[p,b]),v.useEffect(()=>{k(x)},[x,k]),v.useEffect(()=>{const C=new Set(u.map($=>$.id)),X=u.length>0&&[...C].some($=>!j.current.has($));j.current=C,O===0&&u.length>0?setTimeout(()=>d({padding:.3,maxZoom:1.2,duration:0}),50):X&&setTimeout(()=>d({padding:.3,maxZoom:1.2,duration:300}),100),m(u.length)},[u.length,u,O,d]);const P=v.useCallback((C,X)=>{X.id!==Fa&&l(X.id)},[l]),N=v.useCallback(()=>{o()},[o]),A=v.useCallback((C,X)=>{const $=g.find(E=>E.id===Fa);if(!$)return;const W=$.position;k(E=>E.map(ne=>{const re=ne.source===X.id,xe=ne.target===X.id;if(!re&&!xe)return ne;const ie=X.position,J=ie.x+Kg/2-W.x,z=ie.y+Jg/2-W.y;let B,I;return Math.abs(z)>Math.abs(J)?(B=z>0?"bottom":"top",I=z>0?"top":"bottom"):(B=J>0?"right":"left",I=J>0?"left":"right"),{...ne,sourceHandle:B,targetHandle:I}}))},[g,k]),U=v.useCallback((C,X)=>{const $=u.find(ne=>ne.id===X.id),W=X.id===Fa?Fa:($==null?void 0:$.name)||X.id,E=bO();E[W]=X.position,HP(E)},[u]);return i.jsx(vj,{nodes:g,edges:Q,nodeTypes:BP,onNodesChange:S,onEdgesChange:T,onNodeClick:P,onPaneClick:N,onNodeDrag:A,onNodeDragStop:U,defaultViewport:{x:0,y:0,zoom:1.2},proOptions:{hideAttribution:!0},minZoom:.2,maxZoom:1.5,className:"bg-surface-2",children:i.jsx(yj,{color:"rgba(97,175,239,0.03)",gap:24,size:1})})}function KP({onPlanner:t,onSpawn:n}){return i.jsx("div",{className:"w-full h-full flex items-center justify-center",children:i.jsxs("div",{className:"max-w-2xl w-full text-center space-y-10 px-8",children:[i.jsxs("div",{className:"relative mx-auto w-20 h-20",children:[i.jsx("div",{className:"absolute inset-0 rounded-full bg-accent/8 animate-pulse"}),i.jsx("div",{className:"absolute inset-1 rounded-full bg-surface-3 border border-border-subtle flex items-center justify-center shadow-lg shadow-accent/5",children:i.jsx("img",{src:"/favicon.png",alt:"Groove",className:"h-10 w-10 rounded-full"})})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("h1",{className:"text-3xl font-bold text-text-0 font-sans tracking-tight",children:"Welcome to Groove"}),i.jsx("p",{className:"text-base text-text-2 font-sans max-w-md mx-auto leading-relaxed",children:"Your mission control for AI agents. Spawn, orchestrate, and ship faster than ever."})]}),i.jsxs("div",{className:"space-y-3 max-w-xl mx-auto",children:[i.jsxs("button",{onClick:t,className:"w-full flex items-center gap-4 p-5 rounded-lg border border-accent/25 bg-gradient-to-r from-accent/8 to-accent/3 hover:from-accent/14 hover:to-accent/6 hover:border-accent/40 transition-all cursor-pointer group text-left",children:[i.jsx("div",{className:"w-12 h-12 rounded-lg bg-accent/20 flex items-center justify-center group-hover:scale-110 transition-transform flex-shrink-0",children:i.jsx(Na,{size:24,className:"text-accent"})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"text-base font-semibold text-text-0 font-sans",children:"Start with a Planner"}),i.jsx("div",{className:"text-sm text-text-2 font-sans mt-0.5",children:"Describe what you want to build and let AI plan the perfect team"})]}),i.jsx("div",{className:"text-accent text-xs font-semibold font-sans flex-shrink-0 opacity-60 group-hover:opacity-100 transition-opacity",children:"Recommended"})]}),i.jsxs("button",{onClick:n,className:"w-full flex items-center gap-3 p-4 rounded-lg border border-border bg-surface-1 hover:bg-surface-2 hover:border-border transition-all cursor-pointer group text-left",children:[i.jsx("div",{className:"w-10 h-10 rounded-lg bg-surface-4 flex items-center justify-center group-hover:scale-110 transition-transform flex-shrink-0",children:i.jsx(Fn,{size:20,className:"text-text-1"})}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"text-sm font-semibold text-text-0 font-sans",children:"Spawn Agent"}),i.jsx("div",{className:"text-xs text-text-3 font-sans mt-0.5",children:"Choose a role and configure"})]})]})]}),i.jsxs("p",{className:"text-xs text-text-4 font-sans",children:[i.jsx("kbd",{className:"font-mono bg-surface-4 px-1.5 py-0.5 rounded text-text-3",children:"Cmd+K"}),i.jsx("span",{className:"mx-1.5",children:"command palette"}),i.jsx("span",{className:"text-text-4 mx-1",children:"·"}),i.jsx("kbd",{className:"font-mono bg-surface-4 px-1.5 py-0.5 rounded text-text-3",children:"Cmd+N"}),i.jsx("span",{className:"mx-1.5",children:"spawn"}),i.jsx("span",{className:"text-text-4 mx-1",children:"·"}),i.jsx("kbd",{className:"font-mono bg-surface-4 px-1.5 py-0.5 rounded text-text-3",children:"Cmd+J"}),i.jsx("span",{className:"mx-1.5",children:"terminal"})]})]})})}const JP={backend:Mb,frontend:Df,fullstack:dn,testing:If,security:Fr};function eN(){var p;const t=D(x=>x.recommendedTeam),n=D(x=>x.launchRecommendedTeam);D(x=>x.checkRecommendedTeam);const[s,l]=v.useState(!1);if(!((p=t==null?void 0:t.agents)!=null&&p.length))return null;const o=t.agents,u=o.filter(x=>!x.phase||x.phase===1),d=o.filter(x=>x.phase===2);async function O(){l(!0);try{await n()}catch{}l(!1)}function m(){D.setState({recommendedTeam:null})}return i.jsx("div",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 z-50 w-full max-w-lg",children:i.jsxs("div",{className:"mx-4 rounded-lg border border-accent/30 bg-surface-2/95 backdrop-blur-md shadow-xl shadow-accent/5 overflow-hidden",children:[i.jsxs("div",{className:"px-4 py-3 border-b border-border-subtle flex items-center gap-2",children:[i.jsx(qb,{size:16,className:"text-accent"}),i.jsx("span",{className:"text-sm font-semibold text-text-0 font-sans flex-1",children:"Planner Recommends a Team"}),i.jsx("button",{onClick:m,className:"text-text-4 hover:text-text-1 cursor-pointer",children:i.jsx(Rt,{size:14})})]}),i.jsxs("div",{className:"px-4 py-3 space-y-2",children:[i.jsx("div",{className:"flex flex-wrap gap-2",children:u.map((x,g)=>{var S;const b=JP[x.role]||dn;return i.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-md bg-surface-4 border border-border-subtle",children:[i.jsx(b,{size:12,className:"text-text-2"}),i.jsx("span",{className:"text-xs font-semibold text-text-0 font-sans capitalize",children:x.name||x.role}),((S=x.scope)==null?void 0:S.length)>0&&i.jsxs("span",{className:"text-2xs text-text-4 font-mono",children:[x.scope[0],x.scope.length>1?` +${x.scope.length-1}`:""]})]},g)})}),t.projectDir&&i.jsxs("div",{className:"flex items-center gap-1.5 text-2xs text-text-2 font-mono",children:[i.jsx("span",{className:"text-text-4",children:"Project:"}),i.jsxs("span",{className:"text-accent",children:[t.projectDir,"/"]})]}),d.length>0&&i.jsxs("div",{className:"flex items-center gap-1.5 text-2xs text-text-3 font-sans",children:[i.jsx(Fr,{size:10}),i.jsxs("span",{children:[d.length," QC agent",d.length>1?"s":""," will auto-spawn after builders complete"]})]})]}),i.jsx("div",{className:"px-4 py-3 border-t border-border-subtle",children:i.jsxs(je,{variant:"primary",size:"md",onClick:O,disabled:s,className:"w-full gap-2",children:[i.jsx(Na,{size:14}),s?"Launching...":`Launch ${u.length} Agent${u.length>1?"s":""}`]})})]})})}function e1(){const t=D(b=>b.agents),n=D(b=>b.activeTeamId),s=D(b=>b.openDetail),l=D(b=>b.spawnAgent),o=D(b=>b.selectAgent);D(b=>b.recommendedTeam);const u=D(b=>b.checkRecommendedTeam);v.useEffect(()=>{if(!t.some(Q=>Q.role==="planner"&&(Q.status==="running"||Q.status==="starting")))return;const S=setInterval(()=>u(),5e3);return()=>clearInterval(S)},[t,u]);async function d(){try{const b=await l({role:"planner"});b!=null&&b.id&&o(b.id)}catch{}}const O=t.filter(b=>b.teamId===n),m=D(b=>b.hydrated),[p,x]=v.useState(!0);v.useEffect(()=>{const b=setTimeout(()=>x(!1),1200);return()=>clearTimeout(b)},[]);const g=p||!m;return i.jsxs("div",{className:"flex flex-col h-full relative",children:[i.jsx(IP,{}),i.jsx("div",{className:"flex-1 min-h-0",children:g?i.jsxs("div",{className:le("flex flex-col items-center justify-center h-full transition-opacity duration-500",!p&&m?"opacity-0":"opacity-100"),children:[i.jsxs("div",{className:"relative w-12 h-12 mb-5",children:[i.jsx("span",{className:"absolute inset-0 rounded-full border-2 border-accent/20 animate-ping",style:{animationDuration:"2s"}}),i.jsx("span",{className:"absolute inset-0 rounded-full border-2 border-transparent border-t-accent animate-spin",style:{animationDuration:"1s"}}),i.jsx("span",{className:"absolute inset-[6px] rounded-full bg-accent/8 flex items-center justify-center",children:i.jsx(Na,{size:16,className:"text-accent animate-pulse"})})]}),i.jsx("p",{className:"text-sm font-medium text-text-1 font-sans animate-pulse",children:"Connecting to agents"}),i.jsx("p",{className:"text-xs text-text-3 font-sans mt-1",children:"Syncing with daemon..."})]}):O.length===0?i.jsx(KP,{onPlanner:d,onSpawn:()=>s({type:"spawn"})}):i.jsx(pj,{children:i.jsx(FP,{})})}),i.jsx(eN,{})]})}var tN=v.createContext(void 0);function Jf(t){const n=v.useContext(tN);return t||n||"ltr"}function aN(t,[n,s]){return Math.min(s,Math.max(n,t))}function nN(t,n){return v.useReducer((s,l)=>n[s][l]??s,t)}var eh="ScrollArea",[Hb]=Ns(eh),[sN,ca]=Hb(eh),Ib=v.forwardRef((t,n)=>{const{__scopeScrollArea:s,type:l="hover",dir:o,scrollHideDelay:u=600,...d}=t,[O,m]=v.useState(null),[p,x]=v.useState(null),[g,b]=v.useState(null),[S,Q]=v.useState(null),[k,T]=v.useState(null),[j,P]=v.useState(0),[N,A]=v.useState(0),[U,C]=v.useState(!1),[X,$]=v.useState(!1),W=it(n,ne=>m(ne)),E=Jf(o);return i.jsx(sN,{scope:s,type:l,dir:E,scrollHideDelay:u,scrollArea:O,viewport:p,onViewportChange:x,content:g,onContentChange:b,scrollbarX:S,onScrollbarXChange:Q,scrollbarXEnabled:U,onScrollbarXEnabledChange:C,scrollbarY:k,onScrollbarYChange:T,scrollbarYEnabled:X,onScrollbarYEnabledChange:$,onCornerWidthChange:P,onCornerHeightChange:A,children:i.jsx(Be.div,{dir:E,...d,ref:W,style:{position:"relative","--radix-scroll-area-corner-width":j+"px","--radix-scroll-area-corner-height":N+"px",...t.style}})})});Ib.displayName=eh;var Fb="ScrollAreaViewport",Kb=v.forwardRef((t,n)=>{const{__scopeScrollArea:s,children:l,nonce:o,...u}=t,d=ca(Fb,s),O=v.useRef(null),m=it(n,O,d.onViewportChange);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),i.jsx(Be.div,{"data-radix-scroll-area-viewport":"",...u,ref:m,style:{overflowX:d.scrollbarXEnabled?"scroll":"hidden",overflowY:d.scrollbarYEnabled?"scroll":"hidden",...t.style},children:i.jsx("div",{ref:d.onContentChange,style:{minWidth:"100%",display:"table"},children:l})})]})});Kb.displayName=Fb;var za="ScrollAreaScrollbar",Jb=v.forwardRef((t,n)=>{const{forceMount:s,...l}=t,o=ca(za,t.__scopeScrollArea),{onScrollbarXEnabledChange:u,onScrollbarYEnabledChange:d}=o,O=t.orientation==="horizontal";return v.useEffect(()=>(O?u(!0):d(!0),()=>{O?u(!1):d(!1)}),[O,u,d]),o.type==="hover"?i.jsx(lN,{...l,ref:n,forceMount:s}):o.type==="scroll"?i.jsx(rN,{...l,ref:n,forceMount:s}):o.type==="auto"?i.jsx(ev,{...l,ref:n,forceMount:s}):o.type==="always"?i.jsx(th,{...l,ref:n}):null});Jb.displayName=za;var lN=v.forwardRef((t,n)=>{const{forceMount:s,...l}=t,o=ca(za,t.__scopeScrollArea),[u,d]=v.useState(!1);return v.useEffect(()=>{const O=o.scrollArea;let m=0;if(O){const p=()=>{window.clearTimeout(m),d(!0)},x=()=>{m=window.setTimeout(()=>d(!1),o.scrollHideDelay)};return O.addEventListener("pointerenter",p),O.addEventListener("pointerleave",x),()=>{window.clearTimeout(m),O.removeEventListener("pointerenter",p),O.removeEventListener("pointerleave",x)}}},[o.scrollArea,o.scrollHideDelay]),i.jsx(ba,{present:s||u,children:i.jsx(ev,{"data-state":u?"visible":"hidden",...l,ref:n})})}),rN=v.forwardRef((t,n)=>{const{forceMount:s,...l}=t,o=ca(za,t.__scopeScrollArea),u=t.orientation==="horizontal",d=qc(()=>m("SCROLL_END"),100),[O,m]=nN("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return v.useEffect(()=>{if(O==="idle"){const p=window.setTimeout(()=>m("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(p)}},[O,o.scrollHideDelay,m]),v.useEffect(()=>{const p=o.viewport,x=u?"scrollLeft":"scrollTop";if(p){let g=p[x];const b=()=>{const S=p[x];g!==S&&(m("SCROLL"),d()),g=S};return p.addEventListener("scroll",b),()=>p.removeEventListener("scroll",b)}},[o.viewport,u,m,d]),i.jsx(ba,{present:s||O!=="hidden",children:i.jsx(th,{"data-state":O==="hidden"?"hidden":"visible",...l,ref:n,onPointerEnter:Ee(t.onPointerEnter,()=>m("POINTER_ENTER")),onPointerLeave:Ee(t.onPointerLeave,()=>m("POINTER_LEAVE"))})})}),ev=v.forwardRef((t,n)=>{const s=ca(za,t.__scopeScrollArea),{forceMount:l,...o}=t,[u,d]=v.useState(!1),O=t.orientation==="horizontal",m=qc(()=>{if(s.viewport){const p=s.viewport.offsetWidth<s.viewport.scrollWidth,x=s.viewport.offsetHeight<s.viewport.scrollHeight;d(O?p:x)}},10);return zl(s.viewport,m),zl(s.content,m),i.jsx(ba,{present:l||u,children:i.jsx(th,{"data-state":u?"visible":"hidden",...o,ref:n})})}),th=v.forwardRef((t,n)=>{const{orientation:s="vertical",...l}=t,o=ca(za,t.__scopeScrollArea),u=v.useRef(null),d=v.useRef(0),[O,m]=v.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),p=lv(O.viewport,O.content),x={...l,sizes:O,onSizesChange:m,hasThumb:p>0&&p<1,onThumbChange:b=>u.current=b,onThumbPointerUp:()=>d.current=0,onThumbPointerDown:b=>d.current=b};function g(b,S){return ON(b,d.current,O,S)}return s==="horizontal"?i.jsx(iN,{...x,ref:n,onThumbPositionChange:()=>{if(o.viewport&&u.current){const b=o.viewport.scrollLeft,S=t1(b,O,o.dir);u.current.style.transform=`translate3d(${S}px, 0, 0)`}},onWheelScroll:b=>{o.viewport&&(o.viewport.scrollLeft=b)},onDragScroll:b=>{o.viewport&&(o.viewport.scrollLeft=g(b,o.dir))}}):s==="vertical"?i.jsx(oN,{...x,ref:n,onThumbPositionChange:()=>{if(o.viewport&&u.current){const b=o.viewport.scrollTop,S=t1(b,O);u.current.style.transform=`translate3d(0, ${S}px, 0)`}},onWheelScroll:b=>{o.viewport&&(o.viewport.scrollTop=b)},onDragScroll:b=>{o.viewport&&(o.viewport.scrollTop=g(b))}}):null}),iN=v.forwardRef((t,n)=>{const{sizes:s,onSizesChange:l,...o}=t,u=ca(za,t.__scopeScrollArea),[d,O]=v.useState(),m=v.useRef(null),p=it(n,m,u.onScrollbarXChange);return v.useEffect(()=>{m.current&&O(getComputedStyle(m.current))},[m]),i.jsx(av,{"data-orientation":"horizontal",...o,ref:p,sizes:s,style:{bottom:0,left:u.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:u.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Ec(s)+"px",...t.style},onThumbPointerDown:x=>t.onThumbPointerDown(x.x),onDragScroll:x=>t.onDragScroll(x.x),onWheelScroll:(x,g)=>{if(u.viewport){const b=u.viewport.scrollLeft+x.deltaX;t.onWheelScroll(b),iv(b,g)&&x.preventDefault()}},onResize:()=>{m.current&&u.viewport&&d&&l({content:u.viewport.scrollWidth,viewport:u.viewport.offsetWidth,scrollbar:{size:m.current.clientWidth,paddingStart:Oc(d.paddingLeft),paddingEnd:Oc(d.paddingRight)}})}})}),oN=v.forwardRef((t,n)=>{const{sizes:s,onSizesChange:l,...o}=t,u=ca(za,t.__scopeScrollArea),[d,O]=v.useState(),m=v.useRef(null),p=it(n,m,u.onScrollbarYChange);return v.useEffect(()=>{m.current&&O(getComputedStyle(m.current))},[m]),i.jsx(av,{"data-orientation":"vertical",...o,ref:p,sizes:s,style:{top:0,right:u.dir==="ltr"?0:void 0,left:u.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Ec(s)+"px",...t.style},onThumbPointerDown:x=>t.onThumbPointerDown(x.y),onDragScroll:x=>t.onDragScroll(x.y),onWheelScroll:(x,g)=>{if(u.viewport){const b=u.viewport.scrollTop+x.deltaY;t.onWheelScroll(b),iv(b,g)&&x.preventDefault()}},onResize:()=>{m.current&&u.viewport&&d&&l({content:u.viewport.scrollHeight,viewport:u.viewport.offsetHeight,scrollbar:{size:m.current.clientHeight,paddingStart:Oc(d.paddingTop),paddingEnd:Oc(d.paddingBottom)}})}})}),[cN,tv]=Hb(za),av=v.forwardRef((t,n)=>{const{__scopeScrollArea:s,sizes:l,hasThumb:o,onThumbChange:u,onThumbPointerUp:d,onThumbPointerDown:O,onThumbPositionChange:m,onDragScroll:p,onWheelScroll:x,onResize:g,...b}=t,S=ca(za,s),[Q,k]=v.useState(null),T=it(n,W=>k(W)),j=v.useRef(null),P=v.useRef(""),N=S.viewport,A=l.content-l.viewport,U=zt(x),C=zt(m),X=qc(g,10);function $(W){if(j.current){const E=W.clientX-j.current.left,ne=W.clientY-j.current.top;p({x:E,y:ne})}}return v.useEffect(()=>{const W=E=>{const ne=E.target;(Q==null?void 0:Q.contains(ne))&&U(E,A)};return document.addEventListener("wheel",W,{passive:!1}),()=>document.removeEventListener("wheel",W,{passive:!1})},[N,Q,A,U]),v.useEffect(C,[l,C]),zl(Q,X),zl(S.content,X),i.jsx(cN,{scope:s,scrollbar:Q,hasThumb:o,onThumbChange:zt(u),onThumbPointerUp:zt(d),onThumbPositionChange:C,onThumbPointerDown:zt(O),children:i.jsx(Be.div,{...b,ref:T,style:{position:"absolute",...b.style},onPointerDown:Ee(t.onPointerDown,W=>{W.button===0&&(W.target.setPointerCapture(W.pointerId),j.current=Q.getBoundingClientRect(),P.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",S.viewport&&(S.viewport.style.scrollBehavior="auto"),$(W))}),onPointerMove:Ee(t.onPointerMove,$),onPointerUp:Ee(t.onPointerUp,W=>{const E=W.target;E.hasPointerCapture(W.pointerId)&&E.releasePointerCapture(W.pointerId),document.body.style.webkitUserSelect=P.current,S.viewport&&(S.viewport.style.scrollBehavior=""),j.current=null})})})}),dc="ScrollAreaThumb",nv=v.forwardRef((t,n)=>{const{forceMount:s,...l}=t,o=tv(dc,t.__scopeScrollArea);return i.jsx(ba,{present:s||o.hasThumb,children:i.jsx(uN,{ref:n,...l})})}),uN=v.forwardRef((t,n)=>{const{__scopeScrollArea:s,style:l,...o}=t,u=ca(dc,s),d=tv(dc,s),{onThumbPositionChange:O}=d,m=it(n,g=>d.onThumbChange(g)),p=v.useRef(void 0),x=qc(()=>{p.current&&(p.current(),p.current=void 0)},100);return v.useEffect(()=>{const g=u.viewport;if(g){const b=()=>{if(x(),!p.current){const S=fN(g,O);p.current=S,O()}};return O(),g.addEventListener("scroll",b),()=>g.removeEventListener("scroll",b)}},[u.viewport,x,O]),i.jsx(Be.div,{"data-state":d.hasThumb?"visible":"hidden",...o,ref:m,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...l},onPointerDownCapture:Ee(t.onPointerDownCapture,g=>{const S=g.target.getBoundingClientRect(),Q=g.clientX-S.left,k=g.clientY-S.top;d.onThumbPointerDown({x:Q,y:k})}),onPointerUp:Ee(t.onPointerUp,d.onThumbPointerUp)})});nv.displayName=dc;var ah="ScrollAreaCorner",sv=v.forwardRef((t,n)=>{const s=ca(ah,t.__scopeScrollArea),l=!!(s.scrollbarX&&s.scrollbarY);return s.type!=="scroll"&&l?i.jsx(dN,{...t,ref:n}):null});sv.displayName=ah;var dN=v.forwardRef((t,n)=>{const{__scopeScrollArea:s,...l}=t,o=ca(ah,s),[u,d]=v.useState(0),[O,m]=v.useState(0),p=!!(u&&O);return zl(o.scrollbarX,()=>{var g;const x=((g=o.scrollbarX)==null?void 0:g.offsetHeight)||0;o.onCornerHeightChange(x),m(x)}),zl(o.scrollbarY,()=>{var g;const x=((g=o.scrollbarY)==null?void 0:g.offsetWidth)||0;o.onCornerWidthChange(x),d(x)}),p?i.jsx(Be.div,{...l,ref:n,style:{width:u,height:O,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...t.style}}):null});function Oc(t){return t?parseInt(t,10):0}function lv(t,n){const s=t/n;return isNaN(s)?0:s}function Ec(t){const n=lv(t.viewport,t.content),s=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,l=(t.scrollbar.size-s)*n;return Math.max(l,18)}function ON(t,n,s,l="ltr"){const o=Ec(s),u=o/2,d=n||u,O=o-d,m=s.scrollbar.paddingStart+d,p=s.scrollbar.size-s.scrollbar.paddingEnd-O,x=s.content-s.viewport,g=l==="ltr"?[0,x]:[x*-1,0];return rv([m,p],g)(t)}function t1(t,n,s="ltr"){const l=Ec(n),o=n.scrollbar.paddingStart+n.scrollbar.paddingEnd,u=n.scrollbar.size-o,d=n.content-n.viewport,O=u-l,m=s==="ltr"?[0,d]:[d*-1,0],p=aN(t,m);return rv([0,d],[0,O])(p)}function rv(t,n){return s=>{if(t[0]===t[1]||n[0]===n[1])return n[0];const l=(n[1]-n[0])/(t[1]-t[0]);return n[0]+l*(s-t[0])}}function iv(t,n){return t>0&&t<n}var fN=(t,n=()=>{})=>{let s={left:t.scrollLeft,top:t.scrollTop},l=0;return(function o(){const u={left:t.scrollLeft,top:t.scrollTop},d=s.left!==u.left,O=s.top!==u.top;(d||O)&&n(),s=u,l=window.requestAnimationFrame(o)})(),()=>window.cancelAnimationFrame(l)};function qc(t,n){const s=zt(t),l=v.useRef(0);return v.useEffect(()=>()=>window.clearTimeout(l.current),[]),v.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(s,n)},[s,n])}function zl(t,n){const s=zt(n);ln(()=>{let l=0;if(t){const o=new ResizeObserver(()=>{cancelAnimationFrame(l),l=window.requestAnimationFrame(s)});return o.observe(t),()=>{window.cancelAnimationFrame(l),o.unobserve(t)}}},[t,s])}var hN=Ib,mN=Kb,a1=Jb,n1=nv,pN=sv;function Ht({children:t,className:n,...s}){return i.jsxs(hN,{className:le("overflow-hidden",n),...s,children:[i.jsx(mN,{className:"h-full w-full rounded-[inherit]",children:t}),i.jsx(a1,{orientation:"vertical",className:"flex touch-none select-none p-0.5 transition-colors w-2",children:i.jsx(n1,{className:"relative flex-1 rounded-full bg-surface-5 hover:bg-surface-6"})}),i.jsx(a1,{orientation:"horizontal",className:"flex touch-none select-none flex-col p-0.5 transition-colors h-2",children:i.jsx(n1,{className:"relative flex-1 rounded-full bg-surface-5 hover:bg-surface-6"})}),i.jsx(pN,{})]})}const xN={js:"text-warning",jsx:"text-warning",ts:"text-info",tsx:"text-info",css:"text-info",html:"text-orange",json:"text-warning",md:"text-text-2",py:"text-success",rs:"text-orange",go:"text-accent",sh:"text-success",yaml:"text-danger",yml:"text-danger",sql:"text-purple",xml:"text-orange",svg:"text-warning"};function gN(t){var s;const n=(s=t.split(".").pop())==null?void 0:s.toLowerCase();return xN[n]||"text-text-3"}function bN({x:t,y:n,items:s,onClose:l}){const o=v.useRef(null);return v.useEffect(()=>{function u(d){o.current&&!o.current.contains(d.target)&&l()}return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[l]),i.jsx("div",{ref:o,className:"fixed z-50 min-w-[160px] py-1 bg-surface-2 border border-border rounded-lg shadow-xl",style:{left:t,top:n},children:s.map((u,d)=>u.separator?i.jsx("div",{className:"h-px bg-border-subtle my-1"},d):i.jsxs("button",{onClick:()=>{u.action(),l()},className:le("w-full flex items-center gap-2.5 px-3 py-1.5 text-xs font-sans text-left cursor-pointer transition-colors",u.danger?"text-danger hover:bg-danger/10":"text-text-1 hover:bg-surface-5"),children:[u.icon&&i.jsx(u.icon,{size:12,className:u.danger?"text-danger":"text-text-3"}),u.label]},d))})}function fc({defaultValue:t="",placeholder:n,onSubmit:s,onCancel:l,depth:o=0}){const[u,d]=v.useState(t),O=v.useRef(null);v.useEffect(()=>{var p,x;(p=O.current)==null||p.focus(),t&&((x=O.current)==null||x.select())},[t]);function m(p){if(p.key==="Enter"){const x=u.trim();x&&s(x)}p.key==="Escape"&&l()}return i.jsx("div",{className:"flex items-center py-0.5",style:{paddingLeft:o*16+8},children:i.jsx("input",{ref:O,value:u,onChange:p=>d(p.target.value),onKeyDown:m,onBlur:l,placeholder:n,className:"w-full h-5 px-1.5 text-xs bg-surface-0 border border-accent rounded text-text-0 font-sans focus:outline-none"})})}function ov({entry:t,depth:n=0,activePath:s,onFileClick:l,onDirToggle:o,expanded:u,onContextMenu:d}){const O=t.type==="dir",m=s===t.path,p=u.has(t.path),x=n*16+8;function g(b){b.preventDefault(),b.stopPropagation(),d(b,t)}return i.jsxs("button",{onClick:()=>O?o(t.path):l(t.path),onContextMenu:g,className:le("w-full flex items-center gap-1.5 py-1 text-xs font-sans cursor-pointer","hover:bg-surface-5 transition-colors text-left select-none",m&&"bg-accent/10 text-text-0",!m&&"text-text-1"),style:{paddingLeft:x},children:[O?i.jsxs(i.Fragment,{children:[p?i.jsx(In,{size:12,className:"text-text-4 flex-shrink-0"}):i.jsx(ii,{size:12,className:"text-text-4 flex-shrink-0"}),p?i.jsx(Hr,{size:14,className:"text-accent flex-shrink-0"}):i.jsx(iT,{size:14,className:"text-text-3 flex-shrink-0"})]}):i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"w-3"}),i.jsx(K5,{size:14,className:le("flex-shrink-0",gN(t.name))})]}),i.jsx("span",{className:"truncate",children:t.name})]})}function cv({dirPath:t,depth:n,activePath:s,onFileClick:l,expanded:o,onDirToggle:u,treeCache:d,fetchTreeDir:O,onContextMenu:m,inlineInput:p}){const x=d[t]||[];return v.useEffect(()=>{o.has(t)&&!d[t]&&O(t)},[o,t,d,O]),o.has(t)?i.jsxs(i.Fragment,{children:[(p==null?void 0:p.parentPath)===t&&i.jsx(fc,{placeholder:p.type==="file"?"filename.ext":"folder-name",onSubmit:p.onSubmit,onCancel:p.onCancel,depth:n}),x.map(g=>i.jsxs("div",{children:[(p==null?void 0:p.renamePath)===g.path?i.jsx(fc,{defaultValue:g.name,onSubmit:p.onSubmit,onCancel:p.onCancel,depth:n}):i.jsx(ov,{entry:g,depth:n,activePath:s,onFileClick:l,onDirToggle:u,expanded:o,onContextMenu:m}),g.type==="dir"&&i.jsx(cv,{dirPath:g.path,depth:n+1,activePath:s,onFileClick:l,expanded:o,onDirToggle:u,treeCache:d,fetchTreeDir:O,onContextMenu:m,inlineInput:p})]},g.path))]}):null}function vN({rootDir:t}){const n=D($=>$.editorTreeCache),s=D($=>$.editorActiveFile),l=D($=>$.openFile),o=D($=>$.fetchTreeDir),u=D($=>$.addToast),[d,O]=v.useState(new Set([""])),[m,p]=v.useState(""),[x,g]=v.useState(null),[b,S]=v.useState(null);v.useEffect(()=>{o("")},[o,t]);function Q($){O(W=>{const E=new Set(W);return E.has($)?E.delete($):E.add($),E})}function k($,W){g({x:$.clientX,y:$.clientY,entry:W})}function T($){$.preventDefault(),g({x:$.clientX,y:$.clientY,entry:{type:"dir",path:"",name:"root"}})}function j($){const W=$.split("/");return W.pop(),W.join("/")}async function P($){O(W=>new Set([...W,$])),S({type:"file",parentPath:$,onSubmit:async W=>{const E=$?`${$}/${W}`:W;try{await ee.post("/files/create",{path:E,content:""}),o($),l(E),u("success",`Created ${W}`)}catch(ne){u("error","Create failed",ne.message)}S(null)},onCancel:()=>S(null)})}async function N($){O(W=>new Set([...W,$])),S({type:"folder",parentPath:$,onSubmit:async W=>{const E=$?`${$}/${W}`:W;try{await ee.post("/files/mkdir",{path:E}),o($),O(ne=>new Set([...ne,E])),u("success",`Created ${W}/`)}catch(ne){u("error","Create folder failed",ne.message)}S(null)},onCancel:()=>S(null)})}async function A($){S({type:"rename",renamePath:$.path,onSubmit:async W=>{const E=j($.path),ne=E?`${E}/${W}`:W;try{await ee.post("/files/rename",{oldPath:$.path,newPath:ne}),o(E),u("success",`Renamed to ${W}`)}catch(re){u("error","Rename failed",re.message)}S(null)},onCancel:()=>S(null)})}async function U($){const W=$.type==="dir"?`folder "${$.name}" and all contents`:`"${$.name}"`;if(window.confirm(`Delete ${W}?`))try{await ee.delete(`/files/delete?path=${encodeURIComponent($.path)}`),o(j($.path)),u("success",`Deleted ${$.name}`)}catch(E){u("error","Delete failed",E.message)}}function C($){const W=$.type==="dir",E=[];return W&&(E.push({icon:mO,label:"New File",action:()=>P($.path)}),E.push({icon:pO,label:"New Folder",action:()=>N($.path)})),$.name!=="root"?(E.length>0&&E.push({separator:!0}),E.push({icon:Cc,label:"Rename",action:()=>A($)}),E.push({icon:Xc,label:"Delete",danger:!0,action:()=>U($)})):(E.length=0,E.push({icon:mO,label:"New File",action:()=>P("")}),E.push({icon:pO,label:"New Folder",action:()=>N("")})),E}const X=n[""]||[];return i.jsxs("div",{className:"flex flex-col h-full bg-surface-1",onContextMenu:T,children:[i.jsxs("div",{className:"flex items-center gap-1 px-2 py-1.5 border-b border-border-subtle",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(ql,{size:12,className:"absolute left-2 top-1/2 -translate-y-1/2 text-text-4"}),i.jsx("input",{value:m,onChange:$=>p($.target.value),placeholder:"Filter...",className:"w-full h-6 pl-6 pr-2 text-xs bg-surface-0 border border-border-subtle rounded text-text-1 placeholder:text-text-4 focus:outline-none focus:border-accent font-sans"})]}),i.jsx("button",{onClick:()=>P(""),className:"p-1 text-text-4 hover:text-text-1 transition-colors cursor-pointer",title:"New file",children:i.jsx(mO,{size:12})}),i.jsx("button",{onClick:()=>N(""),className:"p-1 text-text-4 hover:text-text-1 transition-colors cursor-pointer",title:"New folder",children:i.jsx(pO,{size:12})}),i.jsx("button",{onClick:()=>o(""),className:"p-1 text-text-4 hover:text-text-1 transition-colors cursor-pointer",title:"Refresh",children:i.jsx(es,{size:12})})]}),i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"py-1",children:[(b==null?void 0:b.parentPath)===""&&i.jsx(fc,{placeholder:b.type==="file"?"filename.ext":"folder-name",onSubmit:b.onSubmit,onCancel:b.onCancel,depth:0}),X.filter($=>!m||$.name.toLowerCase().includes(m.toLowerCase())).map($=>i.jsxs("div",{children:[(b==null?void 0:b.renamePath)===$.path?i.jsx(fc,{defaultValue:$.name,onSubmit:b.onSubmit,onCancel:b.onCancel,depth:0}):i.jsx(ov,{entry:$,depth:0,activePath:s,onFileClick:l,onDirToggle:Q,expanded:d,onContextMenu:k}),$.type==="dir"&&i.jsx(cv,{dirPath:$.path,depth:1,activePath:s,onFileClick:l,expanded:d,onDirToggle:Q,treeCache:n,fetchTreeDir:o,onContextMenu:k,inlineInput:b})]},$.path))]})}),x&&i.jsx(bN,{x:x.x,y:x.y,items:C(x.entry),onClose:()=>g(null)})]})}function yN(){const t=D(u=>u.editorOpenTabs),n=D(u=>u.editorActiveFile),s=D(u=>u.editorFiles),l=D(u=>u.setActiveFile),o=D(u=>u.closeFile);return t.length===0?null:i.jsx("div",{className:"flex items-center h-8 bg-surface-3 border-b border-border overflow-x-auto flex-shrink-0",children:t.map(u=>{const d=u===n,O=s[u],m=O&&O.content!==O.originalContent,p=u.split("/").pop();return i.jsxs("div",{className:le("flex items-center gap-1.5 h-full px-3 text-xs font-sans cursor-pointer select-none","border-r border-border-subtle","transition-colors duration-75",d?"bg-surface-2 text-text-0 border-b-2 border-b-accent":"bg-surface-3 text-text-3 hover:text-text-1 hover:bg-surface-4"),onClick:()=>l(u),children:[i.jsx("span",{className:"truncate max-w-[120px]",children:p}),m&&i.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-warning flex-shrink-0"}),i.jsx("button",{onClick:x=>{x.stopPropagation(),o(u)},className:"p-0.5 rounded hover:bg-surface-5 text-text-4 hover:text-text-1 transition-colors cursor-pointer ml-0.5",children:i.jsx(Rt,{size:12})})]},u)})})}var s1={};class hc{constructor(n,s,l,o,u,d,O,m,p,x=0,g){this.p=n,this.stack=s,this.state=l,this.reducePos=o,this.pos=u,this.score=d,this.buffer=O,this.bufferBase=m,this.curContext=p,this.lookAhead=x,this.parent=g}toString(){return`[${this.stack.filter((n,s)=>s%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(n,s,l=0){let o=n.parser.context;return new hc(n,[],s,l,l,0,[],0,o?new l1(o,o.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(n,s){this.stack.push(this.state,s,this.bufferBase+this.buffer.length),this.state=n}reduce(n){var s;let l=n>>19,o=n&65535,{parser:u}=this.p,d=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),O=u.dynamicPrecedence(o);if(O&&(this.score+=O),l==0){this.pushState(u.getGoto(this.state,o,!0),this.reducePos),o<u.minRepeatTerm&&this.storeNode(o,this.reducePos,this.reducePos,d?8:4,!0),this.reduceContext(o,this.reducePos);return}let m=this.stack.length-(l-1)*3-(n&262144?6:0),p=m?this.stack[m-2]:this.p.ranges[0].from,x=this.reducePos-p;x>=2e3&&!(!((s=this.p.parser.nodeSet.types[o])===null||s===void 0)&&s.isAnonymous)&&(p==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=x):this.p.lastBigReductionSize<x&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=p,this.p.lastBigReductionSize=x));let g=m?this.stack[m-1]:0,b=this.bufferBase+this.buffer.length-g;if(o<u.minRepeatTerm||n&131072){let S=u.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(o,p,S,b+4,!0)}if(n&262144)this.state=this.stack[m];else{let S=this.stack[m-3];this.state=u.getGoto(S,o,!0)}for(;this.stack.length>m;)this.stack.pop();this.reduceContext(o,p)}storeNode(n,s,l,o=4,u=!1){if(n==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let d=this,O=this.buffer.length;if(O==0&&d.parent&&(O=d.bufferBase-d.parent.bufferBase,d=d.parent),O>0&&d.buffer[O-4]==0&&d.buffer[O-1]>-1){if(s==l)return;if(d.buffer[O-2]>=s){d.buffer[O-2]=l;return}}}if(!u||this.pos==l)this.buffer.push(n,s,l,o);else{let d=this.buffer.length;if(d>0&&(this.buffer[d-4]!=0||this.buffer[d-1]<0)){let O=!1;for(let m=d;m>0&&this.buffer[m-2]>l;m-=4)if(this.buffer[m-1]>=0){O=!0;break}if(O)for(;d>0&&this.buffer[d-2]>l;)this.buffer[d]=this.buffer[d-4],this.buffer[d+1]=this.buffer[d-3],this.buffer[d+2]=this.buffer[d-2],this.buffer[d+3]=this.buffer[d-1],d-=4,o>4&&(o-=4)}this.buffer[d]=n,this.buffer[d+1]=s,this.buffer[d+2]=l,this.buffer[d+3]=o}}shift(n,s,l,o){if(n&131072)this.pushState(n&65535,this.pos);else if((n&262144)==0){let u=n,{parser:d}=this.p;this.pos=o;let O=d.stateFlag(u,1);!O&&(o>l||s<=d.maxNode)&&(this.reducePos=o),this.pushState(u,O?l:Math.min(l,this.reducePos)),this.shiftContext(s,l),s<=d.maxNode&&this.buffer.push(s,l,o,4)}else this.pos=o,this.shiftContext(s,l),s<=this.p.parser.maxNode&&this.buffer.push(s,l,o,4)}apply(n,s,l,o){n&65536?this.reduce(n):this.shift(n,s,l,o)}useNode(n,s){let l=this.p.reused.length-1;(l<0||this.p.reused[l]!=n)&&(this.p.reused.push(n),l++);let o=this.pos;this.reducePos=this.pos=o+n.length,this.pushState(s,o),this.buffer.push(l,o,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,n,this,this.p.stream.reset(this.pos-n.length)))}split(){let n=this,s=n.buffer.length;for(;s>0&&n.buffer[s-2]>n.reducePos;)s-=4;let l=n.buffer.slice(s),o=n.bufferBase+s;for(;n&&o==n.bufferBase;)n=n.parent;return new hc(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,l,o,this.curContext,this.lookAhead,n)}recoverByDelete(n,s){let l=n<=this.p.parser.maxNode;l&&this.storeNode(n,this.pos,s,4),this.storeNode(0,this.pos,s,l?8:4),this.pos=this.reducePos=s,this.score-=190}canShift(n){for(let s=new SN(this);;){let l=this.p.parser.stateSlot(s.state,4)||this.p.parser.hasAction(s.state,n);if(l==0)return!1;if((l&65536)==0)return!0;s.reduce(l)}}recoverByInsert(n){if(this.stack.length>=300)return[];let s=this.p.parser.nextStates(this.state);if(s.length>8||this.stack.length>=120){let o=[];for(let u=0,d;u<s.length;u+=2)(d=s[u+1])!=this.state&&this.p.parser.hasAction(d,n)&&o.push(s[u],d);if(this.stack.length<120)for(let u=0;o.length<8&&u<s.length;u+=2){let d=s[u+1];o.some((O,m)=>m&1&&O==d)||o.push(s[u],d)}s=o}let l=[];for(let o=0;o<s.length&&l.length<4;o+=2){let u=s[o+1];if(u==this.state)continue;let d=this.split();d.pushState(u,this.pos),d.storeNode(0,d.pos,d.pos,4,!0),d.shiftContext(s[o],this.pos),d.reducePos=this.pos,d.score-=200,l.push(d)}return l}forceReduce(){let{parser:n}=this.p,s=n.stateSlot(this.state,5);if((s&65536)==0)return!1;if(!n.validAction(this.state,s)){let l=s>>19,o=s&65535,u=this.stack.length-l*3;if(u<0||n.getGoto(this.stack[u],o,!1)<0){let d=this.findForcedReduction();if(d==null)return!1;s=d}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(s),!0}findForcedReduction(){let{parser:n}=this.p,s=[],l=(o,u)=>{if(!s.includes(o))return s.push(o),n.allActions(o,d=>{if(!(d&393216))if(d&65536){let O=(d>>19)-u;if(O>1){let m=d&65535,p=this.stack.length-O*3;if(p>=0&&n.getGoto(this.stack[p],m,!1)>=0)return O<<19|65536|m}}else{let O=l(d,u+1);if(O!=null)return O}})};return l(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:n}=this.p;return n.data[n.stateSlot(this.state,1)]==65535&&!n.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(n){if(this.state!=n.state||this.stack.length!=n.stack.length)return!1;for(let s=0;s<this.stack.length;s+=3)if(this.stack[s]!=n.stack[s])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(n){return this.p.parser.dialect.flags[n]}shiftContext(n,s){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,n,this,this.p.stream.reset(s)))}reduceContext(n,s){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,n,this,this.p.stream.reset(s)))}emitContext(){let n=this.buffer.length-1;(n<0||this.buffer[n]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let n=this.buffer.length-1;(n<0||this.buffer[n]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(n){if(n!=this.curContext.context){let s=new l1(this.curContext.tracker,n);s.hash!=this.curContext.hash&&this.emitContext(),this.curContext=s}}setLookAhead(n){return n<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=n,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class l1{constructor(n,s){this.tracker=n,this.context=s,this.hash=n.strict?n.hash(s):0}}class SN{constructor(n){this.start=n,this.state=n.state,this.stack=n.stack,this.base=this.stack.length}reduce(n){let s=n&65535,l=n>>19;l==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(l-1)*3;let o=this.start.p.parser.getGoto(this.stack[this.base-3],s,!0);this.state=o}}class mc{constructor(n,s,l){this.stack=n,this.pos=s,this.index=l,this.buffer=n.buffer,this.index==0&&this.maybeNext()}static create(n,s=n.bufferBase+n.buffer.length){return new mc(n,s,s-n.bufferBase)}maybeNext(){let n=this.stack.parent;n!=null&&(this.index=this.stack.bufferBase-n.bufferBase,this.stack=n,this.buffer=n.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new mc(this.stack,this.pos,this.index)}}function Mr(t,n=Uint16Array){if(typeof t!="string")return t;let s=null;for(let l=0,o=0;l<t.length;){let u=0;for(;;){let d=t.charCodeAt(l++),O=!1;if(d==126){u=65535;break}d>=92&&d--,d>=34&&d--;let m=d-32;if(m>=46&&(m-=46,O=!0),u+=m,O)break;u*=46}s?s[o++]=u:s=new n(u)}return s}class Wo{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const r1=new Wo;class QN{constructor(n,s){this.input=n,this.ranges=s,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=r1,this.rangeIndex=0,this.pos=this.chunkPos=s[0].from,this.range=s[0],this.end=s[s.length-1].to,this.readNext()}resolveOffset(n,s){let l=this.range,o=this.rangeIndex,u=this.pos+n;for(;u<l.from;){if(!o)return null;let d=this.ranges[--o];u-=l.from-d.to,l=d}for(;s<0?u>l.to:u>=l.to;){if(o==this.ranges.length-1)return null;let d=this.ranges[++o];u+=d.from-l.to,l=d}return u}clipPos(n){if(n>=this.range.from&&n<this.range.to)return n;for(let s of this.ranges)if(s.to>n)return Math.max(n,s.from);return this.end}peek(n){let s=this.chunkOff+n,l,o;if(s>=0&&s<this.chunk.length)l=this.pos+n,o=this.chunk.charCodeAt(s);else{let u=this.resolveOffset(n,1);if(u==null)return-1;if(l=u,l>=this.chunk2Pos&&l<this.chunk2Pos+this.chunk2.length)o=this.chunk2.charCodeAt(l-this.chunk2Pos);else{let d=this.rangeIndex,O=this.range;for(;O.to<=l;)O=this.ranges[++d];this.chunk2=this.input.chunk(this.chunk2Pos=l),l+this.chunk2.length>O.to&&(this.chunk2=this.chunk2.slice(0,O.to-l)),o=this.chunk2.charCodeAt(0)}}return l>=this.token.lookAhead&&(this.token.lookAhead=l+1),o}acceptToken(n,s=0){let l=s?this.resolveOffset(s,-1):this.pos;if(l==null||l<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=n,this.token.end=l}acceptTokenTo(n,s){this.token.value=n,this.token.end=s}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:n,chunkPos:s}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=n,this.chunk2Pos=s,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let n=this.input.chunk(this.pos),s=this.pos+n.length;this.chunk=s>this.range.to?n.slice(0,this.range.to-this.pos):n,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(n=1){for(this.chunkOff+=n;this.pos+n>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();n-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=n,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(n,s){if(s?(this.token=s,s.start=n,s.lookAhead=n+1,s.value=s.extended=-1):this.token=r1,this.pos!=n){if(this.pos=n,n==this.end)return this.setDone(),this;for(;n<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;n>=this.range.to;)this.range=this.ranges[++this.rangeIndex];n>=this.chunkPos&&n<this.chunkPos+this.chunk.length?this.chunkOff=n-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(n,s){if(n>=this.chunkPos&&s<=this.chunkPos+this.chunk.length)return this.chunk.slice(n-this.chunkPos,s-this.chunkPos);if(n>=this.chunk2Pos&&s<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(n-this.chunk2Pos,s-this.chunk2Pos);if(n>=this.range.from&&s<=this.range.to)return this.input.read(n,s);let l="";for(let o of this.ranges){if(o.from>=s)break;o.to>n&&(l+=this.input.read(Math.max(o.from,n),Math.min(o.to,s)))}return l}}class wl{constructor(n,s){this.data=n,this.id=s}token(n,s){let{parser:l}=s.p;uv(this.data,n,s,this.id,l.data,l.tokenPrecTable)}}wl.prototype.contextual=wl.prototype.fallback=wl.prototype.extend=!1;class pc{constructor(n,s,l){this.precTable=s,this.elseToken=l,this.data=typeof n=="string"?Mr(n):n}token(n,s){let l=n.pos,o=0;for(;;){let u=n.next<0,d=n.resolveOffset(1,1);if(uv(this.data,n,s,0,this.data,this.precTable),n.token.value>-1)break;if(this.elseToken==null)return;if(u||o++,d==null)break;n.reset(d,n.token)}o&&(n.reset(l,n.token),n.acceptToken(this.elseToken,o))}}pc.prototype.contextual=wl.prototype.fallback=wl.prototype.extend=!1;class gt{constructor(n,s={}){this.token=n,this.contextual=!!s.contextual,this.fallback=!!s.fallback,this.extend=!!s.extend}}function uv(t,n,s,l,o,u){let d=0,O=1<<l,{dialect:m}=s.p.parser;e:for(;(O&t[d])!=0;){let p=t[d+1];for(let S=d+3;S<p;S+=2)if((t[S+1]&O)>0){let Q=t[S];if(m.allows(Q)&&(n.token.value==-1||n.token.value==Q||jN(Q,n.token.value,o,u))){n.acceptToken(Q);break}}let x=n.next,g=0,b=t[d+2];if(n.next<0&&b>g&&t[p+b*3-3]==65535){d=t[p+b*3-1];continue e}for(;g<b;){let S=g+b>>1,Q=p+S+(S<<1),k=t[Q],T=t[Q+1]||65536;if(x<k)b=S;else if(x>=T)g=S+1;else{d=t[Q+2],n.advance();continue e}}break}}function i1(t,n,s){for(let l=n,o;(o=t[l])!=65535;l++)if(o==s)return l-n;return-1}function jN(t,n,s,l){let o=i1(s,l,n);return o<0||i1(s,l,t)<o}const Gt=typeof process<"u"&&s1&&/\bparse\b/.test(s1.LOG);let vO=null;function o1(t,n,s){let l=t.cursor(Qc.IncludeAnonymous);for(l.moveTo(n);;)if(!(s<0?l.childBefore(n):l.childAfter(n)))for(;;){if((s<0?l.to<n:l.from>n)&&!l.type.isError)return s<0?Math.max(0,Math.min(l.to-1,n-25)):Math.min(t.length,Math.max(l.from+1,n+25));if(s<0?l.prevSibling():l.nextSibling())break;if(!l.parent())return s<0?0:t.length}}let wN=class{constructor(n,s){this.fragments=n,this.nodeSet=s,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let n=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(n){for(this.safeFrom=n.openStart?o1(n.tree,n.from+n.offset,1)-n.offset:n.from,this.safeTo=n.openEnd?o1(n.tree,n.to+n.offset,-1)-n.offset:n.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(n.tree),this.start.push(-n.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(n){if(n<this.nextStart)return null;for(;this.fragment&&this.safeTo<=n;)this.nextFragment();if(!this.fragment)return null;for(;;){let s=this.trees.length-1;if(s<0)return this.nextFragment(),null;let l=this.trees[s],o=this.index[s];if(o==l.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let u=l.children[o],d=this.start[s]+l.positions[o];if(d>n)return this.nextStart=d,null;if(u instanceof ma){if(d==n){if(d<this.safeFrom)return null;let O=d+u.length;if(O<=this.safeTo){let m=u.prop(sn.lookAhead);if(!m||O+m<this.fragment.to)return u}}this.index[s]++,d+u.length>=Math.max(this.safeFrom,n)&&(this.trees.push(u),this.start.push(d),this.index.push(0))}else this.index[s]++,this.nextStart=d+u.length}}};class kN{constructor(n,s){this.stream=s,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=n.tokenizers.map(l=>new Wo)}getActions(n){let s=0,l=null,{parser:o}=n.p,{tokenizers:u}=o,d=o.stateSlot(n.state,3),O=n.curContext?n.curContext.hash:0,m=0;for(let p=0;p<u.length;p++){if((1<<p&d)==0)continue;let x=u[p],g=this.tokens[p];if(!(l&&!x.fallback)&&((x.contextual||g.start!=n.pos||g.mask!=d||g.context!=O)&&(this.updateCachedToken(g,x,n),g.mask=d,g.context=O),g.lookAhead>g.end+25&&(m=Math.max(g.lookAhead,m)),g.value!=0)){let b=s;if(g.extended>-1&&(s=this.addActions(n,g.extended,g.end,s)),s=this.addActions(n,g.value,g.end,s),!x.extend&&(l=g,s>b))break}}for(;this.actions.length>s;)this.actions.pop();return m&&n.setLookAhead(m),!l&&n.pos==this.stream.end&&(l=new Wo,l.value=n.p.parser.eofTerm,l.start=l.end=n.pos,s=this.addActions(n,l.value,l.end,s)),this.mainToken=l,this.actions}getMainToken(n){if(this.mainToken)return this.mainToken;let s=new Wo,{pos:l,p:o}=n;return s.start=l,s.end=Math.min(l+1,o.stream.end),s.value=l==o.stream.end?o.parser.eofTerm:0,s}updateCachedToken(n,s,l){let o=this.stream.clipPos(l.pos);if(s.token(this.stream.reset(o,n),l),n.value>-1){let{parser:u}=l.p;for(let d=0;d<u.specialized.length;d++)if(u.specialized[d]==n.value){let O=u.specializers[d](this.stream.read(n.start,n.end),l);if(O>=0&&l.p.parser.dialect.allows(O>>1)){(O&1)==0?n.value=O>>1:n.extended=O>>1;break}}}else n.value=0,n.end=this.stream.clipPos(o+1)}putAction(n,s,l,o){for(let u=0;u<o;u+=3)if(this.actions[u]==n)return o;return this.actions[o++]=n,this.actions[o++]=s,this.actions[o++]=l,o}addActions(n,s,l,o){let{state:u}=n,{parser:d}=n.p,{data:O}=d;for(let m=0;m<2;m++)for(let p=d.stateSlot(u,m?2:1);;p+=3){if(O[p]==65535)if(O[p+1]==1)p=nn(O,p+2);else{o==0&&O[p+1]==2&&(o=this.putAction(nn(O,p+2),s,l,o));break}O[p]==s&&(o=this.putAction(nn(O,p+1),s,l,o))}return o}}class $N{constructor(n,s,l,o){this.parser=n,this.input=s,this.ranges=o,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new QN(s,o),this.tokens=new kN(n,this.stream),this.topTerm=n.top[1];let{from:u}=o[0];this.stacks=[hc.start(this,n.top[0],u)],this.fragments=l.length&&this.stream.end-u>n.bufferLength*4?new wN(l,n.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let n=this.stacks,s=this.minStackPos,l=this.stacks=[],o,u;if(this.bigReductionCount>300&&n.length==1){let[d]=n;for(;d.forceReduce()&&d.stack.length&&d.stack[d.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let d=0;d<n.length;d++){let O=n[d];for(;;){if(this.tokens.mainToken=null,O.pos>s)l.push(O);else{if(this.advanceStack(O,l,n))continue;{o||(o=[],u=[]),o.push(O);let m=this.tokens.getMainToken(O);u.push(m.value,m.end)}}break}}if(!l.length){let d=o&&PN(o);if(d)return Gt&&console.log("Finish with "+this.stackID(d)),this.stackToTree(d);if(this.parser.strict)throw Gt&&o&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+s);this.recovering||(this.recovering=5)}if(this.recovering&&o){let d=this.stoppedAt!=null&&o[0].pos>this.stoppedAt?o[0]:this.runRecovery(o,u,l);if(d)return Gt&&console.log("Force-finish "+this.stackID(d)),this.stackToTree(d.forceAll())}if(this.recovering){let d=this.recovering==1?1:this.recovering*3;if(l.length>d)for(l.sort((O,m)=>m.score-O.score);l.length>d;)l.pop();l.some(O=>O.reducePos>s)&&this.recovering--}else if(l.length>1){e:for(let d=0;d<l.length-1;d++){let O=l[d];for(let m=d+1;m<l.length;m++){let p=l[m];if(O.sameState(p)||O.buffer.length>500&&p.buffer.length>500)if((O.score-p.score||O.buffer.length-p.buffer.length)>0)l.splice(m--,1);else{l.splice(d--,1);continue e}}}l.length>12&&(l.sort((d,O)=>O.score-d.score),l.splice(12,l.length-12))}this.minStackPos=l[0].pos;for(let d=1;d<l.length;d++)l[d].pos<this.minStackPos&&(this.minStackPos=l[d].pos);return null}stopAt(n){if(this.stoppedAt!=null&&this.stoppedAt<n)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=n}advanceStack(n,s,l){let o=n.pos,{parser:u}=this,d=Gt?this.stackID(n)+" -> ":"";if(this.stoppedAt!=null&&o>this.stoppedAt)return n.forceReduce()?n:null;if(this.fragments){let p=n.curContext&&n.curContext.tracker.strict,x=p?n.curContext.hash:0;for(let g=this.fragments.nodeAt(o);g;){let b=this.parser.nodeSet.types[g.type.id]==g.type?u.getGoto(n.state,g.type.id):-1;if(b>-1&&g.length&&(!p||(g.prop(sn.contextHash)||0)==x))return n.useNode(g,b),Gt&&console.log(d+this.stackID(n)+` (via reuse of ${u.getName(g.type.id)})`),!0;if(!(g instanceof ma)||g.children.length==0||g.positions[0]>0)break;let S=g.children[0];if(S instanceof ma&&g.positions[0]==0)g=S;else break}}let O=u.stateSlot(n.state,4);if(O>0)return n.reduce(O),Gt&&console.log(d+this.stackID(n)+` (via always-reduce ${u.getName(O&65535)})`),!0;if(n.stack.length>=8400)for(;n.stack.length>6e3&&n.forceReduce(););let m=this.tokens.getActions(n);for(let p=0;p<m.length;){let x=m[p++],g=m[p++],b=m[p++],S=p==m.length||!l,Q=S?n:n.split(),k=this.tokens.mainToken;if(Q.apply(x,g,k?k.start:Q.pos,b),Gt&&console.log(d+this.stackID(Q)+` (via ${(x&65536)==0?"shift":`reduce of ${u.getName(x&65535)}`} for ${u.getName(g)} @ ${o}${Q==n?"":", split"})`),S)return!0;Q.pos>o?s.push(Q):l.push(Q)}return!1}advanceFully(n,s){let l=n.pos;for(;;){if(!this.advanceStack(n,null,null))return!1;if(n.pos>l)return c1(n,s),!0}}runRecovery(n,s,l){let o=null,u=!1;for(let d=0;d<n.length;d++){let O=n[d],m=s[d<<1],p=s[(d<<1)+1],x=Gt?this.stackID(O)+" -> ":"";if(O.deadEnd&&(u||(u=!0,O.restart(),Gt&&console.log(x+this.stackID(O)+" (restarted)"),this.advanceFully(O,l))))continue;let g=O.split(),b=x;for(let S=0;S<10&&g.forceReduce()&&(Gt&&console.log(b+this.stackID(g)+" (via force-reduce)"),!this.advanceFully(g,l));S++)Gt&&(b=this.stackID(g)+" -> ");for(let S of O.recoverByInsert(m))Gt&&console.log(x+this.stackID(S)+" (via recover-insert)"),this.advanceFully(S,l);this.stream.end>O.pos?(p==O.pos&&(p++,m=0),O.recoverByDelete(m,p),Gt&&console.log(x+this.stackID(O)+` (via recover-delete ${this.parser.getName(m)})`),c1(O,l)):(!o||o.score<g.score)&&(o=g)}return o}stackToTree(n){return n.close(),ma.build({buffer:mc.create(n),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:n.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(n){let s=(vO||(vO=new WeakMap)).get(n);return s||vO.set(n,s=String.fromCodePoint(this.nextStackID++)),s+n}}function c1(t,n){for(let s=0;s<n.length;s++){let l=n[s];if(l.pos==t.pos&&l.sameState(t)){n[s].score<t.score&&(n[s]=t);return}}n.push(t)}class TN{constructor(n,s,l){this.source=n,this.flags=s,this.disabled=l}allows(n){return!this.disabled||this.disabled[n]==0}}const yO=t=>t;class nh{constructor(n){this.start=n.start,this.shift=n.shift||yO,this.reduce=n.reduce||yO,this.reuse=n.reuse||yO,this.hash=n.hash||(()=>0),this.strict=n.strict!==!1}}class Kn extends y0{constructor(n){if(super(),this.wrappers=[],n.version!=14)throw new RangeError(`Parser version (${n.version}) doesn't match runtime version (14)`);let s=n.nodeNames.split(" ");this.minRepeatTerm=s.length;for(let O=0;O<n.repeatNodeCount;O++)s.push("");let l=Object.keys(n.topRules).map(O=>n.topRules[O][1]),o=[];for(let O=0;O<s.length;O++)o.push([]);function u(O,m,p){o[O].push([m,m.deserialize(String(p))])}if(n.nodeProps)for(let O of n.nodeProps){let m=O[0];typeof m=="string"&&(m=sn[m]);for(let p=1;p<O.length;){let x=O[p++];if(x>=0)u(x,m,O[p++]);else{let g=O[p+-x];for(let b=-x;b>0;b--)u(O[p++],m,g);p++}}}this.nodeSet=new wf(s.map((O,m)=>ni.define({name:m>=this.minRepeatTerm?void 0:O,id:m,props:o[m],top:l.indexOf(m)>-1,error:m==0,skipped:n.skippedNodes&&n.skippedNodes.indexOf(m)>-1}))),n.propSources&&(this.nodeSet=this.nodeSet.extend(...n.propSources)),this.strict=!1,this.bufferLength=Sj;let d=Mr(n.tokenData);this.context=n.context,this.specializerSpecs=n.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let O=0;O<this.specializerSpecs.length;O++)this.specialized[O]=this.specializerSpecs[O].term;this.specializers=this.specializerSpecs.map(u1),this.states=Mr(n.states,Uint32Array),this.data=Mr(n.stateData),this.goto=Mr(n.goto),this.maxTerm=n.maxTerm,this.tokenizers=n.tokenizers.map(O=>typeof O=="number"?new wl(d,O):O),this.topRules=n.topRules,this.dialects=n.dialects||{},this.dynamicPrecedences=n.dynamicPrecedences||null,this.tokenPrecTable=n.tokenPrec,this.termNames=n.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(n,s,l){let o=new $N(this,n,s,l);for(let u of this.wrappers)o=u(o,n,s,l);return o}getGoto(n,s,l=!1){let o=this.goto;if(s>=o[0])return-1;for(let u=o[s+1];;){let d=o[u++],O=d&1,m=o[u++];if(O&&l)return m;for(let p=u+(d>>1);u<p;u++)if(o[u]==n)return m;if(O)return-1}}hasAction(n,s){let l=this.data;for(let o=0;o<2;o++)for(let u=this.stateSlot(n,o?2:1),d;;u+=3){if((d=l[u])==65535)if(l[u+1]==1)d=l[u=nn(l,u+2)];else{if(l[u+1]==2)return nn(l,u+2);break}if(d==s||d==0)return nn(l,u+1)}return 0}stateSlot(n,s){return this.states[n*6+s]}stateFlag(n,s){return(this.stateSlot(n,0)&s)>0}validAction(n,s){return!!this.allActions(n,l=>l==s?!0:null)}allActions(n,s){let l=this.stateSlot(n,4),o=l?s(l):void 0;for(let u=this.stateSlot(n,1);o==null;u+=3){if(this.data[u]==65535)if(this.data[u+1]==1)u=nn(this.data,u+2);else break;o=s(nn(this.data,u+1))}return o}nextStates(n){let s=[];for(let l=this.stateSlot(n,1);;l+=3){if(this.data[l]==65535)if(this.data[l+1]==1)l=nn(this.data,l+2);else break;if((this.data[l+2]&1)==0){let o=this.data[l+1];s.some((u,d)=>d&1&&u==o)||s.push(this.data[l],o)}}return s}configure(n){let s=Object.assign(Object.create(Kn.prototype),this);if(n.props&&(s.nodeSet=this.nodeSet.extend(...n.props)),n.top){let l=this.topRules[n.top];if(!l)throw new RangeError(`Invalid top rule name ${n.top}`);s.top=l}return n.tokenizers&&(s.tokenizers=this.tokenizers.map(l=>{let o=n.tokenizers.find(u=>u.from==l);return o?o.to:l})),n.specializers&&(s.specializers=this.specializers.slice(),s.specializerSpecs=this.specializerSpecs.map((l,o)=>{let u=n.specializers.find(O=>O.from==l.external);if(!u)return l;let d=Object.assign(Object.assign({},l),{external:u.to});return s.specializers[o]=u1(d),d})),n.contextTracker&&(s.context=n.contextTracker),n.dialect&&(s.dialect=this.parseDialect(n.dialect)),n.strict!=null&&(s.strict=n.strict),n.wrap&&(s.wrappers=s.wrappers.concat(n.wrap)),n.bufferLength!=null&&(s.bufferLength=n.bufferLength),s}hasWrappers(){return this.wrappers.length>0}getName(n){return this.termNames?this.termNames[n]:String(n<=this.maxNode&&this.nodeSet.types[n].name||n)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(n){let s=this.dynamicPrecedences;return s==null?0:s[n]||0}parseDialect(n){let s=Object.keys(this.dialects),l=s.map(()=>!1);if(n)for(let u of n.split(" ")){let d=s.indexOf(u);d>=0&&(l[d]=!0)}let o=null;for(let u=0;u<s.length;u++)if(!l[u])for(let d=this.dialects[s[u]],O;(O=this.data[d++])!=65535;)(o||(o=new Uint8Array(this.maxTerm+1)))[O]=1;return new TN(n,l,o)}static deserialize(n){return new Kn(n)}}function nn(t,n){return t[n]|t[n+1]<<16}function PN(t){let n=null;for(let s of t){let l=s.p.stoppedAt;(s.pos==s.p.stream.end||l!=null&&s.pos>l)&&s.p.parser.stateFlag(s.state,2)&&(!n||n.score<s.score)&&(n=s)}return n}function u1(t){if(t.external){let n=t.extend?1:0;return(s,l)=>t.external(s,l)<<1|n}return t.get}const NN=316,zN=317,d1=1,RN=2,CN=3,XN=4,_N=318,ZN=320,AN=321,EN=5,qN=6,MN=0,uf=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],dv=125,YN=59,df=47,VN=42,UN=43,GN=45,LN=60,DN=44,WN=63,BN=46,HN=91,IN=new nh({start:!1,shift(t,n){return n==EN||n==qN||n==ZN?t:n==AN},strict:!1}),FN=new gt((t,n)=>{let{next:s}=t;(s==dv||s==-1||n.context)&&t.acceptToken(_N)},{contextual:!0,fallback:!0}),KN=new gt((t,n)=>{let{next:s}=t,l;uf.indexOf(s)>-1||s==df&&((l=t.peek(1))==df||l==VN)||s!=dv&&s!=YN&&s!=-1&&!n.context&&t.acceptToken(NN)},{contextual:!0}),JN=new gt((t,n)=>{t.next==HN&&!n.context&&t.acceptToken(zN)},{contextual:!0}),e3=new gt((t,n)=>{let{next:s}=t;if(s==UN||s==GN){if(t.advance(),s==t.next){t.advance();let l=!n.context&&n.canShift(d1);t.acceptToken(l?d1:RN)}}else s==WN&&t.peek(1)==BN&&(t.advance(),t.advance(),(t.next<48||t.next>57)&&t.acceptToken(CN))},{contextual:!0});function SO(t,n){return t>=65&&t<=90||t>=97&&t<=122||t==95||t>=192||!n&&t>=48&&t<=57}const t3=new gt((t,n)=>{if(t.next!=LN||!n.dialectEnabled(MN)||(t.advance(),t.next==df))return;let s=0;for(;uf.indexOf(t.next)>-1;)t.advance(),s++;if(SO(t.next,!0)){for(t.advance(),s++;SO(t.next,!1);)t.advance(),s++;for(;uf.indexOf(t.next)>-1;)t.advance(),s++;if(t.next==DN)return;for(let l=0;;l++){if(l==7){if(!SO(t.next,!0))return;break}if(t.next!="extends".charCodeAt(l))break;t.advance(),s++}}t.acceptToken(XN,-s)}),a3=Ts({"get set async static":Z.modifier,"for while do if else switch try catch finally return throw break continue default case defer":Z.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":Z.operatorKeyword,"let var const using function class extends":Z.definitionKeyword,"import export from":Z.moduleKeyword,"with debugger new":Z.keyword,TemplateString:Z.special(Z.string),super:Z.atom,BooleanLiteral:Z.bool,this:Z.self,null:Z.null,Star:Z.modifier,VariableName:Z.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":Z.function(Z.variableName),VariableDefinition:Z.definition(Z.variableName),Label:Z.labelName,PropertyName:Z.propertyName,PrivatePropertyName:Z.special(Z.propertyName),"CallExpression/MemberExpression/PropertyName":Z.function(Z.propertyName),"FunctionDeclaration/VariableDefinition":Z.function(Z.definition(Z.variableName)),"ClassDeclaration/VariableDefinition":Z.definition(Z.className),"NewExpression/VariableName":Z.className,PropertyDefinition:Z.definition(Z.propertyName),PrivatePropertyDefinition:Z.definition(Z.special(Z.propertyName)),UpdateOp:Z.updateOperator,"LineComment Hashbang":Z.lineComment,BlockComment:Z.blockComment,Number:Z.number,String:Z.string,Escape:Z.escape,ArithOp:Z.arithmeticOperator,LogicOp:Z.logicOperator,BitOp:Z.bitwiseOperator,CompareOp:Z.compareOperator,RegExp:Z.regexp,Equals:Z.definitionOperator,Arrow:Z.function(Z.punctuation),": Spread":Z.punctuation,"( )":Z.paren,"[ ]":Z.squareBracket,"{ }":Z.brace,"InterpolationStart InterpolationEnd":Z.special(Z.brace),".":Z.derefOperator,", ;":Z.separator,"@":Z.meta,TypeName:Z.typeName,TypeDefinition:Z.definition(Z.typeName),"type enum interface implements namespace module declare":Z.definitionKeyword,"abstract global Privacy readonly override":Z.modifier,"is keyof unique infer asserts":Z.operatorKeyword,JSXAttributeValue:Z.attributeValue,JSXText:Z.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":Z.angleBracket,"JSXIdentifier JSXNameSpacedName":Z.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":Z.attributeName,"JSXBuiltin/JSXIdentifier":Z.standard(Z.tagName)}),n3={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,defer:471,for:476,of:485,while:488,with:492,do:496,if:500,else:502,switch:506,case:512,try:518,catch:522,finally:526,return:530,throw:534,break:538,continue:542,debugger:546},s3={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},l3={__proto__:null,"<":193},r3=Kn.deserialize({version:14,states:"$F|Q%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Il'#IlO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JrO6[Q!0MxO'#JsO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO9XQMhO'#F|O9`Q`O'#F{OOQ!0Lf'#Js'#JsOOQ!0Lb'#Jr'#JrO9eQ`O'#GwOOQ['#K_'#K_O9pQ`O'#IYO9uQ!0LrO'#IZOOQ['#J`'#J`OOQ['#I_'#I_Q`QlOOQ`QlOOO9}Q!L^O'#DvO:UQlO'#EOO:]QlO'#EQO9kQ`O'#GsO:dQMhO'#CoO:rQ`O'#EnO:}Q`O'#EyO;hQMhO'#FeO;xQ`O'#GsOOQO'#K`'#K`O;}Q`O'#K`O<]Q`O'#G{O<]Q`O'#G|O<]Q`O'#HOO9kQ`O'#HRO=SQ`O'#HUO>kQ`O'#CeO>{Q`O'#HcO?TQ`O'#HiO?TQ`O'#HkO`QlO'#HmO?TQ`O'#HoO?TQ`O'#HrO?YQ`O'#HxO?_Q!0LsO'#IOO%[QlO'#IQO?jQ!0LsO'#ISO?uQ!0LsO'#IUO9uQ!0LrO'#IWO@QQ!0MxO'#CiOASQpO'#DlQOQ`OOO%[QlO'#EQOAjQ`O'#ETO:dQMhO'#EnOAuQ`O'#EnOBQQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Jv'#JvO%[QlO'#JvOOQO'#Jy'#JyOOQO'#Ih'#IhOCQQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J}'#J}OC|Q!0MSO'#EgODWQpO'#EWOOQO'#Jx'#JxODlQpO'#JyOEyQpO'#EWODWQpO'#EgPFWO&2DjO'#CbPOOO)CD})CD}OOOO'#I`'#I`OFcO#tO,59UOOQ!0Lh,59U,59UOOOO'#Ia'#IaOFqO&jO,59UOGPQ!L^O'#DcOOOO'#Ic'#IcOGWO#@ItO,59{OOQ!0Lf,59{,59{OGfQlO'#IdOGyQ`O'#JtOIxQ!fO'#JtO+}QlO'#JtOJPQ`O,5:ROJgQ`O'#EpOJtQ`O'#KTOKPQ`O'#KSOKPQ`O'#KSOKXQ`O,5;^OK^Q`O'#KROOQ!0Ln,5:^,5:^OKeQlO,5:^OMcQ!0MxO,5:fONSQ`O,5:nONmQ!0LrO'#KQONtQ`O'#KPO9eQ`O'#KPO! YQ`O'#KPO! bQ`O,5;]O! gQ`O'#KPO!#lQ!fO'#JsOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$[Q!fO,5:sOOQS'#Jz'#JzOOQO-E<j-E<jO9kQ`O,5=_O!$rQ`O,5=_O!$wQlO,5;ZO!&zQMhO'#EkO!(eQ`O,5;ZO!(jQlO'#DyO!(tQpO,5;dO!(|QpO,5;dO%[QlO,5;dOOQ['#FT'#FTOOQ['#FV'#FVO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eOOQ['#FZ'#FZO!)[QlO,5;tOOQ!0Lf,5;y,5;yOOQ!0Lf,5;z,5;zOOQ!0Lf,5;|,5;|O%[QlO'#IpO!+_Q!0LrO,5<iO%[QlO,5;eO!&zQMhO,5;eO!+|QMhO,5;eO!-nQMhO'#E^O%[QlO,5;wOOQ!0Lf,5;{,5;{O!-uQ,UO'#FjO!.rQ,UO'#KXO!.^Q,UO'#KXO!.yQ,UO'#KXOOQO'#KX'#KXO!/_Q,UO,5<SOOOW,5<`,5<`O!/pQlO'#FvOOOW'#Io'#IoO7VO7dO,5<QO!/wQ,UO'#FxOOQ!0Lf,5<Q,5<QO!0hQ$IUO'#CyOOQ!0Lh'#C}'#C}O!0{O#@ItO'#DRO!1iQMjO,5<eO!1pQ`O,5<hO!3YQ(CWO'#GXO!3jQ`O'#GYO!3oQ`O'#GYO!5_Q(CWO'#G^O!6dQpO'#GbOOQO'#Gn'#GnO!,TQMhO'#GmOOQO'#Gp'#GpO!,TQMhO'#GoO!7VQ$IUO'#JlOOQ!0Lh'#Jl'#JlO!7aQ`O'#JkO!7oQ`O'#JjO!7wQ`O'#CuOOQ!0Lh'#C{'#C{O!8YQ`O'#C}OOQ!0Lh'#DV'#DVOOQ!0Lh'#DX'#DXO!8_Q`O,5<eO1SQ`O'#DZO!,TQMhO'#GPO!,TQMhO'#GRO!8gQ`O'#GTO!8lQ`O'#GUO!3oQ`O'#G[O!,TQMhO'#GaO<]Q`O'#JkO!8qQ`O'#EqO!9`Q`O,5<gOOQ!0Lb'#Cr'#CrO!9hQ`O'#ErO!:bQpO'#EsOOQ!0Lb'#KR'#KRO!:iQ!0LrO'#KaO9uQ!0LrO,5=cO`QlO,5>tOOQ['#Jh'#JhOOQ[,5>u,5>uOOQ[-E<]-E<]O!<hQ!0MxO,5:bO!:]QpO,5:`O!?RQ!0MxO,5:jO%[QlO,5:jO!AiQ!0MxO,5:lOOQO,5@z,5@zO!BYQMhO,5=_O!BhQ!0LrO'#JiO9`Q`O'#JiO!ByQ!0LrO,59ZO!CUQpO,59ZO!C^QMhO,59ZO:dQMhO,59ZO!CiQ`O,5;ZO!CqQ`O'#HbO!DVQ`O'#KdO%[QlO,5;}O!:]QpO,5<PO!D_Q`O,5=zO!DdQ`O,5=zO!DiQ`O,5=zO!DwQ`O,5=zO9uQ!0LrO,5=zO<]Q`O,5=jOOQO'#Cy'#CyO!EOQpO,5=gO!EWQMhO,5=hO!EcQ`O,5=jO!EhQ!bO,5=mO!EpQ`O'#K`O?YQ`O'#HWO9kQ`O'#HYO!EuQ`O'#HYO:dQMhO'#H[O!EzQ`O'#H[OOQ[,5=p,5=pO!FPQ`O'#H]O!FbQ`O'#CoO!FgQ`O,59PO!FqQ`O,59PO!HvQlO,59POOQ[,59P,59PO!IWQ!0LrO,59PO%[QlO,59PO!KcQlO'#HeOOQ['#Hf'#HfOOQ['#Hg'#HgO`QlO,5=}O!KyQ`O,5=}O`QlO,5>TO`QlO,5>VO!LOQ`O,5>XO`QlO,5>ZO!LTQ`O,5>^O!LYQlO,5>dOOQ[,5>j,5>jO%[QlO,5>jO9uQ!0LrO,5>lOOQ[,5>n,5>nO#!dQ`O,5>nOOQ[,5>p,5>pO#!dQ`O,5>pOOQ[,5>r,5>rO##QQpO'#D_O%[QlO'#JvO##sQpO'#JvO##}QpO'#DmO#$`QpO'#DmO#&qQlO'#DmO#&xQ`O'#JuO#'QQ`O,5:WO#'VQ`O'#EtO#'eQ`O'#KUO#'mQ`O,5;_O#'rQpO'#DmO#(PQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#(WQ`O,5:oO?YQ`O,5;YO!CUQpO,5;YO!C^QMhO,5;YO:dQMhO,5;YO#(`Q`O,5@bO#(eQ07dO,5:sOOQO-E<f-E<fO#)kQ!0MSO,5;RODWQpO,5:rO#)uQpO,5:rODWQpO,5;RO!ByQ!0LrO,5:rOOQ!0Lb'#Ej'#EjOOQO,5;R,5;RO%[QlO,5;RO#*SQ!0LrO,5;RO#*_Q!0LrO,5;RO!CUQpO,5:rOOQO,5;X,5;XO#*mQ!0LrO,5;RPOOO'#I^'#I^P#+RO&2DjO,58|POOO,58|,58|OOOO-E<^-E<^OOQ!0Lh1G.p1G.pOOOO-E<_-E<_OOOO,59},59}O#+^Q!bO,59}OOOO-E<a-E<aOOQ!0Lf1G/g1G/gO#+cQ!fO,5?OO+}QlO,5?OOOQO,5?U,5?UO#+mQlO'#IdOOQO-E<b-E<bO#+zQ`O,5@`O#,SQ!fO,5@`O#,ZQ`O,5@nOOQ!0Lf1G/m1G/mO%[QlO,5@oO#,cQ`O'#IjOOQO-E<h-E<hO#,ZQ`O,5@nOOQ!0Lb1G0x1G0xOOQ!0Ln1G/x1G/xOOQ!0Ln1G0Y1G0YO%[QlO,5@lO#,wQ!0LrO,5@lO#-YQ!0LrO,5@lO#-aQ`O,5@kO9eQ`O,5@kO#-iQ`O,5@kO#-wQ`O'#ImO#-aQ`O,5@kOOQ!0Lb1G0w1G0wO!(tQpO,5:uO!)PQpO,5:uOOQS,5:w,5:wO#.iQdO,5:wO#.qQMhO1G2yO9kQ`O1G2yOOQ!0Lf1G0u1G0uO#/PQ!0MxO1G0uO#0UQ!0MvO,5;VOOQ!0Lh'#GW'#GWO#0rQ!0MzO'#JlO!$wQlO1G0uO#2}Q!fO'#JwO%[QlO'#JwO#3XQ`O,5:eOOQ!0Lh'#D_'#D_OOQ!0Lf1G1O1G1OO%[QlO1G1OOOQ!0Lf1G1f1G1fO#3^Q`O1G1OO#5rQ!0MxO1G1PO#5yQ!0MxO1G1PO#8aQ!0MxO1G1PO#8hQ!0MxO1G1PO#;OQ!0MxO1G1PO#=fQ!0MxO1G1PO#=mQ!0MxO1G1PO#=tQ!0MxO1G1PO#@[Q!0MxO1G1PO#@cQ!0MxO1G1PO#BpQ?MtO'#CiO#DkQ?MtO1G1`O#DrQ?MtO'#JsO#EVQ!0MxO,5?[OOQ!0Lb-E<n-E<nO#GdQ!0MxO1G1PO#HaQ!0MzO1G1POOQ!0Lf1G1P1G1PO#IdQMjO'#J|O#InQ`O,5:xO#IsQ!0MxO1G1cO#JgQ,UO,5<WO#JoQ,UO,5<XO#JwQ,UO'#FoO#K`Q`O'#FnOOQO'#KY'#KYOOQO'#In'#InO#KeQ,UO1G1nOOQ!0Lf1G1n1G1nOOOW1G1y1G1yO#KvQ?MtO'#JrO#LQQ`O,5<bO!)[QlO,5<bOOOW-E<m-E<mOOQ!0Lf1G1l1G1lO#LVQpO'#KXOOQ!0Lf,5<d,5<dO#L_QpO,5<dO#LdQMhO'#DTOOOO'#Ib'#IbO#LkO#@ItO,59mOOQ!0Lh,59m,59mO%[QlO1G2PO!8lQ`O'#IrO#LvQ`O,5<zOOQ!0Lh,5<w,5<wO!,TQMhO'#IuO#MdQMjO,5=XO!,TQMhO'#IwO#NVQMjO,5=ZO!&zQMhO,5=]OOQO1G2S1G2SO#NaQ!dO'#CrO#NtQ(CWO'#ErO$ |QpO'#GbO$!dQ!dO,5<sO$!kQ`O'#K[O9eQ`O'#K[O$!yQ`O,5<uO$#aQ!dO'#C{O!,TQMhO,5<tO$#kQ`O'#GZO$$PQ`O,5<tO$$UQ!dO'#GWO$$cQ!dO'#K]O$$mQ`O'#K]O!&zQMhO'#K]O$$rQ`O,5<xO$$wQlO'#JvO$%RQpO'#GcO#$`QpO'#GcO$%dQ`O'#GgO!3oQ`O'#GkO$%iQ!0LrO'#ItO$%tQpO,5<|OOQ!0Lp,5<|,5<|O$%{QpO'#GcO$&YQpO'#GdO$&kQpO'#GdO$&pQMjO,5=XO$'QQMjO,5=ZOOQ!0Lh,5=^,5=^O!,TQMhO,5@VO!,TQMhO,5@VO$'bQ`O'#IyO$'vQ`O,5@UO$(OQ`O,59aOOQ!0Lh,59i,59iO$(TQ`O,5@VO$)TQ$IYO,59uOOQ!0Lh'#Jp'#JpO$)vQMjO,5<kO$*iQMjO,5<mO@zQ`O,5<oOOQ!0Lh,5<p,5<pO$*sQ`O,5<vO$*xQMjO,5<{O$+YQ`O'#KPO!$wQlO1G2RO$+_Q`O1G2RO9eQ`O'#KSO9eQ`O'#EtO%[QlO'#EtO9eQ`O'#I{O$+dQ!0LrO,5@{OOQ[1G2}1G2}OOQ[1G4`1G4`OOQ!0Lf1G/|1G/|OOQ!0Lf1G/z1G/zO$-fQ!0MxO1G0UOOQ[1G2y1G2yO!&zQMhO1G2yO%[QlO1G2yO#.tQ`O1G2yO$/jQMhO'#EkOOQ!0Lb,5@T,5@TO$/wQ!0LrO,5@TOOQ[1G.u1G.uO!ByQ!0LrO1G.uO!CUQpO1G.uO!C^QMhO1G.uO$0YQ`O1G0uO$0_Q`O'#CiO$0jQ`O'#KeO$0rQ`O,5=|O$0wQ`O'#KeO$0|Q`O'#KeO$1[Q`O'#JRO$1jQ`O,5AOO$1rQ!fO1G1iOOQ!0Lf1G1k1G1kO9kQ`O1G3fO@zQ`O1G3fO$1yQ`O1G3fO$2OQ`O1G3fO!DiQ`O1G3fO9uQ!0LrO1G3fOOQ[1G3f1G3fO!EcQ`O1G3UO!&zQMhO1G3RO$2TQ`O1G3ROOQ[1G3S1G3SO!&zQMhO1G3SO$2YQ`O1G3SO$2bQpO'#HQOOQ[1G3U1G3UO!6_QpO'#I}O!EhQ!bO1G3XOOQ[1G3X1G3XOOQ[,5=r,5=rO$2jQMhO,5=tO9kQ`O,5=tO$%dQ`O,5=vO9`Q`O,5=vO!CUQpO,5=vO!C^QMhO,5=vO:dQMhO,5=vO$2xQ`O'#KcO$3TQ`O,5=wOOQ[1G.k1G.kO$3YQ!0LrO1G.kO@zQ`O1G.kO$3eQ`O1G.kO9uQ!0LrO1G.kO$5mQ!fO,5AQO$5zQ`O,5AQO9eQ`O,5AQO$6VQlO,5>PO$6^Q`O,5>POOQ[1G3i1G3iO`QlO1G3iOOQ[1G3o1G3oOOQ[1G3q1G3qO?TQ`O1G3sO$6cQlO1G3uO$:gQlO'#HtOOQ[1G3x1G3xO$:tQ`O'#HzO?YQ`O'#H|OOQ[1G4O1G4OO$:|QlO1G4OO9uQ!0LrO1G4UOOQ[1G4W1G4WOOQ!0Lb'#G_'#G_O9uQ!0LrO1G4YO9uQ!0LrO1G4[O$?TQ`O,5@bO!)[QlO,5;`O9eQ`O,5;`O?YQ`O,5:XO!)[QlO,5:XO!CUQpO,5:XO$?YQ?MtO,5:XOOQO,5;`,5;`O$?dQpO'#IeO$?zQ`O,5@aOOQ!0Lf1G/r1G/rO$@SQpO'#IkO$@^Q`O,5@pOOQ!0Lb1G0y1G0yO#$`QpO,5:XOOQO'#Ig'#IgO$@fQpO,5:qOOQ!0Ln,5:q,5:qO#(ZQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO?YQ`O1G0tO!CUQpO1G0tO!C^QMhO1G0tOOQ!0Lb1G5|1G5|O!ByQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$@mQ!0LrO1G0mO$@xQ!0LrO1G0mO!CUQpO1G0^ODWQpO1G0^O$AWQ!0LrO1G0mOOQO1G0^1G0^O$AlQ!0MxO1G0mPOOO-E<[-E<[POOO1G.h1G.hOOOO1G/i1G/iO$AvQ!bO,5<iO$BOQ!fO1G4jOOQO1G4p1G4pO%[QlO,5?OO$BYQ`O1G5zO$BbQ`O1G6YO$BjQ!fO1G6ZO9eQ`O,5?UO$BtQ!0MxO1G6WO%[QlO1G6WO$CUQ!0LrO1G6WO$CgQ`O1G6VO$CgQ`O1G6VO9eQ`O1G6VO$CoQ`O,5?XO9eQ`O,5?XOOQO,5?X,5?XO$DTQ`O,5?XO$+YQ`O,5?XOOQO-E<k-E<kOOQS1G0a1G0aOOQS1G0c1G0cO#.lQ`O1G0cOOQ[7+(e7+(eO!&zQMhO7+(eO%[QlO7+(eO$DcQ`O7+(eO$DnQMhO7+(eO$D|Q!0MzO,5=XO$GXQ!0MzO,5=ZO$IdQ!0MzO,5=XO$KuQ!0MzO,5=ZO$NWQ!0MzO,59uO%!]Q!0MzO,5<kO%$hQ!0MzO,5<mO%&sQ!0MzO,5<{OOQ!0Lf7+&a7+&aO%)UQ!0MxO7+&aO%)xQlO'#IfO%*VQ`O,5@cO%*_Q!fO,5@cOOQ!0Lf1G0P1G0PO%*iQ`O7+&jOOQ!0Lf7+&j7+&jO%*nQ?MtO,5:fO%[QlO7+&zO%*xQ?MtO,5:bO%+VQ?MtO,5:jO%+aQ?MtO,5:lO%+kQMhO'#IiO%+uQ`O,5@hOOQ!0Lh1G0d1G0dOOQO1G1r1G1rOOQO1G1s1G1sO%+}Q!jO,5<ZO!)[QlO,5<YOOQO-E<l-E<lOOQ!0Lf7+'Y7+'YOOOW7+'e7+'eOOOW1G1|1G1|O%,YQ`O1G1|OOQ!0Lf1G2O1G2OOOOO,59o,59oO%,_Q!dO,59oOOOO-E<`-E<`OOQ!0Lh1G/X1G/XO%,fQ!0MxO7+'kOOQ!0Lh,5?^,5?^O%-YQMhO1G2fP%-aQ`O'#IrPOQ!0Lh-E<p-E<pO%-}QMjO,5?aOOQ!0Lh-E<s-E<sO%.pQMjO,5?cOOQ!0Lh-E<u-E<uO%.zQ!dO1G2wO%/RQ!dO'#CrO%/iQMhO'#KSO$$wQlO'#JvOOQ!0Lh1G2_1G2_O%/sQ`O'#IqO%0[Q`O,5@vO%0[Q`O,5@vO%0dQ`O,5@vO%0oQ`O,5@vOOQO1G2a1G2aO%0}QMjO1G2`O$+YQ`O'#K[O!,TQMhO1G2`O%1_Q(CWO'#IsO%1lQ`O,5@wO!&zQMhO,5@wO%1tQ!dO,5@wOOQ!0Lh1G2d1G2dO%4UQ!fO'#CiO%4`Q`O,5=POOQ!0Lb,5<},5<}O%4hQpO,5<}OOQ!0Lb,5=O,5=OOCwQ`O,5<}O%4sQpO,5<}OOQ!0Lb,5=R,5=RO$+YQ`O,5=VOOQO,5?`,5?`OOQO-E<r-E<rOOQ!0Lp1G2h1G2hO#$`QpO,5<}O$$wQlO,5=PO%5RQ`O,5=OO%5^QpO,5=OO!,TQMhO'#IuO%6WQMjO1G2sO!,TQMhO'#IwO%6yQMjO1G2uO%7TQMjO1G5qO%7_QMjO1G5qOOQO,5?e,5?eOOQO-E<w-E<wOOQO1G.{1G.{O!,TQMhO1G5qO!,TQMhO1G5qO!:]QpO,59wO%[QlO,59wOOQ!0Lh,5<j,5<jO%7lQ`O1G2ZO!,TQMhO1G2bO%7qQ!0MxO7+'mOOQ!0Lf7+'m7+'mO!$wQlO7+'mO%8eQ`O,5;`OOQ!0Lb,5?g,5?gOOQ!0Lb-E<y-E<yO%8jQ!dO'#K^O#(ZQ`O7+(eO4UQ!fO7+(eO$DfQ`O7+(eO%8tQ!0MvO'#CiO%9XQ!0MvO,5=SO%9lQ`O,5=SO%9tQ`O,5=SOOQ!0Lb1G5o1G5oOOQ[7+$a7+$aO!ByQ!0LrO7+$aO!CUQpO7+$aO!$wQlO7+&aO%9yQ`O'#JQO%:bQ`O,5APOOQO1G3h1G3hO9kQ`O,5APO%:bQ`O,5APO%:jQ`O,5APOOQO,5?m,5?mOOQO-E=P-E=POOQ!0Lf7+'T7+'TO%:oQ`O7+)QO9uQ!0LrO7+)QO9kQ`O7+)QO@zQ`O7+)QO%:tQ`O7+)QOOQ[7+)Q7+)QOOQ[7+(p7+(pO%:yQ!0MvO7+(mO!&zQMhO7+(mO!E^Q`O7+(nOOQ[7+(n7+(nO!&zQMhO7+(nO%;TQ`O'#KbO%;`Q`O,5=lOOQO,5?i,5?iOOQO-E<{-E<{OOQ[7+(s7+(sO%<rQpO'#HZOOQ[1G3`1G3`O!&zQMhO1G3`O%[QlO1G3`O%<yQ`O1G3`O%=UQMhO1G3`O9uQ!0LrO1G3bO$%dQ`O1G3bO9`Q`O1G3bO!CUQpO1G3bO!C^QMhO1G3bO%=dQ`O'#JPO%=xQ`O,5@}O%>QQpO,5@}OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@zQ`O7+$VO9uQ!0LrO7+$VO%>]Q`O7+$VO%[QlO1G6lO%[QlO1G6mO%>bQ!0LrO1G6lO%>lQlO1G3kO%>sQ`O1G3kO%>xQlO1G3kOOQ[7+)T7+)TO9uQ!0LrO7+)_O`QlO7+)aOOQ['#Kh'#KhOOQ['#JS'#JSO%?PQlO,5>`OOQ[,5>`,5>`O%[QlO'#HuO%?^Q`O'#HwOOQ[,5>f,5>fO9eQ`O,5>fOOQ[,5>h,5>hOOQ[7+)j7+)jOOQ[7+)p7+)pOOQ[7+)t7+)tOOQ[7+)v7+)vO%?cQpO1G5|O%?}Q?MtO1G0zO%@XQ`O1G0zOOQO1G/s1G/sO%@dQ?MtO1G/sO?YQ`O1G/sO!)[QlO'#DmOOQO,5?P,5?POOQO-E<c-E<cOOQO,5?V,5?VOOQO-E<i-E<iO!CUQpO1G/sOOQO-E<e-E<eOOQ!0Ln1G0]1G0]OOQ!0Lf7+%u7+%uO#(ZQ`O7+%uOOQ!0Lf7+&`7+&`O?YQ`O7+&`O!CUQpO7+&`OOQO7+%x7+%xO$AlQ!0MxO7+&XOOQO7+&X7+&XO%[QlO7+&XO%@nQ!0LrO7+&XO!ByQ!0LrO7+%xO!CUQpO7+%xO%@yQ!0LrO7+&XO%AXQ!0MxO7++rO%[QlO7++rO%AiQ`O7++qO%AiQ`O7++qOOQO1G4s1G4sO9eQ`O1G4sO%AqQ`O1G4sOOQS7+%}7+%}O#(ZQ`O<<LPO4UQ!fO<<LPO%BPQ`O<<LPOOQ[<<LP<<LPO!&zQMhO<<LPO%[QlO<<LPO%BXQ`O<<LPO%BdQ!0MzO,5?aO%DoQ!0MzO,5?cO%FzQ!0MzO1G2`O%I]Q!0MzO1G2sO%KhQ!0MzO1G2uO%MsQ!fO,5?QO%[QlO,5?QOOQO-E<d-E<dO%M}Q`O1G5}OOQ!0Lf<<JU<<JUO%NVQ?MtO1G0uO&!^Q?MtO1G1PO&!eQ?MtO1G1PO&$fQ?MtO1G1PO&$mQ?MtO1G1PO&&nQ?MtO1G1PO&(oQ?MtO1G1PO&(vQ?MtO1G1PO&(}Q?MtO1G1PO&+OQ?MtO1G1PO&+VQ?MtO1G1PO&+^Q!0MxO<<JfO&-UQ?MtO1G1PO&.RQ?MvO1G1PO&/UQ?MvO'#JlO&1[Q?MtO1G1cO&1iQ?MtO1G0UO&1sQMjO,5?TOOQO-E<g-E<gO!)[QlO'#FqOOQO'#KZ'#KZOOQO1G1u1G1uO&1}Q`O1G1tO&2SQ?MtO,5?[OOOW7+'h7+'hOOOO1G/Z1G/ZO&2^Q!dO1G4xOOQ!0Lh7+(Q7+(QP!&zQMhO,5?^O!,TQMhO7+(cO&2eQ`O,5?]O9eQ`O,5?]O$+YQ`O,5?]OOQO-E<o-E<oO&2sQ`O1G6bO&2sQ`O1G6bO&2{Q`O1G6bO&3WQMjO7+'zO&3hQ!dO,5?_O&3rQ`O,5?_O!&zQMhO,5?_OOQO-E<q-E<qO&3wQ!dO1G6cO&4RQ`O1G6cO&4ZQ`O1G2kO!&zQMhO1G2kOOQ!0Lb1G2i1G2iOOQ!0Lb1G2j1G2jO%4hQpO1G2iO!CUQpO1G2iOCwQ`O1G2iOOQ!0Lb1G2q1G2qO&4`QpO1G2iO&4nQ`O1G2kO$+YQ`O1G2jOCwQ`O1G2jO$$wQlO1G2kO&4vQ`O1G2jO&5jQMjO,5?aOOQ!0Lh-E<t-E<tO&6]QMjO,5?cOOQ!0Lh-E<v-E<vO!,TQMhO7++]O&6gQMjO7++]O&6qQMjO7++]OOQ!0Lh1G/c1G/cO&7OQ`O1G/cOOQ!0Lh7+'u7+'uO&7TQMjO7+'|O&7eQ!0MxO<<KXOOQ!0Lf<<KX<<KXO&8XQ`O1G0zO!&zQMhO'#IzO&8^Q`O,5@xO&:`Q!fO<<LPO!&zQMhO1G2nO&:gQ!0LrO1G2nOOQ[<<G{<<G{O!ByQ!0LrO<<G{O&:xQ!0MxO<<I{OOQ!0Lf<<I{<<I{OOQO,5?l,5?lO&;lQ`O,5?lO&;qQ`O,5?lOOQO-E=O-E=OO&<PQ`O1G6kO&<PQ`O1G6kO9kQ`O1G6kO@zQ`O<<LlOOQ[<<Ll<<LlO&<XQ`O<<LlO9uQ!0LrO<<LlO9kQ`O<<LlOOQ[<<LX<<LXO%:yQ!0MvO<<LXOOQ[<<LY<<LYO!E^Q`O<<LYO&<^QpO'#I|O&<iQ`O,5@|O!)[QlO,5@|OOQ[1G3W1G3WOOQO'#JO'#JOO9uQ!0LrO'#JOO&<qQpO,5=uOOQ[,5=u,5=uO&<xQpO'#EgO&=PQpO'#GeO&=UQ`O7+(zO&=ZQ`O7+(zOOQ[7+(z7+(zO!&zQMhO7+(zO%[QlO7+(zO&=cQ`O7+(zOOQ[7+(|7+(|O9uQ!0LrO7+(|O$%dQ`O7+(|O9`Q`O7+(|O!CUQpO7+(|O&=nQ`O,5?kOOQO-E<}-E<}OOQO'#H^'#H^O&=yQ`O1G6iO9uQ!0LrO<<GqOOQ[<<Gq<<GqO@zQ`O<<GqO&>RQ`O7+,WO&>WQ`O7+,XO%[QlO7+,WO%[QlO7+,XOOQ[7+)V7+)VO&>]Q`O7+)VO&>bQlO7+)VO&>iQ`O7+)VOOQ[<<Ly<<LyOOQ[<<L{<<L{OOQ[-E=Q-E=QOOQ[1G3z1G3zO&>nQ`O,5>aOOQ[,5>c,5>cO&>sQ`O1G4QO9eQ`O7+&fO!)[QlO7+&fOOQO7+%_7+%_O&>xQ?MtO1G6ZO?YQ`O7+%_OOQ!0Lf<<Ia<<IaOOQ!0Lf<<Iz<<IzO?YQ`O<<IzOOQO<<Is<<IsO$AlQ!0MxO<<IsO%[QlO<<IsOOQO<<Id<<IdO!ByQ!0LrO<<IdO&?SQ!0LrO<<IsO&?_Q!0MxO<= ^O&?oQ`O<= ]OOQO7+*_7+*_O9eQ`O7+*_OOQ[ANAkANAkO&?wQ!fOANAkO!&zQMhOANAkO#(ZQ`OANAkO4UQ!fOANAkO&@OQ`OANAkO%[QlOANAkO&@WQ!0MzO7+'zO&BiQ!0MzO,5?aO&DtQ!0MzO,5?cO&GPQ!0MzO7+'|O&IbQ!fO1G4lO&IlQ?MtO7+&aO&KpQ?MvO,5=XO&MwQ?MvO,5=ZO&NXQ?MvO,5=XO&NiQ?MvO,5=ZO&NyQ?MvO,59uO'#PQ?MvO,5<kO'%SQ?MvO,5<mO''hQ?MvO,5<{O')^Q?MtO7+'kO')kQ?MtO7+'mO')xQ`O,5<]OOQO7+'`7+'`OOQ!0Lh7+*d7+*dO')}QMjO<<K}OOQO1G4w1G4wO'*UQ`O1G4wO'*aQ`O1G4wO'*oQ`O7++|O'*oQ`O7++|O!&zQMhO1G4yO'*wQ!dO1G4yO'+RQ`O7++}O'+ZQ`O7+(VO'+fQ!dO7+(VOOQ!0Lb7+(T7+(TOOQ!0Lb7+(U7+(UO!CUQpO7+(TOCwQ`O7+(TO'+pQ`O7+(VO!&zQMhO7+(VO$+YQ`O7+(UO'+uQ`O7+(VOCwQ`O7+(UO'+}QMjO<<NwO!,TQMhO<<NwOOQ!0Lh7+$}7+$}O',XQ!dO,5?fOOQO-E<x-E<xO',cQ!0MvO7+(YO!&zQMhO7+(YOOQ[AN=gAN=gO9kQ`O1G5WOOQO1G5W1G5WO',sQ`O1G5WO',xQ`O7+,VO',xQ`O7+,VO9uQ!0LrOANBWO@zQ`OANBWOOQ[ANBWANBWO'-QQ`OANBWOOQ[ANAsANAsOOQ[ANAtANAtO'-VQ`O,5?hOOQO-E<z-E<zO'-bQ?MtO1G6hOOQO,5?j,5?jOOQO-E<|-E<|OOQ[1G3a1G3aO'-lQ`O,5=POOQ[<<Lf<<LfO!&zQMhO<<LfO&=UQ`O<<LfO'-qQ`O<<LfO%[QlO<<LfOOQ[<<Lh<<LhO9uQ!0LrO<<LhO$%dQ`O<<LhO9`Q`O<<LhO'-yQpO1G5VO'.UQ`O7+,TOOQ[AN=]AN=]O9uQ!0LrOAN=]OOQ[<= r<= rOOQ[<= s<= sO'.^Q`O<= rO'.cQ`O<= sOOQ[<<Lq<<LqO'.hQ`O<<LqO'.mQlO<<LqOOQ[1G3{1G3{O?YQ`O7+)lO'.tQ`O<<JQO'/PQ?MtO<<JQOOQO<<Hy<<HyOOQ!0LfAN?fAN?fOOQOAN?_AN?_O$AlQ!0MxOAN?_OOQOAN?OAN?OO%[QlOAN?_OOQO<<My<<MyOOQ[G27VG27VO!&zQMhOG27VO#(ZQ`OG27VO'/ZQ!fOG27VO4UQ!fOG27VO'/bQ`OG27VO'/jQ?MtO<<JfO'/wQ?MvO1G2`O'1mQ?MvO,5?aO'3pQ?MvO,5?cO'5sQ?MvO1G2sO'7vQ?MvO1G2uO'9yQ?MtO<<KXO':WQ?MtO<<I{OOQO1G1w1G1wO!,TQMhOANAiOOQO7+*c7+*cO':eQ`O7+*cO':pQ`O<= hO':xQ!dO7+*eOOQ!0Lb<<Kq<<KqO$+YQ`O<<KqOCwQ`O<<KqO';SQ`O<<KqO!&zQMhO<<KqOOQ!0Lb<<Ko<<KoO!CUQpO<<KoO';_Q!dO<<KqOOQ!0Lb<<Kp<<KpO';iQ`O<<KqO!&zQMhO<<KqO$+YQ`O<<KpO';nQMjOANDcO';xQ!0MvO<<KtOOQO7+*r7+*rO9kQ`O7+*rO'<YQ`O<= qOOQ[G27rG27rO9uQ!0LrOG27rO@zQ`OG27rO!)[QlO1G5SO'<bQ`O7+,SO'<jQ`O1G2kO&=UQ`OANBQOOQ[ANBQANBQO!&zQMhOANBQO'<oQ`OANBQOOQ[ANBSANBSO9uQ!0LrOANBSO$%dQ`OANBSOOQO'#H_'#H_OOQO7+*q7+*qOOQ[G22wG22wOOQ[ANE^ANE^OOQ[ANE_ANE_OOQ[ANB]ANB]O'<wQ`OANB]OOQ[<<MW<<MWO!)[QlOAN?lOOQOG24yG24yO$AlQ!0MxOG24yO#(ZQ`OLD,qOOQ[LD,qLD,qO!&zQMhOLD,qO'<|Q!fOLD,qO'=TQ?MvO7+'zO'>yQ?MvO,5?aO'@|Q?MvO,5?cO'CPQ?MvO7+'|O'DuQMjOG27TOOQO<<M}<<M}OOQ!0LbANA]ANA]O$+YQ`OANA]OCwQ`OANA]O'EVQ!dOANA]OOQ!0LbANAZANAZO'E^Q`OANA]O!&zQMhOANA]O'EiQ!dOANA]OOQ!0LbANA[ANA[OOQO<<N^<<N^OOQ[LD-^LD-^O9uQ!0LrOLD-^O'EsQ?MtO7+*nOOQO'#Gf'#GfOOQ[G27lG27lO&=UQ`OG27lO!&zQMhOG27lOOQ[G27nG27nO9uQ!0LrOG27nOOQ[G27wG27wO'E}Q?MtOG25WOOQOLD*eLD*eOOQ[!$(!]!$(!]O#(ZQ`O!$(!]O!&zQMhO!$(!]O'FXQ!0MzOG27TOOQ!0LbG26wG26wO$+YQ`OG26wO'HjQ`OG26wOCwQ`OG26wO'HuQ!dOG26wO!&zQMhOG26wOOQ[!$(!x!$(!xOOQ[LD-WLD-WO&=UQ`OLD-WOOQ[LD-YLD-YOOQ[!)9Ew!)9EwO#(ZQ`O!)9EwOOQ!0LbLD,cLD,cO$+YQ`OLD,cOCwQ`OLD,cO'H|Q`OLD,cO'IXQ!dOLD,cOOQ[!$(!r!$(!rOOQ[!.K;c!.K;cO'I`Q?MvOG27TOOQ!0Lb!$( }!$( }O$+YQ`O!$( }OCwQ`O!$( }O'KUQ`O!$( }OOQ!0Lb!)9Ei!)9EiO$+YQ`O!)9EiOCwQ`O!)9EiOOQ!0Lb!.K;T!.K;TO$+YQ`O!.K;TOOQ!0Lb!4/0o!4/0oO!)[QlO'#DzO1PQ`O'#EXO'KaQ!fO'#JrO'KhQ!L^O'#DvO'KoQlO'#EOO'KvQ!fO'#CiO'N^Q!fO'#CiO!)[QlO'#EQO'NnQlO,5;ZO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO'#IpO(!qQ`O,5<iO!)[QlO,5;eO(!yQMhO,5;eO($dQMhO,5;eO!)[QlO,5;wO!&zQMhO'#GmO(!yQMhO'#GmO!&zQMhO'#GoO(!yQMhO'#GoO1SQ`O'#DZO1SQ`O'#DZO!&zQMhO'#GPO(!yQMhO'#GPO!&zQMhO'#GRO(!yQMhO'#GRO!&zQMhO'#GaO(!yQMhO'#GaO!)[QlO,5:jO($kQpO'#D_O($uQpO'#JvO!)[QlO,5@oO'NnQlO1G0uO(%PQ?MtO'#CiO!)[QlO1G2PO!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO(%ZQ!dO'#CrO!&zQMhO,5<tO(!yQMhO,5<tO'NnQlO1G2RO!)[QlO7+&zO!&zQMhO1G2`O(!yQMhO1G2`O!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO!&zQMhO1G2bO(!yQMhO1G2bO'NnQlO7+'mO'NnQlO7+&aO!&zQMhOANAiO(!yQMhOANAiO(%nQ`O'#EoO(%sQ`O'#EoO(%{Q`O'#F]O(&QQ`O'#EyO(&VQ`O'#KTO(&bQ`O'#KRO(&mQ`O,5;ZO(&rQMjO,5<eO(&yQ`O'#GYO('OQ`O'#GYO('TQ`O,5<eO(']Q`O,5<gO('eQ`O,5;ZO('mQ?MtO1G1`O('tQ`O,5<tO('yQ`O,5<tO((OQ`O,5<vO((TQ`O,5<vO((YQ`O1G2RO((_Q`O1G0uO((dQMjO<<K}O((kQMjO<<K}O((rQMhO'#F|O9`Q`O'#F{OAuQ`O'#EnO!)[QlO,5;tO!3oQ`O'#GYO!3oQ`O'#GYO!3oQ`O'#G[O!3oQ`O'#G[O!,TQMhO7+(cO!,TQMhO7+(cO%.zQ!dO1G2wO%.zQ!dO1G2wO!&zQMhO,5=]O!&zQMhO,5=]",stateData:"()x~O'|OS'}OSTOS(ORQ~OPYOQYOSfOY!VOaqOdzOeyOl!POpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!uwO!xxO!|]O$W|O$niO%h}O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO&W!WO&^!XO&`!YO&b!ZO&d![O&g!]O&m!^O&s!_O&u!`O&w!aO&y!bO&{!cO(TSO(VTO(YUO(aVO(o[O~OWtO~P`OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa!wOs!nO!S!oO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!xO#W!pO#X!pO#[!zO#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O(O!{O~OP]XR]X[]Xa]Xj]Xr]X!Q]X!S]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X'z]X(a]X(r]X(y]X(z]X~O!g%RX~P(qO_!}O(V#PO(W!}O(X#PO~O_#QO(X#PO(Y#PO(Z#QO~Ox#SO!U#TO(b#TO(c#VO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T<ZO(VTO(YUO(aVO(o[O~O![#ZO!]#WO!Y(hP!Y(vP~P+}O!^#cO~P`OPYOQYOSfOd!jOe!iOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(VTO(YUO(aVO(o[O~Op#mO![#iO!|]O#i#lO#j#iO(T<[O!k(sP~P.iO!l#oO(T#nO~O!x#sO!|]O%h#tO~O#k#uO~O!g#vO#k#uO~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!]$_O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa(fX'z(fX'w(fX!k(fX!Y(fX!_(fX%i(fX!g(fX~P1qO#S$dO#`$eO$Q$eOP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX!_(gX%i(gX~Oa(gX'z(gX'w(gX!Y(gX!k(gXv(gX!g(gX~P4UO#`$eO~O$]$hO$_$gO$f$mO~OSfO!_$nO$i$oO$k$qO~Oh%VOj%dOk%dOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T$sO(VTO(YUO(a$uO(y$}O(z%POg(^P~Ol%[O~P7eO!l%eO~O!S%hO!_%iO(T%gO~O!g%mO~Oa%nO'z%nO~O!Q%rO~P%[O(U!lO~P%[O%n%vO~P%[Oh%VO!l%eO(T%gO(U!lO~Oe%}O!l%eO(T%gO~Oj$RO~O!_&PO(T%gO(U!lO(VTO(YUO`)WP~O!Q&SO!l&RO%j&VO&T&WO~P;SO!x#sO~O%s&YO!S)SX!_)SX(T)SX~O(T&ZO~Ol!PO!u&`O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO~Od&eOe&dO!x&bO%h&cO%{&aO~P<bOd&hOeyOl!PO!_&gO!u&`O!xxO!|]O%h}O%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO~Ob&kO#`&nO%j&iO(U!lO~P=gO!l&oO!u&sO~O!l#oO~O!_XO~Oa%nO'x&{O'z%nO~Oa%nO'x'OO'z%nO~Oa%nO'x'QO'z%nO~O'w]X!Y]Xv]X!k]X&[]X!_]X%i]X!g]X~P(qO!b'_O!c'WO!d'WO(U!lO(VTO(YUO~Os'UO!S'TO!['XO(e'SO!^(iP!^(xP~P@nOn'bO!_'`O(T%gO~Oe'gO!l%eO(T%gO~O!Q&SO!l&RO~Os!nO!S!oO!|<VO#T!pO#U!pO#W!pO#X!pO(U!lO(VTO(YUO(e!mO(o!sO~O!b'mO!c'lO!d'lO#V!pO#['nO#]'nO~PBYOa%nOh%VO!g#vO!l%eO'z%nO(r'pO~O!p'tO#`'rO~PChOs!nO!S!oO(VTO(YUO(e!mO(o!sO~O!_XOs(mX!S(mX!b(mX!c(mX!d(mX!|(mX#T(mX#U(mX#V(mX#W(mX#X(mX#[(mX#](mX(U(mX(V(mX(Y(mX(e(mX(o(mX~O!c'lO!d'lO(U!lO~PDWO(P'xO(Q'xO(R'zO~O_!}O(V'|O(W!}O(X'|O~O_#QO(X'|O(Y'|O(Z#QO~Ov(OO~P%[Ox#SO!U#TO(b#TO(c(RO~O![(TO!Y'WX!Y'^X!]'WX!]'^X~P+}O!](VO!Y(hX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!](VO!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~O!Y(hX~PHRO!Y([O~O!Y(uX!](uX!g(uX!k(uX(r(uX~O#`(uX#k#dX!^(uX~PJUO#`(]O!Y(wX!](wX~O!](^O!Y(vX~O!Y(aO~O#`$eO~PJUO!^(bO~P`OR#zO!Q#yO!S#{O!l#xO(aVOP!na[!naj!nar!na!]!na!p!na#R!na#n!na#o!na#p!na#q!na#r!na#s!na#t!na#u!na#v!na#x!na#z!na#{!na(r!na(y!na(z!na~Oa!na'z!na'w!na!Y!na!k!nav!na!_!na%i!na!g!na~PKlO!k(cO~O!g#vO#`(dO(r'pO!](tXa(tX'z(tX~O!k(tX~PNXO!S%hO!_%iO!|]O#i(iO#j(hO(T%gO~O!](jO!k(sX~O!k(lO~O!S%hO!_%iO#j(hO(T%gO~OP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~O!g#vO!k(gX~P! uOR(nO!Q(mO!l#xO#S$dO!|!{a!S!{a~O!x!{a%h!{a!_!{a#i!{a#j!{a(T!{a~P!#vO!x(rO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~O#k(xO~O![(zO!k(kP~P%[O(e(|O(o[O~O!S)OO!l#xO(e(|O(o[O~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]$_Oa$qa'z$qa'w$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)dO~P!&zOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Og(pP~P!,TO!Q)iO!g)hO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)hO!_({X$Z({X$]({X$_({X$f({X~O!Q)iO~P!.^O!Q)iO!_({X$Z({X$]({X$_({X$f({X~O!_)kO$Z)oO$])jO$_)jO$f)pO~O![)sO~P!)[O$]$hO$_$gO$f)wO~On$zX!Q$zX#S$zX'y$zX(y$zX(z$zX~OgmXg$zXnmX!]mX#`mX~P!0SOx)yO(b)zO(c)|O~On*VO!Q*OO'y*PO(y$}O(z%PO~Og)}O~P!1WOg*WO~Oh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S*YO!_*ZO!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op*`O![*^O(T*XO!k)OP~P!1uO#k*aO~O!l*bO~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(T*dO(VTO(YUO(a$uO(y$}O(z%PO~O![*gO!Y)PP~P!3tOr*sOs!nO!S*iO!b*qO!c*kO!d*kO!l*bO#[*rO%`*mO(U!lO(VTO(YUO(e!mO~O!^*pO~P!5iO#S$dOn(`X!Q(`X'y(`X(y(`X(z(`X!](`X#`(`X~Og(`X$O(`X~P!6kOn*xO#`*wOg(_X!](_X~O!]*yOg(^X~Oj%dOk%dOl%dO(T&ZOg(^P~Os*|O~Og)}O(T&ZO~O!l+SO~O(T(vO~Op+WO!S%hO![#iO!_%iO!|]O#i#lO#j#iO(T%gO!k(sP~O!g#vO#k+XO~O!S%hO![+ZO!](^O!_%iO(T%gO!Y(vP~Os'[O!S+]O![+[O(VTO(YUO(e(|O~O!^(xP~P!9|O!]+^Oa)TX'z)TX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa!ja!]!ja'z!ja'w!ja!Y!ja!k!jav!ja!_!ja%i!ja!g!ja~P!:tOR#zO!Q#yO!S#{O!l#xO(aVOP!ra[!raj!rar!ra!]!ra!p!ra#R!ra#n!ra#o!ra#p!ra#q!ra#r!ra#s!ra#t!ra#u!ra#v!ra#x!ra#z!ra#{!ra(r!ra(y!ra(z!ra~Oa!ra'z!ra'w!ra!Y!ra!k!rav!ra!_!ra%i!ra!g!ra~P!=[OR#zO!Q#yO!S#{O!l#xO(aVOP!ta[!taj!tar!ta!]!ta!p!ta#R!ta#n!ta#o!ta#p!ta#q!ta#r!ta#s!ta#t!ta#u!ta#v!ta#x!ta#z!ta#{!ta(r!ta(y!ta(z!ta~Oa!ta'z!ta'w!ta!Y!ta!k!tav!ta!_!ta%i!ta!g!ta~P!?rOh%VOn+gO!_'`O%i+fO~O!g+iOa(]X!_(]X'z(]X!](]X~Oa%nO!_XO'z%nO~Oh%VO!l%eO~Oh%VO!l%eO(T%gO~O!g#vO#k(xO~Ob+tO%j+uO(T+qO(VTO(YUO!^)XP~O!]+vO`)WX~O[+zO~O`+{O~O!_&PO(T%gO(U!lO`)WP~O%j,OO~P;SOh%VO#`,SO~Oh%VOn,VO!_$|O~O!_,XO~O!Q,ZO!_XO~O%n%vO~O!x,`O~Oe,eO~Ob,fO(T#nO(VTO(YUO!^)VP~Oe%}O~O%j!QO(T&ZO~P=gO[,kO`,jO~OPYOQYOSfOdzOeyOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!iuO!lZO!oYO!pYO!qYO!svO!xxO!|]O$niO%h}O(VTO(YUO(aVO(o[O~O!_!eO!u!gO$W!kO(T!dO~P!FyO`,jOa%nO'z%nO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa,pOl!OO!uwO%l!OO%m!OO%n!OO~P!IcO!l&oO~O&^,vO~O!_,xO~O&o,zO&q,{OP&laQ&laS&laY&laa&lad&lae&lal&lap&lar&las&lat&laz&la|&la!O&la!S&la!W&la!X&la!_&la!i&la!l&la!o&la!p&la!q&la!s&la!u&la!x&la!|&la$W&la$n&la%h&la%j&la%l&la%m&la%n&la%q&la%s&la%v&la%w&la%y&la&W&la&^&la&`&la&b&la&d&la&g&la&m&la&s&la&u&la&w&la&y&la&{&la'w&la(T&la(V&la(Y&la(a&la(o&la!^&la&e&lab&la&j&la~O(T-QO~Oh!eX!]!RX!^!RX!g!RX!g!eX!l!eX#`!RX~O!]!eX!^!eX~P#!iO!g-VO#`-UOh(jX!]#hX!^#hX!g(jX!l(jX~O!](jX!^(jX~P##[Oh%VO!g-XO!l%eO!]!aX!^!aX~Os!nO!S!oO(VTO(YUO(e!mO~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(VTO(YUO(aVO(o[O~O(T=QO~P#$qO!]-]O!^(iX~O!^-_O~O!g-VO#`-UO!]#hX!^#hX~O!]-`O!^(xX~O!^-bO~O!c-cO!d-cO(U!lO~P#$`O!^-fO~P'_On-iO!_'`O~O!Y-nO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(U!{a(V!{a(Y!{a(e!{a(o!{a~P!#vO!p-sO#`-qO~PChO!c-uO!d-uO(U!lO~PDWOa%nO#`-qO'z%nO~Oa%nO!g#vO#`-qO'z%nO~Oa%nO!g#vO!p-sO#`-qO'z%nO(r'pO~O(P'xO(Q'xO(R-zO~Ov-{O~O!Y'Wa!]'Wa~P!:tO![.PO!Y'WX!]'WX~P%[O!](VO!Y(ha~O!Y(ha~PHRO!](^O!Y(va~O!S%hO![.TO!_%iO(T%gO!Y'^X!]'^X~O#`.VO!](ta!k(taa(ta'z(ta~O!g#vO~P#,wO!](jO!k(sa~O!S%hO!_%iO#j.ZO(T%gO~Op.`O!S%hO![.]O!_%iO!|]O#i._O#j.]O(T%gO!]'aX!k'aX~OR.dO!l#xO~Oh%VOn.gO!_'`O%i.fO~Oa#ci!]#ci'z#ci'w#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:tOn>]O!Q*OO'y*PO(y$}O(z%PO~O#k#_aa#_a#`#_a'z#_a!]#_a!k#_a!_#_a!Y#_a~P#/sO#k(`XP(`XR(`X[(`Xa(`Xj(`Xr(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X'z(`X(a(`X(r(`X!k(`X!Y(`X'w(`Xv(`X!_(`X%i(`X!g(`X~P!6kO!].tO!k(kX~P!:tO!k.wO~O!Y.yO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#3cO#n$OO~P#3cOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#6QO#r$QO~P#6QOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(aVOa#mi!]#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(aVO(z#}Oa#mi!]#mi#z#mi#{#mi'z#mi(r#mi(y#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#;VO#x#mi~P#;VO#v$SO~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(aVO(y#|O(z#}Oa#mi!]#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#={O#z$WO~P#={OP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X!]]X!^]X~O$O]X~P#@jOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO#z<gO#{<hO(aVO(r$YO(y#|O(z#}O~O$O.{O~P#BwO#S$dO#`<nO$Q<nO$O(gX!^(gX~P! uOa'da!]'da'z'da'w'da!k'da!Y'dav'da!_'da%i'da!g'da~P!:tO[#mia#mij#mir#mi!]#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO(y#mi(z#mi~P#EyOn>]O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P#EyO!]/POg(pX~P!1WOg/RO~Oa$Pi!]$Pi'z$Pi'w$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:tO$]/SO$_/SO~O$]/TO$_/TO~O!g)hO#`/UO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/VO~O!_)kO$Z/XO$])jO$_)jO$f/YO~O!]<iO!^(fX~P#BwO!^/ZO~O!g)hO$f({X~O$f/]O~Ov/^O~P!&zOx)yO(b)zO(c/aO~O!S/dO~O(y$}On%aa!Q%aa'y%aa(z%aa!]%aa#`%aa~Og%aa$O%aa~P#L{O(z%POn%ca!Q%ca'y%ca(y%ca!]%ca#`%ca~Og%ca$O%ca~P#MnO!]fX!gfX!kfX!k$zX(rfX~P!0SOp%WO![/mO!](^O(T/lO!Y(vP!Y)PP~P!1uOr*sO!b*qO!c*kO!d*kO!l*bO#[*rO%`*mO(U!lO(VTO(YUO~Os<}O!S/nO![+[O!^*pO(e<|O!^(xP~P$ [O!k/oO~P#/sO!]/pO!g#vO(r'pO!k)OX~O!k/uO~OnoX!QoX'yoX(yoX(zoX~O!g#vO!koX~P$#OOp/wO!S%hO![*^O!_%iO(T%gO!k)OP~O#k/xO~O!Y$zX!]$zX!g%RX~P!0SO!]/yO!Y)PX~P#/sO!g/{O~O!Y/}O~OpkO(T0OO~P.iOh%VOr0TO!g#vO!l%eO(r'pO~O!g+iO~Oa%nO!]0XO'z%nO~O!^0ZO~P!5iO!c0[O!d0[O(U!lO~P#$`Os!nO!S0]O(VTO(YUO(e!mO~O#[0_O~Og%aa!]%aa#`%aa$O%aa~P!1WOg%ca!]%ca#`%ca$O%ca~P!1WOj%dOk%dOl%dO(T&ZOg'mX!]'mX~O!]*yOg(^a~Og0hO~On0jO#`0iOg(_a!](_a~OR0kO!Q0kO!S0lO#S$dOn}a'y}a(y}a(z}a!]}a#`}a~Og}a$O}a~P$(cO!Q*OO'y*POn$sa(y$sa(z$sa!]$sa#`$sa~Og$sa$O$sa~P$)_O!Q*OO'y*POn$ua(y$ua(z$ua!]$ua#`$ua~Og$ua$O$ua~P$*QO#k0oO~Og%Ta!]%Ta#`%Ta$O%Ta~P!1WO!g#vO~O#k0rO~O!]+^Oa)Ta'z)Ta~OR#zO!Q#yO!S#{O!l#xO(aVOP!ri[!rij!rir!ri!]!ri!p!ri#R!ri#n!ri#o!ri#p!ri#q!ri#r!ri#s!ri#t!ri#u!ri#v!ri#x!ri#z!ri#{!ri(r!ri(y!ri(z!ri~Oa!ri'z!ri'w!ri!Y!ri!k!riv!ri!_!ri%i!ri!g!ri~P$+oOh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op0{O%]0|O(T0zO~P$.VO!g+iOa(]a!_(]a'z(]a!](]a~O#k1SO~O[]X!]fX!^fX~O!]1TO!^)XX~O!^1VO~O[1WO~Ob1YO(T+qO(VTO(YUO~O!_&PO(T%gO`'uX!]'uX~O!]+vO`)Wa~O!k1]O~P!:tO[1`O~O`1aO~O#`1fO~On1iO!_$|O~O(e(|O!^)UP~Oh%VOn1rO!_1oO%i1qO~O[1|O!]1zO!^)VX~O!^1}O~O`2POa%nO'z%nO~O(T#nO(VTO(YUO~O#S$dO#`$eO$Q$eOP(gXR(gX[(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~Oj2SO&[2TOa(gX~P$3pOj2SO#`$eO&[2TO~Oa2VO~P%[Oa2XO~O&e2[OP&ciQ&ciS&ciY&cia&cid&cie&cil&cip&cir&cis&cit&ciz&ci|&ci!O&ci!S&ci!W&ci!X&ci!_&ci!i&ci!l&ci!o&ci!p&ci!q&ci!s&ci!u&ci!x&ci!|&ci$W&ci$n&ci%h&ci%j&ci%l&ci%m&ci%n&ci%q&ci%s&ci%v&ci%w&ci%y&ci&W&ci&^&ci&`&ci&b&ci&d&ci&g&ci&m&ci&s&ci&u&ci&w&ci&y&ci&{&ci'w&ci(T&ci(V&ci(Y&ci(a&ci(o&ci!^&cib&ci&j&ci~Ob2bO!^2`O&j2aO~P`O!_XO!l2dO~O&q,{OP&liQ&liS&liY&lia&lid&lie&lil&lip&lir&lis&lit&liz&li|&li!O&li!S&li!W&li!X&li!_&li!i&li!l&li!o&li!p&li!q&li!s&li!u&li!x&li!|&li$W&li$n&li%h&li%j&li%l&li%m&li%n&li%q&li%s&li%v&li%w&li%y&li&W&li&^&li&`&li&b&li&d&li&g&li&m&li&s&li&u&li&w&li&y&li&{&li'w&li(T&li(V&li(Y&li(a&li(o&li!^&li&e&lib&li&j&li~O!Y2jO~O!]!aa!^!aa~P#BwOs!nO!S!oO![2pO(e!mO!]'XX!^'XX~P@nO!]-]O!^(ia~O!]'_X!^'_X~P!9|O!]-`O!^(xa~O!^2wO~P'_Oa%nO#`3QO'z%nO~Oa%nO!g#vO#`3QO'z%nO~Oa%nO!g#vO!p3UO#`3QO'z%nO(r'pO~Oa%nO'z%nO~P!:tO!]$_Ov$qa~O!Y'Wi!]'Wi~P!:tO!](VO!Y(hi~O!](^O!Y(vi~O!Y(wi!](wi~P!:tO!](ti!k(tia(ti'z(ti~P!:tO#`3WO!](ti!k(tia(ti'z(ti~O!](jO!k(si~O!S%hO!_%iO!|]O#i3]O#j3[O(T%gO~O!S%hO!_%iO#j3[O(T%gO~On3dO!_'`O%i3cO~Oh%VOn3dO!_'`O%i3cO~O#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aav%aa!_%aa%i%aa!g%aa~P#L{O#k%caP%caR%ca[%caa%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%cav%ca!_%ca%i%ca!g%ca~P#MnO#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!]%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aa#`%aav%aa!_%aa%i%aa!g%aa~P#/sO#k%caP%caR%ca[%caa%caj%car%ca!S%ca!]%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%ca#`%cav%ca!_%ca%i%ca!g%ca~P#/sO#k}aP}a[}aa}aj}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a'z}a(a}a(r}a!k}a!Y}a'w}av}a!_}a%i}a!g}a~P$(cO#k$saP$saR$sa[$saa$saj$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa'z$sa(a$sa(r$sa!k$sa!Y$sa'w$sav$sa!_$sa%i$sa!g$sa~P$)_O#k$uaP$uaR$ua[$uaa$uaj$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua'z$ua(a$ua(r$ua!k$ua!Y$ua'w$uav$ua!_$ua%i$ua!g$ua~P$*QO#k%TaP%TaR%Ta[%Taa%Taj%Tar%Ta!S%Ta!]%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta'z%Ta(a%Ta(r%Ta!k%Ta!Y%Ta'w%Ta#`%Tav%Ta!_%Ta%i%Ta!g%Ta~P#/sOa#cq!]#cq'z#cq'w#cq!Y#cq!k#cqv#cq!_#cq%i#cq!g#cq~P!:tO![3lO!]'YX!k'YX~P%[O!].tO!k(ka~O!].tO!k(ka~P!:tO!Y3oO~O$O!na!^!na~PKlO$O!ja!]!ja!^!ja~P#BwO$O!ra!^!ra~P!=[O$O!ta!^!ta~P!?rOg']X!]']X~P!,TO!]/POg(pa~OSfO!_4TO$d4UO~O!^4YO~Ov4ZO~P#/sOa$mq!]$mq'z$mq'w$mq!Y$mq!k$mqv$mq!_$mq%i$mq!g$mq~P!:tO!Y4]O~P!&zO!S4^O~O!Q*OO'y*PO(z%POn'ia(y'ia!]'ia#`'ia~Og'ia$O'ia~P%-fO!Q*OO'y*POn'ka(y'ka(z'ka!]'ka#`'ka~Og'ka$O'ka~P%.XO(r$YO~P#/sO!YfX!Y$zX!]fX!]$zX!g%RX#`fX~P!0SOp%WO(T=WO~P!1uOp4bO!S%hO![4aO!_%iO(T%gO!]'eX!k'eX~O!]/pO!k)Oa~O!]/pO!g#vO!k)Oa~O!]/pO!g#vO(r'pO!k)Oa~Og$|i!]$|i#`$|i$O$|i~P!1WO![4jO!Y'gX!]'gX~P!3tO!]/yO!Y)Pa~O!]/yO!Y)Pa~P#/sOP]XR]X[]Xj]Xr]X!Q]X!S]X!Y]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~Oj%YX!g%YX~P%2OOj4oO!g#vO~Oh%VO!g#vO!l%eO~Oh%VOr4tO!l%eO(r'pO~Or4yO!g#vO(r'pO~Os!nO!S4zO(VTO(YUO(e!mO~O(y$}On%ai!Q%ai'y%ai(z%ai!]%ai#`%ai~Og%ai$O%ai~P%5oO(z%POn%ci!Q%ci'y%ci(y%ci!]%ci#`%ci~Og%ci$O%ci~P%6bOg(_i!](_i~P!1WO#`5QOg(_i!](_i~P!1WO!k5VO~Oa$oq!]$oq'z$oq'w$oq!Y$oq!k$oqv$oq!_$oq%i$oq!g$oq~P!:tO!Y5ZO~O!]5[O!_)QX~P#/sOa$zX!_$zX%^]X'z$zX!]$zX~P!0SO%^5_OaoX!_oX'zoX!]oX~P$#OOp5`O(T#nO~O%^5_O~Ob5fO%j5gO(T+qO(VTO(YUO!]'tX!^'tX~O!]1TO!^)Xa~O[5kO~O`5lO~O[5pO~Oa%nO'z%nO~P#/sO!]5uO#`5wO!^)UX~O!^5xO~Or6OOs!nO!S*iO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!pO#W!pO#X!pO#[5}O#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O!^5|O~P%;eOn6TO!_1oO%i6SO~Oh%VOn6TO!_1oO%i6SO~Ob6[O(T#nO(VTO(YUO!]'sX!^'sX~O!]1zO!^)Va~O(VTO(YUO(e6^O~O`6bO~Oj6eO&[6fO~PNXO!k6gO~P%[Oa6iO~Oa6iO~P%[Ob2bO!^6nO&j2aO~P`O!g6pO~O!g6rOh(ji!](ji!^(ji!g(ji!l(jir(ji(r(ji~O!]#hi!^#hi~P#BwO#`6sO!]#hi!^#hi~O!]!ai!^!ai~P#BwOa%nO#`6|O'z%nO~Oa%nO!g#vO#`6|O'z%nO~O!](tq!k(tqa(tq'z(tq~P!:tO!](jO!k(sq~O!S%hO!_%iO#j7TO(T%gO~O!_'`O%i7WO~On7[O!_'`O%i7WO~O#k'iaP'iaR'ia['iaa'iaj'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia'z'ia(a'ia(r'ia!k'ia!Y'ia'w'iav'ia!_'ia%i'ia!g'ia~P%-fO#k'kaP'kaR'ka['kaa'kaj'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka'z'ka(a'ka(r'ka!k'ka!Y'ka'w'kav'ka!_'ka%i'ka!g'ka~P%.XO#k$|iP$|iR$|i[$|ia$|ij$|ir$|i!S$|i!]$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i'z$|i(a$|i(r$|i!k$|i!Y$|i'w$|i#`$|iv$|i!_$|i%i$|i!g$|i~P#/sO#k%aiP%aiR%ai[%aia%aij%air%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai'z%ai(a%ai(r%ai!k%ai!Y%ai'w%aiv%ai!_%ai%i%ai!g%ai~P%5oO#k%ciP%ciR%ci[%cia%cij%cir%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci'z%ci(a%ci(r%ci!k%ci!Y%ci'w%civ%ci!_%ci%i%ci!g%ci~P%6bO!]'Ya!k'Ya~P!:tO!].tO!k(ki~O$O#ci!]#ci!^#ci~P#BwOP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mij#mir#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#n#mi~P%NdO#n<_O~P%NdOP$[OR#zOr<kO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO[#mij#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#r#mi~P&!lO#r<aO~P&!lOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO(aVO#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#v#mi~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO(aVO(z#}O#z#mi#{#mi$O#mi(r#mi(y#mi!]#mi!^#mi~O#x<eO~P&&uO#x#mi~P&&uO#v<cO~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO(aVO(y#|O(z#}O#{#mi$O#mi(r#mi!]#mi!^#mi~O#z#mi~P&)UO#z<gO~P&)UOa#|y!]#|y'z#|y'w#|y!Y#|y!k#|yv#|y!_#|y%i#|y!g#|y~P!:tO[#mij#mir#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi!]#mi!^#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO(y#mi(z#mi~P&,QOn>^O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P&,QO#S$dOP(`XR(`X[(`Xj(`Xn(`Xr(`X!Q(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X$O(`X'y(`X(a(`X(r(`X(y(`X(z(`X!](`X!^(`X~O$O$Pi!]$Pi!^$Pi~P#BwO$O!ri!^!ri~P$+oOg']a!]']a~P!1WO!^7nO~O!]'da!^'da~P#BwO!Y7oO~P#/sO!g#vO(r'pO!]'ea!k'ea~O!]/pO!k)Oi~O!]/pO!g#vO!k)Oi~Og$|q!]$|q#`$|q$O$|q~P!1WO!Y'ga!]'ga~P#/sO!g7vO~O!]/yO!Y)Pi~P#/sO!]/yO!Y)Pi~O!Y7yO~Oh%VOr8OO!l%eO(r'pO~Oj8QO!g#vO~Or8TO!g#vO(r'pO~O!Q*OO'y*PO(z%POn'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P&5RO!Q*OO'y*POn'la(y'la(z'la!]'la#`'la~Og'la$O'la~P&5tOg(_q!](_q~P!1WO#`8VOg(_q!](_q~P!1WO!Y8WO~Og%Oq!]%Oq#`%Oq$O%Oq~P!1WOa$oy!]$oy'z$oy'w$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:tO!g6rO~O!]5[O!_)Qa~O!_'`OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(a$Ta(r$Ta(y$Ta(z$Ta~O%i7WO~P&8fO%^8[Oa%[i!_%[i'z%[i!]%[i~Oa#cy!]#cy'z#cy'w#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:tO[8^O~Ob8`O(T+qO(VTO(YUO~O!]1TO!^)Xi~O`8dO~O(e(|O!]'pX!^'pX~O!]5uO!^)Ua~O!^8nO~P%;eO(o!sO~P$&YO#[8oO~O!_1oO~O!_1oO%i8qO~On8tO!_1oO%i8qO~O[8yO!]'sa!^'sa~O!]1zO!^)Vi~O!k8}O~O!k9OO~O!k9RO~O!k9RO~P%[Oa9TO~O!g9UO~O!k9VO~O!](wi!^(wi~P#BwOa%nO#`9_O'z%nO~O!](ty!k(tya(ty'z(ty~P!:tO!](jO!k(sy~O%i9bO~P&8fO!_'`O%i9bO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'z$|q(a$|q(r$|q!k$|q!Y$|q'w$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/sO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'z'ja(a'ja(r'ja!k'ja!Y'ja'w'jav'ja!_'ja%i'ja!g'ja~P&5RO#k'laP'laR'la['laa'laj'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la'z'la(a'la(r'la!k'la!Y'la'w'lav'la!_'la%i'la!g'la~P&5tO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'z%Oq(a%Oq(r%Oq!k%Oq!Y%Oq'w%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/sO!]'Yi!k'Yi~P!:tO$O#cq!]#cq!^#cq~P#BwO(y$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(a%aa(r%aa!]%aa!^%aa~On%aa!Q%aa'y%aa(z%aa~P&IyO(z%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(a%ca(r%ca!]%ca!^%ca~On%ca!Q%ca'y%ca(y%ca~P&LQOn>^O!Q*OO'y*PO(z%PO~P&IyOn>^O!Q*OO'y*PO(y$}O~P&LQOR0kO!Q0kO!S0lO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'y}a(a}a(r}a(y}a(z}a!]}a!^}a~O!Q*OO'y*POP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(a$sa(r$sa(y$sa(z$sa!]$sa!^$sa~O!Q*OO'y*POP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(a$ua(r$ua(y$ua(z$ua!]$ua!^$ua~On>^O!Q*OO'y*PO(y$}O(z%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(a%Ta(r%Ta!]%Ta!^%Ta~P''VO$O$mq!]$mq!^$mq~P#BwO$O$oq!]$oq!^$oq~P#BwO!^9oO~O$O9pO~P!1WO!g#vO!]'ei!k'ei~O!g#vO(r'pO!]'ei!k'ei~O!]/pO!k)Oq~O!Y'gi!]'gi~P#/sO!]/yO!Y)Pq~Or9wO!g#vO(r'pO~O[9yO!Y9xO~P#/sO!Y9xO~Oj:PO!g#vO~Og(_y!](_y~P!1WO!]'na!_'na~P#/sOa%[q!_%[q'z%[q!]%[q~P#/sO[:UO~O!]1TO!^)Xq~O`:YO~O#`:ZO!]'pa!^'pa~O!]5uO!^)Ui~P#BwO!S:]O~O!_1oO%i:`O~O(VTO(YUO(e:eO~O!]1zO!^)Vq~O!k:hO~O!k:iO~O!k:jO~O!k:jO~P%[O#`:mO!]#hy!^#hy~O!]#hy!^#hy~P#BwO%i:rO~P&8fO!_'`O%i:rO~O$O#|y!]#|y!^#|y~P#BwOP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(a$|i(r$|i!]$|i!^$|i~P''VO!Q*OO'y*PO(z%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(a'ia(r'ia(y'ia!]'ia!^'ia~O!Q*OO'y*POP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(a'ka(r'ka(y'ka(z'ka!]'ka!^'ka~O(y$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'y%ai(a%ai(r%ai(z%ai!]%ai!^%ai~O(z%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'y%ci(a%ci(r%ci(y%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#BwO$O#cy!]#cy!^#cy~P#BwO!g#vO!]'eq!k'eq~O!]/pO!k)Oy~O!Y'gq!]'gq~P#/sOr:|O!g#vO(r'pO~O[;QO!Y;PO~P#/sO!Y;PO~Og(_!R!](_!R~P!1WOa%[y!_%[y'z%[y!]%[y~P#/sO!]1TO!^)Xy~O!]5uO!^)Uq~O(T;XO~O!_1oO%i;[O~O!k;_O~O%i;dO~P&8fOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(a$|q(r$|q!]$|q!^$|q~P''VO!Q*OO'y*PO(z%POP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(a'ja(r'ja(y'ja!]'ja!^'ja~O!Q*OO'y*POP'laR'la['laj'lan'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la$O'la(a'la(r'la(y'la(z'la!]'la!^'la~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(a%Oq(r%Oq!]%Oq!^%Oq~P''VOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!1WO!Y;hO~P#/sOr;iO!g#vO(r'pO~O[;kO!Y;hO~P#/sO!]'pq!^'pq~P#BwO!]#h!Z!^#h!Z~P#BwO#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'z%e!Z(a%e!Z(r%e!Z!k%e!Z!Y%e!Z'w%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/sOr;tO!g#vO(r'pO~O!Y;uO~P#/sOr;|O!g#vO(r'pO~O!Y;}O~P#/sOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(a%e!Z(r%e!Z!]%e!Z!^%e!Z~P''VOr<QO!g#vO(r'pO~Ov(fX~P1qO!Q%rO~P!)[O(U!lO~P!)[O!YfX!]fX#`fX~P%2OOP]XR]X[]Xj]Xr]X!Q]X!S]X!]]X!]fX!l]X!p]X#R]X#S]X#`]X#`fX#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~O!gfX!k]X!kfX(rfX~P'LTOP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_XO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]<iO!^$qa~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<tO!S${O!_$|O!i>WO!l$xO#j<zO$W%`O$t<vO$v<xO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Ol)dO~P(!yOr!eX(r!eX~P#!iOr(jX(r(jX~P##[O!^]X!^fX~P'LTO!YfX!Y$zX!]fX!]$zX#`fX~P!0SO#k<^O~O!g#vO#k<^O~O#`<nO~Oj<bO~O#`=OO!](wX!^(wX~O#`<nO!](uX!^(uX~O#k=PO~Og=RO~P!1WO#k=XO~O#k=YO~Og=RO(T&ZO~O!g#vO#k=ZO~O!g#vO#k=PO~O$O=[O~P#BwO#k=]O~O#k=^O~O#k=cO~O#k=dO~O#k=eO~O#k=fO~O$O=gO~P!1WO$O=hO~P!1WOl=sO~P7eOk#S#T#U#W#X#[#i#j#u$n$t$v$y%]%^%h%i%j%q%s%v%w%y%{~(OT#o!X'|(U#ps#n#qr!Q'}$]'}(T$_(e~",goto:"$9Y)]PPPPPP)^PP)aP)rP+W/]PPPP6mPP7TPP=QPPP@tPA^PA^PPPA^PCfPA^PA^PA^PCjPCoPD^PIWPPPI[PPPPI[L_PPPLeMVPI[PI[PP! eI[PPPI[PI[P!#lI[P!'S!(X!(bP!)U!)Y!)U!,gPPPPPPP!-W!(XPP!-h!/YP!2iI[I[!2n!5z!:h!:h!>gPPP!>oI[PPPPPPPPP!BOP!C]PPI[!DnPI[PI[I[I[I[I[PI[!FQP!I[P!LbP!Lf!Lp!Lt!LtP!IXP!Lx!LxP#!OP#!SI[PI[#!Y#%_CjA^PA^PA^A^P#&lA^A^#)OA^#+vA^#.SA^A^#.r#1W#1W#1]#1f#1W#1qPP#1WPA^#2ZA^#6YA^A^6mPPP#:_PPP#:x#:xP#:xP#;`#:xPP#;fP#;]P#;]#;y#;]#<e#<k#<n)aP#<q)aP#<z#<z#<zP)aP)aP)aP)aPP)aP#=Q#=TP#=T)aP#=XP#=[P)aP)aP)aP)aP)aP)a)aPP#=b#=h#=s#=y#>P#>V#>]#>k#>q#>{#?R#?]#?c#?s#?y#@k#@}#AT#AZ#Ai#BO#Cs#DR#DY#Et#FS#Gt#HS#HY#H`#Hf#Hp#Hv#H|#IW#Ij#IpPPPPPPPPPPP#IvPPPPPPP#Jk#Mx$ b$ i$ qPPP$']P$'f$*_$0x$0{$1O$1}$2Q$2X$2aP$2g$2jP$3W$3[$4S$5b$5g$5}PP$6S$6Y$6^$6a$6e$6i$7e$7|$8e$8i$8l$8o$8y$8|$9Q$9UR!|RoqOXst!Z#d%m&r&t&u&w,s,x2[2_Y!vQ'`-e1o5{Q%tvQ%|yQ&T|Q&j!VS'W!e-]Q'f!iS'l!r!yU*k$|*Z*oQ+o%}S+|&V&WQ,d&dQ-c'_Q-m'gQ-u'mQ0[*qQ1b,OQ1y,eR<{<Y%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_S#q]<V!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU+P%]<s<tQ+t&PQ,f&gQ,m&oQ0x+gQ0}+iQ1Y+uQ2R,kQ3`.gQ5`0|Q5f1TQ6[1zQ7Y3dQ8`5gR9e7['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S!S!nQ!r!v!y!z$|'W'_'`'l'm'n*k*o*q*r-]-c-e-u0[0_1o5{5}%[$ti#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q&X|Q'U!eS'[%i-`Q+t&PQ,P&WQ,f&gQ0n+SQ1Y+uQ1_+{Q2Q,jQ2R,kQ5f1TQ5o1aQ6[1zQ6_1|Q6`2PQ8`5gQ8c5lQ8|6bQ:X8dQ:f8yQ;V:YR<}*ZrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R,h&k&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'b'r(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>R>S[#]WZ#W#Z'X(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ%wxQ%{yW&Q|&V&W,OQ&_!TQ'c!hQ'e!iQ(q#sS+n%|%}Q+r&PQ,_&bQ,c&dS-l'f'gQ.i(rQ1R+oQ1X+uQ1Z+vQ1^+zQ1t,`S1x,d,eQ2|-mQ5e1TQ5i1WQ5n1`Q6Z1yQ8_5gQ8b5kQ8f5pQ:T8^R;T:U!U$zi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y!^%yy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{Q+h%wQ,T&[Q,W&]Q,b&dQ.h(qQ1s,_U1w,c,d,eQ3e.iQ6U1tS6Y1x1yQ8x6Z#f>T#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o>U<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hW%Ti%V*y>PS&[!Q&iQ&]!RQ&^!SU*}%[%d=sR,R&Y%]%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^T)z$u){V+P%]<s<tW'[!e%i*Z-`S(}#y#zQ+c%rQ+y&SS.b(m(nQ1j,XQ5T0kR8i5u'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S$i$^c#Y#e%q%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.|.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vT#TV#U'RkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ'Y!eR2q-]!W!nQ!e!r!v!y!z$|'W'_'`'l'm'n*Z*k*o*q*r-]-c-e-u0[0_1o5{5}R1l,ZnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&y!^Q'v!xS(s#u<^Q+l%zQ,]&_Q,^&aQ-j'dQ-w'oS.r(x=PS0q+X=ZQ1P+mQ1n,[Q2c,zQ2e,{Q2m-WQ2z-kQ2}-oS5Y0r=eQ5a1QS5d1S=fQ6t2oQ6x2{Q6}3SQ8]5bQ9Y6vQ9Z6yQ9^7OR:l9V$d$]c#Y#e%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vS(o#p'iQ)P#zS+b%q.|S.c(n(pR3^.d'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS#q]<VQ&t!XQ&u!YQ&w![Q&x!]R2Z,vQ'a!hQ+e%wQ-h'cS.e(q+hQ2x-gW3b.h.i0w0yQ6w2yW7U3_3a3e5^U9a7V7X7ZU:q9c9d9fS;b:p:sQ;p;cR;x;qU!wQ'`-eT5y1o5{!Q_OXZ`st!V!Z#d#h%e%m&i&k&r&t&u&w(j,s,x.[2[2_]!pQ!r'`-e1o5{T#q]<V%^{OPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S(}#y#zS.b(m(n!s=l$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU$fd)_,mS(p#p'iU*v%R(w4OU0m+O.n7gQ5^0xQ7V3`Q9d7YR:s9em!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}Q't!uS(f#g2US-s'k'wQ/s*]Q0R*jQ3U-vQ4f/tQ4r0TQ4s0UQ4x0^Q7r4`S7}4t4vS8R4y4{Q9r7sQ9v7yQ9{8OQ:Q8TS:{9w9xS;g:|;PS;s;h;iS;{;t;uS<P;|;}R<S<QQ#wbQ's!uS(e#g2US(g#m+WQ+Y%fQ+j%xQ+p&OU-r'k't'wQ.W(fU/r*]*`/wQ0S*jQ0V*lQ1O+kQ1u,aS3R-s-vQ3Z.`S4e/s/tQ4n0PS4q0R0^Q4u0WQ6W1vQ7P3US7q4`4bQ7u4fU7|4r4x4{Q8P4wQ8v6XS9q7r7sQ9u7yQ9}8RQ:O8SQ:c8wQ:y9rS:z9v9xQ;S:QQ;^:dS;f:{;PS;r;g;hS;z;s;uS<O;{;}Q<R<PQ<T<SQ=o=jQ={=tR=|=uV!wQ'`-e%^aOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S#wz!j!r=i$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=o>R%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Q%fj!^%xy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{S&Oz!jQ+k%yQ,a&dW1v,b,c,d,eU6X1w1x1yS8w6Y6ZQ:d8x!r=j$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ=t>QR=u>R%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Y#bWZ#W#Z(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ,n&o!p=k$Z$n)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=n'XU']!e%i*ZR2s-`%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ,m&oQ0x+gQ3`.gQ7Y3dR9e7[!b$Tc#Y%q(S(Y(t(y)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!P<d)^)q-Z.|2k2n3p3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!f$Vc#Y%q(S(Y(t(y)W)X)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!T<f)^)q-Z.|2k2n3p3v3w3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!^$Zc#Y%q(S(Y(t(y)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<WQ4_/kz>S)^)q-Z.|2k2n3p4P4X6u7b7k7l8k9X9g9m9n;W;`=vQ>X>ZR>Y>['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS$oh$pR4U/U'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$kf$qQ$ifS)j$l)nR)v$qT$jf$qT)l$l)n'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$oh$pQ$rhR)u$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_!s>Q$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S#glOPXZst!Z!`!o#S#d#o#{$n%m&k&n&o&r&t&u&w&{'T'b)O)s*i+]+g,p,s,x-i.g/V/n0]0l1r2S2T2V2X2[2_2a3d4T4z6T6e6f6i7[8t9T!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^Q+T%aQ/c*Oo4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!U$yi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>YQ*c$zU*l$|*Z*oQ+U%bQ0W*m#f=q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n=r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hQ=w>TQ=x>UQ=y>VR=z>W!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hnoOXst!Z#d%m&r&t&u&w,s,x2[2_S*f${*YQ-R'OQ-S'QR4i/y%[%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q,U&]Q1h,WQ5s1gR8h5tV*n$|*Z*oU*n$|*Z*oT5z1o5{S0P*i/nQ4w0]T8S4z:]Q+j%xQ0V*lQ1O+kQ1u,aQ6W1vQ8v6XQ:c8wR;^:d!U%Oi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Yx*R$v)e*S*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>OS0`*t0a#f<o#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<p<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!d=S(u)c*[*e.j.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[`=T3}7c7f7j9h:t:w;yS=_.l3iT=`7e9k!U%Qi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y|*T$v)e*U*t+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>OS0b*u0c#f<q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!h=U(u)c*[*e.k.l.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[d=V3}7d7e7j9h9i:t:u:w;yS=a.m3jT=b7f9lrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q&f!UR,p&ornOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R&f!UQ,Y&^R1d,RsnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q1p,_S6R1s1tU8p6P6Q6US:_8r8sS;Y:^:aQ;m;ZR;w;nQ&m!VR,i&iR6_1|R:f8yW&Q|&V&W,OR1Z+vQ&r!WR,s&sR,y&xT2],x2_R,}&yQ,|&yR2f,}Q'y!{R-y'ySsOtQ#dXT%ps#dQ#OTR'{#OQ#RUR'}#RQ){$uR/`){Q#UVR(Q#UQ#XWU(W#X(X.QQ(X#YR.Q(YQ-^'YR2r-^Q.u(yS3m.u3nR3n.vQ-e'`R2v-eY!rQ'`-e1o5{R'j!rQ/Q)eR4S/QU#_W%h*YU(_#_(`.RQ(`#`R.R(ZQ-a']R2t-at`OXst!V!Z#d%m&i&k&r&t&u&w,s,x2[2_S#hZ%eU#r`#h.[R.[(jQ(k#jQ.X(gW.a(k.X3X7RQ3X.YR7R3YQ)n$lR/W)nQ$phR)t$pQ$`cU)a$`-|<jQ-|<WR<j)qQ/q*]W4c/q4d7t9sU4d/r/s/tS7t4e4fR9s7u$e*Q$v(u)c)e*[*e*t*u+Q+R+V.l.m.o.p.q/_/g/i/k/v/|0d0e0v1e3f3g3h3}4R4[4g4h4l4|5O5R5S5W5r7]7^7_7`7e7f7h7i7j7p7w7z8U8X8Z9h9i9j9t9|:R:S:t:u:v:w:x:};R;e;j;v;y=p=}>O>Z>[Q/z*eU4k/z4m7xQ4m/|R7x4lS*o$|*ZR0Y*ox*S$v)e*t*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>O!d.j(u)c*[*e.l.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/h*S.j7ca7c3}7e7f7j9h:t:w;yQ0a*tQ3i.lU4}0a3i9kR9k7e|*U$v)e*t*u+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>O!h.k(u)c*[*e.l.m.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/j*U.k7de7d3}7e7f7j9h9i:t:u:w;yQ0c*uQ3j.mU5P0c3j9lR9l7fQ*z%UR0g*zQ5]0vR8Y5]Q+_%kR0u+_Q5v1jS8j5v:[R:[8kQ,[&_R1m,[Q5{1oR8m5{Q1{,fS6]1{8zR8z6_Q1U+rW5h1U5j8a:VQ5j1XQ8a5iR:V8bQ+w&QR1[+wQ2_,xR6m2_YrOXst#dQ&v!ZQ+a%mQ,r&rQ,t&tQ,u&uQ,w&wQ2Y,sS2],x2_R6l2[Q%opQ&z!_Q&}!aQ'P!bQ'R!cQ'q!uQ+`%lQ+l%zQ,Q&XQ,h&mQ-P&|W-p'k's't'wQ-w'oQ0X*nQ1P+mQ1c,PS2O,i,lQ2g-OQ2h-RQ2i-SQ2}-oW3P-r-s-v-xQ5a1QQ5m1_Q5q1eQ6V1uQ6a2QQ6k2ZU6z3O3R3UQ6}3SQ8]5bQ8e5oQ8g5rQ8l5zQ8u6WQ8{6`S9[6{7PQ9^7OQ:W8cQ:b8vQ:g8|Q:n9]Q;U:XQ;]:cQ;a:oQ;l;VR;o;^Q%zyQ'd!iQ'o!uU+m%{%|%}Q-W'VU-k'e'f'gS-o'k'uQ0Q*jS1Q+n+oQ2o-YS2{-l-mQ3S-tS4p0R0UQ5b1RQ6v2uQ6y2|Q7O3TU7{4r4s4vQ9z7}R;O9{S$wi>PR*{%VU%Ui%V>PR0f*yQ$viS(u#v+iS)c$b$cQ)e$dQ*[$xS*e${*YQ*t%OQ*u%QQ+Q%^Q+R%_Q+V%cQ.l<oQ.m<qQ.o<uQ.p<wQ.q<yQ/_)yQ/g*RQ/i*TQ/k*VQ/v*aS/|*g/mQ0d*wQ0e*xl0v+f,V.f1i1q3c6S7W8q9b:`:r;[;dQ1e,SQ3f=SQ3g=UQ3h=XS3}<l<mQ4R/PS4[/d4^Q4g/xQ4h/yQ4l/{Q4|0`Q5O0bQ5R0iQ5S0jQ5W0oQ5r1fQ7]=]Q7^=_Q7_=aQ7`=cQ7e<pQ7f<rQ7h<vQ7i<xQ7j<zQ7p4_Q7w4jQ7z4oQ8U5QQ8X5[Q8Z5_Q9h=YQ9i=TQ9j=VQ9t7vQ9|8QQ:R8VQ:S8[Q:t=^Q:u=`Q:v=bQ:w=dQ:x9pQ:}9yQ;R:PQ;e=gQ;j;QQ;v;kQ;y=hQ=p>PQ=}>XQ>O>YQ>Z>]R>[>^Q+O%]Q.n<sR7g<tnpOXst!Z#d%m&r&t&u&w,s,x2[2_Q!fPS#fZ#oQ&|!`W'h!o*i0]4zQ(P#SQ)Q#{Q)r$nS,l&k&nQ,q&oQ-O&{S-T'T/nQ-g'bQ.x)OQ/[)sQ0s+]Q0y+gQ2W,pQ2y-iQ3a.gQ4W/VQ5U0lQ6Q1rQ6c2SQ6d2TQ6h2VQ6j2XQ6o2aQ7Z3dQ7m4TQ8s6TQ9P6eQ9Q6fQ9S6iQ9f7[Q:a8tR:k9T#[cOPXZst!Z!`!o#d#o#{%m&k&n&o&r&t&u&w&{'T'b)O*i+]+g,p,s,x-i.g/n0]0l1r2S2T2V2X2[2_2a3d4z6T6e6f6i7[8t9TQ#YWQ#eYQ%quQ%svS%uw!gS(S#W(VQ(Y#ZQ(t#uQ(y#xQ)R$OQ)S$PQ)T$QQ)U$RQ)V$SQ)W$TQ)X$UQ)Y$VQ)Z$WQ)[$XQ)^$ZQ)`$_Q)b$aQ)g$eW)q$n)s/V4TQ+d%tQ+x&RS-Z'X2pQ-x'rS-}(T.PQ.S(]Q.U(dQ.s(xQ.v(zQ.z<UQ.|<XQ.}<YQ/O<]Q/b)}Q0p+XQ2k-UQ2n-XQ3O-qQ3V.VQ3k.tQ3p<^Q3q<_Q3r<`Q3s<aQ3t<bQ3u<cQ3v<dQ3w<eQ3x<fQ3y<gQ3z<hQ3{.{Q3|<kQ4P<nQ4Q<{Q4X<iQ5X0rQ5c1SQ6u=OQ6{3QQ7Q3WQ7a3lQ7b=PQ7k=RQ7l=ZQ8k5wQ9X6sQ9]6|Q9g=[Q9m=eQ9n=fQ:o9_Q;W:ZQ;`:mQ<W#SR=v>SR#[WR'Z!el!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}S'V!e-]U*j$|*Z*oS-Y'W'_S0U*k*qQ0^*rQ2u-cQ4v0[R4{0_R({#xQ!fQT-d'`-e]!qQ!r'`-e1o5{Q#p]R'i<VR)f$dY!uQ'`-e1o5{Q'k!rS'u!v!yS'w!z5}S-t'l'mQ-v'nR3T-uT#kZ%eS#jZ%eS%km,oU(g#h#i#lS.Y(h(iQ.^(jQ0t+^Q3Y.ZU3Z.[.]._S7S3[3]R9`7Td#^W#W#Z%h(T(^*Y+Z.T/mr#gZm#h#i#l%e(h(i(j+^.Z.[.]._3[3]7TS*]$x*bQ/t*^Q2U,oQ2l-VQ4`/pQ6q2dQ7s4aQ9W6rT=m'X+[V#aW%h*YU#`W%h*YS(U#W(^U(Z#Z+Z/mS-['X+[T.O(T.TV'^!e%i*ZQ$lfR)x$qT)m$l)nR4V/UT*_$x*bT*h${*YQ0w+fQ1g,VQ3_.fQ5t1iQ6P1qQ7X3cQ8r6SQ9c7WQ:^8qQ:p9bQ;Z:`Q;c:rQ;n;[R;q;dnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&l!VR,h&itmOXst!U!V!Z#d%m&i&r&t&u&w,s,x2[2_R,o&oT%lm,oR1k,XR,g&gQ&U|S+}&V&WR1^,OR+s&PT&p!W&sT&q!W&sT2^,x2_",nodeNames:"⚠ ArithOp ArithOp ?. JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration defer ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:380,context:IN,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,237,243,245,247,249,252,258,264,266,268,270,272,274,275,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[a3],skippedNodes:[0,5,6,278],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$<r#p#q$=h#q#r$>x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Wp(Z!b'|0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(X#S$i&j'}0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Wp(Z!b'}0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(V':f$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Wp(Z!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__WS$i&j(Wp(Z!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]WS$i&j(Z!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Z!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(WpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(WpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Wp(Z!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S%9[C}i$i&j(o%1l(Wp(Z!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr%9[EoP;=`<%lCr07[FRk$i&j(Wp(Z!b$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$i&j(Wp(Z!b$]#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv07[JPP;=`<%lEr(KWJ_`$i&j(Wp(Z!b#p(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWKl_$i&j$Q(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,#xLva(z+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWNW`$i&j#z(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At! c_(Y';W$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$i&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$d`$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(WpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$d`(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b/5|!'t_!l/.^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&U!)O_!k!Lf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z-!n!*[b$i&j(Wp(Z!b(U%&f#q(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW!+o`$i&j(Wp(Z!b#n(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;x!,|`$i&j(Wp(Z!br+4YOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,$U!.Z_!]+Jf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!/ec$i&j(Wp(Z!b!Q.2^OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!0ya$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!2Z_![!L^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!3eg$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!5Vg$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!6wc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!8_c$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!9uf$i&j(Wp(Z!b#o(ChOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcxz!;Zz{#-}{!P!;Z!P!Q#/d!Q!^!;Z!^!_#(i!_!`#7S!`!a#8i!a!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z?O!;fb$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z>^!<w`$i&j(Z!b!X7`OY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eq!Q!^!<n!^!_!Gr!_!}!<n!}#O!KS#O#P!Dy#P#o!<n#o#p!Gr#p;'S!<n;'S;=`!L]<%lO!<n<z!>Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!?Td$i&j!X7`O!^&c!_#W&c#W#X!>|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c<z!C][$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#O!CW#O#P!DR#P#Q!=y#Q#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DWX$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DvP;=`<%l!CW<z!EOX$i&jOY!=yYZ&cZ!^!=y!^!_!@c!_#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!EnP;=`<%l!=y>^!Ezl$i&j(Z!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Z!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Z!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Z!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Z!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!<n#Q#o!KS#o#p!JU#p;'S!KS;'S;=`!LV<%lO!KS>^!LYP;=`<%l!KS>^!L`P;=`<%l!<n=l!Ll`$i&j(Wp!X7`OY!LcYZ&cZr!Lcrs!=ys!P!Lc!P!Q!Mn!Q!^!Lc!^!_# o!_!}!Lc!}#O#%P#O#P!Dy#P#o!Lc#o#p# o#p;'S!Lc;'S;=`#&Y<%lO!Lc=l!Mwl$i&j(Wp!X7`OY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#W(r#W#X!Mn#X#Z(r#Z#[!Mn#[#](r#]#^!Mn#^#a(r#a#b!Mn#b#g(r#g#h!Mn#h#i(r#i#j!Mn#j#k!Mn#k#m(r#m#n!Mn#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r8Q# vZ(Wp!X7`OY# oZr# ors!@cs!P# o!P!Q#!i!Q!}# o!}#O#$R#O#P!Bq#P;'S# o;'S;=`#$y<%lO# o8Q#!pe(Wp!X7`OY)rZr)rs#O)r#P#W)r#W#X#!i#X#Z)r#Z#[#!i#[#])r#]#^#!i#^#a)r#a#b#!i#b#g)r#g#h#!i#h#i)r#i#j#!i#j#k#!i#k#m)r#m#n#!i#n;'S)r;'S;=`*Z<%lO)r8Q#$WX(WpOY#$RZr#$Rrs!Ars#O#$R#O#P!B[#P#Q# o#Q;'S#$R;'S;=`#$s<%lO#$R8Q#$vP;=`<%l#$R8Q#$|P;=`<%l# o=l#%W^$i&j(WpOY#%PYZ&cZr#%Prs!CWs!^#%P!^!_#$R!_#O#%P#O#P!DR#P#Q!Lc#Q#o#%P#o#p#$R#p;'S#%P;'S;=`#&S<%lO#%P=l#&VP;=`<%l#%P=l#&]P;=`<%l!Lc?O#&kn$i&j(Wp(Z!b!X7`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#W%Z#W#X#&`#X#Z%Z#Z#[#&`#[#]%Z#]#^#&`#^#a%Z#a#b#&`#b#g%Z#g#h#&`#h#i%Z#i#j#&`#j#k#&`#k#m%Z#m#n#&`#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z9d#(r](Wp(Z!b!X7`OY#(iZr#(irs!Grsw#(iwx# ox!P#(i!P!Q#)k!Q!}#(i!}#O#+`#O#P!Bq#P;'S#(i;'S;=`#,`<%lO#(i9d#)th(Wp(Z!b!X7`OY*gZr*grs'}sw*gwx)rx#O*g#P#W*g#W#X#)k#X#Z*g#Z#[#)k#[#]*g#]#^#)k#^#a*g#a#b#)k#b#g*g#g#h#)k#h#i*g#i#j#)k#j#k#)k#k#m*g#m#n#)k#n;'S*g;'S;=`+Z<%lO*g9d#+gZ(Wp(Z!bOY#+`Zr#+`rs!JUsw#+`wx#$Rx#O#+`#O#P!B[#P#Q#(i#Q;'S#+`;'S;=`#,Y<%lO#+`9d#,]P;=`<%l#+`9d#,cP;=`<%l#(i?O#,o`$i&j(Wp(Z!bOY#,fYZ&cZr#,frs!KSsw#,fwx#%Px!^#,f!^!_#+`!_#O#,f#O#P!DR#P#Q!;Z#Q#o#,f#o#p#+`#p;'S#,f;'S;=`#-q<%lO#,f?O#-tP;=`<%l#,f?O#-zP;=`<%l!;Z07[#.[b$i&j(Wp(Z!b(O0/l!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z07[#/o_$i&j(Wp(Z!bT0/lOY#/dYZ&cZr#/drs#0nsw#/dwx#4Ox!^#/d!^!_#5}!_#O#/d#O#P#1p#P#o#/d#o#p#5}#p;'S#/d;'S;=`#6|<%lO#/d06j#0w]$i&j(Z!bT0/lOY#0nYZ&cZw#0nwx#1px!^#0n!^!_#3R!_#O#0n#O#P#1p#P#o#0n#o#p#3R#p;'S#0n;'S;=`#3x<%lO#0n05W#1wX$i&jT0/lOY#1pYZ&cZ!^#1p!^!_#2d!_#o#1p#o#p#2d#p;'S#1p;'S;=`#2{<%lO#1p0/l#2iST0/lOY#2dZ;'S#2d;'S;=`#2u<%lO#2d0/l#2xP;=`<%l#2d05W#3OP;=`<%l#1p01O#3YW(Z!bT0/lOY#3RZw#3Rwx#2dx#O#3R#O#P#2d#P;'S#3R;'S;=`#3r<%lO#3R01O#3uP;=`<%l#3R06j#3{P;=`<%l#0n05x#4X]$i&j(WpT0/lOY#4OYZ&cZr#4Ors#1ps!^#4O!^!_#5Q!_#O#4O#O#P#1p#P#o#4O#o#p#5Q#p;'S#4O;'S;=`#5w<%lO#4O00^#5XW(WpT0/lOY#5QZr#5Qrs#2ds#O#5Q#O#P#2d#P;'S#5Q;'S;=`#5q<%lO#5Q00^#5tP;=`<%l#5Q05x#5zP;=`<%l#4O01p#6WY(Wp(Z!bT0/lOY#5}Zr#5}rs#3Rsw#5}wx#5Qx#O#5}#O#P#2d#P;'S#5};'S;=`#6v<%lO#5}01p#6yP;=`<%l#5}07[#7PP;=`<%l#/d)3h#7ab$i&j$Q(Ch(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;ZAt#8vb$Z#t$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z'Ad#:Zp$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#U%Z#U#V#?i#V#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#<jk$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-<U(Wp(Z!b$n7`OY*gZr*grs'}sw*gwx)rx!P*g!P!Q#MO!Q!^*g!^!_#Mt!_!`$ f!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#MXX$k&j(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El#M}Z#r(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#Np!`#O*g#P;'S*g;'S;=`+Z<%lO*g(El#NyX$Q(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El$ oX#s(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g*)x$!ga#`*!Y$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$#l!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(K[$#w_#k(Cl$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x$%Vag!*r#s(Ch$f#|$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$&[!`!a$'f!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$&g_#s(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$'qa#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$(v!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$)R`#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(Kd$*`a(r(Ct$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!a%Z!a!b$+e!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$+p`$i&j#{(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`$,}_!|$Ip$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f$.X_!S0,v$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/]Z$i&jO!^$0O!^!_$0f!_#i$0O#i#j$0k#j#l$0O#l#m$2^#m#o$0O#o#p$0f#p;'S$0O;'S;=`$4i<%lO$0O(n$0VT_#S$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0kO_#S(n$0p[$i&jO!Q&c!Q![$1f![!^&c!_!c&c!c!i$1f!i#T&c#T#Z$1f#Z#o&c#o#p$3|#p;'S&c;'S;=`&w<%lO&c(n$1kZ$i&jO!Q&c!Q![$2^![!^&c!_!c&c!c!i$2^!i#T&c#T#Z$2^#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2cZ$i&jO!Q&c!Q![$3U![!^&c!_!c&c!c!i$3U!i#T&c#T#Z$3U#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3ZZ$i&jO!Q&c!Q![$0O![!^&c!_!c&c!c!i$0O!i#T&c#T#Z$0O#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$4PR!Q![$4Y!c!i$4Y#T#Z$4Y#S$4]S!Q![$4Y!c!i$4Y#T#Z$4Y#q#r$0f(n$4lP;=`<%l$0O#1[$4z_!Y#)l$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$6U`#x(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;p$7c_$i&j(Wp(Z!b(a+4QOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$8qk$i&j(Wp(Z!b(T,2j$_#t(e$I[OY%ZYZ&cZr%Zrs&}st%Ztu$8buw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$8b![!^%Z!^!_*g!_!c%Z!c!}$8b!}#O%Z#O#P&c#P#R%Z#R#S$8b#S#T%Z#T#o$8b#o#p*g#p$g%Z$g;'S$8b;'S;=`$<l<%lO$8b+d$:qk$i&j(Wp(Z!b$_#tOY%ZYZ&cZr%Zrs&}st%Ztu$:fuw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$:f![!^%Z!^!_*g!_!c%Z!c!}$:f!}#O%Z#O#P&c#P#R%Z#R#S$:f#S#T%Z#T#o$:f#o#p*g#p$g%Z$g;'S$:f;'S;=`$<f<%lO$:f+d$<iP;=`<%l$:f07[$<oP;=`<%l$8b#Jf$<{X!_#Hb(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g,#x$=sa(y+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+e#q;'S%Z;'S;=`+a<%lO%Z)>v$?V_!^(CdvBr$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Wp(Z!b'|0/l$]#t(T,2j(e$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Wp(Z!b'}0/l$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[KN,JN,e3,t3,2,3,4,5,6,7,8,9,10,11,12,13,14,FN,new pc("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(c~~",141,340),new pc("j~RQYZXz{^~^O(Q~~aP!P!Qd~iO(R~~",25,323)],topRules:{Script:[0,7],SingleExpression:[1,276],SingleClassItem:[2,277]},dialects:{jsx:0,ts:15175},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:327,get:t=>n3[t]||-1},{term:343,get:t=>s3[t]||-1},{term:95,get:t=>l3[t]||-1}],tokenPrec:15201}),Ov=[Ie("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),Ie("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),Ie("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),Ie("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),Ie("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),Ie(`try {
519
+ */const yP=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],SP=ae("wrench",yP);/**
520
+ * @license lucide-react v1.7.0 - ISC
521
+ *
522
+ * This source code is licensed under the ISC license.
523
+ * See the LICENSE file in the root directory of this source tree.
524
+ */const QP=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Rt=ae("x",QP);/**
525
+ * @license lucide-react v1.7.0 - ISC
526
+ *
527
+ * This source code is licensed under the ISC license.
528
+ * See the LICENSE file in the root directory of this source tree.
529
+ */const jP=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],Na=ae("zap",jP),wP={success:Br,error:cn,info:Rb,warning:_c},kP={success:"border-l-success",error:"border-l-danger",info:"border-l-accent",warning:"border-l-warning"},$P={success:"text-success",error:"text-danger",info:"text-accent",warning:"text-warning"},TP={success:3e3,error:0,info:5e3,warning:5e3};function PP({toast:t}){const n=D(o=>o.removeToast),s=wP[t.type]||Rb,l=TP[t.type];return v.useEffect(()=>{if(!l)return;const o=setTimeout(()=>n(t.id),l);return()=>clearTimeout(o)},[t.id,l,n]),i.jsxs(b0.div,{layout:!0,initial:{opacity:0,x:80,scale:.95},animate:{opacity:1,x:0,scale:1},exit:{opacity:0,x:80,scale:.95},transition:{duration:.2},className:le("w-80 rounded-md border border-border bg-surface-1 shadow-xl","border-l-4 flex items-center gap-3 px-4 py-3",kP[t.type]),children:[i.jsx(s,{size:16,className:le("flex-shrink-0",$P[t.type])}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-sm text-text-0 font-sans",children:t.message}),t.detail&&i.jsx("p",{className:"text-xs text-text-3 font-sans mt-0.5",children:t.detail})]}),i.jsx("button",{onClick:o=>{o.stopPropagation(),n(t.id)},className:"p-1.5 text-text-4 hover:text-text-1 hover:bg-surface-5 rounded transition-colors cursor-pointer flex-shrink-0 z-10",children:i.jsx(Rt,{size:14})})]})}function NP(){const t=D(n=>n.toasts);return i.jsx("div",{className:"fixed bottom-4 right-4 z-[100] flex flex-col-reverse gap-2",children:i.jsx(g0,{mode:"popLayout",children:t.slice(-3).map(n=>i.jsx(PP,{toast:n},n.id))})})}const zP=[{id:"agents",icon:_b,label:"Agents"},{id:"editor",icon:dn,label:"Editor"},{id:"dashboard",icon:Rc,label:"Dashboard"},{id:"marketplace",icon:Eb,label:"Marketplace"},{id:"teams",icon:Zc,label:"Teams"}],RP=[{id:"journalist",icon:Ir,label:"Journalist",panel:!0},{id:"settings",icon:Yb,label:"Settings",nav:!0}];function CP({activeView:t,detailPanel:n,onNavigate:s,onTogglePanel:l}){return i.jsxs("nav",{className:"w-12 flex-shrink-0 flex flex-col bg-surface-3 border-r border-border",children:[i.jsx("div",{className:"flex flex-col items-center gap-0.5 pt-2",children:zP.map(o=>i.jsx(Wg,{content:o.label,side:"right",children:i.jsx("button",{onClick:()=>s(o.id),className:le("w-10 h-10 flex items-center justify-center rounded-md transition-colors cursor-pointer",t===o.id?"text-text-0 bg-surface-5":"text-text-3 hover:text-text-1 hover:bg-surface-4"),children:i.jsx(o.icon,{size:20,strokeWidth:t===o.id?2:1.5})})},o.id))}),i.jsx("div",{className:"flex-1"}),i.jsx("div",{className:"flex flex-col items-center gap-0.5 pb-2",children:RP.map(o=>{const u=o.panel?(n==null?void 0:n.type)===o.id:t===o.id;return i.jsx(Wg,{content:o.label,side:"right",children:i.jsx("button",{onClick:()=>o.panel?l(o.id):s((o.nav,o.id)),className:le("w-10 h-10 flex items-center justify-center rounded-md transition-colors cursor-pointer",u?"text-text-0 bg-surface-5":"text-text-3 hover:text-text-1 hover:bg-surface-4"),children:i.jsx(o.icon,{size:20,strokeWidth:u?2:1.5})})},o.id)})})]})}const XP={agents:"Agents",editor:"Editor",dashboard:"Dashboard",marketplace:"Marketplace",teams:"Teams"};function _P({activeView:t,connected:n,daemonHost:s,editorActiveFile:l,onOpenCommandPalette:o,onSpawn:u}){const d=["Groove",XP[t]||t];return t==="editor"&&l&&d.push(l.split("/").pop()),i.jsxs("header",{className:"h-11 flex-shrink-0 flex items-center gap-3 px-4 bg-surface-3 border-b border-border",children:[i.jsx("img",{src:"/favicon.png",alt:"Groove",className:"h-7 w-7 rounded-full flex-shrink-0"}),s&&i.jsx("span",{className:"text-2xs font-mono font-semibold text-text-3 bg-surface-5 px-1.5 py-0.5 rounded flex-shrink-0",children:s}),i.jsx("div",{className:"flex-1 min-w-4"}),i.jsxs("button",{onClick:o,className:le("flex items-center gap-2.5 h-8 px-4 rounded-full w-full max-w-md","bg-surface-1 border border-border-subtle","text-sm text-text-4 font-sans","hover:border-border hover:text-text-3 transition-colors cursor-pointer"),children:[i.jsx(ql,{size:14,className:"flex-shrink-0"}),i.jsx("span",{className:"flex-1 text-left",children:"Search commands..."}),i.jsx("kbd",{className:"text-2xs font-mono bg-surface-4 px-1.5 py-0.5 rounded-full text-text-4",children:"Cmd+K"})]}),i.jsx("div",{className:"flex-1 min-w-4"}),i.jsx("div",{className:"flex items-center gap-1 text-xs font-sans text-text-3 flex-shrink-0",children:d.map((O,m)=>i.jsxs("span",{className:"flex items-center gap-1",children:[m>0&&i.jsx(ii,{size:11,className:"text-text-4"}),i.jsx("span",{className:le(m===d.length-1?"text-text-2":"text-text-4"),children:O})]},m))}),n&&i.jsxs("button",{onClick:u,className:"ml-1 flex items-center gap-1 h-7 px-3.5 rounded-full bg-accent/15 text-accent text-xs font-semibold font-sans hover:bg-accent/25 transition-colors cursor-pointer select-none flex-shrink-0",children:[i.jsx(Fn,{size:14}),"Spawn"]})]})}const ZP={running:"var(--color-success)",starting:"var(--color-warning)",stopped:"var(--color-text-3)",crashed:"var(--color-danger)",completed:"var(--color-accent)",killed:"var(--color-text-3)",rotating:"var(--color-purple)"};function Ff(t){return ZP[t]||"var(--color-text-3)"}const AP={planner:{bg:"rgba(74, 225, 104, 0.12)",text:"#4ae168",border:"#4ae168"},backend:{bg:"rgba(51, 175, 188, 0.12)",text:"#33afbc",border:"#33afbc"},frontend:{bg:"rgba(229, 192, 123, 0.12)",text:"#e5c07b",border:"#e5c07b"},fullstack:{bg:"rgba(74, 225, 104, 0.12)",text:"#4ae168",border:"#4ae168"},testing:{bg:"rgba(97, 175, 239, 0.12)",text:"#61afef",border:"#61afef"},devops:{bg:"rgba(209, 154, 102, 0.12)",text:"#d19a66",border:"#d19a66"},docs:{bg:"rgba(139, 146, 158, 0.12)",text:"#8b929e",border:"#8b929e"},security:{bg:"rgba(224, 108, 117, 0.12)",text:"#e06c75",border:"#e06c75"},database:{bg:"rgba(198, 120, 221, 0.12)",text:"#c678dd",border:"#c678dd"},cmo:{bg:"rgba(229, 192, 123, 0.12)",text:"#e5c07b",border:"#e5c07b"},cfo:{bg:"rgba(74, 225, 104, 0.12)",text:"#4ae168",border:"#4ae168"},ea:{bg:"rgba(97, 175, 239, 0.12)",text:"#61afef",border:"#61afef"},support:{bg:"rgba(51, 175, 188, 0.12)",text:"#33afbc",border:"#33afbc"},analyst:{bg:"rgba(198, 120, 221, 0.12)",text:"#c678dd",border:"#c678dd"},creative:{bg:"rgba(229, 192, 123, 0.12)",text:"#e5c07b",border:"#e5c07b"},slides:{bg:"rgba(209, 154, 102, 0.12)",text:"#d19a66",border:"#d19a66"}};function Db(t){const n=(t||"").toLowerCase();return AP[n]||{bg:"rgba(139, 146, 158, 0.12)",text:"#8b929e",border:"#8b929e"}}function Nl({status:t,size:n="md",className:s}){const l=t==="running"||t==="starting",o=n==="sm"?"w-1.5 h-1.5":n==="lg"?"w-3 h-3":"w-2 h-2";return i.jsx("span",{className:le("rounded-full inline-block flex-shrink-0",l&&"animate-pulse",o,s),style:{background:Ff(t)}})}function rt(t){return t==null||isNaN(t)?"0":t>=1e6?(t/1e6).toFixed(1).replace(/\.0$/,"")+"M":t>=1e3?(t/1e3).toFixed(1).replace(/\.0$/,"")+"k":Math.round(t).toLocaleString()}function Kf(t){return t==null||isNaN(t)?"$0":t>=1e3?"$"+(t/1e3).toFixed(1).replace(/\.0$/,"")+"k":t>=1||t>=.01?"$"+t.toFixed(2):"$"+t.toFixed(3)}function ws(t){return t==null||isNaN(t)?"0%":Math.round(t)+"%"}function Ac(t){if(!t||t<0)return"0s";const n=Math.floor(t/86400),s=Math.floor(t%86400/3600),l=Math.floor(t%3600/60),o=Math.floor(t%60);return n>0?`${n}d ${s}h`:s>0?`${s}h ${l}m`:l>0?`${l}m ${o}s`:`${o}s`}function Ct(t){if(!t)return"";const n=(Date.now()-new Date(t).getTime())/1e3;return n<5?"just now":n<60?`${Math.floor(n)}s ago`:n<3600?`${Math.floor(n/60)}m ago`:n<86400?`${Math.floor(n/3600)}h ago`:`${Math.floor(n/86400)}d ago`}function EP({connected:t,agentCount:n,runningCount:s,uptime:l,terminalVisible:o,onToggleTerminal:u}){return i.jsxs("footer",{className:"h-6 flex-shrink-0 flex items-center px-3 bg-surface-3 border-t border-border text-2xs font-sans select-none",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx(Nl,{status:t?"running":"crashed",size:"sm"}),i.jsx("span",{className:t?"text-text-2":"text-danger",children:t?"Connected":"Offline"})]}),t&&l>0&&i.jsxs("span",{className:"text-text-4",children:["Up ",Ac(l)]}),t&&n>0&&i.jsxs("span",{className:"text-text-4",children:[s,"/",n," agents"]})]}),i.jsx("div",{className:"flex-1"}),i.jsxs("a",{href:"https://docs.groovedev.ai",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1.5 px-2 h-full text-text-3 hover:text-text-1 hover:bg-surface-5 transition-colors no-underline",children:[i.jsx(g5,{size:12}),i.jsx("span",{children:"Docs"})]}),i.jsxs("button",{onClick:u,className:le("flex items-center gap-1.5 px-2 h-full transition-colors cursor-pointer",o?"text-accent bg-accent/8 hover:bg-accent/12":"text-text-3 hover:text-text-1 hover:bg-surface-5"),children:[i.jsx(ui,{size:12}),i.jsx("span",{children:"Terminal"}),i.jsx("kbd",{className:"font-mono text-text-4 ml-0.5",children:"Cmd+J"})]})]})}function qP({children:t,width:n,onWidthChange:s,onClose:l,className:o}){const u=v.useRef(!1),d=v.useRef(0),O=v.useRef(0),m=v.useCallback(p=>{p.preventDefault(),u.current=!0,d.current=p.clientX,O.current=n;function x(b){if(!u.current)return;const S=d.current-b.clientX,Q=Math.min(Math.max(O.current+S,380),window.innerWidth*.65);s(Q)}function g(){u.current=!1,document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",g)}document.addEventListener("mousemove",x),document.addEventListener("mouseup",g)},[n,s]);return i.jsxs("aside",{className:le("flex-shrink-0 flex bg-surface-1 border-l border-border relative",o),style:{width:n},children:[i.jsx("div",{className:"absolute left-0 top-0 bottom-0 w-1 cursor-col-resize hover:bg-accent/30 transition-colors z-10",onMouseDown:m}),i.jsx("button",{onClick:l,className:"absolute top-3 right-3 z-10 p-1 rounded-md text-text-3 hover:text-text-0 hover:bg-surface-5 transition-colors cursor-pointer",children:i.jsx(Rt,{size:14})}),i.jsx("div",{className:"flex-1 overflow-y-auto overflow-x-hidden",children:t})]})}const MP=[{id:"nav:agents",label:"Go to Agents",icon:_b,category:"Navigation",action:t=>{t.setActiveView("agents")}},{id:"nav:editor",label:"Go to Editor",icon:dn,category:"Navigation",action:t=>{t.setActiveView("editor")}},{id:"nav:dashboard",label:"Go to Dashboard",icon:Rc,category:"Navigation",action:t=>{t.setActiveView("dashboard")}},{id:"nav:marketplace",label:"Go to Marketplace",icon:Eb,category:"Navigation",action:t=>{t.setActiveView("marketplace")}},{id:"nav:teams",label:"Go to Teams",icon:Zc,category:"Navigation",action:t=>{t.setActiveView("teams")}},{id:"action:spawn",label:"Spawn Agent",icon:Fn,category:"Actions",action:t=>{t.openDetail({type:"spawn"})}},{id:"action:terminal",label:"Toggle Terminal",icon:ui,category:"Actions",action:t=>{t.setTerminalVisible(!t.terminalVisible)},shortcut:"Cmd+J"},{id:"action:journalist",label:"Toggle Journalist",icon:Ir,category:"Actions",action:t=>{var n;((n=t.detailPanel)==null?void 0:n.type)==="journalist"?t.closeDetail():t.openDetail({type:"journalist"})}}];function YP(){const t=D(S=>S.commandPaletteOpen),n=D(S=>S.toggleCommandPalette),s=D(S=>S.agents),l=D,[o,u]=v.useState(""),[d,O]=v.useState(0),m=v.useRef(null),p=v.useMemo(()=>{const S=s.flatMap(Q=>[{id:`chat:${Q.id}`,label:`Chat with ${Q.name}`,icon:ci,category:"Agents",action:k=>{k.selectAgent(Q.id)}},...Q.status==="running"?[{id:`rotate:${Q.id}`,label:`Rotate ${Q.name}`,icon:El,category:"Agents",action:k=>{k.rotateAgent(Q.id)}},{id:`kill:${Q.id}`,label:`Kill ${Q.name}`,icon:Hf,category:"Agents",action:k=>{k.killAgent(Q.id)}}]:[]]);return[...MP,...S]},[s]),x=v.useMemo(()=>{if(!o.trim())return p.slice(0,12);const S=o.toLowerCase();return p.filter(Q=>Q.label.toLowerCase().includes(S)||Q.category.toLowerCase().includes(S)).slice(0,12)},[p,o]);v.useEffect(()=>{t&&(u(""),O(0),setTimeout(()=>{var S;return(S=m.current)==null?void 0:S.focus()},50))},[t]),v.useEffect(()=>{d>=x.length&&O(Math.max(0,x.length-1))},[x.length,d]);function g(S){S.action(l.getState()),n()}function b(S){S.key==="ArrowDown"?(S.preventDefault(),O(Q=>Math.min(Q+1,x.length-1))):S.key==="ArrowUp"?(S.preventDefault(),O(Q=>Math.max(Q-1,0))):S.key==="Enter"&&x[d]?(S.preventDefault(),g(x[d])):S.key==="Escape"&&n()}return t?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"fixed inset-0 z-50 bg-black/40 backdrop-blur-sm",onClick:n}),i.jsx(g0,{children:i.jsxs(b0.div,{initial:{opacity:0,y:-20,scale:.96},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-10,scale:.98},transition:{duration:.15},className:"fixed top-[15%] left-1/2 -translate-x-1/2 z-50 w-[480px] max-h-[400px] bg-surface-1 border border-border rounded-lg shadow-2xl overflow-hidden",onKeyDown:b,children:[i.jsxs("div",{className:"flex items-center gap-2 px-4 py-3 border-b border-border-subtle",children:[i.jsx(ql,{size:16,className:"text-text-3 flex-shrink-0"}),i.jsx("input",{ref:m,value:o,onChange:S=>{u(S.target.value),O(0)},placeholder:"Type a command...",className:"flex-1 bg-transparent text-sm text-text-0 font-sans placeholder:text-text-4 focus:outline-none"})]}),i.jsxs("div",{className:"overflow-y-auto max-h-[320px] py-1",children:[x.length===0&&i.jsx("div",{className:"px-4 py-6 text-sm text-text-3 text-center font-sans",children:"No results"}),x.map((S,Q)=>i.jsxs("button",{onClick:()=>g(S),onMouseEnter:()=>O(Q),className:le("w-full flex items-center gap-3 px-4 py-2 text-sm font-sans cursor-pointer",Q===d?"bg-surface-5 text-text-0":"text-text-1 hover:bg-surface-4"),children:[i.jsx(S.icon,{size:16,className:"text-text-3 flex-shrink-0"}),i.jsx("span",{className:"flex-1 text-left",children:S.label}),i.jsx("span",{className:"text-2xs text-text-4",children:S.category}),S.shortcut&&i.jsx("kbd",{className:"text-2xs font-mono bg-surface-4 px-1 py-0.5 rounded text-text-3 ml-1",children:S.shortcut})]},S.id))]})]})})]}):null}function VP({children:t,detailContent:n,terminalContent:s}){const l=D(C=>C.activeView),o=D(C=>C.detailPanel),u=D(C=>C.connected),d=D(C=>C.tunneled),O=D(C=>C.daemonHost),m=D(C=>C.agents),p=D(C=>C.editorActiveFile),x=D(C=>C.detailPanelWidth),g=D(C=>C.terminalVisible),b=D(C=>C.terminalFullHeight),S=D(C=>C.setActiveView),Q=D(C=>C.openDetail),k=D(C=>C.closeDetail),T=D(C=>C.setDetailPanelWidth),j=D(C=>C.setTerminalVisible),P=D(C=>C.toggleCommandPalette),N=v.useMemo(()=>m.filter(C=>C.status==="running").length,[m]),A=v.useMemo(()=>[{key:"k",meta:!0,handler:()=>D.getState().toggleCommandPalette()},{key:"p",meta:!0,shift:!0,handler:()=>D.getState().toggleCommandPalette()},{key:"j",meta:!0,handler:()=>{const C=D.getState();C.setTerminalVisible(!C.terminalVisible)}},{key:"n",meta:!0,handler:()=>D.getState().openDetail({type:"spawn"})},{key:"1",meta:!0,handler:()=>D.getState().setActiveView("agents")},{key:"2",meta:!0,handler:()=>D.getState().setActiveView("editor")},{key:"3",meta:!0,handler:()=>D.getState().setActiveView("dashboard")},{key:"4",meta:!0,handler:()=>D.getState().setActiveView("marketplace")},{key:"5",meta:!0,handler:()=>D.getState().setActiveView("teams")},{key:"Escape",handler:()=>{const C=D.getState();C.commandPaletteOpen?C.toggleCommandPalette():C.detailPanel&&C.closeDetail()}}],[]);nw(A);const U=o&&o.type!=="spawn";return i.jsx(i5,{children:i.jsxs("div",{className:"w-full h-full flex flex-col bg-surface-2 text-text-1 font-sans",children:[i.jsx(_P,{activeView:l,connected:u,tunneled:d,daemonHost:O,editorActiveFile:p,onOpenCommandPalette:P,onSpawn:()=>Q({type:"spawn"})}),i.jsxs("div",{className:"flex-1 flex min-h-0",children:[i.jsx(CP,{activeView:l,detailPanel:o,onNavigate:S,onTogglePanel:C=>{(o==null?void 0:o.type)===C?k():Q({type:C})}}),i.jsxs("div",{className:"flex-1 flex flex-col min-w-0 min-h-0",children:[!(g&&b)&&i.jsx("main",{className:"flex-1 min-h-0 overflow-hidden relative",children:t}),s]}),U&&i.jsx(qP,{width:x,onWidthChange:T,onClose:k,children:n})]}),i.jsx(EP,{connected:u,agentCount:m.length,runningCount:N,terminalVisible:g,onToggleTerminal:()=>j(!g)}),i.jsx(YP,{}),i.jsx(NP,{})]})})}const UP=[];function GP(t){if(!t||t==="auto")return"auto";const n=t.match(/^claude-(opus|sonnet|haiku)-(\d+)-(\d+)(?:-\d+)?$/);return n?`${n[1][0].toUpperCase()+n[1].slice(1)} ${n[2]}.${n[3]}`:t.startsWith("gemini-")?t.replace("gemini-","Gemini ").replace("-preview","").replace("-flash-lite"," Flash Lite").replace("-flash"," Flash").replace("-pro"," Pro"):t.startsWith("gpt-")?t.toUpperCase().replace("GPT-","GPT-"):t}function LP(t){if(!t)return null;const n=t.toLowerCase();return n.includes("read")?"READ":n.includes("edit")||n.includes("writ")?"WRITE":n.includes("search")||n.includes("grep")||n.includes("glob")?"SEARCH":n.includes("bash")||n.includes("exec")||n.includes("running")?"EXEC":n.includes("test")?"TEST":n.includes("error")||n.includes("fail")?"ERR":n.includes("complet")||n.includes("done")?"DONE":"WORK"}function DP(t){if(!t)return"";const n=Math.floor((Date.now()-t)/1e3);return n<60?`${n}s`:n<3600?`${Math.floor(n/60)}m`:`${Math.floor(n/3600)}h`}function WP({agent:t}){const s=(D(l=>l.activityLog[t.id])||UP).slice(-8);return i.jsx("div",{className:"absolute left-full top-0 ml-2 z-50 pointer-events-none",style:{width:220,animation:"tooltip-slide-in 0.15s ease-out"},children:i.jsxs("div",{className:"overflow-hidden",style:{background:"#181b21",border:"1px solid #262a32",borderRadius:4},children:[t.prompt&&i.jsx("div",{className:"px-2.5 py-2 border-b border-[#262a32]",children:i.jsx("p",{className:"text-[9px] font-sans text-[#8b929e] line-clamp-3 leading-snug",children:t.prompt})}),s.length>0?i.jsxs("div",{children:[i.jsx("div",{className:"px-2.5 pt-1.5 pb-1",children:i.jsx("span",{className:"text-[8px] font-mono text-[#3a3f4b] uppercase tracking-widest",children:"Activity"})}),s.map((l,o)=>{var O;const u=LP(l.text),d=((O=l.text)==null?void 0:O.length)>45?l.text.slice(0,45)+"...":l.text;return i.jsxs("div",{className:"px-2.5 py-[3px] flex items-start gap-1.5",children:[i.jsx("span",{className:"text-[8px] font-mono text-[#333842] w-5 flex-shrink-0 text-right",children:DP(l.timestamp)}),u&&i.jsx("span",{className:le("text-[7px] font-mono w-7 flex-shrink-0 text-center rounded-sm px-0.5 py-px",u==="ERR"?"text-[#e06c75] bg-[#e06c75]/10":"text-[#505862] bg-[#505862]/10"),children:u}),i.jsx("span",{className:"text-[9px] font-sans text-[#6e7681] truncate flex-1",children:d})]},o)}),i.jsx("div",{className:"h-1.5"})]}):i.jsx("div",{className:"px-2.5 py-3",children:i.jsx("span",{className:"text-[9px] font-mono text-[#333842]",children:"Awaiting activity..."})})]})})}const BP={running:"LIVE",starting:"INIT",stopped:"IDLE",crashed:"ERR",completed:"DONE",killed:"KILL",rotating:"ROT"},Wb=v.memo(({data:t,selected:n})=>{const{agent:s}=t,l=s.status==="running"||s.status==="starting",o=Math.round((s.contextUsage||0)*100),u=Ff(s.status),d=s.tokensUsed||0,[O,m]=v.useState(!1);return i.jsxs("div",{className:"relative",onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:[i.jsxs("div",{className:"w-[220px] overflow-hidden transition-all duration-150",style:{background:"#1c1f26",border:`1px solid ${n?"#2e323a":"#262a32"}`,borderRadius:4},children:[i.jsx(Gn,{id:"top",type:"target",position:Ln.Top,className:"!w-1 !h-1 !bg-transparent !border-0"}),i.jsx(Gn,{id:"bottom",type:"target",position:Ln.Bottom,className:"!w-1 !h-1 !bg-transparent !border-0"}),i.jsx(Gn,{id:"left",type:"target",position:Ln.Left,className:"!w-1 !h-1 !bg-transparent !border-0"}),i.jsx(Gn,{id:"right",type:"target",position:Ln.Right,className:"!w-1 !h-1 !bg-transparent !border-0"}),l&&i.jsx("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",style:{borderRadius:3},children:i.jsx("div",{className:"absolute left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent 0%, rgba(97,175,239,0.25) 50%, transparent 100%)",animation:"node-scan 3s ease-in-out infinite"}})}),i.jsxs("div",{className:"px-3 pt-2.5 pb-1.5",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"relative flex-shrink-0 w-[6px] h-[6px]",children:[i.jsx("span",{className:"absolute inset-0 rounded-sm",style:{background:u}}),l&&i.jsx("span",{className:"absolute inset-[-2px] rounded-sm",style:{background:u,opacity:.15,animation:"node-pulse-bar 2s ease-in-out infinite"}})]}),i.jsx("span",{className:"text-[12px] font-semibold text-[#e6e6e6] font-sans truncate flex-1 leading-none",children:s.name}),i.jsx("span",{className:"text-[7px] font-mono font-bold uppercase tracking-wider px-1 py-px rounded-sm",style:{color:u,background:u+"12"},children:BP[s.status]||s.status})]}),i.jsxs("div",{className:"flex items-center gap-1.5 mt-1.5",children:[i.jsx("span",{className:"text-[9px] font-mono text-[#505862] uppercase tracking-[0.05em]",children:s.role}),i.jsx("span",{className:"text-[9px] text-[#2a2e36]",children:"/"}),i.jsx("span",{className:"text-[9px] font-mono text-[#505862]",children:GP(s.model)})]})]}),i.jsxs("div",{className:"px-3 pt-1 pb-2",children:[i.jsxs("div",{className:"flex items-baseline gap-1.5",children:[i.jsx("span",{className:"text-[14px] font-mono font-medium text-[#bcc2cd] leading-none",children:rt(d)}),i.jsx("span",{className:"text-[8px] font-mono text-[#505862]",children:"tok"}),i.jsx("span",{className:"flex-1"}),i.jsxs("span",{className:"text-[9px] font-mono text-[#505862]",children:[o,"%"]})]}),i.jsx("div",{className:"mt-1.5 h-[2px] rounded-sm bg-[#262a32] overflow-hidden",children:i.jsx("div",{className:"h-full rounded-sm transition-all duration-700",style:{width:`${Math.max(o,1)}%`,background:o>80?"#e06c75":o>60?"#e5c07b":l?"#61afef":"#333842"}})})]})]}),O&&i.jsx(WP,{agent:s})]})});Wb.displayName="AgentNode";const Bb=v.memo(({data:t})=>{const{agentCount:n,runningCount:s}=t,l=s>0,o={background:"transparent",border:0,width:2,height:2};return i.jsxs("div",{className:"relative flex items-center justify-center",style:{width:84,height:84},children:[i.jsx("div",{className:le("absolute inset-0 rounded-full transition-all duration-500",l&&"animate-[spin-slow_30s_linear_infinite]"),style:{border:`1px dashed ${l?"rgba(97,175,239,0.5)":"rgba(97,175,239,0.25)"}`}}),i.jsx("div",{className:"absolute inset-[10px] rounded-full",style:{background:l?"radial-gradient(circle, rgba(97,175,239,0.15) 0%, transparent 70%)":"radial-gradient(circle, rgba(97,175,239,0.05) 0%, transparent 70%)",animation:l?"node-pulse-bar 2.5s ease-in-out infinite":"none"}}),i.jsx("div",{className:le("w-14 h-14 rounded-full flex items-center justify-center relative z-10 transition-all duration-300",l?"bg-[#1c1f26] border-2 border-[#61afef]/35 shadow-[0_0_28px_rgba(97,175,239,0.15)]":"bg-[#1c1f26] border border-[#61afef]/20"),children:i.jsx("img",{src:"/favicon.png",alt:"G",className:le("h-7 w-7 rounded-full transition-opacity",l?"opacity-90":"opacity-60")})}),n>0&&i.jsx("div",{className:le("absolute z-20 min-w-[20px] h-[20px] rounded-sm flex items-center justify-center","text-[10px] font-mono font-bold px-1 transition-all duration-300",l?"bg-[#1c1f26] text-[#61afef] border border-[#61afef]/40":"bg-[#1c1f26] text-[#61afef]/60 border border-[#61afef]/20"),style:{bottom:2,right:2},children:n}),i.jsx(Gn,{id:"bottom",type:"source",position:Ln.Bottom,style:o}),i.jsx(Gn,{id:"right",type:"source",position:Ln.Right,style:o}),i.jsx(Gn,{id:"left",type:"source",position:Ln.Left,style:o}),i.jsx(Gn,{id:"top",type:"source",position:Ln.Top,style:o})]})});Bb.displayName="RootNode";const HP={primary:"bg-accent/20 text-accent border border-accent/25 hover:bg-accent/30 font-medium",secondary:"bg-surface-5/40 text-text-1 border border-border-subtle hover:bg-surface-5/70 hover:text-text-0",ghost:"bg-transparent text-text-2 border border-transparent hover:bg-surface-5/50 hover:text-text-0",danger:"bg-danger/12 text-danger border border-danger/15 hover:bg-danger/20",info:"bg-info/12 text-info border border-info/15 hover:bg-info/20",outline:"bg-transparent text-accent border border-accent/30 hover:bg-accent/10"},IP={sm:"h-7 px-2.5 text-xs gap-1.5 rounded",md:"h-8 px-3 text-sm gap-2 rounded",lg:"h-9 px-4 text-sm gap-2 rounded",icon:"h-8 w-8 rounded"},je=v.forwardRef(({className:t,variant:n="secondary",size:s="md",children:l,...o},u)=>i.jsx("button",{ref:u,className:le("inline-flex items-center justify-center font-sans transition-colors duration-100","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent","disabled:opacity-40 disabled:pointer-events-none","cursor-pointer select-none",HP[n],IP[s],t),...o,children:l}));je.displayName="Button";const FP={default:"bg-surface-4 text-text-2",accent:"bg-accent/12 text-accent",success:"bg-success/12 text-success",warning:"bg-warning/12 text-warning",danger:"bg-danger/12 text-danger",info:"bg-info/12 text-info",purple:"bg-purple/12 text-purple",orange:"bg-orange/12 text-orange"};function We({children:t,variant:n="default",className:s,dot:l,...o}){return i.jsxs("span",{className:le("inline-flex items-center gap-1 px-1.5 py-0.5","text-2xs font-semibold uppercase tracking-wider rounded","font-sans select-none whitespace-nowrap",FP[n],s),...o,children:[l&&i.jsx("span",{className:le("w-1.5 h-1.5 rounded-full",l==="pulse"&&"animate-pulse"),style:{background:"currentColor"}}),t]})}const KP={agentNode:Wb,rootNode:Bb},Kg=220,Jg=82,_o=260,gO=130,Mn=4,Fa="__groove_root__";function bO(){try{return JSON.parse(localStorage.getItem("groove:nodePositions")||"{}")}catch{return{}}}function JP(t){try{localStorage.setItem("groove:nodePositions",JSON.stringify(t))}catch{}}function eN(){const t=D(N=>N.teams),n=D(N=>N.activeTeamId),s=D(N=>N.agents),l=D(N=>N.switchTeam),o=D(N=>N.createTeam),u=D(N=>N.deleteTeam),d=D(N=>N.renameTeam),[O,m]=v.useState(!1),[p,x]=v.useState(""),[g,b]=v.useState(null),[S,Q]=v.useState(""),k=v.useRef(!1);function T(){const N=p.trim();!N||k.current||(k.current=!0,x(""),m(!1),o(N).finally(()=>{k.current=!1}))}function j(N){b(N.id),Q(N.name)}function P(){const N=S.trim();if(!N||!g){b(null);return}d(g,N),b(null)}return i.jsxs("div",{className:"flex items-end px-0 pt-0 pb-0 bg-surface-1 border-b border-border gap-0 flex-shrink-0",children:[t.map(N=>{const A=s.filter($=>$.teamId===N.id).length,U=N.id===n,C=g===N.id,X=s.filter($=>$.teamId===N.id&&($.status==="running"||$.status==="starting")).length;return i.jsxs("div",{onClick:()=>!C&&l(N.id),onDoubleClick:()=>j(N),className:le("group relative flex items-center gap-2 px-4 h-9 text-xs font-sans cursor-pointer select-none transition-colors",U?"bg-surface-0 text-text-0 font-semibold border-x border-x-border":"text-text-3 hover:text-text-1 hover:bg-surface-3/50"),children:[U&&i.jsx("div",{className:"absolute top-0 left-0 right-0 h-px bg-accent",style:{height:"0.5px"}}),i.jsx(Zc,{size:13,className:U?"text-accent":"text-text-4"}),C?i.jsx("input",{value:S,onChange:$=>Q($.target.value),onKeyDown:$=>{$.key==="Enter"&&P(),$.key==="Escape"&&b(null)},onBlur:P,className:"h-5 w-24 px-1.5 text-xs bg-surface-0 border border-accent rounded text-text-0 font-sans focus:outline-none",autoFocus:!0,onClick:$=>$.stopPropagation()}):i.jsx("span",{className:"truncate max-w-[120px]",children:N.name}),A>0&&!C&&i.jsx("span",{className:le("flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full text-2xs font-mono font-semibold",X>0?"bg-accent/15 text-accent":"bg-surface-4 text-text-3"),children:A}),!C&&i.jsxs("div",{className:"flex items-center gap-0.5 ml-0.5 opacity-0 group-hover:opacity-100 transition-opacity",children:[i.jsx("button",{onClick:$=>{$.stopPropagation(),j(N)},className:"p-0.5 rounded hover:bg-surface-5 text-text-4 hover:text-text-1 cursor-pointer",title:"Rename team",children:i.jsx(Cc,{size:10})}),!N.isDefault&&i.jsx("button",{onClick:$=>{$.stopPropagation(),u(N.id)},className:"p-0.5 rounded hover:bg-surface-5 text-text-4 hover:text-danger cursor-pointer",title:"Delete team",children:i.jsx(Rt,{size:10})})]}),U&&i.jsx("div",{className:"absolute bottom-[-1px] left-0 right-0 h-px bg-surface-0"})]},N.id)}),O?i.jsxs("div",{className:"flex items-center gap-1.5 px-3 h-9 bg-surface-3/50",children:[i.jsx("input",{value:p,onChange:N=>x(N.target.value),onKeyDown:N=>{N.key==="Enter"&&T(),N.key==="Escape"&&(m(!1),x(""))},placeholder:"Team name...",className:"h-5 w-28 px-1.5 text-xs bg-surface-0 border border-border-subtle rounded text-text-0 font-sans placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent",autoFocus:!0}),i.jsx("button",{onClick:T,disabled:!p.trim(),className:"p-1 rounded text-accent hover:bg-accent/10 cursor-pointer disabled:opacity-30 disabled:cursor-not-allowed",children:i.jsx(oa,{size:12})}),i.jsx("button",{onClick:()=>{m(!1),x("")},className:"p-1 rounded text-text-4 hover:text-text-1 cursor-pointer",children:i.jsx(Rt,{size:12})})]}):i.jsx("button",{onClick:()=>m(!0),className:"flex items-center justify-center w-9 h-9 text-text-4 hover:text-text-1 hover:bg-surface-3/50 cursor-pointer transition-colors",title:"New team",children:i.jsx(Fn,{size:14})})]})}function tN(){const t=D(C=>C.agents),n=D(C=>C.activeTeamId),s=D(C=>C.tokenTimeline),l=D(C=>C.selectAgent),o=D(C=>C.closeDetail),u=v.useMemo(()=>t.filter(C=>C.teamId===n),[t,n]),{fitView:d}=xj(),[O,m]=v.useState(0),p=v.useMemo(()=>{const C=bO(),X=u.filter(re=>re.status==="running").length,$=[{id:Fa,type:"rootNode",position:C[Fa]||{x:0,y:0},data:{agentCount:u.length,runningCount:X},draggable:!0,selectable:!1}],W=new Set,E=(re,xe)=>`${Math.round(re/100)},${Math.round(xe/100)}`,ne=[];u.forEach((re,xe)=>{const ie=re.name||re.id;if(C[ie]){const J=C[ie];W.add(E(J.x,J.y)),$.push({id:re.id,type:"agentNode",position:J,data:{agent:re,timeline:s[re.id]||[]},draggable:!0,selectable:!0})}else ne.push({agent:re,index:xe})});for(const{agent:re,index:xe}of ne){const ie=Math.floor(xe/Mn),J=xe%Mn;let I={x:-((Math.min(u.length-ie*Mn,Mn)-1)*_o)/2+J*_o,y:140+ie*gO};for(;W.has(E(I.x,I.y));)I={x:I.x,y:I.y+gO};W.add(E(I.x,I.y)),$.push({id:re.id,type:"agentNode",position:I,data:{agent:re,timeline:s[re.id]||[]},draggable:!0,selectable:!0})}return $},[u,s]),x=v.useMemo(()=>{const C=bO(),X=C[Fa]||{x:0,y:0};return u.map(($,W)=>{const E=$.name||$.id,ne=Math.floor(W/Mn),re=W%Mn,ie=-((Math.min(u.length-ne*Mn,Mn)-1)*_o)/2,J=C[E]||{x:ie+re*_o,y:140+ne*gO},z=J.x+Kg/2-X.x,B=J.y+Jg/2-X.y;let I,fe;return Math.abs(B)>Math.abs(z)?(I=B>0?"bottom":"top",fe=B>0?"top":"bottom"):(I=z>0?"right":"left",fe=z>0?"left":"right"),{id:`e-${Fa}-${$.id}`,source:Fa,target:$.id,sourceHandle:I,targetHandle:fe,type:"default",animated:$.status==="running"}})},[u]),[g,b,S]=gj(p),[Q,k,T]=bj(x),j=v.useRef(new Set);v.useEffect(()=>{b(C=>{const X=new Map(C.map($=>[$.id,$]));return new Set(p.map($=>$.id)),p.map($=>{const W=X.get($.id);return W?{...W,data:$.data}:$})})},[p,b]),v.useEffect(()=>{k(x)},[x,k]),v.useEffect(()=>{const C=new Set(u.map($=>$.id)),X=u.length>0&&[...C].some($=>!j.current.has($));j.current=C,O===0&&u.length>0?setTimeout(()=>d({padding:.3,maxZoom:1.2,duration:0}),50):X&&setTimeout(()=>d({padding:.3,maxZoom:1.2,duration:300}),100),m(u.length)},[u.length,u,O,d]);const P=v.useCallback((C,X)=>{X.id!==Fa&&l(X.id)},[l]),N=v.useCallback(()=>{o()},[o]),A=v.useCallback((C,X)=>{const $=g.find(E=>E.id===Fa);if(!$)return;const W=$.position;k(E=>E.map(ne=>{const re=ne.source===X.id,xe=ne.target===X.id;if(!re&&!xe)return ne;const ie=X.position,J=ie.x+Kg/2-W.x,z=ie.y+Jg/2-W.y;let B,I;return Math.abs(z)>Math.abs(J)?(B=z>0?"bottom":"top",I=z>0?"top":"bottom"):(B=J>0?"right":"left",I=J>0?"left":"right"),{...ne,sourceHandle:B,targetHandle:I}}))},[g,k]),U=v.useCallback((C,X)=>{const $=u.find(ne=>ne.id===X.id),W=X.id===Fa?Fa:($==null?void 0:$.name)||X.id,E=bO();E[W]=X.position,JP(E)},[u]);return i.jsx(vj,{nodes:g,edges:Q,nodeTypes:KP,onNodesChange:S,onEdgesChange:T,onNodeClick:P,onPaneClick:N,onNodeDrag:A,onNodeDragStop:U,defaultViewport:{x:0,y:0,zoom:1.2},proOptions:{hideAttribution:!0},minZoom:.2,maxZoom:1.5,className:"bg-surface-2",children:i.jsx(yj,{color:"rgba(97,175,239,0.03)",gap:24,size:1})})}function aN({onPlanner:t,onSpawn:n}){return i.jsx("div",{className:"w-full h-full flex items-center justify-center",children:i.jsxs("div",{className:"max-w-2xl w-full text-center space-y-10 px-8",children:[i.jsxs("div",{className:"relative mx-auto w-20 h-20",children:[i.jsx("div",{className:"absolute inset-0 rounded-full bg-accent/8 animate-pulse"}),i.jsx("div",{className:"absolute inset-1 rounded-full bg-surface-3 border border-border-subtle flex items-center justify-center shadow-lg shadow-accent/5",children:i.jsx("img",{src:"/favicon.png",alt:"Groove",className:"h-10 w-10 rounded-full"})})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("h1",{className:"text-3xl font-bold text-text-0 font-sans tracking-tight",children:"Welcome to Groove"}),i.jsx("p",{className:"text-base text-text-2 font-sans max-w-md mx-auto leading-relaxed",children:"Your mission control for AI agents. Spawn, orchestrate, and ship faster than ever."})]}),i.jsxs("div",{className:"space-y-3 max-w-xl mx-auto",children:[i.jsxs("button",{onClick:t,className:"w-full flex items-center gap-4 p-5 rounded-lg border border-accent/25 bg-gradient-to-r from-accent/8 to-accent/3 hover:from-accent/14 hover:to-accent/6 hover:border-accent/40 transition-all cursor-pointer group text-left",children:[i.jsx("div",{className:"w-12 h-12 rounded-lg bg-accent/20 flex items-center justify-center group-hover:scale-110 transition-transform flex-shrink-0",children:i.jsx(Na,{size:24,className:"text-accent"})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"text-base font-semibold text-text-0 font-sans",children:"Start with a Planner"}),i.jsx("div",{className:"text-sm text-text-2 font-sans mt-0.5",children:"Describe what you want to build and let AI plan the perfect team"})]}),i.jsx("div",{className:"text-accent text-xs font-semibold font-sans flex-shrink-0 opacity-60 group-hover:opacity-100 transition-opacity",children:"Recommended"})]}),i.jsxs("button",{onClick:n,className:"w-full flex items-center gap-3 p-4 rounded-lg border border-border bg-surface-1 hover:bg-surface-2 hover:border-border transition-all cursor-pointer group text-left",children:[i.jsx("div",{className:"w-10 h-10 rounded-lg bg-surface-4 flex items-center justify-center group-hover:scale-110 transition-transform flex-shrink-0",children:i.jsx(Fn,{size:20,className:"text-text-1"})}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"text-sm font-semibold text-text-0 font-sans",children:"Spawn Agent"}),i.jsx("div",{className:"text-xs text-text-3 font-sans mt-0.5",children:"Choose a role and configure"})]})]})]}),i.jsxs("p",{className:"text-xs text-text-4 font-sans",children:[i.jsx("kbd",{className:"font-mono bg-surface-4 px-1.5 py-0.5 rounded text-text-3",children:"Cmd+K"}),i.jsx("span",{className:"mx-1.5",children:"command palette"}),i.jsx("span",{className:"text-text-4 mx-1",children:"·"}),i.jsx("kbd",{className:"font-mono bg-surface-4 px-1.5 py-0.5 rounded text-text-3",children:"Cmd+N"}),i.jsx("span",{className:"mx-1.5",children:"spawn"}),i.jsx("span",{className:"text-text-4 mx-1",children:"·"}),i.jsx("kbd",{className:"font-mono bg-surface-4 px-1.5 py-0.5 rounded text-text-3",children:"Cmd+J"}),i.jsx("span",{className:"mx-1.5",children:"terminal"})]})]})})}const nN={backend:Mb,frontend:Df,fullstack:dn,testing:If,security:Fr};function sN(){var p;const t=D(x=>x.recommendedTeam),n=D(x=>x.launchRecommendedTeam);D(x=>x.checkRecommendedTeam);const[s,l]=v.useState(!1);if(!((p=t==null?void 0:t.agents)!=null&&p.length))return null;const o=t.agents,u=o.filter(x=>!x.phase||x.phase===1),d=o.filter(x=>x.phase===2);async function O(){l(!0);try{await n()}catch{}l(!1)}function m(){D.setState({recommendedTeam:null})}return i.jsx("div",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 z-50 w-full max-w-lg",children:i.jsxs("div",{className:"mx-4 rounded-lg border border-accent/30 bg-surface-2/95 backdrop-blur-md shadow-xl shadow-accent/5 overflow-hidden",children:[i.jsxs("div",{className:"px-4 py-3 border-b border-border-subtle flex items-center gap-2",children:[i.jsx(qb,{size:16,className:"text-accent"}),i.jsx("span",{className:"text-sm font-semibold text-text-0 font-sans flex-1",children:"Planner Recommends a Team"}),i.jsx("button",{onClick:m,className:"text-text-4 hover:text-text-1 cursor-pointer",children:i.jsx(Rt,{size:14})})]}),i.jsxs("div",{className:"px-4 py-3 space-y-2",children:[i.jsx("div",{className:"flex flex-wrap gap-2",children:u.map((x,g)=>{var S;const b=nN[x.role]||dn;return i.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-md bg-surface-4 border border-border-subtle",children:[i.jsx(b,{size:12,className:"text-text-2"}),i.jsx("span",{className:"text-xs font-semibold text-text-0 font-sans capitalize",children:x.name||x.role}),((S=x.scope)==null?void 0:S.length)>0&&i.jsxs("span",{className:"text-2xs text-text-4 font-mono",children:[x.scope[0],x.scope.length>1?` +${x.scope.length-1}`:""]})]},g)})}),t.projectDir&&i.jsxs("div",{className:"flex items-center gap-1.5 text-2xs text-text-2 font-mono",children:[i.jsx("span",{className:"text-text-4",children:"Project:"}),i.jsxs("span",{className:"text-accent",children:[t.projectDir,"/"]})]}),d.length>0&&i.jsxs("div",{className:"flex items-center gap-1.5 text-2xs text-text-3 font-sans",children:[i.jsx(Fr,{size:10}),i.jsxs("span",{children:[d.length," QC agent",d.length>1?"s":""," will auto-spawn after builders complete"]})]})]}),i.jsx("div",{className:"px-4 py-3 border-t border-border-subtle",children:i.jsxs(je,{variant:"primary",size:"md",onClick:O,disabled:s,className:"w-full gap-2",children:[i.jsx(Na,{size:14}),s?"Launching...":`Launch ${u.length} Agent${u.length>1?"s":""}`]})})]})})}function e1(){const t=D(b=>b.agents),n=D(b=>b.activeTeamId),s=D(b=>b.openDetail),l=D(b=>b.spawnAgent),o=D(b=>b.selectAgent);D(b=>b.recommendedTeam);const u=D(b=>b.checkRecommendedTeam);v.useEffect(()=>{if(!t.some(Q=>Q.role==="planner"&&(Q.status==="running"||Q.status==="starting")))return;const S=setInterval(()=>u(),5e3);return()=>clearInterval(S)},[t,u]);async function d(){try{const b=await l({role:"planner"});b!=null&&b.id&&o(b.id)}catch{}}const O=t.filter(b=>b.teamId===n),m=D(b=>b.hydrated),[p,x]=v.useState(!0);v.useEffect(()=>{const b=setTimeout(()=>x(!1),1200);return()=>clearTimeout(b)},[]);const g=p||!m;return i.jsxs("div",{className:"flex flex-col h-full relative",children:[i.jsx(eN,{}),i.jsx("div",{className:"flex-1 min-h-0",children:g?i.jsxs("div",{className:le("flex flex-col items-center justify-center h-full transition-opacity duration-500",!p&&m?"opacity-0":"opacity-100"),children:[i.jsxs("div",{className:"relative w-12 h-12 mb-5",children:[i.jsx("span",{className:"absolute inset-0 rounded-full border-2 border-accent/20 animate-ping",style:{animationDuration:"2s"}}),i.jsx("span",{className:"absolute inset-0 rounded-full border-2 border-transparent border-t-accent animate-spin",style:{animationDuration:"1s"}}),i.jsx("span",{className:"absolute inset-[6px] rounded-full bg-accent/8 flex items-center justify-center",children:i.jsx(Na,{size:16,className:"text-accent animate-pulse"})})]}),i.jsx("p",{className:"text-sm font-medium text-text-1 font-sans animate-pulse",children:"Connecting to agents"}),i.jsx("p",{className:"text-xs text-text-3 font-sans mt-1",children:"Syncing with daemon..."})]}):O.length===0?i.jsx(aN,{onPlanner:d,onSpawn:()=>s({type:"spawn"})}):i.jsx(pj,{children:i.jsx(tN,{})})}),i.jsx(sN,{})]})}var lN=v.createContext(void 0);function Jf(t){const n=v.useContext(lN);return t||n||"ltr"}function rN(t,[n,s]){return Math.min(s,Math.max(n,t))}function iN(t,n){return v.useReducer((s,l)=>n[s][l]??s,t)}var eh="ScrollArea",[Hb]=Ns(eh),[oN,ca]=Hb(eh),Ib=v.forwardRef((t,n)=>{const{__scopeScrollArea:s,type:l="hover",dir:o,scrollHideDelay:u=600,...d}=t,[O,m]=v.useState(null),[p,x]=v.useState(null),[g,b]=v.useState(null),[S,Q]=v.useState(null),[k,T]=v.useState(null),[j,P]=v.useState(0),[N,A]=v.useState(0),[U,C]=v.useState(!1),[X,$]=v.useState(!1),W=it(n,ne=>m(ne)),E=Jf(o);return i.jsx(oN,{scope:s,type:l,dir:E,scrollHideDelay:u,scrollArea:O,viewport:p,onViewportChange:x,content:g,onContentChange:b,scrollbarX:S,onScrollbarXChange:Q,scrollbarXEnabled:U,onScrollbarXEnabledChange:C,scrollbarY:k,onScrollbarYChange:T,scrollbarYEnabled:X,onScrollbarYEnabledChange:$,onCornerWidthChange:P,onCornerHeightChange:A,children:i.jsx(Be.div,{dir:E,...d,ref:W,style:{position:"relative","--radix-scroll-area-corner-width":j+"px","--radix-scroll-area-corner-height":N+"px",...t.style}})})});Ib.displayName=eh;var Fb="ScrollAreaViewport",Kb=v.forwardRef((t,n)=>{const{__scopeScrollArea:s,children:l,nonce:o,...u}=t,d=ca(Fb,s),O=v.useRef(null),m=it(n,O,d.onViewportChange);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),i.jsx(Be.div,{"data-radix-scroll-area-viewport":"",...u,ref:m,style:{overflowX:d.scrollbarXEnabled?"scroll":"hidden",overflowY:d.scrollbarYEnabled?"scroll":"hidden",...t.style},children:i.jsx("div",{ref:d.onContentChange,style:{minWidth:"100%",display:"table"},children:l})})]})});Kb.displayName=Fb;var za="ScrollAreaScrollbar",Jb=v.forwardRef((t,n)=>{const{forceMount:s,...l}=t,o=ca(za,t.__scopeScrollArea),{onScrollbarXEnabledChange:u,onScrollbarYEnabledChange:d}=o,O=t.orientation==="horizontal";return v.useEffect(()=>(O?u(!0):d(!0),()=>{O?u(!1):d(!1)}),[O,u,d]),o.type==="hover"?i.jsx(cN,{...l,ref:n,forceMount:s}):o.type==="scroll"?i.jsx(uN,{...l,ref:n,forceMount:s}):o.type==="auto"?i.jsx(ev,{...l,ref:n,forceMount:s}):o.type==="always"?i.jsx(th,{...l,ref:n}):null});Jb.displayName=za;var cN=v.forwardRef((t,n)=>{const{forceMount:s,...l}=t,o=ca(za,t.__scopeScrollArea),[u,d]=v.useState(!1);return v.useEffect(()=>{const O=o.scrollArea;let m=0;if(O){const p=()=>{window.clearTimeout(m),d(!0)},x=()=>{m=window.setTimeout(()=>d(!1),o.scrollHideDelay)};return O.addEventListener("pointerenter",p),O.addEventListener("pointerleave",x),()=>{window.clearTimeout(m),O.removeEventListener("pointerenter",p),O.removeEventListener("pointerleave",x)}}},[o.scrollArea,o.scrollHideDelay]),i.jsx(ba,{present:s||u,children:i.jsx(ev,{"data-state":u?"visible":"hidden",...l,ref:n})})}),uN=v.forwardRef((t,n)=>{const{forceMount:s,...l}=t,o=ca(za,t.__scopeScrollArea),u=t.orientation==="horizontal",d=qc(()=>m("SCROLL_END"),100),[O,m]=iN("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return v.useEffect(()=>{if(O==="idle"){const p=window.setTimeout(()=>m("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(p)}},[O,o.scrollHideDelay,m]),v.useEffect(()=>{const p=o.viewport,x=u?"scrollLeft":"scrollTop";if(p){let g=p[x];const b=()=>{const S=p[x];g!==S&&(m("SCROLL"),d()),g=S};return p.addEventListener("scroll",b),()=>p.removeEventListener("scroll",b)}},[o.viewport,u,m,d]),i.jsx(ba,{present:s||O!=="hidden",children:i.jsx(th,{"data-state":O==="hidden"?"hidden":"visible",...l,ref:n,onPointerEnter:Ee(t.onPointerEnter,()=>m("POINTER_ENTER")),onPointerLeave:Ee(t.onPointerLeave,()=>m("POINTER_LEAVE"))})})}),ev=v.forwardRef((t,n)=>{const s=ca(za,t.__scopeScrollArea),{forceMount:l,...o}=t,[u,d]=v.useState(!1),O=t.orientation==="horizontal",m=qc(()=>{if(s.viewport){const p=s.viewport.offsetWidth<s.viewport.scrollWidth,x=s.viewport.offsetHeight<s.viewport.scrollHeight;d(O?p:x)}},10);return zl(s.viewport,m),zl(s.content,m),i.jsx(ba,{present:l||u,children:i.jsx(th,{"data-state":u?"visible":"hidden",...o,ref:n})})}),th=v.forwardRef((t,n)=>{const{orientation:s="vertical",...l}=t,o=ca(za,t.__scopeScrollArea),u=v.useRef(null),d=v.useRef(0),[O,m]=v.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),p=lv(O.viewport,O.content),x={...l,sizes:O,onSizesChange:m,hasThumb:p>0&&p<1,onThumbChange:b=>u.current=b,onThumbPointerUp:()=>d.current=0,onThumbPointerDown:b=>d.current=b};function g(b,S){return pN(b,d.current,O,S)}return s==="horizontal"?i.jsx(dN,{...x,ref:n,onThumbPositionChange:()=>{if(o.viewport&&u.current){const b=o.viewport.scrollLeft,S=t1(b,O,o.dir);u.current.style.transform=`translate3d(${S}px, 0, 0)`}},onWheelScroll:b=>{o.viewport&&(o.viewport.scrollLeft=b)},onDragScroll:b=>{o.viewport&&(o.viewport.scrollLeft=g(b,o.dir))}}):s==="vertical"?i.jsx(ON,{...x,ref:n,onThumbPositionChange:()=>{if(o.viewport&&u.current){const b=o.viewport.scrollTop,S=t1(b,O);u.current.style.transform=`translate3d(0, ${S}px, 0)`}},onWheelScroll:b=>{o.viewport&&(o.viewport.scrollTop=b)},onDragScroll:b=>{o.viewport&&(o.viewport.scrollTop=g(b))}}):null}),dN=v.forwardRef((t,n)=>{const{sizes:s,onSizesChange:l,...o}=t,u=ca(za,t.__scopeScrollArea),[d,O]=v.useState(),m=v.useRef(null),p=it(n,m,u.onScrollbarXChange);return v.useEffect(()=>{m.current&&O(getComputedStyle(m.current))},[m]),i.jsx(av,{"data-orientation":"horizontal",...o,ref:p,sizes:s,style:{bottom:0,left:u.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:u.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Ec(s)+"px",...t.style},onThumbPointerDown:x=>t.onThumbPointerDown(x.x),onDragScroll:x=>t.onDragScroll(x.x),onWheelScroll:(x,g)=>{if(u.viewport){const b=u.viewport.scrollLeft+x.deltaX;t.onWheelScroll(b),iv(b,g)&&x.preventDefault()}},onResize:()=>{m.current&&u.viewport&&d&&l({content:u.viewport.scrollWidth,viewport:u.viewport.offsetWidth,scrollbar:{size:m.current.clientWidth,paddingStart:Oc(d.paddingLeft),paddingEnd:Oc(d.paddingRight)}})}})}),ON=v.forwardRef((t,n)=>{const{sizes:s,onSizesChange:l,...o}=t,u=ca(za,t.__scopeScrollArea),[d,O]=v.useState(),m=v.useRef(null),p=it(n,m,u.onScrollbarYChange);return v.useEffect(()=>{m.current&&O(getComputedStyle(m.current))},[m]),i.jsx(av,{"data-orientation":"vertical",...o,ref:p,sizes:s,style:{top:0,right:u.dir==="ltr"?0:void 0,left:u.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Ec(s)+"px",...t.style},onThumbPointerDown:x=>t.onThumbPointerDown(x.y),onDragScroll:x=>t.onDragScroll(x.y),onWheelScroll:(x,g)=>{if(u.viewport){const b=u.viewport.scrollTop+x.deltaY;t.onWheelScroll(b),iv(b,g)&&x.preventDefault()}},onResize:()=>{m.current&&u.viewport&&d&&l({content:u.viewport.scrollHeight,viewport:u.viewport.offsetHeight,scrollbar:{size:m.current.clientHeight,paddingStart:Oc(d.paddingTop),paddingEnd:Oc(d.paddingBottom)}})}})}),[fN,tv]=Hb(za),av=v.forwardRef((t,n)=>{const{__scopeScrollArea:s,sizes:l,hasThumb:o,onThumbChange:u,onThumbPointerUp:d,onThumbPointerDown:O,onThumbPositionChange:m,onDragScroll:p,onWheelScroll:x,onResize:g,...b}=t,S=ca(za,s),[Q,k]=v.useState(null),T=it(n,W=>k(W)),j=v.useRef(null),P=v.useRef(""),N=S.viewport,A=l.content-l.viewport,U=zt(x),C=zt(m),X=qc(g,10);function $(W){if(j.current){const E=W.clientX-j.current.left,ne=W.clientY-j.current.top;p({x:E,y:ne})}}return v.useEffect(()=>{const W=E=>{const ne=E.target;(Q==null?void 0:Q.contains(ne))&&U(E,A)};return document.addEventListener("wheel",W,{passive:!1}),()=>document.removeEventListener("wheel",W,{passive:!1})},[N,Q,A,U]),v.useEffect(C,[l,C]),zl(Q,X),zl(S.content,X),i.jsx(fN,{scope:s,scrollbar:Q,hasThumb:o,onThumbChange:zt(u),onThumbPointerUp:zt(d),onThumbPositionChange:C,onThumbPointerDown:zt(O),children:i.jsx(Be.div,{...b,ref:T,style:{position:"absolute",...b.style},onPointerDown:Ee(t.onPointerDown,W=>{W.button===0&&(W.target.setPointerCapture(W.pointerId),j.current=Q.getBoundingClientRect(),P.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",S.viewport&&(S.viewport.style.scrollBehavior="auto"),$(W))}),onPointerMove:Ee(t.onPointerMove,$),onPointerUp:Ee(t.onPointerUp,W=>{const E=W.target;E.hasPointerCapture(W.pointerId)&&E.releasePointerCapture(W.pointerId),document.body.style.webkitUserSelect=P.current,S.viewport&&(S.viewport.style.scrollBehavior=""),j.current=null})})})}),dc="ScrollAreaThumb",nv=v.forwardRef((t,n)=>{const{forceMount:s,...l}=t,o=tv(dc,t.__scopeScrollArea);return i.jsx(ba,{present:s||o.hasThumb,children:i.jsx(hN,{ref:n,...l})})}),hN=v.forwardRef((t,n)=>{const{__scopeScrollArea:s,style:l,...o}=t,u=ca(dc,s),d=tv(dc,s),{onThumbPositionChange:O}=d,m=it(n,g=>d.onThumbChange(g)),p=v.useRef(void 0),x=qc(()=>{p.current&&(p.current(),p.current=void 0)},100);return v.useEffect(()=>{const g=u.viewport;if(g){const b=()=>{if(x(),!p.current){const S=xN(g,O);p.current=S,O()}};return O(),g.addEventListener("scroll",b),()=>g.removeEventListener("scroll",b)}},[u.viewport,x,O]),i.jsx(Be.div,{"data-state":d.hasThumb?"visible":"hidden",...o,ref:m,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...l},onPointerDownCapture:Ee(t.onPointerDownCapture,g=>{const S=g.target.getBoundingClientRect(),Q=g.clientX-S.left,k=g.clientY-S.top;d.onThumbPointerDown({x:Q,y:k})}),onPointerUp:Ee(t.onPointerUp,d.onThumbPointerUp)})});nv.displayName=dc;var ah="ScrollAreaCorner",sv=v.forwardRef((t,n)=>{const s=ca(ah,t.__scopeScrollArea),l=!!(s.scrollbarX&&s.scrollbarY);return s.type!=="scroll"&&l?i.jsx(mN,{...t,ref:n}):null});sv.displayName=ah;var mN=v.forwardRef((t,n)=>{const{__scopeScrollArea:s,...l}=t,o=ca(ah,s),[u,d]=v.useState(0),[O,m]=v.useState(0),p=!!(u&&O);return zl(o.scrollbarX,()=>{var g;const x=((g=o.scrollbarX)==null?void 0:g.offsetHeight)||0;o.onCornerHeightChange(x),m(x)}),zl(o.scrollbarY,()=>{var g;const x=((g=o.scrollbarY)==null?void 0:g.offsetWidth)||0;o.onCornerWidthChange(x),d(x)}),p?i.jsx(Be.div,{...l,ref:n,style:{width:u,height:O,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...t.style}}):null});function Oc(t){return t?parseInt(t,10):0}function lv(t,n){const s=t/n;return isNaN(s)?0:s}function Ec(t){const n=lv(t.viewport,t.content),s=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,l=(t.scrollbar.size-s)*n;return Math.max(l,18)}function pN(t,n,s,l="ltr"){const o=Ec(s),u=o/2,d=n||u,O=o-d,m=s.scrollbar.paddingStart+d,p=s.scrollbar.size-s.scrollbar.paddingEnd-O,x=s.content-s.viewport,g=l==="ltr"?[0,x]:[x*-1,0];return rv([m,p],g)(t)}function t1(t,n,s="ltr"){const l=Ec(n),o=n.scrollbar.paddingStart+n.scrollbar.paddingEnd,u=n.scrollbar.size-o,d=n.content-n.viewport,O=u-l,m=s==="ltr"?[0,d]:[d*-1,0],p=rN(t,m);return rv([0,d],[0,O])(p)}function rv(t,n){return s=>{if(t[0]===t[1]||n[0]===n[1])return n[0];const l=(n[1]-n[0])/(t[1]-t[0]);return n[0]+l*(s-t[0])}}function iv(t,n){return t>0&&t<n}var xN=(t,n=()=>{})=>{let s={left:t.scrollLeft,top:t.scrollTop},l=0;return(function o(){const u={left:t.scrollLeft,top:t.scrollTop},d=s.left!==u.left,O=s.top!==u.top;(d||O)&&n(),s=u,l=window.requestAnimationFrame(o)})(),()=>window.cancelAnimationFrame(l)};function qc(t,n){const s=zt(t),l=v.useRef(0);return v.useEffect(()=>()=>window.clearTimeout(l.current),[]),v.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(s,n)},[s,n])}function zl(t,n){const s=zt(n);ln(()=>{let l=0;if(t){const o=new ResizeObserver(()=>{cancelAnimationFrame(l),l=window.requestAnimationFrame(s)});return o.observe(t),()=>{window.cancelAnimationFrame(l),o.unobserve(t)}}},[t,s])}var gN=Ib,bN=Kb,a1=Jb,n1=nv,vN=sv;function Ht({children:t,className:n,...s}){return i.jsxs(gN,{className:le("overflow-hidden",n),...s,children:[i.jsx(bN,{className:"h-full w-full rounded-[inherit]",children:t}),i.jsx(a1,{orientation:"vertical",className:"flex touch-none select-none p-0.5 transition-colors w-2",children:i.jsx(n1,{className:"relative flex-1 rounded-full bg-surface-5 hover:bg-surface-6"})}),i.jsx(a1,{orientation:"horizontal",className:"flex touch-none select-none flex-col p-0.5 transition-colors h-2",children:i.jsx(n1,{className:"relative flex-1 rounded-full bg-surface-5 hover:bg-surface-6"})}),i.jsx(vN,{})]})}const yN={js:"text-warning",jsx:"text-warning",ts:"text-info",tsx:"text-info",css:"text-info",html:"text-orange",json:"text-warning",md:"text-text-2",py:"text-success",rs:"text-orange",go:"text-accent",sh:"text-success",yaml:"text-danger",yml:"text-danger",sql:"text-purple",xml:"text-orange",svg:"text-warning"};function SN(t){var s;const n=(s=t.split(".").pop())==null?void 0:s.toLowerCase();return yN[n]||"text-text-3"}function QN({x:t,y:n,items:s,onClose:l}){const o=v.useRef(null);return v.useEffect(()=>{function u(d){o.current&&!o.current.contains(d.target)&&l()}return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[l]),i.jsx("div",{ref:o,className:"fixed z-50 min-w-[160px] py-1 bg-surface-2 border border-border rounded-lg shadow-xl",style:{left:t,top:n},children:s.map((u,d)=>u.separator?i.jsx("div",{className:"h-px bg-border-subtle my-1"},d):i.jsxs("button",{onClick:()=>{u.action(),l()},className:le("w-full flex items-center gap-2.5 px-3 py-1.5 text-xs font-sans text-left cursor-pointer transition-colors",u.danger?"text-danger hover:bg-danger/10":"text-text-1 hover:bg-surface-5"),children:[u.icon&&i.jsx(u.icon,{size:12,className:u.danger?"text-danger":"text-text-3"}),u.label]},d))})}function fc({defaultValue:t="",placeholder:n,onSubmit:s,onCancel:l,depth:o=0}){const[u,d]=v.useState(t),O=v.useRef(null);v.useEffect(()=>{var p,x;(p=O.current)==null||p.focus(),t&&((x=O.current)==null||x.select())},[t]);function m(p){if(p.key==="Enter"){const x=u.trim();x&&s(x)}p.key==="Escape"&&l()}return i.jsx("div",{className:"flex items-center py-0.5",style:{paddingLeft:o*16+8},children:i.jsx("input",{ref:O,value:u,onChange:p=>d(p.target.value),onKeyDown:m,onBlur:l,placeholder:n,className:"w-full h-5 px-1.5 text-xs bg-surface-0 border border-accent rounded text-text-0 font-sans focus:outline-none"})})}function ov({entry:t,depth:n=0,activePath:s,onFileClick:l,onDirToggle:o,expanded:u,onContextMenu:d}){const O=t.type==="dir",m=s===t.path,p=u.has(t.path),x=n*16+8;function g(b){b.preventDefault(),b.stopPropagation(),d(b,t)}return i.jsxs("button",{onClick:()=>O?o(t.path):l(t.path),onContextMenu:g,className:le("w-full flex items-center gap-1.5 py-1 text-xs font-sans cursor-pointer","hover:bg-surface-5 transition-colors text-left select-none",m&&"bg-accent/10 text-text-0",!m&&"text-text-1"),style:{paddingLeft:x},children:[O?i.jsxs(i.Fragment,{children:[p?i.jsx(In,{size:12,className:"text-text-4 flex-shrink-0"}):i.jsx(ii,{size:12,className:"text-text-4 flex-shrink-0"}),p?i.jsx(Hr,{size:14,className:"text-accent flex-shrink-0"}):i.jsx(iT,{size:14,className:"text-text-3 flex-shrink-0"})]}):i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"w-3"}),i.jsx(K5,{size:14,className:le("flex-shrink-0",SN(t.name))})]}),i.jsx("span",{className:"truncate",children:t.name})]})}function cv({dirPath:t,depth:n,activePath:s,onFileClick:l,expanded:o,onDirToggle:u,treeCache:d,fetchTreeDir:O,onContextMenu:m,inlineInput:p}){const x=d[t]||[];return v.useEffect(()=>{o.has(t)&&!d[t]&&O(t)},[o,t,d,O]),o.has(t)?i.jsxs(i.Fragment,{children:[(p==null?void 0:p.parentPath)===t&&i.jsx(fc,{placeholder:p.type==="file"?"filename.ext":"folder-name",onSubmit:p.onSubmit,onCancel:p.onCancel,depth:n}),x.map(g=>i.jsxs("div",{children:[(p==null?void 0:p.renamePath)===g.path?i.jsx(fc,{defaultValue:g.name,onSubmit:p.onSubmit,onCancel:p.onCancel,depth:n}):i.jsx(ov,{entry:g,depth:n,activePath:s,onFileClick:l,onDirToggle:u,expanded:o,onContextMenu:m}),g.type==="dir"&&i.jsx(cv,{dirPath:g.path,depth:n+1,activePath:s,onFileClick:l,expanded:o,onDirToggle:u,treeCache:d,fetchTreeDir:O,onContextMenu:m,inlineInput:p})]},g.path))]}):null}function jN({rootDir:t}){const n=D($=>$.editorTreeCache),s=D($=>$.editorActiveFile),l=D($=>$.openFile),o=D($=>$.fetchTreeDir),u=D($=>$.addToast),[d,O]=v.useState(new Set([""])),[m,p]=v.useState(""),[x,g]=v.useState(null),[b,S]=v.useState(null);v.useEffect(()=>{o("")},[o,t]);function Q($){O(W=>{const E=new Set(W);return E.has($)?E.delete($):E.add($),E})}function k($,W){g({x:$.clientX,y:$.clientY,entry:W})}function T($){$.preventDefault(),g({x:$.clientX,y:$.clientY,entry:{type:"dir",path:"",name:"root"}})}function j($){const W=$.split("/");return W.pop(),W.join("/")}async function P($){O(W=>new Set([...W,$])),S({type:"file",parentPath:$,onSubmit:async W=>{const E=$?`${$}/${W}`:W;try{await ee.post("/files/create",{path:E,content:""}),o($),l(E),u("success",`Created ${W}`)}catch(ne){u("error","Create failed",ne.message)}S(null)},onCancel:()=>S(null)})}async function N($){O(W=>new Set([...W,$])),S({type:"folder",parentPath:$,onSubmit:async W=>{const E=$?`${$}/${W}`:W;try{await ee.post("/files/mkdir",{path:E}),o($),O(ne=>new Set([...ne,E])),u("success",`Created ${W}/`)}catch(ne){u("error","Create folder failed",ne.message)}S(null)},onCancel:()=>S(null)})}async function A($){S({type:"rename",renamePath:$.path,onSubmit:async W=>{const E=j($.path),ne=E?`${E}/${W}`:W;try{await ee.post("/files/rename",{oldPath:$.path,newPath:ne}),o(E),u("success",`Renamed to ${W}`)}catch(re){u("error","Rename failed",re.message)}S(null)},onCancel:()=>S(null)})}async function U($){const W=$.type==="dir"?`folder "${$.name}" and all contents`:`"${$.name}"`;if(window.confirm(`Delete ${W}?`))try{await ee.delete(`/files/delete?path=${encodeURIComponent($.path)}`),o(j($.path)),u("success",`Deleted ${$.name}`)}catch(E){u("error","Delete failed",E.message)}}function C($){const W=$.type==="dir",E=[];return W&&(E.push({icon:mO,label:"New File",action:()=>P($.path)}),E.push({icon:pO,label:"New Folder",action:()=>N($.path)})),$.name!=="root"?(E.length>0&&E.push({separator:!0}),E.push({icon:Cc,label:"Rename",action:()=>A($)}),E.push({icon:Xc,label:"Delete",danger:!0,action:()=>U($)})):(E.length=0,E.push({icon:mO,label:"New File",action:()=>P("")}),E.push({icon:pO,label:"New Folder",action:()=>N("")})),E}const X=n[""]||[];return i.jsxs("div",{className:"flex flex-col h-full bg-surface-1",onContextMenu:T,children:[i.jsxs("div",{className:"flex items-center gap-1 px-2 py-1.5 border-b border-border-subtle",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(ql,{size:12,className:"absolute left-2 top-1/2 -translate-y-1/2 text-text-4"}),i.jsx("input",{value:m,onChange:$=>p($.target.value),placeholder:"Filter...",className:"w-full h-6 pl-6 pr-2 text-xs bg-surface-0 border border-border-subtle rounded text-text-1 placeholder:text-text-4 focus:outline-none focus:border-accent font-sans"})]}),i.jsx("button",{onClick:()=>P(""),className:"p-1 text-text-4 hover:text-text-1 transition-colors cursor-pointer",title:"New file",children:i.jsx(mO,{size:12})}),i.jsx("button",{onClick:()=>N(""),className:"p-1 text-text-4 hover:text-text-1 transition-colors cursor-pointer",title:"New folder",children:i.jsx(pO,{size:12})}),i.jsx("button",{onClick:()=>o(""),className:"p-1 text-text-4 hover:text-text-1 transition-colors cursor-pointer",title:"Refresh",children:i.jsx(es,{size:12})})]}),i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"py-1",children:[(b==null?void 0:b.parentPath)===""&&i.jsx(fc,{placeholder:b.type==="file"?"filename.ext":"folder-name",onSubmit:b.onSubmit,onCancel:b.onCancel,depth:0}),X.filter($=>!m||$.name.toLowerCase().includes(m.toLowerCase())).map($=>i.jsxs("div",{children:[(b==null?void 0:b.renamePath)===$.path?i.jsx(fc,{defaultValue:$.name,onSubmit:b.onSubmit,onCancel:b.onCancel,depth:0}):i.jsx(ov,{entry:$,depth:0,activePath:s,onFileClick:l,onDirToggle:Q,expanded:d,onContextMenu:k}),$.type==="dir"&&i.jsx(cv,{dirPath:$.path,depth:1,activePath:s,onFileClick:l,expanded:d,onDirToggle:Q,treeCache:n,fetchTreeDir:o,onContextMenu:k,inlineInput:b})]},$.path))]})}),x&&i.jsx(QN,{x:x.x,y:x.y,items:C(x.entry),onClose:()=>g(null)})]})}function wN(){const t=D(u=>u.editorOpenTabs),n=D(u=>u.editorActiveFile),s=D(u=>u.editorFiles),l=D(u=>u.setActiveFile),o=D(u=>u.closeFile);return t.length===0?null:i.jsx("div",{className:"flex items-center h-8 bg-surface-3 border-b border-border overflow-x-auto flex-shrink-0",children:t.map(u=>{const d=u===n,O=s[u],m=O&&O.content!==O.originalContent,p=u.split("/").pop();return i.jsxs("div",{className:le("flex items-center gap-1.5 h-full px-3 text-xs font-sans cursor-pointer select-none","border-r border-border-subtle","transition-colors duration-75",d?"bg-surface-2 text-text-0 border-b-2 border-b-accent":"bg-surface-3 text-text-3 hover:text-text-1 hover:bg-surface-4"),onClick:()=>l(u),children:[i.jsx("span",{className:"truncate max-w-[120px]",children:p}),m&&i.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-warning flex-shrink-0"}),i.jsx("button",{onClick:x=>{x.stopPropagation(),o(u)},className:"p-0.5 rounded hover:bg-surface-5 text-text-4 hover:text-text-1 transition-colors cursor-pointer ml-0.5",children:i.jsx(Rt,{size:12})})]},u)})})}var s1={};class hc{constructor(n,s,l,o,u,d,O,m,p,x=0,g){this.p=n,this.stack=s,this.state=l,this.reducePos=o,this.pos=u,this.score=d,this.buffer=O,this.bufferBase=m,this.curContext=p,this.lookAhead=x,this.parent=g}toString(){return`[${this.stack.filter((n,s)=>s%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(n,s,l=0){let o=n.parser.context;return new hc(n,[],s,l,l,0,[],0,o?new l1(o,o.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(n,s){this.stack.push(this.state,s,this.bufferBase+this.buffer.length),this.state=n}reduce(n){var s;let l=n>>19,o=n&65535,{parser:u}=this.p,d=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),O=u.dynamicPrecedence(o);if(O&&(this.score+=O),l==0){this.pushState(u.getGoto(this.state,o,!0),this.reducePos),o<u.minRepeatTerm&&this.storeNode(o,this.reducePos,this.reducePos,d?8:4,!0),this.reduceContext(o,this.reducePos);return}let m=this.stack.length-(l-1)*3-(n&262144?6:0),p=m?this.stack[m-2]:this.p.ranges[0].from,x=this.reducePos-p;x>=2e3&&!(!((s=this.p.parser.nodeSet.types[o])===null||s===void 0)&&s.isAnonymous)&&(p==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=x):this.p.lastBigReductionSize<x&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=p,this.p.lastBigReductionSize=x));let g=m?this.stack[m-1]:0,b=this.bufferBase+this.buffer.length-g;if(o<u.minRepeatTerm||n&131072){let S=u.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(o,p,S,b+4,!0)}if(n&262144)this.state=this.stack[m];else{let S=this.stack[m-3];this.state=u.getGoto(S,o,!0)}for(;this.stack.length>m;)this.stack.pop();this.reduceContext(o,p)}storeNode(n,s,l,o=4,u=!1){if(n==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let d=this,O=this.buffer.length;if(O==0&&d.parent&&(O=d.bufferBase-d.parent.bufferBase,d=d.parent),O>0&&d.buffer[O-4]==0&&d.buffer[O-1]>-1){if(s==l)return;if(d.buffer[O-2]>=s){d.buffer[O-2]=l;return}}}if(!u||this.pos==l)this.buffer.push(n,s,l,o);else{let d=this.buffer.length;if(d>0&&(this.buffer[d-4]!=0||this.buffer[d-1]<0)){let O=!1;for(let m=d;m>0&&this.buffer[m-2]>l;m-=4)if(this.buffer[m-1]>=0){O=!0;break}if(O)for(;d>0&&this.buffer[d-2]>l;)this.buffer[d]=this.buffer[d-4],this.buffer[d+1]=this.buffer[d-3],this.buffer[d+2]=this.buffer[d-2],this.buffer[d+3]=this.buffer[d-1],d-=4,o>4&&(o-=4)}this.buffer[d]=n,this.buffer[d+1]=s,this.buffer[d+2]=l,this.buffer[d+3]=o}}shift(n,s,l,o){if(n&131072)this.pushState(n&65535,this.pos);else if((n&262144)==0){let u=n,{parser:d}=this.p;this.pos=o;let O=d.stateFlag(u,1);!O&&(o>l||s<=d.maxNode)&&(this.reducePos=o),this.pushState(u,O?l:Math.min(l,this.reducePos)),this.shiftContext(s,l),s<=d.maxNode&&this.buffer.push(s,l,o,4)}else this.pos=o,this.shiftContext(s,l),s<=this.p.parser.maxNode&&this.buffer.push(s,l,o,4)}apply(n,s,l,o){n&65536?this.reduce(n):this.shift(n,s,l,o)}useNode(n,s){let l=this.p.reused.length-1;(l<0||this.p.reused[l]!=n)&&(this.p.reused.push(n),l++);let o=this.pos;this.reducePos=this.pos=o+n.length,this.pushState(s,o),this.buffer.push(l,o,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,n,this,this.p.stream.reset(this.pos-n.length)))}split(){let n=this,s=n.buffer.length;for(;s>0&&n.buffer[s-2]>n.reducePos;)s-=4;let l=n.buffer.slice(s),o=n.bufferBase+s;for(;n&&o==n.bufferBase;)n=n.parent;return new hc(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,l,o,this.curContext,this.lookAhead,n)}recoverByDelete(n,s){let l=n<=this.p.parser.maxNode;l&&this.storeNode(n,this.pos,s,4),this.storeNode(0,this.pos,s,l?8:4),this.pos=this.reducePos=s,this.score-=190}canShift(n){for(let s=new kN(this);;){let l=this.p.parser.stateSlot(s.state,4)||this.p.parser.hasAction(s.state,n);if(l==0)return!1;if((l&65536)==0)return!0;s.reduce(l)}}recoverByInsert(n){if(this.stack.length>=300)return[];let s=this.p.parser.nextStates(this.state);if(s.length>8||this.stack.length>=120){let o=[];for(let u=0,d;u<s.length;u+=2)(d=s[u+1])!=this.state&&this.p.parser.hasAction(d,n)&&o.push(s[u],d);if(this.stack.length<120)for(let u=0;o.length<8&&u<s.length;u+=2){let d=s[u+1];o.some((O,m)=>m&1&&O==d)||o.push(s[u],d)}s=o}let l=[];for(let o=0;o<s.length&&l.length<4;o+=2){let u=s[o+1];if(u==this.state)continue;let d=this.split();d.pushState(u,this.pos),d.storeNode(0,d.pos,d.pos,4,!0),d.shiftContext(s[o],this.pos),d.reducePos=this.pos,d.score-=200,l.push(d)}return l}forceReduce(){let{parser:n}=this.p,s=n.stateSlot(this.state,5);if((s&65536)==0)return!1;if(!n.validAction(this.state,s)){let l=s>>19,o=s&65535,u=this.stack.length-l*3;if(u<0||n.getGoto(this.stack[u],o,!1)<0){let d=this.findForcedReduction();if(d==null)return!1;s=d}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(s),!0}findForcedReduction(){let{parser:n}=this.p,s=[],l=(o,u)=>{if(!s.includes(o))return s.push(o),n.allActions(o,d=>{if(!(d&393216))if(d&65536){let O=(d>>19)-u;if(O>1){let m=d&65535,p=this.stack.length-O*3;if(p>=0&&n.getGoto(this.stack[p],m,!1)>=0)return O<<19|65536|m}}else{let O=l(d,u+1);if(O!=null)return O}})};return l(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:n}=this.p;return n.data[n.stateSlot(this.state,1)]==65535&&!n.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(n){if(this.state!=n.state||this.stack.length!=n.stack.length)return!1;for(let s=0;s<this.stack.length;s+=3)if(this.stack[s]!=n.stack[s])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(n){return this.p.parser.dialect.flags[n]}shiftContext(n,s){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,n,this,this.p.stream.reset(s)))}reduceContext(n,s){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,n,this,this.p.stream.reset(s)))}emitContext(){let n=this.buffer.length-1;(n<0||this.buffer[n]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let n=this.buffer.length-1;(n<0||this.buffer[n]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(n){if(n!=this.curContext.context){let s=new l1(this.curContext.tracker,n);s.hash!=this.curContext.hash&&this.emitContext(),this.curContext=s}}setLookAhead(n){return n<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=n,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class l1{constructor(n,s){this.tracker=n,this.context=s,this.hash=n.strict?n.hash(s):0}}class kN{constructor(n){this.start=n,this.state=n.state,this.stack=n.stack,this.base=this.stack.length}reduce(n){let s=n&65535,l=n>>19;l==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(l-1)*3;let o=this.start.p.parser.getGoto(this.stack[this.base-3],s,!0);this.state=o}}class mc{constructor(n,s,l){this.stack=n,this.pos=s,this.index=l,this.buffer=n.buffer,this.index==0&&this.maybeNext()}static create(n,s=n.bufferBase+n.buffer.length){return new mc(n,s,s-n.bufferBase)}maybeNext(){let n=this.stack.parent;n!=null&&(this.index=this.stack.bufferBase-n.bufferBase,this.stack=n,this.buffer=n.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new mc(this.stack,this.pos,this.index)}}function Mr(t,n=Uint16Array){if(typeof t!="string")return t;let s=null;for(let l=0,o=0;l<t.length;){let u=0;for(;;){let d=t.charCodeAt(l++),O=!1;if(d==126){u=65535;break}d>=92&&d--,d>=34&&d--;let m=d-32;if(m>=46&&(m-=46,O=!0),u+=m,O)break;u*=46}s?s[o++]=u:s=new n(u)}return s}class Wo{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const r1=new Wo;class $N{constructor(n,s){this.input=n,this.ranges=s,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=r1,this.rangeIndex=0,this.pos=this.chunkPos=s[0].from,this.range=s[0],this.end=s[s.length-1].to,this.readNext()}resolveOffset(n,s){let l=this.range,o=this.rangeIndex,u=this.pos+n;for(;u<l.from;){if(!o)return null;let d=this.ranges[--o];u-=l.from-d.to,l=d}for(;s<0?u>l.to:u>=l.to;){if(o==this.ranges.length-1)return null;let d=this.ranges[++o];u+=d.from-l.to,l=d}return u}clipPos(n){if(n>=this.range.from&&n<this.range.to)return n;for(let s of this.ranges)if(s.to>n)return Math.max(n,s.from);return this.end}peek(n){let s=this.chunkOff+n,l,o;if(s>=0&&s<this.chunk.length)l=this.pos+n,o=this.chunk.charCodeAt(s);else{let u=this.resolveOffset(n,1);if(u==null)return-1;if(l=u,l>=this.chunk2Pos&&l<this.chunk2Pos+this.chunk2.length)o=this.chunk2.charCodeAt(l-this.chunk2Pos);else{let d=this.rangeIndex,O=this.range;for(;O.to<=l;)O=this.ranges[++d];this.chunk2=this.input.chunk(this.chunk2Pos=l),l+this.chunk2.length>O.to&&(this.chunk2=this.chunk2.slice(0,O.to-l)),o=this.chunk2.charCodeAt(0)}}return l>=this.token.lookAhead&&(this.token.lookAhead=l+1),o}acceptToken(n,s=0){let l=s?this.resolveOffset(s,-1):this.pos;if(l==null||l<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=n,this.token.end=l}acceptTokenTo(n,s){this.token.value=n,this.token.end=s}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:n,chunkPos:s}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=n,this.chunk2Pos=s,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let n=this.input.chunk(this.pos),s=this.pos+n.length;this.chunk=s>this.range.to?n.slice(0,this.range.to-this.pos):n,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(n=1){for(this.chunkOff+=n;this.pos+n>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();n-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=n,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(n,s){if(s?(this.token=s,s.start=n,s.lookAhead=n+1,s.value=s.extended=-1):this.token=r1,this.pos!=n){if(this.pos=n,n==this.end)return this.setDone(),this;for(;n<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;n>=this.range.to;)this.range=this.ranges[++this.rangeIndex];n>=this.chunkPos&&n<this.chunkPos+this.chunk.length?this.chunkOff=n-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(n,s){if(n>=this.chunkPos&&s<=this.chunkPos+this.chunk.length)return this.chunk.slice(n-this.chunkPos,s-this.chunkPos);if(n>=this.chunk2Pos&&s<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(n-this.chunk2Pos,s-this.chunk2Pos);if(n>=this.range.from&&s<=this.range.to)return this.input.read(n,s);let l="";for(let o of this.ranges){if(o.from>=s)break;o.to>n&&(l+=this.input.read(Math.max(o.from,n),Math.min(o.to,s)))}return l}}class wl{constructor(n,s){this.data=n,this.id=s}token(n,s){let{parser:l}=s.p;uv(this.data,n,s,this.id,l.data,l.tokenPrecTable)}}wl.prototype.contextual=wl.prototype.fallback=wl.prototype.extend=!1;class pc{constructor(n,s,l){this.precTable=s,this.elseToken=l,this.data=typeof n=="string"?Mr(n):n}token(n,s){let l=n.pos,o=0;for(;;){let u=n.next<0,d=n.resolveOffset(1,1);if(uv(this.data,n,s,0,this.data,this.precTable),n.token.value>-1)break;if(this.elseToken==null)return;if(u||o++,d==null)break;n.reset(d,n.token)}o&&(n.reset(l,n.token),n.acceptToken(this.elseToken,o))}}pc.prototype.contextual=wl.prototype.fallback=wl.prototype.extend=!1;class gt{constructor(n,s={}){this.token=n,this.contextual=!!s.contextual,this.fallback=!!s.fallback,this.extend=!!s.extend}}function uv(t,n,s,l,o,u){let d=0,O=1<<l,{dialect:m}=s.p.parser;e:for(;(O&t[d])!=0;){let p=t[d+1];for(let S=d+3;S<p;S+=2)if((t[S+1]&O)>0){let Q=t[S];if(m.allows(Q)&&(n.token.value==-1||n.token.value==Q||TN(Q,n.token.value,o,u))){n.acceptToken(Q);break}}let x=n.next,g=0,b=t[d+2];if(n.next<0&&b>g&&t[p+b*3-3]==65535){d=t[p+b*3-1];continue e}for(;g<b;){let S=g+b>>1,Q=p+S+(S<<1),k=t[Q],T=t[Q+1]||65536;if(x<k)b=S;else if(x>=T)g=S+1;else{d=t[Q+2],n.advance();continue e}}break}}function i1(t,n,s){for(let l=n,o;(o=t[l])!=65535;l++)if(o==s)return l-n;return-1}function TN(t,n,s,l){let o=i1(s,l,n);return o<0||i1(s,l,t)<o}const Gt=typeof process<"u"&&s1&&/\bparse\b/.test(s1.LOG);let vO=null;function o1(t,n,s){let l=t.cursor(Qc.IncludeAnonymous);for(l.moveTo(n);;)if(!(s<0?l.childBefore(n):l.childAfter(n)))for(;;){if((s<0?l.to<n:l.from>n)&&!l.type.isError)return s<0?Math.max(0,Math.min(l.to-1,n-25)):Math.min(t.length,Math.max(l.from+1,n+25));if(s<0?l.prevSibling():l.nextSibling())break;if(!l.parent())return s<0?0:t.length}}let PN=class{constructor(n,s){this.fragments=n,this.nodeSet=s,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let n=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(n){for(this.safeFrom=n.openStart?o1(n.tree,n.from+n.offset,1)-n.offset:n.from,this.safeTo=n.openEnd?o1(n.tree,n.to+n.offset,-1)-n.offset:n.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(n.tree),this.start.push(-n.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(n){if(n<this.nextStart)return null;for(;this.fragment&&this.safeTo<=n;)this.nextFragment();if(!this.fragment)return null;for(;;){let s=this.trees.length-1;if(s<0)return this.nextFragment(),null;let l=this.trees[s],o=this.index[s];if(o==l.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let u=l.children[o],d=this.start[s]+l.positions[o];if(d>n)return this.nextStart=d,null;if(u instanceof ma){if(d==n){if(d<this.safeFrom)return null;let O=d+u.length;if(O<=this.safeTo){let m=u.prop(sn.lookAhead);if(!m||O+m<this.fragment.to)return u}}this.index[s]++,d+u.length>=Math.max(this.safeFrom,n)&&(this.trees.push(u),this.start.push(d),this.index.push(0))}else this.index[s]++,this.nextStart=d+u.length}}};class NN{constructor(n,s){this.stream=s,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=n.tokenizers.map(l=>new Wo)}getActions(n){let s=0,l=null,{parser:o}=n.p,{tokenizers:u}=o,d=o.stateSlot(n.state,3),O=n.curContext?n.curContext.hash:0,m=0;for(let p=0;p<u.length;p++){if((1<<p&d)==0)continue;let x=u[p],g=this.tokens[p];if(!(l&&!x.fallback)&&((x.contextual||g.start!=n.pos||g.mask!=d||g.context!=O)&&(this.updateCachedToken(g,x,n),g.mask=d,g.context=O),g.lookAhead>g.end+25&&(m=Math.max(g.lookAhead,m)),g.value!=0)){let b=s;if(g.extended>-1&&(s=this.addActions(n,g.extended,g.end,s)),s=this.addActions(n,g.value,g.end,s),!x.extend&&(l=g,s>b))break}}for(;this.actions.length>s;)this.actions.pop();return m&&n.setLookAhead(m),!l&&n.pos==this.stream.end&&(l=new Wo,l.value=n.p.parser.eofTerm,l.start=l.end=n.pos,s=this.addActions(n,l.value,l.end,s)),this.mainToken=l,this.actions}getMainToken(n){if(this.mainToken)return this.mainToken;let s=new Wo,{pos:l,p:o}=n;return s.start=l,s.end=Math.min(l+1,o.stream.end),s.value=l==o.stream.end?o.parser.eofTerm:0,s}updateCachedToken(n,s,l){let o=this.stream.clipPos(l.pos);if(s.token(this.stream.reset(o,n),l),n.value>-1){let{parser:u}=l.p;for(let d=0;d<u.specialized.length;d++)if(u.specialized[d]==n.value){let O=u.specializers[d](this.stream.read(n.start,n.end),l);if(O>=0&&l.p.parser.dialect.allows(O>>1)){(O&1)==0?n.value=O>>1:n.extended=O>>1;break}}}else n.value=0,n.end=this.stream.clipPos(o+1)}putAction(n,s,l,o){for(let u=0;u<o;u+=3)if(this.actions[u]==n)return o;return this.actions[o++]=n,this.actions[o++]=s,this.actions[o++]=l,o}addActions(n,s,l,o){let{state:u}=n,{parser:d}=n.p,{data:O}=d;for(let m=0;m<2;m++)for(let p=d.stateSlot(u,m?2:1);;p+=3){if(O[p]==65535)if(O[p+1]==1)p=nn(O,p+2);else{o==0&&O[p+1]==2&&(o=this.putAction(nn(O,p+2),s,l,o));break}O[p]==s&&(o=this.putAction(nn(O,p+1),s,l,o))}return o}}class zN{constructor(n,s,l,o){this.parser=n,this.input=s,this.ranges=o,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new $N(s,o),this.tokens=new NN(n,this.stream),this.topTerm=n.top[1];let{from:u}=o[0];this.stacks=[hc.start(this,n.top[0],u)],this.fragments=l.length&&this.stream.end-u>n.bufferLength*4?new PN(l,n.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let n=this.stacks,s=this.minStackPos,l=this.stacks=[],o,u;if(this.bigReductionCount>300&&n.length==1){let[d]=n;for(;d.forceReduce()&&d.stack.length&&d.stack[d.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let d=0;d<n.length;d++){let O=n[d];for(;;){if(this.tokens.mainToken=null,O.pos>s)l.push(O);else{if(this.advanceStack(O,l,n))continue;{o||(o=[],u=[]),o.push(O);let m=this.tokens.getMainToken(O);u.push(m.value,m.end)}}break}}if(!l.length){let d=o&&CN(o);if(d)return Gt&&console.log("Finish with "+this.stackID(d)),this.stackToTree(d);if(this.parser.strict)throw Gt&&o&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+s);this.recovering||(this.recovering=5)}if(this.recovering&&o){let d=this.stoppedAt!=null&&o[0].pos>this.stoppedAt?o[0]:this.runRecovery(o,u,l);if(d)return Gt&&console.log("Force-finish "+this.stackID(d)),this.stackToTree(d.forceAll())}if(this.recovering){let d=this.recovering==1?1:this.recovering*3;if(l.length>d)for(l.sort((O,m)=>m.score-O.score);l.length>d;)l.pop();l.some(O=>O.reducePos>s)&&this.recovering--}else if(l.length>1){e:for(let d=0;d<l.length-1;d++){let O=l[d];for(let m=d+1;m<l.length;m++){let p=l[m];if(O.sameState(p)||O.buffer.length>500&&p.buffer.length>500)if((O.score-p.score||O.buffer.length-p.buffer.length)>0)l.splice(m--,1);else{l.splice(d--,1);continue e}}}l.length>12&&(l.sort((d,O)=>O.score-d.score),l.splice(12,l.length-12))}this.minStackPos=l[0].pos;for(let d=1;d<l.length;d++)l[d].pos<this.minStackPos&&(this.minStackPos=l[d].pos);return null}stopAt(n){if(this.stoppedAt!=null&&this.stoppedAt<n)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=n}advanceStack(n,s,l){let o=n.pos,{parser:u}=this,d=Gt?this.stackID(n)+" -> ":"";if(this.stoppedAt!=null&&o>this.stoppedAt)return n.forceReduce()?n:null;if(this.fragments){let p=n.curContext&&n.curContext.tracker.strict,x=p?n.curContext.hash:0;for(let g=this.fragments.nodeAt(o);g;){let b=this.parser.nodeSet.types[g.type.id]==g.type?u.getGoto(n.state,g.type.id):-1;if(b>-1&&g.length&&(!p||(g.prop(sn.contextHash)||0)==x))return n.useNode(g,b),Gt&&console.log(d+this.stackID(n)+` (via reuse of ${u.getName(g.type.id)})`),!0;if(!(g instanceof ma)||g.children.length==0||g.positions[0]>0)break;let S=g.children[0];if(S instanceof ma&&g.positions[0]==0)g=S;else break}}let O=u.stateSlot(n.state,4);if(O>0)return n.reduce(O),Gt&&console.log(d+this.stackID(n)+` (via always-reduce ${u.getName(O&65535)})`),!0;if(n.stack.length>=8400)for(;n.stack.length>6e3&&n.forceReduce(););let m=this.tokens.getActions(n);for(let p=0;p<m.length;){let x=m[p++],g=m[p++],b=m[p++],S=p==m.length||!l,Q=S?n:n.split(),k=this.tokens.mainToken;if(Q.apply(x,g,k?k.start:Q.pos,b),Gt&&console.log(d+this.stackID(Q)+` (via ${(x&65536)==0?"shift":`reduce of ${u.getName(x&65535)}`} for ${u.getName(g)} @ ${o}${Q==n?"":", split"})`),S)return!0;Q.pos>o?s.push(Q):l.push(Q)}return!1}advanceFully(n,s){let l=n.pos;for(;;){if(!this.advanceStack(n,null,null))return!1;if(n.pos>l)return c1(n,s),!0}}runRecovery(n,s,l){let o=null,u=!1;for(let d=0;d<n.length;d++){let O=n[d],m=s[d<<1],p=s[(d<<1)+1],x=Gt?this.stackID(O)+" -> ":"";if(O.deadEnd&&(u||(u=!0,O.restart(),Gt&&console.log(x+this.stackID(O)+" (restarted)"),this.advanceFully(O,l))))continue;let g=O.split(),b=x;for(let S=0;S<10&&g.forceReduce()&&(Gt&&console.log(b+this.stackID(g)+" (via force-reduce)"),!this.advanceFully(g,l));S++)Gt&&(b=this.stackID(g)+" -> ");for(let S of O.recoverByInsert(m))Gt&&console.log(x+this.stackID(S)+" (via recover-insert)"),this.advanceFully(S,l);this.stream.end>O.pos?(p==O.pos&&(p++,m=0),O.recoverByDelete(m,p),Gt&&console.log(x+this.stackID(O)+` (via recover-delete ${this.parser.getName(m)})`),c1(O,l)):(!o||o.score<g.score)&&(o=g)}return o}stackToTree(n){return n.close(),ma.build({buffer:mc.create(n),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:n.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(n){let s=(vO||(vO=new WeakMap)).get(n);return s||vO.set(n,s=String.fromCodePoint(this.nextStackID++)),s+n}}function c1(t,n){for(let s=0;s<n.length;s++){let l=n[s];if(l.pos==t.pos&&l.sameState(t)){n[s].score<t.score&&(n[s]=t);return}}n.push(t)}class RN{constructor(n,s,l){this.source=n,this.flags=s,this.disabled=l}allows(n){return!this.disabled||this.disabled[n]==0}}const yO=t=>t;class nh{constructor(n){this.start=n.start,this.shift=n.shift||yO,this.reduce=n.reduce||yO,this.reuse=n.reuse||yO,this.hash=n.hash||(()=>0),this.strict=n.strict!==!1}}class Kn extends y0{constructor(n){if(super(),this.wrappers=[],n.version!=14)throw new RangeError(`Parser version (${n.version}) doesn't match runtime version (14)`);let s=n.nodeNames.split(" ");this.minRepeatTerm=s.length;for(let O=0;O<n.repeatNodeCount;O++)s.push("");let l=Object.keys(n.topRules).map(O=>n.topRules[O][1]),o=[];for(let O=0;O<s.length;O++)o.push([]);function u(O,m,p){o[O].push([m,m.deserialize(String(p))])}if(n.nodeProps)for(let O of n.nodeProps){let m=O[0];typeof m=="string"&&(m=sn[m]);for(let p=1;p<O.length;){let x=O[p++];if(x>=0)u(x,m,O[p++]);else{let g=O[p+-x];for(let b=-x;b>0;b--)u(O[p++],m,g);p++}}}this.nodeSet=new wf(s.map((O,m)=>ni.define({name:m>=this.minRepeatTerm?void 0:O,id:m,props:o[m],top:l.indexOf(m)>-1,error:m==0,skipped:n.skippedNodes&&n.skippedNodes.indexOf(m)>-1}))),n.propSources&&(this.nodeSet=this.nodeSet.extend(...n.propSources)),this.strict=!1,this.bufferLength=Sj;let d=Mr(n.tokenData);this.context=n.context,this.specializerSpecs=n.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let O=0;O<this.specializerSpecs.length;O++)this.specialized[O]=this.specializerSpecs[O].term;this.specializers=this.specializerSpecs.map(u1),this.states=Mr(n.states,Uint32Array),this.data=Mr(n.stateData),this.goto=Mr(n.goto),this.maxTerm=n.maxTerm,this.tokenizers=n.tokenizers.map(O=>typeof O=="number"?new wl(d,O):O),this.topRules=n.topRules,this.dialects=n.dialects||{},this.dynamicPrecedences=n.dynamicPrecedences||null,this.tokenPrecTable=n.tokenPrec,this.termNames=n.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(n,s,l){let o=new zN(this,n,s,l);for(let u of this.wrappers)o=u(o,n,s,l);return o}getGoto(n,s,l=!1){let o=this.goto;if(s>=o[0])return-1;for(let u=o[s+1];;){let d=o[u++],O=d&1,m=o[u++];if(O&&l)return m;for(let p=u+(d>>1);u<p;u++)if(o[u]==n)return m;if(O)return-1}}hasAction(n,s){let l=this.data;for(let o=0;o<2;o++)for(let u=this.stateSlot(n,o?2:1),d;;u+=3){if((d=l[u])==65535)if(l[u+1]==1)d=l[u=nn(l,u+2)];else{if(l[u+1]==2)return nn(l,u+2);break}if(d==s||d==0)return nn(l,u+1)}return 0}stateSlot(n,s){return this.states[n*6+s]}stateFlag(n,s){return(this.stateSlot(n,0)&s)>0}validAction(n,s){return!!this.allActions(n,l=>l==s?!0:null)}allActions(n,s){let l=this.stateSlot(n,4),o=l?s(l):void 0;for(let u=this.stateSlot(n,1);o==null;u+=3){if(this.data[u]==65535)if(this.data[u+1]==1)u=nn(this.data,u+2);else break;o=s(nn(this.data,u+1))}return o}nextStates(n){let s=[];for(let l=this.stateSlot(n,1);;l+=3){if(this.data[l]==65535)if(this.data[l+1]==1)l=nn(this.data,l+2);else break;if((this.data[l+2]&1)==0){let o=this.data[l+1];s.some((u,d)=>d&1&&u==o)||s.push(this.data[l],o)}}return s}configure(n){let s=Object.assign(Object.create(Kn.prototype),this);if(n.props&&(s.nodeSet=this.nodeSet.extend(...n.props)),n.top){let l=this.topRules[n.top];if(!l)throw new RangeError(`Invalid top rule name ${n.top}`);s.top=l}return n.tokenizers&&(s.tokenizers=this.tokenizers.map(l=>{let o=n.tokenizers.find(u=>u.from==l);return o?o.to:l})),n.specializers&&(s.specializers=this.specializers.slice(),s.specializerSpecs=this.specializerSpecs.map((l,o)=>{let u=n.specializers.find(O=>O.from==l.external);if(!u)return l;let d=Object.assign(Object.assign({},l),{external:u.to});return s.specializers[o]=u1(d),d})),n.contextTracker&&(s.context=n.contextTracker),n.dialect&&(s.dialect=this.parseDialect(n.dialect)),n.strict!=null&&(s.strict=n.strict),n.wrap&&(s.wrappers=s.wrappers.concat(n.wrap)),n.bufferLength!=null&&(s.bufferLength=n.bufferLength),s}hasWrappers(){return this.wrappers.length>0}getName(n){return this.termNames?this.termNames[n]:String(n<=this.maxNode&&this.nodeSet.types[n].name||n)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(n){let s=this.dynamicPrecedences;return s==null?0:s[n]||0}parseDialect(n){let s=Object.keys(this.dialects),l=s.map(()=>!1);if(n)for(let u of n.split(" ")){let d=s.indexOf(u);d>=0&&(l[d]=!0)}let o=null;for(let u=0;u<s.length;u++)if(!l[u])for(let d=this.dialects[s[u]],O;(O=this.data[d++])!=65535;)(o||(o=new Uint8Array(this.maxTerm+1)))[O]=1;return new RN(n,l,o)}static deserialize(n){return new Kn(n)}}function nn(t,n){return t[n]|t[n+1]<<16}function CN(t){let n=null;for(let s of t){let l=s.p.stoppedAt;(s.pos==s.p.stream.end||l!=null&&s.pos>l)&&s.p.parser.stateFlag(s.state,2)&&(!n||n.score<s.score)&&(n=s)}return n}function u1(t){if(t.external){let n=t.extend?1:0;return(s,l)=>t.external(s,l)<<1|n}return t.get}const XN=316,_N=317,d1=1,ZN=2,AN=3,EN=4,qN=318,MN=320,YN=321,VN=5,UN=6,GN=0,uf=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],dv=125,LN=59,df=47,DN=42,WN=43,BN=45,HN=60,IN=44,FN=63,KN=46,JN=91,e3=new nh({start:!1,shift(t,n){return n==VN||n==UN||n==MN?t:n==YN},strict:!1}),t3=new gt((t,n)=>{let{next:s}=t;(s==dv||s==-1||n.context)&&t.acceptToken(qN)},{contextual:!0,fallback:!0}),a3=new gt((t,n)=>{let{next:s}=t,l;uf.indexOf(s)>-1||s==df&&((l=t.peek(1))==df||l==DN)||s!=dv&&s!=LN&&s!=-1&&!n.context&&t.acceptToken(XN)},{contextual:!0}),n3=new gt((t,n)=>{t.next==JN&&!n.context&&t.acceptToken(_N)},{contextual:!0}),s3=new gt((t,n)=>{let{next:s}=t;if(s==WN||s==BN){if(t.advance(),s==t.next){t.advance();let l=!n.context&&n.canShift(d1);t.acceptToken(l?d1:ZN)}}else s==FN&&t.peek(1)==KN&&(t.advance(),t.advance(),(t.next<48||t.next>57)&&t.acceptToken(AN))},{contextual:!0});function SO(t,n){return t>=65&&t<=90||t>=97&&t<=122||t==95||t>=192||!n&&t>=48&&t<=57}const l3=new gt((t,n)=>{if(t.next!=HN||!n.dialectEnabled(GN)||(t.advance(),t.next==df))return;let s=0;for(;uf.indexOf(t.next)>-1;)t.advance(),s++;if(SO(t.next,!0)){for(t.advance(),s++;SO(t.next,!1);)t.advance(),s++;for(;uf.indexOf(t.next)>-1;)t.advance(),s++;if(t.next==IN)return;for(let l=0;;l++){if(l==7){if(!SO(t.next,!0))return;break}if(t.next!="extends".charCodeAt(l))break;t.advance(),s++}}t.acceptToken(EN,-s)}),r3=Ts({"get set async static":Z.modifier,"for while do if else switch try catch finally return throw break continue default case defer":Z.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":Z.operatorKeyword,"let var const using function class extends":Z.definitionKeyword,"import export from":Z.moduleKeyword,"with debugger new":Z.keyword,TemplateString:Z.special(Z.string),super:Z.atom,BooleanLiteral:Z.bool,this:Z.self,null:Z.null,Star:Z.modifier,VariableName:Z.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":Z.function(Z.variableName),VariableDefinition:Z.definition(Z.variableName),Label:Z.labelName,PropertyName:Z.propertyName,PrivatePropertyName:Z.special(Z.propertyName),"CallExpression/MemberExpression/PropertyName":Z.function(Z.propertyName),"FunctionDeclaration/VariableDefinition":Z.function(Z.definition(Z.variableName)),"ClassDeclaration/VariableDefinition":Z.definition(Z.className),"NewExpression/VariableName":Z.className,PropertyDefinition:Z.definition(Z.propertyName),PrivatePropertyDefinition:Z.definition(Z.special(Z.propertyName)),UpdateOp:Z.updateOperator,"LineComment Hashbang":Z.lineComment,BlockComment:Z.blockComment,Number:Z.number,String:Z.string,Escape:Z.escape,ArithOp:Z.arithmeticOperator,LogicOp:Z.logicOperator,BitOp:Z.bitwiseOperator,CompareOp:Z.compareOperator,RegExp:Z.regexp,Equals:Z.definitionOperator,Arrow:Z.function(Z.punctuation),": Spread":Z.punctuation,"( )":Z.paren,"[ ]":Z.squareBracket,"{ }":Z.brace,"InterpolationStart InterpolationEnd":Z.special(Z.brace),".":Z.derefOperator,", ;":Z.separator,"@":Z.meta,TypeName:Z.typeName,TypeDefinition:Z.definition(Z.typeName),"type enum interface implements namespace module declare":Z.definitionKeyword,"abstract global Privacy readonly override":Z.modifier,"is keyof unique infer asserts":Z.operatorKeyword,JSXAttributeValue:Z.attributeValue,JSXText:Z.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":Z.angleBracket,"JSXIdentifier JSXNameSpacedName":Z.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":Z.attributeName,"JSXBuiltin/JSXIdentifier":Z.standard(Z.tagName)}),i3={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,defer:471,for:476,of:485,while:488,with:492,do:496,if:500,else:502,switch:506,case:512,try:518,catch:522,finally:526,return:530,throw:534,break:538,continue:542,debugger:546},o3={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},c3={__proto__:null,"<":193},u3=Kn.deserialize({version:14,states:"$F|Q%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Il'#IlO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JrO6[Q!0MxO'#JsO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO9XQMhO'#F|O9`Q`O'#F{OOQ!0Lf'#Js'#JsOOQ!0Lb'#Jr'#JrO9eQ`O'#GwOOQ['#K_'#K_O9pQ`O'#IYO9uQ!0LrO'#IZOOQ['#J`'#J`OOQ['#I_'#I_Q`QlOOQ`QlOOO9}Q!L^O'#DvO:UQlO'#EOO:]QlO'#EQO9kQ`O'#GsO:dQMhO'#CoO:rQ`O'#EnO:}Q`O'#EyO;hQMhO'#FeO;xQ`O'#GsOOQO'#K`'#K`O;}Q`O'#K`O<]Q`O'#G{O<]Q`O'#G|O<]Q`O'#HOO9kQ`O'#HRO=SQ`O'#HUO>kQ`O'#CeO>{Q`O'#HcO?TQ`O'#HiO?TQ`O'#HkO`QlO'#HmO?TQ`O'#HoO?TQ`O'#HrO?YQ`O'#HxO?_Q!0LsO'#IOO%[QlO'#IQO?jQ!0LsO'#ISO?uQ!0LsO'#IUO9uQ!0LrO'#IWO@QQ!0MxO'#CiOASQpO'#DlQOQ`OOO%[QlO'#EQOAjQ`O'#ETO:dQMhO'#EnOAuQ`O'#EnOBQQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Jv'#JvO%[QlO'#JvOOQO'#Jy'#JyOOQO'#Ih'#IhOCQQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J}'#J}OC|Q!0MSO'#EgODWQpO'#EWOOQO'#Jx'#JxODlQpO'#JyOEyQpO'#EWODWQpO'#EgPFWO&2DjO'#CbPOOO)CD})CD}OOOO'#I`'#I`OFcO#tO,59UOOQ!0Lh,59U,59UOOOO'#Ia'#IaOFqO&jO,59UOGPQ!L^O'#DcOOOO'#Ic'#IcOGWO#@ItO,59{OOQ!0Lf,59{,59{OGfQlO'#IdOGyQ`O'#JtOIxQ!fO'#JtO+}QlO'#JtOJPQ`O,5:ROJgQ`O'#EpOJtQ`O'#KTOKPQ`O'#KSOKPQ`O'#KSOKXQ`O,5;^OK^Q`O'#KROOQ!0Ln,5:^,5:^OKeQlO,5:^OMcQ!0MxO,5:fONSQ`O,5:nONmQ!0LrO'#KQONtQ`O'#KPO9eQ`O'#KPO! YQ`O'#KPO! bQ`O,5;]O! gQ`O'#KPO!#lQ!fO'#JsOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$[Q!fO,5:sOOQS'#Jz'#JzOOQO-E<j-E<jO9kQ`O,5=_O!$rQ`O,5=_O!$wQlO,5;ZO!&zQMhO'#EkO!(eQ`O,5;ZO!(jQlO'#DyO!(tQpO,5;dO!(|QpO,5;dO%[QlO,5;dOOQ['#FT'#FTOOQ['#FV'#FVO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eOOQ['#FZ'#FZO!)[QlO,5;tOOQ!0Lf,5;y,5;yOOQ!0Lf,5;z,5;zOOQ!0Lf,5;|,5;|O%[QlO'#IpO!+_Q!0LrO,5<iO%[QlO,5;eO!&zQMhO,5;eO!+|QMhO,5;eO!-nQMhO'#E^O%[QlO,5;wOOQ!0Lf,5;{,5;{O!-uQ,UO'#FjO!.rQ,UO'#KXO!.^Q,UO'#KXO!.yQ,UO'#KXOOQO'#KX'#KXO!/_Q,UO,5<SOOOW,5<`,5<`O!/pQlO'#FvOOOW'#Io'#IoO7VO7dO,5<QO!/wQ,UO'#FxOOQ!0Lf,5<Q,5<QO!0hQ$IUO'#CyOOQ!0Lh'#C}'#C}O!0{O#@ItO'#DRO!1iQMjO,5<eO!1pQ`O,5<hO!3YQ(CWO'#GXO!3jQ`O'#GYO!3oQ`O'#GYO!5_Q(CWO'#G^O!6dQpO'#GbOOQO'#Gn'#GnO!,TQMhO'#GmOOQO'#Gp'#GpO!,TQMhO'#GoO!7VQ$IUO'#JlOOQ!0Lh'#Jl'#JlO!7aQ`O'#JkO!7oQ`O'#JjO!7wQ`O'#CuOOQ!0Lh'#C{'#C{O!8YQ`O'#C}OOQ!0Lh'#DV'#DVOOQ!0Lh'#DX'#DXO!8_Q`O,5<eO1SQ`O'#DZO!,TQMhO'#GPO!,TQMhO'#GRO!8gQ`O'#GTO!8lQ`O'#GUO!3oQ`O'#G[O!,TQMhO'#GaO<]Q`O'#JkO!8qQ`O'#EqO!9`Q`O,5<gOOQ!0Lb'#Cr'#CrO!9hQ`O'#ErO!:bQpO'#EsOOQ!0Lb'#KR'#KRO!:iQ!0LrO'#KaO9uQ!0LrO,5=cO`QlO,5>tOOQ['#Jh'#JhOOQ[,5>u,5>uOOQ[-E<]-E<]O!<hQ!0MxO,5:bO!:]QpO,5:`O!?RQ!0MxO,5:jO%[QlO,5:jO!AiQ!0MxO,5:lOOQO,5@z,5@zO!BYQMhO,5=_O!BhQ!0LrO'#JiO9`Q`O'#JiO!ByQ!0LrO,59ZO!CUQpO,59ZO!C^QMhO,59ZO:dQMhO,59ZO!CiQ`O,5;ZO!CqQ`O'#HbO!DVQ`O'#KdO%[QlO,5;}O!:]QpO,5<PO!D_Q`O,5=zO!DdQ`O,5=zO!DiQ`O,5=zO!DwQ`O,5=zO9uQ!0LrO,5=zO<]Q`O,5=jOOQO'#Cy'#CyO!EOQpO,5=gO!EWQMhO,5=hO!EcQ`O,5=jO!EhQ!bO,5=mO!EpQ`O'#K`O?YQ`O'#HWO9kQ`O'#HYO!EuQ`O'#HYO:dQMhO'#H[O!EzQ`O'#H[OOQ[,5=p,5=pO!FPQ`O'#H]O!FbQ`O'#CoO!FgQ`O,59PO!FqQ`O,59PO!HvQlO,59POOQ[,59P,59PO!IWQ!0LrO,59PO%[QlO,59PO!KcQlO'#HeOOQ['#Hf'#HfOOQ['#Hg'#HgO`QlO,5=}O!KyQ`O,5=}O`QlO,5>TO`QlO,5>VO!LOQ`O,5>XO`QlO,5>ZO!LTQ`O,5>^O!LYQlO,5>dOOQ[,5>j,5>jO%[QlO,5>jO9uQ!0LrO,5>lOOQ[,5>n,5>nO#!dQ`O,5>nOOQ[,5>p,5>pO#!dQ`O,5>pOOQ[,5>r,5>rO##QQpO'#D_O%[QlO'#JvO##sQpO'#JvO##}QpO'#DmO#$`QpO'#DmO#&qQlO'#DmO#&xQ`O'#JuO#'QQ`O,5:WO#'VQ`O'#EtO#'eQ`O'#KUO#'mQ`O,5;_O#'rQpO'#DmO#(PQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#(WQ`O,5:oO?YQ`O,5;YO!CUQpO,5;YO!C^QMhO,5;YO:dQMhO,5;YO#(`Q`O,5@bO#(eQ07dO,5:sOOQO-E<f-E<fO#)kQ!0MSO,5;RODWQpO,5:rO#)uQpO,5:rODWQpO,5;RO!ByQ!0LrO,5:rOOQ!0Lb'#Ej'#EjOOQO,5;R,5;RO%[QlO,5;RO#*SQ!0LrO,5;RO#*_Q!0LrO,5;RO!CUQpO,5:rOOQO,5;X,5;XO#*mQ!0LrO,5;RPOOO'#I^'#I^P#+RO&2DjO,58|POOO,58|,58|OOOO-E<^-E<^OOQ!0Lh1G.p1G.pOOOO-E<_-E<_OOOO,59},59}O#+^Q!bO,59}OOOO-E<a-E<aOOQ!0Lf1G/g1G/gO#+cQ!fO,5?OO+}QlO,5?OOOQO,5?U,5?UO#+mQlO'#IdOOQO-E<b-E<bO#+zQ`O,5@`O#,SQ!fO,5@`O#,ZQ`O,5@nOOQ!0Lf1G/m1G/mO%[QlO,5@oO#,cQ`O'#IjOOQO-E<h-E<hO#,ZQ`O,5@nOOQ!0Lb1G0x1G0xOOQ!0Ln1G/x1G/xOOQ!0Ln1G0Y1G0YO%[QlO,5@lO#,wQ!0LrO,5@lO#-YQ!0LrO,5@lO#-aQ`O,5@kO9eQ`O,5@kO#-iQ`O,5@kO#-wQ`O'#ImO#-aQ`O,5@kOOQ!0Lb1G0w1G0wO!(tQpO,5:uO!)PQpO,5:uOOQS,5:w,5:wO#.iQdO,5:wO#.qQMhO1G2yO9kQ`O1G2yOOQ!0Lf1G0u1G0uO#/PQ!0MxO1G0uO#0UQ!0MvO,5;VOOQ!0Lh'#GW'#GWO#0rQ!0MzO'#JlO!$wQlO1G0uO#2}Q!fO'#JwO%[QlO'#JwO#3XQ`O,5:eOOQ!0Lh'#D_'#D_OOQ!0Lf1G1O1G1OO%[QlO1G1OOOQ!0Lf1G1f1G1fO#3^Q`O1G1OO#5rQ!0MxO1G1PO#5yQ!0MxO1G1PO#8aQ!0MxO1G1PO#8hQ!0MxO1G1PO#;OQ!0MxO1G1PO#=fQ!0MxO1G1PO#=mQ!0MxO1G1PO#=tQ!0MxO1G1PO#@[Q!0MxO1G1PO#@cQ!0MxO1G1PO#BpQ?MtO'#CiO#DkQ?MtO1G1`O#DrQ?MtO'#JsO#EVQ!0MxO,5?[OOQ!0Lb-E<n-E<nO#GdQ!0MxO1G1PO#HaQ!0MzO1G1POOQ!0Lf1G1P1G1PO#IdQMjO'#J|O#InQ`O,5:xO#IsQ!0MxO1G1cO#JgQ,UO,5<WO#JoQ,UO,5<XO#JwQ,UO'#FoO#K`Q`O'#FnOOQO'#KY'#KYOOQO'#In'#InO#KeQ,UO1G1nOOQ!0Lf1G1n1G1nOOOW1G1y1G1yO#KvQ?MtO'#JrO#LQQ`O,5<bO!)[QlO,5<bOOOW-E<m-E<mOOQ!0Lf1G1l1G1lO#LVQpO'#KXOOQ!0Lf,5<d,5<dO#L_QpO,5<dO#LdQMhO'#DTOOOO'#Ib'#IbO#LkO#@ItO,59mOOQ!0Lh,59m,59mO%[QlO1G2PO!8lQ`O'#IrO#LvQ`O,5<zOOQ!0Lh,5<w,5<wO!,TQMhO'#IuO#MdQMjO,5=XO!,TQMhO'#IwO#NVQMjO,5=ZO!&zQMhO,5=]OOQO1G2S1G2SO#NaQ!dO'#CrO#NtQ(CWO'#ErO$ |QpO'#GbO$!dQ!dO,5<sO$!kQ`O'#K[O9eQ`O'#K[O$!yQ`O,5<uO$#aQ!dO'#C{O!,TQMhO,5<tO$#kQ`O'#GZO$$PQ`O,5<tO$$UQ!dO'#GWO$$cQ!dO'#K]O$$mQ`O'#K]O!&zQMhO'#K]O$$rQ`O,5<xO$$wQlO'#JvO$%RQpO'#GcO#$`QpO'#GcO$%dQ`O'#GgO!3oQ`O'#GkO$%iQ!0LrO'#ItO$%tQpO,5<|OOQ!0Lp,5<|,5<|O$%{QpO'#GcO$&YQpO'#GdO$&kQpO'#GdO$&pQMjO,5=XO$'QQMjO,5=ZOOQ!0Lh,5=^,5=^O!,TQMhO,5@VO!,TQMhO,5@VO$'bQ`O'#IyO$'vQ`O,5@UO$(OQ`O,59aOOQ!0Lh,59i,59iO$(TQ`O,5@VO$)TQ$IYO,59uOOQ!0Lh'#Jp'#JpO$)vQMjO,5<kO$*iQMjO,5<mO@zQ`O,5<oOOQ!0Lh,5<p,5<pO$*sQ`O,5<vO$*xQMjO,5<{O$+YQ`O'#KPO!$wQlO1G2RO$+_Q`O1G2RO9eQ`O'#KSO9eQ`O'#EtO%[QlO'#EtO9eQ`O'#I{O$+dQ!0LrO,5@{OOQ[1G2}1G2}OOQ[1G4`1G4`OOQ!0Lf1G/|1G/|OOQ!0Lf1G/z1G/zO$-fQ!0MxO1G0UOOQ[1G2y1G2yO!&zQMhO1G2yO%[QlO1G2yO#.tQ`O1G2yO$/jQMhO'#EkOOQ!0Lb,5@T,5@TO$/wQ!0LrO,5@TOOQ[1G.u1G.uO!ByQ!0LrO1G.uO!CUQpO1G.uO!C^QMhO1G.uO$0YQ`O1G0uO$0_Q`O'#CiO$0jQ`O'#KeO$0rQ`O,5=|O$0wQ`O'#KeO$0|Q`O'#KeO$1[Q`O'#JRO$1jQ`O,5AOO$1rQ!fO1G1iOOQ!0Lf1G1k1G1kO9kQ`O1G3fO@zQ`O1G3fO$1yQ`O1G3fO$2OQ`O1G3fO!DiQ`O1G3fO9uQ!0LrO1G3fOOQ[1G3f1G3fO!EcQ`O1G3UO!&zQMhO1G3RO$2TQ`O1G3ROOQ[1G3S1G3SO!&zQMhO1G3SO$2YQ`O1G3SO$2bQpO'#HQOOQ[1G3U1G3UO!6_QpO'#I}O!EhQ!bO1G3XOOQ[1G3X1G3XOOQ[,5=r,5=rO$2jQMhO,5=tO9kQ`O,5=tO$%dQ`O,5=vO9`Q`O,5=vO!CUQpO,5=vO!C^QMhO,5=vO:dQMhO,5=vO$2xQ`O'#KcO$3TQ`O,5=wOOQ[1G.k1G.kO$3YQ!0LrO1G.kO@zQ`O1G.kO$3eQ`O1G.kO9uQ!0LrO1G.kO$5mQ!fO,5AQO$5zQ`O,5AQO9eQ`O,5AQO$6VQlO,5>PO$6^Q`O,5>POOQ[1G3i1G3iO`QlO1G3iOOQ[1G3o1G3oOOQ[1G3q1G3qO?TQ`O1G3sO$6cQlO1G3uO$:gQlO'#HtOOQ[1G3x1G3xO$:tQ`O'#HzO?YQ`O'#H|OOQ[1G4O1G4OO$:|QlO1G4OO9uQ!0LrO1G4UOOQ[1G4W1G4WOOQ!0Lb'#G_'#G_O9uQ!0LrO1G4YO9uQ!0LrO1G4[O$?TQ`O,5@bO!)[QlO,5;`O9eQ`O,5;`O?YQ`O,5:XO!)[QlO,5:XO!CUQpO,5:XO$?YQ?MtO,5:XOOQO,5;`,5;`O$?dQpO'#IeO$?zQ`O,5@aOOQ!0Lf1G/r1G/rO$@SQpO'#IkO$@^Q`O,5@pOOQ!0Lb1G0y1G0yO#$`QpO,5:XOOQO'#Ig'#IgO$@fQpO,5:qOOQ!0Ln,5:q,5:qO#(ZQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO?YQ`O1G0tO!CUQpO1G0tO!C^QMhO1G0tOOQ!0Lb1G5|1G5|O!ByQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$@mQ!0LrO1G0mO$@xQ!0LrO1G0mO!CUQpO1G0^ODWQpO1G0^O$AWQ!0LrO1G0mOOQO1G0^1G0^O$AlQ!0MxO1G0mPOOO-E<[-E<[POOO1G.h1G.hOOOO1G/i1G/iO$AvQ!bO,5<iO$BOQ!fO1G4jOOQO1G4p1G4pO%[QlO,5?OO$BYQ`O1G5zO$BbQ`O1G6YO$BjQ!fO1G6ZO9eQ`O,5?UO$BtQ!0MxO1G6WO%[QlO1G6WO$CUQ!0LrO1G6WO$CgQ`O1G6VO$CgQ`O1G6VO9eQ`O1G6VO$CoQ`O,5?XO9eQ`O,5?XOOQO,5?X,5?XO$DTQ`O,5?XO$+YQ`O,5?XOOQO-E<k-E<kOOQS1G0a1G0aOOQS1G0c1G0cO#.lQ`O1G0cOOQ[7+(e7+(eO!&zQMhO7+(eO%[QlO7+(eO$DcQ`O7+(eO$DnQMhO7+(eO$D|Q!0MzO,5=XO$GXQ!0MzO,5=ZO$IdQ!0MzO,5=XO$KuQ!0MzO,5=ZO$NWQ!0MzO,59uO%!]Q!0MzO,5<kO%$hQ!0MzO,5<mO%&sQ!0MzO,5<{OOQ!0Lf7+&a7+&aO%)UQ!0MxO7+&aO%)xQlO'#IfO%*VQ`O,5@cO%*_Q!fO,5@cOOQ!0Lf1G0P1G0PO%*iQ`O7+&jOOQ!0Lf7+&j7+&jO%*nQ?MtO,5:fO%[QlO7+&zO%*xQ?MtO,5:bO%+VQ?MtO,5:jO%+aQ?MtO,5:lO%+kQMhO'#IiO%+uQ`O,5@hOOQ!0Lh1G0d1G0dOOQO1G1r1G1rOOQO1G1s1G1sO%+}Q!jO,5<ZO!)[QlO,5<YOOQO-E<l-E<lOOQ!0Lf7+'Y7+'YOOOW7+'e7+'eOOOW1G1|1G1|O%,YQ`O1G1|OOQ!0Lf1G2O1G2OOOOO,59o,59oO%,_Q!dO,59oOOOO-E<`-E<`OOQ!0Lh1G/X1G/XO%,fQ!0MxO7+'kOOQ!0Lh,5?^,5?^O%-YQMhO1G2fP%-aQ`O'#IrPOQ!0Lh-E<p-E<pO%-}QMjO,5?aOOQ!0Lh-E<s-E<sO%.pQMjO,5?cOOQ!0Lh-E<u-E<uO%.zQ!dO1G2wO%/RQ!dO'#CrO%/iQMhO'#KSO$$wQlO'#JvOOQ!0Lh1G2_1G2_O%/sQ`O'#IqO%0[Q`O,5@vO%0[Q`O,5@vO%0dQ`O,5@vO%0oQ`O,5@vOOQO1G2a1G2aO%0}QMjO1G2`O$+YQ`O'#K[O!,TQMhO1G2`O%1_Q(CWO'#IsO%1lQ`O,5@wO!&zQMhO,5@wO%1tQ!dO,5@wOOQ!0Lh1G2d1G2dO%4UQ!fO'#CiO%4`Q`O,5=POOQ!0Lb,5<},5<}O%4hQpO,5<}OOQ!0Lb,5=O,5=OOCwQ`O,5<}O%4sQpO,5<}OOQ!0Lb,5=R,5=RO$+YQ`O,5=VOOQO,5?`,5?`OOQO-E<r-E<rOOQ!0Lp1G2h1G2hO#$`QpO,5<}O$$wQlO,5=PO%5RQ`O,5=OO%5^QpO,5=OO!,TQMhO'#IuO%6WQMjO1G2sO!,TQMhO'#IwO%6yQMjO1G2uO%7TQMjO1G5qO%7_QMjO1G5qOOQO,5?e,5?eOOQO-E<w-E<wOOQO1G.{1G.{O!,TQMhO1G5qO!,TQMhO1G5qO!:]QpO,59wO%[QlO,59wOOQ!0Lh,5<j,5<jO%7lQ`O1G2ZO!,TQMhO1G2bO%7qQ!0MxO7+'mOOQ!0Lf7+'m7+'mO!$wQlO7+'mO%8eQ`O,5;`OOQ!0Lb,5?g,5?gOOQ!0Lb-E<y-E<yO%8jQ!dO'#K^O#(ZQ`O7+(eO4UQ!fO7+(eO$DfQ`O7+(eO%8tQ!0MvO'#CiO%9XQ!0MvO,5=SO%9lQ`O,5=SO%9tQ`O,5=SOOQ!0Lb1G5o1G5oOOQ[7+$a7+$aO!ByQ!0LrO7+$aO!CUQpO7+$aO!$wQlO7+&aO%9yQ`O'#JQO%:bQ`O,5APOOQO1G3h1G3hO9kQ`O,5APO%:bQ`O,5APO%:jQ`O,5APOOQO,5?m,5?mOOQO-E=P-E=POOQ!0Lf7+'T7+'TO%:oQ`O7+)QO9uQ!0LrO7+)QO9kQ`O7+)QO@zQ`O7+)QO%:tQ`O7+)QOOQ[7+)Q7+)QOOQ[7+(p7+(pO%:yQ!0MvO7+(mO!&zQMhO7+(mO!E^Q`O7+(nOOQ[7+(n7+(nO!&zQMhO7+(nO%;TQ`O'#KbO%;`Q`O,5=lOOQO,5?i,5?iOOQO-E<{-E<{OOQ[7+(s7+(sO%<rQpO'#HZOOQ[1G3`1G3`O!&zQMhO1G3`O%[QlO1G3`O%<yQ`O1G3`O%=UQMhO1G3`O9uQ!0LrO1G3bO$%dQ`O1G3bO9`Q`O1G3bO!CUQpO1G3bO!C^QMhO1G3bO%=dQ`O'#JPO%=xQ`O,5@}O%>QQpO,5@}OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@zQ`O7+$VO9uQ!0LrO7+$VO%>]Q`O7+$VO%[QlO1G6lO%[QlO1G6mO%>bQ!0LrO1G6lO%>lQlO1G3kO%>sQ`O1G3kO%>xQlO1G3kOOQ[7+)T7+)TO9uQ!0LrO7+)_O`QlO7+)aOOQ['#Kh'#KhOOQ['#JS'#JSO%?PQlO,5>`OOQ[,5>`,5>`O%[QlO'#HuO%?^Q`O'#HwOOQ[,5>f,5>fO9eQ`O,5>fOOQ[,5>h,5>hOOQ[7+)j7+)jOOQ[7+)p7+)pOOQ[7+)t7+)tOOQ[7+)v7+)vO%?cQpO1G5|O%?}Q?MtO1G0zO%@XQ`O1G0zOOQO1G/s1G/sO%@dQ?MtO1G/sO?YQ`O1G/sO!)[QlO'#DmOOQO,5?P,5?POOQO-E<c-E<cOOQO,5?V,5?VOOQO-E<i-E<iO!CUQpO1G/sOOQO-E<e-E<eOOQ!0Ln1G0]1G0]OOQ!0Lf7+%u7+%uO#(ZQ`O7+%uOOQ!0Lf7+&`7+&`O?YQ`O7+&`O!CUQpO7+&`OOQO7+%x7+%xO$AlQ!0MxO7+&XOOQO7+&X7+&XO%[QlO7+&XO%@nQ!0LrO7+&XO!ByQ!0LrO7+%xO!CUQpO7+%xO%@yQ!0LrO7+&XO%AXQ!0MxO7++rO%[QlO7++rO%AiQ`O7++qO%AiQ`O7++qOOQO1G4s1G4sO9eQ`O1G4sO%AqQ`O1G4sOOQS7+%}7+%}O#(ZQ`O<<LPO4UQ!fO<<LPO%BPQ`O<<LPOOQ[<<LP<<LPO!&zQMhO<<LPO%[QlO<<LPO%BXQ`O<<LPO%BdQ!0MzO,5?aO%DoQ!0MzO,5?cO%FzQ!0MzO1G2`O%I]Q!0MzO1G2sO%KhQ!0MzO1G2uO%MsQ!fO,5?QO%[QlO,5?QOOQO-E<d-E<dO%M}Q`O1G5}OOQ!0Lf<<JU<<JUO%NVQ?MtO1G0uO&!^Q?MtO1G1PO&!eQ?MtO1G1PO&$fQ?MtO1G1PO&$mQ?MtO1G1PO&&nQ?MtO1G1PO&(oQ?MtO1G1PO&(vQ?MtO1G1PO&(}Q?MtO1G1PO&+OQ?MtO1G1PO&+VQ?MtO1G1PO&+^Q!0MxO<<JfO&-UQ?MtO1G1PO&.RQ?MvO1G1PO&/UQ?MvO'#JlO&1[Q?MtO1G1cO&1iQ?MtO1G0UO&1sQMjO,5?TOOQO-E<g-E<gO!)[QlO'#FqOOQO'#KZ'#KZOOQO1G1u1G1uO&1}Q`O1G1tO&2SQ?MtO,5?[OOOW7+'h7+'hOOOO1G/Z1G/ZO&2^Q!dO1G4xOOQ!0Lh7+(Q7+(QP!&zQMhO,5?^O!,TQMhO7+(cO&2eQ`O,5?]O9eQ`O,5?]O$+YQ`O,5?]OOQO-E<o-E<oO&2sQ`O1G6bO&2sQ`O1G6bO&2{Q`O1G6bO&3WQMjO7+'zO&3hQ!dO,5?_O&3rQ`O,5?_O!&zQMhO,5?_OOQO-E<q-E<qO&3wQ!dO1G6cO&4RQ`O1G6cO&4ZQ`O1G2kO!&zQMhO1G2kOOQ!0Lb1G2i1G2iOOQ!0Lb1G2j1G2jO%4hQpO1G2iO!CUQpO1G2iOCwQ`O1G2iOOQ!0Lb1G2q1G2qO&4`QpO1G2iO&4nQ`O1G2kO$+YQ`O1G2jOCwQ`O1G2jO$$wQlO1G2kO&4vQ`O1G2jO&5jQMjO,5?aOOQ!0Lh-E<t-E<tO&6]QMjO,5?cOOQ!0Lh-E<v-E<vO!,TQMhO7++]O&6gQMjO7++]O&6qQMjO7++]OOQ!0Lh1G/c1G/cO&7OQ`O1G/cOOQ!0Lh7+'u7+'uO&7TQMjO7+'|O&7eQ!0MxO<<KXOOQ!0Lf<<KX<<KXO&8XQ`O1G0zO!&zQMhO'#IzO&8^Q`O,5@xO&:`Q!fO<<LPO!&zQMhO1G2nO&:gQ!0LrO1G2nOOQ[<<G{<<G{O!ByQ!0LrO<<G{O&:xQ!0MxO<<I{OOQ!0Lf<<I{<<I{OOQO,5?l,5?lO&;lQ`O,5?lO&;qQ`O,5?lOOQO-E=O-E=OO&<PQ`O1G6kO&<PQ`O1G6kO9kQ`O1G6kO@zQ`O<<LlOOQ[<<Ll<<LlO&<XQ`O<<LlO9uQ!0LrO<<LlO9kQ`O<<LlOOQ[<<LX<<LXO%:yQ!0MvO<<LXOOQ[<<LY<<LYO!E^Q`O<<LYO&<^QpO'#I|O&<iQ`O,5@|O!)[QlO,5@|OOQ[1G3W1G3WOOQO'#JO'#JOO9uQ!0LrO'#JOO&<qQpO,5=uOOQ[,5=u,5=uO&<xQpO'#EgO&=PQpO'#GeO&=UQ`O7+(zO&=ZQ`O7+(zOOQ[7+(z7+(zO!&zQMhO7+(zO%[QlO7+(zO&=cQ`O7+(zOOQ[7+(|7+(|O9uQ!0LrO7+(|O$%dQ`O7+(|O9`Q`O7+(|O!CUQpO7+(|O&=nQ`O,5?kOOQO-E<}-E<}OOQO'#H^'#H^O&=yQ`O1G6iO9uQ!0LrO<<GqOOQ[<<Gq<<GqO@zQ`O<<GqO&>RQ`O7+,WO&>WQ`O7+,XO%[QlO7+,WO%[QlO7+,XOOQ[7+)V7+)VO&>]Q`O7+)VO&>bQlO7+)VO&>iQ`O7+)VOOQ[<<Ly<<LyOOQ[<<L{<<L{OOQ[-E=Q-E=QOOQ[1G3z1G3zO&>nQ`O,5>aOOQ[,5>c,5>cO&>sQ`O1G4QO9eQ`O7+&fO!)[QlO7+&fOOQO7+%_7+%_O&>xQ?MtO1G6ZO?YQ`O7+%_OOQ!0Lf<<Ia<<IaOOQ!0Lf<<Iz<<IzO?YQ`O<<IzOOQO<<Is<<IsO$AlQ!0MxO<<IsO%[QlO<<IsOOQO<<Id<<IdO!ByQ!0LrO<<IdO&?SQ!0LrO<<IsO&?_Q!0MxO<= ^O&?oQ`O<= ]OOQO7+*_7+*_O9eQ`O7+*_OOQ[ANAkANAkO&?wQ!fOANAkO!&zQMhOANAkO#(ZQ`OANAkO4UQ!fOANAkO&@OQ`OANAkO%[QlOANAkO&@WQ!0MzO7+'zO&BiQ!0MzO,5?aO&DtQ!0MzO,5?cO&GPQ!0MzO7+'|O&IbQ!fO1G4lO&IlQ?MtO7+&aO&KpQ?MvO,5=XO&MwQ?MvO,5=ZO&NXQ?MvO,5=XO&NiQ?MvO,5=ZO&NyQ?MvO,59uO'#PQ?MvO,5<kO'%SQ?MvO,5<mO''hQ?MvO,5<{O')^Q?MtO7+'kO')kQ?MtO7+'mO')xQ`O,5<]OOQO7+'`7+'`OOQ!0Lh7+*d7+*dO')}QMjO<<K}OOQO1G4w1G4wO'*UQ`O1G4wO'*aQ`O1G4wO'*oQ`O7++|O'*oQ`O7++|O!&zQMhO1G4yO'*wQ!dO1G4yO'+RQ`O7++}O'+ZQ`O7+(VO'+fQ!dO7+(VOOQ!0Lb7+(T7+(TOOQ!0Lb7+(U7+(UO!CUQpO7+(TOCwQ`O7+(TO'+pQ`O7+(VO!&zQMhO7+(VO$+YQ`O7+(UO'+uQ`O7+(VOCwQ`O7+(UO'+}QMjO<<NwO!,TQMhO<<NwOOQ!0Lh7+$}7+$}O',XQ!dO,5?fOOQO-E<x-E<xO',cQ!0MvO7+(YO!&zQMhO7+(YOOQ[AN=gAN=gO9kQ`O1G5WOOQO1G5W1G5WO',sQ`O1G5WO',xQ`O7+,VO',xQ`O7+,VO9uQ!0LrOANBWO@zQ`OANBWOOQ[ANBWANBWO'-QQ`OANBWOOQ[ANAsANAsOOQ[ANAtANAtO'-VQ`O,5?hOOQO-E<z-E<zO'-bQ?MtO1G6hOOQO,5?j,5?jOOQO-E<|-E<|OOQ[1G3a1G3aO'-lQ`O,5=POOQ[<<Lf<<LfO!&zQMhO<<LfO&=UQ`O<<LfO'-qQ`O<<LfO%[QlO<<LfOOQ[<<Lh<<LhO9uQ!0LrO<<LhO$%dQ`O<<LhO9`Q`O<<LhO'-yQpO1G5VO'.UQ`O7+,TOOQ[AN=]AN=]O9uQ!0LrOAN=]OOQ[<= r<= rOOQ[<= s<= sO'.^Q`O<= rO'.cQ`O<= sOOQ[<<Lq<<LqO'.hQ`O<<LqO'.mQlO<<LqOOQ[1G3{1G3{O?YQ`O7+)lO'.tQ`O<<JQO'/PQ?MtO<<JQOOQO<<Hy<<HyOOQ!0LfAN?fAN?fOOQOAN?_AN?_O$AlQ!0MxOAN?_OOQOAN?OAN?OO%[QlOAN?_OOQO<<My<<MyOOQ[G27VG27VO!&zQMhOG27VO#(ZQ`OG27VO'/ZQ!fOG27VO4UQ!fOG27VO'/bQ`OG27VO'/jQ?MtO<<JfO'/wQ?MvO1G2`O'1mQ?MvO,5?aO'3pQ?MvO,5?cO'5sQ?MvO1G2sO'7vQ?MvO1G2uO'9yQ?MtO<<KXO':WQ?MtO<<I{OOQO1G1w1G1wO!,TQMhOANAiOOQO7+*c7+*cO':eQ`O7+*cO':pQ`O<= hO':xQ!dO7+*eOOQ!0Lb<<Kq<<KqO$+YQ`O<<KqOCwQ`O<<KqO';SQ`O<<KqO!&zQMhO<<KqOOQ!0Lb<<Ko<<KoO!CUQpO<<KoO';_Q!dO<<KqOOQ!0Lb<<Kp<<KpO';iQ`O<<KqO!&zQMhO<<KqO$+YQ`O<<KpO';nQMjOANDcO';xQ!0MvO<<KtOOQO7+*r7+*rO9kQ`O7+*rO'<YQ`O<= qOOQ[G27rG27rO9uQ!0LrOG27rO@zQ`OG27rO!)[QlO1G5SO'<bQ`O7+,SO'<jQ`O1G2kO&=UQ`OANBQOOQ[ANBQANBQO!&zQMhOANBQO'<oQ`OANBQOOQ[ANBSANBSO9uQ!0LrOANBSO$%dQ`OANBSOOQO'#H_'#H_OOQO7+*q7+*qOOQ[G22wG22wOOQ[ANE^ANE^OOQ[ANE_ANE_OOQ[ANB]ANB]O'<wQ`OANB]OOQ[<<MW<<MWO!)[QlOAN?lOOQOG24yG24yO$AlQ!0MxOG24yO#(ZQ`OLD,qOOQ[LD,qLD,qO!&zQMhOLD,qO'<|Q!fOLD,qO'=TQ?MvO7+'zO'>yQ?MvO,5?aO'@|Q?MvO,5?cO'CPQ?MvO7+'|O'DuQMjOG27TOOQO<<M}<<M}OOQ!0LbANA]ANA]O$+YQ`OANA]OCwQ`OANA]O'EVQ!dOANA]OOQ!0LbANAZANAZO'E^Q`OANA]O!&zQMhOANA]O'EiQ!dOANA]OOQ!0LbANA[ANA[OOQO<<N^<<N^OOQ[LD-^LD-^O9uQ!0LrOLD-^O'EsQ?MtO7+*nOOQO'#Gf'#GfOOQ[G27lG27lO&=UQ`OG27lO!&zQMhOG27lOOQ[G27nG27nO9uQ!0LrOG27nOOQ[G27wG27wO'E}Q?MtOG25WOOQOLD*eLD*eOOQ[!$(!]!$(!]O#(ZQ`O!$(!]O!&zQMhO!$(!]O'FXQ!0MzOG27TOOQ!0LbG26wG26wO$+YQ`OG26wO'HjQ`OG26wOCwQ`OG26wO'HuQ!dOG26wO!&zQMhOG26wOOQ[!$(!x!$(!xOOQ[LD-WLD-WO&=UQ`OLD-WOOQ[LD-YLD-YOOQ[!)9Ew!)9EwO#(ZQ`O!)9EwOOQ!0LbLD,cLD,cO$+YQ`OLD,cOCwQ`OLD,cO'H|Q`OLD,cO'IXQ!dOLD,cOOQ[!$(!r!$(!rOOQ[!.K;c!.K;cO'I`Q?MvOG27TOOQ!0Lb!$( }!$( }O$+YQ`O!$( }OCwQ`O!$( }O'KUQ`O!$( }OOQ!0Lb!)9Ei!)9EiO$+YQ`O!)9EiOCwQ`O!)9EiOOQ!0Lb!.K;T!.K;TO$+YQ`O!.K;TOOQ!0Lb!4/0o!4/0oO!)[QlO'#DzO1PQ`O'#EXO'KaQ!fO'#JrO'KhQ!L^O'#DvO'KoQlO'#EOO'KvQ!fO'#CiO'N^Q!fO'#CiO!)[QlO'#EQO'NnQlO,5;ZO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO'#IpO(!qQ`O,5<iO!)[QlO,5;eO(!yQMhO,5;eO($dQMhO,5;eO!)[QlO,5;wO!&zQMhO'#GmO(!yQMhO'#GmO!&zQMhO'#GoO(!yQMhO'#GoO1SQ`O'#DZO1SQ`O'#DZO!&zQMhO'#GPO(!yQMhO'#GPO!&zQMhO'#GRO(!yQMhO'#GRO!&zQMhO'#GaO(!yQMhO'#GaO!)[QlO,5:jO($kQpO'#D_O($uQpO'#JvO!)[QlO,5@oO'NnQlO1G0uO(%PQ?MtO'#CiO!)[QlO1G2PO!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO(%ZQ!dO'#CrO!&zQMhO,5<tO(!yQMhO,5<tO'NnQlO1G2RO!)[QlO7+&zO!&zQMhO1G2`O(!yQMhO1G2`O!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO!&zQMhO1G2bO(!yQMhO1G2bO'NnQlO7+'mO'NnQlO7+&aO!&zQMhOANAiO(!yQMhOANAiO(%nQ`O'#EoO(%sQ`O'#EoO(%{Q`O'#F]O(&QQ`O'#EyO(&VQ`O'#KTO(&bQ`O'#KRO(&mQ`O,5;ZO(&rQMjO,5<eO(&yQ`O'#GYO('OQ`O'#GYO('TQ`O,5<eO(']Q`O,5<gO('eQ`O,5;ZO('mQ?MtO1G1`O('tQ`O,5<tO('yQ`O,5<tO((OQ`O,5<vO((TQ`O,5<vO((YQ`O1G2RO((_Q`O1G0uO((dQMjO<<K}O((kQMjO<<K}O((rQMhO'#F|O9`Q`O'#F{OAuQ`O'#EnO!)[QlO,5;tO!3oQ`O'#GYO!3oQ`O'#GYO!3oQ`O'#G[O!3oQ`O'#G[O!,TQMhO7+(cO!,TQMhO7+(cO%.zQ!dO1G2wO%.zQ!dO1G2wO!&zQMhO,5=]O!&zQMhO,5=]",stateData:"()x~O'|OS'}OSTOS(ORQ~OPYOQYOSfOY!VOaqOdzOeyOl!POpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!uwO!xxO!|]O$W|O$niO%h}O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO&W!WO&^!XO&`!YO&b!ZO&d![O&g!]O&m!^O&s!_O&u!`O&w!aO&y!bO&{!cO(TSO(VTO(YUO(aVO(o[O~OWtO~P`OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa!wOs!nO!S!oO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!xO#W!pO#X!pO#[!zO#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O(O!{O~OP]XR]X[]Xa]Xj]Xr]X!Q]X!S]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X'z]X(a]X(r]X(y]X(z]X~O!g%RX~P(qO_!}O(V#PO(W!}O(X#PO~O_#QO(X#PO(Y#PO(Z#QO~Ox#SO!U#TO(b#TO(c#VO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T<ZO(VTO(YUO(aVO(o[O~O![#ZO!]#WO!Y(hP!Y(vP~P+}O!^#cO~P`OPYOQYOSfOd!jOe!iOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(VTO(YUO(aVO(o[O~Op#mO![#iO!|]O#i#lO#j#iO(T<[O!k(sP~P.iO!l#oO(T#nO~O!x#sO!|]O%h#tO~O#k#uO~O!g#vO#k#uO~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!]$_O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa(fX'z(fX'w(fX!k(fX!Y(fX!_(fX%i(fX!g(fX~P1qO#S$dO#`$eO$Q$eOP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX!_(gX%i(gX~Oa(gX'z(gX'w(gX!Y(gX!k(gXv(gX!g(gX~P4UO#`$eO~O$]$hO$_$gO$f$mO~OSfO!_$nO$i$oO$k$qO~Oh%VOj%dOk%dOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T$sO(VTO(YUO(a$uO(y$}O(z%POg(^P~Ol%[O~P7eO!l%eO~O!S%hO!_%iO(T%gO~O!g%mO~Oa%nO'z%nO~O!Q%rO~P%[O(U!lO~P%[O%n%vO~P%[Oh%VO!l%eO(T%gO(U!lO~Oe%}O!l%eO(T%gO~Oj$RO~O!_&PO(T%gO(U!lO(VTO(YUO`)WP~O!Q&SO!l&RO%j&VO&T&WO~P;SO!x#sO~O%s&YO!S)SX!_)SX(T)SX~O(T&ZO~Ol!PO!u&`O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO~Od&eOe&dO!x&bO%h&cO%{&aO~P<bOd&hOeyOl!PO!_&gO!u&`O!xxO!|]O%h}O%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO~Ob&kO#`&nO%j&iO(U!lO~P=gO!l&oO!u&sO~O!l#oO~O!_XO~Oa%nO'x&{O'z%nO~Oa%nO'x'OO'z%nO~Oa%nO'x'QO'z%nO~O'w]X!Y]Xv]X!k]X&[]X!_]X%i]X!g]X~P(qO!b'_O!c'WO!d'WO(U!lO(VTO(YUO~Os'UO!S'TO!['XO(e'SO!^(iP!^(xP~P@nOn'bO!_'`O(T%gO~Oe'gO!l%eO(T%gO~O!Q&SO!l&RO~Os!nO!S!oO!|<VO#T!pO#U!pO#W!pO#X!pO(U!lO(VTO(YUO(e!mO(o!sO~O!b'mO!c'lO!d'lO#V!pO#['nO#]'nO~PBYOa%nOh%VO!g#vO!l%eO'z%nO(r'pO~O!p'tO#`'rO~PChOs!nO!S!oO(VTO(YUO(e!mO(o!sO~O!_XOs(mX!S(mX!b(mX!c(mX!d(mX!|(mX#T(mX#U(mX#V(mX#W(mX#X(mX#[(mX#](mX(U(mX(V(mX(Y(mX(e(mX(o(mX~O!c'lO!d'lO(U!lO~PDWO(P'xO(Q'xO(R'zO~O_!}O(V'|O(W!}O(X'|O~O_#QO(X'|O(Y'|O(Z#QO~Ov(OO~P%[Ox#SO!U#TO(b#TO(c(RO~O![(TO!Y'WX!Y'^X!]'WX!]'^X~P+}O!](VO!Y(hX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!](VO!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~O!Y(hX~PHRO!Y([O~O!Y(uX!](uX!g(uX!k(uX(r(uX~O#`(uX#k#dX!^(uX~PJUO#`(]O!Y(wX!](wX~O!](^O!Y(vX~O!Y(aO~O#`$eO~PJUO!^(bO~P`OR#zO!Q#yO!S#{O!l#xO(aVOP!na[!naj!nar!na!]!na!p!na#R!na#n!na#o!na#p!na#q!na#r!na#s!na#t!na#u!na#v!na#x!na#z!na#{!na(r!na(y!na(z!na~Oa!na'z!na'w!na!Y!na!k!nav!na!_!na%i!na!g!na~PKlO!k(cO~O!g#vO#`(dO(r'pO!](tXa(tX'z(tX~O!k(tX~PNXO!S%hO!_%iO!|]O#i(iO#j(hO(T%gO~O!](jO!k(sX~O!k(lO~O!S%hO!_%iO#j(hO(T%gO~OP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~O!g#vO!k(gX~P! uOR(nO!Q(mO!l#xO#S$dO!|!{a!S!{a~O!x!{a%h!{a!_!{a#i!{a#j!{a(T!{a~P!#vO!x(rO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~O#k(xO~O![(zO!k(kP~P%[O(e(|O(o[O~O!S)OO!l#xO(e(|O(o[O~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]$_Oa$qa'z$qa'w$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)dO~P!&zOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Og(pP~P!,TO!Q)iO!g)hO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)hO!_({X$Z({X$]({X$_({X$f({X~O!Q)iO~P!.^O!Q)iO!_({X$Z({X$]({X$_({X$f({X~O!_)kO$Z)oO$])jO$_)jO$f)pO~O![)sO~P!)[O$]$hO$_$gO$f)wO~On$zX!Q$zX#S$zX'y$zX(y$zX(z$zX~OgmXg$zXnmX!]mX#`mX~P!0SOx)yO(b)zO(c)|O~On*VO!Q*OO'y*PO(y$}O(z%PO~Og)}O~P!1WOg*WO~Oh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S*YO!_*ZO!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op*`O![*^O(T*XO!k)OP~P!1uO#k*aO~O!l*bO~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(T*dO(VTO(YUO(a$uO(y$}O(z%PO~O![*gO!Y)PP~P!3tOr*sOs!nO!S*iO!b*qO!c*kO!d*kO!l*bO#[*rO%`*mO(U!lO(VTO(YUO(e!mO~O!^*pO~P!5iO#S$dOn(`X!Q(`X'y(`X(y(`X(z(`X!](`X#`(`X~Og(`X$O(`X~P!6kOn*xO#`*wOg(_X!](_X~O!]*yOg(^X~Oj%dOk%dOl%dO(T&ZOg(^P~Os*|O~Og)}O(T&ZO~O!l+SO~O(T(vO~Op+WO!S%hO![#iO!_%iO!|]O#i#lO#j#iO(T%gO!k(sP~O!g#vO#k+XO~O!S%hO![+ZO!](^O!_%iO(T%gO!Y(vP~Os'[O!S+]O![+[O(VTO(YUO(e(|O~O!^(xP~P!9|O!]+^Oa)TX'z)TX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa!ja!]!ja'z!ja'w!ja!Y!ja!k!jav!ja!_!ja%i!ja!g!ja~P!:tOR#zO!Q#yO!S#{O!l#xO(aVOP!ra[!raj!rar!ra!]!ra!p!ra#R!ra#n!ra#o!ra#p!ra#q!ra#r!ra#s!ra#t!ra#u!ra#v!ra#x!ra#z!ra#{!ra(r!ra(y!ra(z!ra~Oa!ra'z!ra'w!ra!Y!ra!k!rav!ra!_!ra%i!ra!g!ra~P!=[OR#zO!Q#yO!S#{O!l#xO(aVOP!ta[!taj!tar!ta!]!ta!p!ta#R!ta#n!ta#o!ta#p!ta#q!ta#r!ta#s!ta#t!ta#u!ta#v!ta#x!ta#z!ta#{!ta(r!ta(y!ta(z!ta~Oa!ta'z!ta'w!ta!Y!ta!k!tav!ta!_!ta%i!ta!g!ta~P!?rOh%VOn+gO!_'`O%i+fO~O!g+iOa(]X!_(]X'z(]X!](]X~Oa%nO!_XO'z%nO~Oh%VO!l%eO~Oh%VO!l%eO(T%gO~O!g#vO#k(xO~Ob+tO%j+uO(T+qO(VTO(YUO!^)XP~O!]+vO`)WX~O[+zO~O`+{O~O!_&PO(T%gO(U!lO`)WP~O%j,OO~P;SOh%VO#`,SO~Oh%VOn,VO!_$|O~O!_,XO~O!Q,ZO!_XO~O%n%vO~O!x,`O~Oe,eO~Ob,fO(T#nO(VTO(YUO!^)VP~Oe%}O~O%j!QO(T&ZO~P=gO[,kO`,jO~OPYOQYOSfOdzOeyOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!iuO!lZO!oYO!pYO!qYO!svO!xxO!|]O$niO%h}O(VTO(YUO(aVO(o[O~O!_!eO!u!gO$W!kO(T!dO~P!FyO`,jOa%nO'z%nO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa,pOl!OO!uwO%l!OO%m!OO%n!OO~P!IcO!l&oO~O&^,vO~O!_,xO~O&o,zO&q,{OP&laQ&laS&laY&laa&lad&lae&lal&lap&lar&las&lat&laz&la|&la!O&la!S&la!W&la!X&la!_&la!i&la!l&la!o&la!p&la!q&la!s&la!u&la!x&la!|&la$W&la$n&la%h&la%j&la%l&la%m&la%n&la%q&la%s&la%v&la%w&la%y&la&W&la&^&la&`&la&b&la&d&la&g&la&m&la&s&la&u&la&w&la&y&la&{&la'w&la(T&la(V&la(Y&la(a&la(o&la!^&la&e&lab&la&j&la~O(T-QO~Oh!eX!]!RX!^!RX!g!RX!g!eX!l!eX#`!RX~O!]!eX!^!eX~P#!iO!g-VO#`-UOh(jX!]#hX!^#hX!g(jX!l(jX~O!](jX!^(jX~P##[Oh%VO!g-XO!l%eO!]!aX!^!aX~Os!nO!S!oO(VTO(YUO(e!mO~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(VTO(YUO(aVO(o[O~O(T=QO~P#$qO!]-]O!^(iX~O!^-_O~O!g-VO#`-UO!]#hX!^#hX~O!]-`O!^(xX~O!^-bO~O!c-cO!d-cO(U!lO~P#$`O!^-fO~P'_On-iO!_'`O~O!Y-nO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(U!{a(V!{a(Y!{a(e!{a(o!{a~P!#vO!p-sO#`-qO~PChO!c-uO!d-uO(U!lO~PDWOa%nO#`-qO'z%nO~Oa%nO!g#vO#`-qO'z%nO~Oa%nO!g#vO!p-sO#`-qO'z%nO(r'pO~O(P'xO(Q'xO(R-zO~Ov-{O~O!Y'Wa!]'Wa~P!:tO![.PO!Y'WX!]'WX~P%[O!](VO!Y(ha~O!Y(ha~PHRO!](^O!Y(va~O!S%hO![.TO!_%iO(T%gO!Y'^X!]'^X~O#`.VO!](ta!k(taa(ta'z(ta~O!g#vO~P#,wO!](jO!k(sa~O!S%hO!_%iO#j.ZO(T%gO~Op.`O!S%hO![.]O!_%iO!|]O#i._O#j.]O(T%gO!]'aX!k'aX~OR.dO!l#xO~Oh%VOn.gO!_'`O%i.fO~Oa#ci!]#ci'z#ci'w#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:tOn>]O!Q*OO'y*PO(y$}O(z%PO~O#k#_aa#_a#`#_a'z#_a!]#_a!k#_a!_#_a!Y#_a~P#/sO#k(`XP(`XR(`X[(`Xa(`Xj(`Xr(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X'z(`X(a(`X(r(`X!k(`X!Y(`X'w(`Xv(`X!_(`X%i(`X!g(`X~P!6kO!].tO!k(kX~P!:tO!k.wO~O!Y.yO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#3cO#n$OO~P#3cOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#6QO#r$QO~P#6QOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(aVOa#mi!]#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(aVO(z#}Oa#mi!]#mi#z#mi#{#mi'z#mi(r#mi(y#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#;VO#x#mi~P#;VO#v$SO~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(aVO(y#|O(z#}Oa#mi!]#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#={O#z$WO~P#={OP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X!]]X!^]X~O$O]X~P#@jOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO#z<gO#{<hO(aVO(r$YO(y#|O(z#}O~O$O.{O~P#BwO#S$dO#`<nO$Q<nO$O(gX!^(gX~P! uOa'da!]'da'z'da'w'da!k'da!Y'dav'da!_'da%i'da!g'da~P!:tO[#mia#mij#mir#mi!]#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO(y#mi(z#mi~P#EyOn>]O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P#EyO!]/POg(pX~P!1WOg/RO~Oa$Pi!]$Pi'z$Pi'w$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:tO$]/SO$_/SO~O$]/TO$_/TO~O!g)hO#`/UO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/VO~O!_)kO$Z/XO$])jO$_)jO$f/YO~O!]<iO!^(fX~P#BwO!^/ZO~O!g)hO$f({X~O$f/]O~Ov/^O~P!&zOx)yO(b)zO(c/aO~O!S/dO~O(y$}On%aa!Q%aa'y%aa(z%aa!]%aa#`%aa~Og%aa$O%aa~P#L{O(z%POn%ca!Q%ca'y%ca(y%ca!]%ca#`%ca~Og%ca$O%ca~P#MnO!]fX!gfX!kfX!k$zX(rfX~P!0SOp%WO![/mO!](^O(T/lO!Y(vP!Y)PP~P!1uOr*sO!b*qO!c*kO!d*kO!l*bO#[*rO%`*mO(U!lO(VTO(YUO~Os<}O!S/nO![+[O!^*pO(e<|O!^(xP~P$ [O!k/oO~P#/sO!]/pO!g#vO(r'pO!k)OX~O!k/uO~OnoX!QoX'yoX(yoX(zoX~O!g#vO!koX~P$#OOp/wO!S%hO![*^O!_%iO(T%gO!k)OP~O#k/xO~O!Y$zX!]$zX!g%RX~P!0SO!]/yO!Y)PX~P#/sO!g/{O~O!Y/}O~OpkO(T0OO~P.iOh%VOr0TO!g#vO!l%eO(r'pO~O!g+iO~Oa%nO!]0XO'z%nO~O!^0ZO~P!5iO!c0[O!d0[O(U!lO~P#$`Os!nO!S0]O(VTO(YUO(e!mO~O#[0_O~Og%aa!]%aa#`%aa$O%aa~P!1WOg%ca!]%ca#`%ca$O%ca~P!1WOj%dOk%dOl%dO(T&ZOg'mX!]'mX~O!]*yOg(^a~Og0hO~On0jO#`0iOg(_a!](_a~OR0kO!Q0kO!S0lO#S$dOn}a'y}a(y}a(z}a!]}a#`}a~Og}a$O}a~P$(cO!Q*OO'y*POn$sa(y$sa(z$sa!]$sa#`$sa~Og$sa$O$sa~P$)_O!Q*OO'y*POn$ua(y$ua(z$ua!]$ua#`$ua~Og$ua$O$ua~P$*QO#k0oO~Og%Ta!]%Ta#`%Ta$O%Ta~P!1WO!g#vO~O#k0rO~O!]+^Oa)Ta'z)Ta~OR#zO!Q#yO!S#{O!l#xO(aVOP!ri[!rij!rir!ri!]!ri!p!ri#R!ri#n!ri#o!ri#p!ri#q!ri#r!ri#s!ri#t!ri#u!ri#v!ri#x!ri#z!ri#{!ri(r!ri(y!ri(z!ri~Oa!ri'z!ri'w!ri!Y!ri!k!riv!ri!_!ri%i!ri!g!ri~P$+oOh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op0{O%]0|O(T0zO~P$.VO!g+iOa(]a!_(]a'z(]a!](]a~O#k1SO~O[]X!]fX!^fX~O!]1TO!^)XX~O!^1VO~O[1WO~Ob1YO(T+qO(VTO(YUO~O!_&PO(T%gO`'uX!]'uX~O!]+vO`)Wa~O!k1]O~P!:tO[1`O~O`1aO~O#`1fO~On1iO!_$|O~O(e(|O!^)UP~Oh%VOn1rO!_1oO%i1qO~O[1|O!]1zO!^)VX~O!^1}O~O`2POa%nO'z%nO~O(T#nO(VTO(YUO~O#S$dO#`$eO$Q$eOP(gXR(gX[(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~Oj2SO&[2TOa(gX~P$3pOj2SO#`$eO&[2TO~Oa2VO~P%[Oa2XO~O&e2[OP&ciQ&ciS&ciY&cia&cid&cie&cil&cip&cir&cis&cit&ciz&ci|&ci!O&ci!S&ci!W&ci!X&ci!_&ci!i&ci!l&ci!o&ci!p&ci!q&ci!s&ci!u&ci!x&ci!|&ci$W&ci$n&ci%h&ci%j&ci%l&ci%m&ci%n&ci%q&ci%s&ci%v&ci%w&ci%y&ci&W&ci&^&ci&`&ci&b&ci&d&ci&g&ci&m&ci&s&ci&u&ci&w&ci&y&ci&{&ci'w&ci(T&ci(V&ci(Y&ci(a&ci(o&ci!^&cib&ci&j&ci~Ob2bO!^2`O&j2aO~P`O!_XO!l2dO~O&q,{OP&liQ&liS&liY&lia&lid&lie&lil&lip&lir&lis&lit&liz&li|&li!O&li!S&li!W&li!X&li!_&li!i&li!l&li!o&li!p&li!q&li!s&li!u&li!x&li!|&li$W&li$n&li%h&li%j&li%l&li%m&li%n&li%q&li%s&li%v&li%w&li%y&li&W&li&^&li&`&li&b&li&d&li&g&li&m&li&s&li&u&li&w&li&y&li&{&li'w&li(T&li(V&li(Y&li(a&li(o&li!^&li&e&lib&li&j&li~O!Y2jO~O!]!aa!^!aa~P#BwOs!nO!S!oO![2pO(e!mO!]'XX!^'XX~P@nO!]-]O!^(ia~O!]'_X!^'_X~P!9|O!]-`O!^(xa~O!^2wO~P'_Oa%nO#`3QO'z%nO~Oa%nO!g#vO#`3QO'z%nO~Oa%nO!g#vO!p3UO#`3QO'z%nO(r'pO~Oa%nO'z%nO~P!:tO!]$_Ov$qa~O!Y'Wi!]'Wi~P!:tO!](VO!Y(hi~O!](^O!Y(vi~O!Y(wi!](wi~P!:tO!](ti!k(tia(ti'z(ti~P!:tO#`3WO!](ti!k(tia(ti'z(ti~O!](jO!k(si~O!S%hO!_%iO!|]O#i3]O#j3[O(T%gO~O!S%hO!_%iO#j3[O(T%gO~On3dO!_'`O%i3cO~Oh%VOn3dO!_'`O%i3cO~O#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aav%aa!_%aa%i%aa!g%aa~P#L{O#k%caP%caR%ca[%caa%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%cav%ca!_%ca%i%ca!g%ca~P#MnO#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!]%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aa#`%aav%aa!_%aa%i%aa!g%aa~P#/sO#k%caP%caR%ca[%caa%caj%car%ca!S%ca!]%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%ca#`%cav%ca!_%ca%i%ca!g%ca~P#/sO#k}aP}a[}aa}aj}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a'z}a(a}a(r}a!k}a!Y}a'w}av}a!_}a%i}a!g}a~P$(cO#k$saP$saR$sa[$saa$saj$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa'z$sa(a$sa(r$sa!k$sa!Y$sa'w$sav$sa!_$sa%i$sa!g$sa~P$)_O#k$uaP$uaR$ua[$uaa$uaj$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua'z$ua(a$ua(r$ua!k$ua!Y$ua'w$uav$ua!_$ua%i$ua!g$ua~P$*QO#k%TaP%TaR%Ta[%Taa%Taj%Tar%Ta!S%Ta!]%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta'z%Ta(a%Ta(r%Ta!k%Ta!Y%Ta'w%Ta#`%Tav%Ta!_%Ta%i%Ta!g%Ta~P#/sOa#cq!]#cq'z#cq'w#cq!Y#cq!k#cqv#cq!_#cq%i#cq!g#cq~P!:tO![3lO!]'YX!k'YX~P%[O!].tO!k(ka~O!].tO!k(ka~P!:tO!Y3oO~O$O!na!^!na~PKlO$O!ja!]!ja!^!ja~P#BwO$O!ra!^!ra~P!=[O$O!ta!^!ta~P!?rOg']X!]']X~P!,TO!]/POg(pa~OSfO!_4TO$d4UO~O!^4YO~Ov4ZO~P#/sOa$mq!]$mq'z$mq'w$mq!Y$mq!k$mqv$mq!_$mq%i$mq!g$mq~P!:tO!Y4]O~P!&zO!S4^O~O!Q*OO'y*PO(z%POn'ia(y'ia!]'ia#`'ia~Og'ia$O'ia~P%-fO!Q*OO'y*POn'ka(y'ka(z'ka!]'ka#`'ka~Og'ka$O'ka~P%.XO(r$YO~P#/sO!YfX!Y$zX!]fX!]$zX!g%RX#`fX~P!0SOp%WO(T=WO~P!1uOp4bO!S%hO![4aO!_%iO(T%gO!]'eX!k'eX~O!]/pO!k)Oa~O!]/pO!g#vO!k)Oa~O!]/pO!g#vO(r'pO!k)Oa~Og$|i!]$|i#`$|i$O$|i~P!1WO![4jO!Y'gX!]'gX~P!3tO!]/yO!Y)Pa~O!]/yO!Y)Pa~P#/sOP]XR]X[]Xj]Xr]X!Q]X!S]X!Y]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~Oj%YX!g%YX~P%2OOj4oO!g#vO~Oh%VO!g#vO!l%eO~Oh%VOr4tO!l%eO(r'pO~Or4yO!g#vO(r'pO~Os!nO!S4zO(VTO(YUO(e!mO~O(y$}On%ai!Q%ai'y%ai(z%ai!]%ai#`%ai~Og%ai$O%ai~P%5oO(z%POn%ci!Q%ci'y%ci(y%ci!]%ci#`%ci~Og%ci$O%ci~P%6bOg(_i!](_i~P!1WO#`5QOg(_i!](_i~P!1WO!k5VO~Oa$oq!]$oq'z$oq'w$oq!Y$oq!k$oqv$oq!_$oq%i$oq!g$oq~P!:tO!Y5ZO~O!]5[O!_)QX~P#/sOa$zX!_$zX%^]X'z$zX!]$zX~P!0SO%^5_OaoX!_oX'zoX!]oX~P$#OOp5`O(T#nO~O%^5_O~Ob5fO%j5gO(T+qO(VTO(YUO!]'tX!^'tX~O!]1TO!^)Xa~O[5kO~O`5lO~O[5pO~Oa%nO'z%nO~P#/sO!]5uO#`5wO!^)UX~O!^5xO~Or6OOs!nO!S*iO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!pO#W!pO#X!pO#[5}O#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O!^5|O~P%;eOn6TO!_1oO%i6SO~Oh%VOn6TO!_1oO%i6SO~Ob6[O(T#nO(VTO(YUO!]'sX!^'sX~O!]1zO!^)Va~O(VTO(YUO(e6^O~O`6bO~Oj6eO&[6fO~PNXO!k6gO~P%[Oa6iO~Oa6iO~P%[Ob2bO!^6nO&j2aO~P`O!g6pO~O!g6rOh(ji!](ji!^(ji!g(ji!l(jir(ji(r(ji~O!]#hi!^#hi~P#BwO#`6sO!]#hi!^#hi~O!]!ai!^!ai~P#BwOa%nO#`6|O'z%nO~Oa%nO!g#vO#`6|O'z%nO~O!](tq!k(tqa(tq'z(tq~P!:tO!](jO!k(sq~O!S%hO!_%iO#j7TO(T%gO~O!_'`O%i7WO~On7[O!_'`O%i7WO~O#k'iaP'iaR'ia['iaa'iaj'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia'z'ia(a'ia(r'ia!k'ia!Y'ia'w'iav'ia!_'ia%i'ia!g'ia~P%-fO#k'kaP'kaR'ka['kaa'kaj'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka'z'ka(a'ka(r'ka!k'ka!Y'ka'w'kav'ka!_'ka%i'ka!g'ka~P%.XO#k$|iP$|iR$|i[$|ia$|ij$|ir$|i!S$|i!]$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i'z$|i(a$|i(r$|i!k$|i!Y$|i'w$|i#`$|iv$|i!_$|i%i$|i!g$|i~P#/sO#k%aiP%aiR%ai[%aia%aij%air%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai'z%ai(a%ai(r%ai!k%ai!Y%ai'w%aiv%ai!_%ai%i%ai!g%ai~P%5oO#k%ciP%ciR%ci[%cia%cij%cir%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci'z%ci(a%ci(r%ci!k%ci!Y%ci'w%civ%ci!_%ci%i%ci!g%ci~P%6bO!]'Ya!k'Ya~P!:tO!].tO!k(ki~O$O#ci!]#ci!^#ci~P#BwOP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mij#mir#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#n#mi~P%NdO#n<_O~P%NdOP$[OR#zOr<kO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO[#mij#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#r#mi~P&!lO#r<aO~P&!lOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO(aVO#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#v#mi~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO(aVO(z#}O#z#mi#{#mi$O#mi(r#mi(y#mi!]#mi!^#mi~O#x<eO~P&&uO#x#mi~P&&uO#v<cO~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO(aVO(y#|O(z#}O#{#mi$O#mi(r#mi!]#mi!^#mi~O#z#mi~P&)UO#z<gO~P&)UOa#|y!]#|y'z#|y'w#|y!Y#|y!k#|yv#|y!_#|y%i#|y!g#|y~P!:tO[#mij#mir#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi!]#mi!^#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO(y#mi(z#mi~P&,QOn>^O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P&,QO#S$dOP(`XR(`X[(`Xj(`Xn(`Xr(`X!Q(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X$O(`X'y(`X(a(`X(r(`X(y(`X(z(`X!](`X!^(`X~O$O$Pi!]$Pi!^$Pi~P#BwO$O!ri!^!ri~P$+oOg']a!]']a~P!1WO!^7nO~O!]'da!^'da~P#BwO!Y7oO~P#/sO!g#vO(r'pO!]'ea!k'ea~O!]/pO!k)Oi~O!]/pO!g#vO!k)Oi~Og$|q!]$|q#`$|q$O$|q~P!1WO!Y'ga!]'ga~P#/sO!g7vO~O!]/yO!Y)Pi~P#/sO!]/yO!Y)Pi~O!Y7yO~Oh%VOr8OO!l%eO(r'pO~Oj8QO!g#vO~Or8TO!g#vO(r'pO~O!Q*OO'y*PO(z%POn'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P&5RO!Q*OO'y*POn'la(y'la(z'la!]'la#`'la~Og'la$O'la~P&5tOg(_q!](_q~P!1WO#`8VOg(_q!](_q~P!1WO!Y8WO~Og%Oq!]%Oq#`%Oq$O%Oq~P!1WOa$oy!]$oy'z$oy'w$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:tO!g6rO~O!]5[O!_)Qa~O!_'`OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(a$Ta(r$Ta(y$Ta(z$Ta~O%i7WO~P&8fO%^8[Oa%[i!_%[i'z%[i!]%[i~Oa#cy!]#cy'z#cy'w#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:tO[8^O~Ob8`O(T+qO(VTO(YUO~O!]1TO!^)Xi~O`8dO~O(e(|O!]'pX!^'pX~O!]5uO!^)Ua~O!^8nO~P%;eO(o!sO~P$&YO#[8oO~O!_1oO~O!_1oO%i8qO~On8tO!_1oO%i8qO~O[8yO!]'sa!^'sa~O!]1zO!^)Vi~O!k8}O~O!k9OO~O!k9RO~O!k9RO~P%[Oa9TO~O!g9UO~O!k9VO~O!](wi!^(wi~P#BwOa%nO#`9_O'z%nO~O!](ty!k(tya(ty'z(ty~P!:tO!](jO!k(sy~O%i9bO~P&8fO!_'`O%i9bO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'z$|q(a$|q(r$|q!k$|q!Y$|q'w$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/sO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'z'ja(a'ja(r'ja!k'ja!Y'ja'w'jav'ja!_'ja%i'ja!g'ja~P&5RO#k'laP'laR'la['laa'laj'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la'z'la(a'la(r'la!k'la!Y'la'w'lav'la!_'la%i'la!g'la~P&5tO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'z%Oq(a%Oq(r%Oq!k%Oq!Y%Oq'w%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/sO!]'Yi!k'Yi~P!:tO$O#cq!]#cq!^#cq~P#BwO(y$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(a%aa(r%aa!]%aa!^%aa~On%aa!Q%aa'y%aa(z%aa~P&IyO(z%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(a%ca(r%ca!]%ca!^%ca~On%ca!Q%ca'y%ca(y%ca~P&LQOn>^O!Q*OO'y*PO(z%PO~P&IyOn>^O!Q*OO'y*PO(y$}O~P&LQOR0kO!Q0kO!S0lO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'y}a(a}a(r}a(y}a(z}a!]}a!^}a~O!Q*OO'y*POP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(a$sa(r$sa(y$sa(z$sa!]$sa!^$sa~O!Q*OO'y*POP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(a$ua(r$ua(y$ua(z$ua!]$ua!^$ua~On>^O!Q*OO'y*PO(y$}O(z%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(a%Ta(r%Ta!]%Ta!^%Ta~P''VO$O$mq!]$mq!^$mq~P#BwO$O$oq!]$oq!^$oq~P#BwO!^9oO~O$O9pO~P!1WO!g#vO!]'ei!k'ei~O!g#vO(r'pO!]'ei!k'ei~O!]/pO!k)Oq~O!Y'gi!]'gi~P#/sO!]/yO!Y)Pq~Or9wO!g#vO(r'pO~O[9yO!Y9xO~P#/sO!Y9xO~Oj:PO!g#vO~Og(_y!](_y~P!1WO!]'na!_'na~P#/sOa%[q!_%[q'z%[q!]%[q~P#/sO[:UO~O!]1TO!^)Xq~O`:YO~O#`:ZO!]'pa!^'pa~O!]5uO!^)Ui~P#BwO!S:]O~O!_1oO%i:`O~O(VTO(YUO(e:eO~O!]1zO!^)Vq~O!k:hO~O!k:iO~O!k:jO~O!k:jO~P%[O#`:mO!]#hy!^#hy~O!]#hy!^#hy~P#BwO%i:rO~P&8fO!_'`O%i:rO~O$O#|y!]#|y!^#|y~P#BwOP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(a$|i(r$|i!]$|i!^$|i~P''VO!Q*OO'y*PO(z%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(a'ia(r'ia(y'ia!]'ia!^'ia~O!Q*OO'y*POP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(a'ka(r'ka(y'ka(z'ka!]'ka!^'ka~O(y$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'y%ai(a%ai(r%ai(z%ai!]%ai!^%ai~O(z%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'y%ci(a%ci(r%ci(y%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#BwO$O#cy!]#cy!^#cy~P#BwO!g#vO!]'eq!k'eq~O!]/pO!k)Oy~O!Y'gq!]'gq~P#/sOr:|O!g#vO(r'pO~O[;QO!Y;PO~P#/sO!Y;PO~Og(_!R!](_!R~P!1WOa%[y!_%[y'z%[y!]%[y~P#/sO!]1TO!^)Xy~O!]5uO!^)Uq~O(T;XO~O!_1oO%i;[O~O!k;_O~O%i;dO~P&8fOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(a$|q(r$|q!]$|q!^$|q~P''VO!Q*OO'y*PO(z%POP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(a'ja(r'ja(y'ja!]'ja!^'ja~O!Q*OO'y*POP'laR'la['laj'lan'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la$O'la(a'la(r'la(y'la(z'la!]'la!^'la~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(a%Oq(r%Oq!]%Oq!^%Oq~P''VOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!1WO!Y;hO~P#/sOr;iO!g#vO(r'pO~O[;kO!Y;hO~P#/sO!]'pq!^'pq~P#BwO!]#h!Z!^#h!Z~P#BwO#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'z%e!Z(a%e!Z(r%e!Z!k%e!Z!Y%e!Z'w%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/sOr;tO!g#vO(r'pO~O!Y;uO~P#/sOr;|O!g#vO(r'pO~O!Y;}O~P#/sOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(a%e!Z(r%e!Z!]%e!Z!^%e!Z~P''VOr<QO!g#vO(r'pO~Ov(fX~P1qO!Q%rO~P!)[O(U!lO~P!)[O!YfX!]fX#`fX~P%2OOP]XR]X[]Xj]Xr]X!Q]X!S]X!]]X!]fX!l]X!p]X#R]X#S]X#`]X#`fX#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~O!gfX!k]X!kfX(rfX~P'LTOP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_XO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]<iO!^$qa~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<tO!S${O!_$|O!i>WO!l$xO#j<zO$W%`O$t<vO$v<xO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Ol)dO~P(!yOr!eX(r!eX~P#!iOr(jX(r(jX~P##[O!^]X!^fX~P'LTO!YfX!Y$zX!]fX!]$zX#`fX~P!0SO#k<^O~O!g#vO#k<^O~O#`<nO~Oj<bO~O#`=OO!](wX!^(wX~O#`<nO!](uX!^(uX~O#k=PO~Og=RO~P!1WO#k=XO~O#k=YO~Og=RO(T&ZO~O!g#vO#k=ZO~O!g#vO#k=PO~O$O=[O~P#BwO#k=]O~O#k=^O~O#k=cO~O#k=dO~O#k=eO~O#k=fO~O$O=gO~P!1WO$O=hO~P!1WOl=sO~P7eOk#S#T#U#W#X#[#i#j#u$n$t$v$y%]%^%h%i%j%q%s%v%w%y%{~(OT#o!X'|(U#ps#n#qr!Q'}$]'}(T$_(e~",goto:"$9Y)]PPPPPP)^PP)aP)rP+W/]PPPP6mPP7TPP=QPPP@tPA^PA^PPPA^PCfPA^PA^PA^PCjPCoPD^PIWPPPI[PPPPI[L_PPPLeMVPI[PI[PP! eI[PPPI[PI[P!#lI[P!'S!(X!(bP!)U!)Y!)U!,gPPPPPPP!-W!(XPP!-h!/YP!2iI[I[!2n!5z!:h!:h!>gPPP!>oI[PPPPPPPPP!BOP!C]PPI[!DnPI[PI[I[I[I[I[PI[!FQP!I[P!LbP!Lf!Lp!Lt!LtP!IXP!Lx!LxP#!OP#!SI[PI[#!Y#%_CjA^PA^PA^A^P#&lA^A^#)OA^#+vA^#.SA^A^#.r#1W#1W#1]#1f#1W#1qPP#1WPA^#2ZA^#6YA^A^6mPPP#:_PPP#:x#:xP#:xP#;`#:xPP#;fP#;]P#;]#;y#;]#<e#<k#<n)aP#<q)aP#<z#<z#<zP)aP)aP)aP)aPP)aP#=Q#=TP#=T)aP#=XP#=[P)aP)aP)aP)aP)aP)a)aPP#=b#=h#=s#=y#>P#>V#>]#>k#>q#>{#?R#?]#?c#?s#?y#@k#@}#AT#AZ#Ai#BO#Cs#DR#DY#Et#FS#Gt#HS#HY#H`#Hf#Hp#Hv#H|#IW#Ij#IpPPPPPPPPPPP#IvPPPPPPP#Jk#Mx$ b$ i$ qPPP$']P$'f$*_$0x$0{$1O$1}$2Q$2X$2aP$2g$2jP$3W$3[$4S$5b$5g$5}PP$6S$6Y$6^$6a$6e$6i$7e$7|$8e$8i$8l$8o$8y$8|$9Q$9UR!|RoqOXst!Z#d%m&r&t&u&w,s,x2[2_Y!vQ'`-e1o5{Q%tvQ%|yQ&T|Q&j!VS'W!e-]Q'f!iS'l!r!yU*k$|*Z*oQ+o%}S+|&V&WQ,d&dQ-c'_Q-m'gQ-u'mQ0[*qQ1b,OQ1y,eR<{<Y%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_S#q]<V!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU+P%]<s<tQ+t&PQ,f&gQ,m&oQ0x+gQ0}+iQ1Y+uQ2R,kQ3`.gQ5`0|Q5f1TQ6[1zQ7Y3dQ8`5gR9e7['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S!S!nQ!r!v!y!z$|'W'_'`'l'm'n*k*o*q*r-]-c-e-u0[0_1o5{5}%[$ti#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q&X|Q'U!eS'[%i-`Q+t&PQ,P&WQ,f&gQ0n+SQ1Y+uQ1_+{Q2Q,jQ2R,kQ5f1TQ5o1aQ6[1zQ6_1|Q6`2PQ8`5gQ8c5lQ8|6bQ:X8dQ:f8yQ;V:YR<}*ZrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R,h&k&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'b'r(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>R>S[#]WZ#W#Z'X(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ%wxQ%{yW&Q|&V&W,OQ&_!TQ'c!hQ'e!iQ(q#sS+n%|%}Q+r&PQ,_&bQ,c&dS-l'f'gQ.i(rQ1R+oQ1X+uQ1Z+vQ1^+zQ1t,`S1x,d,eQ2|-mQ5e1TQ5i1WQ5n1`Q6Z1yQ8_5gQ8b5kQ8f5pQ:T8^R;T:U!U$zi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y!^%yy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{Q+h%wQ,T&[Q,W&]Q,b&dQ.h(qQ1s,_U1w,c,d,eQ3e.iQ6U1tS6Y1x1yQ8x6Z#f>T#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o>U<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hW%Ti%V*y>PS&[!Q&iQ&]!RQ&^!SU*}%[%d=sR,R&Y%]%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^T)z$u){V+P%]<s<tW'[!e%i*Z-`S(}#y#zQ+c%rQ+y&SS.b(m(nQ1j,XQ5T0kR8i5u'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S$i$^c#Y#e%q%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.|.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vT#TV#U'RkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ'Y!eR2q-]!W!nQ!e!r!v!y!z$|'W'_'`'l'm'n*Z*k*o*q*r-]-c-e-u0[0_1o5{5}R1l,ZnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&y!^Q'v!xS(s#u<^Q+l%zQ,]&_Q,^&aQ-j'dQ-w'oS.r(x=PS0q+X=ZQ1P+mQ1n,[Q2c,zQ2e,{Q2m-WQ2z-kQ2}-oS5Y0r=eQ5a1QS5d1S=fQ6t2oQ6x2{Q6}3SQ8]5bQ9Y6vQ9Z6yQ9^7OR:l9V$d$]c#Y#e%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vS(o#p'iQ)P#zS+b%q.|S.c(n(pR3^.d'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS#q]<VQ&t!XQ&u!YQ&w![Q&x!]R2Z,vQ'a!hQ+e%wQ-h'cS.e(q+hQ2x-gW3b.h.i0w0yQ6w2yW7U3_3a3e5^U9a7V7X7ZU:q9c9d9fS;b:p:sQ;p;cR;x;qU!wQ'`-eT5y1o5{!Q_OXZ`st!V!Z#d#h%e%m&i&k&r&t&u&w(j,s,x.[2[2_]!pQ!r'`-e1o5{T#q]<V%^{OPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S(}#y#zS.b(m(n!s=l$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU$fd)_,mS(p#p'iU*v%R(w4OU0m+O.n7gQ5^0xQ7V3`Q9d7YR:s9em!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}Q't!uS(f#g2US-s'k'wQ/s*]Q0R*jQ3U-vQ4f/tQ4r0TQ4s0UQ4x0^Q7r4`S7}4t4vS8R4y4{Q9r7sQ9v7yQ9{8OQ:Q8TS:{9w9xS;g:|;PS;s;h;iS;{;t;uS<P;|;}R<S<QQ#wbQ's!uS(e#g2US(g#m+WQ+Y%fQ+j%xQ+p&OU-r'k't'wQ.W(fU/r*]*`/wQ0S*jQ0V*lQ1O+kQ1u,aS3R-s-vQ3Z.`S4e/s/tQ4n0PS4q0R0^Q4u0WQ6W1vQ7P3US7q4`4bQ7u4fU7|4r4x4{Q8P4wQ8v6XS9q7r7sQ9u7yQ9}8RQ:O8SQ:c8wQ:y9rS:z9v9xQ;S:QQ;^:dS;f:{;PS;r;g;hS;z;s;uS<O;{;}Q<R<PQ<T<SQ=o=jQ={=tR=|=uV!wQ'`-e%^aOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S#wz!j!r=i$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=o>R%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Q%fj!^%xy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{S&Oz!jQ+k%yQ,a&dW1v,b,c,d,eU6X1w1x1yS8w6Y6ZQ:d8x!r=j$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ=t>QR=u>R%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Y#bWZ#W#Z(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ,n&o!p=k$Z$n)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=n'XU']!e%i*ZR2s-`%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ,m&oQ0x+gQ3`.gQ7Y3dR9e7[!b$Tc#Y%q(S(Y(t(y)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!P<d)^)q-Z.|2k2n3p3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!f$Vc#Y%q(S(Y(t(y)W)X)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!T<f)^)q-Z.|2k2n3p3v3w3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!^$Zc#Y%q(S(Y(t(y)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<WQ4_/kz>S)^)q-Z.|2k2n3p4P4X6u7b7k7l8k9X9g9m9n;W;`=vQ>X>ZR>Y>['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS$oh$pR4U/U'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$kf$qQ$ifS)j$l)nR)v$qT$jf$qT)l$l)n'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$oh$pQ$rhR)u$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_!s>Q$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S#glOPXZst!Z!`!o#S#d#o#{$n%m&k&n&o&r&t&u&w&{'T'b)O)s*i+]+g,p,s,x-i.g/V/n0]0l1r2S2T2V2X2[2_2a3d4T4z6T6e6f6i7[8t9T!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^Q+T%aQ/c*Oo4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!U$yi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>YQ*c$zU*l$|*Z*oQ+U%bQ0W*m#f=q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n=r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hQ=w>TQ=x>UQ=y>VR=z>W!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hnoOXst!Z#d%m&r&t&u&w,s,x2[2_S*f${*YQ-R'OQ-S'QR4i/y%[%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q,U&]Q1h,WQ5s1gR8h5tV*n$|*Z*oU*n$|*Z*oT5z1o5{S0P*i/nQ4w0]T8S4z:]Q+j%xQ0V*lQ1O+kQ1u,aQ6W1vQ8v6XQ:c8wR;^:d!U%Oi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Yx*R$v)e*S*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>OS0`*t0a#f<o#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<p<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!d=S(u)c*[*e.j.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[`=T3}7c7f7j9h:t:w;yS=_.l3iT=`7e9k!U%Qi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y|*T$v)e*U*t+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>OS0b*u0c#f<q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!h=U(u)c*[*e.k.l.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[d=V3}7d7e7j9h9i:t:u:w;yS=a.m3jT=b7f9lrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q&f!UR,p&ornOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R&f!UQ,Y&^R1d,RsnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q1p,_S6R1s1tU8p6P6Q6US:_8r8sS;Y:^:aQ;m;ZR;w;nQ&m!VR,i&iR6_1|R:f8yW&Q|&V&W,OR1Z+vQ&r!WR,s&sR,y&xT2],x2_R,}&yQ,|&yR2f,}Q'y!{R-y'ySsOtQ#dXT%ps#dQ#OTR'{#OQ#RUR'}#RQ){$uR/`){Q#UVR(Q#UQ#XWU(W#X(X.QQ(X#YR.Q(YQ-^'YR2r-^Q.u(yS3m.u3nR3n.vQ-e'`R2v-eY!rQ'`-e1o5{R'j!rQ/Q)eR4S/QU#_W%h*YU(_#_(`.RQ(`#`R.R(ZQ-a']R2t-at`OXst!V!Z#d%m&i&k&r&t&u&w,s,x2[2_S#hZ%eU#r`#h.[R.[(jQ(k#jQ.X(gW.a(k.X3X7RQ3X.YR7R3YQ)n$lR/W)nQ$phR)t$pQ$`cU)a$`-|<jQ-|<WR<j)qQ/q*]W4c/q4d7t9sU4d/r/s/tS7t4e4fR9s7u$e*Q$v(u)c)e*[*e*t*u+Q+R+V.l.m.o.p.q/_/g/i/k/v/|0d0e0v1e3f3g3h3}4R4[4g4h4l4|5O5R5S5W5r7]7^7_7`7e7f7h7i7j7p7w7z8U8X8Z9h9i9j9t9|:R:S:t:u:v:w:x:};R;e;j;v;y=p=}>O>Z>[Q/z*eU4k/z4m7xQ4m/|R7x4lS*o$|*ZR0Y*ox*S$v)e*t*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>O!d.j(u)c*[*e.l.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/h*S.j7ca7c3}7e7f7j9h:t:w;yQ0a*tQ3i.lU4}0a3i9kR9k7e|*U$v)e*t*u+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>O!h.k(u)c*[*e.l.m.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/j*U.k7de7d3}7e7f7j9h9i:t:u:w;yQ0c*uQ3j.mU5P0c3j9lR9l7fQ*z%UR0g*zQ5]0vR8Y5]Q+_%kR0u+_Q5v1jS8j5v:[R:[8kQ,[&_R1m,[Q5{1oR8m5{Q1{,fS6]1{8zR8z6_Q1U+rW5h1U5j8a:VQ5j1XQ8a5iR:V8bQ+w&QR1[+wQ2_,xR6m2_YrOXst#dQ&v!ZQ+a%mQ,r&rQ,t&tQ,u&uQ,w&wQ2Y,sS2],x2_R6l2[Q%opQ&z!_Q&}!aQ'P!bQ'R!cQ'q!uQ+`%lQ+l%zQ,Q&XQ,h&mQ-P&|W-p'k's't'wQ-w'oQ0X*nQ1P+mQ1c,PS2O,i,lQ2g-OQ2h-RQ2i-SQ2}-oW3P-r-s-v-xQ5a1QQ5m1_Q5q1eQ6V1uQ6a2QQ6k2ZU6z3O3R3UQ6}3SQ8]5bQ8e5oQ8g5rQ8l5zQ8u6WQ8{6`S9[6{7PQ9^7OQ:W8cQ:b8vQ:g8|Q:n9]Q;U:XQ;]:cQ;a:oQ;l;VR;o;^Q%zyQ'd!iQ'o!uU+m%{%|%}Q-W'VU-k'e'f'gS-o'k'uQ0Q*jS1Q+n+oQ2o-YS2{-l-mQ3S-tS4p0R0UQ5b1RQ6v2uQ6y2|Q7O3TU7{4r4s4vQ9z7}R;O9{S$wi>PR*{%VU%Ui%V>PR0f*yQ$viS(u#v+iS)c$b$cQ)e$dQ*[$xS*e${*YQ*t%OQ*u%QQ+Q%^Q+R%_Q+V%cQ.l<oQ.m<qQ.o<uQ.p<wQ.q<yQ/_)yQ/g*RQ/i*TQ/k*VQ/v*aS/|*g/mQ0d*wQ0e*xl0v+f,V.f1i1q3c6S7W8q9b:`:r;[;dQ1e,SQ3f=SQ3g=UQ3h=XS3}<l<mQ4R/PS4[/d4^Q4g/xQ4h/yQ4l/{Q4|0`Q5O0bQ5R0iQ5S0jQ5W0oQ5r1fQ7]=]Q7^=_Q7_=aQ7`=cQ7e<pQ7f<rQ7h<vQ7i<xQ7j<zQ7p4_Q7w4jQ7z4oQ8U5QQ8X5[Q8Z5_Q9h=YQ9i=TQ9j=VQ9t7vQ9|8QQ:R8VQ:S8[Q:t=^Q:u=`Q:v=bQ:w=dQ:x9pQ:}9yQ;R:PQ;e=gQ;j;QQ;v;kQ;y=hQ=p>PQ=}>XQ>O>YQ>Z>]R>[>^Q+O%]Q.n<sR7g<tnpOXst!Z#d%m&r&t&u&w,s,x2[2_Q!fPS#fZ#oQ&|!`W'h!o*i0]4zQ(P#SQ)Q#{Q)r$nS,l&k&nQ,q&oQ-O&{S-T'T/nQ-g'bQ.x)OQ/[)sQ0s+]Q0y+gQ2W,pQ2y-iQ3a.gQ4W/VQ5U0lQ6Q1rQ6c2SQ6d2TQ6h2VQ6j2XQ6o2aQ7Z3dQ7m4TQ8s6TQ9P6eQ9Q6fQ9S6iQ9f7[Q:a8tR:k9T#[cOPXZst!Z!`!o#d#o#{%m&k&n&o&r&t&u&w&{'T'b)O*i+]+g,p,s,x-i.g/n0]0l1r2S2T2V2X2[2_2a3d4z6T6e6f6i7[8t9TQ#YWQ#eYQ%quQ%svS%uw!gS(S#W(VQ(Y#ZQ(t#uQ(y#xQ)R$OQ)S$PQ)T$QQ)U$RQ)V$SQ)W$TQ)X$UQ)Y$VQ)Z$WQ)[$XQ)^$ZQ)`$_Q)b$aQ)g$eW)q$n)s/V4TQ+d%tQ+x&RS-Z'X2pQ-x'rS-}(T.PQ.S(]Q.U(dQ.s(xQ.v(zQ.z<UQ.|<XQ.}<YQ/O<]Q/b)}Q0p+XQ2k-UQ2n-XQ3O-qQ3V.VQ3k.tQ3p<^Q3q<_Q3r<`Q3s<aQ3t<bQ3u<cQ3v<dQ3w<eQ3x<fQ3y<gQ3z<hQ3{.{Q3|<kQ4P<nQ4Q<{Q4X<iQ5X0rQ5c1SQ6u=OQ6{3QQ7Q3WQ7a3lQ7b=PQ7k=RQ7l=ZQ8k5wQ9X6sQ9]6|Q9g=[Q9m=eQ9n=fQ:o9_Q;W:ZQ;`:mQ<W#SR=v>SR#[WR'Z!el!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}S'V!e-]U*j$|*Z*oS-Y'W'_S0U*k*qQ0^*rQ2u-cQ4v0[R4{0_R({#xQ!fQT-d'`-e]!qQ!r'`-e1o5{Q#p]R'i<VR)f$dY!uQ'`-e1o5{Q'k!rS'u!v!yS'w!z5}S-t'l'mQ-v'nR3T-uT#kZ%eS#jZ%eS%km,oU(g#h#i#lS.Y(h(iQ.^(jQ0t+^Q3Y.ZU3Z.[.]._S7S3[3]R9`7Td#^W#W#Z%h(T(^*Y+Z.T/mr#gZm#h#i#l%e(h(i(j+^.Z.[.]._3[3]7TS*]$x*bQ/t*^Q2U,oQ2l-VQ4`/pQ6q2dQ7s4aQ9W6rT=m'X+[V#aW%h*YU#`W%h*YS(U#W(^U(Z#Z+Z/mS-['X+[T.O(T.TV'^!e%i*ZQ$lfR)x$qT)m$l)nR4V/UT*_$x*bT*h${*YQ0w+fQ1g,VQ3_.fQ5t1iQ6P1qQ7X3cQ8r6SQ9c7WQ:^8qQ:p9bQ;Z:`Q;c:rQ;n;[R;q;dnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&l!VR,h&itmOXst!U!V!Z#d%m&i&r&t&u&w,s,x2[2_R,o&oT%lm,oR1k,XR,g&gQ&U|S+}&V&WR1^,OR+s&PT&p!W&sT&q!W&sT2^,x2_",nodeNames:"⚠ ArithOp ArithOp ?. JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration defer ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:380,context:e3,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,237,243,245,247,249,252,258,264,266,268,270,272,274,275,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[r3],skippedNodes:[0,5,6,278],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$<r#p#q$=h#q#r$>x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Wp(Z!b'|0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(X#S$i&j'}0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Wp(Z!b'}0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(V':f$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Wp(Z!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__WS$i&j(Wp(Z!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]WS$i&j(Z!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Z!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(WpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(WpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Wp(Z!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S%9[C}i$i&j(o%1l(Wp(Z!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr%9[EoP;=`<%lCr07[FRk$i&j(Wp(Z!b$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$i&j(Wp(Z!b$]#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv07[JPP;=`<%lEr(KWJ_`$i&j(Wp(Z!b#p(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWKl_$i&j$Q(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,#xLva(z+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWNW`$i&j#z(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At! c_(Y';W$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$i&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$d`$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(WpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$d`(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b/5|!'t_!l/.^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&U!)O_!k!Lf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z-!n!*[b$i&j(Wp(Z!b(U%&f#q(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW!+o`$i&j(Wp(Z!b#n(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;x!,|`$i&j(Wp(Z!br+4YOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,$U!.Z_!]+Jf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!/ec$i&j(Wp(Z!b!Q.2^OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!0ya$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!2Z_![!L^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!3eg$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!5Vg$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!6wc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!8_c$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!9uf$i&j(Wp(Z!b#o(ChOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcxz!;Zz{#-}{!P!;Z!P!Q#/d!Q!^!;Z!^!_#(i!_!`#7S!`!a#8i!a!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z?O!;fb$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z>^!<w`$i&j(Z!b!X7`OY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eq!Q!^!<n!^!_!Gr!_!}!<n!}#O!KS#O#P!Dy#P#o!<n#o#p!Gr#p;'S!<n;'S;=`!L]<%lO!<n<z!>Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!?Td$i&j!X7`O!^&c!_#W&c#W#X!>|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c<z!C][$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#O!CW#O#P!DR#P#Q!=y#Q#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DWX$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DvP;=`<%l!CW<z!EOX$i&jOY!=yYZ&cZ!^!=y!^!_!@c!_#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!EnP;=`<%l!=y>^!Ezl$i&j(Z!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Z!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Z!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Z!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Z!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!<n#Q#o!KS#o#p!JU#p;'S!KS;'S;=`!LV<%lO!KS>^!LYP;=`<%l!KS>^!L`P;=`<%l!<n=l!Ll`$i&j(Wp!X7`OY!LcYZ&cZr!Lcrs!=ys!P!Lc!P!Q!Mn!Q!^!Lc!^!_# o!_!}!Lc!}#O#%P#O#P!Dy#P#o!Lc#o#p# o#p;'S!Lc;'S;=`#&Y<%lO!Lc=l!Mwl$i&j(Wp!X7`OY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#W(r#W#X!Mn#X#Z(r#Z#[!Mn#[#](r#]#^!Mn#^#a(r#a#b!Mn#b#g(r#g#h!Mn#h#i(r#i#j!Mn#j#k!Mn#k#m(r#m#n!Mn#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r8Q# vZ(Wp!X7`OY# oZr# ors!@cs!P# o!P!Q#!i!Q!}# o!}#O#$R#O#P!Bq#P;'S# o;'S;=`#$y<%lO# o8Q#!pe(Wp!X7`OY)rZr)rs#O)r#P#W)r#W#X#!i#X#Z)r#Z#[#!i#[#])r#]#^#!i#^#a)r#a#b#!i#b#g)r#g#h#!i#h#i)r#i#j#!i#j#k#!i#k#m)r#m#n#!i#n;'S)r;'S;=`*Z<%lO)r8Q#$WX(WpOY#$RZr#$Rrs!Ars#O#$R#O#P!B[#P#Q# o#Q;'S#$R;'S;=`#$s<%lO#$R8Q#$vP;=`<%l#$R8Q#$|P;=`<%l# o=l#%W^$i&j(WpOY#%PYZ&cZr#%Prs!CWs!^#%P!^!_#$R!_#O#%P#O#P!DR#P#Q!Lc#Q#o#%P#o#p#$R#p;'S#%P;'S;=`#&S<%lO#%P=l#&VP;=`<%l#%P=l#&]P;=`<%l!Lc?O#&kn$i&j(Wp(Z!b!X7`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#W%Z#W#X#&`#X#Z%Z#Z#[#&`#[#]%Z#]#^#&`#^#a%Z#a#b#&`#b#g%Z#g#h#&`#h#i%Z#i#j#&`#j#k#&`#k#m%Z#m#n#&`#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z9d#(r](Wp(Z!b!X7`OY#(iZr#(irs!Grsw#(iwx# ox!P#(i!P!Q#)k!Q!}#(i!}#O#+`#O#P!Bq#P;'S#(i;'S;=`#,`<%lO#(i9d#)th(Wp(Z!b!X7`OY*gZr*grs'}sw*gwx)rx#O*g#P#W*g#W#X#)k#X#Z*g#Z#[#)k#[#]*g#]#^#)k#^#a*g#a#b#)k#b#g*g#g#h#)k#h#i*g#i#j#)k#j#k#)k#k#m*g#m#n#)k#n;'S*g;'S;=`+Z<%lO*g9d#+gZ(Wp(Z!bOY#+`Zr#+`rs!JUsw#+`wx#$Rx#O#+`#O#P!B[#P#Q#(i#Q;'S#+`;'S;=`#,Y<%lO#+`9d#,]P;=`<%l#+`9d#,cP;=`<%l#(i?O#,o`$i&j(Wp(Z!bOY#,fYZ&cZr#,frs!KSsw#,fwx#%Px!^#,f!^!_#+`!_#O#,f#O#P!DR#P#Q!;Z#Q#o#,f#o#p#+`#p;'S#,f;'S;=`#-q<%lO#,f?O#-tP;=`<%l#,f?O#-zP;=`<%l!;Z07[#.[b$i&j(Wp(Z!b(O0/l!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z07[#/o_$i&j(Wp(Z!bT0/lOY#/dYZ&cZr#/drs#0nsw#/dwx#4Ox!^#/d!^!_#5}!_#O#/d#O#P#1p#P#o#/d#o#p#5}#p;'S#/d;'S;=`#6|<%lO#/d06j#0w]$i&j(Z!bT0/lOY#0nYZ&cZw#0nwx#1px!^#0n!^!_#3R!_#O#0n#O#P#1p#P#o#0n#o#p#3R#p;'S#0n;'S;=`#3x<%lO#0n05W#1wX$i&jT0/lOY#1pYZ&cZ!^#1p!^!_#2d!_#o#1p#o#p#2d#p;'S#1p;'S;=`#2{<%lO#1p0/l#2iST0/lOY#2dZ;'S#2d;'S;=`#2u<%lO#2d0/l#2xP;=`<%l#2d05W#3OP;=`<%l#1p01O#3YW(Z!bT0/lOY#3RZw#3Rwx#2dx#O#3R#O#P#2d#P;'S#3R;'S;=`#3r<%lO#3R01O#3uP;=`<%l#3R06j#3{P;=`<%l#0n05x#4X]$i&j(WpT0/lOY#4OYZ&cZr#4Ors#1ps!^#4O!^!_#5Q!_#O#4O#O#P#1p#P#o#4O#o#p#5Q#p;'S#4O;'S;=`#5w<%lO#4O00^#5XW(WpT0/lOY#5QZr#5Qrs#2ds#O#5Q#O#P#2d#P;'S#5Q;'S;=`#5q<%lO#5Q00^#5tP;=`<%l#5Q05x#5zP;=`<%l#4O01p#6WY(Wp(Z!bT0/lOY#5}Zr#5}rs#3Rsw#5}wx#5Qx#O#5}#O#P#2d#P;'S#5};'S;=`#6v<%lO#5}01p#6yP;=`<%l#5}07[#7PP;=`<%l#/d)3h#7ab$i&j$Q(Ch(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;ZAt#8vb$Z#t$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z'Ad#:Zp$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#U%Z#U#V#?i#V#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#<jk$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-<U(Wp(Z!b$n7`OY*gZr*grs'}sw*gwx)rx!P*g!P!Q#MO!Q!^*g!^!_#Mt!_!`$ f!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#MXX$k&j(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El#M}Z#r(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#Np!`#O*g#P;'S*g;'S;=`+Z<%lO*g(El#NyX$Q(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El$ oX#s(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g*)x$!ga#`*!Y$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$#l!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(K[$#w_#k(Cl$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x$%Vag!*r#s(Ch$f#|$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$&[!`!a$'f!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$&g_#s(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$'qa#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$(v!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$)R`#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(Kd$*`a(r(Ct$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!a%Z!a!b$+e!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$+p`$i&j#{(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`$,}_!|$Ip$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f$.X_!S0,v$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/]Z$i&jO!^$0O!^!_$0f!_#i$0O#i#j$0k#j#l$0O#l#m$2^#m#o$0O#o#p$0f#p;'S$0O;'S;=`$4i<%lO$0O(n$0VT_#S$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0kO_#S(n$0p[$i&jO!Q&c!Q![$1f![!^&c!_!c&c!c!i$1f!i#T&c#T#Z$1f#Z#o&c#o#p$3|#p;'S&c;'S;=`&w<%lO&c(n$1kZ$i&jO!Q&c!Q![$2^![!^&c!_!c&c!c!i$2^!i#T&c#T#Z$2^#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2cZ$i&jO!Q&c!Q![$3U![!^&c!_!c&c!c!i$3U!i#T&c#T#Z$3U#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3ZZ$i&jO!Q&c!Q![$0O![!^&c!_!c&c!c!i$0O!i#T&c#T#Z$0O#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$4PR!Q![$4Y!c!i$4Y#T#Z$4Y#S$4]S!Q![$4Y!c!i$4Y#T#Z$4Y#q#r$0f(n$4lP;=`<%l$0O#1[$4z_!Y#)l$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$6U`#x(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;p$7c_$i&j(Wp(Z!b(a+4QOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$8qk$i&j(Wp(Z!b(T,2j$_#t(e$I[OY%ZYZ&cZr%Zrs&}st%Ztu$8buw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$8b![!^%Z!^!_*g!_!c%Z!c!}$8b!}#O%Z#O#P&c#P#R%Z#R#S$8b#S#T%Z#T#o$8b#o#p*g#p$g%Z$g;'S$8b;'S;=`$<l<%lO$8b+d$:qk$i&j(Wp(Z!b$_#tOY%ZYZ&cZr%Zrs&}st%Ztu$:fuw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$:f![!^%Z!^!_*g!_!c%Z!c!}$:f!}#O%Z#O#P&c#P#R%Z#R#S$:f#S#T%Z#T#o$:f#o#p*g#p$g%Z$g;'S$:f;'S;=`$<f<%lO$:f+d$<iP;=`<%l$:f07[$<oP;=`<%l$8b#Jf$<{X!_#Hb(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g,#x$=sa(y+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+e#q;'S%Z;'S;=`+a<%lO%Z)>v$?V_!^(CdvBr$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Wp(Z!b'|0/l$]#t(T,2j(e$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Wp(Z!b'}0/l$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[a3,n3,s3,l3,2,3,4,5,6,7,8,9,10,11,12,13,14,t3,new pc("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(c~~",141,340),new pc("j~RQYZXz{^~^O(Q~~aP!P!Qd~iO(R~~",25,323)],topRules:{Script:[0,7],SingleExpression:[1,276],SingleClassItem:[2,277]},dialects:{jsx:0,ts:15175},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:327,get:t=>i3[t]||-1},{term:343,get:t=>o3[t]||-1},{term:95,get:t=>c3[t]||-1}],tokenPrec:15201}),Ov=[Ie("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),Ie("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),Ie("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),Ie("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),Ie("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),Ie(`try {
520
530
  \${}
521
531
  } catch (\${error}) {
522
532
  \${}
@@ -528,15 +538,15 @@ Error generating stack: `+c.message+`
528
538
  constructor(\${params}) {
529
539
  \${}
530
540
  }
531
- }`,{label:"class",detail:"definition",type:"keyword"}),Ie('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Ie('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],i3=Ov.concat([Ie("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Ie("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Ie("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),O1=new kf,fv=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Ar(t){return(n,s)=>{let l=n.node.getChild("VariableDefinition");return l&&s(l,t),!0}}const o3=["FunctionDeclaration"],c3={FunctionDeclaration:Ar("function"),ClassDeclaration:Ar("class"),ClassExpression:()=>!0,EnumDeclaration:Ar("constant"),TypeAliasDeclaration:Ar("type"),NamespaceDeclaration:Ar("namespace"),VariableDefinition(t,n){t.matchContext(o3)||n(t,"variable")},TypeDefinition(t,n){n(t,"type")},__proto__:null};function hv(t,n){let s=O1.get(n);if(s)return s;let l=[],o=!0;function u(d,O){let m=t.sliceString(d.from,d.to);l.push({label:m,type:O})}return n.cursor(Qc.IncludeAnonymous).iterate(d=>{if(o)o=!1;else if(d.name){let O=c3[d.name];if(O&&O(d,u)||fv.has(d.name))return!1}else if(d.to-d.from>8192){for(let O of hv(t,d.node))l.push(O);return!1}}),O1.set(n,l),l}const f1=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,mv=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function u3(t){let n=ga(t.state).resolveInner(t.pos,-1);if(mv.indexOf(n.name)>-1)return null;let s=n.name=="VariableName"||n.to-n.from<20&&f1.test(t.state.sliceDoc(n.from,n.to));if(!s&&!t.explicit)return null;let l=[];for(let o=n;o;o=o.parent)fv.has(o.name)&&(l=l.concat(hv(t.state.doc,o)));return{options:l,from:s?n.from:t.pos,validFor:f1}}const Ta=si.define({name:"javascript",parser:r3.configure({props:[_l.add({IfStatement:Sl({except:/^\s*({|else\b)/}),TryStatement:Sl({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:Qj,SwitchBody:t=>{let n=t.textAfter,s=/^\s*\}/.test(n),l=/^\s*(case|default)\b/.test(n);return t.baseIndent+(s?0:l?1:2)*t.unit},Block:Lo({closing:"}"}),ArrowFunction:t=>t.baseIndent+t.unit,"TemplateString BlockComment":()=>null,"Statement Property":Sl({except:/^\s*{/}),JSXElement(t){let n=/^\s*<\//.test(t.textAfter);return t.lineIndent(t.node.from)+(n?0:t.unit)},JSXEscape(t){let n=/\s*\}/.test(t.textAfter);return t.lineIndent(t.node.from)+(n?0:t.unit)},"JSXOpenTag JSXSelfClosingTag"(t){return t.column(t.node.from)+t.unit}}),Ps.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":jc,BlockComment(t){return{from:t.from+2,to:t.to-2}},JSXElement(t){let n=t.firstChild;if(!n||n.name=="JSXSelfClosingTag")return null;let s=t.lastChild;return{from:n.to,to:s.type.isError?t.to:s.from}},"JSXSelfClosingTag JSXOpenTag"(t){var n;let s=(n=t.firstChild)===null||n===void 0?void 0:n.nextSibling,l=t.lastChild;return!s||s.type.isError?null:{from:s.to,to:l.type.isError?t.to:l.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),pv={test:t=>/^JSX/.test(t.name),facet:w0({commentTokens:{block:{open:"{/*",close:"*/}"}}})},xv=Ta.configure({dialect:"ts"},"typescript"),gv=Ta.configure({dialect:"jsx",props:[j0.add(t=>t.isTop?[pv]:void 0)]}),bv=Ta.configure({dialect:"jsx ts",props:[j0.add(t=>t.isTop?[pv]:void 0)]},"typescript");let vv=t=>({label:t,type:"keyword"});const yv="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(vv),d3=yv.concat(["declare","implements","private","protected","public"].map(vv));function Of(t={}){let n=t.jsx?t.typescript?bv:gv:t.typescript?xv:Ta,s=t.typescript?i3.concat(d3):Ov.concat(yv);return new Qs(n,[Ta.data.of({autocomplete:S0(mv,Q0(s))}),Ta.data.of({autocomplete:u3}),t.jsx?h3:[]])}function O3(t){for(;;){if(t.name=="JSXOpenTag"||t.name=="JSXSelfClosingTag"||t.name=="JSXFragmentTag")return t;if(t.name=="JSXEscape"||!t.parent)return null;t=t.parent}}function h1(t,n,s=t.length){for(let l=n==null?void 0:n.firstChild;l;l=l.nextSibling)if(l.name=="JSXIdentifier"||l.name=="JSXBuiltin"||l.name=="JSXNamespacedName"||l.name=="JSXMemberExpression")return t.sliceString(l.from,Math.min(l.to,s));return""}const f3=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),h3=$l.inputHandler.of((t,n,s,l,o)=>{if((f3?t.composing:t.compositionStarted)||t.state.readOnly||n!=s||l!=">"&&l!="/"||!Ta.isActiveAt(t.state,n,-1))return!1;let u=o(),{state:d}=u,O=d.changeByRange(m=>{var p;let{head:x}=m,g=ga(d).resolveInner(x-1,-1),b;if(g.name=="JSXStartTag"&&(g=g.parent),!(d.doc.sliceString(x-1,x)!=l||g.name=="JSXAttributeValue"&&g.to>x)){if(l==">"&&g.name=="JSXFragmentTag")return{range:m,changes:{from:x,insert:"</>"}};if(l=="/"&&g.name=="JSXStartCloseTag"){let S=g.parent,Q=S.parent;if(Q&&S.from==x-2&&((b=h1(d.doc,Q.firstChild,x))||((p=Q.firstChild)===null||p===void 0?void 0:p.name)=="JSXFragmentTag")){let k=`${b}>`;return{range:Wn.cursor(x+k.length,-1),changes:{from:x,insert:k}}}}else if(l==">"){let S=O3(g);if(S&&S.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(d.doc.sliceString(x,x+2))&&(b=h1(d.doc,S,x)))return{range:m,changes:{from:x,insert:`</${b}>`}}}}return{range:m}});return O.changes.empty?!1:(t.dispatch([u,d.update(O,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),m3=135,m1=1,p3=136,x3=137,Sv=2,g3=138,b3=3,v3=4,Qv=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],y3=58,S3=40,jv=95,Q3=91,Bo=45,j3=46,w3=35,k3=37,$3=38,T3=92,P3=10,N3=42;function Kr(t){return t>=65&&t<=90||t>=97&&t<=122||t>=161}function sh(t){return t>=48&&t<=57}function p1(t){return sh(t)||t>=97&&t<=102||t>=65&&t<=70}const wv=(t,n,s)=>(l,o)=>{for(let u=!1,d=0,O=0;;O++){let{next:m}=l;if(Kr(m)||m==Bo||m==jv||u&&sh(m))!u&&(m!=Bo||O>0)&&(u=!0),d===O&&m==Bo&&d++,l.advance();else if(m==T3&&l.peek(1)!=P3){if(l.advance(),p1(l.next)){do l.advance();while(p1(l.next));l.next==32&&l.advance()}else l.next>-1&&l.advance();u=!0}else{u&&l.acceptToken(d==2&&o.canShift(Sv)?n:m==S3?s:t);break}}},z3=new gt(wv(p3,Sv,x3),{contextual:!0}),R3=new gt(wv(g3,b3,v3),{contextual:!0}),C3=new gt(t=>{if(Qv.includes(t.peek(-1))){let{next:n}=t;(Kr(n)||n==jv||n==w3||n==j3||n==N3||n==Q3||n==y3&&Kr(t.peek(1))||n==Bo||n==$3)&&t.acceptToken(m3)}}),X3=new gt(t=>{if(!Qv.includes(t.peek(-1))){let{next:n}=t;if(n==k3&&(t.advance(),t.acceptToken(m1)),Kr(n)){do t.advance();while(Kr(t.next)||sh(t.next));t.acceptToken(m1)}}}),_3=Ts({"AtKeyword import charset namespace keyframes media supports font-feature-values":Z.definitionKeyword,"from to selector scope MatchFlag":Z.keyword,NamespaceName:Z.namespace,KeyframeName:Z.labelName,KeyframeRangeName:Z.operatorKeyword,TagName:Z.tagName,ClassName:Z.className,PseudoClassName:Z.constant(Z.className),IdName:Z.labelName,"FeatureName PropertyName":Z.propertyName,AttributeName:Z.attributeName,NumberLiteral:Z.number,KeywordQuery:Z.keyword,UnaryQueryOp:Z.operatorKeyword,"CallTag ValueName FontName":Z.atom,VariableName:Z.variableName,Callee:Z.operatorKeyword,Unit:Z.unit,"UniversalSelector NestingSelector":Z.definitionOperator,"MatchOp CompareOp":Z.compareOperator,"ChildOp SiblingOp, LogicOp":Z.logicOperator,BinOp:Z.arithmeticOperator,Important:Z.modifier,Comment:Z.blockComment,ColorLiteral:Z.color,"ParenthesizedContent StringLiteral":Z.string,":":Z.punctuation,"PseudoOp #":Z.derefOperator,"; , |":Z.separator,"( )":Z.paren,"[ ]":Z.squareBracket,"{ }":Z.brace}),Z3={__proto__:null,lang:44,"nth-child":44,"nth-last-child":44,"nth-of-type":44,"nth-last-of-type":44,dir:44,"host-context":44,if:90,url:132,"url-prefix":132,domain:132,regexp:132},A3={__proto__:null,or:104,and:104,not:112,only:112,layer:186},E3={__proto__:null,selector:118,layer:182},q3={__proto__:null,"@import":178,"@media":190,"@charset":194,"@namespace":198,"@keyframes":204,"@supports":216,"@scope":220,"@font-feature-values":226},M3={__proto__:null,to:223},Y3=Kn.deserialize({version:14,states:"IpQYQdOOO#}QdOOP$UO`OOO%OQaO'#CfOOQP'#Ce'#CeO%VQdO'#CgO%[Q`O'#CgO%aQaO'#FdO&XQdO'#CkO&xQaO'#CcO'SQdO'#CnO'_QdO'#DtO'dQdO'#DvO'oQdO'#D}O'oQdO'#EQOOQP'#Fd'#FdO)OQhO'#EsOOQS'#Fc'#FcOOQS'#Ev'#EvQYQdOOO)VQdO'#EWO*cQhO'#E^O)VQdO'#E`O*jQdO'#EbO*uQdO'#EeO)zQhO'#EkO*}QdO'#EmO+YQdO'#EpO+_QaO'#CfO+fQ`O'#ETO+kQ`O'#FnO+vQdO'#FnQOQ`OOP,QO&jO'#CaPOOO)CAR)CAROOQP'#Ci'#CiOOQP,59R,59RO%VQdO,59ROOQP'#Cm'#CmOOQP,59V,59VO&XQdO,59VO,]QdO,59YO'_QdO,5:`O'dQdO,5:bO'oQdO,5:iO'oQdO,5:kO'oQdO,5:lO'oQdO'#E}O,hQ`O,58}O,pQdO'#ESOOQS,58},58}OOQP'#Cq'#CqOOQO'#Dr'#DrOOQP,59Y,59YO,wQ`O,59YO,|Q`O,59YOOQP'#Du'#DuOOQP,5:`,5:`O-RQpO'#DwO-^QdO'#DxO-cQ`O'#DxO-hQpO,5:bO.RQaO,5:iO.iQaO,5:lOOQW'#D^'#D^O/eQhO'#DgO/xQhO,5;_O)zQhO'#DeO0VQ`O'#DkO0[QhO'#DnOOQW'#Fj'#FjOOQS,5;_,5;_O0aQ`O'#DhOOQS-E8t-E8tOOQ['#Cv'#CvO0fQdO'#CwO0|QdO'#C}O1dQdO'#DQO1zQ!pO'#DSO4TQ!jO,5:rOOQO'#DX'#DXO,|Q`O'#DWO4eQ!nO'#FgO6hQ`O'#DYO6mQ`O'#DoOOQ['#Fg'#FgO6rQhO'#FqO7QQ`O,5:xO7VQ!bO,5:zOOQS'#Ed'#EdO7_Q`O,5:|O7dQdO,5:|OOQO'#Eg'#EgO7lQ`O,5;PO7qQhO,5;VO'oQdO'#DjOOQS,5;X,5;XO0aQ`O,5;XO7yQdO,5;XOOQS'#FU'#FUO8RQdO'#ErO7QQ`O,5;[O8ZQdO,5:oO8kQdO'#FPO8xQ`O,5<YO8xQ`O,5<YPOOO'#Eu'#EuP9TO&jO,58{POOO,58{,58{OOQP1G.m1G.mOOQP1G.q1G.qOOQP1G.t1G.tO,wQ`O1G.tO,|Q`O1G.tOOQP1G/z1G/zO9`QpO1G/|O9hQaO1G0TO:OQaO1G0VO:fQaO1G0WO:|QaO,5;iOOQO-E8{-E8{OOQS1G.i1G.iO;WQ`O,5:nO;]QdO'#DsO;dQdO'#CuOOQO'#Dz'#DzOOQO,5:d,5:dO-^QdO,5:dOOQP1G/|1G/|O)VQdO1G/|O;kQ!jO'#D^O;yQ!bO,59yO<RQhO,5:ROOQO'#Fk'#FkO;|Q!bO,59}O<ZQhO'#FVO)zQhO,59{O)zQhO'#FVO=OQhO1G0yOOQS1G0y1G0yO=YQhO,5:PO>QQhO'#DlOOQW,5:V,5:VOOQW,5:Y,5:YOOQW,5:S,5:SO>[Q!fO'#FhOOQS'#Fh'#FhOOQS'#Ex'#ExO?lQdO,59cOOQ[,59c,59cO@SQdO,59iOOQ[,59i,59iO@jQdO,59lOOQ[,59l,59lOOQ[,59n,59nO)VQdO,59pOAQQhO'#EYOOQW'#EY'#EYOAlQ`O1G0^O4^QhO1G0^OOQ[,59r,59rO)zQhO'#D[OOQ[,59t,59tOAqQ#tO,5:ZOA|QhO'#FROBZQ`O,5<]OOQS1G0d1G0dOOQS1G0f1G0fOOQS1G0h1G0hOBfQ`O1G0hOBkQdO'#EhOOQS1G0k1G0kOOQS1G0q1G0qOBvQaO,5:UO7QQ`O1G0sOOQS1G0s1G0sO0aQ`O1G0sOOQS-E9S-E9SOOQS1G0v1G0vOB}Q!fO1G0ZOCeQ`O'#EVOOQO1G0Z1G0ZOOQO,5;k,5;kOCjQdO,5;kOOQO-E8}-E8}OCwQ`O1G1tPOOO-E8s-E8sPOOO1G.g1G.gOOQP7+$`7+$`OOQP7+%h7+%hO)VQdO7+%hOOQS1G0Y1G0YODSQaO'#FmOD^Q`O,5:_ODcQ!fO'#EwOEaQdO'#FfOEkQ`O,59aOOQO1G0O1G0OOEpQ!bO7+%hO)VQdO1G/eOE{QhO1G/iOOQW1G/m1G/mOOQW1G/g1G/gOF^QhO,5;qOOQW-E9T-E9TOOQS7+&e7+&eOGRQhO'#D^OGaQhO'#FlOGlQ`O'#FlOGqQ`O,5:WOOQS-E8v-E8vOOQ[1G.}1G.}OOQ[1G/T1G/TOOQ[1G/W1G/WOOQ[1G/[1G/[OGvQdO,5:tOOQS7+%x7+%xOG{Q`O7+%xOHQQhO'#D]OHYQ`O,59vO)zQhO,59vOOQ[1G/u1G/uOHbQ`O1G/uOHgQhO,5;mOOQO-E9P-E9POOQS7+&S7+&SOHuQbO'#DSOOQO'#Ej'#EjOITQ`O'#EiOOQO'#Ei'#EiOI`Q`O'#FSOIhQdO,5;SOOQS,5;S,5;SOOQ[1G/p1G/pOOQS7+&_7+&_O7QQ`O7+&_OIsQ!fO'#FOO)VQdO'#FOOJzQdO7+%uOOQO7+%u7+%uOOQO,5:q,5:qOOQO1G1V1G1VOK_Q!bO<<ISOKjQdO'#E|OKtQ`O,5<XOOQP1G/y1G/yOOQS-E8u-E8uOK|QdO'#E{OLWQ`O,5<QOOQ]1G.{1G.{OOQP<<IS<<ISOL`Q`O<<ISOLeQdO7+%POOQO'#D`'#D`OLlQ!bO7+%TOLtQhO'#EzOMRQ`O,5<WO)VQdO,5<WOOQW1G/r1G/rOOQO'#E['#E[OMZQ`O1G0`OOQS<<Id<<IdO)VQdO,59wOMzQhO1G/bOOQ[1G/b1G/bONRQ`O1G/bOOQW-E8w-E8wOOQ[7+%a7+%aOOQO,5;T,5;TOBnQdO'#FTOI`Q`O,5;nOOQS,5;n,5;nOOQS-E9Q-E9QOOQS1G0n1G0nOOQS<<Iy<<IyONZQ!fO,5;jOOQS-E8|-E8|OOQO<<Ia<<IaOOQPAN>nAN>nO! bQ`OAN>nO! gQaO,5;hOOQO-E8z-E8zO! qQdO,5;gOOQO-E8y-E8yOOQW<<Hk<<HkOOQW<<Ho<<HoO! {QhO<<HoO!!^QhO,5;fO!!iQ`O,5;fOOQO-E8x-E8xO!!nQdO1G1rOGvQdO'#FQO!!xQ`O7+%zOOQW7+%z7+%zO!#QQ!bO1G/cOOQ[7+$|7+$|O!#]QhO7+$|P!#dQ`O'#EyOOQO,5;o,5;oOOQO-E9R-E9ROOQS1G1Y1G1YOOQPG24YG24YO!#iQ`OAN>ZO)VQdO1G1QO!#nQ`O7+'^OOQO,5;l,5;lOOQO-E9O-E9OOOQW<<If<<IfOOQ[<<Hh<<HhPOQW,5;e,5;eOOQWG23uG23uO!#vQdO7+&l",stateData:"!$Z~O$QOS$RQQ~OWVO^_O`WOcYOdYOl`OmZOp[O!r]O!u^O!{dO#ReO#TfO#VgO#YhO#`iO#bjO#ekO#|RO$XTO~OQmOWVO^_O`WOcYOdYOl`OmZOp[O!r]O!u^O!{dO#ReO#TfO#VgO#YhO#`iO#bjO#ekO#|lO$XTO~O#z$bP~P!jO$RqO~O`YXcYXdYXmYXpYXsYX!aYX!rYX!uYX#{YX$X[X~OgYX~P$ZO#|sO~O$XuO~O$XuO`$WXc$WXd$WXm$WXp$WXs$WX!a$WX!r$WX!u$WX#{$WXg$WX~O#|vO~O`xOcyOdyOmzOp{O!r|O!u!OO#{}O~Os!RO!a!PO~P&^Of!XO#|!TO#}!UO~O#|!YO~OW!^O#|![O$X!]O~OWVO^_O`WOcYOdYOmZOp[O!r]O!u^O#|RO$XTO~OS!fOc!gOd!gOh!cOs!RO!Y!eO!]!jO$O!bO~On!iO~P(dOQ!tOh!mOp!nOs!oOu!wOw!wO}!uO!d!vO#|!lO#}!rO$]!pO~OS!fOc!gOd!gOh!cO!Y!eO!]!jO$O!bO~Os$eP~P)zOw!|O!d!vO#|!{O~Ow#OO#|#OO~Oh#ROs!RO#c#TO~O#|#VO~Oc!xX~P$ZOc#YO~On#ZO#z$bXr$bX~O#z$bXr$bX~P!jO$S#^O$T#^O$U#`O~Of#eO#|!TO#}!UO~Os!RO!a!PO~Or$bP~P!jOh#oO~Oh#pO~Oo!kX!o!kX$X!mX~O#|#qO~O$X#sO~Oo#tO!o#uO~O`xOcyOdyOmzOp{O~Os!qa!a!qa!r!qa!u!qa#{!qag!qa~P-pOs!ta!a!ta!r!ta!u!ta#{!tag!ta~P-pOS!fOc!gOd!gOh!cO!Y!eO!]!jO~OR#yOu#yOw#yO$O#vO$]!pO~P/POn$PO!U#|O!a#}O~P(dOh$RO~O$O$TO~Oh#RO~O`$WOc$WOg$ZOl$WOm$WOn$WO~P)VO`$WOc$WOl$WOm$WOn$WOo$]O~P)VO`$WOc$WOl$WOm$WOn$WOr$_O~P)VOP$`OSvXcvXdvXhvXnvXyvX!YvX!]vX!}vX#PvX$OvX!WvXQvX`vXgvXlvXmvXpvXsvXuvXwvX}vX!dvX#|vX#}vX$]vXovXrvX!avX#zvX$dvX!pvX~Oy$aO!}$bO#P$cOn$eP~P)zOh#pOS$ZXc$ZXd$ZXn$ZXy$ZX!Y$ZX!]$ZX!}$ZX#P$ZX$O$ZXQ$ZX`$ZXg$ZXl$ZXm$ZXp$ZXs$ZXu$ZXw$ZX}$ZX!d$ZX#|$ZX#}$ZX$]$ZXo$ZXr$ZX!a$ZX#z$ZX$d$ZX!p$ZX~Oh$gO~Oh$iO~O!U#|O!a$jOs$eXn$eX~Os!RO~On$mOy$aO~On$nO~Ow$oO!d!vO~Os$pO~Os!RO!U#|O~Os!RO#c$vO~O#|#VOs#fX~O$d$zOn!wa#z!war!wa~P)VOn#sX#z#sXr#sX~P!jOn#ZO#z$bar$ba~O$S#^O$T#^O$U%RO~Oo%TO!o%UO~Os!qi!a!qi!r!qi!u!qi#{!qig!qi~P-pOs!si!a!si!r!si!u!si#{!sig!si~P-pOs!ti!a!ti!r!ti!u!ti#{!tig!ti~P-pOs#qa!a#qa~P&^Or%VO~Og$aP~P'oOg$YP~P)VOc!SXg!QX!U!QX!W!SX~Oc%_O!W%`O~Og%aO!U#|O~O!U#|OS#yXc#yXd#yXh#yXn#yXs#yX!Y#yX!]#yX!a#yX$O#yX~On%eO!a#}O~P(dO!U#|OS!Xac!Xad!Xah!Xan!Xas!Xa!Y!Xa!]!Xa!a!Xa$O!Xag!Xa~O$O%fOg$`P~P/POy$aOQ$[X`$[Xc$[Xg$[Xh$[Xl$[Xm$[Xn$[Xp$[Xs$[Xu$[Xw$[X}$[X!d$[X#|$[X#}$[X$]$[Xo$[Xr$[X~O`$WOc$WOg%kOl$WOm$WOn$WO~P)VO`$WOc$WOl$WOm$WOn$WOo%lO~P)VO`$WOc$WOl$WOm$WOn$WOr%mO~P)VOh%oOS!|Xc!|Xd!|Xn!|X!Y!|X!]!|X$O!|X~On%pO~Og%uOw%vO!e%vO~Os#uX!a#uXn#uX~P)zO!a$jOs$ean$ea~On%yO~Or&QO#|%{O$]%zO~Og&RO~P&^Oy$aO!a&VO$d$zOn!wi#z!wir!wi~P)VO$c&YO~On#sa#z#sar#sa~P!jOn#ZO#z$bir$bi~O!a&]Og$aX~P&^Og&_O~Oy$aOQ#kXg#kXh#kXp#kXs#kXu#kXw#kX}#kX!a#kX!d#kX#|#kX#}#kX$]#kX~O!a&aOg$YX~P)VOg&cO~Oo&dOy$aO!p&eO~OR#yOu#yOw#yO$O&gO$]!pO~O!U#|OS#yac#yad#yah#yan#yas#ya!Y#ya!]#ya!a#ya$O#ya~Oc!SXg!QX!U!QX!a!QX~O!U#|O!a&iOg$`X~Oc&kO~Og&lO~O#|&mO~On&oO~Oc&pO!U#|O~Og&rOn&qO~Og&uO~O!U#|Os#ua!a#uan#ua~OP$`OsvX!avXgvX~O$]%zOs#]X!a#]X~Os!RO!a&wO~Or&{O#|%{O$]%zO~Oy$aOQ#rXh#rXn#rXp#rXs#rXu#rXw#rX}#rX!a#rX!d#rX#z#rX#|#rX#}#rX$]#rX$d#rXr#rX~O!a&VO$d$zOn!wq#z!wqr!wq~P)VOo'QOy$aO!p'RO~Og#pX!a#pX~P'oO!a&]Og$aa~Og#oX!a#oX~P)VO!a&aOg$Ya~Oo'QO~Og'WO~P)VOg'XO!W'YO~O$O%fOg#nX!a#nX~P/PO!a&iOg$`a~O`'_Og'aO~OS#mac#mad#mah#ma!Y#ma!]#ma$O#ma~Og'cO~PMcOg'cOn'dO~Oy$aOQ#rah#ran#rap#ras#rau#raw#ra}#ra!a#ra!d#ra#z#ra#|#ra#}#ra$]#ra$d#rar#ra~Oo'iO~Og#pa!a#pa~P&^Og#oa!a#oa~P)VOR#yOu#yOw#yO$O&gO$]%zO~O!U#|Og#na!a#na~Oc'kO~O!a&iOg$`i~P)VO`'_Og'oO~Oy$aOg!Pin!Pi~Og'pO~PMcOn'qO~Og'rO~O!a&iOg$`q~Og#nq!a#nq~P)VO$Q!e$R$]`$]y!u~",goto:"4h$fPPPPP$gP$jP$s%V$s%i%{P$sP&R$sPP&XPPP&_&i&iPPPPP&iPP&iP'VP&iP&i(Q&iP(n(q(w(w)Z(wP(wP(wP(w(wP)j(w)vP(w)yPP*m*s$s*y$s+P+P+V+ZPP$sP$s$sP+a,],j,q$jP,zP,}P$jP$jP$jP-T$jP-W-Z-^-e$jP$jPP$jP-j$jP-m-s.S.j.x/O/Y/`/f/l/r/|0S0Y0`0f0lPPPPPPPPPPP0r0{P1q1t2vP3O3x4R4U4XPP4_RrQ_aOPco!R#Z$}q_OP]^co|}!O!P!R#R#Z#o$}&]qSOP]^co|}!O!P!R#R#Z#o$}&]qUOP]^co|}!O!P!R#R#Z#o$}&]QtTR#auQwWR#bxQ!VYR#cyQ#c!XS$f!s!tR%S#e!V!wdf!m!n!o#Y#p#u$Y$[$^$a$y%U%Z%_&V&W&a&f&k&p'U'^'k's!U!wdf!m!n!o#Y#p#u$Y$[$^$a$y%U%Z%_&V&W&a&f&k&p'U'^'k'sU#y!c%`'YU%}$p&P&wR&v%|!V!sdf!m!n!o#Y#p#u$Y$[$^$a$y%U%Z%_&V&W&a&f&k&p'U'^'k'sR$h!uQ%s$gR&s%tq!h`ei!c!d!e!q#|#}$O$R$e$g$j%t&iQ#w!cQ%h$RQ&h%`Q'[&iR'j'YQ#UjQ$U!jQ$t#TR&T$vR$S!f!U!wdf!m!n!o#Y#p#u$Y$[$^$a$y%U%Z%_&V&W&a&f&k&p'U'^'k'sQ!|gR$o!}Q!WYR#dyQ#c!WR%S#dQ!ZZR#fzQ!_[R#g{T!^[{Q#r!]R%]#sQ!SXQ!i`Q#SjQ#m!QQ$P!dQ$l!yQ$r#QQ$u#UQ$x#XQ%e$OQ&S$tQ&y&OQ&|&TR'h&xSnP!RQ#]oQ$|#ZR&Z$}ZmPo!R#Z$}Q${#YQ&X$yR'P&WR$e!qQ&n%oR'm'_R!}gR#PhR$q#PS&O$p&PR'f&wV%|$p&P&wR#XkQ#_qR%Q#_QcOSoP!RU!kco$}R$}#ZQ%Z#pY&`%Z&f'U'^'sQ&f%_Q'U&aQ'^&kR's'kQ$Y!mQ$[!nQ$^!oV%j$Y$[$^Q%t$gR&t%tQ&j%gS']&j'lR'l'^Q&b%ZR'V&bQ&^%WR'T&^Q!QXR#l!QQ&W$yR'O&WQ#[nS%O#[%PR%P#]Q'`&nR'n'`Q$k!xR%x$kQ&P$pR&z&PQ&x&OR'g&xQ#WkR$w#WQ$O!dR%d$O_bOPco!R#Z$}^XOPco!R#Z$}Q!`]Q!a^Q#h|Q#i}Q#j!OQ#k!PQ$s#RQ%W#oR'S&]R%[#pQ!qdQ!zf[$V!m!n!o$Y$[$^Q$y#Yd%Y#p%Z%_&a&f&k'U'^'k'sQ%^#uQ%n$aS&U$y&WQ&[%UQ&}&VR'b&p]$X!m!n!o$Y$[$^Q!d`U!xe!q$eQ#QiQ#x!cS#{!d$OQ$Q!eQ%b#|Q%c#}Q%g$RS%r$g%tQ%w$jR'Z&iQ#z!cQ&h%`R'j'YR%i$RR%X#oQpPR#n!RQ!yeQ$d!qR%q$e",nodeNames:"⚠ Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NamespacedTagSelector NamespaceName TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , PseudoQuery CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName NamespacedAttribute NamespaceName AttributeName MatchOp MatchFlag ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to FontFeatureStatement font-feature-values FontName AtRule Styles",maxTerm:159,nodeProps:[["isolate",-2,5,39,""],["openedBy",23,"(",31,"[",34,"{"],["closedBy",24,")",32,"]",35,"}"]],propSources:[_3],skippedNodes:[0,5,117],repeatNodeCount:17,tokenData:"K`~R!bOX%ZX^&R^p%Zpq&Rqr)ers)vst+jtu2Xuv%Zvw3Rwx3dxy5Ryz5dz{5i{|6S|}:u}!O;W!O!P;u!P!Q<^!Q![=V![!]>Q!]!^>|!^!_?_!_!`@Z!`!a@n!a!b%Z!b!cAo!c!k%Z!k!lC|!l!u%Z!u!vC|!v!}%Z!}#OD_#O#P%Z#P#QDp#Q#R2X#R#]%Z#]#^ER#^#g%Z#g#hC|#h#o%Z#o#pIf#p#qIw#q#rJ`#r#sJq#s#y%Z#y#z&R#z$f%Z$f$g&R$g#BY%Z#BY#BZ&R#BZ$IS%Z$IS$I_&R$I_$I|%Z$I|$JO&R$JO$JT%Z$JT$JU&R$JU$KV%Z$KV$KW&R$KW&FU%Z&FU&FV&R&FV;'S%Z;'S;=`KY<%lO%Z`%^SOy%jz;'S%j;'S;=`%{<%lO%j`%oS!e`Oy%jz;'S%j;'S;=`%{<%lO%j`&OP;=`<%l%j~&Wh$Q~OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%j~'yh$Q~!e`OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%jj)jS$dYOy%jz;'S%j;'S;=`%{<%lO%j~)yWOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d<%lO)v~*hOw~~*kRO;'S)v;'S;=`*t;=`O)v~*wXOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d;=`<%l)v<%lO)v~+gP;=`<%l)vj+oYmYOy%jz!Q%j!Q![,_![!c%j!c!i,_!i#T%j#T#Z,_#Z;'S%j;'S;=`%{<%lO%jj,dY!e`Oy%jz!Q%j!Q![-S![!c%j!c!i-S!i#T%j#T#Z-S#Z;'S%j;'S;=`%{<%lO%jj-XY!e`Oy%jz!Q%j!Q![-w![!c%j!c!i-w!i#T%j#T#Z-w#Z;'S%j;'S;=`%{<%lO%jj.OYuY!e`Oy%jz!Q%j!Q![.n![!c%j!c!i.n!i#T%j#T#Z.n#Z;'S%j;'S;=`%{<%lO%jj.uYuY!e`Oy%jz!Q%j!Q![/e![!c%j!c!i/e!i#T%j#T#Z/e#Z;'S%j;'S;=`%{<%lO%jj/jY!e`Oy%jz!Q%j!Q![0Y![!c%j!c!i0Y!i#T%j#T#Z0Y#Z;'S%j;'S;=`%{<%lO%jj0aYuY!e`Oy%jz!Q%j!Q![1P![!c%j!c!i1P!i#T%j#T#Z1P#Z;'S%j;'S;=`%{<%lO%jj1UY!e`Oy%jz!Q%j!Q![1t![!c%j!c!i1t!i#T%j#T#Z1t#Z;'S%j;'S;=`%{<%lO%jj1{SuY!e`Oy%jz;'S%j;'S;=`%{<%lO%jd2[UOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jd2uS!oS!e`Oy%jz;'S%j;'S;=`%{<%lO%jb3WS^QOy%jz;'S%j;'S;=`%{<%lO%j~3gWOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{<%lO3d~4SRO;'S3d;'S;=`4];=`O3d~4`XOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{;=`<%l3d<%lO3d~5OP;=`<%l3dj5WShYOy%jz;'S%j;'S;=`%{<%lO%j~5iOg~n5pUWQyWOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jj6ZWyW!uQOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj6xU!e`Oy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%jj7cY!e`$]YOy%jz!Q%j!Q![7[![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj8WY!e`Oy%jz{%j{|8v|}%j}!O8v!O!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj8{U!e`Oy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj9fU!e`$]YOy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj:P[!e`$]YOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj:zS!aYOy%jz;'S%j;'S;=`%{<%lO%jj;]WyWOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj;zU`YOy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%j~<cTyWOy%jz{<r{;'S%j;'S;=`%{<%lO%j~<yS!e`$R~Oy%jz;'S%j;'S;=`%{<%lO%jj=[[$]YOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj>VUcYOy%jz![%j![!]>i!];'S%j;'S;=`%{<%lO%jj>pSdY!e`Oy%jz;'S%j;'S;=`%{<%lO%jj?RSnYOy%jz;'S%j;'S;=`%{<%lO%jh?dU!WWOy%jz!_%j!_!`?v!`;'S%j;'S;=`%{<%lO%jh?}S!WW!e`Oy%jz;'S%j;'S;=`%{<%lO%jl@bS!WW!oSOy%jz;'S%j;'S;=`%{<%lO%jj@uV!rQ!WWOy%jz!_%j!_!`?v!`!aA[!a;'S%j;'S;=`%{<%lO%jbAcS!rQ!e`Oy%jz;'S%j;'S;=`%{<%lO%jjArYOy%jz}%j}!OBb!O!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjBgW!e`Oy%jz!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjCW[lY!e`Oy%jz}%j}!OCP!O!Q%j!Q![CP![!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jhDRS!pWOy%jz;'S%j;'S;=`%{<%lO%jjDdSpYOy%jz;'S%j;'S;=`%{<%lO%jnDuSo^Oy%jz;'S%j;'S;=`%{<%lO%jjEWU!pWOy%jz#a%j#a#bEj#b;'S%j;'S;=`%{<%lO%jbEoU!e`Oy%jz#d%j#d#eFR#e;'S%j;'S;=`%{<%lO%jbFWU!e`Oy%jz#c%j#c#dFj#d;'S%j;'S;=`%{<%lO%jbFoU!e`Oy%jz#f%j#f#gGR#g;'S%j;'S;=`%{<%lO%jbGWU!e`Oy%jz#h%j#h#iGj#i;'S%j;'S;=`%{<%lO%jbGoU!e`Oy%jz#T%j#T#UHR#U;'S%j;'S;=`%{<%lO%jbHWU!e`Oy%jz#b%j#b#cHj#c;'S%j;'S;=`%{<%lO%jbHoU!e`Oy%jz#h%j#h#iIR#i;'S%j;'S;=`%{<%lO%jbIYS$cQ!e`Oy%jz;'S%j;'S;=`%{<%lO%jjIkSsYOy%jz;'S%j;'S;=`%{<%lO%jfI|U$XUOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jjJeSrYOy%jz;'S%j;'S;=`%{<%lO%jfJvU!uQOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%j`K]P;=`<%l%Z",tokenizers:[C3,X3,z3,R3,1,2,3,4,new pc("m~RRYZ[z{a~~g~aO$T~~dP!P!Qg~lO$U~~",28,142)],topRules:{StyleSheet:[0,6],Styles:[1,116]},dynamicPrecedences:{84:1},specialized:[{term:137,get:t=>Z3[t]||-1},{term:138,get:t=>A3[t]||-1},{term:4,get:t=>E3[t]||-1},{term:28,get:t=>q3[t]||-1},{term:136,get:t=>M3[t]||-1}],tokenPrec:2256});let QO=null;function jO(){if(!QO&&typeof document=="object"&&document.body){let{style:t}=document.body,n=[],s=new Set;for(let l in t)l!="cssText"&&l!="cssFloat"&&typeof t[l]=="string"&&(/[A-Z]/.test(l)&&(l=l.replace(/[A-Z]/g,o=>"-"+o.toLowerCase())),s.has(l)||(n.push(l),s.add(l)));QO=n.sort().map(l=>({type:"property",label:l,apply:l+": "}))}return QO||[]}const x1=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(t=>({type:"class",label:t})),g1=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(t=>({type:"keyword",label:t})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(t=>({type:"constant",label:t}))),V3=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(t=>({type:"type",label:t})),U3=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(t=>({type:"keyword",label:t})),Ka=/^(\w[\w-]*|-\w[\w-]*|)$/,G3=/^-(-[\w-]*)?$/;function L3(t,n){var s;if((t.name=="("||t.type.isError)&&(t=t.parent||t),t.name!="ArgList")return!1;let l=(s=t.parent)===null||s===void 0?void 0:s.firstChild;return(l==null?void 0:l.name)!="Callee"?!1:n.sliceString(l.from,l.to)=="var"}const b1=new kf,D3=["Declaration"];function W3(t){for(let n=t;;){if(n.type.isTop)return n;if(!(n=n.parent))return t}}function kv(t,n,s){if(n.to-n.from>4096){let l=b1.get(n);if(l)return l;let o=[],u=new Set,d=n.cursor(Qc.IncludeAnonymous);if(d.firstChild())do for(let O of kv(t,d.node,s))u.has(O.label)||(u.add(O.label),o.push(O));while(d.nextSibling());return b1.set(n,o),o}else{let l=[],o=new Set;return n.cursor().iterate(u=>{var d;if(s(u)&&u.matchContext(D3)&&((d=u.node.nextSibling)===null||d===void 0?void 0:d.name)==":"){let O=t.sliceString(u.from,u.to);o.has(O)||(o.add(O),l.push({label:O,type:"variable"}))}}),l}}const B3=t=>n=>{let{state:s,pos:l}=n,o=ga(s).resolveInner(l,-1),u=o.type.isError&&o.from==o.to-1&&s.doc.sliceString(o.from,o.to)=="-";if(o.name=="PropertyName"||(u||o.name=="TagName")&&/^(Block|Styles)$/.test(o.resolve(o.to).name))return{from:o.from,options:jO(),validFor:Ka};if(o.name=="ValueName")return{from:o.from,options:g1,validFor:Ka};if(o.name=="PseudoClassName")return{from:o.from,options:x1,validFor:Ka};if(t(o)||(n.explicit||u)&&L3(o,s.doc))return{from:t(o)||u?o.from:l,options:kv(s.doc,W3(o),t),validFor:G3};if(o.name=="TagName"){for(let{parent:m}=o;m;m=m.parent)if(m.name=="Block")return{from:o.from,options:jO(),validFor:Ka};return{from:o.from,options:V3,validFor:Ka}}if(o.name=="AtKeyword")return{from:o.from,options:U3,validFor:Ka};if(!n.explicit)return null;let d=o.resolve(l),O=d.childBefore(l);return O&&O.name==":"&&d.name=="PseudoClassSelector"?{from:l,options:x1,validFor:Ka}:O&&O.name==":"&&d.name=="Declaration"||d.name=="ArgList"?{from:l,options:g1,validFor:Ka}:d.name=="Block"||d.name=="Styles"?{from:l,options:jO(),validFor:Ka}:null},H3=B3(t=>t.name=="VariableName"),xc=si.define({name:"css",parser:Y3.configure({props:[_l.add({Declaration:Sl()}),Ps.add({"Block KeyframeList":jc})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function $v(){return new Qs(xc,xc.data.of({autocomplete:H3}))}const I3=55,F3=1,K3=56,J3=2,e4=57,t4=3,v1=4,a4=5,lh=6,Tv=7,Pv=8,Nv=9,zv=10,n4=11,s4=12,l4=13,wO=58,r4=14,i4=15,y1=59,Rv=21,o4=23,Cv=24,c4=25,ff=27,Xv=28,u4=29,d4=32,O4=35,f4=37,h4=38,m4=0,p4=1,x4={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},g4={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},S1={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function b4(t){return t==45||t==46||t==58||t>=65&&t<=90||t==95||t>=97&&t<=122||t>=161}let Q1=null,j1=null,w1=0;function hf(t,n){let s=t.pos+n;if(w1==s&&j1==t)return Q1;let l=t.peek(n),o="";for(;b4(l);)o+=String.fromCharCode(l),l=t.peek(++n);return j1=t,w1=s,Q1=o?o.toLowerCase():l==v4||l==y4?void 0:null}const _v=60,gc=62,rh=47,v4=63,y4=33,S4=45;function k1(t,n){this.name=t,this.parent=n}const Q4=[lh,zv,Tv,Pv,Nv],j4=new nh({start:null,shift(t,n,s,l){return Q4.indexOf(n)>-1?new k1(hf(l,1)||"",t):t},reduce(t,n){return n==Rv&&t?t.parent:t},reuse(t,n,s,l){let o=n.type.id;return o==lh||o==f4?new k1(hf(l,1)||"",t):t},strict:!1}),w4=new gt((t,n)=>{if(t.next!=_v){t.next<0&&n.context&&t.acceptToken(wO);return}t.advance();let s=t.next==rh;s&&t.advance();let l=hf(t,0);if(l===void 0)return;if(!l)return t.acceptToken(s?i4:r4);let o=n.context?n.context.name:null;if(s){if(l==o)return t.acceptToken(n4);if(o&&g4[o])return t.acceptToken(wO,-2);if(n.dialectEnabled(m4))return t.acceptToken(s4);for(let u=n.context;u;u=u.parent)if(u.name==l)return;t.acceptToken(l4)}else{if(l=="script")return t.acceptToken(Tv);if(l=="style")return t.acceptToken(Pv);if(l=="textarea")return t.acceptToken(Nv);if(x4.hasOwnProperty(l))return t.acceptToken(zv);o&&S1[o]&&S1[o][l]?t.acceptToken(wO,-1):t.acceptToken(lh)}},{contextual:!0}),k4=new gt(t=>{for(let n=0,s=0;;s++){if(t.next<0){s&&t.acceptToken(y1);break}if(t.next==S4)n++;else if(t.next==gc&&n>=2){s>=3&&t.acceptToken(y1,-2);break}else n=0;t.advance()}});function $4(t){for(;t;t=t.parent)if(t.name=="svg"||t.name=="math")return!0;return!1}const T4=new gt((t,n)=>{if(t.next==rh&&t.peek(1)==gc){let s=n.dialectEnabled(p4)||$4(n.context);t.acceptToken(s?a4:v1,2)}else t.next==gc&&t.acceptToken(v1,1)});function ih(t,n,s){let l=2+t.length;return new gt(o=>{for(let u=0,d=0,O=0;;O++){if(o.next<0){O&&o.acceptToken(n);break}if(u==0&&o.next==_v||u==1&&o.next==rh||u>=2&&u<l&&o.next==t.charCodeAt(u-2))u++,d++;else if(u==l&&o.next==gc){O>d?o.acceptToken(n,-d):o.acceptToken(s,-(d-2));break}else if((o.next==10||o.next==13)&&O){o.acceptToken(n,1);break}else u=d=0;o.advance()}})}const P4=ih("script",I3,F3),N4=ih("style",K3,J3),z4=ih("textarea",e4,t4),R4=Ts({"Text RawText IncompleteTag IncompleteCloseTag":Z.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":Z.angleBracket,TagName:Z.tagName,"MismatchedCloseTag/TagName":[Z.tagName,Z.invalid],AttributeName:Z.attributeName,"AttributeValue UnquotedAttributeValue":Z.attributeValue,Is:Z.definitionOperator,"EntityReference CharacterReference":Z.character,Comment:Z.blockComment,ProcessingInst:Z.processingInstruction,DoctypeDecl:Z.documentMeta}),C4=Kn.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:j4,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[R4],skippedNodes:[0],repeatNodeCount:9,tokenData:"!<p!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs3_sv-_vw3}wxHYx}-_}!OH{!O!P-_!P!Q$q!Q![-_![!]Mz!]!^-_!^!_!$S!_!`!;x!`!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4U-_4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!Z$|caPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bXaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UVaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pTaPOv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!dpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({WaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!b`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!b`!dpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYlWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]`aP!b`!dp!_^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ebiSlWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0rXiSqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0mS1bP;=`<%l0m[1hP;=`<%l/^!V1vciSaP!b`!dpOq&Xqr1krs&}sv1kvw0mwx(tx!P1k!P!Q&X!Q!^1k!^!_*V!_!a&X!a#s1k#s$f&X$f;'S1k;'S;=`3R<%l?Ah1k?Ah?BY&X?BY?Mn1k?MnO&X!V3UP;=`<%l1k!_3[P;=`<%l-_!Z3hV!ahaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_4WiiSlWd!ROX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst>]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V<QciSOp7Sqr;{rs7Sst0mtw;{wx7Sx!P;{!P!Q7S!Q!];{!]!^=]!^!a7S!a#s;{#s$f7S$f;'S;{;'S;=`>P<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!<TXjSaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",tokenizers:[P4,N4,z4,T4,w4,k4,0,1,2,3,4,5],topRules:{Document:[0,16]},dialects:{noMatch:0,selfClosing:515},tokenPrec:517});function Zv(t,n){let s=Object.create(null);for(let l of t.getChildren(Cv)){let o=l.getChild(c4),u=l.getChild(ff)||l.getChild(Xv);o&&(s[n.read(o.from,o.to)]=u?u.type.id==ff?n.read(u.from+1,u.to-1):n.read(u.from,u.to):"")}return s}function $1(t,n){let s=t.getChild(o4);return s?n.read(s.from,s.to):" "}function kO(t,n,s){let l;for(let o of s)if(!o.attrs||o.attrs(l||(l=Zv(t.node.parent.firstChild,n))))return{parser:o.parser,bracketed:!0};return null}function Av(t=[],n=[]){let s=[],l=[],o=[],u=[];for(let O of t)(O.tag=="script"?s:O.tag=="style"?l:O.tag=="textarea"?o:u).push(O);let d=n.length?Object.create(null):null;for(let O of n)(d[O.name]||(d[O.name]=[])).push(O);return k0((O,m)=>{let p=O.type.id;if(p==u4)return kO(O,m,s);if(p==d4)return kO(O,m,l);if(p==O4)return kO(O,m,o);if(p==Rv&&u.length){let x=O.node,g=x.firstChild,b=g&&$1(g,m),S;if(b){for(let Q of u)if(Q.tag==b&&(!Q.attrs||Q.attrs(S||(S=Zv(g,m))))){let k=x.lastChild,T=k.type.id==h4?k.from:x.to;if(T>g.to)return{parser:Q.parser,overlay:[{from:g.to,to:T}]}}}}if(d&&p==Cv){let x=O.node,g;if(g=x.firstChild){let b=d[m.read(g.from,g.to)];if(b)for(let S of b){if(S.tagName&&S.tagName!=$1(x.parent,m))continue;let Q=x.lastChild;if(Q.type.id==ff){let k=Q.from+1,T=Q.lastChild,j=Q.to-(T&&T.isError?0:1);if(j>k)return{parser:S.parser,overlay:[{from:k,to:j}],bracketed:!0}}else if(Q.type.id==Xv)return{parser:S.parser,overlay:[{from:Q.from,to:Q.to}]}}}}return null})}const Er=["_blank","_self","_top","_parent"],$O=["ascii","utf-8","utf-16","latin1","latin1"],TO=["get","post","put","delete"],PO=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Lt=["true","false"],he={},X4={a:{attrs:{href:null,ping:null,type:null,media:null,target:Er,hreflang:null}},abbr:he,address:he,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:he,aside:he,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:he,base:{attrs:{href:null,target:Er}},bdi:he,bdo:he,blockquote:{attrs:{cite:null}},body:he,br:he,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:PO,formmethod:TO,formnovalidate:["novalidate"],formtarget:Er,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:he,center:he,cite:he,code:he,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:he,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:he,div:he,dl:he,dt:he,em:he,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:he,figure:he,footer:he,form:{attrs:{action:null,name:null,"accept-charset":$O,autocomplete:["on","off"],enctype:PO,method:TO,novalidate:["novalidate"],target:Er}},h1:he,h2:he,h3:he,h4:he,h5:he,h6:he,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:he,hgroup:he,hr:he,html:{attrs:{manifest:null}},i:he,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:PO,formmethod:TO,formnovalidate:["novalidate"],formtarget:Er,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:he,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:he,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:he,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:$O,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:he,noscript:he,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:he,param:{attrs:{name:null,value:null}},pre:he,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:he,rt:he,ruby:he,samp:he,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:$O}},section:he,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:he,source:{attrs:{src:null,type:null,media:null}},span:he,strong:he,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:he,summary:he,sup:he,table:he,tbody:he,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:he,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:he,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:he,time:{attrs:{datetime:null}},title:he,tr:he,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:he,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:he},Ev={accesskey:null,class:null,contenteditable:Lt,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:Lt,autocorrect:Lt,autocapitalize:Lt,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":Lt,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Lt,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Lt,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Lt,"aria-hidden":Lt,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Lt,"aria-multiselectable":Lt,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Lt,"aria-relevant":null,"aria-required":Lt,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},qv="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(t=>"on"+t);for(let t of qv)Ev[t]=null;class Jr{constructor(n,s){this.tags={...X4,...n},this.globalAttrs={...Ev,...s},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}Jr.default=new Jr;function Rl(t,n,s=t.length){if(!n)return"";let l=n.firstChild,o=l&&l.getChild("TagName");return o?t.sliceString(o.from,Math.min(o.to,s)):""}function Cl(t,n=!1){for(;t;t=t.parent)if(t.name=="Element")if(n)n=!1;else return t;return null}function Mv(t,n,s){let l=s.tags[Rl(t,Cl(n))];return(l==null?void 0:l.children)||s.allTags}function oh(t,n){let s=[];for(let l=Cl(n);l&&!l.type.isTop;l=Cl(l.parent)){let o=Rl(t,l);if(o&&l.lastChild.name=="CloseTag")break;o&&s.indexOf(o)<0&&(n.name=="EndTag"||n.from>=l.firstChild.to)&&s.push(o)}return s}const Yv=/^[:\-\.\w\u00b7-\uffff]*$/;function T1(t,n,s,l,o){let u=/\s*>/.test(t.sliceDoc(o,o+5))?"":">",d=Cl(s,s.name=="StartTag"||s.name=="TagName");return{from:l,to:o,options:Mv(t.doc,d,n).map(O=>({label:O,type:"type"})).concat(oh(t.doc,s).map((O,m)=>({label:"/"+O,apply:"/"+O+u,type:"type",boost:99-m}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function P1(t,n,s,l){let o=/\s*>/.test(t.sliceDoc(l,l+5))?"":">";return{from:s,to:l,options:oh(t.doc,n).map((u,d)=>({label:u,apply:u+o,type:"type",boost:99-d})),validFor:Yv}}function _4(t,n,s,l){let o=[],u=0;for(let d of Mv(t.doc,s,n))o.push({label:"<"+d,type:"type"});for(let d of oh(t.doc,s))o.push({label:"</"+d+">",type:"type",boost:99-u++});return{from:l,to:l,options:o,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function Z4(t,n,s,l,o){let u=Cl(s),d=u?n.tags[Rl(t.doc,u)]:null,O=d&&d.attrs?Object.keys(d.attrs):[],m=d&&d.globalAttrs===!1?O:O.length?O.concat(n.globalAttrNames):n.globalAttrNames;return{from:l,to:o,options:m.map(p=>({label:p,type:"property"})),validFor:Yv}}function A4(t,n,s,l,o){var u;let d=(u=s.parent)===null||u===void 0?void 0:u.getChild("AttributeName"),O=[],m;if(d){let p=t.sliceDoc(d.from,d.to),x=n.globalAttrs[p];if(!x){let g=Cl(s),b=g?n.tags[Rl(t.doc,g)]:null;x=(b==null?void 0:b.attrs)&&b.attrs[p]}if(x){let g=t.sliceDoc(l,o).toLowerCase(),b='"',S='"';/^['"]/.test(g)?(m=g[0]=='"'?/^[^"]*$/:/^[^']*$/,b="",S=t.sliceDoc(o,o+1)==g[0]?"":g[0],g=g.slice(1),l++):m=/^[^\s<>='"]*$/;for(let Q of x)O.push({label:Q,apply:b+Q+S,type:"constant"})}}return{from:l,to:o,options:O,validFor:m}}function Vv(t,n){let{state:s,pos:l}=n,o=ga(s).resolveInner(l,-1),u=o.resolve(l);for(let d=l,O;u==o&&(O=o.childBefore(d));){let m=O.lastChild;if(!m||!m.type.isError||m.from<m.to)break;u=o=O,d=m.from}return o.name=="TagName"?o.parent&&/CloseTag$/.test(o.parent.name)?P1(s,o,o.from,l):T1(s,t,o,o.from,l):o.name=="StartTag"||o.name=="IncompleteTag"?T1(s,t,o,l,l):o.name=="StartCloseTag"||o.name=="IncompleteCloseTag"?P1(s,o,l,l):o.name=="OpenTag"||o.name=="SelfClosingTag"||o.name=="AttributeName"?Z4(s,t,o,o.name=="AttributeName"?o.from:l,l):o.name=="Is"||o.name=="AttributeValue"||o.name=="UnquotedAttributeValue"?A4(s,t,o,o.name=="Is"?l:o.from,l):n.explicit&&(u.name=="Element"||u.name=="Text"||u.name=="Document")?_4(s,t,o,l):null}function E4(t){return Vv(Jr.default,t)}function q4(t){let{extraTags:n,extraGlobalAttributes:s}=t,l=s||n?new Jr(n,s):Jr.default;return o=>Vv(l,o)}const M4=Ta.parser.configure({top:"SingleExpression"}),Uv=[{tag:"script",attrs:t=>t.type=="text/typescript"||t.lang=="ts",parser:xv.parser},{tag:"script",attrs:t=>t.type=="text/babel"||t.type=="text/jsx",parser:gv.parser},{tag:"script",attrs:t=>t.type=="text/typescript-jsx",parser:bv.parser},{tag:"script",attrs(t){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(t.type)},parser:M4},{tag:"script",attrs(t){return!t.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(t.type)},parser:Ta.parser},{tag:"style",attrs(t){return(!t.lang||t.lang=="css")&&(!t.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(t.type))},parser:xc.parser}],Gv=[{name:"style",parser:xc.parser.configure({top:"Styles"})}].concat(qv.map(t=>({name:t,parser:Ta.parser}))),Lv=si.define({name:"html",parser:C4.configure({props:[_l.add({Element(t){let n=/^(\s*)(<\/)?/.exec(t.textAfter);return t.node.to<=t.pos+n[0].length?t.continue():t.lineIndent(t.node.from)+(n[2]?0:t.unit)},"OpenTag CloseTag SelfClosingTag"(t){return t.column(t.node.from)+t.unit},Document(t){if(t.pos+/\s*/.exec(t.textAfter)[0].length<t.node.to)return t.continue();let n=null,s;for(let l=t.node;;){let o=l.lastChild;if(!o||o.name!="Element"||o.to!=l.to)break;n=l=o}return n&&!((s=n.lastChild)&&(s.name=="CloseTag"||s.name=="SelfClosingTag"))?t.lineIndent(n.from)+t.unit:null}}),Ps.add({Element(t){let n=t.firstChild,s=t.lastChild;return!n||n.name!="OpenTag"?null:{from:n.to,to:s.name=="CloseTag"?s.from:t.to}}}),jj.add({"OpenTag CloseTag":t=>t.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),Ho=Lv.configure({wrap:Av(Uv,Gv)});function Dv(t={}){let n="",s;t.matchClosingTags===!1&&(n="noMatch"),t.selfClosingTags===!0&&(n=(n?n+" ":"")+"selfClosing"),(t.nestedLanguages&&t.nestedLanguages.length||t.nestedAttributes&&t.nestedAttributes.length)&&(s=Av((t.nestedLanguages||[]).concat(Uv),(t.nestedAttributes||[]).concat(Gv)));let l=s?Lv.configure({wrap:s,dialect:n}):n?Ho.configure({dialect:n}):Ho;return new Qs(l,[Ho.data.of({autocomplete:q4(t)}),t.autoCloseTags!==!1?Y4:[],Of().support,$v().support])}const N1=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),Y4=$l.inputHandler.of((t,n,s,l,o)=>{if(t.composing||t.state.readOnly||n!=s||l!=">"&&l!="/"||!Ho.isActiveAt(t.state,n,-1))return!1;let u=o(),{state:d}=u,O=d.changeByRange(m=>{var p,x,g;let b=d.doc.sliceString(m.from-1,m.to)==l,{head:S}=m,Q=ga(d).resolveInner(S,-1),k;if(b&&l==">"&&Q.name=="EndTag"){let T=Q.parent;if(((x=(p=T.parent)===null||p===void 0?void 0:p.lastChild)===null||x===void 0?void 0:x.name)!="CloseTag"&&(k=Rl(d.doc,T.parent,S))&&!N1.has(k)){let j=S+(d.doc.sliceString(S,S+1)===">"?1:0),P=`</${k}>`;return{range:m,changes:{from:S,to:j,insert:P}}}}else if(b&&l=="/"&&Q.name=="IncompleteCloseTag"){let T=Q.parent;if(Q.from==S-2&&((g=T.lastChild)===null||g===void 0?void 0:g.name)!="CloseTag"&&(k=Rl(d.doc,T,S))&&!N1.has(k)){let j=S+(d.doc.sliceString(S,S+1)===">"?1:0),P=`${k}>`;return{range:Wn.cursor(S+P.length,-1),changes:{from:S,to:j,insert:P}}}}return{range:m}});return O.changes.empty?!1:(t.dispatch([u,d.update(O,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),V4=Ts({String:Z.string,Number:Z.number,"True False":Z.bool,PropertyName:Z.propertyName,Null:Z.null,", :":Z.separator,"[ ]":Z.squareBracket,"{ }":Z.brace}),U4=Kn.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[V4],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),G4=si.define({name:"json",parser:U4.configure({props:[_l.add({Object:Sl({except:/^\s*\}/}),Array:Sl({except:/^\s*\]/})}),Ps.add({"Object Array":jc})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function L4(){return new Qs(G4)}class bc{static create(n,s,l,o,u){let d=o+(o<<8)+n+(s<<4)|0;return new bc(n,s,l,d,u,[],[])}constructor(n,s,l,o,u,d,O){this.type=n,this.value=s,this.from=l,this.hash=o,this.end=u,this.children=d,this.positions=O,this.hashProp=[[sn.contextHash,o]]}addChild(n,s){n.prop(sn.contextHash)!=this.hash&&(n=new ma(n.type,n.children,n.positions,n.length,this.hashProp)),this.children.push(n),this.positions.push(s)}toTree(n,s=this.end){let l=this.children.length-1;return l>=0&&(s=Math.max(s,this.positions[l]+this.children[l].length+this.from)),new ma(n.types[this.type],this.children,this.positions,s-this.from).balance({makeTree:(o,u,d)=>new ma(ni.none,o,u,d,this.hashProp)})}}var se;(function(t){t[t.Document=1]="Document",t[t.CodeBlock=2]="CodeBlock",t[t.FencedCode=3]="FencedCode",t[t.Blockquote=4]="Blockquote",t[t.HorizontalRule=5]="HorizontalRule",t[t.BulletList=6]="BulletList",t[t.OrderedList=7]="OrderedList",t[t.ListItem=8]="ListItem",t[t.ATXHeading1=9]="ATXHeading1",t[t.ATXHeading2=10]="ATXHeading2",t[t.ATXHeading3=11]="ATXHeading3",t[t.ATXHeading4=12]="ATXHeading4",t[t.ATXHeading5=13]="ATXHeading5",t[t.ATXHeading6=14]="ATXHeading6",t[t.SetextHeading1=15]="SetextHeading1",t[t.SetextHeading2=16]="SetextHeading2",t[t.HTMLBlock=17]="HTMLBlock",t[t.LinkReference=18]="LinkReference",t[t.Paragraph=19]="Paragraph",t[t.CommentBlock=20]="CommentBlock",t[t.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",t[t.Escape=22]="Escape",t[t.Entity=23]="Entity",t[t.HardBreak=24]="HardBreak",t[t.Emphasis=25]="Emphasis",t[t.StrongEmphasis=26]="StrongEmphasis",t[t.Link=27]="Link",t[t.Image=28]="Image",t[t.InlineCode=29]="InlineCode",t[t.HTMLTag=30]="HTMLTag",t[t.Comment=31]="Comment",t[t.ProcessingInstruction=32]="ProcessingInstruction",t[t.Autolink=33]="Autolink",t[t.HeaderMark=34]="HeaderMark",t[t.QuoteMark=35]="QuoteMark",t[t.ListMark=36]="ListMark",t[t.LinkMark=37]="LinkMark",t[t.EmphasisMark=38]="EmphasisMark",t[t.CodeMark=39]="CodeMark",t[t.CodeText=40]="CodeText",t[t.CodeInfo=41]="CodeInfo",t[t.LinkTitle=42]="LinkTitle",t[t.LinkLabel=43]="LinkLabel",t[t.URL=44]="URL"})(se||(se={}));class D4{constructor(n,s){this.start=n,this.content=s,this.marks=[],this.parsers=[]}}class W4{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let n=this.skipSpace(this.basePos);this.indent=this.countIndent(n,this.pos,this.indent),this.pos=n,this.next=n==this.text.length?-1:this.text.charCodeAt(n)}skipSpace(n){return Yr(this.text,n)}reset(n){for(this.text=n,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(n){this.basePos=n,this.baseIndent=this.countIndent(n,this.pos,this.indent)}moveBaseColumn(n){this.baseIndent=n,this.basePos=this.findColumn(n)}addMarker(n){this.markers.push(n)}countIndent(n,s=0,l=0){for(let o=s;o<n;o++)l+=this.text.charCodeAt(o)==9?4-l%4:1;return l}findColumn(n){let s=0;for(let l=0;s<this.text.length&&l<n;s++)l+=this.text.charCodeAt(s)==9?4-l%4:1;return s}scrub(){if(!this.baseIndent)return this.text;let n="";for(let s=0;s<this.basePos;s++)n+=" ";return n+this.text.slice(this.basePos)}}function z1(t,n,s){if(s.pos==s.text.length||t!=n.block&&s.indent>=n.stack[s.depth+1].value+s.baseIndent)return!0;if(s.indent>=s.baseIndent+4)return!1;let l=(t.type==se.OrderedList?dh:uh)(s,n,!1);return l>0&&(t.type!=se.BulletList||ch(s,n,!1)<0)&&s.text.charCodeAt(s.pos+l-1)==t.value}const Wv={[se.Blockquote](t,n,s){return s.next!=62?!1:(s.markers.push(Ne(se.QuoteMark,n.lineStart+s.pos,n.lineStart+s.pos+1)),s.moveBase(s.pos+(ua(s.text.charCodeAt(s.pos+1))?2:1)),t.end=n.lineStart+s.text.length,!0)},[se.ListItem](t,n,s){return s.indent<s.baseIndent+t.value&&s.next>-1?!1:(s.moveBaseColumn(s.baseIndent+t.value),!0)},[se.OrderedList]:z1,[se.BulletList]:z1,[se.Document](){return!0}};function ua(t){return t==32||t==9||t==10||t==13}function Yr(t,n=0){for(;n<t.length&&ua(t.charCodeAt(n));)n++;return n}function R1(t,n,s){for(;n>s&&ua(t.charCodeAt(n-1));)n--;return n}function Bv(t){if(t.next!=96&&t.next!=126)return-1;let n=t.pos+1;for(;n<t.text.length&&t.text.charCodeAt(n)==t.next;)n++;if(n<t.pos+3)return-1;if(t.next==96){for(let s=n;s<t.text.length;s++)if(t.text.charCodeAt(s)==96)return-1}return n}function Hv(t){return t.next!=62?-1:t.text.charCodeAt(t.pos+1)==32?2:1}function ch(t,n,s){if(t.next!=42&&t.next!=45&&t.next!=95)return-1;let l=1;for(let o=t.pos+1;o<t.text.length;o++){let u=t.text.charCodeAt(o);if(u==t.next)l++;else if(!ua(u))return-1}return s&&t.next==45&&Kv(t)>-1&&t.depth==n.stack.length&&n.parser.leafBlockParsers.indexOf(ay.SetextHeading)>-1||l<3?-1:1}function Iv(t,n){for(let s=t.stack.length-1;s>=0;s--)if(t.stack[s].type==n)return!0;return!1}function uh(t,n,s){return(t.next==45||t.next==43||t.next==42)&&(t.pos==t.text.length-1||ua(t.text.charCodeAt(t.pos+1)))&&(!s||Iv(n,se.BulletList)||t.skipSpace(t.pos+2)<t.text.length)?1:-1}function dh(t,n,s){let l=t.pos,o=t.next;for(;o>=48&&o<=57;){l++;if(l==t.text.length)return-1;o=t.text.charCodeAt(l)}return l==t.pos||l>t.pos+9||o!=46&&o!=41||l<t.text.length-1&&!ua(t.text.charCodeAt(l+1))||s&&!Iv(n,se.OrderedList)&&(t.skipSpace(l+1)==t.text.length||l>t.pos+1||t.next!=49)?-1:l+1-t.pos}function Fv(t){if(t.next!=35)return-1;let n=t.pos+1;for(;n<t.text.length&&t.text.charCodeAt(n)==35;)n++;if(n<t.text.length&&t.text.charCodeAt(n)!=32)return-1;let s=n-t.pos;return s>6?-1:s}function Kv(t){if(t.next!=45&&t.next!=61||t.indent>=t.baseIndent+4)return-1;let n=t.pos+1;for(;n<t.text.length&&t.text.charCodeAt(n)==t.next;)n++;let s=n;for(;n<t.text.length&&ua(t.text.charCodeAt(n));)n++;return n==t.text.length?s:-1}const mf=/^[ \t]*$/,Jv=/-->/,ey=/\?>/,pf=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*<!--/,Jv],[/^\s*<\?/,ey],[/^\s*<![A-Z]/,/>/],[/^\s*<!\[CDATA\[/,/\]\]>/],[/^\s*<\/?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\s|\/?>|$)/i,mf],[/^\s*(?:<\/[a-z][\w-]*\s*>|<[a-z][\w-]*(\s+[a-z:_][\w-.]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*>)\s*$/i,mf]];function ty(t,n,s){if(t.next!=60)return-1;let l=t.text.slice(t.pos);for(let o=0,u=pf.length-(s?1:0);o<u;o++)if(pf[o][0].test(l))return o;return-1}function C1(t,n){let s=t.countIndent(n,t.pos,t.indent),l=t.countIndent(t.skipSpace(n),n,s);return l>=s+5?s+1:l}function Yn(t,n,s){let l=t.length-1;l>=0&&t[l].to==n&&t[l].type==se.CodeText?t[l].to=s:t.push(Ne(se.CodeText,n,s))}const Zo={LinkReference:void 0,IndentedCode(t,n){let s=n.baseIndent+4;if(n.indent<s)return!1;let l=n.findColumn(s),o=t.lineStart+l,u=t.lineStart+n.text.length,d=[],O=[];for(Yn(d,o,u);t.nextLine()&&n.depth>=t.stack.length;)if(n.pos==n.text.length){Yn(O,t.lineStart-1,t.lineStart);for(let m of n.markers)O.push(m)}else{if(n.indent<s)break;{if(O.length){for(let p of O)p.type==se.CodeText?Yn(d,p.from,p.to):d.push(p);O=[]}Yn(d,t.lineStart-1,t.lineStart);for(let p of n.markers)d.push(p);u=t.lineStart+n.text.length;let m=t.lineStart+n.findColumn(n.baseIndent+4);m<u&&Yn(d,m,u)}}return O.length&&(O=O.filter(m=>m.type!=se.CodeText),O.length&&(n.markers=O.concat(n.markers))),t.addNode(t.buffer.writeElements(d,-o).finish(se.CodeBlock,u-o),o),!0},FencedCode(t,n){let s=Bv(n);if(s<0)return!1;let l=t.lineStart+n.pos,o=n.next,u=s-n.pos,d=n.skipSpace(s),O=R1(n.text,n.text.length,d),m=[Ne(se.CodeMark,l,l+u)];d<O&&m.push(Ne(se.CodeInfo,t.lineStart+d,t.lineStart+O));for(let p=!0,x=!0,g=!1;t.nextLine()&&n.depth>=t.stack.length;p=!1){let b=n.pos;if(n.indent-n.baseIndent<4)for(;b<n.text.length&&n.text.charCodeAt(b)==o;)b++;if(b-n.pos>=u&&n.skipSpace(b)==n.text.length){for(let S of n.markers)m.push(S);x&&g&&Yn(m,t.lineStart-1,t.lineStart),m.push(Ne(se.CodeMark,t.lineStart+n.pos,t.lineStart+b)),t.nextLine();break}else{g=!0,p||(Yn(m,t.lineStart-1,t.lineStart),x=!1);for(let k of n.markers)m.push(k);let S=t.lineStart+n.basePos,Q=t.lineStart+n.text.length;S<Q&&(Yn(m,S,Q),x=!1)}}return t.addNode(t.buffer.writeElements(m,-l).finish(se.FencedCode,t.prevLineEnd()-l),l),!0},Blockquote(t,n){let s=Hv(n);return s<0?!1:(t.startContext(se.Blockquote,n.pos),t.addNode(se.QuoteMark,t.lineStart+n.pos,t.lineStart+n.pos+1),n.moveBase(n.pos+s),null)},HorizontalRule(t,n){if(ch(n,t,!1)<0)return!1;let s=t.lineStart+n.pos;return t.nextLine(),t.addNode(se.HorizontalRule,s),!0},BulletList(t,n){let s=uh(n,t,!1);if(s<0)return!1;t.block.type!=se.BulletList&&t.startContext(se.BulletList,n.basePos,n.next);let l=C1(n,n.pos+1);return t.startContext(se.ListItem,n.basePos,l-n.baseIndent),t.addNode(se.ListMark,t.lineStart+n.pos,t.lineStart+n.pos+s),n.moveBaseColumn(l),null},OrderedList(t,n){let s=dh(n,t,!1);if(s<0)return!1;t.block.type!=se.OrderedList&&t.startContext(se.OrderedList,n.basePos,n.text.charCodeAt(n.pos+s-1));let l=C1(n,n.pos+s);return t.startContext(se.ListItem,n.basePos,l-n.baseIndent),t.addNode(se.ListMark,t.lineStart+n.pos,t.lineStart+n.pos+s),n.moveBaseColumn(l),null},ATXHeading(t,n){let s=Fv(n);if(s<0)return!1;let l=n.pos,o=t.lineStart+l,u=R1(n.text,n.text.length,l),d=u;for(;d>l&&n.text.charCodeAt(d-1)==n.next;)d--;(d==u||d==l||!ua(n.text.charCodeAt(d-1)))&&(d=n.text.length);let O=t.buffer.write(se.HeaderMark,0,s).writeElements(t.parser.parseInline(n.text.slice(l+s+1,d),o+s+1),-o);d<n.text.length&&O.write(se.HeaderMark,d-l,u-l);let m=O.finish(se.ATXHeading1-1+s,n.text.length-l);return t.nextLine(),t.addNode(m,o),!0},HTMLBlock(t,n){let s=ty(n,t,!1);if(s<0)return!1;let l=t.lineStart+n.pos,o=pf[s][1],u=[],d=o!=mf;for(;!o.test(n.text)&&t.nextLine();){if(n.depth<t.stack.length){d=!1;break}for(let p of n.markers)u.push(p)}d&&t.nextLine();let O=o==Jv?se.CommentBlock:o==ey?se.ProcessingInstructionBlock:se.HTMLBlock,m=t.prevLineEnd();return t.addNode(t.buffer.writeElements(u,-l).finish(O,m-l),l),!0},SetextHeading:void 0};class B4{constructor(n){this.stage=0,this.elts=[],this.pos=0,this.start=n.start,this.advance(n.content)}nextLine(n,s,l){if(this.stage==-1)return!1;let o=l.content+`
532
- `+s.scrub(),u=this.advance(o);return u>-1&&u<o.length?this.complete(n,l,u):!1}finish(n,s){return(this.stage==2||this.stage==3)&&Yr(s.content,this.pos)==s.content.length?this.complete(n,s,s.content.length):!1}complete(n,s,l){return n.addLeafElement(s,Ne(se.LinkReference,this.start,this.start+l,this.elts)),!0}nextStage(n){return n?(this.pos=n.to-this.start,this.elts.push(n),this.stage++,!0):(n===!1&&(this.stage=-1),!1)}advance(n){for(;;){if(this.stage==-1)return-1;if(this.stage==0){if(!this.nextStage(dy(n,this.pos,this.start,!0)))return-1;if(n.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(Ne(se.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(cy(n,Yr(n,this.pos),this.start)))return-1}else if(this.stage==2){let s=Yr(n,this.pos),l=0;if(s>this.pos){let o=uy(n,s,this.start);if(o){let u=NO(n,o.to-this.start);u>0&&(this.nextStage(o),l=u)}}return l||(l=NO(n,this.pos)),l>0&&l<n.length?l:-1}else return NO(n,this.pos)}}}function NO(t,n){for(;n<t.length;n++){let s=t.charCodeAt(n);if(s==10)break;if(!ua(s))return-1}return n}class H4{nextLine(n,s,l){let o=s.depth<n.stack.length?-1:Kv(s),u=s.next;if(o<0)return!1;let d=Ne(se.HeaderMark,n.lineStart+s.pos,n.lineStart+o);return n.nextLine(),n.addLeafElement(l,Ne(u==61?se.SetextHeading1:se.SetextHeading2,l.start,n.prevLineEnd(),[...n.parser.parseInline(l.content,l.start),d])),!0}finish(){return!1}}const ay={LinkReference(t,n){return n.content.charCodeAt(0)==91?new B4(n):null},SetextHeading(){return new H4}},I4=[(t,n)=>Fv(n)>=0,(t,n)=>Bv(n)>=0,(t,n)=>Hv(n)>=0,(t,n)=>uh(n,t,!0)>=0,(t,n)=>dh(n,t,!0)>=0,(t,n)=>ch(n,t,!0)>=0,(t,n)=>ty(n,t,!0)>=0],F4={text:"",end:0};class K4{constructor(n,s,l,o){this.parser=n,this.input=s,this.ranges=o,this.line=new W4,this.atEnd=!1,this.reusePlaceholders=new Map,this.stoppedAt=null,this.rangeI=0,this.to=o[o.length-1].to,this.lineStart=this.absoluteLineStart=this.absoluteLineEnd=o[0].from,this.block=bc.create(se.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=l.length?new tz(l,s):null,this.readLine()}get parsedPos(){return this.absoluteLineStart}advance(){if(this.stoppedAt!=null&&this.absoluteLineStart>this.stoppedAt)return this.finish();let{line:n}=this;for(;;){for(let l=0;;){let o=n.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;l<n.markers.length&&(!o||n.markers[l].from<o.end);){let u=n.markers[l++];this.addNode(u.type,u.from,u.to)}if(!o)break;this.finishContext()}if(n.pos<n.text.length)break;if(!this.nextLine())return this.finish()}if(this.fragments&&this.reuseFragment(n.basePos))return null;e:for(;;){for(let l of this.parser.blockParsers)if(l){let o=l(this,n);if(o!=!1){if(o==!0)return null;n.forward();continue e}}break}let s=new D4(this.lineStart+n.pos,n.text.slice(n.pos));for(let l of this.parser.leafBlockParsers)if(l){let o=l(this,s);o&&s.parsers.push(o)}e:for(;this.nextLine()&&n.pos!=n.text.length;){if(n.indent<n.baseIndent+4){for(let l of this.parser.endLeafBlock)if(l(this,n,s))break e}for(let l of s.parsers)if(l.nextLine(this,n,s))return null;s.content+=`
533
- `+n.scrub();for(let l of n.markers)s.marks.push(l)}return this.finishLeaf(s),null}stopAt(n){if(this.stoppedAt!=null&&this.stoppedAt<n)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=n}reuseFragment(n){if(!this.fragments.moveTo(this.absoluteLineStart+n,this.absoluteLineStart)||!this.fragments.matches(this.block.hash))return!1;let s=this.fragments.takeNodes(this);return s?(this.absoluteLineStart+=s,this.lineStart=Oy(this.absoluteLineStart,this.ranges),this.moveRangeI(),this.absoluteLineStart<this.to?(this.lineStart++,this.absoluteLineStart++,this.readLine()):(this.atEnd=!0,this.readLine()),!0):!1}get depth(){return this.stack.length}parentType(n=this.depth-1){return this.parser.nodeSet.types[this.stack[n].type]}nextLine(){return this.lineStart+=this.line.text.length,this.absoluteLineEnd>=this.to?(this.absoluteLineStart=this.absoluteLineEnd,this.atEnd=!0,this.readLine(),!1):(this.lineStart++,this.absoluteLineStart=this.absoluteLineEnd+1,this.moveRangeI(),this.readLine(),!0)}peekLine(){return this.scanLine(this.absoluteLineEnd+1).text}moveRangeI(){for(;this.rangeI<this.ranges.length-1&&this.absoluteLineStart>=this.ranges[this.rangeI].to;)this.rangeI++,this.absoluteLineStart=Math.max(this.absoluteLineStart,this.ranges[this.rangeI].from)}scanLine(n){let s=F4;if(s.end=n,n>=this.to)s.text="";else if(s.text=this.lineChunkAt(n),s.end+=s.text.length,this.ranges.length>1){let l=this.absoluteLineStart,o=this.rangeI;for(;this.ranges[o].to<s.end;){o++;let u=this.ranges[o].from,d=this.lineChunkAt(u);s.end=u+d.length,s.text=s.text.slice(0,this.ranges[o-1].to-l)+d,l=s.end-s.text.length}}return s}readLine(){let{line:n}=this,{text:s,end:l}=this.scanLine(this.absoluteLineStart);for(this.absoluteLineEnd=l,n.reset(s);n.depth<this.stack.length;n.depth++){let o=this.stack[n.depth],u=this.parser.skipContextMarkup[o.type];if(!u)throw new Error("Unhandled block context "+se[o.type]);let d=this.line.markers.length;if(!u(o,this,n)){this.line.markers.length>d&&(o.end=this.line.markers[this.line.markers.length-1].to),n.forward();break}n.forward()}}lineChunkAt(n){let s=this.input.chunk(n),l;if(this.input.lineChunks)l=s==`
541
+ }`,{label:"class",detail:"definition",type:"keyword"}),Ie('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Ie('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],d3=Ov.concat([Ie("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Ie("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Ie("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),O1=new kf,fv=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Ar(t){return(n,s)=>{let l=n.node.getChild("VariableDefinition");return l&&s(l,t),!0}}const O3=["FunctionDeclaration"],f3={FunctionDeclaration:Ar("function"),ClassDeclaration:Ar("class"),ClassExpression:()=>!0,EnumDeclaration:Ar("constant"),TypeAliasDeclaration:Ar("type"),NamespaceDeclaration:Ar("namespace"),VariableDefinition(t,n){t.matchContext(O3)||n(t,"variable")},TypeDefinition(t,n){n(t,"type")},__proto__:null};function hv(t,n){let s=O1.get(n);if(s)return s;let l=[],o=!0;function u(d,O){let m=t.sliceString(d.from,d.to);l.push({label:m,type:O})}return n.cursor(Qc.IncludeAnonymous).iterate(d=>{if(o)o=!1;else if(d.name){let O=f3[d.name];if(O&&O(d,u)||fv.has(d.name))return!1}else if(d.to-d.from>8192){for(let O of hv(t,d.node))l.push(O);return!1}}),O1.set(n,l),l}const f1=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,mv=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function h3(t){let n=ga(t.state).resolveInner(t.pos,-1);if(mv.indexOf(n.name)>-1)return null;let s=n.name=="VariableName"||n.to-n.from<20&&f1.test(t.state.sliceDoc(n.from,n.to));if(!s&&!t.explicit)return null;let l=[];for(let o=n;o;o=o.parent)fv.has(o.name)&&(l=l.concat(hv(t.state.doc,o)));return{options:l,from:s?n.from:t.pos,validFor:f1}}const Ta=si.define({name:"javascript",parser:u3.configure({props:[_l.add({IfStatement:Sl({except:/^\s*({|else\b)/}),TryStatement:Sl({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:Qj,SwitchBody:t=>{let n=t.textAfter,s=/^\s*\}/.test(n),l=/^\s*(case|default)\b/.test(n);return t.baseIndent+(s?0:l?1:2)*t.unit},Block:Lo({closing:"}"}),ArrowFunction:t=>t.baseIndent+t.unit,"TemplateString BlockComment":()=>null,"Statement Property":Sl({except:/^\s*{/}),JSXElement(t){let n=/^\s*<\//.test(t.textAfter);return t.lineIndent(t.node.from)+(n?0:t.unit)},JSXEscape(t){let n=/\s*\}/.test(t.textAfter);return t.lineIndent(t.node.from)+(n?0:t.unit)},"JSXOpenTag JSXSelfClosingTag"(t){return t.column(t.node.from)+t.unit}}),Ps.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":jc,BlockComment(t){return{from:t.from+2,to:t.to-2}},JSXElement(t){let n=t.firstChild;if(!n||n.name=="JSXSelfClosingTag")return null;let s=t.lastChild;return{from:n.to,to:s.type.isError?t.to:s.from}},"JSXSelfClosingTag JSXOpenTag"(t){var n;let s=(n=t.firstChild)===null||n===void 0?void 0:n.nextSibling,l=t.lastChild;return!s||s.type.isError?null:{from:s.to,to:l.type.isError?t.to:l.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),pv={test:t=>/^JSX/.test(t.name),facet:w0({commentTokens:{block:{open:"{/*",close:"*/}"}}})},xv=Ta.configure({dialect:"ts"},"typescript"),gv=Ta.configure({dialect:"jsx",props:[j0.add(t=>t.isTop?[pv]:void 0)]}),bv=Ta.configure({dialect:"jsx ts",props:[j0.add(t=>t.isTop?[pv]:void 0)]},"typescript");let vv=t=>({label:t,type:"keyword"});const yv="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(vv),m3=yv.concat(["declare","implements","private","protected","public"].map(vv));function Of(t={}){let n=t.jsx?t.typescript?bv:gv:t.typescript?xv:Ta,s=t.typescript?d3.concat(m3):Ov.concat(yv);return new Qs(n,[Ta.data.of({autocomplete:S0(mv,Q0(s))}),Ta.data.of({autocomplete:h3}),t.jsx?g3:[]])}function p3(t){for(;;){if(t.name=="JSXOpenTag"||t.name=="JSXSelfClosingTag"||t.name=="JSXFragmentTag")return t;if(t.name=="JSXEscape"||!t.parent)return null;t=t.parent}}function h1(t,n,s=t.length){for(let l=n==null?void 0:n.firstChild;l;l=l.nextSibling)if(l.name=="JSXIdentifier"||l.name=="JSXBuiltin"||l.name=="JSXNamespacedName"||l.name=="JSXMemberExpression")return t.sliceString(l.from,Math.min(l.to,s));return""}const x3=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),g3=$l.inputHandler.of((t,n,s,l,o)=>{if((x3?t.composing:t.compositionStarted)||t.state.readOnly||n!=s||l!=">"&&l!="/"||!Ta.isActiveAt(t.state,n,-1))return!1;let u=o(),{state:d}=u,O=d.changeByRange(m=>{var p;let{head:x}=m,g=ga(d).resolveInner(x-1,-1),b;if(g.name=="JSXStartTag"&&(g=g.parent),!(d.doc.sliceString(x-1,x)!=l||g.name=="JSXAttributeValue"&&g.to>x)){if(l==">"&&g.name=="JSXFragmentTag")return{range:m,changes:{from:x,insert:"</>"}};if(l=="/"&&g.name=="JSXStartCloseTag"){let S=g.parent,Q=S.parent;if(Q&&S.from==x-2&&((b=h1(d.doc,Q.firstChild,x))||((p=Q.firstChild)===null||p===void 0?void 0:p.name)=="JSXFragmentTag")){let k=`${b}>`;return{range:Wn.cursor(x+k.length,-1),changes:{from:x,insert:k}}}}else if(l==">"){let S=p3(g);if(S&&S.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(d.doc.sliceString(x,x+2))&&(b=h1(d.doc,S,x)))return{range:m,changes:{from:x,insert:`</${b}>`}}}}return{range:m}});return O.changes.empty?!1:(t.dispatch([u,d.update(O,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),b3=135,m1=1,v3=136,y3=137,Sv=2,S3=138,Q3=3,j3=4,Qv=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],w3=58,k3=40,jv=95,$3=91,Bo=45,T3=46,P3=35,N3=37,z3=38,R3=92,C3=10,X3=42;function Kr(t){return t>=65&&t<=90||t>=97&&t<=122||t>=161}function sh(t){return t>=48&&t<=57}function p1(t){return sh(t)||t>=97&&t<=102||t>=65&&t<=70}const wv=(t,n,s)=>(l,o)=>{for(let u=!1,d=0,O=0;;O++){let{next:m}=l;if(Kr(m)||m==Bo||m==jv||u&&sh(m))!u&&(m!=Bo||O>0)&&(u=!0),d===O&&m==Bo&&d++,l.advance();else if(m==R3&&l.peek(1)!=C3){if(l.advance(),p1(l.next)){do l.advance();while(p1(l.next));l.next==32&&l.advance()}else l.next>-1&&l.advance();u=!0}else{u&&l.acceptToken(d==2&&o.canShift(Sv)?n:m==k3?s:t);break}}},_3=new gt(wv(v3,Sv,y3),{contextual:!0}),Z3=new gt(wv(S3,Q3,j3),{contextual:!0}),A3=new gt(t=>{if(Qv.includes(t.peek(-1))){let{next:n}=t;(Kr(n)||n==jv||n==P3||n==T3||n==X3||n==$3||n==w3&&Kr(t.peek(1))||n==Bo||n==z3)&&t.acceptToken(b3)}}),E3=new gt(t=>{if(!Qv.includes(t.peek(-1))){let{next:n}=t;if(n==N3&&(t.advance(),t.acceptToken(m1)),Kr(n)){do t.advance();while(Kr(t.next)||sh(t.next));t.acceptToken(m1)}}}),q3=Ts({"AtKeyword import charset namespace keyframes media supports font-feature-values":Z.definitionKeyword,"from to selector scope MatchFlag":Z.keyword,NamespaceName:Z.namespace,KeyframeName:Z.labelName,KeyframeRangeName:Z.operatorKeyword,TagName:Z.tagName,ClassName:Z.className,PseudoClassName:Z.constant(Z.className),IdName:Z.labelName,"FeatureName PropertyName":Z.propertyName,AttributeName:Z.attributeName,NumberLiteral:Z.number,KeywordQuery:Z.keyword,UnaryQueryOp:Z.operatorKeyword,"CallTag ValueName FontName":Z.atom,VariableName:Z.variableName,Callee:Z.operatorKeyword,Unit:Z.unit,"UniversalSelector NestingSelector":Z.definitionOperator,"MatchOp CompareOp":Z.compareOperator,"ChildOp SiblingOp, LogicOp":Z.logicOperator,BinOp:Z.arithmeticOperator,Important:Z.modifier,Comment:Z.blockComment,ColorLiteral:Z.color,"ParenthesizedContent StringLiteral":Z.string,":":Z.punctuation,"PseudoOp #":Z.derefOperator,"; , |":Z.separator,"( )":Z.paren,"[ ]":Z.squareBracket,"{ }":Z.brace}),M3={__proto__:null,lang:44,"nth-child":44,"nth-last-child":44,"nth-of-type":44,"nth-last-of-type":44,dir:44,"host-context":44,if:90,url:132,"url-prefix":132,domain:132,regexp:132},Y3={__proto__:null,or:104,and:104,not:112,only:112,layer:186},V3={__proto__:null,selector:118,layer:182},U3={__proto__:null,"@import":178,"@media":190,"@charset":194,"@namespace":198,"@keyframes":204,"@supports":216,"@scope":220,"@font-feature-values":226},G3={__proto__:null,to:223},L3=Kn.deserialize({version:14,states:"IpQYQdOOO#}QdOOP$UO`OOO%OQaO'#CfOOQP'#Ce'#CeO%VQdO'#CgO%[Q`O'#CgO%aQaO'#FdO&XQdO'#CkO&xQaO'#CcO'SQdO'#CnO'_QdO'#DtO'dQdO'#DvO'oQdO'#D}O'oQdO'#EQOOQP'#Fd'#FdO)OQhO'#EsOOQS'#Fc'#FcOOQS'#Ev'#EvQYQdOOO)VQdO'#EWO*cQhO'#E^O)VQdO'#E`O*jQdO'#EbO*uQdO'#EeO)zQhO'#EkO*}QdO'#EmO+YQdO'#EpO+_QaO'#CfO+fQ`O'#ETO+kQ`O'#FnO+vQdO'#FnQOQ`OOP,QO&jO'#CaPOOO)CAR)CAROOQP'#Ci'#CiOOQP,59R,59RO%VQdO,59ROOQP'#Cm'#CmOOQP,59V,59VO&XQdO,59VO,]QdO,59YO'_QdO,5:`O'dQdO,5:bO'oQdO,5:iO'oQdO,5:kO'oQdO,5:lO'oQdO'#E}O,hQ`O,58}O,pQdO'#ESOOQS,58},58}OOQP'#Cq'#CqOOQO'#Dr'#DrOOQP,59Y,59YO,wQ`O,59YO,|Q`O,59YOOQP'#Du'#DuOOQP,5:`,5:`O-RQpO'#DwO-^QdO'#DxO-cQ`O'#DxO-hQpO,5:bO.RQaO,5:iO.iQaO,5:lOOQW'#D^'#D^O/eQhO'#DgO/xQhO,5;_O)zQhO'#DeO0VQ`O'#DkO0[QhO'#DnOOQW'#Fj'#FjOOQS,5;_,5;_O0aQ`O'#DhOOQS-E8t-E8tOOQ['#Cv'#CvO0fQdO'#CwO0|QdO'#C}O1dQdO'#DQO1zQ!pO'#DSO4TQ!jO,5:rOOQO'#DX'#DXO,|Q`O'#DWO4eQ!nO'#FgO6hQ`O'#DYO6mQ`O'#DoOOQ['#Fg'#FgO6rQhO'#FqO7QQ`O,5:xO7VQ!bO,5:zOOQS'#Ed'#EdO7_Q`O,5:|O7dQdO,5:|OOQO'#Eg'#EgO7lQ`O,5;PO7qQhO,5;VO'oQdO'#DjOOQS,5;X,5;XO0aQ`O,5;XO7yQdO,5;XOOQS'#FU'#FUO8RQdO'#ErO7QQ`O,5;[O8ZQdO,5:oO8kQdO'#FPO8xQ`O,5<YO8xQ`O,5<YPOOO'#Eu'#EuP9TO&jO,58{POOO,58{,58{OOQP1G.m1G.mOOQP1G.q1G.qOOQP1G.t1G.tO,wQ`O1G.tO,|Q`O1G.tOOQP1G/z1G/zO9`QpO1G/|O9hQaO1G0TO:OQaO1G0VO:fQaO1G0WO:|QaO,5;iOOQO-E8{-E8{OOQS1G.i1G.iO;WQ`O,5:nO;]QdO'#DsO;dQdO'#CuOOQO'#Dz'#DzOOQO,5:d,5:dO-^QdO,5:dOOQP1G/|1G/|O)VQdO1G/|O;kQ!jO'#D^O;yQ!bO,59yO<RQhO,5:ROOQO'#Fk'#FkO;|Q!bO,59}O<ZQhO'#FVO)zQhO,59{O)zQhO'#FVO=OQhO1G0yOOQS1G0y1G0yO=YQhO,5:PO>QQhO'#DlOOQW,5:V,5:VOOQW,5:Y,5:YOOQW,5:S,5:SO>[Q!fO'#FhOOQS'#Fh'#FhOOQS'#Ex'#ExO?lQdO,59cOOQ[,59c,59cO@SQdO,59iOOQ[,59i,59iO@jQdO,59lOOQ[,59l,59lOOQ[,59n,59nO)VQdO,59pOAQQhO'#EYOOQW'#EY'#EYOAlQ`O1G0^O4^QhO1G0^OOQ[,59r,59rO)zQhO'#D[OOQ[,59t,59tOAqQ#tO,5:ZOA|QhO'#FROBZQ`O,5<]OOQS1G0d1G0dOOQS1G0f1G0fOOQS1G0h1G0hOBfQ`O1G0hOBkQdO'#EhOOQS1G0k1G0kOOQS1G0q1G0qOBvQaO,5:UO7QQ`O1G0sOOQS1G0s1G0sO0aQ`O1G0sOOQS-E9S-E9SOOQS1G0v1G0vOB}Q!fO1G0ZOCeQ`O'#EVOOQO1G0Z1G0ZOOQO,5;k,5;kOCjQdO,5;kOOQO-E8}-E8}OCwQ`O1G1tPOOO-E8s-E8sPOOO1G.g1G.gOOQP7+$`7+$`OOQP7+%h7+%hO)VQdO7+%hOOQS1G0Y1G0YODSQaO'#FmOD^Q`O,5:_ODcQ!fO'#EwOEaQdO'#FfOEkQ`O,59aOOQO1G0O1G0OOEpQ!bO7+%hO)VQdO1G/eOE{QhO1G/iOOQW1G/m1G/mOOQW1G/g1G/gOF^QhO,5;qOOQW-E9T-E9TOOQS7+&e7+&eOGRQhO'#D^OGaQhO'#FlOGlQ`O'#FlOGqQ`O,5:WOOQS-E8v-E8vOOQ[1G.}1G.}OOQ[1G/T1G/TOOQ[1G/W1G/WOOQ[1G/[1G/[OGvQdO,5:tOOQS7+%x7+%xOG{Q`O7+%xOHQQhO'#D]OHYQ`O,59vO)zQhO,59vOOQ[1G/u1G/uOHbQ`O1G/uOHgQhO,5;mOOQO-E9P-E9POOQS7+&S7+&SOHuQbO'#DSOOQO'#Ej'#EjOITQ`O'#EiOOQO'#Ei'#EiOI`Q`O'#FSOIhQdO,5;SOOQS,5;S,5;SOOQ[1G/p1G/pOOQS7+&_7+&_O7QQ`O7+&_OIsQ!fO'#FOO)VQdO'#FOOJzQdO7+%uOOQO7+%u7+%uOOQO,5:q,5:qOOQO1G1V1G1VOK_Q!bO<<ISOKjQdO'#E|OKtQ`O,5<XOOQP1G/y1G/yOOQS-E8u-E8uOK|QdO'#E{OLWQ`O,5<QOOQ]1G.{1G.{OOQP<<IS<<ISOL`Q`O<<ISOLeQdO7+%POOQO'#D`'#D`OLlQ!bO7+%TOLtQhO'#EzOMRQ`O,5<WO)VQdO,5<WOOQW1G/r1G/rOOQO'#E['#E[OMZQ`O1G0`OOQS<<Id<<IdO)VQdO,59wOMzQhO1G/bOOQ[1G/b1G/bONRQ`O1G/bOOQW-E8w-E8wOOQ[7+%a7+%aOOQO,5;T,5;TOBnQdO'#FTOI`Q`O,5;nOOQS,5;n,5;nOOQS-E9Q-E9QOOQS1G0n1G0nOOQS<<Iy<<IyONZQ!fO,5;jOOQS-E8|-E8|OOQO<<Ia<<IaOOQPAN>nAN>nO! bQ`OAN>nO! gQaO,5;hOOQO-E8z-E8zO! qQdO,5;gOOQO-E8y-E8yOOQW<<Hk<<HkOOQW<<Ho<<HoO! {QhO<<HoO!!^QhO,5;fO!!iQ`O,5;fOOQO-E8x-E8xO!!nQdO1G1rOGvQdO'#FQO!!xQ`O7+%zOOQW7+%z7+%zO!#QQ!bO1G/cOOQ[7+$|7+$|O!#]QhO7+$|P!#dQ`O'#EyOOQO,5;o,5;oOOQO-E9R-E9ROOQS1G1Y1G1YOOQPG24YG24YO!#iQ`OAN>ZO)VQdO1G1QO!#nQ`O7+'^OOQO,5;l,5;lOOQO-E9O-E9OOOQW<<If<<IfOOQ[<<Hh<<HhPOQW,5;e,5;eOOQWG23uG23uO!#vQdO7+&l",stateData:"!$Z~O$QOS$RQQ~OWVO^_O`WOcYOdYOl`OmZOp[O!r]O!u^O!{dO#ReO#TfO#VgO#YhO#`iO#bjO#ekO#|RO$XTO~OQmOWVO^_O`WOcYOdYOl`OmZOp[O!r]O!u^O!{dO#ReO#TfO#VgO#YhO#`iO#bjO#ekO#|lO$XTO~O#z$bP~P!jO$RqO~O`YXcYXdYXmYXpYXsYX!aYX!rYX!uYX#{YX$X[X~OgYX~P$ZO#|sO~O$XuO~O$XuO`$WXc$WXd$WXm$WXp$WXs$WX!a$WX!r$WX!u$WX#{$WXg$WX~O#|vO~O`xOcyOdyOmzOp{O!r|O!u!OO#{}O~Os!RO!a!PO~P&^Of!XO#|!TO#}!UO~O#|!YO~OW!^O#|![O$X!]O~OWVO^_O`WOcYOdYOmZOp[O!r]O!u^O#|RO$XTO~OS!fOc!gOd!gOh!cOs!RO!Y!eO!]!jO$O!bO~On!iO~P(dOQ!tOh!mOp!nOs!oOu!wOw!wO}!uO!d!vO#|!lO#}!rO$]!pO~OS!fOc!gOd!gOh!cO!Y!eO!]!jO$O!bO~Os$eP~P)zOw!|O!d!vO#|!{O~Ow#OO#|#OO~Oh#ROs!RO#c#TO~O#|#VO~Oc!xX~P$ZOc#YO~On#ZO#z$bXr$bX~O#z$bXr$bX~P!jO$S#^O$T#^O$U#`O~Of#eO#|!TO#}!UO~Os!RO!a!PO~Or$bP~P!jOh#oO~Oh#pO~Oo!kX!o!kX$X!mX~O#|#qO~O$X#sO~Oo#tO!o#uO~O`xOcyOdyOmzOp{O~Os!qa!a!qa!r!qa!u!qa#{!qag!qa~P-pOs!ta!a!ta!r!ta!u!ta#{!tag!ta~P-pOS!fOc!gOd!gOh!cO!Y!eO!]!jO~OR#yOu#yOw#yO$O#vO$]!pO~P/POn$PO!U#|O!a#}O~P(dOh$RO~O$O$TO~Oh#RO~O`$WOc$WOg$ZOl$WOm$WOn$WO~P)VO`$WOc$WOl$WOm$WOn$WOo$]O~P)VO`$WOc$WOl$WOm$WOn$WOr$_O~P)VOP$`OSvXcvXdvXhvXnvXyvX!YvX!]vX!}vX#PvX$OvX!WvXQvX`vXgvXlvXmvXpvXsvXuvXwvX}vX!dvX#|vX#}vX$]vXovXrvX!avX#zvX$dvX!pvX~Oy$aO!}$bO#P$cOn$eP~P)zOh#pOS$ZXc$ZXd$ZXn$ZXy$ZX!Y$ZX!]$ZX!}$ZX#P$ZX$O$ZXQ$ZX`$ZXg$ZXl$ZXm$ZXp$ZXs$ZXu$ZXw$ZX}$ZX!d$ZX#|$ZX#}$ZX$]$ZXo$ZXr$ZX!a$ZX#z$ZX$d$ZX!p$ZX~Oh$gO~Oh$iO~O!U#|O!a$jOs$eXn$eX~Os!RO~On$mOy$aO~On$nO~Ow$oO!d!vO~Os$pO~Os!RO!U#|O~Os!RO#c$vO~O#|#VOs#fX~O$d$zOn!wa#z!war!wa~P)VOn#sX#z#sXr#sX~P!jOn#ZO#z$bar$ba~O$S#^O$T#^O$U%RO~Oo%TO!o%UO~Os!qi!a!qi!r!qi!u!qi#{!qig!qi~P-pOs!si!a!si!r!si!u!si#{!sig!si~P-pOs!ti!a!ti!r!ti!u!ti#{!tig!ti~P-pOs#qa!a#qa~P&^Or%VO~Og$aP~P'oOg$YP~P)VOc!SXg!QX!U!QX!W!SX~Oc%_O!W%`O~Og%aO!U#|O~O!U#|OS#yXc#yXd#yXh#yXn#yXs#yX!Y#yX!]#yX!a#yX$O#yX~On%eO!a#}O~P(dO!U#|OS!Xac!Xad!Xah!Xan!Xas!Xa!Y!Xa!]!Xa!a!Xa$O!Xag!Xa~O$O%fOg$`P~P/POy$aOQ$[X`$[Xc$[Xg$[Xh$[Xl$[Xm$[Xn$[Xp$[Xs$[Xu$[Xw$[X}$[X!d$[X#|$[X#}$[X$]$[Xo$[Xr$[X~O`$WOc$WOg%kOl$WOm$WOn$WO~P)VO`$WOc$WOl$WOm$WOn$WOo%lO~P)VO`$WOc$WOl$WOm$WOn$WOr%mO~P)VOh%oOS!|Xc!|Xd!|Xn!|X!Y!|X!]!|X$O!|X~On%pO~Og%uOw%vO!e%vO~Os#uX!a#uXn#uX~P)zO!a$jOs$ean$ea~On%yO~Or&QO#|%{O$]%zO~Og&RO~P&^Oy$aO!a&VO$d$zOn!wi#z!wir!wi~P)VO$c&YO~On#sa#z#sar#sa~P!jOn#ZO#z$bir$bi~O!a&]Og$aX~P&^Og&_O~Oy$aOQ#kXg#kXh#kXp#kXs#kXu#kXw#kX}#kX!a#kX!d#kX#|#kX#}#kX$]#kX~O!a&aOg$YX~P)VOg&cO~Oo&dOy$aO!p&eO~OR#yOu#yOw#yO$O&gO$]!pO~O!U#|OS#yac#yad#yah#yan#yas#ya!Y#ya!]#ya!a#ya$O#ya~Oc!SXg!QX!U!QX!a!QX~O!U#|O!a&iOg$`X~Oc&kO~Og&lO~O#|&mO~On&oO~Oc&pO!U#|O~Og&rOn&qO~Og&uO~O!U#|Os#ua!a#uan#ua~OP$`OsvX!avXgvX~O$]%zOs#]X!a#]X~Os!RO!a&wO~Or&{O#|%{O$]%zO~Oy$aOQ#rXh#rXn#rXp#rXs#rXu#rXw#rX}#rX!a#rX!d#rX#z#rX#|#rX#}#rX$]#rX$d#rXr#rX~O!a&VO$d$zOn!wq#z!wqr!wq~P)VOo'QOy$aO!p'RO~Og#pX!a#pX~P'oO!a&]Og$aa~Og#oX!a#oX~P)VO!a&aOg$Ya~Oo'QO~Og'WO~P)VOg'XO!W'YO~O$O%fOg#nX!a#nX~P/PO!a&iOg$`a~O`'_Og'aO~OS#mac#mad#mah#ma!Y#ma!]#ma$O#ma~Og'cO~PMcOg'cOn'dO~Oy$aOQ#rah#ran#rap#ras#rau#raw#ra}#ra!a#ra!d#ra#z#ra#|#ra#}#ra$]#ra$d#rar#ra~Oo'iO~Og#pa!a#pa~P&^Og#oa!a#oa~P)VOR#yOu#yOw#yO$O&gO$]%zO~O!U#|Og#na!a#na~Oc'kO~O!a&iOg$`i~P)VO`'_Og'oO~Oy$aOg!Pin!Pi~Og'pO~PMcOn'qO~Og'rO~O!a&iOg$`q~Og#nq!a#nq~P)VO$Q!e$R$]`$]y!u~",goto:"4h$fPPPPP$gP$jP$s%V$s%i%{P$sP&R$sPP&XPPP&_&i&iPPPPP&iPP&iP'VP&iP&i(Q&iP(n(q(w(w)Z(wP(wP(wP(w(wP)j(w)vP(w)yPP*m*s$s*y$s+P+P+V+ZPP$sP$s$sP+a,],j,q$jP,zP,}P$jP$jP$jP-T$jP-W-Z-^-e$jP$jPP$jP-j$jP-m-s.S.j.x/O/Y/`/f/l/r/|0S0Y0`0f0lPPPPPPPPPPP0r0{P1q1t2vP3O3x4R4U4XPP4_RrQ_aOPco!R#Z$}q_OP]^co|}!O!P!R#R#Z#o$}&]qSOP]^co|}!O!P!R#R#Z#o$}&]qUOP]^co|}!O!P!R#R#Z#o$}&]QtTR#auQwWR#bxQ!VYR#cyQ#c!XS$f!s!tR%S#e!V!wdf!m!n!o#Y#p#u$Y$[$^$a$y%U%Z%_&V&W&a&f&k&p'U'^'k's!U!wdf!m!n!o#Y#p#u$Y$[$^$a$y%U%Z%_&V&W&a&f&k&p'U'^'k'sU#y!c%`'YU%}$p&P&wR&v%|!V!sdf!m!n!o#Y#p#u$Y$[$^$a$y%U%Z%_&V&W&a&f&k&p'U'^'k'sR$h!uQ%s$gR&s%tq!h`ei!c!d!e!q#|#}$O$R$e$g$j%t&iQ#w!cQ%h$RQ&h%`Q'[&iR'j'YQ#UjQ$U!jQ$t#TR&T$vR$S!f!U!wdf!m!n!o#Y#p#u$Y$[$^$a$y%U%Z%_&V&W&a&f&k&p'U'^'k'sQ!|gR$o!}Q!WYR#dyQ#c!WR%S#dQ!ZZR#fzQ!_[R#g{T!^[{Q#r!]R%]#sQ!SXQ!i`Q#SjQ#m!QQ$P!dQ$l!yQ$r#QQ$u#UQ$x#XQ%e$OQ&S$tQ&y&OQ&|&TR'h&xSnP!RQ#]oQ$|#ZR&Z$}ZmPo!R#Z$}Q${#YQ&X$yR'P&WR$e!qQ&n%oR'm'_R!}gR#PhR$q#PS&O$p&PR'f&wV%|$p&P&wR#XkQ#_qR%Q#_QcOSoP!RU!kco$}R$}#ZQ%Z#pY&`%Z&f'U'^'sQ&f%_Q'U&aQ'^&kR's'kQ$Y!mQ$[!nQ$^!oV%j$Y$[$^Q%t$gR&t%tQ&j%gS']&j'lR'l'^Q&b%ZR'V&bQ&^%WR'T&^Q!QXR#l!QQ&W$yR'O&WQ#[nS%O#[%PR%P#]Q'`&nR'n'`Q$k!xR%x$kQ&P$pR&z&PQ&x&OR'g&xQ#WkR$w#WQ$O!dR%d$O_bOPco!R#Z$}^XOPco!R#Z$}Q!`]Q!a^Q#h|Q#i}Q#j!OQ#k!PQ$s#RQ%W#oR'S&]R%[#pQ!qdQ!zf[$V!m!n!o$Y$[$^Q$y#Yd%Y#p%Z%_&a&f&k'U'^'k'sQ%^#uQ%n$aS&U$y&WQ&[%UQ&}&VR'b&p]$X!m!n!o$Y$[$^Q!d`U!xe!q$eQ#QiQ#x!cS#{!d$OQ$Q!eQ%b#|Q%c#}Q%g$RS%r$g%tQ%w$jR'Z&iQ#z!cQ&h%`R'j'YR%i$RR%X#oQpPR#n!RQ!yeQ$d!qR%q$e",nodeNames:"⚠ Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NamespacedTagSelector NamespaceName TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , PseudoQuery CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName NamespacedAttribute NamespaceName AttributeName MatchOp MatchFlag ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to FontFeatureStatement font-feature-values FontName AtRule Styles",maxTerm:159,nodeProps:[["isolate",-2,5,39,""],["openedBy",23,"(",31,"[",34,"{"],["closedBy",24,")",32,"]",35,"}"]],propSources:[q3],skippedNodes:[0,5,117],repeatNodeCount:17,tokenData:"K`~R!bOX%ZX^&R^p%Zpq&Rqr)ers)vst+jtu2Xuv%Zvw3Rwx3dxy5Ryz5dz{5i{|6S|}:u}!O;W!O!P;u!P!Q<^!Q![=V![!]>Q!]!^>|!^!_?_!_!`@Z!`!a@n!a!b%Z!b!cAo!c!k%Z!k!lC|!l!u%Z!u!vC|!v!}%Z!}#OD_#O#P%Z#P#QDp#Q#R2X#R#]%Z#]#^ER#^#g%Z#g#hC|#h#o%Z#o#pIf#p#qIw#q#rJ`#r#sJq#s#y%Z#y#z&R#z$f%Z$f$g&R$g#BY%Z#BY#BZ&R#BZ$IS%Z$IS$I_&R$I_$I|%Z$I|$JO&R$JO$JT%Z$JT$JU&R$JU$KV%Z$KV$KW&R$KW&FU%Z&FU&FV&R&FV;'S%Z;'S;=`KY<%lO%Z`%^SOy%jz;'S%j;'S;=`%{<%lO%j`%oS!e`Oy%jz;'S%j;'S;=`%{<%lO%j`&OP;=`<%l%j~&Wh$Q~OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%j~'yh$Q~!e`OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%jj)jS$dYOy%jz;'S%j;'S;=`%{<%lO%j~)yWOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d<%lO)v~*hOw~~*kRO;'S)v;'S;=`*t;=`O)v~*wXOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d;=`<%l)v<%lO)v~+gP;=`<%l)vj+oYmYOy%jz!Q%j!Q![,_![!c%j!c!i,_!i#T%j#T#Z,_#Z;'S%j;'S;=`%{<%lO%jj,dY!e`Oy%jz!Q%j!Q![-S![!c%j!c!i-S!i#T%j#T#Z-S#Z;'S%j;'S;=`%{<%lO%jj-XY!e`Oy%jz!Q%j!Q![-w![!c%j!c!i-w!i#T%j#T#Z-w#Z;'S%j;'S;=`%{<%lO%jj.OYuY!e`Oy%jz!Q%j!Q![.n![!c%j!c!i.n!i#T%j#T#Z.n#Z;'S%j;'S;=`%{<%lO%jj.uYuY!e`Oy%jz!Q%j!Q![/e![!c%j!c!i/e!i#T%j#T#Z/e#Z;'S%j;'S;=`%{<%lO%jj/jY!e`Oy%jz!Q%j!Q![0Y![!c%j!c!i0Y!i#T%j#T#Z0Y#Z;'S%j;'S;=`%{<%lO%jj0aYuY!e`Oy%jz!Q%j!Q![1P![!c%j!c!i1P!i#T%j#T#Z1P#Z;'S%j;'S;=`%{<%lO%jj1UY!e`Oy%jz!Q%j!Q![1t![!c%j!c!i1t!i#T%j#T#Z1t#Z;'S%j;'S;=`%{<%lO%jj1{SuY!e`Oy%jz;'S%j;'S;=`%{<%lO%jd2[UOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jd2uS!oS!e`Oy%jz;'S%j;'S;=`%{<%lO%jb3WS^QOy%jz;'S%j;'S;=`%{<%lO%j~3gWOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{<%lO3d~4SRO;'S3d;'S;=`4];=`O3d~4`XOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{;=`<%l3d<%lO3d~5OP;=`<%l3dj5WShYOy%jz;'S%j;'S;=`%{<%lO%j~5iOg~n5pUWQyWOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jj6ZWyW!uQOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj6xU!e`Oy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%jj7cY!e`$]YOy%jz!Q%j!Q![7[![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj8WY!e`Oy%jz{%j{|8v|}%j}!O8v!O!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj8{U!e`Oy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj9fU!e`$]YOy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj:P[!e`$]YOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj:zS!aYOy%jz;'S%j;'S;=`%{<%lO%jj;]WyWOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj;zU`YOy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%j~<cTyWOy%jz{<r{;'S%j;'S;=`%{<%lO%j~<yS!e`$R~Oy%jz;'S%j;'S;=`%{<%lO%jj=[[$]YOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj>VUcYOy%jz![%j![!]>i!];'S%j;'S;=`%{<%lO%jj>pSdY!e`Oy%jz;'S%j;'S;=`%{<%lO%jj?RSnYOy%jz;'S%j;'S;=`%{<%lO%jh?dU!WWOy%jz!_%j!_!`?v!`;'S%j;'S;=`%{<%lO%jh?}S!WW!e`Oy%jz;'S%j;'S;=`%{<%lO%jl@bS!WW!oSOy%jz;'S%j;'S;=`%{<%lO%jj@uV!rQ!WWOy%jz!_%j!_!`?v!`!aA[!a;'S%j;'S;=`%{<%lO%jbAcS!rQ!e`Oy%jz;'S%j;'S;=`%{<%lO%jjArYOy%jz}%j}!OBb!O!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjBgW!e`Oy%jz!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjCW[lY!e`Oy%jz}%j}!OCP!O!Q%j!Q![CP![!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jhDRS!pWOy%jz;'S%j;'S;=`%{<%lO%jjDdSpYOy%jz;'S%j;'S;=`%{<%lO%jnDuSo^Oy%jz;'S%j;'S;=`%{<%lO%jjEWU!pWOy%jz#a%j#a#bEj#b;'S%j;'S;=`%{<%lO%jbEoU!e`Oy%jz#d%j#d#eFR#e;'S%j;'S;=`%{<%lO%jbFWU!e`Oy%jz#c%j#c#dFj#d;'S%j;'S;=`%{<%lO%jbFoU!e`Oy%jz#f%j#f#gGR#g;'S%j;'S;=`%{<%lO%jbGWU!e`Oy%jz#h%j#h#iGj#i;'S%j;'S;=`%{<%lO%jbGoU!e`Oy%jz#T%j#T#UHR#U;'S%j;'S;=`%{<%lO%jbHWU!e`Oy%jz#b%j#b#cHj#c;'S%j;'S;=`%{<%lO%jbHoU!e`Oy%jz#h%j#h#iIR#i;'S%j;'S;=`%{<%lO%jbIYS$cQ!e`Oy%jz;'S%j;'S;=`%{<%lO%jjIkSsYOy%jz;'S%j;'S;=`%{<%lO%jfI|U$XUOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jjJeSrYOy%jz;'S%j;'S;=`%{<%lO%jfJvU!uQOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%j`K]P;=`<%l%Z",tokenizers:[A3,E3,_3,Z3,1,2,3,4,new pc("m~RRYZ[z{a~~g~aO$T~~dP!P!Qg~lO$U~~",28,142)],topRules:{StyleSheet:[0,6],Styles:[1,116]},dynamicPrecedences:{84:1},specialized:[{term:137,get:t=>M3[t]||-1},{term:138,get:t=>Y3[t]||-1},{term:4,get:t=>V3[t]||-1},{term:28,get:t=>U3[t]||-1},{term:136,get:t=>G3[t]||-1}],tokenPrec:2256});let QO=null;function jO(){if(!QO&&typeof document=="object"&&document.body){let{style:t}=document.body,n=[],s=new Set;for(let l in t)l!="cssText"&&l!="cssFloat"&&typeof t[l]=="string"&&(/[A-Z]/.test(l)&&(l=l.replace(/[A-Z]/g,o=>"-"+o.toLowerCase())),s.has(l)||(n.push(l),s.add(l)));QO=n.sort().map(l=>({type:"property",label:l,apply:l+": "}))}return QO||[]}const x1=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(t=>({type:"class",label:t})),g1=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(t=>({type:"keyword",label:t})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(t=>({type:"constant",label:t}))),D3=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(t=>({type:"type",label:t})),W3=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(t=>({type:"keyword",label:t})),Ka=/^(\w[\w-]*|-\w[\w-]*|)$/,B3=/^-(-[\w-]*)?$/;function H3(t,n){var s;if((t.name=="("||t.type.isError)&&(t=t.parent||t),t.name!="ArgList")return!1;let l=(s=t.parent)===null||s===void 0?void 0:s.firstChild;return(l==null?void 0:l.name)!="Callee"?!1:n.sliceString(l.from,l.to)=="var"}const b1=new kf,I3=["Declaration"];function F3(t){for(let n=t;;){if(n.type.isTop)return n;if(!(n=n.parent))return t}}function kv(t,n,s){if(n.to-n.from>4096){let l=b1.get(n);if(l)return l;let o=[],u=new Set,d=n.cursor(Qc.IncludeAnonymous);if(d.firstChild())do for(let O of kv(t,d.node,s))u.has(O.label)||(u.add(O.label),o.push(O));while(d.nextSibling());return b1.set(n,o),o}else{let l=[],o=new Set;return n.cursor().iterate(u=>{var d;if(s(u)&&u.matchContext(I3)&&((d=u.node.nextSibling)===null||d===void 0?void 0:d.name)==":"){let O=t.sliceString(u.from,u.to);o.has(O)||(o.add(O),l.push({label:O,type:"variable"}))}}),l}}const K3=t=>n=>{let{state:s,pos:l}=n,o=ga(s).resolveInner(l,-1),u=o.type.isError&&o.from==o.to-1&&s.doc.sliceString(o.from,o.to)=="-";if(o.name=="PropertyName"||(u||o.name=="TagName")&&/^(Block|Styles)$/.test(o.resolve(o.to).name))return{from:o.from,options:jO(),validFor:Ka};if(o.name=="ValueName")return{from:o.from,options:g1,validFor:Ka};if(o.name=="PseudoClassName")return{from:o.from,options:x1,validFor:Ka};if(t(o)||(n.explicit||u)&&H3(o,s.doc))return{from:t(o)||u?o.from:l,options:kv(s.doc,F3(o),t),validFor:B3};if(o.name=="TagName"){for(let{parent:m}=o;m;m=m.parent)if(m.name=="Block")return{from:o.from,options:jO(),validFor:Ka};return{from:o.from,options:D3,validFor:Ka}}if(o.name=="AtKeyword")return{from:o.from,options:W3,validFor:Ka};if(!n.explicit)return null;let d=o.resolve(l),O=d.childBefore(l);return O&&O.name==":"&&d.name=="PseudoClassSelector"?{from:l,options:x1,validFor:Ka}:O&&O.name==":"&&d.name=="Declaration"||d.name=="ArgList"?{from:l,options:g1,validFor:Ka}:d.name=="Block"||d.name=="Styles"?{from:l,options:jO(),validFor:Ka}:null},J3=K3(t=>t.name=="VariableName"),xc=si.define({name:"css",parser:L3.configure({props:[_l.add({Declaration:Sl()}),Ps.add({"Block KeyframeList":jc})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function $v(){return new Qs(xc,xc.data.of({autocomplete:J3}))}const e4=55,t4=1,a4=56,n4=2,s4=57,l4=3,v1=4,r4=5,lh=6,Tv=7,Pv=8,Nv=9,zv=10,i4=11,o4=12,c4=13,wO=58,u4=14,d4=15,y1=59,Rv=21,O4=23,Cv=24,f4=25,ff=27,Xv=28,h4=29,m4=32,p4=35,x4=37,g4=38,b4=0,v4=1,y4={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},S4={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},S1={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function Q4(t){return t==45||t==46||t==58||t>=65&&t<=90||t==95||t>=97&&t<=122||t>=161}let Q1=null,j1=null,w1=0;function hf(t,n){let s=t.pos+n;if(w1==s&&j1==t)return Q1;let l=t.peek(n),o="";for(;Q4(l);)o+=String.fromCharCode(l),l=t.peek(++n);return j1=t,w1=s,Q1=o?o.toLowerCase():l==j4||l==w4?void 0:null}const _v=60,gc=62,rh=47,j4=63,w4=33,k4=45;function k1(t,n){this.name=t,this.parent=n}const $4=[lh,zv,Tv,Pv,Nv],T4=new nh({start:null,shift(t,n,s,l){return $4.indexOf(n)>-1?new k1(hf(l,1)||"",t):t},reduce(t,n){return n==Rv&&t?t.parent:t},reuse(t,n,s,l){let o=n.type.id;return o==lh||o==x4?new k1(hf(l,1)||"",t):t},strict:!1}),P4=new gt((t,n)=>{if(t.next!=_v){t.next<0&&n.context&&t.acceptToken(wO);return}t.advance();let s=t.next==rh;s&&t.advance();let l=hf(t,0);if(l===void 0)return;if(!l)return t.acceptToken(s?d4:u4);let o=n.context?n.context.name:null;if(s){if(l==o)return t.acceptToken(i4);if(o&&S4[o])return t.acceptToken(wO,-2);if(n.dialectEnabled(b4))return t.acceptToken(o4);for(let u=n.context;u;u=u.parent)if(u.name==l)return;t.acceptToken(c4)}else{if(l=="script")return t.acceptToken(Tv);if(l=="style")return t.acceptToken(Pv);if(l=="textarea")return t.acceptToken(Nv);if(y4.hasOwnProperty(l))return t.acceptToken(zv);o&&S1[o]&&S1[o][l]?t.acceptToken(wO,-1):t.acceptToken(lh)}},{contextual:!0}),N4=new gt(t=>{for(let n=0,s=0;;s++){if(t.next<0){s&&t.acceptToken(y1);break}if(t.next==k4)n++;else if(t.next==gc&&n>=2){s>=3&&t.acceptToken(y1,-2);break}else n=0;t.advance()}});function z4(t){for(;t;t=t.parent)if(t.name=="svg"||t.name=="math")return!0;return!1}const R4=new gt((t,n)=>{if(t.next==rh&&t.peek(1)==gc){let s=n.dialectEnabled(v4)||z4(n.context);t.acceptToken(s?r4:v1,2)}else t.next==gc&&t.acceptToken(v1,1)});function ih(t,n,s){let l=2+t.length;return new gt(o=>{for(let u=0,d=0,O=0;;O++){if(o.next<0){O&&o.acceptToken(n);break}if(u==0&&o.next==_v||u==1&&o.next==rh||u>=2&&u<l&&o.next==t.charCodeAt(u-2))u++,d++;else if(u==l&&o.next==gc){O>d?o.acceptToken(n,-d):o.acceptToken(s,-(d-2));break}else if((o.next==10||o.next==13)&&O){o.acceptToken(n,1);break}else u=d=0;o.advance()}})}const C4=ih("script",e4,t4),X4=ih("style",a4,n4),_4=ih("textarea",s4,l4),Z4=Ts({"Text RawText IncompleteTag IncompleteCloseTag":Z.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":Z.angleBracket,TagName:Z.tagName,"MismatchedCloseTag/TagName":[Z.tagName,Z.invalid],AttributeName:Z.attributeName,"AttributeValue UnquotedAttributeValue":Z.attributeValue,Is:Z.definitionOperator,"EntityReference CharacterReference":Z.character,Comment:Z.blockComment,ProcessingInst:Z.processingInstruction,DoctypeDecl:Z.documentMeta}),A4=Kn.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:T4,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[Z4],skippedNodes:[0],repeatNodeCount:9,tokenData:"!<p!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs3_sv-_vw3}wxHYx}-_}!OH{!O!P-_!P!Q$q!Q![-_![!]Mz!]!^-_!^!_!$S!_!`!;x!`!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4U-_4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!Z$|caPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bXaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UVaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pTaPOv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!dpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({WaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!b`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!b`!dpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYlWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]`aP!b`!dp!_^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ebiSlWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0rXiSqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0mS1bP;=`<%l0m[1hP;=`<%l/^!V1vciSaP!b`!dpOq&Xqr1krs&}sv1kvw0mwx(tx!P1k!P!Q&X!Q!^1k!^!_*V!_!a&X!a#s1k#s$f&X$f;'S1k;'S;=`3R<%l?Ah1k?Ah?BY&X?BY?Mn1k?MnO&X!V3UP;=`<%l1k!_3[P;=`<%l-_!Z3hV!ahaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_4WiiSlWd!ROX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst>]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V<QciSOp7Sqr;{rs7Sst0mtw;{wx7Sx!P;{!P!Q7S!Q!];{!]!^=]!^!a7S!a#s;{#s$f7S$f;'S;{;'S;=`>P<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!<TXjSaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",tokenizers:[C4,X4,_4,R4,P4,N4,0,1,2,3,4,5],topRules:{Document:[0,16]},dialects:{noMatch:0,selfClosing:515},tokenPrec:517});function Zv(t,n){let s=Object.create(null);for(let l of t.getChildren(Cv)){let o=l.getChild(f4),u=l.getChild(ff)||l.getChild(Xv);o&&(s[n.read(o.from,o.to)]=u?u.type.id==ff?n.read(u.from+1,u.to-1):n.read(u.from,u.to):"")}return s}function $1(t,n){let s=t.getChild(O4);return s?n.read(s.from,s.to):" "}function kO(t,n,s){let l;for(let o of s)if(!o.attrs||o.attrs(l||(l=Zv(t.node.parent.firstChild,n))))return{parser:o.parser,bracketed:!0};return null}function Av(t=[],n=[]){let s=[],l=[],o=[],u=[];for(let O of t)(O.tag=="script"?s:O.tag=="style"?l:O.tag=="textarea"?o:u).push(O);let d=n.length?Object.create(null):null;for(let O of n)(d[O.name]||(d[O.name]=[])).push(O);return k0((O,m)=>{let p=O.type.id;if(p==h4)return kO(O,m,s);if(p==m4)return kO(O,m,l);if(p==p4)return kO(O,m,o);if(p==Rv&&u.length){let x=O.node,g=x.firstChild,b=g&&$1(g,m),S;if(b){for(let Q of u)if(Q.tag==b&&(!Q.attrs||Q.attrs(S||(S=Zv(g,m))))){let k=x.lastChild,T=k.type.id==g4?k.from:x.to;if(T>g.to)return{parser:Q.parser,overlay:[{from:g.to,to:T}]}}}}if(d&&p==Cv){let x=O.node,g;if(g=x.firstChild){let b=d[m.read(g.from,g.to)];if(b)for(let S of b){if(S.tagName&&S.tagName!=$1(x.parent,m))continue;let Q=x.lastChild;if(Q.type.id==ff){let k=Q.from+1,T=Q.lastChild,j=Q.to-(T&&T.isError?0:1);if(j>k)return{parser:S.parser,overlay:[{from:k,to:j}],bracketed:!0}}else if(Q.type.id==Xv)return{parser:S.parser,overlay:[{from:Q.from,to:Q.to}]}}}}return null})}const Er=["_blank","_self","_top","_parent"],$O=["ascii","utf-8","utf-16","latin1","latin1"],TO=["get","post","put","delete"],PO=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Lt=["true","false"],he={},E4={a:{attrs:{href:null,ping:null,type:null,media:null,target:Er,hreflang:null}},abbr:he,address:he,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:he,aside:he,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:he,base:{attrs:{href:null,target:Er}},bdi:he,bdo:he,blockquote:{attrs:{cite:null}},body:he,br:he,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:PO,formmethod:TO,formnovalidate:["novalidate"],formtarget:Er,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:he,center:he,cite:he,code:he,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:he,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:he,div:he,dl:he,dt:he,em:he,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:he,figure:he,footer:he,form:{attrs:{action:null,name:null,"accept-charset":$O,autocomplete:["on","off"],enctype:PO,method:TO,novalidate:["novalidate"],target:Er}},h1:he,h2:he,h3:he,h4:he,h5:he,h6:he,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:he,hgroup:he,hr:he,html:{attrs:{manifest:null}},i:he,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:PO,formmethod:TO,formnovalidate:["novalidate"],formtarget:Er,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:he,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:he,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:he,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:$O,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:he,noscript:he,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:he,param:{attrs:{name:null,value:null}},pre:he,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:he,rt:he,ruby:he,samp:he,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:$O}},section:he,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:he,source:{attrs:{src:null,type:null,media:null}},span:he,strong:he,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:he,summary:he,sup:he,table:he,tbody:he,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:he,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:he,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:he,time:{attrs:{datetime:null}},title:he,tr:he,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:he,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:he},Ev={accesskey:null,class:null,contenteditable:Lt,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:Lt,autocorrect:Lt,autocapitalize:Lt,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":Lt,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Lt,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Lt,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Lt,"aria-hidden":Lt,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Lt,"aria-multiselectable":Lt,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Lt,"aria-relevant":null,"aria-required":Lt,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},qv="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(t=>"on"+t);for(let t of qv)Ev[t]=null;class Jr{constructor(n,s){this.tags={...E4,...n},this.globalAttrs={...Ev,...s},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}Jr.default=new Jr;function Rl(t,n,s=t.length){if(!n)return"";let l=n.firstChild,o=l&&l.getChild("TagName");return o?t.sliceString(o.from,Math.min(o.to,s)):""}function Cl(t,n=!1){for(;t;t=t.parent)if(t.name=="Element")if(n)n=!1;else return t;return null}function Mv(t,n,s){let l=s.tags[Rl(t,Cl(n))];return(l==null?void 0:l.children)||s.allTags}function oh(t,n){let s=[];for(let l=Cl(n);l&&!l.type.isTop;l=Cl(l.parent)){let o=Rl(t,l);if(o&&l.lastChild.name=="CloseTag")break;o&&s.indexOf(o)<0&&(n.name=="EndTag"||n.from>=l.firstChild.to)&&s.push(o)}return s}const Yv=/^[:\-\.\w\u00b7-\uffff]*$/;function T1(t,n,s,l,o){let u=/\s*>/.test(t.sliceDoc(o,o+5))?"":">",d=Cl(s,s.name=="StartTag"||s.name=="TagName");return{from:l,to:o,options:Mv(t.doc,d,n).map(O=>({label:O,type:"type"})).concat(oh(t.doc,s).map((O,m)=>({label:"/"+O,apply:"/"+O+u,type:"type",boost:99-m}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function P1(t,n,s,l){let o=/\s*>/.test(t.sliceDoc(l,l+5))?"":">";return{from:s,to:l,options:oh(t.doc,n).map((u,d)=>({label:u,apply:u+o,type:"type",boost:99-d})),validFor:Yv}}function q4(t,n,s,l){let o=[],u=0;for(let d of Mv(t.doc,s,n))o.push({label:"<"+d,type:"type"});for(let d of oh(t.doc,s))o.push({label:"</"+d+">",type:"type",boost:99-u++});return{from:l,to:l,options:o,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function M4(t,n,s,l,o){let u=Cl(s),d=u?n.tags[Rl(t.doc,u)]:null,O=d&&d.attrs?Object.keys(d.attrs):[],m=d&&d.globalAttrs===!1?O:O.length?O.concat(n.globalAttrNames):n.globalAttrNames;return{from:l,to:o,options:m.map(p=>({label:p,type:"property"})),validFor:Yv}}function Y4(t,n,s,l,o){var u;let d=(u=s.parent)===null||u===void 0?void 0:u.getChild("AttributeName"),O=[],m;if(d){let p=t.sliceDoc(d.from,d.to),x=n.globalAttrs[p];if(!x){let g=Cl(s),b=g?n.tags[Rl(t.doc,g)]:null;x=(b==null?void 0:b.attrs)&&b.attrs[p]}if(x){let g=t.sliceDoc(l,o).toLowerCase(),b='"',S='"';/^['"]/.test(g)?(m=g[0]=='"'?/^[^"]*$/:/^[^']*$/,b="",S=t.sliceDoc(o,o+1)==g[0]?"":g[0],g=g.slice(1),l++):m=/^[^\s<>='"]*$/;for(let Q of x)O.push({label:Q,apply:b+Q+S,type:"constant"})}}return{from:l,to:o,options:O,validFor:m}}function Vv(t,n){let{state:s,pos:l}=n,o=ga(s).resolveInner(l,-1),u=o.resolve(l);for(let d=l,O;u==o&&(O=o.childBefore(d));){let m=O.lastChild;if(!m||!m.type.isError||m.from<m.to)break;u=o=O,d=m.from}return o.name=="TagName"?o.parent&&/CloseTag$/.test(o.parent.name)?P1(s,o,o.from,l):T1(s,t,o,o.from,l):o.name=="StartTag"||o.name=="IncompleteTag"?T1(s,t,o,l,l):o.name=="StartCloseTag"||o.name=="IncompleteCloseTag"?P1(s,o,l,l):o.name=="OpenTag"||o.name=="SelfClosingTag"||o.name=="AttributeName"?M4(s,t,o,o.name=="AttributeName"?o.from:l,l):o.name=="Is"||o.name=="AttributeValue"||o.name=="UnquotedAttributeValue"?Y4(s,t,o,o.name=="Is"?l:o.from,l):n.explicit&&(u.name=="Element"||u.name=="Text"||u.name=="Document")?q4(s,t,o,l):null}function V4(t){return Vv(Jr.default,t)}function U4(t){let{extraTags:n,extraGlobalAttributes:s}=t,l=s||n?new Jr(n,s):Jr.default;return o=>Vv(l,o)}const G4=Ta.parser.configure({top:"SingleExpression"}),Uv=[{tag:"script",attrs:t=>t.type=="text/typescript"||t.lang=="ts",parser:xv.parser},{tag:"script",attrs:t=>t.type=="text/babel"||t.type=="text/jsx",parser:gv.parser},{tag:"script",attrs:t=>t.type=="text/typescript-jsx",parser:bv.parser},{tag:"script",attrs(t){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(t.type)},parser:G4},{tag:"script",attrs(t){return!t.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(t.type)},parser:Ta.parser},{tag:"style",attrs(t){return(!t.lang||t.lang=="css")&&(!t.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(t.type))},parser:xc.parser}],Gv=[{name:"style",parser:xc.parser.configure({top:"Styles"})}].concat(qv.map(t=>({name:t,parser:Ta.parser}))),Lv=si.define({name:"html",parser:A4.configure({props:[_l.add({Element(t){let n=/^(\s*)(<\/)?/.exec(t.textAfter);return t.node.to<=t.pos+n[0].length?t.continue():t.lineIndent(t.node.from)+(n[2]?0:t.unit)},"OpenTag CloseTag SelfClosingTag"(t){return t.column(t.node.from)+t.unit},Document(t){if(t.pos+/\s*/.exec(t.textAfter)[0].length<t.node.to)return t.continue();let n=null,s;for(let l=t.node;;){let o=l.lastChild;if(!o||o.name!="Element"||o.to!=l.to)break;n=l=o}return n&&!((s=n.lastChild)&&(s.name=="CloseTag"||s.name=="SelfClosingTag"))?t.lineIndent(n.from)+t.unit:null}}),Ps.add({Element(t){let n=t.firstChild,s=t.lastChild;return!n||n.name!="OpenTag"?null:{from:n.to,to:s.name=="CloseTag"?s.from:t.to}}}),jj.add({"OpenTag CloseTag":t=>t.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),Ho=Lv.configure({wrap:Av(Uv,Gv)});function Dv(t={}){let n="",s;t.matchClosingTags===!1&&(n="noMatch"),t.selfClosingTags===!0&&(n=(n?n+" ":"")+"selfClosing"),(t.nestedLanguages&&t.nestedLanguages.length||t.nestedAttributes&&t.nestedAttributes.length)&&(s=Av((t.nestedLanguages||[]).concat(Uv),(t.nestedAttributes||[]).concat(Gv)));let l=s?Lv.configure({wrap:s,dialect:n}):n?Ho.configure({dialect:n}):Ho;return new Qs(l,[Ho.data.of({autocomplete:U4(t)}),t.autoCloseTags!==!1?L4:[],Of().support,$v().support])}const N1=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),L4=$l.inputHandler.of((t,n,s,l,o)=>{if(t.composing||t.state.readOnly||n!=s||l!=">"&&l!="/"||!Ho.isActiveAt(t.state,n,-1))return!1;let u=o(),{state:d}=u,O=d.changeByRange(m=>{var p,x,g;let b=d.doc.sliceString(m.from-1,m.to)==l,{head:S}=m,Q=ga(d).resolveInner(S,-1),k;if(b&&l==">"&&Q.name=="EndTag"){let T=Q.parent;if(((x=(p=T.parent)===null||p===void 0?void 0:p.lastChild)===null||x===void 0?void 0:x.name)!="CloseTag"&&(k=Rl(d.doc,T.parent,S))&&!N1.has(k)){let j=S+(d.doc.sliceString(S,S+1)===">"?1:0),P=`</${k}>`;return{range:m,changes:{from:S,to:j,insert:P}}}}else if(b&&l=="/"&&Q.name=="IncompleteCloseTag"){let T=Q.parent;if(Q.from==S-2&&((g=T.lastChild)===null||g===void 0?void 0:g.name)!="CloseTag"&&(k=Rl(d.doc,T,S))&&!N1.has(k)){let j=S+(d.doc.sliceString(S,S+1)===">"?1:0),P=`${k}>`;return{range:Wn.cursor(S+P.length,-1),changes:{from:S,to:j,insert:P}}}}return{range:m}});return O.changes.empty?!1:(t.dispatch([u,d.update(O,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),D4=Ts({String:Z.string,Number:Z.number,"True False":Z.bool,PropertyName:Z.propertyName,Null:Z.null,", :":Z.separator,"[ ]":Z.squareBracket,"{ }":Z.brace}),W4=Kn.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[D4],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),B4=si.define({name:"json",parser:W4.configure({props:[_l.add({Object:Sl({except:/^\s*\}/}),Array:Sl({except:/^\s*\]/})}),Ps.add({"Object Array":jc})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function H4(){return new Qs(B4)}class bc{static create(n,s,l,o,u){let d=o+(o<<8)+n+(s<<4)|0;return new bc(n,s,l,d,u,[],[])}constructor(n,s,l,o,u,d,O){this.type=n,this.value=s,this.from=l,this.hash=o,this.end=u,this.children=d,this.positions=O,this.hashProp=[[sn.contextHash,o]]}addChild(n,s){n.prop(sn.contextHash)!=this.hash&&(n=new ma(n.type,n.children,n.positions,n.length,this.hashProp)),this.children.push(n),this.positions.push(s)}toTree(n,s=this.end){let l=this.children.length-1;return l>=0&&(s=Math.max(s,this.positions[l]+this.children[l].length+this.from)),new ma(n.types[this.type],this.children,this.positions,s-this.from).balance({makeTree:(o,u,d)=>new ma(ni.none,o,u,d,this.hashProp)})}}var se;(function(t){t[t.Document=1]="Document",t[t.CodeBlock=2]="CodeBlock",t[t.FencedCode=3]="FencedCode",t[t.Blockquote=4]="Blockquote",t[t.HorizontalRule=5]="HorizontalRule",t[t.BulletList=6]="BulletList",t[t.OrderedList=7]="OrderedList",t[t.ListItem=8]="ListItem",t[t.ATXHeading1=9]="ATXHeading1",t[t.ATXHeading2=10]="ATXHeading2",t[t.ATXHeading3=11]="ATXHeading3",t[t.ATXHeading4=12]="ATXHeading4",t[t.ATXHeading5=13]="ATXHeading5",t[t.ATXHeading6=14]="ATXHeading6",t[t.SetextHeading1=15]="SetextHeading1",t[t.SetextHeading2=16]="SetextHeading2",t[t.HTMLBlock=17]="HTMLBlock",t[t.LinkReference=18]="LinkReference",t[t.Paragraph=19]="Paragraph",t[t.CommentBlock=20]="CommentBlock",t[t.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",t[t.Escape=22]="Escape",t[t.Entity=23]="Entity",t[t.HardBreak=24]="HardBreak",t[t.Emphasis=25]="Emphasis",t[t.StrongEmphasis=26]="StrongEmphasis",t[t.Link=27]="Link",t[t.Image=28]="Image",t[t.InlineCode=29]="InlineCode",t[t.HTMLTag=30]="HTMLTag",t[t.Comment=31]="Comment",t[t.ProcessingInstruction=32]="ProcessingInstruction",t[t.Autolink=33]="Autolink",t[t.HeaderMark=34]="HeaderMark",t[t.QuoteMark=35]="QuoteMark",t[t.ListMark=36]="ListMark",t[t.LinkMark=37]="LinkMark",t[t.EmphasisMark=38]="EmphasisMark",t[t.CodeMark=39]="CodeMark",t[t.CodeText=40]="CodeText",t[t.CodeInfo=41]="CodeInfo",t[t.LinkTitle=42]="LinkTitle",t[t.LinkLabel=43]="LinkLabel",t[t.URL=44]="URL"})(se||(se={}));class I4{constructor(n,s){this.start=n,this.content=s,this.marks=[],this.parsers=[]}}class F4{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let n=this.skipSpace(this.basePos);this.indent=this.countIndent(n,this.pos,this.indent),this.pos=n,this.next=n==this.text.length?-1:this.text.charCodeAt(n)}skipSpace(n){return Yr(this.text,n)}reset(n){for(this.text=n,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(n){this.basePos=n,this.baseIndent=this.countIndent(n,this.pos,this.indent)}moveBaseColumn(n){this.baseIndent=n,this.basePos=this.findColumn(n)}addMarker(n){this.markers.push(n)}countIndent(n,s=0,l=0){for(let o=s;o<n;o++)l+=this.text.charCodeAt(o)==9?4-l%4:1;return l}findColumn(n){let s=0;for(let l=0;s<this.text.length&&l<n;s++)l+=this.text.charCodeAt(s)==9?4-l%4:1;return s}scrub(){if(!this.baseIndent)return this.text;let n="";for(let s=0;s<this.basePos;s++)n+=" ";return n+this.text.slice(this.basePos)}}function z1(t,n,s){if(s.pos==s.text.length||t!=n.block&&s.indent>=n.stack[s.depth+1].value+s.baseIndent)return!0;if(s.indent>=s.baseIndent+4)return!1;let l=(t.type==se.OrderedList?dh:uh)(s,n,!1);return l>0&&(t.type!=se.BulletList||ch(s,n,!1)<0)&&s.text.charCodeAt(s.pos+l-1)==t.value}const Wv={[se.Blockquote](t,n,s){return s.next!=62?!1:(s.markers.push(Ne(se.QuoteMark,n.lineStart+s.pos,n.lineStart+s.pos+1)),s.moveBase(s.pos+(ua(s.text.charCodeAt(s.pos+1))?2:1)),t.end=n.lineStart+s.text.length,!0)},[se.ListItem](t,n,s){return s.indent<s.baseIndent+t.value&&s.next>-1?!1:(s.moveBaseColumn(s.baseIndent+t.value),!0)},[se.OrderedList]:z1,[se.BulletList]:z1,[se.Document](){return!0}};function ua(t){return t==32||t==9||t==10||t==13}function Yr(t,n=0){for(;n<t.length&&ua(t.charCodeAt(n));)n++;return n}function R1(t,n,s){for(;n>s&&ua(t.charCodeAt(n-1));)n--;return n}function Bv(t){if(t.next!=96&&t.next!=126)return-1;let n=t.pos+1;for(;n<t.text.length&&t.text.charCodeAt(n)==t.next;)n++;if(n<t.pos+3)return-1;if(t.next==96){for(let s=n;s<t.text.length;s++)if(t.text.charCodeAt(s)==96)return-1}return n}function Hv(t){return t.next!=62?-1:t.text.charCodeAt(t.pos+1)==32?2:1}function ch(t,n,s){if(t.next!=42&&t.next!=45&&t.next!=95)return-1;let l=1;for(let o=t.pos+1;o<t.text.length;o++){let u=t.text.charCodeAt(o);if(u==t.next)l++;else if(!ua(u))return-1}return s&&t.next==45&&Kv(t)>-1&&t.depth==n.stack.length&&n.parser.leafBlockParsers.indexOf(ay.SetextHeading)>-1||l<3?-1:1}function Iv(t,n){for(let s=t.stack.length-1;s>=0;s--)if(t.stack[s].type==n)return!0;return!1}function uh(t,n,s){return(t.next==45||t.next==43||t.next==42)&&(t.pos==t.text.length-1||ua(t.text.charCodeAt(t.pos+1)))&&(!s||Iv(n,se.BulletList)||t.skipSpace(t.pos+2)<t.text.length)?1:-1}function dh(t,n,s){let l=t.pos,o=t.next;for(;o>=48&&o<=57;){l++;if(l==t.text.length)return-1;o=t.text.charCodeAt(l)}return l==t.pos||l>t.pos+9||o!=46&&o!=41||l<t.text.length-1&&!ua(t.text.charCodeAt(l+1))||s&&!Iv(n,se.OrderedList)&&(t.skipSpace(l+1)==t.text.length||l>t.pos+1||t.next!=49)?-1:l+1-t.pos}function Fv(t){if(t.next!=35)return-1;let n=t.pos+1;for(;n<t.text.length&&t.text.charCodeAt(n)==35;)n++;if(n<t.text.length&&t.text.charCodeAt(n)!=32)return-1;let s=n-t.pos;return s>6?-1:s}function Kv(t){if(t.next!=45&&t.next!=61||t.indent>=t.baseIndent+4)return-1;let n=t.pos+1;for(;n<t.text.length&&t.text.charCodeAt(n)==t.next;)n++;let s=n;for(;n<t.text.length&&ua(t.text.charCodeAt(n));)n++;return n==t.text.length?s:-1}const mf=/^[ \t]*$/,Jv=/-->/,ey=/\?>/,pf=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*<!--/,Jv],[/^\s*<\?/,ey],[/^\s*<![A-Z]/,/>/],[/^\s*<!\[CDATA\[/,/\]\]>/],[/^\s*<\/?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\s|\/?>|$)/i,mf],[/^\s*(?:<\/[a-z][\w-]*\s*>|<[a-z][\w-]*(\s+[a-z:_][\w-.]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*>)\s*$/i,mf]];function ty(t,n,s){if(t.next!=60)return-1;let l=t.text.slice(t.pos);for(let o=0,u=pf.length-(s?1:0);o<u;o++)if(pf[o][0].test(l))return o;return-1}function C1(t,n){let s=t.countIndent(n,t.pos,t.indent),l=t.countIndent(t.skipSpace(n),n,s);return l>=s+5?s+1:l}function Yn(t,n,s){let l=t.length-1;l>=0&&t[l].to==n&&t[l].type==se.CodeText?t[l].to=s:t.push(Ne(se.CodeText,n,s))}const Zo={LinkReference:void 0,IndentedCode(t,n){let s=n.baseIndent+4;if(n.indent<s)return!1;let l=n.findColumn(s),o=t.lineStart+l,u=t.lineStart+n.text.length,d=[],O=[];for(Yn(d,o,u);t.nextLine()&&n.depth>=t.stack.length;)if(n.pos==n.text.length){Yn(O,t.lineStart-1,t.lineStart);for(let m of n.markers)O.push(m)}else{if(n.indent<s)break;{if(O.length){for(let p of O)p.type==se.CodeText?Yn(d,p.from,p.to):d.push(p);O=[]}Yn(d,t.lineStart-1,t.lineStart);for(let p of n.markers)d.push(p);u=t.lineStart+n.text.length;let m=t.lineStart+n.findColumn(n.baseIndent+4);m<u&&Yn(d,m,u)}}return O.length&&(O=O.filter(m=>m.type!=se.CodeText),O.length&&(n.markers=O.concat(n.markers))),t.addNode(t.buffer.writeElements(d,-o).finish(se.CodeBlock,u-o),o),!0},FencedCode(t,n){let s=Bv(n);if(s<0)return!1;let l=t.lineStart+n.pos,o=n.next,u=s-n.pos,d=n.skipSpace(s),O=R1(n.text,n.text.length,d),m=[Ne(se.CodeMark,l,l+u)];d<O&&m.push(Ne(se.CodeInfo,t.lineStart+d,t.lineStart+O));for(let p=!0,x=!0,g=!1;t.nextLine()&&n.depth>=t.stack.length;p=!1){let b=n.pos;if(n.indent-n.baseIndent<4)for(;b<n.text.length&&n.text.charCodeAt(b)==o;)b++;if(b-n.pos>=u&&n.skipSpace(b)==n.text.length){for(let S of n.markers)m.push(S);x&&g&&Yn(m,t.lineStart-1,t.lineStart),m.push(Ne(se.CodeMark,t.lineStart+n.pos,t.lineStart+b)),t.nextLine();break}else{g=!0,p||(Yn(m,t.lineStart-1,t.lineStart),x=!1);for(let k of n.markers)m.push(k);let S=t.lineStart+n.basePos,Q=t.lineStart+n.text.length;S<Q&&(Yn(m,S,Q),x=!1)}}return t.addNode(t.buffer.writeElements(m,-l).finish(se.FencedCode,t.prevLineEnd()-l),l),!0},Blockquote(t,n){let s=Hv(n);return s<0?!1:(t.startContext(se.Blockquote,n.pos),t.addNode(se.QuoteMark,t.lineStart+n.pos,t.lineStart+n.pos+1),n.moveBase(n.pos+s),null)},HorizontalRule(t,n){if(ch(n,t,!1)<0)return!1;let s=t.lineStart+n.pos;return t.nextLine(),t.addNode(se.HorizontalRule,s),!0},BulletList(t,n){let s=uh(n,t,!1);if(s<0)return!1;t.block.type!=se.BulletList&&t.startContext(se.BulletList,n.basePos,n.next);let l=C1(n,n.pos+1);return t.startContext(se.ListItem,n.basePos,l-n.baseIndent),t.addNode(se.ListMark,t.lineStart+n.pos,t.lineStart+n.pos+s),n.moveBaseColumn(l),null},OrderedList(t,n){let s=dh(n,t,!1);if(s<0)return!1;t.block.type!=se.OrderedList&&t.startContext(se.OrderedList,n.basePos,n.text.charCodeAt(n.pos+s-1));let l=C1(n,n.pos+s);return t.startContext(se.ListItem,n.basePos,l-n.baseIndent),t.addNode(se.ListMark,t.lineStart+n.pos,t.lineStart+n.pos+s),n.moveBaseColumn(l),null},ATXHeading(t,n){let s=Fv(n);if(s<0)return!1;let l=n.pos,o=t.lineStart+l,u=R1(n.text,n.text.length,l),d=u;for(;d>l&&n.text.charCodeAt(d-1)==n.next;)d--;(d==u||d==l||!ua(n.text.charCodeAt(d-1)))&&(d=n.text.length);let O=t.buffer.write(se.HeaderMark,0,s).writeElements(t.parser.parseInline(n.text.slice(l+s+1,d),o+s+1),-o);d<n.text.length&&O.write(se.HeaderMark,d-l,u-l);let m=O.finish(se.ATXHeading1-1+s,n.text.length-l);return t.nextLine(),t.addNode(m,o),!0},HTMLBlock(t,n){let s=ty(n,t,!1);if(s<0)return!1;let l=t.lineStart+n.pos,o=pf[s][1],u=[],d=o!=mf;for(;!o.test(n.text)&&t.nextLine();){if(n.depth<t.stack.length){d=!1;break}for(let p of n.markers)u.push(p)}d&&t.nextLine();let O=o==Jv?se.CommentBlock:o==ey?se.ProcessingInstructionBlock:se.HTMLBlock,m=t.prevLineEnd();return t.addNode(t.buffer.writeElements(u,-l).finish(O,m-l),l),!0},SetextHeading:void 0};class K4{constructor(n){this.stage=0,this.elts=[],this.pos=0,this.start=n.start,this.advance(n.content)}nextLine(n,s,l){if(this.stage==-1)return!1;let o=l.content+`
542
+ `+s.scrub(),u=this.advance(o);return u>-1&&u<o.length?this.complete(n,l,u):!1}finish(n,s){return(this.stage==2||this.stage==3)&&Yr(s.content,this.pos)==s.content.length?this.complete(n,s,s.content.length):!1}complete(n,s,l){return n.addLeafElement(s,Ne(se.LinkReference,this.start,this.start+l,this.elts)),!0}nextStage(n){return n?(this.pos=n.to-this.start,this.elts.push(n),this.stage++,!0):(n===!1&&(this.stage=-1),!1)}advance(n){for(;;){if(this.stage==-1)return-1;if(this.stage==0){if(!this.nextStage(dy(n,this.pos,this.start,!0)))return-1;if(n.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(Ne(se.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(cy(n,Yr(n,this.pos),this.start)))return-1}else if(this.stage==2){let s=Yr(n,this.pos),l=0;if(s>this.pos){let o=uy(n,s,this.start);if(o){let u=NO(n,o.to-this.start);u>0&&(this.nextStage(o),l=u)}}return l||(l=NO(n,this.pos)),l>0&&l<n.length?l:-1}else return NO(n,this.pos)}}}function NO(t,n){for(;n<t.length;n++){let s=t.charCodeAt(n);if(s==10)break;if(!ua(s))return-1}return n}class J4{nextLine(n,s,l){let o=s.depth<n.stack.length?-1:Kv(s),u=s.next;if(o<0)return!1;let d=Ne(se.HeaderMark,n.lineStart+s.pos,n.lineStart+o);return n.nextLine(),n.addLeafElement(l,Ne(u==61?se.SetextHeading1:se.SetextHeading2,l.start,n.prevLineEnd(),[...n.parser.parseInline(l.content,l.start),d])),!0}finish(){return!1}}const ay={LinkReference(t,n){return n.content.charCodeAt(0)==91?new K4(n):null},SetextHeading(){return new J4}},ez=[(t,n)=>Fv(n)>=0,(t,n)=>Bv(n)>=0,(t,n)=>Hv(n)>=0,(t,n)=>uh(n,t,!0)>=0,(t,n)=>dh(n,t,!0)>=0,(t,n)=>ch(n,t,!0)>=0,(t,n)=>ty(n,t,!0)>=0],tz={text:"",end:0};class az{constructor(n,s,l,o){this.parser=n,this.input=s,this.ranges=o,this.line=new F4,this.atEnd=!1,this.reusePlaceholders=new Map,this.stoppedAt=null,this.rangeI=0,this.to=o[o.length-1].to,this.lineStart=this.absoluteLineStart=this.absoluteLineEnd=o[0].from,this.block=bc.create(se.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=l.length?new lz(l,s):null,this.readLine()}get parsedPos(){return this.absoluteLineStart}advance(){if(this.stoppedAt!=null&&this.absoluteLineStart>this.stoppedAt)return this.finish();let{line:n}=this;for(;;){for(let l=0;;){let o=n.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;l<n.markers.length&&(!o||n.markers[l].from<o.end);){let u=n.markers[l++];this.addNode(u.type,u.from,u.to)}if(!o)break;this.finishContext()}if(n.pos<n.text.length)break;if(!this.nextLine())return this.finish()}if(this.fragments&&this.reuseFragment(n.basePos))return null;e:for(;;){for(let l of this.parser.blockParsers)if(l){let o=l(this,n);if(o!=!1){if(o==!0)return null;n.forward();continue e}}break}let s=new I4(this.lineStart+n.pos,n.text.slice(n.pos));for(let l of this.parser.leafBlockParsers)if(l){let o=l(this,s);o&&s.parsers.push(o)}e:for(;this.nextLine()&&n.pos!=n.text.length;){if(n.indent<n.baseIndent+4){for(let l of this.parser.endLeafBlock)if(l(this,n,s))break e}for(let l of s.parsers)if(l.nextLine(this,n,s))return null;s.content+=`
543
+ `+n.scrub();for(let l of n.markers)s.marks.push(l)}return this.finishLeaf(s),null}stopAt(n){if(this.stoppedAt!=null&&this.stoppedAt<n)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=n}reuseFragment(n){if(!this.fragments.moveTo(this.absoluteLineStart+n,this.absoluteLineStart)||!this.fragments.matches(this.block.hash))return!1;let s=this.fragments.takeNodes(this);return s?(this.absoluteLineStart+=s,this.lineStart=Oy(this.absoluteLineStart,this.ranges),this.moveRangeI(),this.absoluteLineStart<this.to?(this.lineStart++,this.absoluteLineStart++,this.readLine()):(this.atEnd=!0,this.readLine()),!0):!1}get depth(){return this.stack.length}parentType(n=this.depth-1){return this.parser.nodeSet.types[this.stack[n].type]}nextLine(){return this.lineStart+=this.line.text.length,this.absoluteLineEnd>=this.to?(this.absoluteLineStart=this.absoluteLineEnd,this.atEnd=!0,this.readLine(),!1):(this.lineStart++,this.absoluteLineStart=this.absoluteLineEnd+1,this.moveRangeI(),this.readLine(),!0)}peekLine(){return this.scanLine(this.absoluteLineEnd+1).text}moveRangeI(){for(;this.rangeI<this.ranges.length-1&&this.absoluteLineStart>=this.ranges[this.rangeI].to;)this.rangeI++,this.absoluteLineStart=Math.max(this.absoluteLineStart,this.ranges[this.rangeI].from)}scanLine(n){let s=tz;if(s.end=n,n>=this.to)s.text="";else if(s.text=this.lineChunkAt(n),s.end+=s.text.length,this.ranges.length>1){let l=this.absoluteLineStart,o=this.rangeI;for(;this.ranges[o].to<s.end;){o++;let u=this.ranges[o].from,d=this.lineChunkAt(u);s.end=u+d.length,s.text=s.text.slice(0,this.ranges[o-1].to-l)+d,l=s.end-s.text.length}}return s}readLine(){let{line:n}=this,{text:s,end:l}=this.scanLine(this.absoluteLineStart);for(this.absoluteLineEnd=l,n.reset(s);n.depth<this.stack.length;n.depth++){let o=this.stack[n.depth],u=this.parser.skipContextMarkup[o.type];if(!u)throw new Error("Unhandled block context "+se[o.type]);let d=this.line.markers.length;if(!u(o,this,n)){this.line.markers.length>d&&(o.end=this.line.markers[this.line.markers.length-1].to),n.forward();break}n.forward()}}lineChunkAt(n){let s=this.input.chunk(n),l;if(this.input.lineChunks)l=s==`
534
544
  `?"":s;else{let o=s.indexOf(`
535
- `);l=o<0?s:s.slice(0,o)}return n+l.length>this.to?l.slice(0,this.to-n):l}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(n,s,l=0){this.block=bc.create(n,l,this.lineStart+s,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(n,s,l=0){this.startContext(this.parser.getNodeType(n),s,l)}addNode(n,s,l){typeof n=="number"&&(n=new ma(this.parser.nodeSet.types[n],Xl,Xl,(l??this.prevLineEnd())-s)),this.block.addChild(n,s-this.block.from)}addElement(n){this.block.addChild(n.toTree(this.parser.nodeSet),n.from-this.block.from)}addLeafElement(n,s){this.addNode(this.buffer.writeElements(gf(s.children,n.marks),-s.from).finish(s.type,s.to-s.from),s.from)}finishContext(){let n=this.stack.pop(),s=this.stack[this.stack.length-1];s.addChild(n.toTree(this.parser.nodeSet),n.from-s.from),this.block=s}finish(){for(;this.stack.length>1;)this.finishContext();return this.addGaps(this.block.toTree(this.parser.nodeSet,this.lineStart))}addGaps(n){return this.ranges.length>1?ny(this.ranges,0,n.topNode,this.ranges[0].from,this.reusePlaceholders):n}finishLeaf(n){for(let l of n.parsers)if(l.finish(this,n))return;let s=gf(this.parser.parseInline(n.content,n.start),n.marks);this.addNode(this.buffer.writeElements(s,-n.start).finish(se.Paragraph,n.content.length),n.start)}elt(n,s,l,o){return typeof n=="string"?Ne(this.parser.getNodeType(n),s,l,o):new ry(n,s)}get buffer(){return new ly(this.parser.nodeSet)}}function ny(t,n,s,l,o){let u=t[n].to,d=[],O=[],m=s.from+l;function p(x,g){for(;g?x>=u:x>u;){let b=t[n+1].from-u;l+=b,x+=b,n++,u=t[n].to}}for(let x=s.firstChild;x;x=x.nextSibling){p(x.from+l,!0);let g=x.from+l,b,S=o.get(x.tree);S?b=S:x.to+l>u?(b=ny(t,n,x,l,o),p(x.to+l,!1)):b=x.toTree(),d.push(b),O.push(g-m)}return p(s.to+l,!1),new ma(s.type,d,O,s.to+l-m,s.tree?s.tree.propValues:void 0)}class Mc extends y0{constructor(n,s,l,o,u,d,O,m,p){super(),this.nodeSet=n,this.blockParsers=s,this.leafBlockParsers=l,this.blockNames=o,this.endLeafBlock=u,this.skipContextMarkup=d,this.inlineParsers=O,this.inlineNames=m,this.wrappers=p,this.nodeTypes=Object.create(null);for(let x of n.types)this.nodeTypes[x.name]=x.id}createParse(n,s,l){let o=new K4(this,n,s,l);for(let u of this.wrappers)o=u(o,n,s,l);return o}configure(n){let s=xf(n);if(!s)return this;let{nodeSet:l,skipContextMarkup:o}=this,u=this.blockParsers.slice(),d=this.leafBlockParsers.slice(),O=this.blockNames.slice(),m=this.inlineParsers.slice(),p=this.inlineNames.slice(),x=this.endLeafBlock.slice(),g=this.wrappers;if(qr(s.defineNodes)){o=Object.assign({},o);let b=l.types.slice(),S;for(let Q of s.defineNodes){let{name:k,block:T,composite:j,style:P}=typeof Q=="string"?{name:Q}:Q;if(b.some(U=>U.name==k))continue;j&&(o[b.length]=(U,C,X)=>j(C,X,U.value));let N=b.length,A=j?["Block","BlockContext"]:T?N>=se.ATXHeading1&&N<=se.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;b.push(ni.define({id:N,name:k,props:A&&[[sn.group,A]]})),P&&(S||(S={}),Array.isArray(P)||P instanceof wj?S[k]=P:Object.assign(S,P))}l=new wf(b),S&&(l=l.extend(Ts(S)))}if(qr(s.props)&&(l=l.extend(...s.props)),qr(s.remove))for(let b of s.remove){let S=this.blockNames.indexOf(b),Q=this.inlineNames.indexOf(b);S>-1&&(u[S]=d[S]=void 0),Q>-1&&(m[Q]=void 0)}if(qr(s.parseBlock))for(let b of s.parseBlock){let S=O.indexOf(b.name);if(S>-1)u[S]=b.parse,d[S]=b.leaf;else{let Q=b.before?Ao(O,b.before):b.after?Ao(O,b.after)+1:O.length-1;u.splice(Q,0,b.parse),d.splice(Q,0,b.leaf),O.splice(Q,0,b.name)}b.endLeaf&&x.push(b.endLeaf)}if(qr(s.parseInline))for(let b of s.parseInline){let S=p.indexOf(b.name);if(S>-1)m[S]=b.parse;else{let Q=b.before?Ao(p,b.before):b.after?Ao(p,b.after)+1:p.length-1;m.splice(Q,0,b.parse),p.splice(Q,0,b.name)}}return s.wrap&&(g=g.concat(s.wrap)),new Mc(l,u,d,O,x,o,m,p,g)}getNodeType(n){let s=this.nodeTypes[n];if(s==null)throw new RangeError(`Unknown node type '${n}'`);return s}parseInline(n,s){let l=new Oh(this,n,s);e:for(let o=s;o<l.end;){let u=l.char(o);for(let d of this.inlineParsers)if(d){let O=d(l,u,o);if(O>=0){o=O;continue e}}o++}return l.resolveMarkers(0)}}function qr(t){return t!=null&&t.length>0}function xf(t){if(!Array.isArray(t))return t;if(t.length==0)return null;let n=xf(t[0]);if(t.length==1)return n;let s=xf(t.slice(1));if(!s||!n)return n||s;let l=(d,O)=>(d||Xl).concat(O||Xl),o=n.wrap,u=s.wrap;return{props:l(n.props,s.props),defineNodes:l(n.defineNodes,s.defineNodes),parseBlock:l(n.parseBlock,s.parseBlock),parseInline:l(n.parseInline,s.parseInline),remove:l(n.remove,s.remove),wrap:o?u?(d,O,m,p)=>o(u(d,O,m,p),O,m,p):o:u}}function Ao(t,n){let s=t.indexOf(n);if(s<0)throw new RangeError(`Position specified relative to unknown parser ${n}`);return s}let sy=[ni.none];for(let t=1,n;n=se[t];t++)sy[t]=ni.define({id:t,name:n,props:t>=se.Escape?[]:[[sn.group,t in Wv?["Block","BlockContext"]:["Block","LeafBlock"]]],top:n=="Document"});const Xl=[];class ly{constructor(n){this.nodeSet=n,this.content=[],this.nodes=[]}write(n,s,l,o=0){return this.content.push(n,s,l,4+o*4),this}writeElements(n,s=0){for(let l of n)l.writeTo(this,s);return this}finish(n,s){return ma.build({buffer:this.content,nodeSet:this.nodeSet,reused:this.nodes,topID:n,length:s})}}let ei=class{constructor(n,s,l,o=Xl){this.type=n,this.from=s,this.to=l,this.children=o}writeTo(n,s){let l=n.content.length;n.writeElements(this.children,s),n.content.push(this.type,this.from+s,this.to+s,n.content.length+4-l)}toTree(n){return new ly(n).writeElements(this.children,-this.from).finish(this.type,this.to-this.from)}};class ry{constructor(n,s){this.tree=n,this.from=s}get to(){return this.from+this.tree.length}get type(){return this.tree.type.id}get children(){return Xl}writeTo(n,s){n.nodes.push(this.tree),n.content.push(n.nodes.length-1,this.from+s,this.to+s,-1)}toTree(){return this.tree}}function Ne(t,n,s,l){return new ei(t,n,s,l)}const iy={resolve:"Emphasis",mark:"EmphasisMark"},oy={resolve:"Emphasis",mark:"EmphasisMark"},ys={},vc={};class Dt{constructor(n,s,l,o){this.type=n,this.from=s,this.to=l,this.side=o}}const X1="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";let ti=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\u2010-\u2027]/;try{ti=new RegExp("[\\p{S}|\\p{P}]","u")}catch{}const zO={Escape(t,n,s){if(n!=92||s==t.end-1)return-1;let l=t.char(s+1);for(let o=0;o<X1.length;o++)if(X1.charCodeAt(o)==l)return t.append(Ne(se.Escape,s,s+2));return-1},Entity(t,n,s){if(n!=38)return-1;let l=/^(?:#\d+|#x[a-f\d]+|\w+);/i.exec(t.slice(s+1,s+31));return l?t.append(Ne(se.Entity,s,s+1+l[0].length)):-1},InlineCode(t,n,s){if(n!=96||s&&t.char(s-1)==96)return-1;let l=s+1;for(;l<t.end&&t.char(l)==96;)l++;let o=l-s,u=0;for(;l<t.end;l++)if(t.char(l)==96){if(u++,u==o&&t.char(l+1)!=96)return t.append(Ne(se.InlineCode,s,l+1,[Ne(se.CodeMark,s,s+o),Ne(se.CodeMark,l+1-o,l+1)]))}else u=0;return-1},HTMLTag(t,n,s){if(n!=60||s==t.end-1)return-1;let l=t.slice(s+1,t.end),o=/^(?:[a-z][-\w+.]+:[^\s>]+|[a-z\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*)>/i.exec(l);if(o)return t.append(Ne(se.Autolink,s,s+1+o[0].length,[Ne(se.LinkMark,s,s+1),Ne(se.URL,s+1,s+o[0].length),Ne(se.LinkMark,s+o[0].length,s+1+o[0].length)]));let u=/^!--[^>](?:-[^-]|[^-])*?-->/i.exec(l);if(u)return t.append(Ne(se.Comment,s,s+1+u[0].length));let d=/^\?[^]*?\?>/.exec(l);if(d)return t.append(Ne(se.ProcessingInstruction,s,s+1+d[0].length));let O=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(l);return O?t.append(Ne(se.HTMLTag,s,s+1+O[0].length)):-1},Emphasis(t,n,s){if(n!=95&&n!=42)return-1;let l=s+1;for(;t.char(l)==n;)l++;let o=t.slice(s-1,s),u=t.slice(l,l+1),d=ti.test(o),O=ti.test(u),m=/\s|^$/.test(o),p=/\s|^$/.test(u),x=!p&&(!O||m||d),g=!m&&(!d||p||O),b=x&&(n==42||!g||d),S=g&&(n==42||!x||O);return t.append(new Dt(n==95?iy:oy,s,l,(b?1:0)|(S?2:0)))},HardBreak(t,n,s){if(n==92&&t.char(s+1)==10)return t.append(Ne(se.HardBreak,s,s+2));if(n==32){let l=s+1;for(;t.char(l)==32;)l++;if(t.char(l)==10&&l>=s+2)return t.append(Ne(se.HardBreak,s,l+1))}return-1},Link(t,n,s){return n==91?t.append(new Dt(ys,s,s+1,1)):-1},Image(t,n,s){return n==33&&t.char(s+1)==91?t.append(new Dt(vc,s,s+2,1)):-1},LinkEnd(t,n,s){if(n!=93)return-1;for(let l=t.parts.length-1;l>=0;l--){let o=t.parts[l];if(o instanceof Dt&&(o.type==ys||o.type==vc)){if(!o.side||t.skipSpace(o.to)==s&&!/[(\[]/.test(t.slice(s+1,s+2)))return t.parts[l]=null,-1;let u=t.takeContent(l),d=t.parts[l]=J4(t,u,o.type==ys?se.Link:se.Image,o.from,s+1);if(o.type==ys)for(let O=0;O<l;O++){let m=t.parts[O];m instanceof Dt&&m.type==ys&&(m.side=0)}return d.to}}return-1}};function J4(t,n,s,l,o){let{text:u}=t,d=t.char(o),O=o;if(n.unshift(Ne(se.LinkMark,l,l+(s==se.Image?2:1))),n.push(Ne(se.LinkMark,o-1,o)),d==40){let m=t.skipSpace(o+1),p=cy(u,m-t.offset,t.offset),x;p&&(m=t.skipSpace(p.to),m!=p.to&&(x=uy(u,m-t.offset,t.offset),x&&(m=t.skipSpace(x.to)))),t.char(m)==41&&(n.push(Ne(se.LinkMark,o,o+1)),O=m+1,p&&n.push(p),x&&n.push(x),n.push(Ne(se.LinkMark,m,O)))}else if(d==91){let m=dy(u,o-t.offset,t.offset,!1);m&&(n.push(m),O=m.to)}return Ne(s,l,O,n)}function cy(t,n,s){if(t.charCodeAt(n)==60){for(let o=n+1;o<t.length;o++){let u=t.charCodeAt(o);if(u==62)return Ne(se.URL,n+s,o+1+s);if(u==60||u==10)return!1}return null}else{let o=0,u=n;for(let d=!1;u<t.length;u++){let O=t.charCodeAt(u);if(ua(O))break;if(d)d=!1;else if(O==40)o++;else if(O==41){if(!o)break;o--}else O==92&&(d=!0)}return u>n?Ne(se.URL,n+s,u+s):u==t.length?null:!1}}function uy(t,n,s){let l=t.charCodeAt(n);if(l!=39&&l!=34&&l!=40)return!1;let o=l==40?41:l;for(let u=n+1,d=!1;u<t.length;u++){let O=t.charCodeAt(u);if(d)d=!1;else{if(O==o)return Ne(se.LinkTitle,n+s,u+1+s);O==92&&(d=!0)}}return null}function dy(t,n,s,l){for(let o=!1,u=n+1,d=Math.min(t.length,u+999);u<d;u++){let O=t.charCodeAt(u);if(o)o=!1;else{if(O==93)return l?!1:Ne(se.LinkLabel,n+s,u+1+s);if(l&&!ua(O)&&(l=!1),O==91)return!1;O==92&&(o=!0)}}return null}class Oh{constructor(n,s,l){this.parser=n,this.text=s,this.offset=l,this.parts=[]}char(n){return n>=this.end?-1:this.text.charCodeAt(n-this.offset)}get end(){return this.offset+this.text.length}slice(n,s){return this.text.slice(n-this.offset,s-this.offset)}append(n){return this.parts.push(n),n.to}addDelimiter(n,s,l,o,u){return this.append(new Dt(n,s,l,(o?1:0)|(u?2:0)))}get hasOpenLink(){for(let n=this.parts.length-1;n>=0;n--){let s=this.parts[n];if(s instanceof Dt&&(s.type==ys||s.type==vc))return!0}return!1}addElement(n){return this.append(n)}resolveMarkers(n){for(let l=n;l<this.parts.length;l++){let o=this.parts[l];if(!(o instanceof Dt&&o.type.resolve&&o.side&2))continue;let u=o.type==iy||o.type==oy,d=o.to-o.from,O,m=l-1;for(;m>=n;m--){let k=this.parts[m];if(k instanceof Dt&&k.side&1&&k.type==o.type&&!(u&&(o.side&1||k.side&2)&&(k.to-k.from+d)%3==0&&((k.to-k.from)%3||d%3))){O=k;break}}if(!O)continue;let p=o.type.resolve,x=[],g=O.from,b=o.to;if(u){let k=Math.min(2,O.to-O.from,d);g=O.to-k,b=o.from+k,p=k==1?"Emphasis":"StrongEmphasis"}O.type.mark&&x.push(this.elt(O.type.mark,g,O.to));for(let k=m+1;k<l;k++)this.parts[k]instanceof ei&&x.push(this.parts[k]),this.parts[k]=null;o.type.mark&&x.push(this.elt(o.type.mark,o.from,b));let S=this.elt(p,g,b,x);this.parts[m]=u&&O.from!=g?new Dt(O.type,O.from,g,O.side):null,(this.parts[l]=u&&o.to!=b?new Dt(o.type,b,o.to,o.side):null)?this.parts.splice(l,0,S):this.parts[l]=S}let s=[];for(let l=n;l<this.parts.length;l++){let o=this.parts[l];o instanceof ei&&s.push(o)}return s}findOpeningDelimiter(n){for(let s=this.parts.length-1;s>=0;s--){let l=this.parts[s];if(l instanceof Dt&&l.type==n&&l.side&1)return s}return null}takeContent(n){let s=this.resolveMarkers(n);return this.parts.length=n,s}getDelimiterAt(n){let s=this.parts[n];return s instanceof Dt?s:null}skipSpace(n){return Yr(this.text,n-this.offset)+this.offset}elt(n,s,l,o){return typeof n=="string"?Ne(this.parser.getNodeType(n),s,l,o):new ry(n,s)}}Oh.linkStart=ys;Oh.imageStart=vc;function gf(t,n){if(!n.length)return t;if(!t.length)return n;let s=t.slice(),l=0;for(let o of n){for(;l<s.length&&s[l].to<o.to;)l++;if(l<s.length&&s[l].from<o.from){let u=s[l];u instanceof ei&&(s[l]=new ei(u.type,u.from,u.to,gf(u.children,[o])))}else s.splice(l++,0,o)}return s}const ez=[se.CodeBlock,se.ListItem,se.OrderedList,se.BulletList];class tz{constructor(n,s){this.fragments=n,this.input=s,this.i=0,this.fragment=null,this.fragmentEnd=-1,this.cursor=null,n.length&&(this.fragment=n[this.i++])}nextFragment(){this.fragment=this.i<this.fragments.length?this.fragments[this.i++]:null,this.cursor=null,this.fragmentEnd=-1}moveTo(n,s){for(;this.fragment&&this.fragment.to<=n;)this.nextFragment();if(!this.fragment||this.fragment.from>(n?n-1:0))return!1;if(this.fragmentEnd<0){let u=this.fragment.to;for(;u>0&&this.input.read(u-1,u)!=`
536
- `;)u--;this.fragmentEnd=u?u-1:0}let l=this.cursor;l||(l=this.cursor=this.fragment.tree.cursor(),l.firstChild());let o=n+this.fragment.offset;for(;l.to<=o;)if(!l.parent())return!1;for(;;){if(l.from>=o)return this.fragment.from<=s;if(!l.childAfter(o))return!1}}matches(n){let s=this.cursor.tree;return s&&s.prop(sn.contextHash)==n}takeNodes(n){let s=this.cursor,l=this.fragment.offset,o=this.fragmentEnd-(this.fragment.openEnd?1:0),u=n.absoluteLineStart,d=u,O=n.block.children.length,m=d,p=O;for(;;){if(s.to-l>o){if(s.type.isAnonymous&&s.firstChild())continue;break}let x=Oy(s.from-l,n.ranges);if(s.to-l<=n.ranges[n.rangeI].to)n.addNode(s.tree,x);else{let g=new ma(n.parser.nodeSet.types[se.Paragraph],[],[],0,n.block.hashProp);n.reusePlaceholders.set(g,s.tree),n.addNode(g,x)}if(s.type.is("Block")&&(ez.indexOf(s.type.id)<0?(d=s.to-l,O=n.block.children.length):(d=m,O=p),m=s.to-l,p=n.block.children.length),!s.nextSibling())break}for(;n.block.children.length>O;)n.block.children.pop(),n.block.positions.pop();return d-u}}function Oy(t,n){let s=t;for(let l=1;l<n.length;l++){let o=n[l-1].to,u=n[l].from;o<t&&(s-=u-o)}return s}const az=Ts({"Blockquote/...":Z.quote,HorizontalRule:Z.contentSeparator,"ATXHeading1/... SetextHeading1/...":Z.heading1,"ATXHeading2/... SetextHeading2/...":Z.heading2,"ATXHeading3/...":Z.heading3,"ATXHeading4/...":Z.heading4,"ATXHeading5/...":Z.heading5,"ATXHeading6/...":Z.heading6,"Comment CommentBlock":Z.comment,Escape:Z.escape,Entity:Z.character,"Emphasis/...":Z.emphasis,"StrongEmphasis/...":Z.strong,"Link/... Image/...":Z.link,"OrderedList/... BulletList/...":Z.list,"BlockQuote/...":Z.quote,"InlineCode CodeText":Z.monospace,"URL Autolink":Z.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":Z.processingInstruction,"CodeInfo LinkLabel":Z.labelName,LinkTitle:Z.string,Paragraph:Z.content}),nz=new Mc(new wf(sy).extend(az),Object.keys(Zo).map(t=>Zo[t]),Object.keys(Zo).map(t=>ay[t]),Object.keys(Zo),I4,Wv,Object.keys(zO).map(t=>zO[t]),Object.keys(zO),[]);function sz(t,n,s){let l=[];for(let o=t.firstChild,u=n;;o=o.nextSibling){let d=o?o.from:s;if(d>u&&l.push({from:u,to:d}),!o)break;u=o.to}return l}function lz(t){let{codeParser:n,htmlParser:s}=t;return{wrap:k0((o,u)=>{let d=o.type.id;if(n&&(d==se.CodeBlock||d==se.FencedCode)){let O="";if(d==se.FencedCode){let p=o.node.getChild(se.CodeInfo);p&&(O=u.read(p.from,p.to))}let m=n(O);if(m)return{parser:m,overlay:p=>p.type.id==se.CodeText,bracketed:d==se.FencedCode}}else if(s&&(d==se.HTMLBlock||d==se.HTMLTag||d==se.CommentBlock))return{parser:s,overlay:sz(o.node,o.from,o.to)};return null})}}const rz={resolve:"Strikethrough",mark:"StrikethroughMark"},iz={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":Z.strikethrough}},{name:"StrikethroughMark",style:Z.processingInstruction}],parseInline:[{name:"Strikethrough",parse(t,n,s){if(n!=126||t.char(s+1)!=126||t.char(s+2)==126)return-1;let l=t.slice(s-1,s),o=t.slice(s+2,s+3),u=/\s|^$/.test(l),d=/\s|^$/.test(o),O=ti.test(l),m=ti.test(o);return t.addDelimiter(rz,s,s+2,!d&&(!m||u||O),!u&&(!O||d||m))},after:"Emphasis"}]};function Vr(t,n,s=0,l,o=0){let u=0,d=!0,O=-1,m=-1,p=!1,x=()=>{l.push(t.elt("TableCell",o+O,o+m,t.parser.parseInline(n.slice(O,m),o+O)))};for(let g=s;g<n.length;g++){let b=n.charCodeAt(g);b==124&&!p?((!d||O>-1)&&u++,d=!1,l&&(O>-1&&x(),l.push(t.elt("TableDelimiter",g+o,g+o+1))),O=m=-1):(p||b!=32&&b!=9)&&(O<0&&(O=g),m=g+1),p=!p&&b==92}return O>-1&&(u++,l&&x()),u}function _1(t,n){for(let s=n;s<t.length;s++){let l=t.charCodeAt(s);if(l==124)return!0;l==92&&s++}return!1}const fy=/^\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/;class Z1{constructor(){this.rows=null}nextLine(n,s,l){if(this.rows==null){this.rows=!1;let o;if((s.next==45||s.next==58||s.next==124)&&fy.test(o=s.text.slice(s.pos))){let u=[];Vr(n,l.content,0,u,l.start)==Vr(n,o,s.pos)&&(this.rows=[n.elt("TableHeader",l.start,l.start+l.content.length,u),n.elt("TableDelimiter",n.lineStart+s.pos,n.lineStart+s.text.length)])}}else if(this.rows){let o=[];Vr(n,s.text,s.pos,o,n.lineStart),this.rows.push(n.elt("TableRow",n.lineStart+s.pos,n.lineStart+s.text.length,o))}return!1}finish(n,s){return this.rows?(n.addLeafElement(s,n.elt("Table",s.start,s.start+s.content.length,this.rows)),!0):!1}}const oz={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":Z.heading}},"TableRow",{name:"TableCell",style:Z.content},{name:"TableDelimiter",style:Z.processingInstruction}],parseBlock:[{name:"Table",leaf(t,n){return _1(n.content,0)?new Z1:null},endLeaf(t,n,s){if(s.parsers.some(o=>o instanceof Z1)||!_1(n.text,n.basePos))return!1;let l=t.peekLine();return fy.test(l)&&Vr(t,n.text,n.basePos)==Vr(t,l,n.basePos)},before:"SetextHeading"}]};class cz{nextLine(){return!1}finish(n,s){return n.addLeafElement(s,n.elt("Task",s.start,s.start+s.content.length,[n.elt("TaskMarker",s.start,s.start+3),...n.parser.parseInline(s.content.slice(3),s.start+3)])),!0}}const uz={defineNodes:[{name:"Task",block:!0,style:Z.list},{name:"TaskMarker",style:Z.atom}],parseBlock:[{name:"TaskList",leaf(t,n){return/^\[[ xX]\][ \t]/.test(n.content)&&t.parentType().name=="ListItem"?new cz:null},after:"SetextHeading"}]},A1=/(www\.)|(https?:\/\/)|([\w.+-]{1,100}@)|(mailto:|xmpp:)/gy,E1=/[\w-]+(\.[\w-]+)+(\/[^\s<]*)?/gy,dz=/[\w-]+\.[\w-]+($|\/)/,q1=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,M1=/\/[a-zA-Z\d@.]+/gy;function Y1(t,n,s,l){let o=0;for(let u=n;u<s;u++)t[u]==l&&o++;return o}function Oz(t,n){E1.lastIndex=n;let s=E1.exec(t);if(!s||dz.exec(s[0])[0].indexOf("_")>-1)return-1;let l=n+s[0].length;for(;;){let o=t[l-1],u;if(/[?!.,:*_~]/.test(o)||o==")"&&Y1(t,n,l,")")>Y1(t,n,l,"("))l--;else if(o==";"&&(u=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(t.slice(n,l))))l=n+u.index;else break}return l}function V1(t,n){q1.lastIndex=n;let s=q1.exec(t);if(!s)return-1;let l=s[0][s[0].length-1];return l=="_"||l=="-"?-1:n+s[0].length-(l=="."?1:0)}const fz={parseInline:[{name:"Autolink",parse(t,n,s){let l=s-t.offset;if(l&&/\w/.test(t.text[l-1]))return-1;A1.lastIndex=l;let o=A1.exec(t.text),u=-1;if(!o)return-1;if(o[1]||o[2]){if(u=Oz(t.text,l+o[0].length),u>-1&&t.hasOpenLink){let d=/([^\[\]]|\[[^\]]*\])*/.exec(t.text.slice(l,u));u=l+d[0].length}}else o[3]?u=V1(t.text,l):(u=V1(t.text,l+o[0].length),u>-1&&o[0]=="xmpp:"&&(M1.lastIndex=u,o=M1.exec(t.text),o&&(u=o.index+o[0].length)));return u<0?-1:(t.addElement(t.elt("URL",s,u+t.offset)),u+t.offset)}}]},hz=[oz,uz,iz,fz];function hy(t,n,s){return(l,o,u)=>{if(o!=t||l.char(u+1)==t)return-1;let d=[l.elt(s,u,u+1)];for(let O=u+1;O<l.end;O++){let m=l.char(O);if(m==t)return l.addElement(l.elt(n,u,O+1,d.concat(l.elt(s,O,O+1))));if(m==92&&d.push(l.elt("Escape",O,O+++2)),ua(m))break}return-1}}const mz={defineNodes:[{name:"Superscript",style:Z.special(Z.content)},{name:"SuperscriptMark",style:Z.processingInstruction}],parseInline:[{name:"Superscript",parse:hy(94,"Superscript","SuperscriptMark")}]},pz={defineNodes:[{name:"Subscript",style:Z.special(Z.content)},{name:"SubscriptMark",style:Z.processingInstruction}],parseInline:[{name:"Subscript",parse:hy(126,"Subscript","SubscriptMark")}]},xz={defineNodes:[{name:"Emoji",style:Z.character}],parseInline:[{name:"Emoji",parse(t,n,s){let l;return n!=58||!(l=/^[a-zA-Z_0-9]+:/.exec(t.slice(s+1,t.end)))?-1:t.addElement(t.elt("Emoji",s,s+1+l[0].length))}}]},my=w0({commentTokens:{block:{open:"<!--",close:"-->"}}}),py=new sn,xy=nz.configure({props:[Ps.add(t=>!t.is("Block")||t.is("Document")||bf(t)!=null||gz(t)?void 0:(n,s)=>({from:s.doc.lineAt(n.from).to,to:n.to})),py.add(bf),_l.add({Document:()=>null}),zj.add({Document:my})]});function bf(t){let n=/^(?:ATX|Setext)Heading(\d)$/.exec(t.name);return n?+n[1]:void 0}function gz(t){return t.name=="OrderedList"||t.name=="BulletList"}function bz(t,n){let s=t;for(;;){let l=s.nextSibling,o;if(!l||(o=bf(l.type))!=null&&o<=n)break;s=l}return s.to}const vz=$j.of((t,n,s)=>{for(let l=ga(t).resolveInner(s,-1);l&&!(l.from<n);l=l.parent){let o=l.type.prop(py);if(o==null)continue;let u=bz(l,o);if(u>s)return{from:s,to:u}}return null});function fh(t){return new Tj(my,t,[],"markdown")}const yz=fh(xy),Sz=xy.configure([hz,pz,mz,xz,{props:[Ps.add({Table:(t,n)=>({from:n.doc.lineAt(t.from).to,to:t.to})})]}]),yc=fh(Sz);function Qz(t,n){return s=>{if(s&&t){let l=null;if(s=/\S*/.exec(s)[0],typeof t=="function"?l=t(s):l=yg.matchLanguageName(t,s,!0),l instanceof yg)return l.support?l.support.language.parser:Rj.getSkippingParser(l.load());if(l)return l.parser}return n?n.parser:null}}let RO=class{constructor(n,s,l,o,u,d,O){this.node=n,this.from=s,this.to=l,this.spaceBefore=o,this.spaceAfter=u,this.type=d,this.item=O}blank(n,s=!0){let l=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(n!=null){for(;l.length<n;)l+=" ";return l}else{for(let o=this.to-this.from-l.length-this.spaceAfter.length;o>0;o--)l+=" ";return l+(s?this.spaceAfter:"")}}marker(n,s){let l=this.node.name=="OrderedList"?String(+by(this.item,n)[2]+s):"";return this.spaceBefore+l+this.type+this.spaceAfter}};function gy(t,n){let s=[],l=[];for(let o=t;o;o=o.parent){if(o.name=="FencedCode")return l;(o.name=="ListItem"||o.name=="Blockquote")&&s.push(o)}for(let o=s.length-1;o>=0;o--){let u=s[o],d,O=n.lineAt(u.from),m=u.from-O.from;if(u.name=="Blockquote"&&(d=/^ *>( ?)/.exec(O.text.slice(m))))l.push(new RO(u,m,m+d[0].length,"",d[1],">",null));else if(u.name=="ListItem"&&u.parent.name=="OrderedList"&&(d=/^( *)\d+([.)])( *)/.exec(O.text.slice(m)))){let p=d[3],x=d[0].length;p.length>=4&&(p=p.slice(0,p.length-4),x-=4),l.push(new RO(u.parent,m,m+x,d[1],p,d[2],u))}else if(u.name=="ListItem"&&u.parent.name=="BulletList"&&(d=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(O.text.slice(m)))){let p=d[4],x=d[0].length;p.length>4&&(p=p.slice(0,p.length-4),x-=4);let g=d[2];d[3]&&(g+=d[3].replace(/[xX]/," ")),l.push(new RO(u.parent,m,m+x,d[1],p,g,u))}}return l}function by(t,n){return/^(\s*)(\d+)(?=[.)])/.exec(n.sliceString(t.from,t.from+10))}function CO(t,n,s,l=0){for(let o=-1,u=t;;){if(u.name=="ListItem"){let O=by(u,n),m=+O[2];if(o>=0){if(m!=o+1)return;s.push({from:u.from+O[1].length,to:u.from+O[0].length,insert:String(o+2+l)})}o=m}let d=u.nextSibling;if(!d)break;u=d}}function hh(t,n){let s=/^[ \t]*/.exec(t)[0].length;if(!s||n.facet(Pj)!=" ")return t;let l=Lr(t,4,s),o="";for(let u=l;u>0;)u>=4?(o+=" ",u-=4):(o+=" ",u--);return o+t.slice(s)}const jz=(t={})=>({state:n,dispatch:s})=>{let l=ga(n),{doc:o}=n,u=null,d=n.changeByRange(O=>{if(!O.empty||!yc.isActiveAt(n,O.from,-1)&&!yc.isActiveAt(n,O.from,1))return u={range:O};let m=O.from,p=o.lineAt(m),x=gy(l.resolveInner(m,-1),o);for(;x.length&&x[x.length-1].from>m-p.from;)x.pop();if(!x.length)return u={range:O};let g=x[x.length-1];if(g.to-g.spaceAfter.length>m-p.from)return u={range:O};let b=m>=g.to-g.spaceAfter.length&&!/\S/.test(p.text.slice(g.to));if(g.item&&b){let j=g.node.firstChild,P=g.node.getChild("ListItem","ListItem");if(j.to>=m||P&&P.to<m||p.from>0&&!/[^\s>]/.test(o.lineAt(p.from-1).text)||t.nonTightLists===!1){let N=x.length>1?x[x.length-2]:null,A,U="";N&&N.item?(A=p.from+N.from,U=N.marker(o,1)):A=p.from+(N?N.to:0);let C=[{from:A,to:m,insert:U}];return g.node.name=="OrderedList"&&CO(g.item,o,C,-2),N&&N.node.name=="OrderedList"&&CO(N.item,o,C),{range:Wn.cursor(A+U.length),changes:C}}else{let N=G1(x,n,p);return{range:Wn.cursor(m+N.length+1),changes:{from:p.from,insert:N+n.lineBreak}}}}if(g.node.name=="Blockquote"&&b&&p.from){let j=o.lineAt(p.from-1),P=/>\s*$/.exec(j.text);if(P&&P.index==g.from){let N=n.changes([{from:j.from+P.index,to:j.to},{from:p.from+g.from,to:p.to}]);return{range:O.map(N),changes:N}}}let S=[];g.node.name=="OrderedList"&&CO(g.item,o,S);let Q=g.item&&g.item.from<p.from,k="";if(!Q||/^[\s\d.)\-+*>]*/.exec(p.text)[0].length>=g.to)for(let j=0,P=x.length-1;j<=P;j++)k+=j==P&&!Q?x[j].marker(o,1):x[j].blank(j<P?Lr(p.text,4,x[j+1].from)-k.length:null);let T=m;for(;T>p.from&&/\s/.test(p.text.charAt(T-p.from-1));)T--;return k=hh(k,n),kz(g.node,n.doc)&&(k=G1(x,n,p)+n.lineBreak+k),S.push({from:T,to:m,insert:n.lineBreak+k}),{range:Wn.cursor(T+k.length+1),changes:S}});return u?!1:(s(n.update(d,{scrollIntoView:!0,userEvent:"input"})),!0)},wz=jz();function U1(t){return t.name=="QuoteMark"||t.name=="ListMark"}function kz(t,n){if(t.name!="OrderedList"&&t.name!="BulletList")return!1;let s=t.firstChild,l=t.getChild("ListItem","ListItem");if(!l)return!1;let o=n.lineAt(s.to),u=n.lineAt(l.from),d=/^[\s>]*$/.test(o.text);return o.number+(d?0:1)<u.number}function G1(t,n,s){let l="";for(let o=0,u=t.length-2;o<=u;o++)l+=t[o].blank(o<u?Lr(s.text,4,t[o+1].from)-l.length:null,o<u);return hh(l,n)}function $z(t,n){let s=t.resolveInner(n,-1),l=n;U1(s)&&(l=s.from,s=s.parent);for(let o;o=s.childBefore(l);)if(U1(o))l=o.from;else if(o.name=="OrderedList"||o.name=="BulletList")s=o.lastChild,l=s.to;else break;return s}const Tz=({state:t,dispatch:n})=>{let s=ga(t),l=null,o=t.changeByRange(u=>{let d=u.from,{doc:O}=t;if(u.empty&&yc.isActiveAt(t,u.from)){let m=O.lineAt(d),p=gy($z(s,d),O);if(p.length){let x=p[p.length-1],g=x.to-x.spaceAfter.length+(x.spaceAfter?1:0);if(d-m.from>g&&!/\S/.test(m.text.slice(g,d-m.from)))return{range:Wn.cursor(m.from+g),changes:{from:m.from+g,to:d}};if(d-m.from==g&&(!x.item||m.from<=x.item.from||!/\S/.test(m.text.slice(0,x.to)))){let b=m.from+x.from;if(x.item&&x.node.from<x.item.from&&/\S/.test(m.text.slice(x.from,x.to))){let S=x.blank(Lr(m.text,4,x.to)-Lr(m.text,4,x.from));return b==m.from&&(S=hh(S,t)),{range:Wn.cursor(b+S.length),changes:{from:b,to:m.from+x.to,insert:S}}}if(b<d)return{range:Wn.cursor(b),changes:{from:b,to:d}}}}}return l={range:u}});return l?!1:(n(t.update(o,{scrollIntoView:!0,userEvent:"delete"})),!0)},Pz=[{key:"Enter",run:wz},{key:"Backspace",run:Tz}],vy=Dv({matchClosingTags:!1});function Nz(t={}){let{codeLanguages:n,defaultCodeLanguage:s,addKeymap:l=!0,base:{parser:o}=yz,completeHTMLTags:u=!0,pasteURLAsLink:d=!0,htmlTagLanguage:O=vy}=t;if(!(o instanceof Mc))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let m=t.extensions?[t.extensions]:[],p=[O.support,vz],x;d&&p.push(Xz),s instanceof Qs?(p.push(s.support),x=s.language):s&&(x=s);let g=n||x?Qz(n,x):void 0;m.push(lz({codeParser:g,htmlParser:O.language.parser})),l&&p.push(kj.high(KO.of(Pz)));let b=fh(o.configure(m));return u&&p.push(b.data.of({autocomplete:zz})),new Qs(b,p)}function zz(t){let{state:n,pos:s}=t,l=/<[:\-\.\w\u00b7-\uffff]*$/.exec(n.sliceDoc(s-25,s));if(!l)return null;let o=ga(n).resolveInner(s,-1);for(;o&&!o.type.isTop;){if(o.name=="CodeBlock"||o.name=="FencedCode"||o.name=="ProcessingInstructionBlock"||o.name=="CommentBlock"||o.name=="Link"||o.name=="Image")return null;o=o.parent}return{from:s-l[0].length,to:s,options:Rz(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let XO=null;function Rz(){if(XO)return XO;let t=E4(new Nj($0.create({extensions:vy}),0,!0));return XO=t?t.options:[]}const Cz=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,Xz=$l.domEventHandlers({paste:(t,n)=>{var s;let{main:l}=n.state.selection;if(l.empty)return!1;let o=(s=t.clipboardData)===null||s===void 0?void 0:s.getData("text/plain");if(!o||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(o)||(/^www\./.test(o)&&(o="https://"+o),!yc.isActiveAt(n.state,l.from,1)))return!1;let u=ga(n.state),d=!1;return u.iterate({from:l.from,to:l.to,enter:O=>{(O.from>l.from||Cz.test(O.name))&&(d=!0)},leave:O=>{O.to<l.to&&(d=!0)}}),d?!1:(n.dispatch({changes:[{from:l.from,insert:"["},{from:l.to,insert:`](${o})`}],userEvent:"input.paste",scrollIntoView:!0}),!0)}}),_z=1,yy=194,Sy=195,Zz=196,L1=197,Az=198,Ez=199,qz=200,Mz=2,Qy=3,D1=201,Yz=24,Vz=25,Uz=49,Gz=50,Lz=55,Dz=56,Wz=57,Bz=59,Hz=60,Iz=61,Fz=62,Kz=63,Jz=65,eR=238,tR=71,aR=241,nR=242,sR=243,lR=244,rR=245,iR=246,oR=247,cR=248,jy=72,uR=249,dR=250,OR=251,fR=252,hR=253,mR=254,pR=255,xR=256,gR=73,bR=77,vR=263,yR=112,SR=130,QR=151,jR=152,wR=155,ks=10,ai=13,mh=32,Yc=9,ph=35,kR=40,$R=46,vf=123,W1=125,wy=39,ky=34,B1=92,TR=111,PR=120,NR=78,zR=117,RR=85,CR=new Set([Vz,Uz,Gz,vR,Jz,SR,Dz,Wz,eR,Fz,Kz,jy,gR,bR,Hz,Iz,QR,jR,wR,yR]);function _O(t){return t==ks||t==ai}function ZO(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}const XR=new gt((t,n)=>{let s;if(t.next<0)t.acceptToken(Ez);else if(n.context.flags&Io)_O(t.next)&&t.acceptToken(Az,1);else if(((s=t.peek(-1))<0||_O(s))&&n.canShift(L1)){let l=0;for(;t.next==mh||t.next==Yc;)t.advance(),l++;(t.next==ks||t.next==ai||t.next==ph)&&t.acceptToken(L1,-l)}else _O(t.next)&&t.acceptToken(Zz,1)},{contextual:!0}),_R=new gt((t,n)=>{let s=n.context;if(s.flags)return;let l=t.peek(-1);if(l==ks||l==ai){let o=0,u=0;for(;;){if(t.next==mh)o++;else if(t.next==Yc)o+=8-o%8;else break;t.advance(),u++}o!=s.indent&&t.next!=ks&&t.next!=ai&&t.next!=ph&&(o<s.indent?t.acceptToken(Sy,-u):t.acceptToken(yy))}}),Io=1,$y=2,Ja=4,en=8,tn=16,an=32;function Fo(t,n,s){this.parent=t,this.indent=n,this.flags=s,this.hash=(t?t.hash+t.hash<<8:0)+n+(n<<4)+s+(s<<6)}const ZR=new Fo(null,0,0);function AR(t){let n=0;for(let s=0;s<t.length;s++)n+=t.charCodeAt(s)==Yc?8-n%8:1;return n}const H1=new Map([[aR,0],[nR,Ja],[sR,en],[lR,en|Ja],[rR,tn],[iR,tn|Ja],[oR,tn|en],[cR,tn|en|Ja],[uR,an],[dR,an|Ja],[OR,an|en],[fR,an|en|Ja],[hR,an|tn],[mR,an|tn|Ja],[pR,an|tn|en],[xR,an|tn|en|Ja]].map(([t,n])=>[t,n|$y])),ER=new nh({start:ZR,reduce(t,n,s,l){return t.flags&Io&&CR.has(n)||(n==tR||n==jy)&&t.flags&$y?t.parent:t},shift(t,n,s,l){return n==yy?new Fo(t,AR(l.read(l.pos,s.pos)),0):n==Sy?t.parent:n==Yz||n==Lz||n==Bz||n==Qy?new Fo(t,0,Io):H1.has(n)?new Fo(t,0,H1.get(n)|t.flags&Io):t},hash(t){return t.hash}}),qR=new gt(t=>{for(let n=0;n<5;n++){if(t.next!="print".charCodeAt(n))return;t.advance()}if(!/\w/.test(String.fromCharCode(t.next)))for(let n=0;;n++){let s=t.peek(n);if(!(s==mh||s==Yc)){s!=kR&&s!=$R&&s!=ks&&s!=ai&&s!=ph&&t.acceptToken(_z);return}}}),MR=new gt((t,n)=>{let{flags:s}=n.context,l=s&Ja?ky:wy,o=(s&en)>0,u=!(s&tn),d=(s&an)>0,O=t.pos;for(;!(t.next<0);)if(d&&t.next==vf)if(t.peek(1)==vf)t.advance(2);else{if(t.pos==O){t.acceptToken(Qy,1);return}break}else if(u&&t.next==B1){if(t.pos==O){t.advance();let m=t.next;m>=0&&(t.advance(),YR(t,m)),t.acceptToken(Mz);return}break}else if(t.next==B1&&!u&&t.peek(1)>-1)t.advance(2);else if(t.next==l&&(!o||t.peek(1)==l&&t.peek(2)==l)){if(t.pos==O){t.acceptToken(D1,o?3:1);return}break}else if(t.next==ks){if(o)t.advance();else if(t.pos==O){t.acceptToken(D1);return}break}else t.advance();t.pos>O&&t.acceptToken(qz)});function YR(t,n){if(n==TR)for(let s=0;s<2&&t.next>=48&&t.next<=55;s++)t.advance();else if(n==PR)for(let s=0;s<2&&ZO(t.next);s++)t.advance();else if(n==zR)for(let s=0;s<4&&ZO(t.next);s++)t.advance();else if(n==RR)for(let s=0;s<8&&ZO(t.next);s++)t.advance();else if(n==NR&&t.next==vf){for(t.advance();t.next>=0&&t.next!=W1&&t.next!=wy&&t.next!=ky&&t.next!=ks;)t.advance();t.next==W1&&t.advance()}}const VR=Ts({'async "*" "**" FormatConversion FormatSpec':Z.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":Z.controlKeyword,"in not and or is del":Z.operatorKeyword,"from def class global nonlocal lambda":Z.definitionKeyword,import:Z.moduleKeyword,"with as print":Z.keyword,Boolean:Z.bool,None:Z.null,VariableName:Z.variableName,"CallExpression/VariableName":Z.function(Z.variableName),"FunctionDefinition/VariableName":Z.function(Z.definition(Z.variableName)),"ClassDefinition/VariableName":Z.definition(Z.className),PropertyName:Z.propertyName,"CallExpression/MemberExpression/PropertyName":Z.function(Z.propertyName),Comment:Z.lineComment,Number:Z.number,String:Z.string,FormatString:Z.special(Z.string),Escape:Z.escape,UpdateOp:Z.updateOperator,"ArithOp!":Z.arithmeticOperator,BitOp:Z.bitwiseOperator,CompareOp:Z.compareOperator,AssignOp:Z.definitionOperator,Ellipsis:Z.punctuation,At:Z.meta,"( )":Z.paren,"[ ]":Z.squareBracket,"{ }":Z.brace,".":Z.derefOperator,", ;":Z.separator}),UR={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},GR=Kn.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:ER,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[VR],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[qR,_R,XR,MR,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:t=>UR[t]||-1}],tokenPrec:7668}),I1=new kf,Ty=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function Eo(t){return(n,s,l)=>{if(l)return!1;let o=n.node.getChild("VariableName");return o&&s(o,t),!0}}const LR={FunctionDefinition:Eo("function"),ClassDefinition:Eo("class"),ForStatement(t,n,s){if(s){for(let l=t.node.firstChild;l;l=l.nextSibling)if(l.name=="VariableName")n(l,"variable");else if(l.name=="in")break}},ImportStatement(t,n){var s,l;let{node:o}=t,u=((s=o.firstChild)===null||s===void 0?void 0:s.name)=="from";for(let d=o.getChild("import");d;d=d.nextSibling)d.name=="VariableName"&&((l=d.nextSibling)===null||l===void 0?void 0:l.name)!="as"&&n(d,u?"variable":"namespace")},AssignStatement(t,n){for(let s=t.node.firstChild;s;s=s.nextSibling)if(s.name=="VariableName")n(s,"variable");else if(s.name==":"||s.name=="AssignOp")break},ParamList(t,n){for(let s=null,l=t.node.firstChild;l;l=l.nextSibling)l.name=="VariableName"&&(!s||!/\*|AssignOp/.test(s.name))&&n(l,"variable"),s=l},CapturePattern:Eo("variable"),AsPattern:Eo("variable"),__proto__:null};function Py(t,n){let s=I1.get(n);if(s)return s;let l=[],o=!0;function u(d,O){let m=t.sliceString(d.from,d.to);l.push({label:m,type:O})}return n.cursor(Qc.IncludeAnonymous).iterate(d=>{if(d.name){let O=LR[d.name];if(O&&O(d,u,o)||!o&&Ty.has(d.name))return!1;o=!1}else if(d.to-d.from>8192){for(let O of Py(t,d.node))l.push(O);return!1}}),I1.set(n,l),l}const F1=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,Ny=["String","FormatString","Comment","PropertyName"];function DR(t){let n=ga(t.state).resolveInner(t.pos,-1);if(Ny.indexOf(n.name)>-1)return null;let s=n.name=="VariableName"||n.to-n.from<20&&F1.test(t.state.sliceDoc(n.from,n.to));if(!s&&!t.explicit)return null;let l=[];for(let o=n;o;o=o.parent)Ty.has(o.name)&&(l=l.concat(Py(t.state.doc,o)));return{options:l,from:s?n.from:t.pos,validFor:F1}}const WR=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(t=>({label:t,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(t=>({label:t,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(t=>({label:t,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(t=>({label:t,type:"function"}))),BR=[Ie("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),Ie("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),Ie("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),Ie("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),Ie(`if \${}:
545
+ `);l=o<0?s:s.slice(0,o)}return n+l.length>this.to?l.slice(0,this.to-n):l}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(n,s,l=0){this.block=bc.create(n,l,this.lineStart+s,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(n,s,l=0){this.startContext(this.parser.getNodeType(n),s,l)}addNode(n,s,l){typeof n=="number"&&(n=new ma(this.parser.nodeSet.types[n],Xl,Xl,(l??this.prevLineEnd())-s)),this.block.addChild(n,s-this.block.from)}addElement(n){this.block.addChild(n.toTree(this.parser.nodeSet),n.from-this.block.from)}addLeafElement(n,s){this.addNode(this.buffer.writeElements(gf(s.children,n.marks),-s.from).finish(s.type,s.to-s.from),s.from)}finishContext(){let n=this.stack.pop(),s=this.stack[this.stack.length-1];s.addChild(n.toTree(this.parser.nodeSet),n.from-s.from),this.block=s}finish(){for(;this.stack.length>1;)this.finishContext();return this.addGaps(this.block.toTree(this.parser.nodeSet,this.lineStart))}addGaps(n){return this.ranges.length>1?ny(this.ranges,0,n.topNode,this.ranges[0].from,this.reusePlaceholders):n}finishLeaf(n){for(let l of n.parsers)if(l.finish(this,n))return;let s=gf(this.parser.parseInline(n.content,n.start),n.marks);this.addNode(this.buffer.writeElements(s,-n.start).finish(se.Paragraph,n.content.length),n.start)}elt(n,s,l,o){return typeof n=="string"?Ne(this.parser.getNodeType(n),s,l,o):new ry(n,s)}get buffer(){return new ly(this.parser.nodeSet)}}function ny(t,n,s,l,o){let u=t[n].to,d=[],O=[],m=s.from+l;function p(x,g){for(;g?x>=u:x>u;){let b=t[n+1].from-u;l+=b,x+=b,n++,u=t[n].to}}for(let x=s.firstChild;x;x=x.nextSibling){p(x.from+l,!0);let g=x.from+l,b,S=o.get(x.tree);S?b=S:x.to+l>u?(b=ny(t,n,x,l,o),p(x.to+l,!1)):b=x.toTree(),d.push(b),O.push(g-m)}return p(s.to+l,!1),new ma(s.type,d,O,s.to+l-m,s.tree?s.tree.propValues:void 0)}class Mc extends y0{constructor(n,s,l,o,u,d,O,m,p){super(),this.nodeSet=n,this.blockParsers=s,this.leafBlockParsers=l,this.blockNames=o,this.endLeafBlock=u,this.skipContextMarkup=d,this.inlineParsers=O,this.inlineNames=m,this.wrappers=p,this.nodeTypes=Object.create(null);for(let x of n.types)this.nodeTypes[x.name]=x.id}createParse(n,s,l){let o=new az(this,n,s,l);for(let u of this.wrappers)o=u(o,n,s,l);return o}configure(n){let s=xf(n);if(!s)return this;let{nodeSet:l,skipContextMarkup:o}=this,u=this.blockParsers.slice(),d=this.leafBlockParsers.slice(),O=this.blockNames.slice(),m=this.inlineParsers.slice(),p=this.inlineNames.slice(),x=this.endLeafBlock.slice(),g=this.wrappers;if(qr(s.defineNodes)){o=Object.assign({},o);let b=l.types.slice(),S;for(let Q of s.defineNodes){let{name:k,block:T,composite:j,style:P}=typeof Q=="string"?{name:Q}:Q;if(b.some(U=>U.name==k))continue;j&&(o[b.length]=(U,C,X)=>j(C,X,U.value));let N=b.length,A=j?["Block","BlockContext"]:T?N>=se.ATXHeading1&&N<=se.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;b.push(ni.define({id:N,name:k,props:A&&[[sn.group,A]]})),P&&(S||(S={}),Array.isArray(P)||P instanceof wj?S[k]=P:Object.assign(S,P))}l=new wf(b),S&&(l=l.extend(Ts(S)))}if(qr(s.props)&&(l=l.extend(...s.props)),qr(s.remove))for(let b of s.remove){let S=this.blockNames.indexOf(b),Q=this.inlineNames.indexOf(b);S>-1&&(u[S]=d[S]=void 0),Q>-1&&(m[Q]=void 0)}if(qr(s.parseBlock))for(let b of s.parseBlock){let S=O.indexOf(b.name);if(S>-1)u[S]=b.parse,d[S]=b.leaf;else{let Q=b.before?Ao(O,b.before):b.after?Ao(O,b.after)+1:O.length-1;u.splice(Q,0,b.parse),d.splice(Q,0,b.leaf),O.splice(Q,0,b.name)}b.endLeaf&&x.push(b.endLeaf)}if(qr(s.parseInline))for(let b of s.parseInline){let S=p.indexOf(b.name);if(S>-1)m[S]=b.parse;else{let Q=b.before?Ao(p,b.before):b.after?Ao(p,b.after)+1:p.length-1;m.splice(Q,0,b.parse),p.splice(Q,0,b.name)}}return s.wrap&&(g=g.concat(s.wrap)),new Mc(l,u,d,O,x,o,m,p,g)}getNodeType(n){let s=this.nodeTypes[n];if(s==null)throw new RangeError(`Unknown node type '${n}'`);return s}parseInline(n,s){let l=new Oh(this,n,s);e:for(let o=s;o<l.end;){let u=l.char(o);for(let d of this.inlineParsers)if(d){let O=d(l,u,o);if(O>=0){o=O;continue e}}o++}return l.resolveMarkers(0)}}function qr(t){return t!=null&&t.length>0}function xf(t){if(!Array.isArray(t))return t;if(t.length==0)return null;let n=xf(t[0]);if(t.length==1)return n;let s=xf(t.slice(1));if(!s||!n)return n||s;let l=(d,O)=>(d||Xl).concat(O||Xl),o=n.wrap,u=s.wrap;return{props:l(n.props,s.props),defineNodes:l(n.defineNodes,s.defineNodes),parseBlock:l(n.parseBlock,s.parseBlock),parseInline:l(n.parseInline,s.parseInline),remove:l(n.remove,s.remove),wrap:o?u?(d,O,m,p)=>o(u(d,O,m,p),O,m,p):o:u}}function Ao(t,n){let s=t.indexOf(n);if(s<0)throw new RangeError(`Position specified relative to unknown parser ${n}`);return s}let sy=[ni.none];for(let t=1,n;n=se[t];t++)sy[t]=ni.define({id:t,name:n,props:t>=se.Escape?[]:[[sn.group,t in Wv?["Block","BlockContext"]:["Block","LeafBlock"]]],top:n=="Document"});const Xl=[];class ly{constructor(n){this.nodeSet=n,this.content=[],this.nodes=[]}write(n,s,l,o=0){return this.content.push(n,s,l,4+o*4),this}writeElements(n,s=0){for(let l of n)l.writeTo(this,s);return this}finish(n,s){return ma.build({buffer:this.content,nodeSet:this.nodeSet,reused:this.nodes,topID:n,length:s})}}let ei=class{constructor(n,s,l,o=Xl){this.type=n,this.from=s,this.to=l,this.children=o}writeTo(n,s){let l=n.content.length;n.writeElements(this.children,s),n.content.push(this.type,this.from+s,this.to+s,n.content.length+4-l)}toTree(n){return new ly(n).writeElements(this.children,-this.from).finish(this.type,this.to-this.from)}};class ry{constructor(n,s){this.tree=n,this.from=s}get to(){return this.from+this.tree.length}get type(){return this.tree.type.id}get children(){return Xl}writeTo(n,s){n.nodes.push(this.tree),n.content.push(n.nodes.length-1,this.from+s,this.to+s,-1)}toTree(){return this.tree}}function Ne(t,n,s,l){return new ei(t,n,s,l)}const iy={resolve:"Emphasis",mark:"EmphasisMark"},oy={resolve:"Emphasis",mark:"EmphasisMark"},ys={},vc={};class Dt{constructor(n,s,l,o){this.type=n,this.from=s,this.to=l,this.side=o}}const X1="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";let ti=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\u2010-\u2027]/;try{ti=new RegExp("[\\p{S}|\\p{P}]","u")}catch{}const zO={Escape(t,n,s){if(n!=92||s==t.end-1)return-1;let l=t.char(s+1);for(let o=0;o<X1.length;o++)if(X1.charCodeAt(o)==l)return t.append(Ne(se.Escape,s,s+2));return-1},Entity(t,n,s){if(n!=38)return-1;let l=/^(?:#\d+|#x[a-f\d]+|\w+);/i.exec(t.slice(s+1,s+31));return l?t.append(Ne(se.Entity,s,s+1+l[0].length)):-1},InlineCode(t,n,s){if(n!=96||s&&t.char(s-1)==96)return-1;let l=s+1;for(;l<t.end&&t.char(l)==96;)l++;let o=l-s,u=0;for(;l<t.end;l++)if(t.char(l)==96){if(u++,u==o&&t.char(l+1)!=96)return t.append(Ne(se.InlineCode,s,l+1,[Ne(se.CodeMark,s,s+o),Ne(se.CodeMark,l+1-o,l+1)]))}else u=0;return-1},HTMLTag(t,n,s){if(n!=60||s==t.end-1)return-1;let l=t.slice(s+1,t.end),o=/^(?:[a-z][-\w+.]+:[^\s>]+|[a-z\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*)>/i.exec(l);if(o)return t.append(Ne(se.Autolink,s,s+1+o[0].length,[Ne(se.LinkMark,s,s+1),Ne(se.URL,s+1,s+o[0].length),Ne(se.LinkMark,s+o[0].length,s+1+o[0].length)]));let u=/^!--[^>](?:-[^-]|[^-])*?-->/i.exec(l);if(u)return t.append(Ne(se.Comment,s,s+1+u[0].length));let d=/^\?[^]*?\?>/.exec(l);if(d)return t.append(Ne(se.ProcessingInstruction,s,s+1+d[0].length));let O=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(l);return O?t.append(Ne(se.HTMLTag,s,s+1+O[0].length)):-1},Emphasis(t,n,s){if(n!=95&&n!=42)return-1;let l=s+1;for(;t.char(l)==n;)l++;let o=t.slice(s-1,s),u=t.slice(l,l+1),d=ti.test(o),O=ti.test(u),m=/\s|^$/.test(o),p=/\s|^$/.test(u),x=!p&&(!O||m||d),g=!m&&(!d||p||O),b=x&&(n==42||!g||d),S=g&&(n==42||!x||O);return t.append(new Dt(n==95?iy:oy,s,l,(b?1:0)|(S?2:0)))},HardBreak(t,n,s){if(n==92&&t.char(s+1)==10)return t.append(Ne(se.HardBreak,s,s+2));if(n==32){let l=s+1;for(;t.char(l)==32;)l++;if(t.char(l)==10&&l>=s+2)return t.append(Ne(se.HardBreak,s,l+1))}return-1},Link(t,n,s){return n==91?t.append(new Dt(ys,s,s+1,1)):-1},Image(t,n,s){return n==33&&t.char(s+1)==91?t.append(new Dt(vc,s,s+2,1)):-1},LinkEnd(t,n,s){if(n!=93)return-1;for(let l=t.parts.length-1;l>=0;l--){let o=t.parts[l];if(o instanceof Dt&&(o.type==ys||o.type==vc)){if(!o.side||t.skipSpace(o.to)==s&&!/[(\[]/.test(t.slice(s+1,s+2)))return t.parts[l]=null,-1;let u=t.takeContent(l),d=t.parts[l]=nz(t,u,o.type==ys?se.Link:se.Image,o.from,s+1);if(o.type==ys)for(let O=0;O<l;O++){let m=t.parts[O];m instanceof Dt&&m.type==ys&&(m.side=0)}return d.to}}return-1}};function nz(t,n,s,l,o){let{text:u}=t,d=t.char(o),O=o;if(n.unshift(Ne(se.LinkMark,l,l+(s==se.Image?2:1))),n.push(Ne(se.LinkMark,o-1,o)),d==40){let m=t.skipSpace(o+1),p=cy(u,m-t.offset,t.offset),x;p&&(m=t.skipSpace(p.to),m!=p.to&&(x=uy(u,m-t.offset,t.offset),x&&(m=t.skipSpace(x.to)))),t.char(m)==41&&(n.push(Ne(se.LinkMark,o,o+1)),O=m+1,p&&n.push(p),x&&n.push(x),n.push(Ne(se.LinkMark,m,O)))}else if(d==91){let m=dy(u,o-t.offset,t.offset,!1);m&&(n.push(m),O=m.to)}return Ne(s,l,O,n)}function cy(t,n,s){if(t.charCodeAt(n)==60){for(let o=n+1;o<t.length;o++){let u=t.charCodeAt(o);if(u==62)return Ne(se.URL,n+s,o+1+s);if(u==60||u==10)return!1}return null}else{let o=0,u=n;for(let d=!1;u<t.length;u++){let O=t.charCodeAt(u);if(ua(O))break;if(d)d=!1;else if(O==40)o++;else if(O==41){if(!o)break;o--}else O==92&&(d=!0)}return u>n?Ne(se.URL,n+s,u+s):u==t.length?null:!1}}function uy(t,n,s){let l=t.charCodeAt(n);if(l!=39&&l!=34&&l!=40)return!1;let o=l==40?41:l;for(let u=n+1,d=!1;u<t.length;u++){let O=t.charCodeAt(u);if(d)d=!1;else{if(O==o)return Ne(se.LinkTitle,n+s,u+1+s);O==92&&(d=!0)}}return null}function dy(t,n,s,l){for(let o=!1,u=n+1,d=Math.min(t.length,u+999);u<d;u++){let O=t.charCodeAt(u);if(o)o=!1;else{if(O==93)return l?!1:Ne(se.LinkLabel,n+s,u+1+s);if(l&&!ua(O)&&(l=!1),O==91)return!1;O==92&&(o=!0)}}return null}class Oh{constructor(n,s,l){this.parser=n,this.text=s,this.offset=l,this.parts=[]}char(n){return n>=this.end?-1:this.text.charCodeAt(n-this.offset)}get end(){return this.offset+this.text.length}slice(n,s){return this.text.slice(n-this.offset,s-this.offset)}append(n){return this.parts.push(n),n.to}addDelimiter(n,s,l,o,u){return this.append(new Dt(n,s,l,(o?1:0)|(u?2:0)))}get hasOpenLink(){for(let n=this.parts.length-1;n>=0;n--){let s=this.parts[n];if(s instanceof Dt&&(s.type==ys||s.type==vc))return!0}return!1}addElement(n){return this.append(n)}resolveMarkers(n){for(let l=n;l<this.parts.length;l++){let o=this.parts[l];if(!(o instanceof Dt&&o.type.resolve&&o.side&2))continue;let u=o.type==iy||o.type==oy,d=o.to-o.from,O,m=l-1;for(;m>=n;m--){let k=this.parts[m];if(k instanceof Dt&&k.side&1&&k.type==o.type&&!(u&&(o.side&1||k.side&2)&&(k.to-k.from+d)%3==0&&((k.to-k.from)%3||d%3))){O=k;break}}if(!O)continue;let p=o.type.resolve,x=[],g=O.from,b=o.to;if(u){let k=Math.min(2,O.to-O.from,d);g=O.to-k,b=o.from+k,p=k==1?"Emphasis":"StrongEmphasis"}O.type.mark&&x.push(this.elt(O.type.mark,g,O.to));for(let k=m+1;k<l;k++)this.parts[k]instanceof ei&&x.push(this.parts[k]),this.parts[k]=null;o.type.mark&&x.push(this.elt(o.type.mark,o.from,b));let S=this.elt(p,g,b,x);this.parts[m]=u&&O.from!=g?new Dt(O.type,O.from,g,O.side):null,(this.parts[l]=u&&o.to!=b?new Dt(o.type,b,o.to,o.side):null)?this.parts.splice(l,0,S):this.parts[l]=S}let s=[];for(let l=n;l<this.parts.length;l++){let o=this.parts[l];o instanceof ei&&s.push(o)}return s}findOpeningDelimiter(n){for(let s=this.parts.length-1;s>=0;s--){let l=this.parts[s];if(l instanceof Dt&&l.type==n&&l.side&1)return s}return null}takeContent(n){let s=this.resolveMarkers(n);return this.parts.length=n,s}getDelimiterAt(n){let s=this.parts[n];return s instanceof Dt?s:null}skipSpace(n){return Yr(this.text,n-this.offset)+this.offset}elt(n,s,l,o){return typeof n=="string"?Ne(this.parser.getNodeType(n),s,l,o):new ry(n,s)}}Oh.linkStart=ys;Oh.imageStart=vc;function gf(t,n){if(!n.length)return t;if(!t.length)return n;let s=t.slice(),l=0;for(let o of n){for(;l<s.length&&s[l].to<o.to;)l++;if(l<s.length&&s[l].from<o.from){let u=s[l];u instanceof ei&&(s[l]=new ei(u.type,u.from,u.to,gf(u.children,[o])))}else s.splice(l++,0,o)}return s}const sz=[se.CodeBlock,se.ListItem,se.OrderedList,se.BulletList];class lz{constructor(n,s){this.fragments=n,this.input=s,this.i=0,this.fragment=null,this.fragmentEnd=-1,this.cursor=null,n.length&&(this.fragment=n[this.i++])}nextFragment(){this.fragment=this.i<this.fragments.length?this.fragments[this.i++]:null,this.cursor=null,this.fragmentEnd=-1}moveTo(n,s){for(;this.fragment&&this.fragment.to<=n;)this.nextFragment();if(!this.fragment||this.fragment.from>(n?n-1:0))return!1;if(this.fragmentEnd<0){let u=this.fragment.to;for(;u>0&&this.input.read(u-1,u)!=`
546
+ `;)u--;this.fragmentEnd=u?u-1:0}let l=this.cursor;l||(l=this.cursor=this.fragment.tree.cursor(),l.firstChild());let o=n+this.fragment.offset;for(;l.to<=o;)if(!l.parent())return!1;for(;;){if(l.from>=o)return this.fragment.from<=s;if(!l.childAfter(o))return!1}}matches(n){let s=this.cursor.tree;return s&&s.prop(sn.contextHash)==n}takeNodes(n){let s=this.cursor,l=this.fragment.offset,o=this.fragmentEnd-(this.fragment.openEnd?1:0),u=n.absoluteLineStart,d=u,O=n.block.children.length,m=d,p=O;for(;;){if(s.to-l>o){if(s.type.isAnonymous&&s.firstChild())continue;break}let x=Oy(s.from-l,n.ranges);if(s.to-l<=n.ranges[n.rangeI].to)n.addNode(s.tree,x);else{let g=new ma(n.parser.nodeSet.types[se.Paragraph],[],[],0,n.block.hashProp);n.reusePlaceholders.set(g,s.tree),n.addNode(g,x)}if(s.type.is("Block")&&(sz.indexOf(s.type.id)<0?(d=s.to-l,O=n.block.children.length):(d=m,O=p),m=s.to-l,p=n.block.children.length),!s.nextSibling())break}for(;n.block.children.length>O;)n.block.children.pop(),n.block.positions.pop();return d-u}}function Oy(t,n){let s=t;for(let l=1;l<n.length;l++){let o=n[l-1].to,u=n[l].from;o<t&&(s-=u-o)}return s}const rz=Ts({"Blockquote/...":Z.quote,HorizontalRule:Z.contentSeparator,"ATXHeading1/... SetextHeading1/...":Z.heading1,"ATXHeading2/... SetextHeading2/...":Z.heading2,"ATXHeading3/...":Z.heading3,"ATXHeading4/...":Z.heading4,"ATXHeading5/...":Z.heading5,"ATXHeading6/...":Z.heading6,"Comment CommentBlock":Z.comment,Escape:Z.escape,Entity:Z.character,"Emphasis/...":Z.emphasis,"StrongEmphasis/...":Z.strong,"Link/... Image/...":Z.link,"OrderedList/... BulletList/...":Z.list,"BlockQuote/...":Z.quote,"InlineCode CodeText":Z.monospace,"URL Autolink":Z.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":Z.processingInstruction,"CodeInfo LinkLabel":Z.labelName,LinkTitle:Z.string,Paragraph:Z.content}),iz=new Mc(new wf(sy).extend(rz),Object.keys(Zo).map(t=>Zo[t]),Object.keys(Zo).map(t=>ay[t]),Object.keys(Zo),ez,Wv,Object.keys(zO).map(t=>zO[t]),Object.keys(zO),[]);function oz(t,n,s){let l=[];for(let o=t.firstChild,u=n;;o=o.nextSibling){let d=o?o.from:s;if(d>u&&l.push({from:u,to:d}),!o)break;u=o.to}return l}function cz(t){let{codeParser:n,htmlParser:s}=t;return{wrap:k0((o,u)=>{let d=o.type.id;if(n&&(d==se.CodeBlock||d==se.FencedCode)){let O="";if(d==se.FencedCode){let p=o.node.getChild(se.CodeInfo);p&&(O=u.read(p.from,p.to))}let m=n(O);if(m)return{parser:m,overlay:p=>p.type.id==se.CodeText,bracketed:d==se.FencedCode}}else if(s&&(d==se.HTMLBlock||d==se.HTMLTag||d==se.CommentBlock))return{parser:s,overlay:oz(o.node,o.from,o.to)};return null})}}const uz={resolve:"Strikethrough",mark:"StrikethroughMark"},dz={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":Z.strikethrough}},{name:"StrikethroughMark",style:Z.processingInstruction}],parseInline:[{name:"Strikethrough",parse(t,n,s){if(n!=126||t.char(s+1)!=126||t.char(s+2)==126)return-1;let l=t.slice(s-1,s),o=t.slice(s+2,s+3),u=/\s|^$/.test(l),d=/\s|^$/.test(o),O=ti.test(l),m=ti.test(o);return t.addDelimiter(uz,s,s+2,!d&&(!m||u||O),!u&&(!O||d||m))},after:"Emphasis"}]};function Vr(t,n,s=0,l,o=0){let u=0,d=!0,O=-1,m=-1,p=!1,x=()=>{l.push(t.elt("TableCell",o+O,o+m,t.parser.parseInline(n.slice(O,m),o+O)))};for(let g=s;g<n.length;g++){let b=n.charCodeAt(g);b==124&&!p?((!d||O>-1)&&u++,d=!1,l&&(O>-1&&x(),l.push(t.elt("TableDelimiter",g+o,g+o+1))),O=m=-1):(p||b!=32&&b!=9)&&(O<0&&(O=g),m=g+1),p=!p&&b==92}return O>-1&&(u++,l&&x()),u}function _1(t,n){for(let s=n;s<t.length;s++){let l=t.charCodeAt(s);if(l==124)return!0;l==92&&s++}return!1}const fy=/^\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/;class Z1{constructor(){this.rows=null}nextLine(n,s,l){if(this.rows==null){this.rows=!1;let o;if((s.next==45||s.next==58||s.next==124)&&fy.test(o=s.text.slice(s.pos))){let u=[];Vr(n,l.content,0,u,l.start)==Vr(n,o,s.pos)&&(this.rows=[n.elt("TableHeader",l.start,l.start+l.content.length,u),n.elt("TableDelimiter",n.lineStart+s.pos,n.lineStart+s.text.length)])}}else if(this.rows){let o=[];Vr(n,s.text,s.pos,o,n.lineStart),this.rows.push(n.elt("TableRow",n.lineStart+s.pos,n.lineStart+s.text.length,o))}return!1}finish(n,s){return this.rows?(n.addLeafElement(s,n.elt("Table",s.start,s.start+s.content.length,this.rows)),!0):!1}}const Oz={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":Z.heading}},"TableRow",{name:"TableCell",style:Z.content},{name:"TableDelimiter",style:Z.processingInstruction}],parseBlock:[{name:"Table",leaf(t,n){return _1(n.content,0)?new Z1:null},endLeaf(t,n,s){if(s.parsers.some(o=>o instanceof Z1)||!_1(n.text,n.basePos))return!1;let l=t.peekLine();return fy.test(l)&&Vr(t,n.text,n.basePos)==Vr(t,l,n.basePos)},before:"SetextHeading"}]};class fz{nextLine(){return!1}finish(n,s){return n.addLeafElement(s,n.elt("Task",s.start,s.start+s.content.length,[n.elt("TaskMarker",s.start,s.start+3),...n.parser.parseInline(s.content.slice(3),s.start+3)])),!0}}const hz={defineNodes:[{name:"Task",block:!0,style:Z.list},{name:"TaskMarker",style:Z.atom}],parseBlock:[{name:"TaskList",leaf(t,n){return/^\[[ xX]\][ \t]/.test(n.content)&&t.parentType().name=="ListItem"?new fz:null},after:"SetextHeading"}]},A1=/(www\.)|(https?:\/\/)|([\w.+-]{1,100}@)|(mailto:|xmpp:)/gy,E1=/[\w-]+(\.[\w-]+)+(\/[^\s<]*)?/gy,mz=/[\w-]+\.[\w-]+($|\/)/,q1=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,M1=/\/[a-zA-Z\d@.]+/gy;function Y1(t,n,s,l){let o=0;for(let u=n;u<s;u++)t[u]==l&&o++;return o}function pz(t,n){E1.lastIndex=n;let s=E1.exec(t);if(!s||mz.exec(s[0])[0].indexOf("_")>-1)return-1;let l=n+s[0].length;for(;;){let o=t[l-1],u;if(/[?!.,:*_~]/.test(o)||o==")"&&Y1(t,n,l,")")>Y1(t,n,l,"("))l--;else if(o==";"&&(u=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(t.slice(n,l))))l=n+u.index;else break}return l}function V1(t,n){q1.lastIndex=n;let s=q1.exec(t);if(!s)return-1;let l=s[0][s[0].length-1];return l=="_"||l=="-"?-1:n+s[0].length-(l=="."?1:0)}const xz={parseInline:[{name:"Autolink",parse(t,n,s){let l=s-t.offset;if(l&&/\w/.test(t.text[l-1]))return-1;A1.lastIndex=l;let o=A1.exec(t.text),u=-1;if(!o)return-1;if(o[1]||o[2]){if(u=pz(t.text,l+o[0].length),u>-1&&t.hasOpenLink){let d=/([^\[\]]|\[[^\]]*\])*/.exec(t.text.slice(l,u));u=l+d[0].length}}else o[3]?u=V1(t.text,l):(u=V1(t.text,l+o[0].length),u>-1&&o[0]=="xmpp:"&&(M1.lastIndex=u,o=M1.exec(t.text),o&&(u=o.index+o[0].length)));return u<0?-1:(t.addElement(t.elt("URL",s,u+t.offset)),u+t.offset)}}]},gz=[Oz,hz,dz,xz];function hy(t,n,s){return(l,o,u)=>{if(o!=t||l.char(u+1)==t)return-1;let d=[l.elt(s,u,u+1)];for(let O=u+1;O<l.end;O++){let m=l.char(O);if(m==t)return l.addElement(l.elt(n,u,O+1,d.concat(l.elt(s,O,O+1))));if(m==92&&d.push(l.elt("Escape",O,O+++2)),ua(m))break}return-1}}const bz={defineNodes:[{name:"Superscript",style:Z.special(Z.content)},{name:"SuperscriptMark",style:Z.processingInstruction}],parseInline:[{name:"Superscript",parse:hy(94,"Superscript","SuperscriptMark")}]},vz={defineNodes:[{name:"Subscript",style:Z.special(Z.content)},{name:"SubscriptMark",style:Z.processingInstruction}],parseInline:[{name:"Subscript",parse:hy(126,"Subscript","SubscriptMark")}]},yz={defineNodes:[{name:"Emoji",style:Z.character}],parseInline:[{name:"Emoji",parse(t,n,s){let l;return n!=58||!(l=/^[a-zA-Z_0-9]+:/.exec(t.slice(s+1,t.end)))?-1:t.addElement(t.elt("Emoji",s,s+1+l[0].length))}}]},my=w0({commentTokens:{block:{open:"<!--",close:"-->"}}}),py=new sn,xy=iz.configure({props:[Ps.add(t=>!t.is("Block")||t.is("Document")||bf(t)!=null||Sz(t)?void 0:(n,s)=>({from:s.doc.lineAt(n.from).to,to:n.to})),py.add(bf),_l.add({Document:()=>null}),zj.add({Document:my})]});function bf(t){let n=/^(?:ATX|Setext)Heading(\d)$/.exec(t.name);return n?+n[1]:void 0}function Sz(t){return t.name=="OrderedList"||t.name=="BulletList"}function Qz(t,n){let s=t;for(;;){let l=s.nextSibling,o;if(!l||(o=bf(l.type))!=null&&o<=n)break;s=l}return s.to}const jz=$j.of((t,n,s)=>{for(let l=ga(t).resolveInner(s,-1);l&&!(l.from<n);l=l.parent){let o=l.type.prop(py);if(o==null)continue;let u=Qz(l,o);if(u>s)return{from:s,to:u}}return null});function fh(t){return new Tj(my,t,[],"markdown")}const wz=fh(xy),kz=xy.configure([gz,vz,bz,yz,{props:[Ps.add({Table:(t,n)=>({from:n.doc.lineAt(t.from).to,to:t.to})})]}]),yc=fh(kz);function $z(t,n){return s=>{if(s&&t){let l=null;if(s=/\S*/.exec(s)[0],typeof t=="function"?l=t(s):l=yg.matchLanguageName(t,s,!0),l instanceof yg)return l.support?l.support.language.parser:Rj.getSkippingParser(l.load());if(l)return l.parser}return n?n.parser:null}}let RO=class{constructor(n,s,l,o,u,d,O){this.node=n,this.from=s,this.to=l,this.spaceBefore=o,this.spaceAfter=u,this.type=d,this.item=O}blank(n,s=!0){let l=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(n!=null){for(;l.length<n;)l+=" ";return l}else{for(let o=this.to-this.from-l.length-this.spaceAfter.length;o>0;o--)l+=" ";return l+(s?this.spaceAfter:"")}}marker(n,s){let l=this.node.name=="OrderedList"?String(+by(this.item,n)[2]+s):"";return this.spaceBefore+l+this.type+this.spaceAfter}};function gy(t,n){let s=[],l=[];for(let o=t;o;o=o.parent){if(o.name=="FencedCode")return l;(o.name=="ListItem"||o.name=="Blockquote")&&s.push(o)}for(let o=s.length-1;o>=0;o--){let u=s[o],d,O=n.lineAt(u.from),m=u.from-O.from;if(u.name=="Blockquote"&&(d=/^ *>( ?)/.exec(O.text.slice(m))))l.push(new RO(u,m,m+d[0].length,"",d[1],">",null));else if(u.name=="ListItem"&&u.parent.name=="OrderedList"&&(d=/^( *)\d+([.)])( *)/.exec(O.text.slice(m)))){let p=d[3],x=d[0].length;p.length>=4&&(p=p.slice(0,p.length-4),x-=4),l.push(new RO(u.parent,m,m+x,d[1],p,d[2],u))}else if(u.name=="ListItem"&&u.parent.name=="BulletList"&&(d=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(O.text.slice(m)))){let p=d[4],x=d[0].length;p.length>4&&(p=p.slice(0,p.length-4),x-=4);let g=d[2];d[3]&&(g+=d[3].replace(/[xX]/," ")),l.push(new RO(u.parent,m,m+x,d[1],p,g,u))}}return l}function by(t,n){return/^(\s*)(\d+)(?=[.)])/.exec(n.sliceString(t.from,t.from+10))}function CO(t,n,s,l=0){for(let o=-1,u=t;;){if(u.name=="ListItem"){let O=by(u,n),m=+O[2];if(o>=0){if(m!=o+1)return;s.push({from:u.from+O[1].length,to:u.from+O[0].length,insert:String(o+2+l)})}o=m}let d=u.nextSibling;if(!d)break;u=d}}function hh(t,n){let s=/^[ \t]*/.exec(t)[0].length;if(!s||n.facet(Pj)!=" ")return t;let l=Lr(t,4,s),o="";for(let u=l;u>0;)u>=4?(o+=" ",u-=4):(o+=" ",u--);return o+t.slice(s)}const Tz=(t={})=>({state:n,dispatch:s})=>{let l=ga(n),{doc:o}=n,u=null,d=n.changeByRange(O=>{if(!O.empty||!yc.isActiveAt(n,O.from,-1)&&!yc.isActiveAt(n,O.from,1))return u={range:O};let m=O.from,p=o.lineAt(m),x=gy(l.resolveInner(m,-1),o);for(;x.length&&x[x.length-1].from>m-p.from;)x.pop();if(!x.length)return u={range:O};let g=x[x.length-1];if(g.to-g.spaceAfter.length>m-p.from)return u={range:O};let b=m>=g.to-g.spaceAfter.length&&!/\S/.test(p.text.slice(g.to));if(g.item&&b){let j=g.node.firstChild,P=g.node.getChild("ListItem","ListItem");if(j.to>=m||P&&P.to<m||p.from>0&&!/[^\s>]/.test(o.lineAt(p.from-1).text)||t.nonTightLists===!1){let N=x.length>1?x[x.length-2]:null,A,U="";N&&N.item?(A=p.from+N.from,U=N.marker(o,1)):A=p.from+(N?N.to:0);let C=[{from:A,to:m,insert:U}];return g.node.name=="OrderedList"&&CO(g.item,o,C,-2),N&&N.node.name=="OrderedList"&&CO(N.item,o,C),{range:Wn.cursor(A+U.length),changes:C}}else{let N=G1(x,n,p);return{range:Wn.cursor(m+N.length+1),changes:{from:p.from,insert:N+n.lineBreak}}}}if(g.node.name=="Blockquote"&&b&&p.from){let j=o.lineAt(p.from-1),P=/>\s*$/.exec(j.text);if(P&&P.index==g.from){let N=n.changes([{from:j.from+P.index,to:j.to},{from:p.from+g.from,to:p.to}]);return{range:O.map(N),changes:N}}}let S=[];g.node.name=="OrderedList"&&CO(g.item,o,S);let Q=g.item&&g.item.from<p.from,k="";if(!Q||/^[\s\d.)\-+*>]*/.exec(p.text)[0].length>=g.to)for(let j=0,P=x.length-1;j<=P;j++)k+=j==P&&!Q?x[j].marker(o,1):x[j].blank(j<P?Lr(p.text,4,x[j+1].from)-k.length:null);let T=m;for(;T>p.from&&/\s/.test(p.text.charAt(T-p.from-1));)T--;return k=hh(k,n),Nz(g.node,n.doc)&&(k=G1(x,n,p)+n.lineBreak+k),S.push({from:T,to:m,insert:n.lineBreak+k}),{range:Wn.cursor(T+k.length+1),changes:S}});return u?!1:(s(n.update(d,{scrollIntoView:!0,userEvent:"input"})),!0)},Pz=Tz();function U1(t){return t.name=="QuoteMark"||t.name=="ListMark"}function Nz(t,n){if(t.name!="OrderedList"&&t.name!="BulletList")return!1;let s=t.firstChild,l=t.getChild("ListItem","ListItem");if(!l)return!1;let o=n.lineAt(s.to),u=n.lineAt(l.from),d=/^[\s>]*$/.test(o.text);return o.number+(d?0:1)<u.number}function G1(t,n,s){let l="";for(let o=0,u=t.length-2;o<=u;o++)l+=t[o].blank(o<u?Lr(s.text,4,t[o+1].from)-l.length:null,o<u);return hh(l,n)}function zz(t,n){let s=t.resolveInner(n,-1),l=n;U1(s)&&(l=s.from,s=s.parent);for(let o;o=s.childBefore(l);)if(U1(o))l=o.from;else if(o.name=="OrderedList"||o.name=="BulletList")s=o.lastChild,l=s.to;else break;return s}const Rz=({state:t,dispatch:n})=>{let s=ga(t),l=null,o=t.changeByRange(u=>{let d=u.from,{doc:O}=t;if(u.empty&&yc.isActiveAt(t,u.from)){let m=O.lineAt(d),p=gy(zz(s,d),O);if(p.length){let x=p[p.length-1],g=x.to-x.spaceAfter.length+(x.spaceAfter?1:0);if(d-m.from>g&&!/\S/.test(m.text.slice(g,d-m.from)))return{range:Wn.cursor(m.from+g),changes:{from:m.from+g,to:d}};if(d-m.from==g&&(!x.item||m.from<=x.item.from||!/\S/.test(m.text.slice(0,x.to)))){let b=m.from+x.from;if(x.item&&x.node.from<x.item.from&&/\S/.test(m.text.slice(x.from,x.to))){let S=x.blank(Lr(m.text,4,x.to)-Lr(m.text,4,x.from));return b==m.from&&(S=hh(S,t)),{range:Wn.cursor(b+S.length),changes:{from:b,to:m.from+x.to,insert:S}}}if(b<d)return{range:Wn.cursor(b),changes:{from:b,to:d}}}}}return l={range:u}});return l?!1:(n(t.update(o,{scrollIntoView:!0,userEvent:"delete"})),!0)},Cz=[{key:"Enter",run:Pz},{key:"Backspace",run:Rz}],vy=Dv({matchClosingTags:!1});function Xz(t={}){let{codeLanguages:n,defaultCodeLanguage:s,addKeymap:l=!0,base:{parser:o}=wz,completeHTMLTags:u=!0,pasteURLAsLink:d=!0,htmlTagLanguage:O=vy}=t;if(!(o instanceof Mc))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let m=t.extensions?[t.extensions]:[],p=[O.support,jz],x;d&&p.push(Ez),s instanceof Qs?(p.push(s.support),x=s.language):s&&(x=s);let g=n||x?$z(n,x):void 0;m.push(cz({codeParser:g,htmlParser:O.language.parser})),l&&p.push(kj.high(KO.of(Cz)));let b=fh(o.configure(m));return u&&p.push(b.data.of({autocomplete:_z})),new Qs(b,p)}function _z(t){let{state:n,pos:s}=t,l=/<[:\-\.\w\u00b7-\uffff]*$/.exec(n.sliceDoc(s-25,s));if(!l)return null;let o=ga(n).resolveInner(s,-1);for(;o&&!o.type.isTop;){if(o.name=="CodeBlock"||o.name=="FencedCode"||o.name=="ProcessingInstructionBlock"||o.name=="CommentBlock"||o.name=="Link"||o.name=="Image")return null;o=o.parent}return{from:s-l[0].length,to:s,options:Zz(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let XO=null;function Zz(){if(XO)return XO;let t=V4(new Nj($0.create({extensions:vy}),0,!0));return XO=t?t.options:[]}const Az=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,Ez=$l.domEventHandlers({paste:(t,n)=>{var s;let{main:l}=n.state.selection;if(l.empty)return!1;let o=(s=t.clipboardData)===null||s===void 0?void 0:s.getData("text/plain");if(!o||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(o)||(/^www\./.test(o)&&(o="https://"+o),!yc.isActiveAt(n.state,l.from,1)))return!1;let u=ga(n.state),d=!1;return u.iterate({from:l.from,to:l.to,enter:O=>{(O.from>l.from||Az.test(O.name))&&(d=!0)},leave:O=>{O.to<l.to&&(d=!0)}}),d?!1:(n.dispatch({changes:[{from:l.from,insert:"["},{from:l.to,insert:`](${o})`}],userEvent:"input.paste",scrollIntoView:!0}),!0)}}),qz=1,yy=194,Sy=195,Mz=196,L1=197,Yz=198,Vz=199,Uz=200,Gz=2,Qy=3,D1=201,Lz=24,Dz=25,Wz=49,Bz=50,Hz=55,Iz=56,Fz=57,Kz=59,Jz=60,eR=61,tR=62,aR=63,nR=65,sR=238,lR=71,rR=241,iR=242,oR=243,cR=244,uR=245,dR=246,OR=247,fR=248,jy=72,hR=249,mR=250,pR=251,xR=252,gR=253,bR=254,vR=255,yR=256,SR=73,QR=77,jR=263,wR=112,kR=130,$R=151,TR=152,PR=155,ks=10,ai=13,mh=32,Yc=9,ph=35,NR=40,zR=46,vf=123,W1=125,wy=39,ky=34,B1=92,RR=111,CR=120,XR=78,_R=117,ZR=85,AR=new Set([Dz,Wz,Bz,jR,nR,kR,Iz,Fz,sR,tR,aR,jy,SR,QR,Jz,eR,$R,TR,PR,wR]);function _O(t){return t==ks||t==ai}function ZO(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}const ER=new gt((t,n)=>{let s;if(t.next<0)t.acceptToken(Vz);else if(n.context.flags&Io)_O(t.next)&&t.acceptToken(Yz,1);else if(((s=t.peek(-1))<0||_O(s))&&n.canShift(L1)){let l=0;for(;t.next==mh||t.next==Yc;)t.advance(),l++;(t.next==ks||t.next==ai||t.next==ph)&&t.acceptToken(L1,-l)}else _O(t.next)&&t.acceptToken(Mz,1)},{contextual:!0}),qR=new gt((t,n)=>{let s=n.context;if(s.flags)return;let l=t.peek(-1);if(l==ks||l==ai){let o=0,u=0;for(;;){if(t.next==mh)o++;else if(t.next==Yc)o+=8-o%8;else break;t.advance(),u++}o!=s.indent&&t.next!=ks&&t.next!=ai&&t.next!=ph&&(o<s.indent?t.acceptToken(Sy,-u):t.acceptToken(yy))}}),Io=1,$y=2,Ja=4,en=8,tn=16,an=32;function Fo(t,n,s){this.parent=t,this.indent=n,this.flags=s,this.hash=(t?t.hash+t.hash<<8:0)+n+(n<<4)+s+(s<<6)}const MR=new Fo(null,0,0);function YR(t){let n=0;for(let s=0;s<t.length;s++)n+=t.charCodeAt(s)==Yc?8-n%8:1;return n}const H1=new Map([[rR,0],[iR,Ja],[oR,en],[cR,en|Ja],[uR,tn],[dR,tn|Ja],[OR,tn|en],[fR,tn|en|Ja],[hR,an],[mR,an|Ja],[pR,an|en],[xR,an|en|Ja],[gR,an|tn],[bR,an|tn|Ja],[vR,an|tn|en],[yR,an|tn|en|Ja]].map(([t,n])=>[t,n|$y])),VR=new nh({start:MR,reduce(t,n,s,l){return t.flags&Io&&AR.has(n)||(n==lR||n==jy)&&t.flags&$y?t.parent:t},shift(t,n,s,l){return n==yy?new Fo(t,YR(l.read(l.pos,s.pos)),0):n==Sy?t.parent:n==Lz||n==Hz||n==Kz||n==Qy?new Fo(t,0,Io):H1.has(n)?new Fo(t,0,H1.get(n)|t.flags&Io):t},hash(t){return t.hash}}),UR=new gt(t=>{for(let n=0;n<5;n++){if(t.next!="print".charCodeAt(n))return;t.advance()}if(!/\w/.test(String.fromCharCode(t.next)))for(let n=0;;n++){let s=t.peek(n);if(!(s==mh||s==Yc)){s!=NR&&s!=zR&&s!=ks&&s!=ai&&s!=ph&&t.acceptToken(qz);return}}}),GR=new gt((t,n)=>{let{flags:s}=n.context,l=s&Ja?ky:wy,o=(s&en)>0,u=!(s&tn),d=(s&an)>0,O=t.pos;for(;!(t.next<0);)if(d&&t.next==vf)if(t.peek(1)==vf)t.advance(2);else{if(t.pos==O){t.acceptToken(Qy,1);return}break}else if(u&&t.next==B1){if(t.pos==O){t.advance();let m=t.next;m>=0&&(t.advance(),LR(t,m)),t.acceptToken(Gz);return}break}else if(t.next==B1&&!u&&t.peek(1)>-1)t.advance(2);else if(t.next==l&&(!o||t.peek(1)==l&&t.peek(2)==l)){if(t.pos==O){t.acceptToken(D1,o?3:1);return}break}else if(t.next==ks){if(o)t.advance();else if(t.pos==O){t.acceptToken(D1);return}break}else t.advance();t.pos>O&&t.acceptToken(Uz)});function LR(t,n){if(n==RR)for(let s=0;s<2&&t.next>=48&&t.next<=55;s++)t.advance();else if(n==CR)for(let s=0;s<2&&ZO(t.next);s++)t.advance();else if(n==_R)for(let s=0;s<4&&ZO(t.next);s++)t.advance();else if(n==ZR)for(let s=0;s<8&&ZO(t.next);s++)t.advance();else if(n==XR&&t.next==vf){for(t.advance();t.next>=0&&t.next!=W1&&t.next!=wy&&t.next!=ky&&t.next!=ks;)t.advance();t.next==W1&&t.advance()}}const DR=Ts({'async "*" "**" FormatConversion FormatSpec':Z.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":Z.controlKeyword,"in not and or is del":Z.operatorKeyword,"from def class global nonlocal lambda":Z.definitionKeyword,import:Z.moduleKeyword,"with as print":Z.keyword,Boolean:Z.bool,None:Z.null,VariableName:Z.variableName,"CallExpression/VariableName":Z.function(Z.variableName),"FunctionDefinition/VariableName":Z.function(Z.definition(Z.variableName)),"ClassDefinition/VariableName":Z.definition(Z.className),PropertyName:Z.propertyName,"CallExpression/MemberExpression/PropertyName":Z.function(Z.propertyName),Comment:Z.lineComment,Number:Z.number,String:Z.string,FormatString:Z.special(Z.string),Escape:Z.escape,UpdateOp:Z.updateOperator,"ArithOp!":Z.arithmeticOperator,BitOp:Z.bitwiseOperator,CompareOp:Z.compareOperator,AssignOp:Z.definitionOperator,Ellipsis:Z.punctuation,At:Z.meta,"( )":Z.paren,"[ ]":Z.squareBracket,"{ }":Z.brace,".":Z.derefOperator,", ;":Z.separator}),WR={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},BR=Kn.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:VR,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[DR],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[UR,qR,ER,GR,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:t=>WR[t]||-1}],tokenPrec:7668}),I1=new kf,Ty=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function Eo(t){return(n,s,l)=>{if(l)return!1;let o=n.node.getChild("VariableName");return o&&s(o,t),!0}}const HR={FunctionDefinition:Eo("function"),ClassDefinition:Eo("class"),ForStatement(t,n,s){if(s){for(let l=t.node.firstChild;l;l=l.nextSibling)if(l.name=="VariableName")n(l,"variable");else if(l.name=="in")break}},ImportStatement(t,n){var s,l;let{node:o}=t,u=((s=o.firstChild)===null||s===void 0?void 0:s.name)=="from";for(let d=o.getChild("import");d;d=d.nextSibling)d.name=="VariableName"&&((l=d.nextSibling)===null||l===void 0?void 0:l.name)!="as"&&n(d,u?"variable":"namespace")},AssignStatement(t,n){for(let s=t.node.firstChild;s;s=s.nextSibling)if(s.name=="VariableName")n(s,"variable");else if(s.name==":"||s.name=="AssignOp")break},ParamList(t,n){for(let s=null,l=t.node.firstChild;l;l=l.nextSibling)l.name=="VariableName"&&(!s||!/\*|AssignOp/.test(s.name))&&n(l,"variable"),s=l},CapturePattern:Eo("variable"),AsPattern:Eo("variable"),__proto__:null};function Py(t,n){let s=I1.get(n);if(s)return s;let l=[],o=!0;function u(d,O){let m=t.sliceString(d.from,d.to);l.push({label:m,type:O})}return n.cursor(Qc.IncludeAnonymous).iterate(d=>{if(d.name){let O=HR[d.name];if(O&&O(d,u,o)||!o&&Ty.has(d.name))return!1;o=!1}else if(d.to-d.from>8192){for(let O of Py(t,d.node))l.push(O);return!1}}),I1.set(n,l),l}const F1=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,Ny=["String","FormatString","Comment","PropertyName"];function IR(t){let n=ga(t.state).resolveInner(t.pos,-1);if(Ny.indexOf(n.name)>-1)return null;let s=n.name=="VariableName"||n.to-n.from<20&&F1.test(t.state.sliceDoc(n.from,n.to));if(!s&&!t.explicit)return null;let l=[];for(let o=n;o;o=o.parent)Ty.has(o.name)&&(l=l.concat(Py(t.state.doc,o)));return{options:l,from:s?n.from:t.pos,validFor:F1}}const FR=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(t=>({label:t,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(t=>({label:t,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(t=>({label:t,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(t=>({label:t,type:"function"}))),KR=[Ie("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),Ie("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),Ie("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),Ie("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),Ie(`if \${}:
537
547
 
538
- `,{label:"if",detail:"block",type:"keyword"}),Ie("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),Ie("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),Ie("import ${module}",{label:"import",detail:"statement",type:"keyword"}),Ie("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],HR=S0(Ny,Q0(WR.concat(BR)));function AO(t){let{node:n,pos:s}=t,l=t.lineIndent(s,-1),o=null;for(;;){let u=n.childBefore(s);if(u)if(u.name=="Comment")s=u.from;else if(u.name=="Body"||u.name=="MatchBody")t.baseIndentFor(u)+t.unit<=l&&(o=u),n=u;else if(u.name=="MatchClause")n=u;else if(u.type.is("Statement"))n=u;else break;else break}return o}function EO(t,n){let s=t.baseIndentFor(n),l=t.lineAt(t.pos,-1),o=l.from+l.text.length;return/^\s*($|#)/.test(l.text)&&t.node.to<o+100&&!/\S/.test(t.state.sliceDoc(o,t.node.to))&&t.lineIndent(t.pos,-1)<=s||/^\s*(else:|elif |except |finally:|case\s+[^=:]+:)/.test(t.textAfter)&&t.lineIndent(t.pos,-1)>s?null:s+t.unit}const qO=si.define({name:"python",parser:GR.configure({props:[_l.add({Body:t=>{var n;let s=/^\s*(#|$)/.test(t.textAfter)&&AO(t)||t.node;return(n=EO(t,s))!==null&&n!==void 0?n:t.continue()},MatchBody:t=>{var n;let s=AO(t);return(n=EO(t,s||t.node))!==null&&n!==void 0?n:t.continue()},IfStatement:t=>/^\s*(else:|elif )/.test(t.textAfter)?t.baseIndent:t.continue(),"ForStatement WhileStatement":t=>/^\s*else:/.test(t.textAfter)?t.baseIndent:t.continue(),TryStatement:t=>/^\s*(except[ :]|finally:|else:)/.test(t.textAfter)?t.baseIndent:t.continue(),MatchStatement:t=>/^\s*case /.test(t.textAfter)?t.baseIndent+t.unit:t.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":Lo({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":Lo({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":Lo({closing:"]"}),MemberExpression:t=>t.baseIndent+t.unit,"String FormatString":()=>null,Script:t=>{var n;let s=AO(t);return(n=s&&EO(t,s))!==null&&n!==void 0?n:t.continue()}}),Ps.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":jc,Body:(t,n)=>({from:t.from+1,to:t.to-(t.to==n.doc.length?0:1)}),"String FormatString":(t,n)=>({from:n.doc.lineAt(t.from).to,to:t.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function IR(){return new Qs(qO,[qO.data.of({autocomplete:DR}),qO.data.of({autocomplete:HR})])}const qo={javascript:()=>Of({jsx:!0,typescript:!1}),typescript:()=>Of({jsx:!0,typescript:!0}),css:()=>$v(),html:()=>Dv(),json:()=>L4(),markdown:()=>Nz(),python:()=>IR()},FR=$l.theme({"&":{backgroundColor:"#24282f",color:"#bcc2cd",fontFamily:"var(--font-mono)",fontSize:"13px",height:"100%"},".cm-scroller":{overflow:"auto"},".cm-content":{caretColor:"#33afbc"},".cm-cursor":{borderLeftColor:"#33afbc"},".cm-gutters":{backgroundColor:"#24282f",borderRight:"1px solid #2c313a",color:"#505862"},".cm-activeLineGutter":{backgroundColor:"#2c313a"},".cm-activeLine":{backgroundColor:"rgba(44, 49, 58, 0.5)"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground":{backgroundColor:"rgba(51, 175, 188, 0.15)"}},{dark:!0});function KR({content:t,language:n,onChange:s,onSave:l}){const o=v.useRef(null),u=v.useRef(null),d=v.useRef(new Cj),O=v.useRef(s),m=v.useRef(l);return O.current=s,m.current=l,v.useEffect(()=>{if(!o.current)return;const p=qo[n]||qo.javascript,x=KO.of([{key:"Mod-s",run:()=>{var S;return(S=m.current)==null||S.call(m),!0}}]),g=$0.create({doc:t||"",extensions:[_j(),Zj(),Aj(),Ej(),qj(),Mj(),Yj(),KO.of([...Vj,...Uj,...Gj]),x,Xj,FR,d.current.of(p()),$l.updateListener.of(S=>{var Q;S.docChanged&&((Q=O.current)==null||Q.call(O,S.state.doc.toString()))})]}),b=new $l({state:g,parent:o.current});return u.current=b,()=>{b.destroy(),u.current=null}},[]),v.useEffect(()=>{const p=u.current;if(!p)return;const x=p.state.doc.toString();t!==x&&p.dispatch({changes:{from:0,to:x.length,insert:t||""}})},[t]),v.useEffect(()=>{const p=u.current;if(!p)return;const x=qo[n]||qo.javascript;p.dispatch({effects:d.current.reconfigure(x())})},[n]),i.jsx("div",{ref:o,className:"w-full h-full overflow-hidden"})}const JR=["png","jpg","jpeg","gif","svg","webp","ico","bmp","avif"],zy=["mp4","webm","mov","avi","mkv","ogv"];function eC(t){var s;const n=(s=t.split(".").pop())==null?void 0:s.toLowerCase();return JR.includes(n)||zy.includes(n)}function tC({path:t}){var u;const n=(u=t.split(".").pop())==null?void 0:u.toLowerCase(),s=`/api/files/raw?path=${encodeURIComponent(t)}`,l=t.split("/").pop(),o=zy.includes(n);return i.jsxs("div",{className:"w-full h-full flex flex-col items-center justify-center bg-surface-0 p-8 gap-4",children:[i.jsxs("div",{className:"flex items-center gap-2 text-xs text-text-3 font-sans",children:[i.jsx(We,{children:n==null?void 0:n.toUpperCase()}),i.jsx("span",{className:"font-mono",children:l}),i.jsx("a",{href:s,target:"_blank",rel:"noopener",className:"text-accent hover:text-accent/80 transition-colors",children:i.jsx(cc,{size:12})})]}),o?i.jsx("video",{src:s,controls:!0,className:"max-w-full max-h-[70vh] rounded-md border border-border"}):i.jsx("img",{src:s,alt:l,className:"max-w-full max-h-[70vh] rounded-md border border-border object-contain"})]})}function aC(){const t=D(b=>b.editorActiveFile),n=D(b=>b.editorFiles),s=D(b=>b.editorChangedFiles),l=D(b=>b.updateFileContent),o=D(b=>b.saveFile),u=D(b=>b.reloadFile),d=D(b=>b.dismissFileChange),[O,m]=v.useState("");v.useEffect(()=>{ee.get("/files/root").then(b=>m(b.root||"")).catch(()=>{})},[]);const p=t?n[t]:null,x=t&&eC(t),g=t&&s[t];return i.jsxs("div",{className:"flex h-full",children:[i.jsx("div",{className:"w-60 flex-shrink-0 border-r border-border",children:i.jsx(vN,{rootDir:O})}),i.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[i.jsx(yN,{}),i.jsxs("div",{className:"flex-1 relative min-h-0",children:[g&&i.jsxs("div",{className:"absolute top-0 left-0 right-0 z-10 flex items-center gap-2 px-4 py-2 bg-warning/10 border-b border-warning/20",children:[i.jsx(_c,{size:14,className:"text-warning"}),i.jsx("span",{className:"text-xs text-warning font-sans flex-1",children:"File modified externally"}),i.jsxs(je,{variant:"ghost",size:"sm",onClick:()=>u(t),children:[i.jsx(es,{size:12})," Reload"]}),i.jsxs(je,{variant:"ghost",size:"sm",onClick:()=>d(t),children:[i.jsx(Rt,{size:12})," Dismiss"]})]}),!t&&i.jsx("div",{className:"w-full h-full flex items-center justify-center text-text-4 font-sans",children:i.jsxs("div",{className:"text-center space-y-2",children:[i.jsx(dn,{size:32,className:"mx-auto"}),i.jsx("p",{className:"text-sm",children:"Open a file from the tree"})]})}),t&&x&&i.jsx(tC,{path:t}),t&&!x&&p&&i.jsx(KR,{content:p.content,language:p.language,onChange:b=>l(t,b),onSave:()=>o(t)})]})]})]})}function nC(){var k;const t=D(T=>T.connected),n=D(T=>T.agents),[s,l]=v.useState(null),[o,u]=v.useState(!0),[d,O]=v.useState({tokens:[],cost:[],saved:[],efficiency:[],cache:[],inputOutput:[],agents:[],turns:[]}),m=v.useRef(0);v.useEffect(()=>{if(!t)return;let T=!0;async function j(){try{const N=await ee.get("/dashboard");if(!T)return;l(N),u(!1),m.current=Date.now(),O(A=>{var re,xe,ie,J,z,B,I,fe,te;const U=Date.now(),C=(Ae,Se)=>[...Ae.slice(-59),{t:U,v:Se||0}],X=((re=N.tokens)==null?void 0:re.totalTokens)||0,$=((ie=(xe=N.tokens)==null?void 0:xe.savings)==null?void 0:ie.total)||0,W=X+$,E=((J=N.tokens)==null?void 0:J.totalInputTokens)||0,ne=((z=N.tokens)==null?void 0:z.totalOutputTokens)||0;return{tokens:C(A.tokens,X),cost:C(A.cost,(B=N.tokens)==null?void 0:B.totalCostUsd),saved:C(A.saved,$),efficiency:C(A.efficiency,W>0?$/W*100:0),cache:C(A.cache,(I=N.tokens)==null?void 0:I.cacheHitRate),inputOutput:C(A.inputOutput,ne>0?E/ne:0),agents:C(A.agents,((fe=N.agents)==null?void 0:fe.running)||0),turns:C(A.turns,(te=N.tokens)==null?void 0:te.totalTurns)}})}catch{T&&u(!1)}}j();const P=setInterval(j,4e3);return()=>{T=!1,clearInterval(P)}},[t]);const p=((k=s==null?void 0:s.agents)==null?void 0:k.breakdown)||[],x=(s==null?void 0:s.routing)||null,g=(s==null?void 0:s.rotation)||null,b=(s==null?void 0:s.adaptive)||[],S=(s==null?void 0:s.journalist)||null,Q=(g==null?void 0:g.rotating)||[];return{data:s,loading:o,agents:n,connected:t,kpiHistory:d,lastFetch:m.current,agentBreakdown:p,routing:x,rotation:g,adaptive:b,journalist:S,rotating:Q}}const K1=v.memo(function({connected:n,runningCount:s,totalCount:l,uptime:o,lastFetch:u,activeTeam:d}){return i.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 bg-surface-1 border-b border-border",children:[i.jsx("h2",{className:"text-xs font-semibold text-text-0 font-sans tracking-wide uppercase",children:"Command Center"}),d&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-text-4",children:"/"}),i.jsx("span",{className:"text-xs font-mono text-text-2",children:d.name})]}),i.jsx("div",{className:"flex-1"}),n&&i.jsxs("div",{className:"flex items-center gap-3.5 text-xs font-mono text-text-2",children:[i.jsxs("span",{children:[i.jsx("span",{className:"text-text-1",children:s}),i.jsxs("span",{className:"text-text-3",children:["/",l]}),i.jsx("span",{className:"ml-1 text-text-3",children:"agents"})]}),o>0&&i.jsxs("span",{className:"text-text-3",children:["Up ",Ac(o)]}),u>0&&i.jsxs("span",{className:"flex items-center gap-1 text-text-4",children:[i.jsx(es,{size:9}),i.jsx("span",{children:Ct(u)})]})]}),i.jsx(Nl,{status:n?"running":"crashed",size:"sm"})]})});function ia(t,n){const s=parseInt(t.slice(1,3),16),l=parseInt(t.slice(3,5),16),o=parseInt(t.slice(5,7),16);return`rgba(${s},${l},${o},${n})`}const pe={surface0:"#1a1e25",surface4:"#2c313a",surface5:"#333842",text0:"#e6e6e6",text1:"#bcc2cd",text2:"#8b929e",text3:"#6e7681",text4:"#505862",accent:"#33afbc",success:"#4ae168",warning:"#e5c07b",danger:"#e06c75",info:"#61afef",purple:"#c678dd",orange:"#d19a66"};function sC({data:t,color:n=pe.accent,width:s=72,height:l=22}){if(!t||t.length<2)return i.jsx("div",{style:{width:s,height:l}});const o=t.map(x=>x.v),u=Math.min(...o),O=Math.max(...o)-u||1,m=t.map((x,g)=>{const b=g/(t.length-1)*s,S=l-(x.v-u)/O*(l-2)-1;return`${b},${S}`}).join(" "),p=`kpi-${n.replace("#","")}`;return i.jsxs("svg",{width:s,height:l,className:"flex-shrink-0",children:[i.jsx("defs",{children:i.jsxs("linearGradient",{id:p,x1:"0",y1:"0",x2:"0",y2:"1",children:[i.jsx("stop",{offset:"0%",stopColor:n,stopOpacity:"0.2"}),i.jsx("stop",{offset:"100%",stopColor:n,stopOpacity:"0"})]})}),i.jsx("polygon",{points:`0,${l} ${m} ${s},${l}`,fill:`url(#${p})`}),i.jsx("polyline",{points:m,fill:"none",stroke:n,strokeWidth:"1.5",strokeLinejoin:"round",strokeOpacity:"0.8"})]})}const lC=v.memo(function({label:n,value:s,sparkData:l,color:o=pe.accent,className:u}){return i.jsxs("div",{className:le("flex items-center gap-2.5 px-3 py-2.5 min-w-0","bg-surface-1",u),children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-0.5 truncate",children:n}),i.jsx("div",{className:"text-base font-semibold font-mono text-text-0 tabular-nums leading-none",children:s})]}),i.jsx(sC,{data:l,color:o})]})});function rC({kpis:t}){return i.jsx("div",{className:"flex flex-wrap border-b border-border",style:{background:"var(--color-surface-0)"},children:t.map(n=>i.jsx(lC,{label:n.label,value:n.value,sparkData:n.sparkData,color:n.color,className:le("flex-1 basis-[12.5%] min-w-[140px]","border-b border-r border-border")},n.label))})}const iC={actual:"ACT",estimated:"EST",local:"LOC"},oC=v.memo(function({agent:n,isRotating:s}){const l=n.status==="running"||n.status==="starting",o=Math.round((n.contextUsage||0)*100),u=s?"#c678dd":Ff(n.status),d=n.quality,O=(d==null?void 0:d.toolSuccessRate)!=null?Math.round(d.toolSuccessRate*100):null,m=n.rotationThreshold?Math.round(n.rotationThreshold*100):null;return i.jsxs("div",{className:"px-3 py-2 hover:bg-surface-3 transition-colors space-y-1.5",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"relative flex-shrink-0 w-[6px] h-[6px]",children:[i.jsx("span",{className:"absolute inset-0 rounded-sm",style:{background:u}}),l&&i.jsx("span",{className:"absolute inset-[-2px] rounded-sm",style:{background:u,opacity:.15,animation:"node-pulse-bar 2s ease-in-out infinite"}})]}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"text-xs font-semibold text-text-0 font-sans truncate leading-none",children:n.name}),i.jsxs("div",{className:"flex items-center gap-1 mt-0.5",children:[i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider",children:n.role}),i.jsx("span",{className:"text-2xs text-text-4",children:"/"}),i.jsx("span",{className:"text-2xs font-mono text-text-3",children:cC(n.model)})]})]}),i.jsx("div",{className:"flex-1"}),O!=null&&i.jsxs("span",{className:"text-2xs font-mono font-bold uppercase px-1 py-px rounded-sm flex-shrink-0",style:{color:O>=90?"#4ae168":O>=70?"#e5c07b":"#e06c75",background:O>=90?"rgba(74,225,104,0.1)":O>=70?"rgba(229,192,123,0.1)":"rgba(224,108,117,0.1)"},children:[O,"%"]}),n.costSource&&n.costSource!=="actual"&&i.jsx("span",{className:"text-2xs font-mono text-text-4 uppercase tracking-wider flex-shrink-0",children:iC[n.costSource]||""}),i.jsxs("div",{className:"text-right flex-shrink-0",children:[i.jsx("div",{className:"text-xs font-mono text-text-1 tabular-nums leading-none",children:rt(n.tokens||0)}),(n.costUsd||0)>0&&i.jsx("div",{className:"text-2xs font-mono text-text-3 mt-0.5",children:Kf(n.costUsd)})]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("div",{className:"relative flex-1 h-[3px] bg-surface-0 rounded-full overflow-visible",children:[i.jsx("div",{className:"absolute inset-y-0 left-0 rounded-full transition-all duration-700",style:{width:`${Math.max(o,1)}%`,background:o>80?"#e06c75":o>60?"#e5c07b":l?"#61afef":"#333842"}}),m&&i.jsx("div",{className:"absolute top-[-2px] w-px h-[7px]",style:{left:`${m}%`,background:"#c678dd"},title:`Rotation at ${m}%`})]}),i.jsxs("span",{className:"text-2xs font-mono text-text-2 tabular-nums flex-shrink-0 w-7 text-right",children:[o,"%"]})]})]})});function cC(t){if(!t||t==="auto"||t==="default")return"default";const n=t.match(/^claude-(opus|sonnet|haiku)-(\d+)-(\d+)/);return n?`${n[1][0].toUpperCase()}${n[1].slice(1)} ${n[2]}.${n[3]}`:t.startsWith("gemini-")?t.replace("gemini-","Gem ").replace("-preview",""):t.length>12?t.slice(0,12)+"...":t}const uC=v.memo(function({agentBreakdown:n,rotating:s=[]}){if(!(n!=null&&n.length))return i.jsx("div",{className:"flex-1 flex items-center justify-center text-xs text-text-3 font-mono p-4",children:"No agents"});const l={};for(const u of n){const d=u.teamId||"ungrouped";l[d]||(l[d]=[]),l[d].push(u)}const o=new Set(s);return i.jsx(Ht,{className:"flex-1",children:i.jsx("div",{className:"py-1",children:Object.entries(l).map(([u,d])=>i.jsxs("div",{children:[i.jsx("div",{className:"px-3 pt-2 pb-1",children:i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-widest",children:u})}),d.map(O=>i.jsx(oC,{agent:O,isRotating:o.has(O.id)},O.id))]},u))})})}),dC=v.memo(function({data:n}){const s=v.useRef(null),l=v.useRef(null),[o,u]=v.useState({width:0,height:0}),[d,O]=v.useState(null),{width:m,height:p}=o,x={top:28,right:12,bottom:8,left:12},g=Math.max(m-x.left-x.right,0),b=Math.max(p-x.top-x.bottom,0),S=v.useMemo(()=>!n||n.length<2?[]:n.slice(1).map((T,j)=>{const P=n[j],N=(T.t-P.t)/6e4,A=Math.max((T.tokens||0)-(P.tokens||0),0);return{burnRate:N>0?Math.round(A/N):0,cacheHitRate:T.cacheHitRate||0,running:T.running||0,agents:T.agents||0,t:T.t}}),[n]);v.useEffect(()=>{const T=s.current;if(!T)return;const j=new ResizeObserver(P=>{const{width:N,height:A}=P[0].contentRect;N>0&&A>0&&u({width:Math.floor(N),height:Math.floor(A)})});return j.observe(T),()=>j.disconnect()},[]);const Q=v.useCallback(T=>{const j=l.current;if(!j||!S.length||g<=0)return;const P=j.getBoundingClientRect(),N=T.clientX-P.left-x.left;if(N<0||N>g){O(null);return}const A=Math.round(N/g*(S.length-1));O({x:x.left+A/Math.max(S.length-1,1)*g,index:A})},[S,g,x.left]),k=v.useCallback(()=>O(null),[]);return v.useEffect(()=>{const T=l.current;if(!T||!S.length||m<=0||p<=0||g<=0||b<=0)return;const j=T.getContext("2d"),P=window.devicePixelRatio||1;T.width=m*P,T.height=p*P,j.scale(P,P),j.clearRect(0,0,m,p);const N=S.map(z=>z.burnRate),A=S.map(z=>z.cacheHitRate),U=S.map(z=>z.running),C=Math.max(...N,100),X=Math.max(...U,1),$=z=>x.left+z/Math.max(S.length-1,1)*g,W=z=>x.top+b-z/C*b,E=z=>x.top+b-z*b,ne=Math.max(g/S.length-1,2);for(let z=0;z<S.length;z++){const B=U[z];if(B<=0)continue;const I=B/X*b*.3,fe=$(z)-ne/2,te=x.top+b-I;j.fillStyle=ia(pe.surface5,.5),j.fillRect(fe,te,ne,I)}j.setLineDash([2,4]),j.strokeStyle=ia(pe.text4,.2),j.lineWidth=1;for(let z=1;z<=3;z++){const B=x.top+b/4*z;j.beginPath(),j.moveTo(x.left,B),j.lineTo(x.left+g,B),j.stroke()}j.setLineDash([]),j.font="9px 'JetBrains Mono Variable', monospace",j.textAlign="left",j.fillStyle=ia(pe.text3,.5),j.fillText(`${rt(C)}/m`,x.left+4,x.top+10),j.fillText(`${rt(Math.round(C/2))}/m`,x.left+4,x.top+b/2+4),j.beginPath(),j.moveTo(x.left,x.top+b);for(let z=0;z<S.length;z++)j.lineTo($(z),W(N[z]));j.lineTo($(S.length-1),x.top+b),j.closePath();const re=j.createLinearGradient(0,x.top,0,x.top+b);re.addColorStop(0,ia(pe.accent,.2)),re.addColorStop(.7,ia(pe.accent,.04)),re.addColorStop(1,ia(pe.accent,0)),j.fillStyle=re,j.fill(),j.beginPath(),j.strokeStyle=pe.accent,j.lineWidth=1.5,j.lineJoin="round";for(let z=0;z<S.length;z++){const B=$(z),I=W(N[z]);z===0?j.moveTo(B,I):j.lineTo(B,I)}j.stroke();const xe=A.some(z=>z>0);if(xe){j.beginPath(),j.strokeStyle=ia(pe.info,.45),j.lineWidth=1,j.lineJoin="round",j.setLineDash([2,3]);for(let z=0;z<S.length;z++){const B=$(z),I=E(A[z]);z===0?j.moveTo(B,I):j.lineTo(B,I)}j.stroke(),j.setLineDash([])}j.font="9px 'Inter Variable', sans-serif",j.textAlign="right";let ie=m-x.right-4;const J=14;if(xe&&(j.fillStyle=ia(pe.info,.5),j.fillText("Cache %",ie,J),ie-=j.measureText("Cache %").width+4,j.beginPath(),j.arc(ie,J-3,2.5,0,Math.PI*2),j.fill(),ie-=14),j.fillStyle=ia(pe.surface5,.7),j.fillText("Agents",ie,J),ie-=j.measureText("Agents").width+4,j.beginPath(),j.arc(ie,J-3,2.5,0,Math.PI*2),j.fill(),ie-=14,j.fillStyle=pe.accent,j.fillText("Burn Rate",ie,J),ie-=j.measureText("Burn Rate").width+4,j.beginPath(),j.arc(ie,J-3,2.5,0,Math.PI*2),j.fill(),d&&d.index>=0&&d.index<S.length){const z=d.x,B=S[d.index];j.beginPath(),j.moveTo(z,x.top),j.lineTo(z,x.top+b),j.strokeStyle=ia(pe.text1,.15),j.lineWidth=1,j.stroke();const I=W(B.burnRate);j.beginPath(),j.arc(z,I,3,0,Math.PI*2),j.fillStyle=pe.accent,j.fill();const fe=[{label:"Burn",value:`${rt(B.burnRate)}/m`,color:pe.accent},{label:"Cache",value:ws(B.cacheHitRate*100),color:pe.info},{label:"Agents",value:`${B.running}/${B.agents}`,color:pe.text2}],te=104,Ae=fe.length*16+12;let Se=z+12;Se+te>m-8&&(Se=z-te-12);const ve=Math.max(x.top,I-Ae/2);j.fillStyle=ia(pe.surface0,.92),j.beginPath(),j.roundRect(Se,ve,te,Ae,4),j.fill(),j.strokeStyle=ia(pe.text4,.2),j.lineWidth=1,j.stroke(),j.textAlign="left",fe.forEach((Xe,L)=>{const oe=ve+14+L*16;j.beginPath(),j.arc(Se+8,oe-3,2,0,Math.PI*2),j.fillStyle=Xe.color,j.fill(),j.font="8px 'Inter Variable', sans-serif",j.fillStyle=pe.text3,j.fillText(Xe.label,Se+14,oe),j.font="9px 'JetBrains Mono Variable', monospace",j.fillStyle=pe.text0,j.textAlign="right",j.fillText(Xe.value,Se+te-8,oe),j.textAlign="left"})}},[S,m,p,d,g,b,x]),i.jsx("div",{ref:s,className:"absolute inset-0",children:m>0&&p>0&&i.jsx("canvas",{ref:l,style:{width:m,height:p},className:"block cursor-crosshair",onMouseMove:Q,onMouseLeave:k})})}),OC=v.memo(function({cacheRead:n=0,cacheCreation:s=0,totalInput:l=0,size:o=140}){const u=v.useRef(null),d=n+s+l,O=d>0?n/d*100:0;return v.useEffect(()=>{const m=u.current;if(!m)return;const p=window.devicePixelRatio||1;m.width=o*p,m.height=o*p;const x=m.getContext("2d");x.scale(p,p),x.clearRect(0,0,o,o);const g=o/2,b=o/2,S=(o-12)/2,Q=5,k=135*Math.PI/180,T=405*Math.PI/180,j=T-k;if(x.beginPath(),x.arc(g,b,S,k,T),x.strokeStyle=pe.surface4,x.lineWidth=Q,x.lineCap="round",x.stroke(),d>0){const P=n/d,N=s/d;if(P>0){const A=k+j*P;x.beginPath(),x.arc(g,b,S,k,A),x.strokeStyle=pe.accent,x.lineWidth=Q,x.lineCap="round",x.stroke()}if(N>0){const A=k+j*P,U=A+j*N;x.beginPath(),x.arc(g,b,S,A,U),x.strokeStyle=pe.purple,x.lineWidth=Q,x.lineCap="butt",x.stroke()}}x.textAlign="center",x.textBaseline="middle",x.font=`600 ${o*.2}px 'JetBrains Mono Variable', monospace`,x.fillStyle=pe.text0,x.fillText(`${Math.round(O)}%`,g,b-3),x.font=`500 ${o*.08}px 'JetBrains Mono Variable', monospace`,x.fillStyle=pe.text3,x.fillText("CACHE",g,b+o*.13)},[n,s,l,o,d,O]),i.jsxs("div",{className:"flex flex-col items-center justify-center h-full px-3 py-3",children:[i.jsx("canvas",{ref:u,className:"flex-shrink-0",style:{width:o,height:o}}),i.jsxs("div",{className:"w-full mt-3 space-y-1.5 max-w-[160px]",children:[i.jsx(MO,{color:pe.accent,label:"Read",value:rt(n)}),i.jsx(MO,{color:pe.purple,label:"Create",value:rt(s)}),i.jsx(MO,{color:pe.surface5,label:"Miss",value:rt(Math.max(l-n-s,0))})]})]})});function MO({color:t,label:n,value:s}){return i.jsxs("div",{className:"flex items-center gap-2 text-xs font-mono",children:[i.jsx("span",{className:"w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:t}}),i.jsx("span",{className:"text-text-3 uppercase tracking-wider flex-1",children:n}),i.jsx("span",{className:"text-text-1 tabular-nums",children:s})]})}const J1={heavy:pe.danger,medium:pe.warning,light:pe.success},e0={heavy:"Heavy",medium:"Medium",light:"Light"},fC=v.memo(function({routing:n,agentBreakdown:s}){if(!n)return null;const{byTier:l={},totalDecisions:o=0,autoRoutedCount:u=0}=n,d=["heavy","medium","light"],O=d.reduce((g,b)=>g+(l[b]||0),0),m={};for(const g of s||[]){const b=g.model||"default";m[b]||(m[b]={tokens:0,agents:0}),m[b].tokens+=g.tokens||0,m[b].agents+=1}const p=Object.entries(m).sort((g,b)=>b[1].tokens-g[1].tokens),x=p.length>0?p[0][1].tokens:0;return i.jsxs("div",{className:"flex flex-col h-full px-3 py-3 overflow-y-auto",children:[O>0&&i.jsxs("div",{className:"space-y-1.5 mb-3",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider",children:"Tier Distribution"}),i.jsxs("span",{className:"text-2xs font-mono text-text-4 ml-auto tabular-nums",children:[rt(O)," decisions"]})]}),i.jsx("div",{className:"h-[6px] bg-surface-0 rounded-full overflow-hidden flex",children:d.map(g=>{const b=l[g]||0;if(b===0)return null;const S=b/O*100;return i.jsx("div",{className:"h-full transition-all duration-500",style:{width:`${S}%`,background:J1[g]},title:`${e0[g]}: ${b} (${Math.round(S)}%)`},g)})}),i.jsx("div",{className:"flex items-center gap-3",children:d.map(g=>{const b=l[g]||0;if(b===0)return null;const S=O>0?b/O*100:0;return i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:J1[g]}}),i.jsx("span",{className:"text-2xs font-mono text-text-2",children:e0[g]}),i.jsx("span",{className:"text-2xs font-mono text-text-4 tabular-nums",children:ws(S)})]},g)})})]}),p.length>0&&i.jsxs("div",{className:"space-y-1.5 flex-1",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider",children:"Models in Use"}),u>0&&i.jsxs("span",{className:"text-2xs font-mono text-text-4 ml-auto",children:[u," auto"]})]}),i.jsx("div",{className:"space-y-1.5",children:p.map(([g,b])=>{const S=x>0?b.tokens/x*100:0;return i.jsxs("div",{className:"space-y-0.5",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-xs font-mono text-text-1 flex-1 truncate",children:hC(g)}),i.jsxs("span",{className:"text-2xs font-mono text-text-3 tabular-nums",children:[b.agents," agent",b.agents!==1?"s":""]}),i.jsx("span",{className:"text-xs font-mono text-text-1 tabular-nums",children:rt(b.tokens)})]}),i.jsx("div",{className:"h-[3px] bg-surface-0 rounded-full overflow-hidden",children:i.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${Math.max(S,2)}%`,background:pe.accent}})})]},g)})})]}),O===0&&p.length===0&&i.jsx("div",{className:"flex-1 flex items-center justify-center text-xs text-text-3 font-mono",children:"No routing data"})]})});function hC(t){if(!t||t==="auto"||t==="default")return"Default";const n=t.match(/^claude-(opus|sonnet|haiku)-(\d+)-(\d+)/);return n?`${n[1][0].toUpperCase()}${n[1].slice(1)} ${n[2]}.${n[3]}`:t.startsWith("gemini-")?t.replace("gemini-","Gemini ").replace("-preview",""):t}function mC(t){const n=t+"CollectionProvider",[s,l]=Ns(n),[o,u]=s(n,{collectionRef:{current:null},itemMap:new Map}),d=k=>{const{scope:T,children:j}=k,P=Vn.useRef(null),N=Vn.useRef(new Map).current;return i.jsx(o,{scope:T,itemMap:N,collectionRef:P,children:j})};d.displayName=n;const O=t+"CollectionSlot",m=ec(O),p=Vn.forwardRef((k,T)=>{const{scope:j,children:P}=k,N=u(O,j),A=it(T,N.collectionRef);return i.jsx(m,{ref:A,children:P})});p.displayName=O;const x=t+"CollectionItemSlot",g="data-radix-collection-item",b=ec(x),S=Vn.forwardRef((k,T)=>{const{scope:j,children:P,...N}=k,A=Vn.useRef(null),U=it(T,A),C=u(x,j);return Vn.useEffect(()=>(C.itemMap.set(A,{ref:A,...N}),()=>void C.itemMap.delete(A))),i.jsx(b,{[g]:"",ref:U,children:P})});S.displayName=x;function Q(k){const T=u(t+"CollectionConsumer",k);return Vn.useCallback(()=>{const P=T.collectionRef.current;if(!P)return[];const N=Array.from(P.querySelectorAll(`[${g}]`));return Array.from(T.itemMap.values()).sort((C,X)=>N.indexOf(C.ref.current)-N.indexOf(X.ref.current))},[T.collectionRef,T.itemMap])}return[{Provider:d,Slot:p,ItemSlot:S},Q,l]}var YO="rovingFocusGroup.onEntryFocus",pC={bubbles:!1,cancelable:!0},di="RovingFocusGroup",[yf,Ry,xC]=mC(di),[gC,Cy]=Ns(di,[xC]),[bC,vC]=gC(di),Xy=v.forwardRef((t,n)=>i.jsx(yf.Provider,{scope:t.__scopeRovingFocusGroup,children:i.jsx(yf.Slot,{scope:t.__scopeRovingFocusGroup,children:i.jsx(yC,{...t,ref:n})})}));Xy.displayName=di;var yC=v.forwardRef((t,n)=>{const{__scopeRovingFocusGroup:s,orientation:l,loop:o=!1,dir:u,currentTabStopId:d,defaultCurrentTabStopId:O,onCurrentTabStopIdChange:m,onEntryFocus:p,preventScrollOnEntryFocus:x=!1,...g}=t,b=v.useRef(null),S=it(n,b),Q=Jf(u),[k,T]=Pc({prop:d,defaultProp:O??null,onChange:m,caller:di}),[j,P]=v.useState(!1),N=zt(p),A=Ry(s),U=v.useRef(!1),[C,X]=v.useState(0);return v.useEffect(()=>{const $=b.current;if($)return $.addEventListener(YO,N),()=>$.removeEventListener(YO,N)},[N]),i.jsx(bC,{scope:s,orientation:l,dir:Q,loop:o,currentTabStopId:k,onItemFocus:v.useCallback($=>T($),[T]),onItemShiftTab:v.useCallback(()=>P(!0),[]),onFocusableItemAdd:v.useCallback(()=>X($=>$+1),[]),onFocusableItemRemove:v.useCallback(()=>X($=>$-1),[]),children:i.jsx(Be.div,{tabIndex:j||C===0?-1:0,"data-orientation":l,...g,ref:S,style:{outline:"none",...t.style},onMouseDown:Ee(t.onMouseDown,()=>{U.current=!0}),onFocus:Ee(t.onFocus,$=>{const W=!U.current;if($.target===$.currentTarget&&W&&!j){const E=new CustomEvent(YO,pC);if($.currentTarget.dispatchEvent(E),!E.defaultPrevented){const ne=A().filter(z=>z.focusable),re=ne.find(z=>z.active),xe=ne.find(z=>z.id===k),J=[re,xe,...ne].filter(Boolean).map(z=>z.ref.current);Ay(J,x)}}U.current=!1}),onBlur:Ee(t.onBlur,()=>P(!1))})})}),_y="RovingFocusGroupItem",Zy=v.forwardRef((t,n)=>{const{__scopeRovingFocusGroup:s,focusable:l=!0,active:o=!1,tabStopId:u,children:d,...O}=t,m=Ql(),p=u||m,x=vC(_y,s),g=x.currentTabStopId===p,b=Ry(s),{onFocusableItemAdd:S,onFocusableItemRemove:Q,currentTabStopId:k}=x;return v.useEffect(()=>{if(l)return S(),()=>Q()},[l,S,Q]),i.jsx(yf.ItemSlot,{scope:s,id:p,focusable:l,active:o,children:i.jsx(Be.span,{tabIndex:g?0:-1,"data-orientation":x.orientation,...O,ref:n,onMouseDown:Ee(t.onMouseDown,T=>{l?x.onItemFocus(p):T.preventDefault()}),onFocus:Ee(t.onFocus,()=>x.onItemFocus(p)),onKeyDown:Ee(t.onKeyDown,T=>{if(T.key==="Tab"&&T.shiftKey){x.onItemShiftTab();return}if(T.target!==T.currentTarget)return;const j=jC(T,x.orientation,x.dir);if(j!==void 0){if(T.metaKey||T.ctrlKey||T.altKey||T.shiftKey)return;T.preventDefault();let N=b().filter(A=>A.focusable).map(A=>A.ref.current);if(j==="last")N.reverse();else if(j==="prev"||j==="next"){j==="prev"&&N.reverse();const A=N.indexOf(T.currentTarget);N=x.loop?wC(N,A+1):N.slice(A+1)}setTimeout(()=>Ay(N))}}),children:typeof d=="function"?d({isCurrentTabStop:g,hasTabStop:k!=null}):d})})});Zy.displayName=_y;var SC={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function QC(t,n){return n!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function jC(t,n,s){const l=QC(t.key,s);if(!(n==="vertical"&&["ArrowLeft","ArrowRight"].includes(l))&&!(n==="horizontal"&&["ArrowUp","ArrowDown"].includes(l)))return SC[l]}function Ay(t,n=!1){const s=document.activeElement;for(const l of t)if(l===s||(l.focus({preventScroll:n}),document.activeElement!==s))return}function wC(t,n){return t.map((s,l)=>t[(n+l)%t.length])}var kC=Xy,$C=Zy,Vc="Tabs",[TC]=Ns(Vc,[Cy]),Ey=Cy(),[PC,xh]=TC(Vc),qy=v.forwardRef((t,n)=>{const{__scopeTabs:s,value:l,onValueChange:o,defaultValue:u,orientation:d="horizontal",dir:O,activationMode:m="automatic",...p}=t,x=Jf(O),[g,b]=Pc({prop:l,onChange:o,defaultProp:u??"",caller:Vc});return i.jsx(PC,{scope:s,baseId:Ql(),value:g,onValueChange:b,orientation:d,dir:x,activationMode:m,children:i.jsx(Be.div,{dir:x,"data-orientation":d,...p,ref:n})})});qy.displayName=Vc;var My="TabsList",Yy=v.forwardRef((t,n)=>{const{__scopeTabs:s,loop:l=!0,...o}=t,u=xh(My,s),d=Ey(s);return i.jsx(kC,{asChild:!0,...d,orientation:u.orientation,dir:u.dir,loop:l,children:i.jsx(Be.div,{role:"tablist","aria-orientation":u.orientation,...o,ref:n})})});Yy.displayName=My;var Vy="TabsTrigger",Uy=v.forwardRef((t,n)=>{const{__scopeTabs:s,value:l,disabled:o=!1,...u}=t,d=xh(Vy,s),O=Ey(s),m=Dy(d.baseId,l),p=Wy(d.baseId,l),x=l===d.value;return i.jsx($C,{asChild:!0,...O,focusable:!o,active:x,children:i.jsx(Be.button,{type:"button",role:"tab","aria-selected":x,"aria-controls":p,"data-state":x?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:m,...u,ref:n,onMouseDown:Ee(t.onMouseDown,g=>{!o&&g.button===0&&g.ctrlKey===!1?d.onValueChange(l):g.preventDefault()}),onKeyDown:Ee(t.onKeyDown,g=>{[" ","Enter"].includes(g.key)&&d.onValueChange(l)}),onFocus:Ee(t.onFocus,()=>{const g=d.activationMode!=="manual";!x&&!o&&g&&d.onValueChange(l)})})})});Uy.displayName=Vy;var Gy="TabsContent",Ly=v.forwardRef((t,n)=>{const{__scopeTabs:s,value:l,forceMount:o,children:u,...d}=t,O=xh(Gy,s),m=Dy(O.baseId,l),p=Wy(O.baseId,l),x=l===O.value,g=v.useRef(x);return v.useEffect(()=>{const b=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(b)},[]),i.jsx(ba,{present:o||x,children:({present:b})=>i.jsx(Be.div,{"data-state":x?"active":"inactive","data-orientation":O.orientation,role:"tabpanel","aria-labelledby":m,hidden:!b,id:p,tabIndex:0,...d,ref:n,style:{...t.style,animationDuration:g.current?"0s":void 0},children:b&&u})})});Ly.displayName=Gy;function Dy(t,n){return`${t}-trigger-${n}`}function Wy(t,n){return`${t}-content-${n}`}var NC=qy,zC=Yy,RC=Uy,CC=Ly;function By({children:t,...n}){return i.jsx(NC,{...n,children:t})}function Hy({children:t,className:n,...s}){return i.jsx(zC,{className:le("flex items-center gap-0 border-b border-border-subtle",n),...s,children:t})}function Ur({children:t,className:n,...s}){return i.jsx(RC,{className:le("px-3 py-2 text-sm font-medium font-sans text-text-2","border-b-2 border-transparent","hover:text-text-0 hover:bg-surface-5/50","data-[state=active]:text-text-0 data-[state=active]:border-accent","transition-colors duration-100 cursor-pointer select-none","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent",n),...s,children:t})}function Gr({children:t,className:n,...s}){return i.jsx(CC,{className:le("flex-1 min-h-0",n),...s,children:t})}function t0({data:t,color:n=pe.accent,width:s=60,height:l=16}){if(!t||t.length<2)return i.jsx("div",{style:{width:s,height:l}});const o=Array.isArray(t[0])?t:t.map(p=>typeof p=="number"?p:p.v),u=Math.min(...o),O=Math.max(...o)-u||1,m=o.map((p,x)=>{const g=x/(o.length-1)*s,b=l-(p-u)/O*(l-2)-1;return`${g},${b}`}).join(" ");return i.jsx("svg",{width:s,height:l,className:"flex-shrink-0",children:i.jsx("polyline",{points:m,fill:"none",stroke:n,strokeWidth:"1",strokeLinejoin:"round",strokeOpacity:"0.7"})})}function VO({label:t,value:n,total:s,color:l}){const o=s>0?n/s*100:0;return i.jsxs("div",{className:"space-y-0.5",children:[i.jsxs("div",{className:"flex items-center justify-between text-xs font-mono",children:[i.jsx("span",{className:"text-text-2",children:t}),i.jsx("span",{className:"text-text-1 tabular-nums",children:rt(n)})]}),i.jsx("div",{className:"h-[2px] bg-surface-0 rounded-full overflow-hidden",children:i.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${Math.min(o,100)}%`,background:l}})})]})}function XC({tokens:t,rotation:n}){var d;const s=(t==null?void 0:t.savings)||{},l=s.total||0,u=((t==null?void 0:t.totalTokens)||0)+l;return i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"p-3 space-y-4",children:[i.jsxs("div",{className:"flex gap-4",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-0.5",children:"Rotations"}),i.jsx("div",{className:"text-xl font-mono font-semibold text-text-0 tabular-nums leading-none",children:(n==null?void 0:n.totalRotations)||0})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-0.5",children:"Saved"}),i.jsx("div",{className:"text-xl font-mono font-semibold text-success tabular-nums leading-none",children:rt(l)}),u>0&&i.jsxs("div",{className:"text-2xs font-mono text-text-3 mt-0.5",children:[ws(l/u*100)," of total"]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(VO,{label:"Rotation",value:s.fromRotation||0,total:u,color:pe.accent}),i.jsx(VO,{label:"Conflict prevention",value:s.fromConflictPrevention||0,total:u,color:pe.purple}),i.jsx(VO,{label:"Cold-start skip",value:s.fromColdStartSkip||0,total:u,color:pe.info})]}),((d=n==null?void 0:n.history)==null?void 0:d.length)>0&&i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-1.5",children:"Recent"}),i.jsx("div",{className:"space-y-1",children:n.history.slice(-8).reverse().map((O,m)=>i.jsxs("div",{className:"flex items-center gap-2 text-xs font-mono px-2 py-1 bg-surface-0 rounded",children:[i.jsx("span",{className:"text-text-1 font-medium capitalize truncate flex-1",children:O.agentName||O.role}),i.jsx("span",{className:"text-text-3 tabular-nums",children:ws((O.contextUsage||0)*100)}),i.jsx("span",{className:"text-text-4",children:Ct(O.timestamp)})]},m))})]})]})})}function _C({adaptive:t}){if(!(t!=null&&t.length))return i.jsx("div",{className:"flex-1 flex items-center justify-center text-xs text-text-3 font-mono p-4",children:"No adaptive profiles"});function n(s){const l=s.split(":");return{provider:l[0]||s,role:l[1]||""}}return i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"p-3 space-y-1",children:[i.jsxs("div",{className:"flex items-center gap-2 px-2 pb-1 text-2xs font-mono text-text-4 uppercase tracking-wider",children:[i.jsx("span",{className:"flex-1",children:"Role"}),i.jsx("span",{className:"w-12 text-right",children:"Threshold"}),i.jsx("span",{className:"w-12 text-right",children:"Adj."}),i.jsx("span",{className:"w-14 text-right",children:"Status"})]}),t.map(s=>{var O,m;const{provider:l,role:o}=n(s.key),u=((O=s.thresholdHistory)==null?void 0:O.length)>1,d=((m=s.recentScores)==null?void 0:m.length)>1;return i.jsxs("div",{className:"bg-surface-0 rounded px-2 py-1.5",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("span",{className:"text-xs font-mono text-text-1 capitalize",children:o||l}),o&&i.jsx("span",{className:"text-2xs font-mono text-text-4 ml-1.5",children:l})]}),i.jsx("span",{className:"w-12 text-right text-xs font-mono font-semibold text-text-0 tabular-nums",children:ws(s.threshold*100)}),i.jsx("span",{className:"w-12 text-right text-2xs font-mono text-text-3 tabular-nums",children:s.adjustments}),i.jsx("span",{className:le("w-14 text-right text-2xs font-mono font-bold uppercase",s.converged?"text-success":"text-text-4"),children:s.converged?"Converged":"Learning"})]}),(u||d)&&i.jsxs("div",{className:"flex items-center gap-3 mt-1.5 pl-1",children:[u&&i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"text-2xs font-mono text-text-4",children:"Threshold"}),i.jsx(t0,{data:s.thresholdHistory.map(p=>p.v),color:s.converged?pe.success:pe.accent,width:70,height:12})]}),d&&i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"text-2xs font-mono text-text-4",children:"Quality"}),i.jsx(t0,{data:s.recentScores,color:pe.warning,width:70,height:12})]})]})]},s.key)})]})})}function ZC({journalist:t}){var n;return t?i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"p-3 space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-0.5",children:"Cycles"}),i.jsx("div",{className:"text-lg font-mono font-semibold text-text-0 tabular-nums leading-none",children:t.cycleCount||0})]}),t.lastCycleAt&&i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-0.5",children:"Last"}),i.jsx("div",{className:"text-xs font-mono text-text-2",children:Ct(t.lastCycleAt)})]}),t.synthesizing&&i.jsx("span",{className:"text-2xs font-mono font-bold text-accent uppercase tracking-wider animate-pulse",children:"Synthesizing"})]}),t.lastSummary&&i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-1",children:"Summary"}),i.jsx("div",{className:"text-xs font-sans text-text-2 leading-relaxed",children:t.lastSummary})]}),t.projectMap&&i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-1",children:"Project Map"}),i.jsx("div",{className:"text-xs font-mono text-text-2 leading-relaxed whitespace-pre-wrap",children:t.projectMap})]}),t.decisions&&i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-1",children:"Decisions"}),i.jsx("div",{className:"text-xs font-mono text-text-2 leading-relaxed whitespace-pre-wrap",children:t.decisions})]}),((n=t.recentHistory)==null?void 0:n.length)>0&&i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-1.5",children:"History"}),i.jsx("div",{className:"space-y-1",children:t.recentHistory.slice().reverse().map((s,l)=>i.jsxs("div",{className:"flex items-center gap-2 text-xs font-mono px-2 py-1 bg-surface-0 rounded",children:[i.jsxs("span",{className:"text-text-3",children:["#",s.cycle]}),i.jsxs("span",{className:"text-text-2 flex-1 truncate",children:[s.agentCount," agents"]}),i.jsx("span",{className:"text-text-4",children:Ct(s.timestamp)})]},l))})]})]})}):i.jsx("div",{className:"flex-1 flex items-center justify-center text-xs text-text-3 font-mono p-4",children:"Journalist inactive"})}const AC=v.memo(function({tokens:n,rotation:s,adaptive:l,journalist:o}){return i.jsxs(By,{defaultValue:"rotation",className:"flex flex-col h-full",children:[i.jsxs(Hy,{className:"flex-shrink-0 px-1",children:[i.jsxs(Ur,{value:"rotation",className:"text-xs px-2.5 py-1.5 inline-flex items-center gap-1.5",children:[i.jsx(El,{size:11}),"Rotation"]}),i.jsxs(Ur,{value:"adaptive",className:"text-xs px-2.5 py-1.5 inline-flex items-center gap-1.5",children:[i.jsx(v5,{size:11}),"Adaptive"]}),i.jsxs(Ur,{value:"journalist",className:"text-xs px-2.5 py-1.5 inline-flex items-center gap-1.5",children:[i.jsx(Wf,{size:11}),"Journalist"]})]}),i.jsx(Gr,{value:"rotation",className:"flex-1 min-h-0 overflow-hidden",children:i.jsx(XC,{tokens:n,rotation:s})}),i.jsx(Gr,{value:"adaptive",className:"flex-1 min-h-0 overflow-hidden",children:i.jsx(_C,{adaptive:l})}),i.jsx(Gr,{value:"journalist",className:"flex-1 min-h-0 overflow-hidden",children:i.jsx(ZC,{journalist:o})})]})}),EC={spawn:hP,complete:Br,crash:_c,kill:$b,rotate:El,error:Hf},qC={spawn:"text-accent",complete:"text-success",crash:"text-danger",kill:"text-text-3",rotate:"text-purple",error:"text-danger"};function MC(t){const n=t.agentName||t.role||"";switch(t.type){case"spawn":return`${n} spawned`;case"complete":return`${n} completed`;case"crash":return`${n} crashed`;case"kill":return`${n} killed`;case"rotate":return`${n} rotated`;default:return t.text||t.type||"event"}}const YC=v.memo(function({events:n=[]}){return n.length?i.jsx("div",{className:"flex items-center gap-3 overflow-x-auto py-2 px-3",children:n.slice(-15).reverse().map((s,l)=>{const o=EC[s.type]||Na,u=qC[s.type]||"text-text-3",d=MC(s);return i.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[i.jsx(o,{size:11,className:u}),i.jsx("span",{className:"text-xs font-sans text-text-2 whitespace-nowrap",children:d}),i.jsx("span",{className:"text-2xs font-mono text-text-4",children:Ct(s.t||s.timestamp)})]},l)})}):i.jsx("div",{className:"text-xs text-text-3 font-mono py-2.5 text-center",children:"No recent activity"})});function Nt({className:t,...n}){return i.jsx("div",{className:le("rounded-md bg-surface-4","bg-gradient-to-r from-surface-4 via-surface-5 to-surface-4","bg-[length:200%_100%] animate-[shimmer_1.5s_ease-in-out_infinite]",t),...n})}function VC(){return i.jsxs("div",{className:"flex-1 grid gap-px p-0",style:{gridTemplateRows:"auto minmax(0, 1fr) minmax(0, 1fr)",gridTemplateColumns:"3fr 1.5fr 1.5fr",background:"#282c34"},children:[i.jsx("div",{className:"col-span-3",children:i.jsx(Nt,{className:"h-[72px] rounded-none"})}),i.jsx(Nt,{className:"rounded-none"}),i.jsx(Nt,{className:"rounded-none"}),i.jsx(Nt,{className:"rounded-none"}),i.jsx(Nt,{className:"rounded-none"}),i.jsx("div",{className:"col-span-2",children:i.jsx(Nt,{className:"h-full rounded-none"})})]})}function UC(){const{data:t,loading:n,agents:s,connected:l,kpiHistory:o,lastFetch:u,agentBreakdown:d,routing:O,rotation:m,adaptive:p,journalist:x,rotating:g}=nC(),b=s.filter(C=>C.status==="running").length;if(!l)return i.jsx("div",{className:"w-full h-full flex items-center justify-center",children:i.jsxs("div",{className:"text-center space-y-2 text-text-3 font-mono",children:[i.jsx(Rc,{size:28,className:"mx-auto"}),i.jsx("p",{className:"text-xs",children:"Connecting to daemon..."})]})});if(n||!t)return i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsx(K1,{connected:l,runningCount:0,totalCount:0,uptime:0,lastFetch:0}),i.jsx(VC,{})]});const S=t.tokens||{},Q={totalTokens:S.totalTokens||0,totalCostUsd:S.totalCostUsd||0,totalInputTokens:S.totalInputTokens||0,totalOutputTokens:S.totalOutputTokens||0,cacheReadTokens:S.cacheReadTokens||0,cacheCreationTokens:S.cacheCreationTokens||0,cacheHitRate:S.cacheHitRate||0,totalTurns:S.totalTurns||0,agentCount:S.agentCount||0,savings:S.savings||{}},k=Q.totalTokens+(Q.savings.total||0),T=k>0?(Q.savings.total||0)/k*100:0,j=Q.totalOutputTokens>0?(Q.totalInputTokens/Q.totalOutputTokens).toFixed(1):"—",P=t.timeline||{},N=P.snapshots||[],A=P.events||t.events||[],U=[{label:"Tokens Used",value:rt(Q.totalTokens),sparkData:o.tokens,color:pe.accent},{label:"Total Cost",value:Kf(Q.totalCostUsd),sparkData:o.cost,color:pe.warning},{label:"Tokens Saved",value:rt(Q.savings.total||0),sparkData:o.saved,color:pe.success},{label:"Efficiency",value:ws(T),sparkData:o.efficiency,color:pe.purple},{label:"Cache Rate",value:ws(Q.cacheHitRate*100),sparkData:o.cache,color:pe.info},{label:"I/O Ratio",value:`${j}:1`,sparkData:o.inputOutput,color:pe.orange},{label:"Agents",value:`${b}/${s.length}`,sparkData:o.agents,color:pe.accent},{label:"Turns",value:rt(Q.totalTurns),sparkData:o.turns,color:pe.text2}];return i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsx(K1,{connected:l,runningCount:b,totalCount:s.length,uptime:t.uptime||0,lastFetch:u,activeTeam:t.activeTeam}),i.jsx(rC,{kpis:U}),i.jsxs("div",{className:"flex-1 min-h-0 grid",style:{gridTemplateRows:"minmax(0, 1fr) minmax(0, 1fr)",gridTemplateColumns:"3fr 1.5fr 1.5fr",background:"#282c34",gap:"1px"},children:[i.jsx("div",{className:"min-w-0 min-h-0 overflow-hidden bg-surface-1 relative",children:i.jsx(dC,{data:N})}),i.jsxs("div",{className:"min-w-0 min-h-0 overflow-hidden bg-surface-1 flex flex-col border-l border-border",children:[i.jsx("div",{className:"px-3 pt-2.5 pb-1",children:i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-widest",children:"Cache Performance"})}),i.jsx(OC,{cacheRead:Q.cacheReadTokens,cacheCreation:Q.cacheCreationTokens,totalInput:Q.totalInputTokens})]}),i.jsxs("div",{className:"min-w-0 min-h-0 overflow-hidden bg-surface-1 flex flex-col border-l border-border",children:[i.jsx("div",{className:"px-3 pt-2.5 pb-1",children:i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-widest",children:"Model Routing"})}),i.jsx(fC,{routing:O,agentBreakdown:d})]}),i.jsxs("div",{className:"min-w-0 min-h-0 overflow-hidden bg-surface-1 flex flex-col border-t border-border",children:[i.jsx("div",{className:"px-3 pt-2.5 pb-1 flex-shrink-0",children:i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-widest",children:"Agent Fleet"})}),i.jsx(uC,{agentBreakdown:d,rotating:g})]}),i.jsx("div",{className:"col-span-2 min-w-0 min-h-0 overflow-hidden bg-surface-1 flex flex-col border-t border-l border-border",children:i.jsx(AC,{tokens:Q,rotation:m,adaptive:p,journalist:x})})]}),i.jsx("div",{className:"flex-shrink-0 bg-surface-1 border-t border-border",children:i.jsx(YC,{events:A})})]})}const a0={sm:12,md:16,lg:20};function GC({fill:t="full",size:n,color:s="#fbbf24",emptyColor:l="rgba(255,255,255,0.4)"}){const o=`star-${Math.random().toString(36).slice(2,8)}`;return i.jsxs("svg",{width:n,height:n,viewBox:"0 0 20 20",fill:"none",children:[t==="half"&&i.jsx("defs",{children:i.jsxs("linearGradient",{id:o,children:[i.jsx("stop",{offset:"50%",stopColor:s}),i.jsx("stop",{offset:"50%",stopColor:l})]})}),i.jsx("path",{d:"M10 1.5l2.47 5.01 5.53.8-4 3.9.94 5.49L10 14.27 5.06 16.7 6 11.21l-4-3.9 5.53-.8L10 1.5z",fill:t==="full"?s:t==="half"?`url(#${o})`:l})]})}function Iy({rating:t=0,count:n,size:s="sm"}){const l=a0[s]||a0.sm,o=[];for(let u=1;u<=5;u++)t>=u?o.push("full"):t>=u-.5?o.push("half"):o.push("empty");return i.jsxs("span",{className:"inline-flex items-center",style:{gap:1},children:[o.map((u,d)=>i.jsx(GC,{fill:u,size:l},d)),n!=null&&i.jsxs("span",{className:"ml-1 text-[11px] text-[var(--text-dim,#6b7f95)] font-sans",children:["(",n,")"]})]})}const n0={design:{color:"#c678dd",bg:"rgba(198,120,221,0.12)"},quality:{color:"#4ade80",bg:"rgba(74,222,128,0.12)"},devtools:{color:"#33afbc",bg:"rgba(51,175,188,0.14)"},workflow:{color:"#fbbf24",bg:"rgba(251,191,36,0.12)"},security:{color:"#f87171",bg:"rgba(248,113,113,0.12)"},specialized:{color:"#f59e0b",bg:"rgba(245,158,11,0.12)"},verified:{color:"#4ade80",bg:"rgba(74,222,128,0.12)"},anthropic:{color:"#f59e0b",bg:"rgba(245,158,11,0.12)"},published:{color:"#4ade80",bg:"rgba(74,222,128,0.12)"},draft:{color:"#6b7f95",bg:"rgba(255,255,255,0.06)"},review:{color:"#c678dd",bg:"rgba(198,120,221,0.12)"},rejected:{color:"#f87171",bg:"rgba(248,113,113,0.12)"},free:{color:"#4ade80",bg:"rgba(74,222,128,0.12)"}};function Fy({label:t,variant:n,className:s}){const l=n0[n]||n0.draft;return i.jsx("span",{className:le("inline-flex items-center whitespace-nowrap font-sans select-none",s),style:{padding:"3px 8px",borderRadius:4,fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.5px",lineHeight:1.4,color:l.color,background:l.bg},children:t})}function Ky({price:t=0,size:n="sm"}){const s=!t||t===0,l={sm:"text-2xs px-2 py-0.5",md:"text-xs px-2.5 py-0.5",lg:"text-xs px-3 py-1"};return i.jsx("span",{className:`inline-flex items-center font-mono font-semibold rounded whitespace-nowrap ${l[n]||l.sm} ${s?"bg-success/12 text-success":"bg-white/8 text-text-1"}`,children:s?"Free":`$${t.toFixed(2)}`})}function Jy({type:t="verified",size:n=12}){const s=t==="claude-official"||t==="anthropic"?"#f59e0b":"#4ade80";return i.jsxs("svg",{width:n,height:n,viewBox:"0 0 20 20",fill:"none",className:"inline-block flex-shrink-0",children:[i.jsx("path",{d:"M10 0l2.36 3.15L16.18 2l.68 3.93L20.8 7.1l-1.87 3.52L20.8 14.14l-3.94 1.17-.68 3.93-3.82-1.15L10 21.24l-2.36-3.15-3.82 1.15-.68-3.93-3.94-1.17 1.87-3.52L-.8 7.1l3.94-1.17.68-3.93 3.82 1.15L10 0z",fill:s}),i.jsx("path",{d:"M7 10.5l2 2 4-4.5",fill:"none",stroke:"#24282f",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]})}const eS="groove_favorites";function gh(){try{return JSON.parse(localStorage.getItem(eS)||"[]")}catch{return[]}}function LC(t){return gh().includes(t)}function DC(t){const n=gh(),s=n.indexOf(t);return s>=0?n.splice(s,1):n.push(t),localStorage.setItem(eS,JSON.stringify(n)),s<0}function WC(t){const n=new Set(gh());return t.map(s=>({...s,favorited:n.has(s.id)}))}function BC({filled:t,size:n=16}){return i.jsx("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:t?"#f87171":"none",stroke:t?"#f87171":"rgba(255,255,255,0.3)",strokeWidth:"2",children:i.jsx("path",{d:"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"})})}function HC(){return i.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[i.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),i.jsx("polyline",{points:"7 10 12 15 17 10"}),i.jsx("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})}function IC({skill:t,onClick:n}){var u,d;const[s,l]=v.useState(()=>LC(t.id));function o(O){O.stopPropagation(),l(DC(t.id))}return i.jsxs("div",{onClick:()=>n==null?void 0:n(t),className:le("flex flex-col cursor-pointer group","bg-surface-1 border border-border-subtle rounded-md","hover:border-accent/30 hover:bg-surface-2","transition-all duration-150"),style:{padding:20,minHeight:280},children:[i.jsxs("div",{className:"flex justify-between items-start",children:[i.jsx("div",{className:"w-10 h-10 rounded-full flex items-center justify-center flex-shrink-0 bg-accent/12 text-[20px]",children:t.icon||((d=(u=t.name)==null?void 0:u[0])==null?void 0:d.toUpperCase())||"?"}),i.jsx("button",{onClick:o,className:"opacity-40 group-hover:opacity-80 hover:!opacity-100 transition-opacity cursor-pointer bg-transparent border-0 p-0",children:i.jsx(BC,{filled:s})})]}),i.jsx("div",{className:"mt-3 text-[15px] font-semibold text-text-0 font-sans line-clamp-2 leading-snug",children:t.name}),i.jsxs("div",{className:"mt-1 flex items-center gap-1.5 text-xs text-text-3 font-sans",children:[i.jsxs("span",{children:["by ",t.author||"Community"]}),(t.source==="claude-official"||t.verified)&&i.jsx(Jy,{type:t.source,size:12})]}),i.jsx("div",{className:"mt-2.5 text-xs text-text-2 font-sans line-clamp-3 flex-1 leading-relaxed",children:t.description}),i.jsx("div",{className:"mt-3",children:i.jsx(Fy,{label:t.category||"general",variant:t.category||"draft"})}),i.jsx("div",{className:"h-px bg-border-subtle my-3"}),i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsx(Iy,{rating:t.rating||0,count:t.rating_count||t.ratingCount||0,size:"sm"}),i.jsxs("span",{className:"flex items-center gap-1 text-xs text-text-3 font-mono",children:[i.jsx(HC,{}),rt(t.downloads||0)]}),i.jsx(Ky,{price:t.price||0,size:"sm"})]})]})}function tS(){return i.jsxs("div",{className:"bg-surface-1 border border-border-subtle rounded-md animate-pulse",style:{padding:20,minHeight:280},children:[i.jsx("div",{className:"w-10 h-10 rounded-full bg-surface-4"}),i.jsx("div",{className:"mt-3 h-4 w-[70%] rounded bg-surface-4"}),i.jsx("div",{className:"mt-2 h-3 w-[40%] rounded bg-surface-4"}),i.jsx("div",{className:"mt-3.5 h-3 w-full rounded bg-surface-4"}),i.jsx("div",{className:"mt-1.5 h-3 w-[90%] rounded bg-surface-4"}),i.jsx("div",{className:"mt-1.5 h-3 w-[60%] rounded bg-surface-4"}),i.jsx("div",{className:"mt-3.5 h-5 w-[50px] rounded bg-surface-4"}),i.jsx("div",{className:"h-px bg-surface-4 my-3"}),i.jsxs("div",{className:"flex justify-between",children:[i.jsx("div",{className:"h-3 w-16 rounded bg-surface-4"}),i.jsx("div",{className:"h-3 w-12 rounded bg-surface-4"}),i.jsx("div",{className:"h-3 w-10 rounded bg-surface-4"})]})]})}const FC={slack:"https://cdn.simpleicons.org/slack/E01E5A",github:"https://cdn.simpleicons.org/github/white",stripe:"https://cdn.simpleicons.org/stripe/635BFF",gmail:"https://cdn.simpleicons.org/gmail/EA4335","google-calendar":"https://cdn.simpleicons.org/googlecalendar/4285F4","google-drive":"https://cdn.simpleicons.org/googledrive/4285F4","google-maps":"https://cdn.simpleicons.org/googlemaps/4285F4",postgres:"https://cdn.simpleicons.org/postgresql/4169E1",notion:"https://cdn.simpleicons.org/notion/white",discord:"https://cdn.simpleicons.org/discord/5865F2",linear:"https://cdn.simpleicons.org/linear/5E6AD2","brave-search":"https://cdn.simpleicons.org/brave/FB542B","home-assistant":"https://cdn.simpleicons.org/homeassistant/18BCF2"};function KC({item:t,size:n=40}){const s=FC[t.id];if(s)return i.jsxs("div",{className:"rounded-md bg-surface-4 flex items-center justify-center flex-shrink-0 overflow-hidden",style:{width:n,height:n},children:[i.jsx("img",{src:s,alt:t.name,className:"w-5 h-5",onError:u=>{u.target.style.display="none",u.target.nextSibling.style.display="flex"}}),i.jsx("div",{className:"hidden items-center justify-center w-full h-full text-lg font-bold font-sans text-text-1",children:(t.name||"?")[0]})]});const l=(t.name||"?")[0].toUpperCase(),o=t.name?t.name.charCodeAt(0)*37%360:200;return i.jsx("div",{className:"rounded-md flex items-center justify-center flex-shrink-0 text-lg font-bold font-sans",style:{width:n,height:n,background:`hsl(${o}, 40%, 18%)`,color:`hsl(${o}, 60%, 65%)`},children:l})}function JC({item:t,onClick:n,className:s}){var o;const l=t.installed;return i.jsxs("button",{onClick:()=>n(t),className:le("flex flex-col p-5 rounded-md border border-border-subtle bg-surface-1 text-left","hover:border-accent/30 hover:bg-surface-2","transition-all duration-150 cursor-pointer group",s),style:{minHeight:200},children:[i.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[i.jsx(KC,{item:t,size:36}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"text-[14px] font-semibold text-text-0 font-sans truncate",children:t.name}),(t.verified||t.verified==="mcp-official")&&i.jsx(Br,{size:11,className:"text-accent flex-shrink-0"})]}),i.jsx("span",{className:"text-2xs text-text-3 font-sans",children:t.author||"Community"})]})]}),i.jsx("p",{className:"text-xs text-text-2 font-sans line-clamp-3 mb-3 flex-1 leading-relaxed",children:t.description}),i.jsx("div",{className:"h-px bg-border-subtle my-2"}),i.jsxs("div",{className:"flex items-center gap-3 text-2xs text-text-3 font-sans",children:[i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx(Vf,{size:10}),rt(t.downloads||0)]}),(t.rating||0)>0&&i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx(Gb,{size:10,className:"text-warning",fill:"currentColor"}),(o=t.rating)==null?void 0:o.toFixed(1)]}),i.jsx("span",{className:"flex-1"}),l&&i.jsx(We,{variant:"accent",className:"text-2xs",children:"Installed"})]})]})}function aS({value:t,onChange:n,placeholder:s="Search skills, tags, authors...",large:l}){const[o,u]=v.useState(t||""),d=v.useRef(null);v.useEffect(()=>{u(t||"")},[t]);function O(m){const p=m.target.value;u(p),clearTimeout(d.current),d.current=setTimeout(()=>n(p),300)}return i.jsxs("div",{className:"relative w-full",children:[i.jsx(ql,{size:16,className:"absolute left-3.5 top-1/2 -translate-y-1/2 text-text-4 pointer-events-none"}),i.jsx("input",{value:o,onChange:O,placeholder:s,className:le("w-full font-sans outline-none","bg-surface-0 border border-border text-text-0 placeholder:text-text-4","focus:border-accent/40 transition-colors",l?"py-3 pl-11 pr-12 text-[15px] rounded-lg":"py-2.5 pl-10 pr-3 text-sm rounded-md")}),l&&i.jsx("kbd",{className:"absolute right-3.5 top-1/2 -translate-y-1/2 bg-surface-4 text-text-4 px-2 py-0.5 rounded text-xs font-mono",children:"/"})]})}const eX=[{id:"",label:"All"},{id:"design",label:"Design"},{id:"quality",label:"Quality"},{id:"devtools",label:"Dev Tools"},{id:"workflow",label:"Workflow"},{id:"security",label:"Security"},{id:"specialized",label:"Specialized"}];function tX({selected:t="",categories:n=eX,onSelect:s}){return i.jsx("div",{className:"flex gap-2 overflow-x-auto",style:{scrollbarWidth:"none"},children:n.map(l=>{const o=t===l.id;return i.jsx("button",{onClick:()=>s(l.id),className:le("whitespace-nowrap font-sans cursor-pointer select-none transition-all text-[13px] rounded-full border",o?"bg-accent text-surface-0 border-accent font-semibold":"bg-surface-1 text-text-3 border-border-subtle hover:text-text-1 hover:border-border font-medium"),style:{padding:"7px 16px"},children:l.label},l.id)})})}function Uc(){const t=D(n=>n.addToast);return{success:(n,s)=>t("success",n,s),error:(n,s)=>t("error",n,s),info:(n,s)=>t("info",n,s),warning:(n,s)=>t("warning",n,s)}}function aX({skill:t,onBack:n}){var k,T,j;const s=Uc(),[l,o]=v.useState(""),[u,d]=v.useState(!1),[O,m]=v.useState(!1),[p,x]=v.useState(t.installed),[g,b]=v.useState(!0);v.useEffect(()=>{b(!0),ee.get(`/skills/${t.id}/content`).then(P=>{o(P.content||""),d(P.requiresPurchase||!1)}).catch(()=>{}).finally(()=>b(!1))},[t.id]);async function S(){m(!0);try{await ee.post(`/skills/${t.id}/install`),x(!0),s.success(`${t.name} installed`)}catch(P){s.error("Install failed",P.message)}m(!1)}async function Q(){const{marketplaceAuthenticated:P,marketplaceLogin:N,marketplaceCheckout:A}=D.getState();if(!P){N();return}try{await A(t.id)}catch{}}return i.jsx(Ht,{className:"h-full",children:i.jsxs("div",{className:"px-6 py-5",children:[i.jsxs("button",{onClick:n,className:"flex items-center gap-1 text-xs text-text-3 font-sans hover:text-text-0 cursor-pointer bg-transparent border-0 mb-4",children:[i.jsx(kb,{size:14})," Back"]}),i.jsxs("div",{className:"flex gap-8",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"w-11 h-11 rounded-lg flex items-center justify-center flex-shrink-0 bg-accent/10 border border-accent/20 text-[22px]",children:t.icon||((T=(k=t.name)==null?void 0:k[0])==null?void 0:T.toUpperCase())}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("h1",{className:"text-lg font-bold text-text-0 font-sans",children:t.name}),i.jsxs("div",{className:"flex items-center gap-2 mt-0.5 text-xs text-text-3 font-sans",children:[i.jsx("span",{children:t.author||"Community"}),(t.source==="claude-official"||t.verified)&&i.jsx(Jy,{type:t.source,size:13})]})]})]}),i.jsx("p",{className:"mt-3 text-sm text-text-2 font-sans leading-relaxed",children:t.description}),((j=t.tags)==null?void 0:j.length)>0&&i.jsx("div",{className:"flex flex-wrap gap-1.5 mt-3",children:t.tags.map(P=>i.jsx("span",{className:"text-2xs text-text-3 font-sans px-2 py-0.5 rounded bg-surface-4",children:P},P))}),i.jsx("div",{className:"h-px bg-border-subtle my-5"}),g?i.jsxs("div",{className:"space-y-2",children:[i.jsx("div",{className:"h-3 w-48 bg-surface-4 rounded animate-pulse"}),i.jsx("div",{className:"h-3 w-full bg-surface-4 rounded animate-pulse"}),i.jsx("div",{className:"h-3 w-3/4 bg-surface-4 rounded animate-pulse"})]}):l?i.jsxs("div",{className:"text-sm text-text-2 font-sans leading-relaxed",children:[i.jsx("h2",{className:"text-sm font-semibold text-text-0 mb-2",children:"About"}),i.jsx("pre",{className:"whitespace-pre-wrap font-sans",children:l})]}):u?i.jsxs("div",{className:"bg-warning/5 border border-warning/15 rounded-lg px-4 py-3",children:[i.jsx("p",{className:"text-sm text-text-1 font-sans font-medium",children:"Paid skill — purchase to view content"}),i.jsx("p",{className:"text-xs text-text-3 font-sans mt-1",children:"Sign in and purchase this skill to access its full instructions."})]}):i.jsx("p",{className:"text-xs text-text-4 font-sans",children:"Content loading failed — check your connection."})]}),i.jsx("div",{className:"w-[240px] flex-shrink-0",children:i.jsxs("div",{className:"bg-surface-1 border border-border-subtle rounded-lg p-4 sticky top-4",children:[i.jsx(Ky,{price:t.price||0,size:"md"}),u&&!p?i.jsxs("button",{onClick:Q,className:"w-full mt-3 py-2 px-3 text-xs font-sans font-semibold rounded cursor-pointer transition-all hover:opacity-85 flex items-center justify-center gap-2 border bg-warning/15 text-warning border-warning/20 hover:bg-warning/25",children:["Buy $",(t.price||0).toFixed(2)]}):i.jsx("button",{onClick:S,disabled:O||p,className:`w-full mt-3 py-2 px-3 text-xs font-sans font-semibold rounded cursor-pointer transition-all hover:opacity-85 disabled:opacity-60 disabled:cursor-not-allowed flex items-center justify-center gap-2 border ${p?"bg-success/15 text-success border-success/20":"bg-accent/15 text-accent border-accent/20 hover:bg-accent/25"}`,children:O?"Installing...":p?"✓ Installed":"Install"}),i.jsx("div",{className:"mt-4 flex flex-col gap-2.5",children:[["Downloads",i.jsx("span",{className:"font-mono text-text-0",children:rt(t.downloads||0)},"d")],["Rating",i.jsx(Iy,{rating:t.rating||0,count:t.rating_count||t.ratingCount,size:"sm"},"r")],["Version",i.jsx("span",{className:"font-mono text-text-0",children:t.version||"1.0.0"},"v")],["Category",i.jsx(Fy,{label:t.category||"general",variant:t.category||"draft"},"c")],["Source",i.jsx("span",{className:"text-text-0",children:t.source==="claude-official"?"Anthropic":"Community"},"s")]].map(([P,N])=>i.jsxs("div",{className:"flex justify-between items-center text-xs font-sans",children:[i.jsx("span",{className:"text-text-3",children:P}),N]},P))})]})})]})]})})}function nX(){const[t,n]=v.useState([]),[s,l]=v.useState(!0),[o,u]=v.useState(""),[d,O]=v.useState(""),[m,p]=v.useState("popular"),[x,g]=v.useState(null);return v.useEffect(()=>{l(!0);const b=new URLSearchParams;o&&b.set("search",o),d&&b.set("category",d),m&&b.set("sort",m),ee.get(`/skills/registry?${b}`).then(S=>n(WC(S.skills||S.items||(Array.isArray(S)?S:[])))).catch(()=>n([])).finally(()=>l(!1))},[o,d,m]),x?i.jsx(aX,{skill:x,onBack:()=>g(null)}):i.jsx(Ht,{className:"h-full",children:i.jsxs("div",{className:"px-5 py-4",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("div",{className:"w-72",children:i.jsx(aS,{value:o,onChange:u})}),i.jsx(tX,{selected:d,onSelect:O}),i.jsx("div",{className:"flex-1"}),i.jsxs("div",{className:"relative flex-shrink-0",children:[i.jsxs("select",{value:m,onChange:b=>p(b.target.value),className:"appearance-none font-sans cursor-pointer pr-7 py-2 pl-3 text-xs bg-surface-0 border border-border-subtle rounded text-text-1 focus:outline-none",children:[i.jsx("option",{value:"popular",children:"Popular"}),i.jsx("option",{value:"rating",children:"Top Rated"}),i.jsx("option",{value:"newest",children:"Newest"}),i.jsx("option",{value:"name",children:"A-Z"})]}),i.jsx(In,{size:12,className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-4 pointer-events-none"})]}),i.jsx("span",{className:"text-2xs text-text-4 font-mono flex-shrink-0",children:t.length})]}),i.jsx("div",{className:"mt-4 grid gap-3",style:{gridTemplateColumns:"repeat(auto-fill, minmax(240px, 1fr))"},children:s?Array.from({length:8}).map((b,S)=>i.jsx(tS,{},S)):t.map(b=>i.jsx(IC,{skill:b,onClick:g},b.id))}),!s&&t.length===0&&i.jsx("div",{className:"text-center py-16 text-text-4 font-sans text-sm",children:"No skills found."})]})})}function sX(){const[t,n]=v.useState([]),[s,l]=v.useState(!0),[o,u]=v.useState(""),d=Uc();return v.useEffect(()=>{l(!0),ee.get(`/integrations/registry?search=${encodeURIComponent(o)}`).then(O=>n(O.integrations||O.items||(Array.isArray(O)?O:[]))).catch(()=>n([])).finally(()=>l(!1))},[o]),i.jsx(Ht,{className:"h-full",children:i.jsxs("div",{className:"px-5 py-4",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("div",{className:"w-72",children:i.jsx(aS,{value:o,onChange:u,placeholder:"Search integrations..."})}),i.jsx("div",{className:"flex-1"}),i.jsx("span",{className:"text-2xs text-text-4 font-mono flex-shrink-0",children:t.length})]}),i.jsx("div",{className:"mt-4 grid gap-3",style:{gridTemplateColumns:"repeat(auto-fill, minmax(240px, 1fr))"},children:s?Array.from({length:6}).map((O,m)=>i.jsx(tS,{},m)):t.map(O=>i.jsx(JC,{item:O,onClick:()=>d.info(`${O.name} — install via CLI: groove integrations install ${O.id}`)},O.id))}),!s&&t.length===0&&i.jsx("div",{className:"text-center py-16 text-text-4 font-sans text-sm",children:"No integrations found."})]})})}function lX(){const t=D(g=>g.marketplaceAuthenticated),n=D(g=>g.marketplaceLogin),[s,l]=v.useState([]),[o,u]=v.useState([]),[d,O]=v.useState(!0),m=Uc(),p=v.useRef(null);v.useEffect(()=>{O(!0),Promise.all([t?ee.get("/auth/purchases").then(g=>g.purchases||[]).catch(()=>[]):Promise.resolve([]),ee.get("/skills/installed").then(g=>Array.isArray(g)?g:g.skills||[]).catch(()=>[])]).then(([g,b])=>{l(g),u(b)}).finally(()=>O(!1))},[t]);async function x(g){var S;const b=(S=g.target.files)==null?void 0:S[0];if(b){try{const Q=await b.text(),k=b.name.replace(/\.md$/i,"");await ee.post("/skills/import",{name:k,content:Q}),m.success(`Imported "${k}"`);const T=await ee.get("/skills/installed");u(Array.isArray(T)?T:T.skills||[])}catch(Q){m.error("Import failed",Q.message)}g.target.value=""}}return d?i.jsx("div",{className:"p-5 space-y-3",children:[...Array(4)].map((g,b)=>i.jsx(Nt,{className:"h-14 rounded-md"},b))}):i.jsx(Ht,{className:"h-full",children:i.jsxs("div",{className:"px-5 py-4 space-y-6",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("input",{ref:p,type:"file",accept:".md",onChange:x,className:"hidden"}),i.jsxs(je,{variant:"secondary",size:"md",onClick:()=>{var g;return(g=p.current)==null?void 0:g.click()},className:"gap-1.5",children:[i.jsx(uP,{size:13}),"Import .md Skill"]}),i.jsx("span",{className:"text-2xs text-text-4 font-sans",children:"Drop a markdown skill file to install locally"})]}),t&&s.length>0&&i.jsxs("div",{children:[i.jsxs("h3",{className:"text-xs font-semibold text-text-2 font-sans uppercase tracking-wider mb-3 flex items-center gap-1.5",children:[i.jsx(xO,{size:12}),"Purchases (",s.length,")"]}),i.jsx("div",{className:"space-y-1.5",children:s.map(g=>{var b,S;return i.jsxs("div",{className:"flex items-center gap-3 px-3 py-2.5 rounded-md bg-surface-1 border border-border-subtle",children:[i.jsx("div",{className:"w-8 h-8 rounded-md bg-accent/10 flex items-center justify-center text-sm flex-shrink-0",children:g.skill_icon||((S=(b=g.skill_name)==null?void 0:b[0])==null?void 0:S.toUpperCase())||"?"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"text-xs font-semibold text-text-0 font-sans truncate",children:g.skill_name||g.skill_id}),i.jsxs("div",{className:"text-2xs text-text-4 font-sans",children:["$",(g.amount||0).toFixed(2)," · ",Ct(g.created_at)]})]}),i.jsx(We,{variant:"success",className:"text-2xs flex-shrink-0",children:"Owned"})]},g.id||g.skill_id)})})]}),t&&s.length===0&&i.jsxs("div",{className:"bg-surface-1 border border-border-subtle rounded-md px-4 py-6 text-center",children:[i.jsx(xO,{size:20,className:"mx-auto text-text-4 mb-2"}),i.jsx("p",{className:"text-xs text-text-3 font-sans",children:"No purchases yet"})]}),!t&&i.jsxs("div",{className:"bg-surface-1 border border-border-subtle rounded-md px-4 py-6 text-center",children:[i.jsx(xO,{size:20,className:"mx-auto text-text-4 mb-2"}),i.jsx("p",{className:"text-xs text-text-2 font-sans mb-3",children:"Sign in to see your purchases"}),i.jsxs(je,{variant:"primary",size:"sm",onClick:n,className:"gap-1.5 mx-auto",children:[i.jsx(Lf,{size:12})," Sign in"]})]}),i.jsxs("div",{children:[i.jsxs("h3",{className:"text-xs font-semibold text-text-2 font-sans uppercase tracking-wider mb-3 flex items-center gap-1.5",children:[i.jsx(Zb,{size:12}),"Installed (",o.length,")"]}),o.length===0?i.jsxs("div",{className:"bg-surface-1 border border-border-subtle rounded-md px-4 py-6 text-center",children:[i.jsx(Vf,{size:20,className:"mx-auto text-text-4 mb-2"}),i.jsx("p",{className:"text-xs text-text-3 font-sans",children:"No skills installed — browse the Skills tab or import a .md file"})]}):i.jsx("div",{className:"space-y-1.5",children:o.map(g=>{var b,S;return i.jsxs("div",{className:"flex items-center gap-3 px-3 py-2.5 rounded-md bg-surface-1 border border-border-subtle group",children:[i.jsx("div",{className:"w-8 h-8 rounded-md bg-accent/10 flex items-center justify-center text-sm flex-shrink-0",children:g.icon||((S=(b=g.name)==null?void 0:b[0])==null?void 0:S.toUpperCase())||"?"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"text-xs font-semibold text-text-0 font-sans truncate",children:g.name||g.id}),i.jsx("div",{className:"text-2xs text-text-3 font-sans truncate",children:g.description||g.category||"local skill"})]}),i.jsx(We,{variant:"accent",className:"text-2xs flex-shrink-0",children:"Installed"})]},g.id)})})]})]})})}function rX(){const t=D(o=>o.marketplaceAuthenticated),n=D(o=>o.marketplaceUser),s=D(o=>o.marketplaceLogin),l=D(o=>o.marketplaceLogout);return t?i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded bg-surface-3 border border-border-subtle",children:[i.jsx("div",{className:"w-4 h-4 rounded-full bg-accent/20 flex items-center justify-center",children:i.jsx(Lb,{size:9,className:"text-accent"})}),i.jsx("span",{className:"text-xs text-text-0 font-sans font-medium max-w-[120px] truncate",children:(n==null?void 0:n.displayName)||(n==null?void 0:n.id)||"Account"})]}),i.jsx("button",{onClick:l,className:"flex items-center gap-1 px-2 py-1.5 rounded text-xs text-text-3 hover:text-text-0 hover:bg-surface-3 font-sans cursor-pointer transition-colors",children:i.jsx(Cb,{size:11})})]}):i.jsxs("button",{onClick:s,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-semibold font-sans text-text-0 bg-accent/15 border border-accent/25 rounded hover:bg-accent/25 cursor-pointer transition-colors",children:[i.jsx(Lf,{size:12}),"Sign in"]})}function iX(){const[t,n]=v.useState("skills"),s=[{id:"skills",label:"Skills",icon:Ub},{id:"integrations",label:"Integrations",icon:Ab},{id:"library",label:"My Library",icon:Zb}];return i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsx("div",{className:"flex-shrink-0 bg-surface-1 border-b border-border-subtle",children:i.jsxs("div",{className:"flex items-center px-5 h-11",children:[i.jsx("div",{className:"flex items-center",children:s.map(l=>{const o=l.icon;return i.jsxs("button",{onClick:()=>n(l.id),className:`flex items-center gap-1.5 px-3 py-2.5 text-xs font-semibold font-sans cursor-pointer select-none border-b-2 -mb-px transition-colors ${t===l.id?"border-accent text-text-0":"border-transparent text-text-3 hover:text-text-1"}`,children:[i.jsx(o,{size:12}),l.label]},l.id)})}),i.jsx("div",{className:"flex-1"}),i.jsx(rX,{})]})}),i.jsxs("div",{className:"flex-1 min-h-0",children:[t==="skills"&&i.jsx(nX,{}),t==="integrations"&&i.jsx(sX,{}),t==="library"&&i.jsx(lX,{})]})]})}function oX({children:t,className:n,hover:s,...l}){return i.jsx("div",{className:le("rounded-md border border-border bg-surface-1",s&&"hover:border-accent/50 hover:bg-surface-2 transition-all duration-150 cursor-pointer",n),...l,children:t})}function cX(){const t=D(l=>l.pendingApprovals),n=D(l=>l.approveRequest),s=D(l=>l.rejectRequest);return t.length===0?null:i.jsxs("div",{className:"px-4 pt-4 space-y-2",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx(_c,{size:13,className:"text-warning"}),i.jsxs("span",{className:"text-xs font-semibold text-warning font-sans",children:["Pending Approval (",t.length,")"]})]}),t.map(l=>{var o,u,d;return i.jsxs("div",{className:"flex items-center gap-3 px-3 py-2.5 rounded-md bg-warning/5 border border-warning/20",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"text-xs text-text-0 font-sans font-medium truncate",children:[l.agentName,": ",((o=l.action)==null?void 0:o.description)||((u=l.action)==null?void 0:u.type)||"action"]}),((d=l.action)==null?void 0:d.filePath)&&i.jsx("div",{className:"text-2xs text-text-3 font-mono truncate mt-0.5",children:l.action.filePath}),i.jsx("div",{className:"text-2xs text-text-4 font-sans mt-0.5",children:Ct(l.requestedAt)})]}),i.jsxs("div",{className:"flex gap-1.5 flex-shrink-0",children:[i.jsxs(je,{variant:"primary",size:"sm",onClick:()=>n(l.id),className:"h-7 px-2.5 gap-1 text-2xs",children:[i.jsx(Vb,{size:11})," Approve"]}),i.jsxs(je,{variant:"danger",size:"sm",onClick:()=>s(l.id),className:"h-7 px-2.5 gap-1 text-2xs",children:[i.jsx(JT,{size:11})," Reject"]})]})]},l.id)})]})}function uX(){const t=D(m=>m.resolvedApprovals),[n,s]=v.useState([]),[l,o]=v.useState(!0);v.useEffect(()=>{const m=setInterval(u,4e3);return u(),()=>clearInterval(m)},[]);async function u(){try{const m=await ee.get("/pm/history");s(m.history||m||[])}catch{}o(!1)}const d=new Set,O=[...t,...n].filter(m=>{const p=m.id||`${m.agentName}-${m.timestamp}`;return d.has(p)?!1:(d.add(p),!0)});return l&&O.length===0?i.jsx("div",{className:"p-4 space-y-2",children:[...Array(4)].map((m,p)=>i.jsx(Nt,{className:"h-12 rounded-md"},p))}):i.jsxs(Ht,{className:"flex-1",children:[i.jsx(cX,{}),i.jsxs("div",{className:"p-4 space-y-2",children:[O.length===0&&i.jsxs("div",{className:"text-center py-12 text-text-4 font-sans",children:[i.jsx(Br,{size:32,className:"mx-auto mb-2"}),i.jsx("p",{className:"text-sm",children:"No approval history"}),i.jsx("p",{className:"text-2xs text-text-4 mt-1",children:'Approvals appear when agents use "Agent Approve" permission mode'})]}),O.map((m,p)=>{var x;return i.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-md bg-surface-1 border border-border-subtle",children:[m.status==="approved"||m.verdict==="approved"?i.jsx(Br,{size:14,className:"text-success flex-shrink-0"}):i.jsx($b,{size:14,className:"text-danger flex-shrink-0"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"text-xs text-text-0 font-sans truncate",children:[m.agentName,": ",((x=m.action)==null?void 0:x.description)||m.action||"action"]}),m.reason&&i.jsx("div",{className:"text-2xs text-text-3 font-sans truncate",children:m.reason})]}),i.jsx("span",{className:"text-2xs text-text-4 font-sans flex-shrink-0",children:Ct(m.resolvedAt||m.timestamp)})]},m.id||p)})]})]})}function dX(){const[t,n]=v.useState([]),[s,l]=v.useState(!0),o=Uc();v.useEffect(()=>{const O=setInterval(u,1e4);return u(),()=>clearInterval(O)},[]);async function u(){try{const O=await ee.get("/schedules");n(O.schedules||O||[])}catch{}l(!1)}async function d(O,m){try{await ee.post(`/schedules/${O}/${m?"disable":"enable"}`),u()}catch(p){o.error("Failed to toggle schedule",p.message)}}return s?i.jsx("div",{className:"p-4 space-y-2",children:[...Array(3)].map((O,m)=>i.jsx(Nt,{className:"h-16 rounded-md"},m))}):i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"p-4 space-y-2",children:[t.length===0&&i.jsxs("div",{className:"text-center py-12 text-text-4 font-sans",children:[i.jsx(oc,{size:32,className:"mx-auto mb-2"}),i.jsx("p",{className:"text-sm",children:"No schedules configured"})]}),t.map(O=>i.jsx(oX,{className:"p-3",children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-sm font-semibold text-text-0 font-sans",children:O.name}),i.jsx(We,{variant:O.enabled?"success":"default",children:O.enabled?"Active":"Paused"})]}),i.jsxs("div",{className:"text-2xs text-text-3 font-mono mt-0.5",children:[O.cron," · ",O.role]})]}),i.jsx(je,{variant:"ghost",size:"sm",onClick:()=>d(O.id,O.enabled),children:O.enabled?"Pause":"Enable"})]})},O.id))]})})}function OX(){return i.jsxs(By,{defaultValue:"approvals",className:"flex flex-col h-full",children:[i.jsxs("div",{className:"px-4 pt-3 bg-surface-1 border-b border-border",children:[i.jsx("div",{className:"flex items-center gap-4 mb-0",children:i.jsx("h2",{className:"text-base font-semibold text-text-0 font-sans",children:"Management"})}),i.jsxs(Hy,{className:"border-b-0",children:[i.jsx(Ur,{value:"approvals",children:"Approvals"}),i.jsx(Ur,{value:"schedules",children:"Schedules"})]})]}),i.jsx(Gr,{value:"approvals",className:"flex-1 min-h-0",children:i.jsx(uX,{})}),i.jsx(Gr,{value:"schedules",className:"flex-1 min-h-0",children:i.jsx(dX,{})})]})}const fX={code:"Code",general:"General"},hX={light:"text-success",medium:"text-accent",heavy:"text-warning"};function mX(t){return t<1?`${Math.round(t*1024)} MB`:`${t} GB`}function nS({hardware:t}){if(!t)return null;const{totalRamGb:n,gpu:s,isAppleSilicon:l}=t;return i.jsxs("div",{className:"flex items-center gap-3 bg-surface-0 rounded-lg border border-border-subtle px-3 py-2.5",children:[i.jsx(Df,{size:14,className:"text-text-3 flex-shrink-0"}),i.jsx("div",{className:"flex-1 min-w-0",children:i.jsxs("div",{className:"flex items-center gap-2 text-xs font-sans",children:[i.jsxs("span",{className:"text-text-0 font-semibold",children:[n," GB RAM"]}),s&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-text-4",children:"·"}),i.jsx("span",{className:"text-text-2",children:s.name})]}),l&&i.jsx(We,{variant:"accent",className:"text-2xs",children:"Unified Memory"})]})})]})}function pX({onRecheck:t}){const[n,s]=v.useState(null),[l,o]=v.useState(!1),[u,d]=v.useState(!1),[O,m]=v.useState(!1),p=D(A=>A.addToast);v.useEffect(()=>{ee.post("/providers/ollama/check").then(s).catch(()=>{})},[]);async function x(){o(!0);try{const A=await ee.post("/providers/ollama/check");s(A),A.installed&&A.serverRunning?(p("success","Ollama is ready!"),t()):A.installed?p("info","Ollama installed — server needs to start"):p("info","Ollama not found — install and try again")}catch{}o(!1)}async function g(){d(!0);try{if((await ee.post("/providers/ollama/serve")).ok){p("success","Ollama server started!");let U=!1;for(let C=0;C<5;C++){await new Promise($=>setTimeout($,2e3));const X=await ee.post("/providers/ollama/check");if(s(X),X.serverRunning){U=!0;break}}U&&t()}}catch(A){p("error","Could not start server",A.message)}d(!1)}function b(A){navigator.clipboard.writeText(A),m(!0),setTimeout(()=>m(!1),2e3)}if(!n)return i.jsx("div",{className:"py-4 text-center text-xs text-text-4 font-sans",children:"Loading..."});const{hardware:S,install:Q,requirements:k,installed:T,serverRunning:j}=n,P=S.totalRamGb>=k.minRAM,N=S.recommended;return i.jsxs("div",{className:"space-y-3 p-3",children:[i.jsx(nS,{hardware:S}),P?i.jsxs("div",{className:"flex items-start gap-2 bg-success/8 border border-success/20 rounded-lg px-3 py-2.5",children:[i.jsx(oa,{size:14,className:"text-success flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-xs font-sans",children:[i.jsx("span",{className:"text-success font-semibold",children:"Your system is ready."}),i.jsx("span",{className:"text-text-2 ml-1",children:N.code?`Recommended: ${N.code}`:`${S.totalRamGb} GB RAM available`})]})]}):i.jsxs("div",{className:"flex items-start gap-2 bg-warning/8 border border-warning/20 rounded-lg px-3 py-2.5",children:[i.jsx(cn,{size:14,className:"text-warning flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-xs font-sans text-text-2",children:[i.jsxs("span",{className:"text-warning font-semibold",children:[S.totalRamGb," GB RAM detected."]})," ","Minimum ",k.minRAM," GB needed. Smallest models may still work."]})]}),T&&!j&&i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-start gap-2 bg-warning/8 border border-warning/20 rounded-lg px-3 py-2.5",children:[i.jsx(cn,{size:14,className:"text-warning flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-xs font-sans text-text-2",children:[i.jsx("span",{className:"text-warning font-semibold",children:"Ollama installed but server not running."})," ","The server needs to be running to pull and use models."]})]}),i.jsxs(je,{variant:"primary",size:"md",onClick:g,disabled:u,className:"w-full gap-1.5",children:[i.jsx(Na,{size:12}),u?"Starting...":"Start Ollama Server"]})]}),!T&&i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"text-xs font-semibold text-text-1 font-sans",children:"Install Ollama"}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("code",{className:"flex-1 bg-surface-0 border border-border-subtle rounded-md px-3 py-2 text-xs font-mono text-text-1 truncate",children:Q.command}),i.jsxs(je,{variant:"secondary",size:"sm",onClick:()=>b(Q.command),className:"h-8 px-2.5 gap-1 flex-shrink-0",children:[O?i.jsx(oa,{size:12}):i.jsx(cf,{size:12}),O?"Copied":"Copy"]})]}),Q.alt&&i.jsx("p",{className:"text-2xs text-text-4 font-sans",children:Q.alt})]}),i.jsxs(je,{variant:"secondary",size:"md",onClick:x,disabled:l,className:"w-full gap-1.5",children:[i.jsx(es,{size:12,className:l?"animate-spin":""}),l?"Checking...":T?"Check again":"I installed it — check again"]})]})}function xX({model:t,isInstalled:n,isRecommended:s,canRun:l,onPull:o,onDelete:u,pulling:d}){const O=d===t.id;return i.jsxs("div",{className:le("flex items-center gap-2 px-3 py-2 border-t border-border-subtle transition-colors",!l&&"opacity-40"),children:[n?i.jsx(oa,{size:12,className:"text-success flex-shrink-0"}):i.jsx("div",{className:"w-3"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"text-xs font-mono text-text-1 truncate",children:t.name}),s&&i.jsx(Gb,{size:10,className:"text-warning flex-shrink-0"})]}),i.jsxs("div",{className:"flex items-center gap-2 mt-0.5",children:[i.jsx("span",{className:le("text-2xs font-semibold font-sans",hX[t.tier]),children:t.tier}),i.jsx("span",{className:"text-2xs text-text-4 font-sans",children:mX(t.sizeGb)}),i.jsxs("span",{className:"text-2xs text-text-4 font-sans",children:["· ",t.ramGb," GB RAM"]})]})]}),n?i.jsx("button",{onClick:()=>u(t.id),className:"p-1.5 text-text-4 hover:text-danger rounded transition-colors cursor-pointer",title:"Remove model",children:i.jsx(Xc,{size:12})}):l?i.jsx(je,{variant:"secondary",size:"sm",onClick:()=>o(t.id),disabled:!!d,className:"h-7 px-2 text-2xs gap-1",children:O?i.jsxs(i.Fragment,{children:[i.jsx(es,{size:10,className:"animate-spin"})," Pulling..."]}):i.jsxs(i.Fragment,{children:[i.jsx(Vf,{size:10})," Pull"]})}):i.jsxs("span",{className:"text-2xs text-text-4 font-sans",children:["Needs ",t.ramGb," GB"]})]})}function gX({onStopped:t}){const[n,s]=v.useState(null),l=D(d=>d.addToast);async function o(){s("stopping");try{(await ee.post("/providers/ollama/stop")).ok?(l("info","Ollama server stopped"),t&&t()):l("error","Could not stop server")}catch(d){l("error","Stop failed",d.message)}s(null)}async function u(){s("restarting");try{(await ee.post("/providers/ollama/restart")).ok?l("success","Ollama server restarted"):l("error","Restart failed")}catch(d){l("error","Restart failed",d.message)}s(null)}return i.jsxs("div",{className:"flex items-center gap-2 bg-success/8 border border-success/20 rounded-lg px-3 py-2",children:[i.jsxs("span",{className:"relative flex-shrink-0 w-[6px] h-[6px]",children:[i.jsx("span",{className:"absolute inset-0 rounded-full bg-success"}),i.jsx("span",{className:"absolute inset-[-2px] rounded-full bg-success opacity-20 animate-pulse"})]}),i.jsx("span",{className:"text-xs font-sans text-success font-semibold",children:"Server Running"}),i.jsx("span",{className:"text-2xs font-mono text-text-4",children:":11434"}),i.jsx("div",{className:"flex-1"}),i.jsxs("button",{onClick:u,disabled:!!n,className:"flex items-center gap-1 text-2xs font-sans text-text-3 hover:text-accent cursor-pointer transition-colors disabled:opacity-40",children:[i.jsx(es,{size:10,className:n==="restarting"?"animate-spin":""}),n==="restarting"?"Restarting...":"Restart"]}),i.jsxs("button",{onClick:o,disabled:!!n,className:"flex items-center gap-1 text-2xs font-sans text-text-3 hover:text-danger cursor-pointer transition-colors disabled:opacity-40",children:[i.jsx(cn,{size:10}),n==="stopping"?"Stopping...":"Stop"]})]})}function bX({onModelChange:t}){var $,W;const[n,s]=v.useState(null),[l,o]=v.useState(null),[u,d]=v.useState("code"),[O,m]=v.useState(!1),[p,x]=v.useState(!1),g=D(E=>E.addToast),b=v.useRef(!1);function S(){ee.get("/providers/ollama/models").then(E=>{var ne;s(E),!b.current&&((ne=E.installed)==null?void 0:ne.length)===0&&(b.current=!0,setTimeout(S,2e3))}).catch(()=>{})}v.useEffect(()=>{S()},[]);async function Q(E){o(E);try{await ee.post("/providers/ollama/pull",{model:E}),g("success",`Pulled ${E}`),S(),t&&t()}catch(ne){g("error",`Pull failed: ${ne.message}`)}o(null)}async function k(E){try{await ee.delete(`/providers/ollama/models/${encodeURIComponent(E)}`),g("info",`Removed ${E}`),S(),t&&t()}catch(ne){g("error",`Delete failed: ${ne.message}`)}}if(!n)return i.jsx("div",{className:"py-4 text-center text-xs text-text-4 font-sans",children:"Loading..."});const{installed:T,catalog:j,hardware:P}=n,N=new Set(T.map(E=>E.id)),A=P.totalRamGb,U=[($=P.recommended)==null?void 0:$.code,(W=P.recommended)==null?void 0:W.general].filter(Boolean),C=j.filter(E=>E.category===u),X=O?C:C.filter(E=>E.ramGb<=A);return p?i.jsxs("div",{className:"space-y-3 p-3",children:[i.jsxs("div",{className:"flex items-center gap-2 bg-warning/8 border border-warning/20 rounded-lg px-3 py-2.5",children:[i.jsx(cn,{size:14,className:"text-warning flex-shrink-0"}),i.jsxs("span",{className:"text-xs font-sans text-text-2",children:[i.jsx("span",{className:"text-warning font-semibold",children:"Ollama server stopped."})," ","Start it again to pull and use models."]})]}),i.jsxs(je,{variant:"primary",size:"md",onClick:async()=>{try{(await ee.post("/providers/ollama/serve")).ok&&(g("success","Ollama server started!"),x(!1),b.current=!1,setTimeout(S,2e3))}catch(E){g("error","Could not start server",E.message)}},className:"w-full gap-1.5",children:[i.jsx(Na,{size:12}),"Start Ollama Server"]})]}):i.jsxs("div",{className:"space-y-2 p-3",children:[i.jsx(gX,{onStopped:()=>x(!0)}),i.jsx(nS,{hardware:P}),T.length>0&&i.jsxs("div",{className:"flex items-center gap-1.5 text-xs font-sans text-text-2",children:[i.jsx(zb,{size:12,className:"text-text-3"}),i.jsx("span",{className:"font-semibold",children:T.length})," model",T.length!==1?"s":""," installed"]}),i.jsx("div",{className:"flex bg-surface-0 rounded-lg p-0.5 border border-border-subtle",children:Object.entries(fX).map(([E,ne])=>i.jsx("button",{onClick:()=>d(E),className:le("flex-1 px-3 py-1.5 text-2xs font-semibold font-sans rounded-md transition-all cursor-pointer",u===E?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:ne},E))}),i.jsxs("div",{className:"rounded-lg border border-border-subtle bg-surface-0 overflow-hidden",children:[X.map(E=>i.jsx(xX,{model:E,isInstalled:N.has(E.id),isRecommended:U.includes(E.id),canRun:E.ramGb<=A,onPull:Q,onDelete:k,pulling:l},E.id)),X.length===0&&i.jsxs("div",{className:"px-3 py-4 text-center text-xs text-text-4 font-sans",children:["No ",u," models available for your hardware"]})]}),!O&&C.length>X.length&&i.jsxs("button",{onClick:()=>m(!0),className:"flex items-center gap-1 text-2xs text-text-3 hover:text-accent font-sans cursor-pointer transition-colors",children:[i.jsx(In,{size:10}),"Show ",C.length-X.length," more (exceed your RAM)"]})]})}function sS({isInstalled:t,onModelChange:n}){const[s,l]=v.useState(!1),[o,u]=v.useState(!1);return v.useEffect(()=>{t?ee.post("/providers/ollama/check").then(d=>{l(d.installed&&d.serverRunning),u(!0)}).catch(()=>u(!0)):u(!0)},[t]),o?s?i.jsx(bX,{onModelChange:n}):i.jsx(pX,{onRecheck:()=>{l(!0),n&&n()}}):i.jsx("div",{className:"py-4 text-center text-xs text-text-4 font-sans",children:"Checking Ollama..."})}var UO="focusScope.autoFocusOnMount",GO="focusScope.autoFocusOnUnmount",s0={bubbles:!1,cancelable:!0},vX="FocusScope",lS=v.forwardRef((t,n)=>{const{loop:s=!1,trapped:l=!1,onMountAutoFocus:o,onUnmountAutoFocus:u,...d}=t,[O,m]=v.useState(null),p=zt(o),x=zt(u),g=v.useRef(null),b=it(n,k=>m(k)),S=v.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;v.useEffect(()=>{if(l){let k=function(N){if(S.paused||!O)return;const A=N.target;O.contains(A)?g.current=A:Un(g.current,{select:!0})},T=function(N){if(S.paused||!O)return;const A=N.relatedTarget;A!==null&&(O.contains(A)||Un(g.current,{select:!0}))},j=function(N){if(document.activeElement===document.body)for(const U of N)U.removedNodes.length>0&&Un(O)};document.addEventListener("focusin",k),document.addEventListener("focusout",T);const P=new MutationObserver(j);return O&&P.observe(O,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",k),document.removeEventListener("focusout",T),P.disconnect()}}},[l,O,S.paused]),v.useEffect(()=>{if(O){r0.add(S);const k=document.activeElement;if(!O.contains(k)){const j=new CustomEvent(UO,s0);O.addEventListener(UO,p),O.dispatchEvent(j),j.defaultPrevented||(yX(kX(rS(O)),{select:!0}),document.activeElement===k&&Un(O))}return()=>{O.removeEventListener(UO,p),setTimeout(()=>{const j=new CustomEvent(GO,s0);O.addEventListener(GO,x),O.dispatchEvent(j),j.defaultPrevented||Un(k??document.body,{select:!0}),O.removeEventListener(GO,x),r0.remove(S)},0)}}},[O,p,x,S]);const Q=v.useCallback(k=>{if(!s&&!l||S.paused)return;const T=k.key==="Tab"&&!k.altKey&&!k.ctrlKey&&!k.metaKey,j=document.activeElement;if(T&&j){const P=k.currentTarget,[N,A]=SX(P);N&&A?!k.shiftKey&&j===A?(k.preventDefault(),s&&Un(N,{select:!0})):k.shiftKey&&j===N&&(k.preventDefault(),s&&Un(A,{select:!0})):j===P&&k.preventDefault()}},[s,l,S.paused]);return i.jsx(Be.div,{tabIndex:-1,...d,ref:b,onKeyDown:Q})});lS.displayName=vX;function yX(t,{select:n=!1}={}){const s=document.activeElement;for(const l of t)if(Un(l,{select:n}),document.activeElement!==s)return}function SX(t){const n=rS(t),s=l0(n,t),l=l0(n.reverse(),t);return[s,l]}function rS(t){const n=[],s=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:l=>{const o=l.tagName==="INPUT"&&l.type==="hidden";return l.disabled||l.hidden||o?NodeFilter.FILTER_SKIP:l.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;s.nextNode();)n.push(s.currentNode);return n}function l0(t,n){for(const s of t)if(!QX(s,{upTo:n}))return s}function QX(t,{upTo:n}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(n!==void 0&&t===n)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}function jX(t){return t instanceof HTMLInputElement&&"select"in t}function Un(t,{select:n=!1}={}){if(t&&t.focus){const s=document.activeElement;t.focus({preventScroll:!0}),t!==s&&jX(t)&&n&&t.select()}}var r0=wX();function wX(){let t=[];return{add(n){const s=t[0];n!==s&&(s==null||s.pause()),t=i0(t,n),t.unshift(n)},remove(n){var s;t=i0(t,n),(s=t[0])==null||s.resume()}}}function i0(t,n){const s=[...t],l=s.indexOf(n);return l!==-1&&s.splice(l,1),s}function kX(t){return t.filter(n=>n.tagName!=="A")}var LO=0;function $X(){v.useEffect(()=>{const t=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",t[0]??o0()),document.body.insertAdjacentElement("beforeend",t[1]??o0()),LO++,()=>{LO===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(n=>n.remove()),LO--}},[])}function o0(){const t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}var wa=function(){return wa=Object.assign||function(n){for(var s,l=1,o=arguments.length;l<o;l++){s=arguments[l];for(var u in s)Object.prototype.hasOwnProperty.call(s,u)&&(n[u]=s[u])}return n},wa.apply(this,arguments)};function iS(t,n){var s={};for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&n.indexOf(l)<0&&(s[l]=t[l]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,l=Object.getOwnPropertySymbols(t);o<l.length;o++)n.indexOf(l[o])<0&&Object.prototype.propertyIsEnumerable.call(t,l[o])&&(s[l[o]]=t[l[o]]);return s}function TX(t,n,s){if(s||arguments.length===2)for(var l=0,o=n.length,u;l<o;l++)(u||!(l in n))&&(u||(u=Array.prototype.slice.call(n,0,l)),u[l]=n[l]);return t.concat(u||Array.prototype.slice.call(n))}var Ko="right-scroll-bar-position",Jo="width-before-scroll-bar",PX="with-scroll-bars-hidden",NX="--removed-body-scroll-bar-size";function DO(t,n){return typeof t=="function"?t(n):t&&(t.current=n),t}function zX(t,n){var s=v.useState(function(){return{value:t,callback:n,facade:{get current(){return s.value},set current(l){var o=s.value;o!==l&&(s.value=l,s.callback(l,o))}}}})[0];return s.callback=n,s.facade}var RX=typeof window<"u"?v.useLayoutEffect:v.useEffect,c0=new WeakMap;function CX(t,n){var s=zX(null,function(l){return t.forEach(function(o){return DO(o,l)})});return RX(function(){var l=c0.get(s);if(l){var o=new Set(l),u=new Set(t),d=s.current;o.forEach(function(O){u.has(O)||DO(O,null)}),u.forEach(function(O){o.has(O)||DO(O,d)})}c0.set(s,t)},[t]),s}function XX(t){return t}function _X(t,n){n===void 0&&(n=XX);var s=[],l=!1,o={read:function(){if(l)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return s.length?s[s.length-1]:t},useMedium:function(u){var d=n(u,l);return s.push(d),function(){s=s.filter(function(O){return O!==d})}},assignSyncMedium:function(u){for(l=!0;s.length;){var d=s;s=[],d.forEach(u)}s={push:function(O){return u(O)},filter:function(){return s}}},assignMedium:function(u){l=!0;var d=[];if(s.length){var O=s;s=[],O.forEach(u),d=s}var m=function(){var x=d;d=[],x.forEach(u)},p=function(){return Promise.resolve().then(m)};p(),s={push:function(x){d.push(x),p()},filter:function(x){return d=d.filter(x),s}}}};return o}function ZX(t){t===void 0&&(t={});var n=_X(null);return n.options=wa({async:!0,ssr:!1},t),n}var oS=function(t){var n=t.sideCar,s=iS(t,["sideCar"]);if(!n)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var l=n.read();if(!l)throw new Error("Sidecar medium not found");return v.createElement(l,wa({},s))};oS.isSideCarExport=!0;function AX(t,n){return t.useMedium(n),oS}var cS=ZX(),WO=function(){},Gc=v.forwardRef(function(t,n){var s=v.useRef(null),l=v.useState({onScrollCapture:WO,onWheelCapture:WO,onTouchMoveCapture:WO}),o=l[0],u=l[1],d=t.forwardProps,O=t.children,m=t.className,p=t.removeScrollBar,x=t.enabled,g=t.shards,b=t.sideCar,S=t.noRelative,Q=t.noIsolation,k=t.inert,T=t.allowPinchZoom,j=t.as,P=j===void 0?"div":j,N=t.gapMode,A=iS(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),U=b,C=CX([s,n]),X=wa(wa({},A),o);return v.createElement(v.Fragment,null,x&&v.createElement(U,{sideCar:cS,removeScrollBar:p,shards:g,noRelative:S,noIsolation:Q,inert:k,setCallbacks:u,allowPinchZoom:!!T,lockRef:s,gapMode:N}),d?v.cloneElement(v.Children.only(O),wa(wa({},X),{ref:C})):v.createElement(P,wa({},X,{className:m,ref:C}),O))});Gc.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Gc.classNames={fullWidth:Jo,zeroRight:Ko};var EX=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function qX(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var n=EX();return n&&t.setAttribute("nonce",n),t}function MX(t,n){t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n))}function YX(t){var n=document.head||document.getElementsByTagName("head")[0];n.appendChild(t)}var VX=function(){var t=0,n=null;return{add:function(s){t==0&&(n=qX())&&(MX(n,s),YX(n)),t++},remove:function(){t--,!t&&n&&(n.parentNode&&n.parentNode.removeChild(n),n=null)}}},UX=function(){var t=VX();return function(n,s){v.useEffect(function(){return t.add(n),function(){t.remove()}},[n&&s])}},uS=function(){var t=UX(),n=function(s){var l=s.styles,o=s.dynamic;return t(l,o),null};return n},GX={left:0,top:0,right:0,gap:0},BO=function(t){return parseInt(t||"",10)||0},LX=function(t){var n=window.getComputedStyle(document.body),s=n[t==="padding"?"paddingLeft":"marginLeft"],l=n[t==="padding"?"paddingTop":"marginTop"],o=n[t==="padding"?"paddingRight":"marginRight"];return[BO(s),BO(l),BO(o)]},DX=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return GX;var n=LX(t),s=document.documentElement.clientWidth,l=window.innerWidth;return{left:n[0],top:n[1],right:n[2],gap:Math.max(0,l-s+n[2]-n[0])}},WX=uS(),kl="data-scroll-locked",BX=function(t,n,s,l){var o=t.left,u=t.top,d=t.right,O=t.gap;return s===void 0&&(s="margin"),`
539
- .`.concat(PX,` {
548
+ `,{label:"if",detail:"block",type:"keyword"}),Ie("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),Ie("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),Ie("import ${module}",{label:"import",detail:"statement",type:"keyword"}),Ie("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],JR=S0(Ny,Q0(FR.concat(KR)));function AO(t){let{node:n,pos:s}=t,l=t.lineIndent(s,-1),o=null;for(;;){let u=n.childBefore(s);if(u)if(u.name=="Comment")s=u.from;else if(u.name=="Body"||u.name=="MatchBody")t.baseIndentFor(u)+t.unit<=l&&(o=u),n=u;else if(u.name=="MatchClause")n=u;else if(u.type.is("Statement"))n=u;else break;else break}return o}function EO(t,n){let s=t.baseIndentFor(n),l=t.lineAt(t.pos,-1),o=l.from+l.text.length;return/^\s*($|#)/.test(l.text)&&t.node.to<o+100&&!/\S/.test(t.state.sliceDoc(o,t.node.to))&&t.lineIndent(t.pos,-1)<=s||/^\s*(else:|elif |except |finally:|case\s+[^=:]+:)/.test(t.textAfter)&&t.lineIndent(t.pos,-1)>s?null:s+t.unit}const qO=si.define({name:"python",parser:BR.configure({props:[_l.add({Body:t=>{var n;let s=/^\s*(#|$)/.test(t.textAfter)&&AO(t)||t.node;return(n=EO(t,s))!==null&&n!==void 0?n:t.continue()},MatchBody:t=>{var n;let s=AO(t);return(n=EO(t,s||t.node))!==null&&n!==void 0?n:t.continue()},IfStatement:t=>/^\s*(else:|elif )/.test(t.textAfter)?t.baseIndent:t.continue(),"ForStatement WhileStatement":t=>/^\s*else:/.test(t.textAfter)?t.baseIndent:t.continue(),TryStatement:t=>/^\s*(except[ :]|finally:|else:)/.test(t.textAfter)?t.baseIndent:t.continue(),MatchStatement:t=>/^\s*case /.test(t.textAfter)?t.baseIndent+t.unit:t.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":Lo({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":Lo({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":Lo({closing:"]"}),MemberExpression:t=>t.baseIndent+t.unit,"String FormatString":()=>null,Script:t=>{var n;let s=AO(t);return(n=s&&EO(t,s))!==null&&n!==void 0?n:t.continue()}}),Ps.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":jc,Body:(t,n)=>({from:t.from+1,to:t.to-(t.to==n.doc.length?0:1)}),"String FormatString":(t,n)=>({from:n.doc.lineAt(t.from).to,to:t.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function eC(){return new Qs(qO,[qO.data.of({autocomplete:IR}),qO.data.of({autocomplete:JR})])}const qo={javascript:()=>Of({jsx:!0,typescript:!1}),typescript:()=>Of({jsx:!0,typescript:!0}),css:()=>$v(),html:()=>Dv(),json:()=>H4(),markdown:()=>Xz(),python:()=>eC()},tC=$l.theme({"&":{backgroundColor:"#24282f",color:"#bcc2cd",fontFamily:"var(--font-mono)",fontSize:"13px",height:"100%"},".cm-scroller":{overflow:"auto"},".cm-content":{caretColor:"#33afbc"},".cm-cursor":{borderLeftColor:"#33afbc"},".cm-gutters":{backgroundColor:"#24282f",borderRight:"1px solid #2c313a",color:"#505862"},".cm-activeLineGutter":{backgroundColor:"#2c313a"},".cm-activeLine":{backgroundColor:"rgba(44, 49, 58, 0.5)"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground":{backgroundColor:"rgba(51, 175, 188, 0.15)"}},{dark:!0});function aC({content:t,language:n,onChange:s,onSave:l}){const o=v.useRef(null),u=v.useRef(null),d=v.useRef(new Cj),O=v.useRef(s),m=v.useRef(l);return O.current=s,m.current=l,v.useEffect(()=>{if(!o.current)return;const p=qo[n]||qo.javascript,x=KO.of([{key:"Mod-s",run:()=>{var S;return(S=m.current)==null||S.call(m),!0}}]),g=$0.create({doc:t||"",extensions:[_j(),Zj(),Aj(),Ej(),qj(),Mj(),Yj(),KO.of([...Vj,...Uj,...Gj]),x,Xj,tC,d.current.of(p()),$l.updateListener.of(S=>{var Q;S.docChanged&&((Q=O.current)==null||Q.call(O,S.state.doc.toString()))})]}),b=new $l({state:g,parent:o.current});return u.current=b,()=>{b.destroy(),u.current=null}},[]),v.useEffect(()=>{const p=u.current;if(!p)return;const x=p.state.doc.toString();t!==x&&p.dispatch({changes:{from:0,to:x.length,insert:t||""}})},[t]),v.useEffect(()=>{const p=u.current;if(!p)return;const x=qo[n]||qo.javascript;p.dispatch({effects:d.current.reconfigure(x())})},[n]),i.jsx("div",{ref:o,className:"w-full h-full overflow-hidden"})}const nC=["png","jpg","jpeg","gif","svg","webp","ico","bmp","avif"],zy=["mp4","webm","mov","avi","mkv","ogv"];function sC(t){var s;const n=(s=t.split(".").pop())==null?void 0:s.toLowerCase();return nC.includes(n)||zy.includes(n)}function lC({path:t}){var u;const n=(u=t.split(".").pop())==null?void 0:u.toLowerCase(),s=`/api/files/raw?path=${encodeURIComponent(t)}`,l=t.split("/").pop(),o=zy.includes(n);return i.jsxs("div",{className:"w-full h-full flex flex-col items-center justify-center bg-surface-0 p-8 gap-4",children:[i.jsxs("div",{className:"flex items-center gap-2 text-xs text-text-3 font-sans",children:[i.jsx(We,{children:n==null?void 0:n.toUpperCase()}),i.jsx("span",{className:"font-mono",children:l}),i.jsx("a",{href:s,target:"_blank",rel:"noopener",className:"text-accent hover:text-accent/80 transition-colors",children:i.jsx(cc,{size:12})})]}),o?i.jsx("video",{src:s,controls:!0,className:"max-w-full max-h-[70vh] rounded-md border border-border"}):i.jsx("img",{src:s,alt:l,className:"max-w-full max-h-[70vh] rounded-md border border-border object-contain"})]})}function rC(){const t=D(b=>b.editorActiveFile),n=D(b=>b.editorFiles),s=D(b=>b.editorChangedFiles),l=D(b=>b.updateFileContent),o=D(b=>b.saveFile),u=D(b=>b.reloadFile),d=D(b=>b.dismissFileChange),[O,m]=v.useState("");v.useEffect(()=>{ee.get("/files/root").then(b=>m(b.root||"")).catch(()=>{})},[]);const p=t?n[t]:null,x=t&&sC(t),g=t&&s[t];return i.jsxs("div",{className:"flex h-full",children:[i.jsx("div",{className:"w-60 flex-shrink-0 border-r border-border",children:i.jsx(jN,{rootDir:O})}),i.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[i.jsx(wN,{}),i.jsxs("div",{className:"flex-1 relative min-h-0",children:[g&&i.jsxs("div",{className:"absolute top-0 left-0 right-0 z-10 flex items-center gap-2 px-4 py-2 bg-warning/10 border-b border-warning/20",children:[i.jsx(_c,{size:14,className:"text-warning"}),i.jsx("span",{className:"text-xs text-warning font-sans flex-1",children:"File modified externally"}),i.jsxs(je,{variant:"ghost",size:"sm",onClick:()=>u(t),children:[i.jsx(es,{size:12})," Reload"]}),i.jsxs(je,{variant:"ghost",size:"sm",onClick:()=>d(t),children:[i.jsx(Rt,{size:12})," Dismiss"]})]}),!t&&i.jsx("div",{className:"w-full h-full flex items-center justify-center text-text-4 font-sans",children:i.jsxs("div",{className:"text-center space-y-2",children:[i.jsx(dn,{size:32,className:"mx-auto"}),i.jsx("p",{className:"text-sm",children:"Open a file from the tree"})]})}),t&&x&&i.jsx(lC,{path:t}),t&&!x&&p&&i.jsx(aC,{content:p.content,language:p.language,onChange:b=>l(t,b),onSave:()=>o(t)})]})]})]})}function iC(){var k;const t=D(T=>T.connected),n=D(T=>T.agents),[s,l]=v.useState(null),[o,u]=v.useState(!0),[d,O]=v.useState({tokens:[],cost:[],saved:[],efficiency:[],cache:[],inputOutput:[],agents:[],turns:[]}),m=v.useRef(0);v.useEffect(()=>{if(!t)return;let T=!0;async function j(){try{const N=await ee.get("/dashboard");if(!T)return;l(N),u(!1),m.current=Date.now(),O(A=>{var re,xe,ie,J,z,B,I,fe,te;const U=Date.now(),C=(Ae,Se)=>[...Ae.slice(-59),{t:U,v:Se||0}],X=((re=N.tokens)==null?void 0:re.totalTokens)||0,$=((ie=(xe=N.tokens)==null?void 0:xe.savings)==null?void 0:ie.total)||0,W=X+$,E=((J=N.tokens)==null?void 0:J.totalInputTokens)||0,ne=((z=N.tokens)==null?void 0:z.totalOutputTokens)||0;return{tokens:C(A.tokens,X),cost:C(A.cost,(B=N.tokens)==null?void 0:B.totalCostUsd),saved:C(A.saved,$),efficiency:C(A.efficiency,W>0?$/W*100:0),cache:C(A.cache,(I=N.tokens)==null?void 0:I.cacheHitRate),inputOutput:C(A.inputOutput,ne>0?E/ne:0),agents:C(A.agents,((fe=N.agents)==null?void 0:fe.running)||0),turns:C(A.turns,(te=N.tokens)==null?void 0:te.totalTurns)}})}catch{T&&u(!1)}}j();const P=setInterval(j,4e3);return()=>{T=!1,clearInterval(P)}},[t]);const p=((k=s==null?void 0:s.agents)==null?void 0:k.breakdown)||[],x=(s==null?void 0:s.routing)||null,g=(s==null?void 0:s.rotation)||null,b=(s==null?void 0:s.adaptive)||[],S=(s==null?void 0:s.journalist)||null,Q=(g==null?void 0:g.rotating)||[];return{data:s,loading:o,agents:n,connected:t,kpiHistory:d,lastFetch:m.current,agentBreakdown:p,routing:x,rotation:g,adaptive:b,journalist:S,rotating:Q}}const K1=v.memo(function({connected:n,runningCount:s,totalCount:l,uptime:o,lastFetch:u,activeTeam:d}){return i.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 bg-surface-1 border-b border-border",children:[i.jsx("h2",{className:"text-xs font-semibold text-text-0 font-sans tracking-wide uppercase",children:"Command Center"}),d&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-text-4",children:"/"}),i.jsx("span",{className:"text-xs font-mono text-text-2",children:d.name})]}),i.jsx("div",{className:"flex-1"}),n&&i.jsxs("div",{className:"flex items-center gap-3.5 text-xs font-mono text-text-2",children:[i.jsxs("span",{children:[i.jsx("span",{className:"text-text-1",children:s}),i.jsxs("span",{className:"text-text-3",children:["/",l]}),i.jsx("span",{className:"ml-1 text-text-3",children:"agents"})]}),o>0&&i.jsxs("span",{className:"text-text-3",children:["Up ",Ac(o)]}),u>0&&i.jsxs("span",{className:"flex items-center gap-1 text-text-4",children:[i.jsx(es,{size:9}),i.jsx("span",{children:Ct(u)})]})]}),i.jsx(Nl,{status:n?"running":"crashed",size:"sm"})]})});function ia(t,n){const s=parseInt(t.slice(1,3),16),l=parseInt(t.slice(3,5),16),o=parseInt(t.slice(5,7),16);return`rgba(${s},${l},${o},${n})`}const pe={surface0:"#1a1e25",surface4:"#2c313a",surface5:"#333842",text0:"#e6e6e6",text1:"#bcc2cd",text2:"#8b929e",text3:"#6e7681",text4:"#505862",accent:"#33afbc",success:"#4ae168",warning:"#e5c07b",danger:"#e06c75",info:"#61afef",purple:"#c678dd",orange:"#d19a66"};function oC({data:t,color:n=pe.accent,width:s=72,height:l=22}){if(!t||t.length<2)return i.jsx("div",{style:{width:s,height:l}});const o=t.map(x=>x.v),u=Math.min(...o),O=Math.max(...o)-u||1,m=t.map((x,g)=>{const b=g/(t.length-1)*s,S=l-(x.v-u)/O*(l-2)-1;return`${b},${S}`}).join(" "),p=`kpi-${n.replace("#","")}`;return i.jsxs("svg",{width:s,height:l,className:"flex-shrink-0",children:[i.jsx("defs",{children:i.jsxs("linearGradient",{id:p,x1:"0",y1:"0",x2:"0",y2:"1",children:[i.jsx("stop",{offset:"0%",stopColor:n,stopOpacity:"0.2"}),i.jsx("stop",{offset:"100%",stopColor:n,stopOpacity:"0"})]})}),i.jsx("polygon",{points:`0,${l} ${m} ${s},${l}`,fill:`url(#${p})`}),i.jsx("polyline",{points:m,fill:"none",stroke:n,strokeWidth:"1.5",strokeLinejoin:"round",strokeOpacity:"0.8"})]})}const cC=v.memo(function({label:n,value:s,sparkData:l,color:o=pe.accent,className:u}){return i.jsxs("div",{className:le("flex items-center gap-2.5 px-3 py-2.5 min-w-0","bg-surface-1",u),children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-0.5 truncate",children:n}),i.jsx("div",{className:"text-base font-semibold font-mono text-text-0 tabular-nums leading-none",children:s})]}),i.jsx(oC,{data:l,color:o})]})});function uC({kpis:t}){return i.jsx("div",{className:"flex flex-wrap border-b border-border",style:{background:"var(--color-surface-0)"},children:t.map(n=>i.jsx(cC,{label:n.label,value:n.value,sparkData:n.sparkData,color:n.color,className:le("flex-1 basis-[12.5%] min-w-[140px]","border-b border-r border-border")},n.label))})}const dC={actual:"ACT",estimated:"EST",local:"LOC"},OC=v.memo(function({agent:n,isRotating:s}){const l=n.status==="running"||n.status==="starting",o=Math.round((n.contextUsage||0)*100),u=s?"#c678dd":Ff(n.status),d=n.quality,O=(d==null?void 0:d.toolSuccessRate)!=null?Math.round(d.toolSuccessRate*100):null,m=n.rotationThreshold?Math.round(n.rotationThreshold*100):null;return i.jsxs("div",{className:"px-3 py-2 hover:bg-surface-3 transition-colors space-y-1.5",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"relative flex-shrink-0 w-[6px] h-[6px]",children:[i.jsx("span",{className:"absolute inset-0 rounded-sm",style:{background:u}}),l&&i.jsx("span",{className:"absolute inset-[-2px] rounded-sm",style:{background:u,opacity:.15,animation:"node-pulse-bar 2s ease-in-out infinite"}})]}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"text-xs font-semibold text-text-0 font-sans truncate leading-none",children:n.name}),i.jsxs("div",{className:"flex items-center gap-1 mt-0.5",children:[i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider",children:n.role}),i.jsx("span",{className:"text-2xs text-text-4",children:"/"}),i.jsx("span",{className:"text-2xs font-mono text-text-3",children:fC(n.model)})]})]}),i.jsx("div",{className:"flex-1"}),O!=null&&i.jsxs("span",{className:"text-2xs font-mono font-bold uppercase px-1 py-px rounded-sm flex-shrink-0",style:{color:O>=90?"#4ae168":O>=70?"#e5c07b":"#e06c75",background:O>=90?"rgba(74,225,104,0.1)":O>=70?"rgba(229,192,123,0.1)":"rgba(224,108,117,0.1)"},children:[O,"%"]}),n.costSource&&n.costSource!=="actual"&&i.jsx("span",{className:"text-2xs font-mono text-text-4 uppercase tracking-wider flex-shrink-0",children:dC[n.costSource]||""}),i.jsxs("div",{className:"text-right flex-shrink-0",children:[i.jsx("div",{className:"text-xs font-mono text-text-1 tabular-nums leading-none",children:rt(n.tokens||0)}),(n.costUsd||0)>0&&i.jsx("div",{className:"text-2xs font-mono text-text-3 mt-0.5",children:Kf(n.costUsd)})]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("div",{className:"relative flex-1 h-[3px] bg-surface-0 rounded-full overflow-visible",children:[i.jsx("div",{className:"absolute inset-y-0 left-0 rounded-full transition-all duration-700",style:{width:`${Math.max(o,1)}%`,background:o>80?"#e06c75":o>60?"#e5c07b":l?"#61afef":"#333842"}}),m&&i.jsx("div",{className:"absolute top-[-2px] w-px h-[7px]",style:{left:`${m}%`,background:"#c678dd"},title:`Rotation at ${m}%`})]}),i.jsxs("span",{className:"text-2xs font-mono text-text-2 tabular-nums flex-shrink-0 w-7 text-right",children:[o,"%"]})]})]})});function fC(t){if(!t||t==="auto"||t==="default")return"default";const n=t.match(/^claude-(opus|sonnet|haiku)-(\d+)-(\d+)/);return n?`${n[1][0].toUpperCase()}${n[1].slice(1)} ${n[2]}.${n[3]}`:t.startsWith("gemini-")?t.replace("gemini-","Gem ").replace("-preview",""):t.length>12?t.slice(0,12)+"...":t}const hC=v.memo(function({agentBreakdown:n,rotating:s=[]}){if(!(n!=null&&n.length))return i.jsx("div",{className:"flex-1 flex items-center justify-center text-xs text-text-3 font-mono p-4",children:"No agents"});const l={};for(const u of n){const d=u.teamId||"ungrouped";l[d]||(l[d]=[]),l[d].push(u)}const o=new Set(s);return i.jsx(Ht,{className:"flex-1",children:i.jsx("div",{className:"py-1",children:Object.entries(l).map(([u,d])=>i.jsxs("div",{children:[i.jsx("div",{className:"px-3 pt-2 pb-1",children:i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-widest",children:u})}),d.map(O=>i.jsx(OC,{agent:O,isRotating:o.has(O.id)},O.id))]},u))})})}),mC=v.memo(function({data:n}){const s=v.useRef(null),l=v.useRef(null),[o,u]=v.useState({width:0,height:0}),[d,O]=v.useState(null),{width:m,height:p}=o,x={top:28,right:12,bottom:8,left:12},g=Math.max(m-x.left-x.right,0),b=Math.max(p-x.top-x.bottom,0),S=v.useMemo(()=>!n||n.length<2?[]:n.slice(1).map((T,j)=>{const P=n[j],N=(T.t-P.t)/6e4,A=Math.max((T.tokens||0)-(P.tokens||0),0);return{burnRate:N>0?Math.round(A/N):0,cacheHitRate:T.cacheHitRate||0,running:T.running||0,agents:T.agents||0,t:T.t}}),[n]);v.useEffect(()=>{const T=s.current;if(!T)return;const j=new ResizeObserver(P=>{const{width:N,height:A}=P[0].contentRect;N>0&&A>0&&u({width:Math.floor(N),height:Math.floor(A)})});return j.observe(T),()=>j.disconnect()},[]);const Q=v.useCallback(T=>{const j=l.current;if(!j||!S.length||g<=0)return;const P=j.getBoundingClientRect(),N=T.clientX-P.left-x.left;if(N<0||N>g){O(null);return}const A=Math.round(N/g*(S.length-1));O({x:x.left+A/Math.max(S.length-1,1)*g,index:A})},[S,g,x.left]),k=v.useCallback(()=>O(null),[]);return v.useEffect(()=>{const T=l.current;if(!T||!S.length||m<=0||p<=0||g<=0||b<=0)return;const j=T.getContext("2d"),P=window.devicePixelRatio||1;T.width=m*P,T.height=p*P,j.scale(P,P),j.clearRect(0,0,m,p);const N=S.map(z=>z.burnRate),A=S.map(z=>z.cacheHitRate),U=S.map(z=>z.running),C=Math.max(...N,100),X=Math.max(...U,1),$=z=>x.left+z/Math.max(S.length-1,1)*g,W=z=>x.top+b-z/C*b,E=z=>x.top+b-z*b,ne=Math.max(g/S.length-1,2);for(let z=0;z<S.length;z++){const B=U[z];if(B<=0)continue;const I=B/X*b*.3,fe=$(z)-ne/2,te=x.top+b-I;j.fillStyle=ia(pe.surface5,.5),j.fillRect(fe,te,ne,I)}j.setLineDash([2,4]),j.strokeStyle=ia(pe.text4,.2),j.lineWidth=1;for(let z=1;z<=3;z++){const B=x.top+b/4*z;j.beginPath(),j.moveTo(x.left,B),j.lineTo(x.left+g,B),j.stroke()}j.setLineDash([]),j.font="9px 'JetBrains Mono Variable', monospace",j.textAlign="left",j.fillStyle=ia(pe.text3,.5),j.fillText(`${rt(C)}/m`,x.left+4,x.top+10),j.fillText(`${rt(Math.round(C/2))}/m`,x.left+4,x.top+b/2+4),j.beginPath(),j.moveTo(x.left,x.top+b);for(let z=0;z<S.length;z++)j.lineTo($(z),W(N[z]));j.lineTo($(S.length-1),x.top+b),j.closePath();const re=j.createLinearGradient(0,x.top,0,x.top+b);re.addColorStop(0,ia(pe.accent,.2)),re.addColorStop(.7,ia(pe.accent,.04)),re.addColorStop(1,ia(pe.accent,0)),j.fillStyle=re,j.fill(),j.beginPath(),j.strokeStyle=pe.accent,j.lineWidth=1.5,j.lineJoin="round";for(let z=0;z<S.length;z++){const B=$(z),I=W(N[z]);z===0?j.moveTo(B,I):j.lineTo(B,I)}j.stroke();const xe=A.some(z=>z>0);if(xe){j.beginPath(),j.strokeStyle=ia(pe.info,.45),j.lineWidth=1,j.lineJoin="round",j.setLineDash([2,3]);for(let z=0;z<S.length;z++){const B=$(z),I=E(A[z]);z===0?j.moveTo(B,I):j.lineTo(B,I)}j.stroke(),j.setLineDash([])}j.font="9px 'Inter Variable', sans-serif",j.textAlign="right";let ie=m-x.right-4;const J=14;if(xe&&(j.fillStyle=ia(pe.info,.5),j.fillText("Cache %",ie,J),ie-=j.measureText("Cache %").width+4,j.beginPath(),j.arc(ie,J-3,2.5,0,Math.PI*2),j.fill(),ie-=14),j.fillStyle=ia(pe.surface5,.7),j.fillText("Agents",ie,J),ie-=j.measureText("Agents").width+4,j.beginPath(),j.arc(ie,J-3,2.5,0,Math.PI*2),j.fill(),ie-=14,j.fillStyle=pe.accent,j.fillText("Burn Rate",ie,J),ie-=j.measureText("Burn Rate").width+4,j.beginPath(),j.arc(ie,J-3,2.5,0,Math.PI*2),j.fill(),d&&d.index>=0&&d.index<S.length){const z=d.x,B=S[d.index];j.beginPath(),j.moveTo(z,x.top),j.lineTo(z,x.top+b),j.strokeStyle=ia(pe.text1,.15),j.lineWidth=1,j.stroke();const I=W(B.burnRate);j.beginPath(),j.arc(z,I,3,0,Math.PI*2),j.fillStyle=pe.accent,j.fill();const fe=[{label:"Burn",value:`${rt(B.burnRate)}/m`,color:pe.accent},{label:"Cache",value:ws(B.cacheHitRate*100),color:pe.info},{label:"Agents",value:`${B.running}/${B.agents}`,color:pe.text2}],te=104,Ae=fe.length*16+12;let Se=z+12;Se+te>m-8&&(Se=z-te-12);const ve=Math.max(x.top,I-Ae/2);j.fillStyle=ia(pe.surface0,.92),j.beginPath(),j.roundRect(Se,ve,te,Ae,4),j.fill(),j.strokeStyle=ia(pe.text4,.2),j.lineWidth=1,j.stroke(),j.textAlign="left",fe.forEach((Xe,L)=>{const oe=ve+14+L*16;j.beginPath(),j.arc(Se+8,oe-3,2,0,Math.PI*2),j.fillStyle=Xe.color,j.fill(),j.font="8px 'Inter Variable', sans-serif",j.fillStyle=pe.text3,j.fillText(Xe.label,Se+14,oe),j.font="9px 'JetBrains Mono Variable', monospace",j.fillStyle=pe.text0,j.textAlign="right",j.fillText(Xe.value,Se+te-8,oe),j.textAlign="left"})}},[S,m,p,d,g,b,x]),i.jsx("div",{ref:s,className:"absolute inset-0",children:m>0&&p>0&&i.jsx("canvas",{ref:l,style:{width:m,height:p},className:"block cursor-crosshair",onMouseMove:Q,onMouseLeave:k})})}),pC=v.memo(function({cacheRead:n=0,cacheCreation:s=0,totalInput:l=0,size:o=140}){const u=v.useRef(null),d=n+s+l,O=d>0?n/d*100:0;return v.useEffect(()=>{const m=u.current;if(!m)return;const p=window.devicePixelRatio||1;m.width=o*p,m.height=o*p;const x=m.getContext("2d");x.scale(p,p),x.clearRect(0,0,o,o);const g=o/2,b=o/2,S=(o-12)/2,Q=5,k=135*Math.PI/180,T=405*Math.PI/180,j=T-k;if(x.beginPath(),x.arc(g,b,S,k,T),x.strokeStyle=pe.surface4,x.lineWidth=Q,x.lineCap="round",x.stroke(),d>0){const P=n/d,N=s/d;if(P>0){const A=k+j*P;x.beginPath(),x.arc(g,b,S,k,A),x.strokeStyle=pe.accent,x.lineWidth=Q,x.lineCap="round",x.stroke()}if(N>0){const A=k+j*P,U=A+j*N;x.beginPath(),x.arc(g,b,S,A,U),x.strokeStyle=pe.purple,x.lineWidth=Q,x.lineCap="butt",x.stroke()}}x.textAlign="center",x.textBaseline="middle",x.font=`600 ${o*.2}px 'JetBrains Mono Variable', monospace`,x.fillStyle=pe.text0,x.fillText(`${Math.round(O)}%`,g,b-3),x.font=`500 ${o*.08}px 'JetBrains Mono Variable', monospace`,x.fillStyle=pe.text3,x.fillText("CACHE",g,b+o*.13)},[n,s,l,o,d,O]),i.jsxs("div",{className:"flex flex-col items-center justify-center h-full px-3 py-3",children:[i.jsx("canvas",{ref:u,className:"flex-shrink-0",style:{width:o,height:o}}),i.jsxs("div",{className:"w-full mt-3 space-y-1.5 max-w-[160px]",children:[i.jsx(MO,{color:pe.accent,label:"Read",value:rt(n)}),i.jsx(MO,{color:pe.purple,label:"Create",value:rt(s)}),i.jsx(MO,{color:pe.surface5,label:"Miss",value:rt(Math.max(l-n-s,0))})]})]})});function MO({color:t,label:n,value:s}){return i.jsxs("div",{className:"flex items-center gap-2 text-xs font-mono",children:[i.jsx("span",{className:"w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:t}}),i.jsx("span",{className:"text-text-3 uppercase tracking-wider flex-1",children:n}),i.jsx("span",{className:"text-text-1 tabular-nums",children:s})]})}const J1={heavy:pe.danger,medium:pe.warning,light:pe.success},e0={heavy:"Heavy",medium:"Medium",light:"Light"},xC=v.memo(function({routing:n,agentBreakdown:s}){if(!n)return null;const{byTier:l={},totalDecisions:o=0,autoRoutedCount:u=0}=n,d=["heavy","medium","light"],O=d.reduce((g,b)=>g+(l[b]||0),0),m={};for(const g of s||[]){const b=g.model||"default";m[b]||(m[b]={tokens:0,agents:0}),m[b].tokens+=g.tokens||0,m[b].agents+=1}const p=Object.entries(m).sort((g,b)=>b[1].tokens-g[1].tokens),x=p.length>0?p[0][1].tokens:0;return i.jsxs("div",{className:"flex flex-col h-full px-3 py-3 overflow-y-auto",children:[O>0&&i.jsxs("div",{className:"space-y-1.5 mb-3",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider",children:"Tier Distribution"}),i.jsxs("span",{className:"text-2xs font-mono text-text-4 ml-auto tabular-nums",children:[rt(O)," decisions"]})]}),i.jsx("div",{className:"h-[6px] bg-surface-0 rounded-full overflow-hidden flex",children:d.map(g=>{const b=l[g]||0;if(b===0)return null;const S=b/O*100;return i.jsx("div",{className:"h-full transition-all duration-500",style:{width:`${S}%`,background:J1[g]},title:`${e0[g]}: ${b} (${Math.round(S)}%)`},g)})}),i.jsx("div",{className:"flex items-center gap-3",children:d.map(g=>{const b=l[g]||0;if(b===0)return null;const S=O>0?b/O*100:0;return i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:J1[g]}}),i.jsx("span",{className:"text-2xs font-mono text-text-2",children:e0[g]}),i.jsx("span",{className:"text-2xs font-mono text-text-4 tabular-nums",children:ws(S)})]},g)})})]}),p.length>0&&i.jsxs("div",{className:"space-y-1.5 flex-1",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider",children:"Models in Use"}),u>0&&i.jsxs("span",{className:"text-2xs font-mono text-text-4 ml-auto",children:[u," auto"]})]}),i.jsx("div",{className:"space-y-1.5",children:p.map(([g,b])=>{const S=x>0?b.tokens/x*100:0;return i.jsxs("div",{className:"space-y-0.5",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-xs font-mono text-text-1 flex-1 truncate",children:gC(g)}),i.jsxs("span",{className:"text-2xs font-mono text-text-3 tabular-nums",children:[b.agents," agent",b.agents!==1?"s":""]}),i.jsx("span",{className:"text-xs font-mono text-text-1 tabular-nums",children:rt(b.tokens)})]}),i.jsx("div",{className:"h-[3px] bg-surface-0 rounded-full overflow-hidden",children:i.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${Math.max(S,2)}%`,background:pe.accent}})})]},g)})})]}),O===0&&p.length===0&&i.jsx("div",{className:"flex-1 flex items-center justify-center text-xs text-text-3 font-mono",children:"No routing data"})]})});function gC(t){if(!t||t==="auto"||t==="default")return"Default";const n=t.match(/^claude-(opus|sonnet|haiku)-(\d+)-(\d+)/);return n?`${n[1][0].toUpperCase()}${n[1].slice(1)} ${n[2]}.${n[3]}`:t.startsWith("gemini-")?t.replace("gemini-","Gemini ").replace("-preview",""):t}function bC(t){const n=t+"CollectionProvider",[s,l]=Ns(n),[o,u]=s(n,{collectionRef:{current:null},itemMap:new Map}),d=k=>{const{scope:T,children:j}=k,P=Vn.useRef(null),N=Vn.useRef(new Map).current;return i.jsx(o,{scope:T,itemMap:N,collectionRef:P,children:j})};d.displayName=n;const O=t+"CollectionSlot",m=ec(O),p=Vn.forwardRef((k,T)=>{const{scope:j,children:P}=k,N=u(O,j),A=it(T,N.collectionRef);return i.jsx(m,{ref:A,children:P})});p.displayName=O;const x=t+"CollectionItemSlot",g="data-radix-collection-item",b=ec(x),S=Vn.forwardRef((k,T)=>{const{scope:j,children:P,...N}=k,A=Vn.useRef(null),U=it(T,A),C=u(x,j);return Vn.useEffect(()=>(C.itemMap.set(A,{ref:A,...N}),()=>void C.itemMap.delete(A))),i.jsx(b,{[g]:"",ref:U,children:P})});S.displayName=x;function Q(k){const T=u(t+"CollectionConsumer",k);return Vn.useCallback(()=>{const P=T.collectionRef.current;if(!P)return[];const N=Array.from(P.querySelectorAll(`[${g}]`));return Array.from(T.itemMap.values()).sort((C,X)=>N.indexOf(C.ref.current)-N.indexOf(X.ref.current))},[T.collectionRef,T.itemMap])}return[{Provider:d,Slot:p,ItemSlot:S},Q,l]}var YO="rovingFocusGroup.onEntryFocus",vC={bubbles:!1,cancelable:!0},di="RovingFocusGroup",[yf,Ry,yC]=bC(di),[SC,Cy]=Ns(di,[yC]),[QC,jC]=SC(di),Xy=v.forwardRef((t,n)=>i.jsx(yf.Provider,{scope:t.__scopeRovingFocusGroup,children:i.jsx(yf.Slot,{scope:t.__scopeRovingFocusGroup,children:i.jsx(wC,{...t,ref:n})})}));Xy.displayName=di;var wC=v.forwardRef((t,n)=>{const{__scopeRovingFocusGroup:s,orientation:l,loop:o=!1,dir:u,currentTabStopId:d,defaultCurrentTabStopId:O,onCurrentTabStopIdChange:m,onEntryFocus:p,preventScrollOnEntryFocus:x=!1,...g}=t,b=v.useRef(null),S=it(n,b),Q=Jf(u),[k,T]=Pc({prop:d,defaultProp:O??null,onChange:m,caller:di}),[j,P]=v.useState(!1),N=zt(p),A=Ry(s),U=v.useRef(!1),[C,X]=v.useState(0);return v.useEffect(()=>{const $=b.current;if($)return $.addEventListener(YO,N),()=>$.removeEventListener(YO,N)},[N]),i.jsx(QC,{scope:s,orientation:l,dir:Q,loop:o,currentTabStopId:k,onItemFocus:v.useCallback($=>T($),[T]),onItemShiftTab:v.useCallback(()=>P(!0),[]),onFocusableItemAdd:v.useCallback(()=>X($=>$+1),[]),onFocusableItemRemove:v.useCallback(()=>X($=>$-1),[]),children:i.jsx(Be.div,{tabIndex:j||C===0?-1:0,"data-orientation":l,...g,ref:S,style:{outline:"none",...t.style},onMouseDown:Ee(t.onMouseDown,()=>{U.current=!0}),onFocus:Ee(t.onFocus,$=>{const W=!U.current;if($.target===$.currentTarget&&W&&!j){const E=new CustomEvent(YO,vC);if($.currentTarget.dispatchEvent(E),!E.defaultPrevented){const ne=A().filter(z=>z.focusable),re=ne.find(z=>z.active),xe=ne.find(z=>z.id===k),J=[re,xe,...ne].filter(Boolean).map(z=>z.ref.current);Ay(J,x)}}U.current=!1}),onBlur:Ee(t.onBlur,()=>P(!1))})})}),_y="RovingFocusGroupItem",Zy=v.forwardRef((t,n)=>{const{__scopeRovingFocusGroup:s,focusable:l=!0,active:o=!1,tabStopId:u,children:d,...O}=t,m=Ql(),p=u||m,x=jC(_y,s),g=x.currentTabStopId===p,b=Ry(s),{onFocusableItemAdd:S,onFocusableItemRemove:Q,currentTabStopId:k}=x;return v.useEffect(()=>{if(l)return S(),()=>Q()},[l,S,Q]),i.jsx(yf.ItemSlot,{scope:s,id:p,focusable:l,active:o,children:i.jsx(Be.span,{tabIndex:g?0:-1,"data-orientation":x.orientation,...O,ref:n,onMouseDown:Ee(t.onMouseDown,T=>{l?x.onItemFocus(p):T.preventDefault()}),onFocus:Ee(t.onFocus,()=>x.onItemFocus(p)),onKeyDown:Ee(t.onKeyDown,T=>{if(T.key==="Tab"&&T.shiftKey){x.onItemShiftTab();return}if(T.target!==T.currentTarget)return;const j=TC(T,x.orientation,x.dir);if(j!==void 0){if(T.metaKey||T.ctrlKey||T.altKey||T.shiftKey)return;T.preventDefault();let N=b().filter(A=>A.focusable).map(A=>A.ref.current);if(j==="last")N.reverse();else if(j==="prev"||j==="next"){j==="prev"&&N.reverse();const A=N.indexOf(T.currentTarget);N=x.loop?PC(N,A+1):N.slice(A+1)}setTimeout(()=>Ay(N))}}),children:typeof d=="function"?d({isCurrentTabStop:g,hasTabStop:k!=null}):d})})});Zy.displayName=_y;var kC={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function $C(t,n){return n!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function TC(t,n,s){const l=$C(t.key,s);if(!(n==="vertical"&&["ArrowLeft","ArrowRight"].includes(l))&&!(n==="horizontal"&&["ArrowUp","ArrowDown"].includes(l)))return kC[l]}function Ay(t,n=!1){const s=document.activeElement;for(const l of t)if(l===s||(l.focus({preventScroll:n}),document.activeElement!==s))return}function PC(t,n){return t.map((s,l)=>t[(n+l)%t.length])}var NC=Xy,zC=Zy,Vc="Tabs",[RC]=Ns(Vc,[Cy]),Ey=Cy(),[CC,xh]=RC(Vc),qy=v.forwardRef((t,n)=>{const{__scopeTabs:s,value:l,onValueChange:o,defaultValue:u,orientation:d="horizontal",dir:O,activationMode:m="automatic",...p}=t,x=Jf(O),[g,b]=Pc({prop:l,onChange:o,defaultProp:u??"",caller:Vc});return i.jsx(CC,{scope:s,baseId:Ql(),value:g,onValueChange:b,orientation:d,dir:x,activationMode:m,children:i.jsx(Be.div,{dir:x,"data-orientation":d,...p,ref:n})})});qy.displayName=Vc;var My="TabsList",Yy=v.forwardRef((t,n)=>{const{__scopeTabs:s,loop:l=!0,...o}=t,u=xh(My,s),d=Ey(s);return i.jsx(NC,{asChild:!0,...d,orientation:u.orientation,dir:u.dir,loop:l,children:i.jsx(Be.div,{role:"tablist","aria-orientation":u.orientation,...o,ref:n})})});Yy.displayName=My;var Vy="TabsTrigger",Uy=v.forwardRef((t,n)=>{const{__scopeTabs:s,value:l,disabled:o=!1,...u}=t,d=xh(Vy,s),O=Ey(s),m=Dy(d.baseId,l),p=Wy(d.baseId,l),x=l===d.value;return i.jsx(zC,{asChild:!0,...O,focusable:!o,active:x,children:i.jsx(Be.button,{type:"button",role:"tab","aria-selected":x,"aria-controls":p,"data-state":x?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:m,...u,ref:n,onMouseDown:Ee(t.onMouseDown,g=>{!o&&g.button===0&&g.ctrlKey===!1?d.onValueChange(l):g.preventDefault()}),onKeyDown:Ee(t.onKeyDown,g=>{[" ","Enter"].includes(g.key)&&d.onValueChange(l)}),onFocus:Ee(t.onFocus,()=>{const g=d.activationMode!=="manual";!x&&!o&&g&&d.onValueChange(l)})})})});Uy.displayName=Vy;var Gy="TabsContent",Ly=v.forwardRef((t,n)=>{const{__scopeTabs:s,value:l,forceMount:o,children:u,...d}=t,O=xh(Gy,s),m=Dy(O.baseId,l),p=Wy(O.baseId,l),x=l===O.value,g=v.useRef(x);return v.useEffect(()=>{const b=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(b)},[]),i.jsx(ba,{present:o||x,children:({present:b})=>i.jsx(Be.div,{"data-state":x?"active":"inactive","data-orientation":O.orientation,role:"tabpanel","aria-labelledby":m,hidden:!b,id:p,tabIndex:0,...d,ref:n,style:{...t.style,animationDuration:g.current?"0s":void 0},children:b&&u})})});Ly.displayName=Gy;function Dy(t,n){return`${t}-trigger-${n}`}function Wy(t,n){return`${t}-content-${n}`}var XC=qy,_C=Yy,ZC=Uy,AC=Ly;function By({children:t,...n}){return i.jsx(XC,{...n,children:t})}function Hy({children:t,className:n,...s}){return i.jsx(_C,{className:le("flex items-center gap-0 border-b border-border-subtle",n),...s,children:t})}function Ur({children:t,className:n,...s}){return i.jsx(ZC,{className:le("px-3 py-2 text-sm font-medium font-sans text-text-2","border-b-2 border-transparent","hover:text-text-0 hover:bg-surface-5/50","data-[state=active]:text-text-0 data-[state=active]:border-accent","transition-colors duration-100 cursor-pointer select-none","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent",n),...s,children:t})}function Gr({children:t,className:n,...s}){return i.jsx(AC,{className:le("flex-1 min-h-0",n),...s,children:t})}function t0({data:t,color:n=pe.accent,width:s=60,height:l=16}){if(!t||t.length<2)return i.jsx("div",{style:{width:s,height:l}});const o=Array.isArray(t[0])?t:t.map(p=>typeof p=="number"?p:p.v),u=Math.min(...o),O=Math.max(...o)-u||1,m=o.map((p,x)=>{const g=x/(o.length-1)*s,b=l-(p-u)/O*(l-2)-1;return`${g},${b}`}).join(" ");return i.jsx("svg",{width:s,height:l,className:"flex-shrink-0",children:i.jsx("polyline",{points:m,fill:"none",stroke:n,strokeWidth:"1",strokeLinejoin:"round",strokeOpacity:"0.7"})})}function VO({label:t,value:n,total:s,color:l}){const o=s>0?n/s*100:0;return i.jsxs("div",{className:"space-y-0.5",children:[i.jsxs("div",{className:"flex items-center justify-between text-xs font-mono",children:[i.jsx("span",{className:"text-text-2",children:t}),i.jsx("span",{className:"text-text-1 tabular-nums",children:rt(n)})]}),i.jsx("div",{className:"h-[2px] bg-surface-0 rounded-full overflow-hidden",children:i.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${Math.min(o,100)}%`,background:l}})})]})}function EC({tokens:t,rotation:n}){var d;const s=(t==null?void 0:t.savings)||{},l=s.total||0,u=((t==null?void 0:t.totalTokens)||0)+l;return i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"p-3 space-y-4",children:[i.jsxs("div",{className:"flex gap-4",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-0.5",children:"Rotations"}),i.jsx("div",{className:"text-xl font-mono font-semibold text-text-0 tabular-nums leading-none",children:(n==null?void 0:n.totalRotations)||0})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-0.5",children:"Saved"}),i.jsx("div",{className:"text-xl font-mono font-semibold text-success tabular-nums leading-none",children:rt(l)}),u>0&&i.jsxs("div",{className:"text-2xs font-mono text-text-3 mt-0.5",children:[ws(l/u*100)," of total"]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(VO,{label:"Rotation",value:s.fromRotation||0,total:u,color:pe.accent}),i.jsx(VO,{label:"Conflict prevention",value:s.fromConflictPrevention||0,total:u,color:pe.purple}),i.jsx(VO,{label:"Cold-start skip",value:s.fromColdStartSkip||0,total:u,color:pe.info})]}),((d=n==null?void 0:n.history)==null?void 0:d.length)>0&&i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-1.5",children:"Recent"}),i.jsx("div",{className:"space-y-1",children:n.history.slice(-8).reverse().map((O,m)=>i.jsxs("div",{className:"flex items-center gap-2 text-xs font-mono px-2 py-1 bg-surface-0 rounded",children:[i.jsx("span",{className:"text-text-1 font-medium capitalize truncate flex-1",children:O.agentName||O.role}),i.jsx("span",{className:"text-text-3 tabular-nums",children:ws((O.contextUsage||0)*100)}),i.jsx("span",{className:"text-text-4",children:Ct(O.timestamp)})]},m))})]})]})})}function qC({adaptive:t}){if(!(t!=null&&t.length))return i.jsx("div",{className:"flex-1 flex items-center justify-center text-xs text-text-3 font-mono p-4",children:"No adaptive profiles"});function n(s){const l=s.split(":");return{provider:l[0]||s,role:l[1]||""}}return i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"p-3 space-y-1",children:[i.jsxs("div",{className:"flex items-center gap-2 px-2 pb-1 text-2xs font-mono text-text-4 uppercase tracking-wider",children:[i.jsx("span",{className:"flex-1",children:"Role"}),i.jsx("span",{className:"w-12 text-right",children:"Threshold"}),i.jsx("span",{className:"w-12 text-right",children:"Adj."}),i.jsx("span",{className:"w-14 text-right",children:"Status"})]}),t.map(s=>{var O,m;const{provider:l,role:o}=n(s.key),u=((O=s.thresholdHistory)==null?void 0:O.length)>1,d=((m=s.recentScores)==null?void 0:m.length)>1;return i.jsxs("div",{className:"bg-surface-0 rounded px-2 py-1.5",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("span",{className:"text-xs font-mono text-text-1 capitalize",children:o||l}),o&&i.jsx("span",{className:"text-2xs font-mono text-text-4 ml-1.5",children:l})]}),i.jsx("span",{className:"w-12 text-right text-xs font-mono font-semibold text-text-0 tabular-nums",children:ws(s.threshold*100)}),i.jsx("span",{className:"w-12 text-right text-2xs font-mono text-text-3 tabular-nums",children:s.adjustments}),i.jsx("span",{className:le("w-14 text-right text-2xs font-mono font-bold uppercase",s.converged?"text-success":"text-text-4"),children:s.converged?"Converged":"Learning"})]}),(u||d)&&i.jsxs("div",{className:"flex items-center gap-3 mt-1.5 pl-1",children:[u&&i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"text-2xs font-mono text-text-4",children:"Threshold"}),i.jsx(t0,{data:s.thresholdHistory.map(p=>p.v),color:s.converged?pe.success:pe.accent,width:70,height:12})]}),d&&i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"text-2xs font-mono text-text-4",children:"Quality"}),i.jsx(t0,{data:s.recentScores,color:pe.warning,width:70,height:12})]})]})]},s.key)})]})})}function MC({journalist:t}){var n;return t?i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"p-3 space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-0.5",children:"Cycles"}),i.jsx("div",{className:"text-lg font-mono font-semibold text-text-0 tabular-nums leading-none",children:t.cycleCount||0})]}),t.lastCycleAt&&i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-0.5",children:"Last"}),i.jsx("div",{className:"text-xs font-mono text-text-2",children:Ct(t.lastCycleAt)})]}),t.synthesizing&&i.jsx("span",{className:"text-2xs font-mono font-bold text-accent uppercase tracking-wider animate-pulse",children:"Synthesizing"})]}),t.lastSummary&&i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-1",children:"Summary"}),i.jsx("div",{className:"text-xs font-sans text-text-2 leading-relaxed",children:t.lastSummary})]}),t.projectMap&&i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-1",children:"Project Map"}),i.jsx("div",{className:"text-xs font-mono text-text-2 leading-relaxed whitespace-pre-wrap",children:t.projectMap})]}),t.decisions&&i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-1",children:"Decisions"}),i.jsx("div",{className:"text-xs font-mono text-text-2 leading-relaxed whitespace-pre-wrap",children:t.decisions})]}),((n=t.recentHistory)==null?void 0:n.length)>0&&i.jsxs("div",{children:[i.jsx("div",{className:"text-2xs font-mono text-text-3 uppercase tracking-wider mb-1.5",children:"History"}),i.jsx("div",{className:"space-y-1",children:t.recentHistory.slice().reverse().map((s,l)=>i.jsxs("div",{className:"flex items-center gap-2 text-xs font-mono px-2 py-1 bg-surface-0 rounded",children:[i.jsxs("span",{className:"text-text-3",children:["#",s.cycle]}),i.jsxs("span",{className:"text-text-2 flex-1 truncate",children:[s.agentCount," agents"]}),i.jsx("span",{className:"text-text-4",children:Ct(s.timestamp)})]},l))})]})]})}):i.jsx("div",{className:"flex-1 flex items-center justify-center text-xs text-text-3 font-mono p-4",children:"Journalist inactive"})}const YC=v.memo(function({tokens:n,rotation:s,adaptive:l,journalist:o}){return i.jsxs(By,{defaultValue:"rotation",className:"flex flex-col h-full",children:[i.jsxs(Hy,{className:"flex-shrink-0 px-1",children:[i.jsxs(Ur,{value:"rotation",className:"text-xs px-2.5 py-1.5 inline-flex items-center gap-1.5",children:[i.jsx(El,{size:11}),"Rotation"]}),i.jsxs(Ur,{value:"adaptive",className:"text-xs px-2.5 py-1.5 inline-flex items-center gap-1.5",children:[i.jsx(v5,{size:11}),"Adaptive"]}),i.jsxs(Ur,{value:"journalist",className:"text-xs px-2.5 py-1.5 inline-flex items-center gap-1.5",children:[i.jsx(Wf,{size:11}),"Journalist"]})]}),i.jsx(Gr,{value:"rotation",className:"flex-1 min-h-0 overflow-hidden",children:i.jsx(EC,{tokens:n,rotation:s})}),i.jsx(Gr,{value:"adaptive",className:"flex-1 min-h-0 overflow-hidden",children:i.jsx(qC,{adaptive:l})}),i.jsx(Gr,{value:"journalist",className:"flex-1 min-h-0 overflow-hidden",children:i.jsx(MC,{journalist:o})})]})}),VC={spawn:gP,complete:Br,crash:_c,kill:$b,rotate:El,error:Hf},UC={spawn:"text-accent",complete:"text-success",crash:"text-danger",kill:"text-text-3",rotate:"text-purple",error:"text-danger"};function GC(t){const n=t.agentName||t.role||"";switch(t.type){case"spawn":return`${n} spawned`;case"complete":return`${n} completed`;case"crash":return`${n} crashed`;case"kill":return`${n} killed`;case"rotate":return`${n} rotated`;default:return t.text||t.type||"event"}}const LC=v.memo(function({events:n=[]}){return n.length?i.jsx("div",{className:"flex items-center gap-3 overflow-x-auto py-2 px-3",children:n.slice(-15).reverse().map((s,l)=>{const o=VC[s.type]||Na,u=UC[s.type]||"text-text-3",d=GC(s);return i.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[i.jsx(o,{size:11,className:u}),i.jsx("span",{className:"text-xs font-sans text-text-2 whitespace-nowrap",children:d}),i.jsx("span",{className:"text-2xs font-mono text-text-4",children:Ct(s.t||s.timestamp)})]},l)})}):i.jsx("div",{className:"text-xs text-text-3 font-mono py-2.5 text-center",children:"No recent activity"})});function Nt({className:t,...n}){return i.jsx("div",{className:le("rounded-md bg-surface-4","bg-gradient-to-r from-surface-4 via-surface-5 to-surface-4","bg-[length:200%_100%] animate-[shimmer_1.5s_ease-in-out_infinite]",t),...n})}function DC(){return i.jsxs("div",{className:"flex-1 grid gap-px p-0",style:{gridTemplateRows:"auto minmax(0, 1fr) minmax(0, 1fr)",gridTemplateColumns:"3fr 1.5fr 1.5fr",background:"#282c34"},children:[i.jsx("div",{className:"col-span-3",children:i.jsx(Nt,{className:"h-[72px] rounded-none"})}),i.jsx(Nt,{className:"rounded-none"}),i.jsx(Nt,{className:"rounded-none"}),i.jsx(Nt,{className:"rounded-none"}),i.jsx(Nt,{className:"rounded-none"}),i.jsx("div",{className:"col-span-2",children:i.jsx(Nt,{className:"h-full rounded-none"})})]})}function WC(){const{data:t,loading:n,agents:s,connected:l,kpiHistory:o,lastFetch:u,agentBreakdown:d,routing:O,rotation:m,adaptive:p,journalist:x,rotating:g}=iC(),b=s.filter(C=>C.status==="running").length;if(!l)return i.jsx("div",{className:"w-full h-full flex items-center justify-center",children:i.jsxs("div",{className:"text-center space-y-2 text-text-3 font-mono",children:[i.jsx(Rc,{size:28,className:"mx-auto"}),i.jsx("p",{className:"text-xs",children:"Connecting to daemon..."})]})});if(n||!t)return i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsx(K1,{connected:l,runningCount:0,totalCount:0,uptime:0,lastFetch:0}),i.jsx(DC,{})]});const S=t.tokens||{},Q={totalTokens:S.totalTokens||0,totalCostUsd:S.totalCostUsd||0,totalInputTokens:S.totalInputTokens||0,totalOutputTokens:S.totalOutputTokens||0,cacheReadTokens:S.cacheReadTokens||0,cacheCreationTokens:S.cacheCreationTokens||0,cacheHitRate:S.cacheHitRate||0,totalTurns:S.totalTurns||0,agentCount:S.agentCount||0,savings:S.savings||{}},k=Q.totalTokens+(Q.savings.total||0),T=k>0?(Q.savings.total||0)/k*100:0,j=Q.totalOutputTokens>0?(Q.totalInputTokens/Q.totalOutputTokens).toFixed(1):"—",P=t.timeline||{},N=P.snapshots||[],A=P.events||t.events||[],U=[{label:"Tokens Used",value:rt(Q.totalTokens),sparkData:o.tokens,color:pe.accent},{label:"Total Cost",value:Kf(Q.totalCostUsd),sparkData:o.cost,color:pe.warning},{label:"Tokens Saved",value:rt(Q.savings.total||0),sparkData:o.saved,color:pe.success},{label:"Efficiency",value:ws(T),sparkData:o.efficiency,color:pe.purple},{label:"Cache Rate",value:ws(Q.cacheHitRate*100),sparkData:o.cache,color:pe.info},{label:"I/O Ratio",value:`${j}:1`,sparkData:o.inputOutput,color:pe.orange},{label:"Agents",value:`${b}/${s.length}`,sparkData:o.agents,color:pe.accent},{label:"Turns",value:rt(Q.totalTurns),sparkData:o.turns,color:pe.text2}];return i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsx(K1,{connected:l,runningCount:b,totalCount:s.length,uptime:t.uptime||0,lastFetch:u,activeTeam:t.activeTeam}),i.jsx(uC,{kpis:U}),i.jsxs("div",{className:"flex-1 min-h-0 grid",style:{gridTemplateRows:"minmax(0, 1fr) minmax(0, 1fr)",gridTemplateColumns:"3fr 1.5fr 1.5fr",background:"#282c34",gap:"1px"},children:[i.jsx("div",{className:"min-w-0 min-h-0 overflow-hidden bg-surface-1 relative",children:i.jsx(mC,{data:N})}),i.jsxs("div",{className:"min-w-0 min-h-0 overflow-hidden bg-surface-1 flex flex-col border-l border-border",children:[i.jsx("div",{className:"px-3 pt-2.5 pb-1",children:i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-widest",children:"Cache Performance"})}),i.jsx(pC,{cacheRead:Q.cacheReadTokens,cacheCreation:Q.cacheCreationTokens,totalInput:Q.totalInputTokens})]}),i.jsxs("div",{className:"min-w-0 min-h-0 overflow-hidden bg-surface-1 flex flex-col border-l border-border",children:[i.jsx("div",{className:"px-3 pt-2.5 pb-1",children:i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-widest",children:"Model Routing"})}),i.jsx(xC,{routing:O,agentBreakdown:d})]}),i.jsxs("div",{className:"min-w-0 min-h-0 overflow-hidden bg-surface-1 flex flex-col border-t border-border",children:[i.jsx("div",{className:"px-3 pt-2.5 pb-1 flex-shrink-0",children:i.jsx("span",{className:"text-2xs font-mono text-text-3 uppercase tracking-widest",children:"Agent Fleet"})}),i.jsx(hC,{agentBreakdown:d,rotating:g})]}),i.jsx("div",{className:"col-span-2 min-w-0 min-h-0 overflow-hidden bg-surface-1 flex flex-col border-t border-l border-border",children:i.jsx(YC,{tokens:Q,rotation:m,adaptive:p,journalist:x})})]}),i.jsx("div",{className:"flex-shrink-0 bg-surface-1 border-t border-border",children:i.jsx(LC,{events:A})})]})}const a0={sm:12,md:16,lg:20};function BC({fill:t="full",size:n,color:s="#fbbf24",emptyColor:l="rgba(255,255,255,0.4)"}){const o=`star-${Math.random().toString(36).slice(2,8)}`;return i.jsxs("svg",{width:n,height:n,viewBox:"0 0 20 20",fill:"none",children:[t==="half"&&i.jsx("defs",{children:i.jsxs("linearGradient",{id:o,children:[i.jsx("stop",{offset:"50%",stopColor:s}),i.jsx("stop",{offset:"50%",stopColor:l})]})}),i.jsx("path",{d:"M10 1.5l2.47 5.01 5.53.8-4 3.9.94 5.49L10 14.27 5.06 16.7 6 11.21l-4-3.9 5.53-.8L10 1.5z",fill:t==="full"?s:t==="half"?`url(#${o})`:l})]})}function Iy({rating:t=0,count:n,size:s="sm"}){const l=a0[s]||a0.sm,o=[];for(let u=1;u<=5;u++)t>=u?o.push("full"):t>=u-.5?o.push("half"):o.push("empty");return i.jsxs("span",{className:"inline-flex items-center",style:{gap:1},children:[o.map((u,d)=>i.jsx(BC,{fill:u,size:l},d)),n!=null&&i.jsxs("span",{className:"ml-1 text-[11px] text-[var(--text-dim,#6b7f95)] font-sans",children:["(",n,")"]})]})}const n0={design:{color:"#c678dd",bg:"rgba(198,120,221,0.12)"},quality:{color:"#4ade80",bg:"rgba(74,222,128,0.12)"},devtools:{color:"#33afbc",bg:"rgba(51,175,188,0.14)"},workflow:{color:"#fbbf24",bg:"rgba(251,191,36,0.12)"},security:{color:"#f87171",bg:"rgba(248,113,113,0.12)"},specialized:{color:"#f59e0b",bg:"rgba(245,158,11,0.12)"},verified:{color:"#4ade80",bg:"rgba(74,222,128,0.12)"},anthropic:{color:"#f59e0b",bg:"rgba(245,158,11,0.12)"},published:{color:"#4ade80",bg:"rgba(74,222,128,0.12)"},draft:{color:"#6b7f95",bg:"rgba(255,255,255,0.06)"},review:{color:"#c678dd",bg:"rgba(198,120,221,0.12)"},rejected:{color:"#f87171",bg:"rgba(248,113,113,0.12)"},free:{color:"#4ade80",bg:"rgba(74,222,128,0.12)"}};function Fy({label:t,variant:n,className:s}){const l=n0[n]||n0.draft;return i.jsx("span",{className:le("inline-flex items-center whitespace-nowrap font-sans select-none",s),style:{padding:"3px 8px",borderRadius:4,fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.5px",lineHeight:1.4,color:l.color,background:l.bg},children:t})}function Ky({price:t=0,size:n="sm"}){const s=!t||t===0,l={sm:"text-2xs px-2 py-0.5",md:"text-xs px-2.5 py-0.5",lg:"text-xs px-3 py-1"};return i.jsx("span",{className:`inline-flex items-center font-mono font-semibold rounded whitespace-nowrap ${l[n]||l.sm} ${s?"bg-success/12 text-success":"bg-white/8 text-text-1"}`,children:s?"Free":`$${t.toFixed(2)}`})}function Jy({type:t="verified",size:n=12}){const s=t==="claude-official"||t==="anthropic"?"#f59e0b":"#4ade80";return i.jsxs("svg",{width:n,height:n,viewBox:"0 0 20 20",fill:"none",className:"inline-block flex-shrink-0",children:[i.jsx("path",{d:"M10 0l2.36 3.15L16.18 2l.68 3.93L20.8 7.1l-1.87 3.52L20.8 14.14l-3.94 1.17-.68 3.93-3.82-1.15L10 21.24l-2.36-3.15-3.82 1.15-.68-3.93-3.94-1.17 1.87-3.52L-.8 7.1l3.94-1.17.68-3.93 3.82 1.15L10 0z",fill:s}),i.jsx("path",{d:"M7 10.5l2 2 4-4.5",fill:"none",stroke:"#24282f",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]})}const eS="groove_favorites";function gh(){try{return JSON.parse(localStorage.getItem(eS)||"[]")}catch{return[]}}function HC(t){return gh().includes(t)}function IC(t){const n=gh(),s=n.indexOf(t);return s>=0?n.splice(s,1):n.push(t),localStorage.setItem(eS,JSON.stringify(n)),s<0}function FC(t){const n=new Set(gh());return t.map(s=>({...s,favorited:n.has(s.id)}))}function KC({filled:t,size:n=16}){return i.jsx("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:t?"#f87171":"none",stroke:t?"#f87171":"rgba(255,255,255,0.3)",strokeWidth:"2",children:i.jsx("path",{d:"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"})})}function JC(){return i.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[i.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),i.jsx("polyline",{points:"7 10 12 15 17 10"}),i.jsx("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})}function eX({skill:t,onClick:n}){var u,d;const[s,l]=v.useState(()=>HC(t.id));function o(O){O.stopPropagation(),l(IC(t.id))}return i.jsxs("div",{onClick:()=>n==null?void 0:n(t),className:le("flex flex-col cursor-pointer group","bg-surface-1 border border-border-subtle rounded-md","hover:border-accent/30 hover:bg-surface-2","transition-all duration-150"),style:{padding:20,minHeight:280},children:[i.jsxs("div",{className:"flex justify-between items-start",children:[i.jsx("div",{className:"w-10 h-10 rounded-full flex items-center justify-center flex-shrink-0 bg-accent/12 text-[20px]",children:t.icon||((d=(u=t.name)==null?void 0:u[0])==null?void 0:d.toUpperCase())||"?"}),i.jsx("button",{onClick:o,className:"opacity-40 group-hover:opacity-80 hover:!opacity-100 transition-opacity cursor-pointer bg-transparent border-0 p-0",children:i.jsx(KC,{filled:s})})]}),i.jsx("div",{className:"mt-3 text-[15px] font-semibold text-text-0 font-sans line-clamp-2 leading-snug",children:t.name}),i.jsxs("div",{className:"mt-1 flex items-center gap-1.5 text-xs text-text-3 font-sans",children:[i.jsxs("span",{children:["by ",t.author||"Community"]}),(t.source==="claude-official"||t.verified)&&i.jsx(Jy,{type:t.source,size:12})]}),i.jsx("div",{className:"mt-2.5 text-xs text-text-2 font-sans line-clamp-3 flex-1 leading-relaxed",children:t.description}),i.jsx("div",{className:"mt-3",children:i.jsx(Fy,{label:t.category||"general",variant:t.category||"draft"})}),i.jsx("div",{className:"h-px bg-border-subtle my-3"}),i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsx(Iy,{rating:t.rating||0,count:t.rating_count||t.ratingCount||0,size:"sm"}),i.jsxs("span",{className:"flex items-center gap-1 text-xs text-text-3 font-mono",children:[i.jsx(JC,{}),rt(t.downloads||0)]}),i.jsx(Ky,{price:t.price||0,size:"sm"})]})]})}function tS(){return i.jsxs("div",{className:"bg-surface-1 border border-border-subtle rounded-md animate-pulse",style:{padding:20,minHeight:280},children:[i.jsx("div",{className:"w-10 h-10 rounded-full bg-surface-4"}),i.jsx("div",{className:"mt-3 h-4 w-[70%] rounded bg-surface-4"}),i.jsx("div",{className:"mt-2 h-3 w-[40%] rounded bg-surface-4"}),i.jsx("div",{className:"mt-3.5 h-3 w-full rounded bg-surface-4"}),i.jsx("div",{className:"mt-1.5 h-3 w-[90%] rounded bg-surface-4"}),i.jsx("div",{className:"mt-1.5 h-3 w-[60%] rounded bg-surface-4"}),i.jsx("div",{className:"mt-3.5 h-5 w-[50px] rounded bg-surface-4"}),i.jsx("div",{className:"h-px bg-surface-4 my-3"}),i.jsxs("div",{className:"flex justify-between",children:[i.jsx("div",{className:"h-3 w-16 rounded bg-surface-4"}),i.jsx("div",{className:"h-3 w-12 rounded bg-surface-4"}),i.jsx("div",{className:"h-3 w-10 rounded bg-surface-4"})]})]})}const tX={slack:"https://cdn.simpleicons.org/slack/E01E5A",github:"https://cdn.simpleicons.org/github/white",stripe:"https://cdn.simpleicons.org/stripe/635BFF",gmail:"https://cdn.simpleicons.org/gmail/EA4335","google-calendar":"https://cdn.simpleicons.org/googlecalendar/4285F4","google-drive":"https://cdn.simpleicons.org/googledrive/4285F4","google-maps":"https://cdn.simpleicons.org/googlemaps/4285F4",postgres:"https://cdn.simpleicons.org/postgresql/4169E1",notion:"https://cdn.simpleicons.org/notion/white",discord:"https://cdn.simpleicons.org/discord/5865F2",linear:"https://cdn.simpleicons.org/linear/5E6AD2","brave-search":"https://cdn.simpleicons.org/brave/FB542B","home-assistant":"https://cdn.simpleicons.org/homeassistant/18BCF2"};function aX({item:t,size:n=40}){const s=tX[t.id];if(s)return i.jsxs("div",{className:"rounded-md bg-surface-4 flex items-center justify-center flex-shrink-0 overflow-hidden",style:{width:n,height:n},children:[i.jsx("img",{src:s,alt:t.name,className:"w-5 h-5",onError:u=>{u.target.style.display="none",u.target.nextSibling.style.display="flex"}}),i.jsx("div",{className:"hidden items-center justify-center w-full h-full text-lg font-bold font-sans text-text-1",children:(t.name||"?")[0]})]});const l=(t.name||"?")[0].toUpperCase(),o=t.name?t.name.charCodeAt(0)*37%360:200;return i.jsx("div",{className:"rounded-md flex items-center justify-center flex-shrink-0 text-lg font-bold font-sans",style:{width:n,height:n,background:`hsl(${o}, 40%, 18%)`,color:`hsl(${o}, 60%, 65%)`},children:l})}function nX({item:t,onClick:n,className:s}){var o;const l=t.installed;return i.jsxs("button",{onClick:()=>n(t),className:le("flex flex-col p-5 rounded-md border border-border-subtle bg-surface-1 text-left","hover:border-accent/30 hover:bg-surface-2","transition-all duration-150 cursor-pointer group",s),style:{minHeight:200},children:[i.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[i.jsx(aX,{item:t,size:36}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"text-[14px] font-semibold text-text-0 font-sans truncate",children:t.name}),(t.verified||t.verified==="mcp-official")&&i.jsx(Br,{size:11,className:"text-accent flex-shrink-0"})]}),i.jsx("span",{className:"text-2xs text-text-3 font-sans",children:t.author||"Community"})]})]}),i.jsx("p",{className:"text-xs text-text-2 font-sans line-clamp-3 mb-3 flex-1 leading-relaxed",children:t.description}),i.jsx("div",{className:"h-px bg-border-subtle my-2"}),i.jsxs("div",{className:"flex items-center gap-3 text-2xs text-text-3 font-sans",children:[i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx(Vf,{size:10}),rt(t.downloads||0)]}),(t.rating||0)>0&&i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx(Gb,{size:10,className:"text-warning",fill:"currentColor"}),(o=t.rating)==null?void 0:o.toFixed(1)]}),i.jsx("span",{className:"flex-1"}),l&&i.jsx(We,{variant:"accent",className:"text-2xs",children:"Installed"})]})]})}function aS({value:t,onChange:n,placeholder:s="Search skills, tags, authors...",large:l}){const[o,u]=v.useState(t||""),d=v.useRef(null);v.useEffect(()=>{u(t||"")},[t]);function O(m){const p=m.target.value;u(p),clearTimeout(d.current),d.current=setTimeout(()=>n(p),300)}return i.jsxs("div",{className:"relative w-full",children:[i.jsx(ql,{size:16,className:"absolute left-3.5 top-1/2 -translate-y-1/2 text-text-4 pointer-events-none"}),i.jsx("input",{value:o,onChange:O,placeholder:s,className:le("w-full font-sans outline-none","bg-surface-0 border border-border text-text-0 placeholder:text-text-4","focus:border-accent/40 transition-colors",l?"py-3 pl-11 pr-12 text-[15px] rounded-lg":"py-2.5 pl-10 pr-3 text-sm rounded-md")}),l&&i.jsx("kbd",{className:"absolute right-3.5 top-1/2 -translate-y-1/2 bg-surface-4 text-text-4 px-2 py-0.5 rounded text-xs font-mono",children:"/"})]})}const sX=[{id:"",label:"All"},{id:"design",label:"Design"},{id:"quality",label:"Quality"},{id:"devtools",label:"Dev Tools"},{id:"workflow",label:"Workflow"},{id:"security",label:"Security"},{id:"specialized",label:"Specialized"}];function lX({selected:t="",categories:n=sX,onSelect:s}){return i.jsx("div",{className:"flex gap-2 overflow-x-auto",style:{scrollbarWidth:"none"},children:n.map(l=>{const o=t===l.id;return i.jsx("button",{onClick:()=>s(l.id),className:le("whitespace-nowrap font-sans cursor-pointer select-none transition-all text-[13px] rounded-full border",o?"bg-accent text-surface-0 border-accent font-semibold":"bg-surface-1 text-text-3 border-border-subtle hover:text-text-1 hover:border-border font-medium"),style:{padding:"7px 16px"},children:l.label},l.id)})})}function Uc(){const t=D(n=>n.addToast);return{success:(n,s)=>t("success",n,s),error:(n,s)=>t("error",n,s),info:(n,s)=>t("info",n,s),warning:(n,s)=>t("warning",n,s)}}function rX({skill:t,onBack:n}){var k,T,j;const s=Uc(),[l,o]=v.useState(""),[u,d]=v.useState(!1),[O,m]=v.useState(!1),[p,x]=v.useState(t.installed),[g,b]=v.useState(!0);v.useEffect(()=>{b(!0),ee.get(`/skills/${t.id}/content`).then(P=>{o(P.content||""),d(P.requiresPurchase||!1)}).catch(()=>{}).finally(()=>b(!1))},[t.id]);async function S(){m(!0);try{await ee.post(`/skills/${t.id}/install`),x(!0),s.success(`${t.name} installed`)}catch(P){s.error("Install failed",P.message)}m(!1)}async function Q(){const{marketplaceAuthenticated:P,marketplaceLogin:N,marketplaceCheckout:A}=D.getState();if(!P){N();return}try{await A(t.id)}catch{}}return i.jsx(Ht,{className:"h-full",children:i.jsxs("div",{className:"px-6 py-5",children:[i.jsxs("button",{onClick:n,className:"flex items-center gap-1 text-xs text-text-3 font-sans hover:text-text-0 cursor-pointer bg-transparent border-0 mb-4",children:[i.jsx(kb,{size:14})," Back"]}),i.jsxs("div",{className:"flex gap-8",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"w-11 h-11 rounded-lg flex items-center justify-center flex-shrink-0 bg-accent/10 border border-accent/20 text-[22px]",children:t.icon||((T=(k=t.name)==null?void 0:k[0])==null?void 0:T.toUpperCase())}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("h1",{className:"text-lg font-bold text-text-0 font-sans",children:t.name}),i.jsxs("div",{className:"flex items-center gap-2 mt-0.5 text-xs text-text-3 font-sans",children:[i.jsx("span",{children:t.author||"Community"}),(t.source==="claude-official"||t.verified)&&i.jsx(Jy,{type:t.source,size:13})]})]})]}),i.jsx("p",{className:"mt-3 text-sm text-text-2 font-sans leading-relaxed",children:t.description}),((j=t.tags)==null?void 0:j.length)>0&&i.jsx("div",{className:"flex flex-wrap gap-1.5 mt-3",children:t.tags.map(P=>i.jsx("span",{className:"text-2xs text-text-3 font-sans px-2 py-0.5 rounded bg-surface-4",children:P},P))}),i.jsx("div",{className:"h-px bg-border-subtle my-5"}),g?i.jsxs("div",{className:"space-y-2",children:[i.jsx("div",{className:"h-3 w-48 bg-surface-4 rounded animate-pulse"}),i.jsx("div",{className:"h-3 w-full bg-surface-4 rounded animate-pulse"}),i.jsx("div",{className:"h-3 w-3/4 bg-surface-4 rounded animate-pulse"})]}):l?i.jsxs("div",{className:"text-sm text-text-2 font-sans leading-relaxed",children:[i.jsx("h2",{className:"text-sm font-semibold text-text-0 mb-2",children:"About"}),i.jsx("pre",{className:"whitespace-pre-wrap font-sans",children:l})]}):u?i.jsxs("div",{className:"bg-warning/5 border border-warning/15 rounded-lg px-4 py-3",children:[i.jsx("p",{className:"text-sm text-text-1 font-sans font-medium",children:"Paid skill — purchase to view content"}),i.jsx("p",{className:"text-xs text-text-3 font-sans mt-1",children:"Sign in and purchase this skill to access its full instructions."})]}):i.jsx("p",{className:"text-xs text-text-4 font-sans",children:"Content loading failed — check your connection."})]}),i.jsx("div",{className:"w-[240px] flex-shrink-0",children:i.jsxs("div",{className:"bg-surface-1 border border-border-subtle rounded-lg p-4 sticky top-4",children:[i.jsx(Ky,{price:t.price||0,size:"md"}),u&&!p?i.jsxs("button",{onClick:Q,className:"w-full mt-3 py-2 px-3 text-xs font-sans font-semibold rounded cursor-pointer transition-all hover:opacity-85 flex items-center justify-center gap-2 border bg-warning/15 text-warning border-warning/20 hover:bg-warning/25",children:["Buy $",(t.price||0).toFixed(2)]}):i.jsx("button",{onClick:S,disabled:O||p,className:`w-full mt-3 py-2 px-3 text-xs font-sans font-semibold rounded cursor-pointer transition-all hover:opacity-85 disabled:opacity-60 disabled:cursor-not-allowed flex items-center justify-center gap-2 border ${p?"bg-success/15 text-success border-success/20":"bg-accent/15 text-accent border-accent/20 hover:bg-accent/25"}`,children:O?"Installing...":p?"✓ Installed":"Install"}),i.jsx("div",{className:"mt-4 flex flex-col gap-2.5",children:[["Downloads",i.jsx("span",{className:"font-mono text-text-0",children:rt(t.downloads||0)},"d")],["Rating",i.jsx(Iy,{rating:t.rating||0,count:t.rating_count||t.ratingCount,size:"sm"},"r")],["Version",i.jsx("span",{className:"font-mono text-text-0",children:t.version||"1.0.0"},"v")],["Category",i.jsx(Fy,{label:t.category||"general",variant:t.category||"draft"},"c")],["Source",i.jsx("span",{className:"text-text-0",children:t.source==="claude-official"?"Anthropic":"Community"},"s")]].map(([P,N])=>i.jsxs("div",{className:"flex justify-between items-center text-xs font-sans",children:[i.jsx("span",{className:"text-text-3",children:P}),N]},P))})]})})]})]})})}function iX(){const[t,n]=v.useState([]),[s,l]=v.useState(!0),[o,u]=v.useState(""),[d,O]=v.useState(""),[m,p]=v.useState("popular"),[x,g]=v.useState(null);return v.useEffect(()=>{l(!0);const b=new URLSearchParams;o&&b.set("search",o),d&&b.set("category",d),m&&b.set("sort",m),ee.get(`/skills/registry?${b}`).then(S=>n(FC(S.skills||S.items||(Array.isArray(S)?S:[])))).catch(()=>n([])).finally(()=>l(!1))},[o,d,m]),x?i.jsx(rX,{skill:x,onBack:()=>g(null)}):i.jsx(Ht,{className:"h-full",children:i.jsxs("div",{className:"px-5 py-4",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("div",{className:"w-72",children:i.jsx(aS,{value:o,onChange:u})}),i.jsx(lX,{selected:d,onSelect:O}),i.jsx("div",{className:"flex-1"}),i.jsxs("div",{className:"relative flex-shrink-0",children:[i.jsxs("select",{value:m,onChange:b=>p(b.target.value),className:"appearance-none font-sans cursor-pointer pr-7 py-2 pl-3 text-xs bg-surface-0 border border-border-subtle rounded text-text-1 focus:outline-none",children:[i.jsx("option",{value:"popular",children:"Popular"}),i.jsx("option",{value:"rating",children:"Top Rated"}),i.jsx("option",{value:"newest",children:"Newest"}),i.jsx("option",{value:"name",children:"A-Z"})]}),i.jsx(In,{size:12,className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-4 pointer-events-none"})]}),i.jsx("span",{className:"text-2xs text-text-4 font-mono flex-shrink-0",children:t.length})]}),i.jsx("div",{className:"mt-4 grid gap-3",style:{gridTemplateColumns:"repeat(auto-fill, minmax(240px, 1fr))"},children:s?Array.from({length:8}).map((b,S)=>i.jsx(tS,{},S)):t.map(b=>i.jsx(eX,{skill:b,onClick:g},b.id))}),!s&&t.length===0&&i.jsx("div",{className:"text-center py-16 text-text-4 font-sans text-sm",children:"No skills found."})]})})}function oX(){const[t,n]=v.useState([]),[s,l]=v.useState(!0),[o,u]=v.useState(""),d=Uc();return v.useEffect(()=>{l(!0),ee.get(`/integrations/registry?search=${encodeURIComponent(o)}`).then(O=>n(O.integrations||O.items||(Array.isArray(O)?O:[]))).catch(()=>n([])).finally(()=>l(!1))},[o]),i.jsx(Ht,{className:"h-full",children:i.jsxs("div",{className:"px-5 py-4",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("div",{className:"w-72",children:i.jsx(aS,{value:o,onChange:u,placeholder:"Search integrations..."})}),i.jsx("div",{className:"flex-1"}),i.jsx("span",{className:"text-2xs text-text-4 font-mono flex-shrink-0",children:t.length})]}),i.jsx("div",{className:"mt-4 grid gap-3",style:{gridTemplateColumns:"repeat(auto-fill, minmax(240px, 1fr))"},children:s?Array.from({length:6}).map((O,m)=>i.jsx(tS,{},m)):t.map(O=>i.jsx(nX,{item:O,onClick:()=>d.info(`${O.name} — install via CLI: groove integrations install ${O.id}`)},O.id))}),!s&&t.length===0&&i.jsx("div",{className:"text-center py-16 text-text-4 font-sans text-sm",children:"No integrations found."})]})})}function cX(){const t=D(g=>g.marketplaceAuthenticated),n=D(g=>g.marketplaceLogin),[s,l]=v.useState([]),[o,u]=v.useState([]),[d,O]=v.useState(!0),m=Uc(),p=v.useRef(null);v.useEffect(()=>{O(!0),Promise.all([t?ee.get("/auth/purchases").then(g=>g.purchases||[]).catch(()=>[]):Promise.resolve([]),ee.get("/skills/installed").then(g=>Array.isArray(g)?g:g.skills||[]).catch(()=>[])]).then(([g,b])=>{l(g),u(b)}).finally(()=>O(!1))},[t]);async function x(g){var S;const b=(S=g.target.files)==null?void 0:S[0];if(b){try{const Q=await b.text(),k=b.name.replace(/\.md$/i,"");await ee.post("/skills/import",{name:k,content:Q}),m.success(`Imported "${k}"`);const T=await ee.get("/skills/installed");u(Array.isArray(T)?T:T.skills||[])}catch(Q){m.error("Import failed",Q.message)}g.target.value=""}}return d?i.jsx("div",{className:"p-5 space-y-3",children:[...Array(4)].map((g,b)=>i.jsx(Nt,{className:"h-14 rounded-md"},b))}):i.jsx(Ht,{className:"h-full",children:i.jsxs("div",{className:"px-5 py-4 space-y-6",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("input",{ref:p,type:"file",accept:".md",onChange:x,className:"hidden"}),i.jsxs(je,{variant:"secondary",size:"md",onClick:()=>{var g;return(g=p.current)==null?void 0:g.click()},className:"gap-1.5",children:[i.jsx(hP,{size:13}),"Import .md Skill"]}),i.jsx("span",{className:"text-2xs text-text-4 font-sans",children:"Drop a markdown skill file to install locally"})]}),t&&s.length>0&&i.jsxs("div",{children:[i.jsxs("h3",{className:"text-xs font-semibold text-text-2 font-sans uppercase tracking-wider mb-3 flex items-center gap-1.5",children:[i.jsx(xO,{size:12}),"Purchases (",s.length,")"]}),i.jsx("div",{className:"space-y-1.5",children:s.map(g=>{var b,S;return i.jsxs("div",{className:"flex items-center gap-3 px-3 py-2.5 rounded-md bg-surface-1 border border-border-subtle",children:[i.jsx("div",{className:"w-8 h-8 rounded-md bg-accent/10 flex items-center justify-center text-sm flex-shrink-0",children:g.skill_icon||((S=(b=g.skill_name)==null?void 0:b[0])==null?void 0:S.toUpperCase())||"?"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"text-xs font-semibold text-text-0 font-sans truncate",children:g.skill_name||g.skill_id}),i.jsxs("div",{className:"text-2xs text-text-4 font-sans",children:["$",(g.amount||0).toFixed(2)," · ",Ct(g.created_at)]})]}),i.jsx(We,{variant:"success",className:"text-2xs flex-shrink-0",children:"Owned"})]},g.id||g.skill_id)})})]}),t&&s.length===0&&i.jsxs("div",{className:"bg-surface-1 border border-border-subtle rounded-md px-4 py-6 text-center",children:[i.jsx(xO,{size:20,className:"mx-auto text-text-4 mb-2"}),i.jsx("p",{className:"text-xs text-text-3 font-sans",children:"No purchases yet"})]}),!t&&i.jsxs("div",{className:"bg-surface-1 border border-border-subtle rounded-md px-4 py-6 text-center",children:[i.jsx(xO,{size:20,className:"mx-auto text-text-4 mb-2"}),i.jsx("p",{className:"text-xs text-text-2 font-sans mb-3",children:"Sign in to see your purchases"}),i.jsxs(je,{variant:"primary",size:"sm",onClick:n,className:"gap-1.5 mx-auto",children:[i.jsx(Lf,{size:12})," Sign in"]})]}),i.jsxs("div",{children:[i.jsxs("h3",{className:"text-xs font-semibold text-text-2 font-sans uppercase tracking-wider mb-3 flex items-center gap-1.5",children:[i.jsx(Zb,{size:12}),"Installed (",o.length,")"]}),o.length===0?i.jsxs("div",{className:"bg-surface-1 border border-border-subtle rounded-md px-4 py-6 text-center",children:[i.jsx(Vf,{size:20,className:"mx-auto text-text-4 mb-2"}),i.jsx("p",{className:"text-xs text-text-3 font-sans",children:"No skills installed — browse the Skills tab or import a .md file"})]}):i.jsx("div",{className:"space-y-1.5",children:o.map(g=>{var b,S;return i.jsxs("div",{className:"flex items-center gap-3 px-3 py-2.5 rounded-md bg-surface-1 border border-border-subtle group",children:[i.jsx("div",{className:"w-8 h-8 rounded-md bg-accent/10 flex items-center justify-center text-sm flex-shrink-0",children:g.icon||((S=(b=g.name)==null?void 0:b[0])==null?void 0:S.toUpperCase())||"?"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"text-xs font-semibold text-text-0 font-sans truncate",children:g.name||g.id}),i.jsx("div",{className:"text-2xs text-text-3 font-sans truncate",children:g.description||g.category||"local skill"})]}),i.jsx(We,{variant:"accent",className:"text-2xs flex-shrink-0",children:"Installed"})]},g.id)})})]})]})})}function uX(){const t=D(o=>o.marketplaceAuthenticated),n=D(o=>o.marketplaceUser),s=D(o=>o.marketplaceLogin),l=D(o=>o.marketplaceLogout);return t?i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded bg-surface-3 border border-border-subtle",children:[i.jsx("div",{className:"w-4 h-4 rounded-full bg-accent/20 flex items-center justify-center",children:i.jsx(Lb,{size:9,className:"text-accent"})}),i.jsx("span",{className:"text-xs text-text-0 font-sans font-medium max-w-[120px] truncate",children:(n==null?void 0:n.displayName)||(n==null?void 0:n.id)||"Account"})]}),i.jsx("button",{onClick:l,className:"flex items-center gap-1 px-2 py-1.5 rounded text-xs text-text-3 hover:text-text-0 hover:bg-surface-3 font-sans cursor-pointer transition-colors",children:i.jsx(Cb,{size:11})})]}):i.jsxs("button",{onClick:s,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-semibold font-sans text-text-0 bg-accent/15 border border-accent/25 rounded hover:bg-accent/25 cursor-pointer transition-colors",children:[i.jsx(Lf,{size:12}),"Sign in"]})}function dX(){const[t,n]=v.useState("skills"),s=[{id:"skills",label:"Skills",icon:Ub},{id:"integrations",label:"Integrations",icon:Ab},{id:"library",label:"My Library",icon:Zb}];return i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsx("div",{className:"flex-shrink-0 bg-surface-1 border-b border-border-subtle",children:i.jsxs("div",{className:"flex items-center px-5 h-11",children:[i.jsx("div",{className:"flex items-center",children:s.map(l=>{const o=l.icon;return i.jsxs("button",{onClick:()=>n(l.id),className:`flex items-center gap-1.5 px-3 py-2.5 text-xs font-semibold font-sans cursor-pointer select-none border-b-2 -mb-px transition-colors ${t===l.id?"border-accent text-text-0":"border-transparent text-text-3 hover:text-text-1"}`,children:[i.jsx(o,{size:12}),l.label]},l.id)})}),i.jsx("div",{className:"flex-1"}),i.jsx(uX,{})]})}),i.jsxs("div",{className:"flex-1 min-h-0",children:[t==="skills"&&i.jsx(iX,{}),t==="integrations"&&i.jsx(oX,{}),t==="library"&&i.jsx(cX,{})]})]})}function OX({children:t,className:n,hover:s,...l}){return i.jsx("div",{className:le("rounded-md border border-border bg-surface-1",s&&"hover:border-accent/50 hover:bg-surface-2 transition-all duration-150 cursor-pointer",n),...l,children:t})}function fX(){const t=D(l=>l.pendingApprovals),n=D(l=>l.approveRequest),s=D(l=>l.rejectRequest);return t.length===0?null:i.jsxs("div",{className:"px-4 pt-4 space-y-2",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx(_c,{size:13,className:"text-warning"}),i.jsxs("span",{className:"text-xs font-semibold text-warning font-sans",children:["Pending Approval (",t.length,")"]})]}),t.map(l=>{var o,u,d;return i.jsxs("div",{className:"flex items-center gap-3 px-3 py-2.5 rounded-md bg-warning/5 border border-warning/20",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"text-xs text-text-0 font-sans font-medium truncate",children:[l.agentName,": ",((o=l.action)==null?void 0:o.description)||((u=l.action)==null?void 0:u.type)||"action"]}),((d=l.action)==null?void 0:d.filePath)&&i.jsx("div",{className:"text-2xs text-text-3 font-mono truncate mt-0.5",children:l.action.filePath}),i.jsx("div",{className:"text-2xs text-text-4 font-sans mt-0.5",children:Ct(l.requestedAt)})]}),i.jsxs("div",{className:"flex gap-1.5 flex-shrink-0",children:[i.jsxs(je,{variant:"primary",size:"sm",onClick:()=>n(l.id),className:"h-7 px-2.5 gap-1 text-2xs",children:[i.jsx(Vb,{size:11})," Approve"]}),i.jsxs(je,{variant:"danger",size:"sm",onClick:()=>s(l.id),className:"h-7 px-2.5 gap-1 text-2xs",children:[i.jsx(nP,{size:11})," Reject"]})]})]},l.id)})]})}function hX(){const t=D(m=>m.resolvedApprovals),[n,s]=v.useState([]),[l,o]=v.useState(!0);v.useEffect(()=>{const m=setInterval(u,4e3);return u(),()=>clearInterval(m)},[]);async function u(){try{const m=await ee.get("/pm/history");s(m.history||m||[])}catch{}o(!1)}const d=new Set,O=[...t,...n].filter(m=>{const p=m.id||`${m.agentName}-${m.timestamp}`;return d.has(p)?!1:(d.add(p),!0)});return l&&O.length===0?i.jsx("div",{className:"p-4 space-y-2",children:[...Array(4)].map((m,p)=>i.jsx(Nt,{className:"h-12 rounded-md"},p))}):i.jsxs(Ht,{className:"flex-1",children:[i.jsx(fX,{}),i.jsxs("div",{className:"p-4 space-y-2",children:[O.length===0&&i.jsxs("div",{className:"text-center py-12 text-text-4 font-sans",children:[i.jsx(Br,{size:32,className:"mx-auto mb-2"}),i.jsx("p",{className:"text-sm",children:"No approval history"}),i.jsx("p",{className:"text-2xs text-text-4 mt-1",children:'Approvals appear when agents use "Agent Approve" permission mode'})]}),O.map((m,p)=>{var x;return i.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-md bg-surface-1 border border-border-subtle",children:[m.status==="approved"||m.verdict==="approved"?i.jsx(Br,{size:14,className:"text-success flex-shrink-0"}):i.jsx($b,{size:14,className:"text-danger flex-shrink-0"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"text-xs text-text-0 font-sans truncate",children:[m.agentName,": ",((x=m.action)==null?void 0:x.description)||m.action||"action"]}),m.reason&&i.jsx("div",{className:"text-2xs text-text-3 font-sans truncate",children:m.reason})]}),i.jsx("span",{className:"text-2xs text-text-4 font-sans flex-shrink-0",children:Ct(m.resolvedAt||m.timestamp)})]},m.id||p)})]})]})}function mX(){const[t,n]=v.useState([]),[s,l]=v.useState(!0),o=Uc();v.useEffect(()=>{const O=setInterval(u,1e4);return u(),()=>clearInterval(O)},[]);async function u(){try{const O=await ee.get("/schedules");n(O.schedules||O||[])}catch{}l(!1)}async function d(O,m){try{await ee.post(`/schedules/${O}/${m?"disable":"enable"}`),u()}catch(p){o.error("Failed to toggle schedule",p.message)}}return s?i.jsx("div",{className:"p-4 space-y-2",children:[...Array(3)].map((O,m)=>i.jsx(Nt,{className:"h-16 rounded-md"},m))}):i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"p-4 space-y-2",children:[t.length===0&&i.jsxs("div",{className:"text-center py-12 text-text-4 font-sans",children:[i.jsx(oc,{size:32,className:"mx-auto mb-2"}),i.jsx("p",{className:"text-sm",children:"No schedules configured"})]}),t.map(O=>i.jsx(OX,{className:"p-3",children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-sm font-semibold text-text-0 font-sans",children:O.name}),i.jsx(We,{variant:O.enabled?"success":"default",children:O.enabled?"Active":"Paused"})]}),i.jsxs("div",{className:"text-2xs text-text-3 font-mono mt-0.5",children:[O.cron," · ",O.role]})]}),i.jsx(je,{variant:"ghost",size:"sm",onClick:()=>d(O.id,O.enabled),children:O.enabled?"Pause":"Enable"})]})},O.id))]})})}function pX(){return i.jsxs(By,{defaultValue:"approvals",className:"flex flex-col h-full",children:[i.jsxs("div",{className:"px-4 pt-3 bg-surface-1 border-b border-border",children:[i.jsx("div",{className:"flex items-center gap-4 mb-0",children:i.jsx("h2",{className:"text-base font-semibold text-text-0 font-sans",children:"Management"})}),i.jsxs(Hy,{className:"border-b-0",children:[i.jsx(Ur,{value:"approvals",children:"Approvals"}),i.jsx(Ur,{value:"schedules",children:"Schedules"})]})]}),i.jsx(Gr,{value:"approvals",className:"flex-1 min-h-0",children:i.jsx(hX,{})}),i.jsx(Gr,{value:"schedules",className:"flex-1 min-h-0",children:i.jsx(mX,{})})]})}const xX={code:"Code",general:"General"},gX={light:"text-success",medium:"text-accent",heavy:"text-warning"};function bX(t){return t<1?`${Math.round(t*1024)} MB`:`${t} GB`}function nS({hardware:t}){if(!t)return null;const{totalRamGb:n,gpu:s,isAppleSilicon:l}=t;return i.jsxs("div",{className:"flex items-center gap-3 bg-surface-0 rounded-lg border border-border-subtle px-3 py-2.5",children:[i.jsx(Df,{size:14,className:"text-text-3 flex-shrink-0"}),i.jsx("div",{className:"flex-1 min-w-0",children:i.jsxs("div",{className:"flex items-center gap-2 text-xs font-sans",children:[i.jsxs("span",{className:"text-text-0 font-semibold",children:[n," GB RAM"]}),s&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-text-4",children:"·"}),i.jsx("span",{className:"text-text-2",children:s.name})]}),l&&i.jsx(We,{variant:"accent",className:"text-2xs",children:"Unified Memory"})]})})]})}function vX({onRecheck:t}){const[n,s]=v.useState(null),[l,o]=v.useState(!1),[u,d]=v.useState(!1),[O,m]=v.useState(!1),p=D(A=>A.addToast);v.useEffect(()=>{ee.post("/providers/ollama/check").then(s).catch(()=>{})},[]);async function x(){o(!0);try{const A=await ee.post("/providers/ollama/check");s(A),A.installed&&A.serverRunning?(p("success","Ollama is ready!"),t()):A.installed?p("info","Ollama installed — server needs to start"):p("info","Ollama not found — install and try again")}catch{}o(!1)}async function g(){d(!0);try{if((await ee.post("/providers/ollama/serve")).ok){p("success","Ollama server started!");let U=!1;for(let C=0;C<5;C++){await new Promise($=>setTimeout($,2e3));const X=await ee.post("/providers/ollama/check");if(s(X),X.serverRunning){U=!0;break}}U&&t()}}catch(A){p("error","Could not start server",A.message)}d(!1)}function b(A){navigator.clipboard.writeText(A),m(!0),setTimeout(()=>m(!1),2e3)}if(!n)return i.jsx("div",{className:"py-4 text-center text-xs text-text-4 font-sans",children:"Loading..."});const{hardware:S,install:Q,requirements:k,installed:T,serverRunning:j}=n,P=S.totalRamGb>=k.minRAM,N=S.recommended;return i.jsxs("div",{className:"space-y-3 p-3",children:[i.jsx(nS,{hardware:S}),P?i.jsxs("div",{className:"flex items-start gap-2 bg-success/8 border border-success/20 rounded-lg px-3 py-2.5",children:[i.jsx(oa,{size:14,className:"text-success flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-xs font-sans",children:[i.jsx("span",{className:"text-success font-semibold",children:"Your system is ready."}),i.jsx("span",{className:"text-text-2 ml-1",children:N.code?`Recommended: ${N.code}`:`${S.totalRamGb} GB RAM available`})]})]}):i.jsxs("div",{className:"flex items-start gap-2 bg-warning/8 border border-warning/20 rounded-lg px-3 py-2.5",children:[i.jsx(cn,{size:14,className:"text-warning flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-xs font-sans text-text-2",children:[i.jsxs("span",{className:"text-warning font-semibold",children:[S.totalRamGb," GB RAM detected."]})," ","Minimum ",k.minRAM," GB needed. Smallest models may still work."]})]}),T&&!j&&i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-start gap-2 bg-warning/8 border border-warning/20 rounded-lg px-3 py-2.5",children:[i.jsx(cn,{size:14,className:"text-warning flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-xs font-sans text-text-2",children:[i.jsx("span",{className:"text-warning font-semibold",children:"Ollama installed but server not running."})," ","The server needs to be running to pull and use models."]})]}),i.jsxs(je,{variant:"primary",size:"md",onClick:g,disabled:u,className:"w-full gap-1.5",children:[i.jsx(Na,{size:12}),u?"Starting...":"Start Ollama Server"]})]}),!T&&i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"text-xs font-semibold text-text-1 font-sans",children:"Install Ollama"}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("code",{className:"flex-1 bg-surface-0 border border-border-subtle rounded-md px-3 py-2 text-xs font-mono text-text-1 truncate",children:Q.command}),i.jsxs(je,{variant:"secondary",size:"sm",onClick:()=>b(Q.command),className:"h-8 px-2.5 gap-1 flex-shrink-0",children:[O?i.jsx(oa,{size:12}):i.jsx(cf,{size:12}),O?"Copied":"Copy"]})]}),Q.alt&&i.jsx("p",{className:"text-2xs text-text-4 font-sans",children:Q.alt})]}),i.jsxs(je,{variant:"secondary",size:"md",onClick:x,disabled:l,className:"w-full gap-1.5",children:[i.jsx(es,{size:12,className:l?"animate-spin":""}),l?"Checking...":T?"Check again":"I installed it — check again"]})]})}function yX({model:t,isInstalled:n,isRecommended:s,canRun:l,onPull:o,onDelete:u,pulling:d}){const O=d===t.id;return i.jsxs("div",{className:le("flex items-center gap-2 px-3 py-2 border-t border-border-subtle transition-colors",!l&&"opacity-40"),children:[n?i.jsx(oa,{size:12,className:"text-success flex-shrink-0"}):i.jsx("div",{className:"w-3"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"text-xs font-mono text-text-1 truncate",children:t.name}),s&&i.jsx(Gb,{size:10,className:"text-warning flex-shrink-0"})]}),i.jsxs("div",{className:"flex items-center gap-2 mt-0.5",children:[i.jsx("span",{className:le("text-2xs font-semibold font-sans",gX[t.tier]),children:t.tier}),i.jsx("span",{className:"text-2xs text-text-4 font-sans",children:bX(t.sizeGb)}),i.jsxs("span",{className:"text-2xs text-text-4 font-sans",children:["· ",t.ramGb," GB RAM"]})]})]}),n?i.jsx("button",{onClick:()=>u(t.id),className:"p-1.5 text-text-4 hover:text-danger rounded transition-colors cursor-pointer",title:"Remove model",children:i.jsx(Xc,{size:12})}):l?i.jsx(je,{variant:"secondary",size:"sm",onClick:()=>o(t.id),disabled:!!d,className:"h-7 px-2 text-2xs gap-1",children:O?i.jsxs(i.Fragment,{children:[i.jsx(es,{size:10,className:"animate-spin"})," Pulling..."]}):i.jsxs(i.Fragment,{children:[i.jsx(Vf,{size:10})," Pull"]})}):i.jsxs("span",{className:"text-2xs text-text-4 font-sans",children:["Needs ",t.ramGb," GB"]})]})}function SX({onStopped:t}){const[n,s]=v.useState(null),l=D(d=>d.addToast);async function o(){s("stopping");try{(await ee.post("/providers/ollama/stop")).ok?(l("info","Ollama server stopped"),t&&t()):l("error","Could not stop server")}catch(d){l("error","Stop failed",d.message)}s(null)}async function u(){s("restarting");try{(await ee.post("/providers/ollama/restart")).ok?l("success","Ollama server restarted"):l("error","Restart failed")}catch(d){l("error","Restart failed",d.message)}s(null)}return i.jsxs("div",{className:"flex items-center gap-2 bg-success/8 border border-success/20 rounded-lg px-3 py-2",children:[i.jsxs("span",{className:"relative flex-shrink-0 w-[6px] h-[6px]",children:[i.jsx("span",{className:"absolute inset-0 rounded-full bg-success"}),i.jsx("span",{className:"absolute inset-[-2px] rounded-full bg-success opacity-20 animate-pulse"})]}),i.jsx("span",{className:"text-xs font-sans text-success font-semibold",children:"Server Running"}),i.jsx("span",{className:"text-2xs font-mono text-text-4",children:":11434"}),i.jsx("div",{className:"flex-1"}),i.jsxs("button",{onClick:u,disabled:!!n,className:"flex items-center gap-1 text-2xs font-sans text-text-3 hover:text-accent cursor-pointer transition-colors disabled:opacity-40",children:[i.jsx(es,{size:10,className:n==="restarting"?"animate-spin":""}),n==="restarting"?"Restarting...":"Restart"]}),i.jsxs("button",{onClick:o,disabled:!!n,className:"flex items-center gap-1 text-2xs font-sans text-text-3 hover:text-danger cursor-pointer transition-colors disabled:opacity-40",children:[i.jsx(cn,{size:10}),n==="stopping"?"Stopping...":"Stop"]})]})}function QX({onModelChange:t}){var $,W;const[n,s]=v.useState(null),[l,o]=v.useState(null),[u,d]=v.useState("code"),[O,m]=v.useState(!1),[p,x]=v.useState(!1),g=D(E=>E.addToast),b=v.useRef(!1);function S(){ee.get("/providers/ollama/models").then(E=>{var ne;s(E),!b.current&&((ne=E.installed)==null?void 0:ne.length)===0&&(b.current=!0,setTimeout(S,2e3))}).catch(()=>{})}v.useEffect(()=>{S()},[]);async function Q(E){o(E);try{await ee.post("/providers/ollama/pull",{model:E}),g("success",`Pulled ${E}`),S(),t&&t()}catch(ne){g("error",`Pull failed: ${ne.message}`)}o(null)}async function k(E){try{await ee.delete(`/providers/ollama/models/${encodeURIComponent(E)}`),g("info",`Removed ${E}`),S(),t&&t()}catch(ne){g("error",`Delete failed: ${ne.message}`)}}if(!n)return i.jsx("div",{className:"py-4 text-center text-xs text-text-4 font-sans",children:"Loading..."});const{installed:T,catalog:j,hardware:P}=n,N=new Set(T.map(E=>E.id)),A=P.totalRamGb,U=[($=P.recommended)==null?void 0:$.code,(W=P.recommended)==null?void 0:W.general].filter(Boolean),C=j.filter(E=>E.category===u),X=O?C:C.filter(E=>E.ramGb<=A);return p?i.jsxs("div",{className:"space-y-3 p-3",children:[i.jsxs("div",{className:"flex items-center gap-2 bg-warning/8 border border-warning/20 rounded-lg px-3 py-2.5",children:[i.jsx(cn,{size:14,className:"text-warning flex-shrink-0"}),i.jsxs("span",{className:"text-xs font-sans text-text-2",children:[i.jsx("span",{className:"text-warning font-semibold",children:"Ollama server stopped."})," ","Start it again to pull and use models."]})]}),i.jsxs(je,{variant:"primary",size:"md",onClick:async()=>{try{(await ee.post("/providers/ollama/serve")).ok&&(g("success","Ollama server started!"),x(!1),b.current=!1,setTimeout(S,2e3))}catch(E){g("error","Could not start server",E.message)}},className:"w-full gap-1.5",children:[i.jsx(Na,{size:12}),"Start Ollama Server"]})]}):i.jsxs("div",{className:"space-y-2 p-3",children:[i.jsx(SX,{onStopped:()=>x(!0)}),i.jsx(nS,{hardware:P}),T.length>0&&i.jsxs("div",{className:"flex items-center gap-1.5 text-xs font-sans text-text-2",children:[i.jsx(zb,{size:12,className:"text-text-3"}),i.jsx("span",{className:"font-semibold",children:T.length})," model",T.length!==1?"s":""," installed"]}),i.jsx("div",{className:"flex bg-surface-0 rounded-lg p-0.5 border border-border-subtle",children:Object.entries(xX).map(([E,ne])=>i.jsx("button",{onClick:()=>d(E),className:le("flex-1 px-3 py-1.5 text-2xs font-semibold font-sans rounded-md transition-all cursor-pointer",u===E?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:ne},E))}),i.jsxs("div",{className:"rounded-lg border border-border-subtle bg-surface-0 overflow-hidden",children:[X.map(E=>i.jsx(yX,{model:E,isInstalled:N.has(E.id),isRecommended:U.includes(E.id),canRun:E.ramGb<=A,onPull:Q,onDelete:k,pulling:l},E.id)),X.length===0&&i.jsxs("div",{className:"px-3 py-4 text-center text-xs text-text-4 font-sans",children:["No ",u," models available for your hardware"]})]}),!O&&C.length>X.length&&i.jsxs("button",{onClick:()=>m(!0),className:"flex items-center gap-1 text-2xs text-text-3 hover:text-accent font-sans cursor-pointer transition-colors",children:[i.jsx(In,{size:10}),"Show ",C.length-X.length," more (exceed your RAM)"]})]})}function sS({isInstalled:t,onModelChange:n}){const[s,l]=v.useState(!1),[o,u]=v.useState(!1);return v.useEffect(()=>{t?ee.post("/providers/ollama/check").then(d=>{l(d.installed&&d.serverRunning),u(!0)}).catch(()=>u(!0)):u(!0)},[t]),o?s?i.jsx(QX,{onModelChange:n}):i.jsx(vX,{onRecheck:()=>{l(!0),n&&n()}}):i.jsx("div",{className:"py-4 text-center text-xs text-text-4 font-sans",children:"Checking Ollama..."})}var UO="focusScope.autoFocusOnMount",GO="focusScope.autoFocusOnUnmount",s0={bubbles:!1,cancelable:!0},jX="FocusScope",lS=v.forwardRef((t,n)=>{const{loop:s=!1,trapped:l=!1,onMountAutoFocus:o,onUnmountAutoFocus:u,...d}=t,[O,m]=v.useState(null),p=zt(o),x=zt(u),g=v.useRef(null),b=it(n,k=>m(k)),S=v.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;v.useEffect(()=>{if(l){let k=function(N){if(S.paused||!O)return;const A=N.target;O.contains(A)?g.current=A:Un(g.current,{select:!0})},T=function(N){if(S.paused||!O)return;const A=N.relatedTarget;A!==null&&(O.contains(A)||Un(g.current,{select:!0}))},j=function(N){if(document.activeElement===document.body)for(const U of N)U.removedNodes.length>0&&Un(O)};document.addEventListener("focusin",k),document.addEventListener("focusout",T);const P=new MutationObserver(j);return O&&P.observe(O,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",k),document.removeEventListener("focusout",T),P.disconnect()}}},[l,O,S.paused]),v.useEffect(()=>{if(O){r0.add(S);const k=document.activeElement;if(!O.contains(k)){const j=new CustomEvent(UO,s0);O.addEventListener(UO,p),O.dispatchEvent(j),j.defaultPrevented||(wX(NX(rS(O)),{select:!0}),document.activeElement===k&&Un(O))}return()=>{O.removeEventListener(UO,p),setTimeout(()=>{const j=new CustomEvent(GO,s0);O.addEventListener(GO,x),O.dispatchEvent(j),j.defaultPrevented||Un(k??document.body,{select:!0}),O.removeEventListener(GO,x),r0.remove(S)},0)}}},[O,p,x,S]);const Q=v.useCallback(k=>{if(!s&&!l||S.paused)return;const T=k.key==="Tab"&&!k.altKey&&!k.ctrlKey&&!k.metaKey,j=document.activeElement;if(T&&j){const P=k.currentTarget,[N,A]=kX(P);N&&A?!k.shiftKey&&j===A?(k.preventDefault(),s&&Un(N,{select:!0})):k.shiftKey&&j===N&&(k.preventDefault(),s&&Un(A,{select:!0})):j===P&&k.preventDefault()}},[s,l,S.paused]);return i.jsx(Be.div,{tabIndex:-1,...d,ref:b,onKeyDown:Q})});lS.displayName=jX;function wX(t,{select:n=!1}={}){const s=document.activeElement;for(const l of t)if(Un(l,{select:n}),document.activeElement!==s)return}function kX(t){const n=rS(t),s=l0(n,t),l=l0(n.reverse(),t);return[s,l]}function rS(t){const n=[],s=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:l=>{const o=l.tagName==="INPUT"&&l.type==="hidden";return l.disabled||l.hidden||o?NodeFilter.FILTER_SKIP:l.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;s.nextNode();)n.push(s.currentNode);return n}function l0(t,n){for(const s of t)if(!$X(s,{upTo:n}))return s}function $X(t,{upTo:n}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(n!==void 0&&t===n)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}function TX(t){return t instanceof HTMLInputElement&&"select"in t}function Un(t,{select:n=!1}={}){if(t&&t.focus){const s=document.activeElement;t.focus({preventScroll:!0}),t!==s&&TX(t)&&n&&t.select()}}var r0=PX();function PX(){let t=[];return{add(n){const s=t[0];n!==s&&(s==null||s.pause()),t=i0(t,n),t.unshift(n)},remove(n){var s;t=i0(t,n),(s=t[0])==null||s.resume()}}}function i0(t,n){const s=[...t],l=s.indexOf(n);return l!==-1&&s.splice(l,1),s}function NX(t){return t.filter(n=>n.tagName!=="A")}var LO=0;function zX(){v.useEffect(()=>{const t=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",t[0]??o0()),document.body.insertAdjacentElement("beforeend",t[1]??o0()),LO++,()=>{LO===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(n=>n.remove()),LO--}},[])}function o0(){const t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}var wa=function(){return wa=Object.assign||function(n){for(var s,l=1,o=arguments.length;l<o;l++){s=arguments[l];for(var u in s)Object.prototype.hasOwnProperty.call(s,u)&&(n[u]=s[u])}return n},wa.apply(this,arguments)};function iS(t,n){var s={};for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&n.indexOf(l)<0&&(s[l]=t[l]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,l=Object.getOwnPropertySymbols(t);o<l.length;o++)n.indexOf(l[o])<0&&Object.prototype.propertyIsEnumerable.call(t,l[o])&&(s[l[o]]=t[l[o]]);return s}function RX(t,n,s){if(s||arguments.length===2)for(var l=0,o=n.length,u;l<o;l++)(u||!(l in n))&&(u||(u=Array.prototype.slice.call(n,0,l)),u[l]=n[l]);return t.concat(u||Array.prototype.slice.call(n))}var Ko="right-scroll-bar-position",Jo="width-before-scroll-bar",CX="with-scroll-bars-hidden",XX="--removed-body-scroll-bar-size";function DO(t,n){return typeof t=="function"?t(n):t&&(t.current=n),t}function _X(t,n){var s=v.useState(function(){return{value:t,callback:n,facade:{get current(){return s.value},set current(l){var o=s.value;o!==l&&(s.value=l,s.callback(l,o))}}}})[0];return s.callback=n,s.facade}var ZX=typeof window<"u"?v.useLayoutEffect:v.useEffect,c0=new WeakMap;function AX(t,n){var s=_X(null,function(l){return t.forEach(function(o){return DO(o,l)})});return ZX(function(){var l=c0.get(s);if(l){var o=new Set(l),u=new Set(t),d=s.current;o.forEach(function(O){u.has(O)||DO(O,null)}),u.forEach(function(O){o.has(O)||DO(O,d)})}c0.set(s,t)},[t]),s}function EX(t){return t}function qX(t,n){n===void 0&&(n=EX);var s=[],l=!1,o={read:function(){if(l)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return s.length?s[s.length-1]:t},useMedium:function(u){var d=n(u,l);return s.push(d),function(){s=s.filter(function(O){return O!==d})}},assignSyncMedium:function(u){for(l=!0;s.length;){var d=s;s=[],d.forEach(u)}s={push:function(O){return u(O)},filter:function(){return s}}},assignMedium:function(u){l=!0;var d=[];if(s.length){var O=s;s=[],O.forEach(u),d=s}var m=function(){var x=d;d=[],x.forEach(u)},p=function(){return Promise.resolve().then(m)};p(),s={push:function(x){d.push(x),p()},filter:function(x){return d=d.filter(x),s}}}};return o}function MX(t){t===void 0&&(t={});var n=qX(null);return n.options=wa({async:!0,ssr:!1},t),n}var oS=function(t){var n=t.sideCar,s=iS(t,["sideCar"]);if(!n)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var l=n.read();if(!l)throw new Error("Sidecar medium not found");return v.createElement(l,wa({},s))};oS.isSideCarExport=!0;function YX(t,n){return t.useMedium(n),oS}var cS=MX(),WO=function(){},Gc=v.forwardRef(function(t,n){var s=v.useRef(null),l=v.useState({onScrollCapture:WO,onWheelCapture:WO,onTouchMoveCapture:WO}),o=l[0],u=l[1],d=t.forwardProps,O=t.children,m=t.className,p=t.removeScrollBar,x=t.enabled,g=t.shards,b=t.sideCar,S=t.noRelative,Q=t.noIsolation,k=t.inert,T=t.allowPinchZoom,j=t.as,P=j===void 0?"div":j,N=t.gapMode,A=iS(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),U=b,C=AX([s,n]),X=wa(wa({},A),o);return v.createElement(v.Fragment,null,x&&v.createElement(U,{sideCar:cS,removeScrollBar:p,shards:g,noRelative:S,noIsolation:Q,inert:k,setCallbacks:u,allowPinchZoom:!!T,lockRef:s,gapMode:N}),d?v.cloneElement(v.Children.only(O),wa(wa({},X),{ref:C})):v.createElement(P,wa({},X,{className:m,ref:C}),O))});Gc.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Gc.classNames={fullWidth:Jo,zeroRight:Ko};var VX=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function UX(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var n=VX();return n&&t.setAttribute("nonce",n),t}function GX(t,n){t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n))}function LX(t){var n=document.head||document.getElementsByTagName("head")[0];n.appendChild(t)}var DX=function(){var t=0,n=null;return{add:function(s){t==0&&(n=UX())&&(GX(n,s),LX(n)),t++},remove:function(){t--,!t&&n&&(n.parentNode&&n.parentNode.removeChild(n),n=null)}}},WX=function(){var t=DX();return function(n,s){v.useEffect(function(){return t.add(n),function(){t.remove()}},[n&&s])}},uS=function(){var t=WX(),n=function(s){var l=s.styles,o=s.dynamic;return t(l,o),null};return n},BX={left:0,top:0,right:0,gap:0},BO=function(t){return parseInt(t||"",10)||0},HX=function(t){var n=window.getComputedStyle(document.body),s=n[t==="padding"?"paddingLeft":"marginLeft"],l=n[t==="padding"?"paddingTop":"marginTop"],o=n[t==="padding"?"paddingRight":"marginRight"];return[BO(s),BO(l),BO(o)]},IX=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return BX;var n=HX(t),s=document.documentElement.clientWidth,l=window.innerWidth;return{left:n[0],top:n[1],right:n[2],gap:Math.max(0,l-s+n[2]-n[0])}},FX=uS(),kl="data-scroll-locked",KX=function(t,n,s,l){var o=t.left,u=t.top,d=t.right,O=t.gap;return s===void 0&&(s="margin"),`
549
+ .`.concat(CX,` {
540
550
  overflow: hidden `).concat(l,`;
541
551
  padding-right: `).concat(O,"px ").concat(l,`;
542
552
  }
@@ -570,18 +580,18 @@ Error generating stack: `+c.message+`
570
580
  }
571
581
 
572
582
  body[`).concat(kl,`] {
573
- `).concat(NX,": ").concat(O,`px;
583
+ `).concat(XX,": ").concat(O,`px;
574
584
  }
575
- `)},u0=function(){var t=parseInt(document.body.getAttribute(kl)||"0",10);return isFinite(t)?t:0},HX=function(){v.useEffect(function(){return document.body.setAttribute(kl,(u0()+1).toString()),function(){var t=u0()-1;t<=0?document.body.removeAttribute(kl):document.body.setAttribute(kl,t.toString())}},[])},IX=function(t){var n=t.noRelative,s=t.noImportant,l=t.gapMode,o=l===void 0?"margin":l;HX();var u=v.useMemo(function(){return DX(o)},[o]);return v.createElement(WX,{styles:BX(u,!n,o,s?"":"!important")})},Sf=!1;if(typeof window<"u")try{var Mo=Object.defineProperty({},"passive",{get:function(){return Sf=!0,!0}});window.addEventListener("test",Mo,Mo),window.removeEventListener("test",Mo,Mo)}catch{Sf=!1}var pl=Sf?{passive:!1}:!1,FX=function(t){return t.tagName==="TEXTAREA"},dS=function(t,n){if(!(t instanceof Element))return!1;var s=window.getComputedStyle(t);return s[n]!=="hidden"&&!(s.overflowY===s.overflowX&&!FX(t)&&s[n]==="visible")},KX=function(t){return dS(t,"overflowY")},JX=function(t){return dS(t,"overflowX")},d0=function(t,n){var s=n.ownerDocument,l=n;do{typeof ShadowRoot<"u"&&l instanceof ShadowRoot&&(l=l.host);var o=OS(t,l);if(o){var u=fS(t,l),d=u[1],O=u[2];if(d>O)return!0}l=l.parentNode}while(l&&l!==s.body);return!1},e_=function(t){var n=t.scrollTop,s=t.scrollHeight,l=t.clientHeight;return[n,s,l]},t_=function(t){var n=t.scrollLeft,s=t.scrollWidth,l=t.clientWidth;return[n,s,l]},OS=function(t,n){return t==="v"?KX(n):JX(n)},fS=function(t,n){return t==="v"?e_(n):t_(n)},a_=function(t,n){return t==="h"&&n==="rtl"?-1:1},n_=function(t,n,s,l,o){var u=a_(t,window.getComputedStyle(n).direction),d=u*l,O=s.target,m=n.contains(O),p=!1,x=d>0,g=0,b=0;do{if(!O)break;var S=fS(t,O),Q=S[0],k=S[1],T=S[2],j=k-T-u*Q;(Q||j)&&OS(t,O)&&(g+=j,b+=Q);var P=O.parentNode;O=P&&P.nodeType===Node.DOCUMENT_FRAGMENT_NODE?P.host:P}while(!m&&O!==document.body||m&&(n.contains(O)||n===O));return(x&&Math.abs(g)<1||!x&&Math.abs(b)<1)&&(p=!0),p},Yo=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},O0=function(t){return[t.deltaX,t.deltaY]},f0=function(t){return t&&"current"in t?t.current:t},s_=function(t,n){return t[0]===n[0]&&t[1]===n[1]},l_=function(t){return`
585
+ `)},u0=function(){var t=parseInt(document.body.getAttribute(kl)||"0",10);return isFinite(t)?t:0},JX=function(){v.useEffect(function(){return document.body.setAttribute(kl,(u0()+1).toString()),function(){var t=u0()-1;t<=0?document.body.removeAttribute(kl):document.body.setAttribute(kl,t.toString())}},[])},e_=function(t){var n=t.noRelative,s=t.noImportant,l=t.gapMode,o=l===void 0?"margin":l;JX();var u=v.useMemo(function(){return IX(o)},[o]);return v.createElement(FX,{styles:KX(u,!n,o,s?"":"!important")})},Sf=!1;if(typeof window<"u")try{var Mo=Object.defineProperty({},"passive",{get:function(){return Sf=!0,!0}});window.addEventListener("test",Mo,Mo),window.removeEventListener("test",Mo,Mo)}catch{Sf=!1}var pl=Sf?{passive:!1}:!1,t_=function(t){return t.tagName==="TEXTAREA"},dS=function(t,n){if(!(t instanceof Element))return!1;var s=window.getComputedStyle(t);return s[n]!=="hidden"&&!(s.overflowY===s.overflowX&&!t_(t)&&s[n]==="visible")},a_=function(t){return dS(t,"overflowY")},n_=function(t){return dS(t,"overflowX")},d0=function(t,n){var s=n.ownerDocument,l=n;do{typeof ShadowRoot<"u"&&l instanceof ShadowRoot&&(l=l.host);var o=OS(t,l);if(o){var u=fS(t,l),d=u[1],O=u[2];if(d>O)return!0}l=l.parentNode}while(l&&l!==s.body);return!1},s_=function(t){var n=t.scrollTop,s=t.scrollHeight,l=t.clientHeight;return[n,s,l]},l_=function(t){var n=t.scrollLeft,s=t.scrollWidth,l=t.clientWidth;return[n,s,l]},OS=function(t,n){return t==="v"?a_(n):n_(n)},fS=function(t,n){return t==="v"?s_(n):l_(n)},r_=function(t,n){return t==="h"&&n==="rtl"?-1:1},i_=function(t,n,s,l,o){var u=r_(t,window.getComputedStyle(n).direction),d=u*l,O=s.target,m=n.contains(O),p=!1,x=d>0,g=0,b=0;do{if(!O)break;var S=fS(t,O),Q=S[0],k=S[1],T=S[2],j=k-T-u*Q;(Q||j)&&OS(t,O)&&(g+=j,b+=Q);var P=O.parentNode;O=P&&P.nodeType===Node.DOCUMENT_FRAGMENT_NODE?P.host:P}while(!m&&O!==document.body||m&&(n.contains(O)||n===O));return(x&&Math.abs(g)<1||!x&&Math.abs(b)<1)&&(p=!0),p},Yo=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},O0=function(t){return[t.deltaX,t.deltaY]},f0=function(t){return t&&"current"in t?t.current:t},o_=function(t,n){return t[0]===n[0]&&t[1]===n[1]},c_=function(t){return`
576
586
  .block-interactivity-`.concat(t,` {pointer-events: none;}
577
587
  .allow-interactivity-`).concat(t,` {pointer-events: all;}
578
- `)},r_=0,xl=[];function i_(t){var n=v.useRef([]),s=v.useRef([0,0]),l=v.useRef(),o=v.useState(r_++)[0],u=v.useState(uS)[0],d=v.useRef(t);v.useEffect(function(){d.current=t},[t]),v.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(o));var k=TX([t.lockRef.current],(t.shards||[]).map(f0),!0).filter(Boolean);return k.forEach(function(T){return T.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),k.forEach(function(T){return T.classList.remove("allow-interactivity-".concat(o))})}}},[t.inert,t.lockRef.current,t.shards]);var O=v.useCallback(function(k,T){if("touches"in k&&k.touches.length===2||k.type==="wheel"&&k.ctrlKey)return!d.current.allowPinchZoom;var j=Yo(k),P=s.current,N="deltaX"in k?k.deltaX:P[0]-j[0],A="deltaY"in k?k.deltaY:P[1]-j[1],U,C=k.target,X=Math.abs(N)>Math.abs(A)?"h":"v";if("touches"in k&&X==="h"&&C.type==="range")return!1;var $=window.getSelection(),W=$&&$.anchorNode,E=W?W===C||W.contains(C):!1;if(E)return!1;var ne=d0(X,C);if(!ne)return!0;if(ne?U=X:(U=X==="v"?"h":"v",ne=d0(X,C)),!ne)return!1;if(!l.current&&"changedTouches"in k&&(N||A)&&(l.current=U),!U)return!0;var re=l.current||U;return n_(re,T,k,re==="h"?N:A)},[]),m=v.useCallback(function(k){var T=k;if(!(!xl.length||xl[xl.length-1]!==u)){var j="deltaY"in T?O0(T):Yo(T),P=n.current.filter(function(U){return U.name===T.type&&(U.target===T.target||T.target===U.shadowParent)&&s_(U.delta,j)})[0];if(P&&P.should){T.cancelable&&T.preventDefault();return}if(!P){var N=(d.current.shards||[]).map(f0).filter(Boolean).filter(function(U){return U.contains(T.target)}),A=N.length>0?O(T,N[0]):!d.current.noIsolation;A&&T.cancelable&&T.preventDefault()}}},[]),p=v.useCallback(function(k,T,j,P){var N={name:k,delta:T,target:j,should:P,shadowParent:o_(j)};n.current.push(N),setTimeout(function(){n.current=n.current.filter(function(A){return A!==N})},1)},[]),x=v.useCallback(function(k){s.current=Yo(k),l.current=void 0},[]),g=v.useCallback(function(k){p(k.type,O0(k),k.target,O(k,t.lockRef.current))},[]),b=v.useCallback(function(k){p(k.type,Yo(k),k.target,O(k,t.lockRef.current))},[]);v.useEffect(function(){return xl.push(u),t.setCallbacks({onScrollCapture:g,onWheelCapture:g,onTouchMoveCapture:b}),document.addEventListener("wheel",m,pl),document.addEventListener("touchmove",m,pl),document.addEventListener("touchstart",x,pl),function(){xl=xl.filter(function(k){return k!==u}),document.removeEventListener("wheel",m,pl),document.removeEventListener("touchmove",m,pl),document.removeEventListener("touchstart",x,pl)}},[]);var S=t.removeScrollBar,Q=t.inert;return v.createElement(v.Fragment,null,Q?v.createElement(u,{styles:l_(o)}):null,S?v.createElement(IX,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function o_(t){for(var n=null;t!==null;)t instanceof ShadowRoot&&(n=t.host,t=t.host),t=t.parentNode;return n}const c_=AX(cS,i_);var hS=v.forwardRef(function(t,n){return v.createElement(Gc,wa({},t,{ref:n,sideCar:c_}))});hS.classNames=Gc.classNames;var u_=function(t){if(typeof document>"u")return null;var n=Array.isArray(t)?t[0]:t;return n.ownerDocument.body},gl=new WeakMap,Vo=new WeakMap,Uo={},HO=0,mS=function(t){return t&&(t.host||mS(t.parentNode))},d_=function(t,n){return n.map(function(s){if(t.contains(s))return s;var l=mS(s);return l&&t.contains(l)?l:(console.error("aria-hidden",s,"in not contained inside",t,". Doing nothing"),null)}).filter(function(s){return!!s})},O_=function(t,n,s,l){var o=d_(n,Array.isArray(t)?t:[t]);Uo[s]||(Uo[s]=new WeakMap);var u=Uo[s],d=[],O=new Set,m=new Set(o),p=function(g){!g||O.has(g)||(O.add(g),p(g.parentNode))};o.forEach(p);var x=function(g){!g||m.has(g)||Array.prototype.forEach.call(g.children,function(b){if(O.has(b))x(b);else try{var S=b.getAttribute(l),Q=S!==null&&S!=="false",k=(gl.get(b)||0)+1,T=(u.get(b)||0)+1;gl.set(b,k),u.set(b,T),d.push(b),k===1&&Q&&Vo.set(b,!0),T===1&&b.setAttribute(s,"true"),Q||b.setAttribute(l,"true")}catch(j){console.error("aria-hidden: cannot operate on ",b,j)}})};return x(n),O.clear(),HO++,function(){d.forEach(function(g){var b=gl.get(g)-1,S=u.get(g)-1;gl.set(g,b),u.set(g,S),b||(Vo.has(g)||g.removeAttribute(l),Vo.delete(g)),S||g.removeAttribute(s)}),HO--,HO||(gl=new WeakMap,gl=new WeakMap,Vo=new WeakMap,Uo={})}},f_=function(t,n,s){s===void 0&&(s="data-aria-hidden");var l=Array.from(Array.isArray(t)?t:[t]),o=u_(t);return o?(l.push.apply(l,Array.from(o.querySelectorAll("[aria-live], script"))),O_(l,o,s,"aria-hidden")):function(){return null}},Lc="Dialog",[pS]=Ns(Lc),[h_,va]=pS(Lc),xS=t=>{const{__scopeDialog:n,children:s,open:l,defaultOpen:o,onOpenChange:u,modal:d=!0}=t,O=v.useRef(null),m=v.useRef(null),[p,x]=Pc({prop:l,defaultProp:o??!1,onChange:u,caller:Lc});return i.jsx(h_,{scope:n,triggerRef:O,contentRef:m,contentId:Ql(),titleId:Ql(),descriptionId:Ql(),open:p,onOpenChange:x,onOpenToggle:v.useCallback(()=>x(g=>!g),[x]),modal:d,children:s})};xS.displayName=Lc;var gS="DialogTrigger",m_=v.forwardRef((t,n)=>{const{__scopeDialog:s,...l}=t,o=va(gS,s),u=it(n,o.triggerRef);return i.jsx(Be.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":yh(o.open),...l,ref:u,onClick:Ee(t.onClick,o.onOpenToggle)})});m_.displayName=gS;var bh="DialogPortal",[p_,bS]=pS(bh,{forceMount:void 0}),vS=t=>{const{__scopeDialog:n,forceMount:s,children:l,container:o}=t,u=va(bh,n);return i.jsx(p_,{scope:n,forceMount:s,children:v.Children.map(l,d=>i.jsx(ba,{present:s||u.open,children:i.jsx(Zf,{asChild:!0,container:o,children:d})}))})};vS.displayName=bh;var Sc="DialogOverlay",yS=v.forwardRef((t,n)=>{const s=bS(Sc,t.__scopeDialog),{forceMount:l=s.forceMount,...o}=t,u=va(Sc,t.__scopeDialog);return u.modal?i.jsx(ba,{present:l||u.open,children:i.jsx(g_,{...o,ref:n})}):null});yS.displayName=Sc;var x_=ec("DialogOverlay.RemoveScroll"),g_=v.forwardRef((t,n)=>{const{__scopeDialog:s,...l}=t,o=va(Sc,s);return i.jsx(hS,{as:x_,allowPinchZoom:!0,shards:[o.contentRef],children:i.jsx(Be.div,{"data-state":yh(o.open),...l,ref:n,style:{pointerEvents:"auto",...l.style}})})}),$s="DialogContent",SS=v.forwardRef((t,n)=>{const s=bS($s,t.__scopeDialog),{forceMount:l=s.forceMount,...o}=t,u=va($s,t.__scopeDialog);return i.jsx(ba,{present:l||u.open,children:u.modal?i.jsx(b_,{...o,ref:n}):i.jsx(v_,{...o,ref:n})})});SS.displayName=$s;var b_=v.forwardRef((t,n)=>{const s=va($s,t.__scopeDialog),l=v.useRef(null),o=it(n,s.contentRef,l);return v.useEffect(()=>{const u=l.current;if(u)return f_(u)},[]),i.jsx(QS,{...t,ref:o,trapFocus:s.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Ee(t.onCloseAutoFocus,u=>{var d;u.preventDefault(),(d=s.triggerRef.current)==null||d.focus()}),onPointerDownOutside:Ee(t.onPointerDownOutside,u=>{const d=u.detail.originalEvent,O=d.button===0&&d.ctrlKey===!0;(d.button===2||O)&&u.preventDefault()}),onFocusOutside:Ee(t.onFocusOutside,u=>u.preventDefault())})}),v_=v.forwardRef((t,n)=>{const s=va($s,t.__scopeDialog),l=v.useRef(!1),o=v.useRef(!1);return i.jsx(QS,{...t,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:u=>{var d,O;(d=t.onCloseAutoFocus)==null||d.call(t,u),u.defaultPrevented||(l.current||(O=s.triggerRef.current)==null||O.focus(),u.preventDefault()),l.current=!1,o.current=!1},onInteractOutside:u=>{var m,p;(m=t.onInteractOutside)==null||m.call(t,u),u.defaultPrevented||(l.current=!0,u.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const d=u.target;((p=s.triggerRef.current)==null?void 0:p.contains(d))&&u.preventDefault(),u.detail.originalEvent.type==="focusin"&&o.current&&u.preventDefault()}})}),QS=v.forwardRef((t,n)=>{const{__scopeDialog:s,trapFocus:l,onOpenAutoFocus:o,onCloseAutoFocus:u,...d}=t,O=va($s,s),m=v.useRef(null),p=it(n,m);return $X(),i.jsxs(i.Fragment,{children:[i.jsx(lS,{asChild:!0,loop:!0,trapped:l,onMountAutoFocus:o,onUnmountAutoFocus:u,children:i.jsx($f,{role:"dialog",id:O.contentId,"aria-describedby":O.descriptionId,"aria-labelledby":O.titleId,"data-state":yh(O.open),...d,ref:p,onDismiss:()=>O.onOpenChange(!1)})}),i.jsxs(i.Fragment,{children:[i.jsx(y_,{titleId:O.titleId}),i.jsx(Q_,{contentRef:m,descriptionId:O.descriptionId})]})]})}),vh="DialogTitle",jS=v.forwardRef((t,n)=>{const{__scopeDialog:s,...l}=t,o=va(vh,s);return i.jsx(Be.h2,{id:o.titleId,...l,ref:n})});jS.displayName=vh;var wS="DialogDescription",kS=v.forwardRef((t,n)=>{const{__scopeDialog:s,...l}=t,o=va(wS,s);return i.jsx(Be.p,{id:o.descriptionId,...l,ref:n})});kS.displayName=wS;var $S="DialogClose",TS=v.forwardRef((t,n)=>{const{__scopeDialog:s,...l}=t,o=va($S,s);return i.jsx(Be.button,{type:"button",...l,ref:n,onClick:Ee(t.onClick,()=>o.onOpenChange(!1))})});TS.displayName=$S;function yh(t){return t?"open":"closed"}var PS="DialogTitleWarning",[SZ,NS]=sw(PS,{contentName:$s,titleName:vh,docsSlug:"dialog"}),y_=({titleId:t})=>{const n=NS(PS),s=`\`${n.contentName}\` requires a \`${n.titleName}\` for the component to be accessible for screen reader users.
588
+ `)},u_=0,xl=[];function d_(t){var n=v.useRef([]),s=v.useRef([0,0]),l=v.useRef(),o=v.useState(u_++)[0],u=v.useState(uS)[0],d=v.useRef(t);v.useEffect(function(){d.current=t},[t]),v.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(o));var k=RX([t.lockRef.current],(t.shards||[]).map(f0),!0).filter(Boolean);return k.forEach(function(T){return T.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),k.forEach(function(T){return T.classList.remove("allow-interactivity-".concat(o))})}}},[t.inert,t.lockRef.current,t.shards]);var O=v.useCallback(function(k,T){if("touches"in k&&k.touches.length===2||k.type==="wheel"&&k.ctrlKey)return!d.current.allowPinchZoom;var j=Yo(k),P=s.current,N="deltaX"in k?k.deltaX:P[0]-j[0],A="deltaY"in k?k.deltaY:P[1]-j[1],U,C=k.target,X=Math.abs(N)>Math.abs(A)?"h":"v";if("touches"in k&&X==="h"&&C.type==="range")return!1;var $=window.getSelection(),W=$&&$.anchorNode,E=W?W===C||W.contains(C):!1;if(E)return!1;var ne=d0(X,C);if(!ne)return!0;if(ne?U=X:(U=X==="v"?"h":"v",ne=d0(X,C)),!ne)return!1;if(!l.current&&"changedTouches"in k&&(N||A)&&(l.current=U),!U)return!0;var re=l.current||U;return i_(re,T,k,re==="h"?N:A)},[]),m=v.useCallback(function(k){var T=k;if(!(!xl.length||xl[xl.length-1]!==u)){var j="deltaY"in T?O0(T):Yo(T),P=n.current.filter(function(U){return U.name===T.type&&(U.target===T.target||T.target===U.shadowParent)&&o_(U.delta,j)})[0];if(P&&P.should){T.cancelable&&T.preventDefault();return}if(!P){var N=(d.current.shards||[]).map(f0).filter(Boolean).filter(function(U){return U.contains(T.target)}),A=N.length>0?O(T,N[0]):!d.current.noIsolation;A&&T.cancelable&&T.preventDefault()}}},[]),p=v.useCallback(function(k,T,j,P){var N={name:k,delta:T,target:j,should:P,shadowParent:O_(j)};n.current.push(N),setTimeout(function(){n.current=n.current.filter(function(A){return A!==N})},1)},[]),x=v.useCallback(function(k){s.current=Yo(k),l.current=void 0},[]),g=v.useCallback(function(k){p(k.type,O0(k),k.target,O(k,t.lockRef.current))},[]),b=v.useCallback(function(k){p(k.type,Yo(k),k.target,O(k,t.lockRef.current))},[]);v.useEffect(function(){return xl.push(u),t.setCallbacks({onScrollCapture:g,onWheelCapture:g,onTouchMoveCapture:b}),document.addEventListener("wheel",m,pl),document.addEventListener("touchmove",m,pl),document.addEventListener("touchstart",x,pl),function(){xl=xl.filter(function(k){return k!==u}),document.removeEventListener("wheel",m,pl),document.removeEventListener("touchmove",m,pl),document.removeEventListener("touchstart",x,pl)}},[]);var S=t.removeScrollBar,Q=t.inert;return v.createElement(v.Fragment,null,Q?v.createElement(u,{styles:c_(o)}):null,S?v.createElement(e_,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function O_(t){for(var n=null;t!==null;)t instanceof ShadowRoot&&(n=t.host,t=t.host),t=t.parentNode;return n}const f_=YX(cS,d_);var hS=v.forwardRef(function(t,n){return v.createElement(Gc,wa({},t,{ref:n,sideCar:f_}))});hS.classNames=Gc.classNames;var h_=function(t){if(typeof document>"u")return null;var n=Array.isArray(t)?t[0]:t;return n.ownerDocument.body},gl=new WeakMap,Vo=new WeakMap,Uo={},HO=0,mS=function(t){return t&&(t.host||mS(t.parentNode))},m_=function(t,n){return n.map(function(s){if(t.contains(s))return s;var l=mS(s);return l&&t.contains(l)?l:(console.error("aria-hidden",s,"in not contained inside",t,". Doing nothing"),null)}).filter(function(s){return!!s})},p_=function(t,n,s,l){var o=m_(n,Array.isArray(t)?t:[t]);Uo[s]||(Uo[s]=new WeakMap);var u=Uo[s],d=[],O=new Set,m=new Set(o),p=function(g){!g||O.has(g)||(O.add(g),p(g.parentNode))};o.forEach(p);var x=function(g){!g||m.has(g)||Array.prototype.forEach.call(g.children,function(b){if(O.has(b))x(b);else try{var S=b.getAttribute(l),Q=S!==null&&S!=="false",k=(gl.get(b)||0)+1,T=(u.get(b)||0)+1;gl.set(b,k),u.set(b,T),d.push(b),k===1&&Q&&Vo.set(b,!0),T===1&&b.setAttribute(s,"true"),Q||b.setAttribute(l,"true")}catch(j){console.error("aria-hidden: cannot operate on ",b,j)}})};return x(n),O.clear(),HO++,function(){d.forEach(function(g){var b=gl.get(g)-1,S=u.get(g)-1;gl.set(g,b),u.set(g,S),b||(Vo.has(g)||g.removeAttribute(l),Vo.delete(g)),S||g.removeAttribute(s)}),HO--,HO||(gl=new WeakMap,gl=new WeakMap,Vo=new WeakMap,Uo={})}},x_=function(t,n,s){s===void 0&&(s="data-aria-hidden");var l=Array.from(Array.isArray(t)?t:[t]),o=h_(t);return o?(l.push.apply(l,Array.from(o.querySelectorAll("[aria-live], script"))),p_(l,o,s,"aria-hidden")):function(){return null}},Lc="Dialog",[pS]=Ns(Lc),[g_,va]=pS(Lc),xS=t=>{const{__scopeDialog:n,children:s,open:l,defaultOpen:o,onOpenChange:u,modal:d=!0}=t,O=v.useRef(null),m=v.useRef(null),[p,x]=Pc({prop:l,defaultProp:o??!1,onChange:u,caller:Lc});return i.jsx(g_,{scope:n,triggerRef:O,contentRef:m,contentId:Ql(),titleId:Ql(),descriptionId:Ql(),open:p,onOpenChange:x,onOpenToggle:v.useCallback(()=>x(g=>!g),[x]),modal:d,children:s})};xS.displayName=Lc;var gS="DialogTrigger",b_=v.forwardRef((t,n)=>{const{__scopeDialog:s,...l}=t,o=va(gS,s),u=it(n,o.triggerRef);return i.jsx(Be.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":yh(o.open),...l,ref:u,onClick:Ee(t.onClick,o.onOpenToggle)})});b_.displayName=gS;var bh="DialogPortal",[v_,bS]=pS(bh,{forceMount:void 0}),vS=t=>{const{__scopeDialog:n,forceMount:s,children:l,container:o}=t,u=va(bh,n);return i.jsx(v_,{scope:n,forceMount:s,children:v.Children.map(l,d=>i.jsx(ba,{present:s||u.open,children:i.jsx(Zf,{asChild:!0,container:o,children:d})}))})};vS.displayName=bh;var Sc="DialogOverlay",yS=v.forwardRef((t,n)=>{const s=bS(Sc,t.__scopeDialog),{forceMount:l=s.forceMount,...o}=t,u=va(Sc,t.__scopeDialog);return u.modal?i.jsx(ba,{present:l||u.open,children:i.jsx(S_,{...o,ref:n})}):null});yS.displayName=Sc;var y_=ec("DialogOverlay.RemoveScroll"),S_=v.forwardRef((t,n)=>{const{__scopeDialog:s,...l}=t,o=va(Sc,s);return i.jsx(hS,{as:y_,allowPinchZoom:!0,shards:[o.contentRef],children:i.jsx(Be.div,{"data-state":yh(o.open),...l,ref:n,style:{pointerEvents:"auto",...l.style}})})}),$s="DialogContent",SS=v.forwardRef((t,n)=>{const s=bS($s,t.__scopeDialog),{forceMount:l=s.forceMount,...o}=t,u=va($s,t.__scopeDialog);return i.jsx(ba,{present:l||u.open,children:u.modal?i.jsx(Q_,{...o,ref:n}):i.jsx(j_,{...o,ref:n})})});SS.displayName=$s;var Q_=v.forwardRef((t,n)=>{const s=va($s,t.__scopeDialog),l=v.useRef(null),o=it(n,s.contentRef,l);return v.useEffect(()=>{const u=l.current;if(u)return x_(u)},[]),i.jsx(QS,{...t,ref:o,trapFocus:s.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Ee(t.onCloseAutoFocus,u=>{var d;u.preventDefault(),(d=s.triggerRef.current)==null||d.focus()}),onPointerDownOutside:Ee(t.onPointerDownOutside,u=>{const d=u.detail.originalEvent,O=d.button===0&&d.ctrlKey===!0;(d.button===2||O)&&u.preventDefault()}),onFocusOutside:Ee(t.onFocusOutside,u=>u.preventDefault())})}),j_=v.forwardRef((t,n)=>{const s=va($s,t.__scopeDialog),l=v.useRef(!1),o=v.useRef(!1);return i.jsx(QS,{...t,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:u=>{var d,O;(d=t.onCloseAutoFocus)==null||d.call(t,u),u.defaultPrevented||(l.current||(O=s.triggerRef.current)==null||O.focus(),u.preventDefault()),l.current=!1,o.current=!1},onInteractOutside:u=>{var m,p;(m=t.onInteractOutside)==null||m.call(t,u),u.defaultPrevented||(l.current=!0,u.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const d=u.target;((p=s.triggerRef.current)==null?void 0:p.contains(d))&&u.preventDefault(),u.detail.originalEvent.type==="focusin"&&o.current&&u.preventDefault()}})}),QS=v.forwardRef((t,n)=>{const{__scopeDialog:s,trapFocus:l,onOpenAutoFocus:o,onCloseAutoFocus:u,...d}=t,O=va($s,s),m=v.useRef(null),p=it(n,m);return zX(),i.jsxs(i.Fragment,{children:[i.jsx(lS,{asChild:!0,loop:!0,trapped:l,onMountAutoFocus:o,onUnmountAutoFocus:u,children:i.jsx($f,{role:"dialog",id:O.contentId,"aria-describedby":O.descriptionId,"aria-labelledby":O.titleId,"data-state":yh(O.open),...d,ref:p,onDismiss:()=>O.onOpenChange(!1)})}),i.jsxs(i.Fragment,{children:[i.jsx(w_,{titleId:O.titleId}),i.jsx($_,{contentRef:m,descriptionId:O.descriptionId})]})]})}),vh="DialogTitle",jS=v.forwardRef((t,n)=>{const{__scopeDialog:s,...l}=t,o=va(vh,s);return i.jsx(Be.h2,{id:o.titleId,...l,ref:n})});jS.displayName=vh;var wS="DialogDescription",kS=v.forwardRef((t,n)=>{const{__scopeDialog:s,...l}=t,o=va(wS,s);return i.jsx(Be.p,{id:o.descriptionId,...l,ref:n})});kS.displayName=wS;var $S="DialogClose",TS=v.forwardRef((t,n)=>{const{__scopeDialog:s,...l}=t,o=va($S,s);return i.jsx(Be.button,{type:"button",...l,ref:n,onClick:Ee(t.onClick,()=>o.onOpenChange(!1))})});TS.displayName=$S;function yh(t){return t?"open":"closed"}var PS="DialogTitleWarning",[kZ,NS]=sw(PS,{contentName:$s,titleName:vh,docsSlug:"dialog"}),w_=({titleId:t})=>{const n=NS(PS),s=`\`${n.contentName}\` requires a \`${n.titleName}\` for the component to be accessible for screen reader users.
579
589
 
580
590
  If you want to hide the \`${n.titleName}\`, you can wrap it with our VisuallyHidden component.
581
591
 
582
- For more information, see https://radix-ui.com/primitives/docs/components/${n.docsSlug}`;return v.useEffect(()=>{t&&(document.getElementById(t)||console.error(s))},[s,t]),null},S_="DialogDescriptionWarning",Q_=({contentRef:t,descriptionId:n})=>{const l=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${NS(S_).contentName}}.`;return v.useEffect(()=>{var u;const o=(u=t.current)==null?void 0:u.getAttribute("aria-describedby");n&&o&&(document.getElementById(n)||console.warn(l))},[l,t,n]),null},zS=xS,RS=vS,CS=yS,XS=SS,_S=jS,ZS=kS,AS=TS;function j_({children:t,...n}){return i.jsx(zS,{...n,children:t})}function w_({children:t,className:n,title:s,description:l,...o}){return i.jsxs(RS,{children:[i.jsx(CS,{className:"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"}),i.jsxs(XS,{className:le("fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2","w-full max-w-lg max-h-[85vh] overflow-y-auto","bg-surface-1 border border-border rounded-lg shadow-2xl","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",n),...o,children:[s&&i.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border-subtle",children:[i.jsx(_S,{className:"text-base font-semibold text-text-0 font-sans",children:s}),i.jsx(AS,{className:"p-1 rounded-md text-text-3 hover:text-text-0 hover:bg-surface-5 transition-colors",children:i.jsx(Rt,{size:16})})]}),l&&i.jsx(ZS,{className:"sr-only",children:l}),t]})]})}var h0={};function k_({path:t,onNavigate:n}){const s=t.split("/").filter(Boolean);return i.jsxs("div",{className:"flex items-center gap-0.5 min-w-0 overflow-x-auto py-1.5 scrollbar-none",children:[i.jsx("button",{onClick:()=>n("/"),className:"flex-shrink-0 p-1 rounded hover:bg-surface-5 cursor-pointer text-text-3 hover:text-text-0 transition-colors",children:i.jsx(zb,{size:13})}),s.map((l,o)=>{const u="/"+s.slice(0,o+1).join("/"),d=o===s.length-1;return i.jsxs("div",{className:"flex items-center gap-0.5 flex-shrink-0",children:[i.jsx(ii,{size:11,className:"text-text-4"}),i.jsx("button",{onClick:()=>n(u),className:le("px-1.5 py-0.5 rounded text-xs font-mono cursor-pointer transition-colors",d?"text-text-0 bg-surface-4 font-medium":"text-text-3 hover:text-text-0 hover:bg-surface-5"),children:l})]},o)})]})}function ES({open:t,onOpenChange:n,currentPath:s,onSelect:l}){const[o,u]=v.useState(s||h0.HOME||"/"),[d,O]=v.useState([]),[m,p]=v.useState(!1),[x,g]=v.useState(null);v.useEffect(()=>{t&&b(s||"/")},[t]);async function b(T){p(!0),g(null);try{const j=await ee.get(`/browse-system?path=${encodeURIComponent(T)}`);u(j.current||T),O(j.dirs||[])}catch(j){g(j.message),O([])}p(!1)}function S(){const T=o==="/"?"/":o.split("/").slice(0,-1).join("/")||"/";b(T)}function Q(){b(h0.HOME||"/Users")}function k(){l(o),n(!1)}return i.jsx(j_,{open:t,onOpenChange:n,children:i.jsx(w_,{title:"Select Working Directory",description:"Choose a directory for this agent to work in",className:"max-w-[520px]",children:i.jsxs("div",{className:"px-5 py-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("button",{onClick:S,disabled:o==="/",className:"p-1.5 rounded-md bg-surface-4 border border-border text-text-2 hover:text-text-0 hover:bg-surface-5 transition-colors cursor-pointer disabled:opacity-30 disabled:cursor-not-allowed",children:i.jsx(p5,{size:14})}),i.jsx("button",{onClick:Q,className:"p-1.5 rounded-md bg-surface-4 border border-border text-text-2 hover:text-text-0 hover:bg-surface-5 transition-colors cursor-pointer",children:i.jsx(mT,{size:14})}),i.jsx("div",{className:"flex-1 min-w-0 bg-surface-0 rounded-md border border-border-subtle px-2",children:i.jsx(k_,{path:o,onNavigate:b})})]}),i.jsx("div",{className:"bg-surface-0 rounded-lg border border-border-subtle overflow-hidden",children:i.jsxs("div",{className:"max-h-[340px] overflow-y-auto",children:[m&&i.jsx("div",{className:"flex items-center justify-center py-8",children:i.jsx(Gf,{size:18,className:"text-text-3 animate-spin"})}),x&&i.jsx("div",{className:"px-4 py-6 text-center",children:i.jsx("p",{className:"text-xs text-danger font-sans",children:x})}),!m&&!x&&d.length===0&&i.jsx("div",{className:"px-4 py-6 text-center",children:i.jsx("p",{className:"text-xs text-text-3 font-sans",children:"No subdirectories"})}),!m&&!x&&d.map(T=>i.jsxs("button",{onClick:()=>b(T.path),className:le("w-full flex items-center gap-2.5 px-3.5 py-2 text-left cursor-pointer","hover:bg-surface-4 transition-colors border-b border-border-subtle last:border-0"),children:[T.hasChildren?i.jsx(aT,{size:15,className:"text-warning flex-shrink-0"}):i.jsx(Hr,{size:15,className:"text-text-3 flex-shrink-0"}),i.jsx("span",{className:"text-sm text-text-0 font-sans truncate flex-1",children:T.name}),T.hasChildren&&i.jsx(ii,{size:12,className:"text-text-4 flex-shrink-0"})]},T.path))]})}),i.jsxs("div",{className:"flex items-center gap-3 bg-surface-4/50 rounded-lg px-3.5 py-2.5 border border-border-subtle",children:[i.jsx(Hr,{size:16,className:"text-accent flex-shrink-0"}),i.jsx("span",{className:"text-xs font-mono text-text-1 truncate flex-1",children:o})]}),i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(je,{variant:"ghost",size:"md",onClick:()=>n(!1),children:"Cancel"}),i.jsxs(je,{variant:"primary",size:"md",onClick:k,className:"gap-1.5",children:[i.jsx(oa,{size:14})," Select Folder"]})]})]})})})}function qS({children:t,...n}){return i.jsx(zS,{...n,children:t})}function MS({children:t,className:n,title:s,side:l="right",width:o=400,...u}){return i.jsxs(RS,{children:[i.jsx(CS,{className:"fixed inset-0 z-40 bg-black/30"}),i.jsxs(XS,{className:le("fixed top-0 z-50 h-full overflow-y-auto","bg-surface-1 border-l border-border shadow-2xl","data-[state=open]:animate-in data-[state=closed]:animate-out",l==="right"&&"right-0 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right",l==="left"&&"left-0 data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left",n),style:{width:o},...u,children:[s&&i.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border-subtle sticky top-0 bg-surface-1 z-10",children:[i.jsx(_S,{className:"text-base font-semibold text-text-0 font-sans",children:s}),i.jsx(AS,{className:"p-1 rounded-md text-text-3 hover:text-text-0 hover:bg-surface-5 transition-colors cursor-pointer",children:i.jsx(Rt,{size:16})})]}),i.jsx(ZS,{className:"sr-only",children:"Panel"}),t]})]})}function $_({value:t,onChange:n}){return i.jsx("button",{onClick:()=>n(!t),className:le("w-9 h-5 rounded-full p-0.5 transition-colors cursor-pointer",t?"bg-accent":"bg-surface-5"),children:i.jsx("div",{className:le("w-4 h-4 rounded-full bg-white shadow-sm transition-transform",t?"translate-x-4":"translate-x-0")})})}function T_({user:t}){const[n,s]=v.useState(!1),l=(t==null?void 0:t.avatar)||(t==null?void 0:t.picture)||(t==null?void 0:t.photoURL)||(t==null?void 0:t.photo);return l&&!n?i.jsx("img",{src:l,alt:"",className:"w-6 h-6 rounded-full",referrerPolicy:"no-referrer",crossOrigin:"anonymous",onError:()=>s(!0)}):i.jsx("div",{className:"w-6 h-6 rounded-full bg-accent/10 flex items-center justify-center",children:i.jsx(Lb,{size:12,className:"text-accent"})})}function P_({provider:t,onKeyChange:n}){var T,j;const[s,l]=v.useState(!1),[o,u]=v.useState(""),[d,O]=v.useState(!1),[m,p]=v.useState(!1),x=D(P=>P.addToast),g=t.authType==="local",b=t.authType==="subscription",S=g||b?t.installed:t.hasKey;async function Q(){if(o.trim())try{await ee.post(`/credentials/${t.id}`,{key:o.trim()}),x("success",`API key set for ${t.name}`),u(""),l(!1),n&&n()}catch(P){x("error","Failed to set key",P.message)}}async function k(){try{await ee.delete(`/credentials/${t.id}`),x("info",`Removed ${t.name} key`),n&&n()}catch(P){x("error","Remove failed",P.message)}}return g?i.jsxs("div",{className:"flex flex-col rounded-lg border border-border-subtle bg-surface-1 overflow-hidden min-w-[220px]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 px-4 py-3 border-b border-border-subtle",children:[i.jsx(Nl,{status:S?"running":"crashed",size:"sm"}),i.jsx("span",{className:"text-[13px] font-semibold text-text-0 font-sans",children:t.name}),i.jsx("div",{className:"flex-1"}),S?i.jsxs(We,{variant:"success",className:"text-2xs gap-1",children:[i.jsx(oa,{size:8})," Ready"]}):i.jsx(We,{variant:"default",className:"text-2xs",children:"Not installed"})]}),i.jsx("div",{className:"flex-1",children:m?i.jsx(sS,{isInstalled:S,onModelChange:n}):i.jsxs("div",{className:"px-4 py-3 flex flex-col h-full",children:[i.jsx("div",{className:"text-xs text-text-3 font-sans flex-1",children:S?`${((T=t.models)==null?void 0:T.length)||0} models available`:"Local AI models — free, private, no API key"}),i.jsxs(je,{variant:S?"secondary":"primary",size:"sm",onClick:()=>p(!0),className:"w-full h-7 text-2xs gap-1.5 mt-3",children:[i.jsx(Yf,{size:11}),S?"Manage Models":"Set Up Ollama"]})]})})]}):i.jsxs("div",{className:"flex flex-col rounded-lg border border-border-subtle bg-surface-1 overflow-hidden min-w-[220px]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 px-4 py-3 border-b border-border-subtle",children:[i.jsx(Nl,{status:S?"running":"crashed",size:"sm"}),i.jsx("span",{className:"text-[13px] font-semibold text-text-0 font-sans",children:t.name}),i.jsx("div",{className:"flex-1"}),S?i.jsxs(We,{variant:"success",className:"text-2xs gap-1",children:[i.jsx(oa,{size:8})," Ready"]}):i.jsx(We,{variant:"default",className:"text-2xs",children:b?"Not installed":"No key"})]}),i.jsxs("div",{className:"flex-1 flex flex-col px-4 py-3 min-h-[120px]",children:[((j=t.models)==null?void 0:j.length)>0&&i.jsx("div",{className:"flex flex-wrap gap-1 mb-3",children:t.models.map(P=>i.jsx("span",{className:"px-1.5 py-0.5 rounded bg-surface-4 text-2xs font-mono text-text-3",children:P.name||P.id},P.id))}),b&&S&&!t.hasKey&&!s&&i.jsxs("div",{className:"flex items-center gap-1.5 h-8 px-2.5 bg-accent/8 border border-accent/20 rounded-md text-2xs font-sans text-accent mb-3",children:[i.jsx(oa,{size:10})," Subscription active"]}),t.hasKey&&!s&&i.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[i.jsxs("div",{className:"flex-1 flex items-center gap-1.5 h-8 px-2.5 bg-success/8 border border-success/20 rounded-md text-2xs font-sans text-success",children:[i.jsx(oa,{size:10})," API Connected"]}),i.jsx("button",{onClick:()=>{l(!0),O(!1),u("")},className:"text-2xs text-text-4 hover:text-accent cursor-pointer font-sans",children:"Edit"}),i.jsx("button",{onClick:k,className:"text-2xs text-text-4 hover:text-danger cursor-pointer font-sans",children:"Remove"})]}),i.jsx("div",{className:"flex-1"}),s&&i.jsxs("div",{className:"space-y-2.5 pt-1",children:[i.jsxs("div",{children:[i.jsx("label",{className:"text-2xs font-semibold text-text-2 font-sans mb-1.5 block",children:t.hasKey?"Update API Key":`${t.name} API Key`}),i.jsxs("div",{className:"relative",children:[i.jsx("input",{value:o,onChange:P=>u(P.target.value),onKeyDown:P=>P.key==="Enter"&&Q(),type:d?"text":"password",placeholder:"sk-...",className:"w-full h-9 px-3 pr-9 text-xs bg-surface-0 border border-border rounded-md text-text-0 font-mono placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent",autoFocus:!0}),i.jsx("button",{onClick:()=>O(!d),className:"absolute right-2.5 top-1/2 -translate-y-1/2 text-text-4 hover:text-text-2 cursor-pointer",children:d?i.jsx(Uf,{size:12}):i.jsx(oi,{size:12})})]})]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(je,{variant:"primary",size:"sm",onClick:Q,disabled:!o.trim(),className:"flex-1 h-8 text-xs",children:"Save Key"}),i.jsx(je,{variant:"ghost",size:"sm",onClick:()=>{l(!1),u("")},className:"h-8 text-xs px-3",children:"Cancel"})]})]}),!s&&!t.hasKey&&i.jsxs(je,{variant:b?"secondary":"primary",size:"sm",onClick:()=>{l(!0),O(!1),u("")},className:"w-full h-8 text-2xs gap-1.5 mt-2",children:[i.jsx(uc,{size:11}),b?"Add API key for headless mode":"Add API Key"]})]})]})}function bl({icon:t,label:n,description:s,children:l}){return i.jsxs("div",{className:"rounded-lg border border-border-subtle bg-surface-1 px-4 py-3.5 flex flex-col gap-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("div",{className:"w-6 h-6 rounded bg-accent/8 flex items-center justify-center flex-shrink-0",children:i.jsx(t,{size:12,className:"text-accent"})}),i.jsx("div",{className:"text-[13px] font-medium text-text-0 font-sans leading-tight",children:n})]}),i.jsx("div",{className:"text-2xs text-text-4 font-sans leading-relaxed",children:s}),i.jsx("div",{className:"mt-auto pt-1",children:l})]})}const YS={telegram:Bf,discord:ci,slack:Xb},Ss={telegram:"Telegram",discord:"Discord",slack:"Slack"},N_={telegram:"Bot token from @BotFather",discord:"Bot token from Developer Portal",slack:"Bot token (xoxb-...)"},z_=["critical","lifecycle","all"];function R_({type:t,open:n,onOpenChange:s}){if(!t)return null;const o={telegram:{title:"Set Up Telegram",icon:Bf,intro:"Create a Telegram bot and connect it to Groove in under 2 minutes. No dependencies required.",sections:[{title:"Create Your Bot",steps:[{text:"Open Telegram on any device and search for",link:"https://t.me/BotFather",linkText:"@BotFather"},{text:"Send /newbot to start the setup"},{text:"Choose a display name — we suggest GroovePilot"},{text:'Choose a username (must end in "bot") — e.g. GroovePilot_bot'},{text:"BotFather will reply with your bot token — copy it"}]},{title:"Connect to Groove",steps:[{text:"In Groove Settings > Gateways, click Set Token on the Telegram card"},{text:"Paste your bot token and click Save"},{text:"The gateway will connect automatically"}]},{title:"Link a Chat",steps:[{text:"Open a chat with your new bot in Telegram"},{text:'Send any message (e.g. "hello") — Groove captures the chat ID automatically'},{text:"Click Test in the gateway card to verify"}]},{title:"Commands",note:"All commands use / prefix in Telegram:",commands:["/instruct <team> <msg>","/query <team> <question>","/plan <description>","/log <team>","/brief","/tokens","/status","/agents","/help"]}]},discord:{title:"Set Up Discord",icon:ci,intro:"Create a Discord bot and add it to your server. Requires discord.js (installed automatically with Groove).",sections:[{title:"Create the Application",steps:[{text:"Go to the",link:"https://discord.com/developers/applications",linkText:"Discord Developer Portal"},{text:"Click New Application and name it GroovePilot"},{text:"Go to the Bot tab in the left sidebar"},{text:"Click Reset Token and copy the bot token"}]},{title:"Set Permissions & Invite",steps:[{text:"Go to OAuth2 > URL Generator"},{text:"Under Scopes, check bot"},{text:"Under Bot Permissions, check:"}],scopes:["Send Messages","Read Message History","Embed Links","Use External Emojis"],after:[{text:"Copy the generated URL at the bottom and open it in your browser"},{text:"Select your server and click Authorize"}]},{title:"Enable Message Content Intent",steps:[{text:"Go back to the Bot tab in the Developer Portal"},{text:"Scroll to Privileged Gateway Intents"},{text:"Enable Message Content Intent — required for the bot to read commands"},{text:"Click Save Changes"}]},{title:"Connect to Groove",steps:[{text:"In Groove Settings > Gateways, click Set Token on the Discord card"},{text:"Paste your bot token and click Save"},{text:"Send a message in any channel where the bot is — Groove captures the channel automatically"}]},{title:"Commands",note:"All commands use / prefix in Discord:",commands:["/instruct <team> <msg>","/query <team> <question>","/plan <description>","/log <team>","/brief","/tokens","/status","/agents","/help"]}]},slack:{title:"Set Up Slack",icon:Xb,intro:"Create a Slack app with Socket Mode — no public URL needed. Requires @slack/bolt (installed automatically with Groove).",sections:[{title:"Create the App",steps:[{text:"Go to",link:"https://api.slack.com/apps",linkText:"api.slack.com/apps"},{text:"Click Create New App > From scratch"},{text:"Name it GroovePilot and select your workspace"}]},{title:"Enable Socket Mode",steps:[{text:"In the left sidebar, go to Settings > Socket Mode"},{text:"Toggle Enable Socket Mode to on"},{text:"It will ask you to create an App-Level Token"},{text:'Name it "groove", add the connections:write scope'},{text:"Click Generate — copy the xapp-... token (this is your App Token)"}],important:"Save this token now — you can't view it again after closing the dialog."},{title:"Set Bot Token Scopes",steps:[{text:"Go to Features > OAuth & Permissions"},{text:"Scroll to Bot Token Scopes and add all of these:"}],scopes:["chat:write","channels:read","channels:history","groups:read","groups:history","im:history","app_mentions:read"],after:[{text:"Scroll up and click Install to Workspace"},{text:"Click Allow to grant permissions"},{text:"Copy the Bot User OAuth Token (xoxb-...) — this is your Bot Token"}]},{title:"Enable Events",steps:[{text:"Go to Features > Event Subscriptions"},{text:"Toggle Enable Events to on"},{text:"Under Subscribe to bot events, add:"}],scopes:["message.channels","message.im","app_mention"],after:[{text:"Click Save Changes at the bottom"}]},{title:"Connect to Groove",steps:[{text:"In Groove Settings > Gateways, click Set Token on the Slack card"},{text:"Paste your Bot Token (xoxb-...) in the first field"},{text:"Paste your App Token (xapp-...) in the second field"},{text:"Click Save — Groove will auto-connect"}]},{title:"Link a Channel",steps:[{text:"Invite the bot to a channel: /invite @GroovePilot"},{text:"Select the channel from the dropdown in the gateway card"},{text:"Or @mention the bot — it will auto-capture the channel"},{text:"Click Test to verify"}],important:"For private channels, make sure you added the groups:read scope."},{title:"Commands",note:"In Slack, use plain text commands (no / prefix) or @mention the bot:",commands:["instruct <team> <msg>","query <team> <question>","plan <description>","log <team>","brief","tokens","status","agents","help","@GroovePilot status"]}]}}[t];if(!o)return null;const u=o.icon;return i.jsx(qS,{open:n,onOpenChange:s,children:i.jsx(MS,{title:o.title,width:480,children:i.jsxs("div",{className:"px-5 py-4 space-y-5",children:[i.jsxs("div",{className:"flex items-start gap-3 p-3 bg-accent/5 border border-accent/15 rounded-lg",children:[i.jsx("div",{className:"w-8 h-8 rounded-lg bg-accent/10 flex items-center justify-center flex-shrink-0 mt-0.5",children:i.jsx(u,{size:16,className:"text-accent"})}),i.jsx("p",{className:"text-xs text-text-2 font-sans leading-relaxed",children:o.intro})]}),o.sections.map((d,O)=>{var m;return i.jsxs("div",{children:[i.jsxs("h3",{className:"text-xs font-semibold text-text-0 font-sans mb-2.5 flex items-center gap-2",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-accent/10 flex items-center justify-center text-2xs font-bold text-accent",children:O+1}),d.title]}),d.note&&i.jsx("p",{className:"text-2xs text-text-3 font-sans mb-2",children:d.note}),d.steps&&i.jsx("ol",{className:"space-y-2 mb-2",children:d.steps.map((p,x)=>i.jsxs("li",{className:"flex gap-2 text-2xs text-text-2 font-sans leading-relaxed",children:[i.jsxs("span",{className:"text-text-4 font-mono w-4 flex-shrink-0 pt-px",children:[x+1,"."]}),i.jsxs("span",{children:[p.text,p.link&&i.jsxs(i.Fragment,{children:[" ",i.jsxs("a",{href:p.link,target:"_blank",rel:"noopener noreferrer",className:"text-accent hover:underline inline-flex items-center gap-0.5 font-medium",children:[p.linkText,i.jsx(cc,{size:9})]})]})]})]},x))}),d.scopes&&i.jsx("div",{className:"flex flex-wrap gap-1.5 mb-2 ml-6",children:d.scopes.map(p=>i.jsx("code",{className:"px-2 py-0.5 rounded bg-surface-4 text-2xs font-mono text-accent",children:p},p))}),d.after&&i.jsx("ol",{className:"space-y-2 mb-2",start:(((m=d.steps)==null?void 0:m.length)||0)+1,children:d.after.map((p,x)=>{var g;return i.jsxs("li",{className:"flex gap-2 text-2xs text-text-2 font-sans leading-relaxed",children:[i.jsxs("span",{className:"text-text-4 font-mono w-4 flex-shrink-0 pt-px",children:[(((g=d.steps)==null?void 0:g.length)||0)+x+1,"."]}),i.jsx("span",{children:p.text})]},x)})}),d.important&&i.jsx("div",{className:"ml-6 p-2 bg-warning/8 border border-warning/20 rounded-md text-2xs text-warning font-sans",children:d.important}),d.commands&&i.jsx("div",{className:"ml-6 p-2.5 bg-surface-0 border border-border-subtle rounded-md space-y-1",children:d.commands.map(p=>i.jsx("code",{className:"block text-2xs font-mono text-text-1",children:p},p))})]},O)}),i.jsxs("a",{href:"https://docs.groovedev.ai/guide/gateways",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1.5 text-2xs text-accent hover:text-accent/80 font-sans font-medium mt-2",children:[i.jsx(cc,{size:10}),"Full documentation at docs.groovedev.ai"]})]})})})}function C_({gateway:t,onRefresh:n}){var xe,ie;const[s,l]=v.useState(!1),[o,u]=v.useState(""),[d,O]=v.useState(""),[m,p]=v.useState(!1),[x,g]=v.useState(!1),[b,S]=v.useState(!1),[Q,k]=v.useState([]),[T,j]=v.useState(!1),P=D(J=>J.addToast);v.useEffect(()=>{t.connected&&!t.chatId&&t.type==="slack"&&ee.get(`/gateways/${t.id}/channels`).then(J=>k(Array.isArray(J)?J:[])).catch(()=>{})},[t.connected,t.chatId,t.id,t.type]);const N=YS[t.type]||Wf,A=t.type==="slack";async function U(){if(o.trim())try{await ee.post(`/gateways/${t.id}/credentials`,{key:"bot_token",value:o.trim()}),A&&d.trim()&&await ee.post(`/gateways/${t.id}/credentials`,{key:"app_token",value:d.trim()}),P("success","Token saved — connecting..."),u(""),O(""),l(!1);try{await ee.post(`/gateways/${t.id}/connect`),P("success",`${Ss[t.type]} connected!`)}catch(J){P("error","Token saved but connect failed",J.message)}n()}catch(J){P("error","Failed to save token",J.message)}}async function C(){g(!0);try{await ee.post(`/gateways/${t.id}/test`),P("success","Test message sent!")}catch(J){P("error","Test failed",J.message)}g(!1)}async function X(){S(!0);try{t.connected?(await ee.post(`/gateways/${t.id}/disconnect`),P("info",`${Ss[t.type]} disconnected`)):(await ee.post(`/gateways/${t.id}/connect`),P("success",`${Ss[t.type]} connected!`)),n()}catch(J){P("error",t.connected?"Disconnect failed":"Connect failed",J.message)}S(!1)}async function $(J){try{await ee.patch(`/gateways/${t.id}`,{enabled:J}),n()}catch(z){P("error","Update failed",z.message)}}async function W(J){try{await ee.patch(`/gateways/${t.id}`,{notifications:{preset:J}}),n()}catch(z){P("error","Update failed",z.message)}}async function E(J){try{await ee.patch(`/gateways/${t.id}`,{commandPermission:J}),n()}catch(z){P("error","Update failed",z.message)}}async function ne(){try{await ee.delete(`/gateways/${t.id}`),P("info",`${Ss[t.type]} gateway removed`),n()}catch(J){P("error","Delete failed",J.message)}}const re=((xe=t.notifications)==null?void 0:xe.preset)||"critical";return i.jsxs("div",{className:"flex flex-col rounded-lg border border-border-subtle bg-surface-1 overflow-hidden min-w-[220px]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 px-4 py-3 border-b border-border-subtle",children:[i.jsx(Nl,{status:t.connected?"running":"crashed",size:"sm"}),i.jsx(N,{size:13,className:"text-text-2"}),i.jsx("span",{className:"text-[13px] font-semibold text-text-0 font-sans",children:Ss[t.type]}),i.jsx("div",{className:"flex-1"}),t.connected?i.jsxs(We,{variant:"success",className:"text-2xs gap-1",children:[i.jsx(Fg,{size:8})," Connected"]}):t.enabled?i.jsx(We,{variant:"warning",className:"text-2xs",children:"Disconnected"}):i.jsx(We,{variant:"default",className:"text-2xs",children:"Disabled"})]}),i.jsxs("div",{className:"flex-1 flex flex-col px-4 py-3 min-h-[140px]",children:[t.connected&&!s&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center gap-1.5 h-8 px-2.5 bg-success/8 border border-success/20 rounded-md text-2xs font-sans text-success mb-3",children:[i.jsx(oa,{size:10})," Gateway active",t.botUsername&&i.jsxs("span",{className:"text-text-4 ml-1",children:["@",t.botUsername]}),t.botTag&&i.jsx("span",{className:"text-text-4 ml-1",children:t.botTag})]}),i.jsxs("div",{className:"mb-3",children:[i.jsx("label",{className:"text-2xs font-semibold text-text-3 font-sans mb-1.5 block",children:t.type==="slack"?"Channel":"Chat ID"}),t.chatId?i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("code",{className:"flex-1 flex items-center h-7 px-2 bg-surface-0 border border-border-subtle rounded-md text-2xs font-mono text-text-2",children:t.type==="slack"&&Q.length>0?`#${((ie=Q.find(J=>J.id===t.chatId))==null?void 0:ie.name)||t.chatId}`:t.chatId}),i.jsx("button",{onClick:async()=>{try{await ee.patch(`/gateways/${t.id}`,{chatId:null}),n()}catch(J){P("error","Failed",J.message)}},className:"text-2xs text-text-4 hover:text-text-1 cursor-pointer font-sans",children:"Change"})]}):t.type==="slack"&&Q.length>0?i.jsxs("select",{onChange:async J=>{if(J.target.value)try{await ee.patch(`/gateways/${t.id}`,{chatId:J.target.value}),n()}catch(z){P("error","Failed to set channel",z.message)}},className:"w-full h-7 px-2 text-2xs bg-surface-0 border border-border-subtle rounded-md text-text-0 font-sans focus:outline-none focus:ring-1 focus:ring-accent cursor-pointer",defaultValue:"",children:[i.jsx("option",{value:"",disabled:!0,children:"Select a channel..."}),Q.map(J=>i.jsxs("option",{value:J.id,children:["#",J.name]},J.id))]}):i.jsxs("div",{className:"text-2xs text-warning font-sans",children:[t.type==="slack"?"No channels found — invite the bot to a channel first.":"Send a message to the bot to auto-capture, or enter manually:",i.jsx("input",{placeholder:t.type==="slack"?"C0123456789":"Chat ID",className:"mt-1 w-full h-7 px-2 text-2xs bg-surface-0 border border-border rounded-md text-text-0 font-mono placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent",onKeyDown:async J=>{if(J.key==="Enter"&&J.target.value.trim())try{await ee.patch(`/gateways/${t.id}`,{chatId:J.target.value.trim()}),n()}catch(z){P("error","Failed to set channel",z.message)}}})]})]}),i.jsxs("div",{className:"mb-3",children:[i.jsx("label",{className:"text-2xs font-semibold text-text-3 font-sans mb-1.5 block",children:"Notifications"}),i.jsx("div",{className:"flex bg-surface-0 rounded-md p-0.5 border border-border-subtle",children:z_.map(J=>i.jsx("button",{onClick:()=>W(J),className:le("flex-1 px-2 py-1.5 text-2xs font-semibold font-sans rounded transition-all cursor-pointer capitalize",re===J?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:J},J))})]}),i.jsxs("div",{className:"mb-3",children:[i.jsx("label",{className:"text-2xs font-semibold text-text-3 font-sans mb-1.5 block",children:"Commands"}),i.jsx("div",{className:"flex bg-surface-0 rounded-md p-0.5 border border-border-subtle",children:["full","read-only"].map(J=>i.jsx("button",{onClick:()=>E(J),className:le("flex-1 px-2 py-1.5 text-2xs font-semibold font-sans rounded transition-all cursor-pointer capitalize",(t.commandPermission||"full")===J?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:J==="full"?"Full Access":"Read Only"},J))})]})]}),!t.connected&&!s&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"text-xs text-text-3 font-sans mb-2",children:t.enabled?t.hasCredentials?"Tokens saved — click Connect.":"Configure bot token to connect.":"Gateway is disabled."}),!t.hasCredentials&&i.jsxs("button",{onClick:()=>j(!0),className:"flex items-center gap-1.5 text-2xs text-accent hover:text-accent/80 font-sans font-medium cursor-pointer mb-2",children:[i.jsx(ic,{size:11}),"How to set up",i.jsx(cc,{size:9})]})]}),i.jsx(R_,{type:t.type,open:T,onOpenChange:j}),i.jsx("div",{className:"flex-1"}),s&&i.jsxs("div",{className:"space-y-2.5 pt-1",children:[i.jsxs("button",{onClick:()=>j(!0),className:"flex items-center gap-1.5 text-2xs text-accent hover:text-accent/80 font-sans font-medium cursor-pointer",children:[i.jsx(ic,{size:11}),"Where do I get these?"]}),i.jsxs("div",{children:[i.jsx("label",{className:"text-2xs font-semibold text-text-2 font-sans mb-1.5 block",children:"Bot Token"}),i.jsxs("div",{className:"relative",children:[i.jsx("input",{value:o,onChange:J=>u(J.target.value),onKeyDown:J=>J.key==="Enter"&&!A&&U(),type:m?"text":"password",placeholder:N_[t.type],className:"w-full h-9 px-3 pr-9 text-xs bg-surface-0 border border-border rounded-md text-text-0 font-mono placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent",autoFocus:!0}),i.jsx("button",{onClick:()=>p(!m),className:"absolute right-2.5 top-1/2 -translate-y-1/2 text-text-4 hover:text-text-2 cursor-pointer",children:m?i.jsx(Uf,{size:12}):i.jsx(oi,{size:12})})]})]}),A&&i.jsxs("div",{children:[i.jsx("label",{className:"text-2xs font-semibold text-text-2 font-sans mb-1.5 block",children:"App Token (Socket Mode)"}),i.jsx("input",{value:d,onChange:J=>O(J.target.value),onKeyDown:J=>J.key==="Enter"&&U(),type:m?"text":"password",placeholder:"xapp-...",className:"w-full h-9 px-3 text-xs bg-surface-0 border border-border rounded-md text-text-0 font-mono placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent"})]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(je,{variant:"primary",size:"sm",onClick:U,disabled:!o.trim(),className:"flex-1 h-8 text-xs",children:"Save Token"}),i.jsx(je,{variant:"ghost",size:"sm",onClick:()=>{l(!1),u(""),O("")},className:"h-8 text-xs px-3",children:"Cancel"})]})]}),!s&&i.jsxs("div",{className:"flex gap-2 mt-2",children:[!t.connected&&i.jsxs(je,{variant:"primary",size:"sm",onClick:()=>l(!0),className:"flex-1 h-7 text-2xs gap-1.5",children:[i.jsx(uc,{size:11}),t.enabled?"Set Token":"Configure"]}),t.connected&&i.jsxs(i.Fragment,{children:[i.jsxs(je,{variant:"secondary",size:"sm",onClick:C,disabled:x,className:"flex-1 h-7 text-2xs gap-1.5",children:[i.jsx(If,{size:11}),x?"Sending...":"Test"]}),i.jsx(je,{variant:"secondary",size:"sm",onClick:()=>l(!0),className:"h-7 text-2xs px-2.5",children:i.jsx(uc,{size:11})})]}),i.jsx(je,{variant:"ghost",size:"sm",onClick:X,disabled:b,className:"h-7 text-2xs px-2.5",title:t.connected?"Disconnect":"Connect",children:t.connected?i.jsx(Ab,{size:11}):i.jsx(Fg,{size:11})}),i.jsx($_,{value:t.enabled,onChange:$}),i.jsx("button",{onClick:ne,className:"text-text-4 hover:text-danger cursor-pointer p-1",title:"Remove gateway",children:i.jsx(Xc,{size:11})})]})]})]})}function X_({existingTypes:t,onAdd:n}){const[s,l]=v.useState(!1),o=["telegram","discord","slack"].filter(u=>!t.includes(u));return o.length===0?null:s?i.jsxs("div",{className:"flex flex-col rounded-lg border border-accent/30 bg-surface-1 overflow-hidden min-w-[220px]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 px-4 py-3 border-b border-border-subtle",children:[i.jsx(Wf,{size:13,className:"text-accent"}),i.jsx("span",{className:"text-[13px] font-semibold text-text-0 font-sans",children:"Add Gateway"}),i.jsx("div",{className:"flex-1"}),i.jsx("button",{onClick:()=>l(!1),className:"text-text-4 hover:text-text-1 cursor-pointer",children:i.jsx(Rt,{size:12})})]}),i.jsx("div",{className:"p-3 space-y-2",children:o.map(u=>{const d=YS[u];return i.jsxs("button",{onClick:()=>{n(u),l(!1)},className:"w-full flex items-center gap-3 px-3 py-2.5 rounded-md bg-surface-0 hover:bg-accent/8 border border-border-subtle hover:border-accent/20 cursor-pointer transition-all group",children:[i.jsx(d,{size:14,className:"text-text-3 group-hover:text-accent"}),i.jsx("span",{className:"text-xs font-medium text-text-1 group-hover:text-accent font-sans",children:Ss[u]})]},u)})})]}):i.jsxs("button",{onClick:()=>l(!0),className:"flex flex-col items-center justify-center rounded-lg border border-dashed border-border-subtle bg-surface-1/50 hover:bg-surface-1 hover:border-accent/30 min-h-[140px] min-w-[220px] cursor-pointer transition-all group",children:[i.jsx("div",{className:"w-8 h-8 rounded-full bg-accent/8 group-hover:bg-accent/15 flex items-center justify-center mb-2 transition-colors",children:i.jsx(Fn,{size:14,className:"text-accent"})}),i.jsx("span",{className:"text-2xs font-semibold text-text-3 group-hover:text-text-1 font-sans transition-colors",children:"Add Gateway"})]})}function __(){const[t,n]=v.useState([]),[s,l]=v.useState(null),[o,u]=v.useState(null),[d,O]=v.useState([]),[m,p]=v.useState(!0),[x,g]=v.useState(!1),b=D(X=>X.addToast),S=D(X=>X.marketplaceUser),Q=D(X=>X.marketplaceAuthenticated),k=D(X=>X.marketplaceLogin),T=D(X=>X.marketplaceLogout);function j(){ee.get("/providers").then(X=>n(Array.isArray(X)?X:[])).catch(()=>{})}function P(){ee.get("/gateways").then(X=>O(Array.isArray(X)?X:[])).catch(()=>{})}v.useEffect(()=>{Promise.all([ee.get("/providers"),ee.get("/config"),ee.get("/status"),ee.get("/gateways")]).then(([X,$,W,E])=>{n(Array.isArray(X)?X:[]),l($),u(W),O(Array.isArray(E)?E:[]),p(!1)}).catch(()=>p(!1))},[]);async function N(X){try{await ee.post("/gateways",{type:X}),b("success",`${Ss[X]} gateway added`),P()}catch($){b("error","Failed to add gateway",$.message)}}async function A(X,$){try{const W=await ee.patch("/config",{[X]:$});l(W)}catch(W){b("error","Update failed",W.message)}}if(m)return i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsx("div",{className:"h-12 bg-surface-1 border-b border-border"}),i.jsxs("div",{className:"flex-1 p-4 space-y-4",children:[i.jsx("div",{className:"grid grid-cols-4 gap-3",children:[...Array(4)].map((X,$)=>i.jsx(Nt,{className:"h-40 rounded-lg"},$))}),i.jsx("div",{className:"grid grid-cols-3 gap-3",children:[...Array(6)].map((X,$)=>i.jsx(Nt,{className:"h-28 rounded-lg"},$))})]})]});const U=t.filter(X=>X.authType==="local"||X.authType==="subscription"?X.installed:X.hasKey).length,C=(s==null?void 0:s.rotationThreshold)||0;return i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsxs("div",{className:"flex items-center gap-4 px-4 py-2.5 bg-surface-1 border-b border-border flex-shrink-0",children:[i.jsx("h2",{className:"text-sm font-semibold text-text-0 font-sans",children:"Settings"}),i.jsx("div",{className:"flex-1"}),i.jsxs("div",{className:"flex items-center gap-4 text-2xs text-text-3 font-sans",children:[(o==null?void 0:o.version)&&i.jsxs("span",{children:["v",o.version]}),(o==null?void 0:o.port)&&i.jsxs("span",{children:[":",o.port]}),(o==null?void 0:o.uptime)>0&&i.jsxs("span",{children:["Up ",Ac(o.uptime)]})]}),i.jsx("div",{className:"w-px h-4 bg-border-subtle"}),Q?i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx(T_,{user:S}),i.jsx("span",{className:"text-xs font-medium text-text-0 font-sans",children:(S==null?void 0:S.displayName)||"User"}),i.jsxs("button",{onClick:T,className:"text-2xs text-text-4 hover:text-text-1 cursor-pointer font-sans flex items-center gap-1",children:[i.jsx(Cb,{size:10})," Sign out"]})]}):i.jsxs(je,{variant:"ghost",size:"sm",onClick:k,className:"h-7 text-2xs gap-1.5 text-text-3",children:[i.jsx(Lf,{size:11})," Sign in"]}),i.jsx(Nl,{status:"running",size:"sm"})]}),i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"p-4 space-y-4",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center gap-2 mb-2.5 px-0.5",children:[i.jsx("span",{className:"text-2xs font-semibold text-text-3 font-sans uppercase tracking-wider",children:"Providers"}),i.jsx("div",{className:"flex-1 h-px bg-border-subtle"}),i.jsxs("span",{className:"text-2xs text-text-4 font-sans",children:[U,"/",t.length," connected"]})]}),i.jsx("div",{className:"grid grid-cols-4 gap-3",children:t.map(X=>i.jsx(P_,{provider:X,onKeyChange:j},X.id))})]}),i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center gap-2 mb-2.5 px-0.5",children:[i.jsx("span",{className:"text-2xs font-semibold text-text-3 font-sans uppercase tracking-wider",children:"Gateways"}),i.jsx("div",{className:"flex-1 h-px bg-border-subtle"}),i.jsxs("span",{className:"text-2xs text-text-4 font-sans",children:[d.filter(X=>X.connected).length,"/",d.length," connected"]})]}),i.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[d.map(X=>i.jsx(C_,{gateway:X,onRefresh:P},X.id)),i.jsx(X_,{existingTypes:d.map(X=>X.type),onAdd:N})]})]}),s&&i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center gap-2 mb-2.5 px-0.5",children:[i.jsx("span",{className:"text-2xs font-semibold text-text-3 font-sans uppercase tracking-wider",children:"Configuration"}),i.jsx("div",{className:"flex-1 h-px bg-border-subtle"}),i.jsx("span",{className:"text-2xs text-text-4 font-sans",children:"Auto-saves"})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsx(bl,{icon:Yf,label:"Default Provider",description:"Provider used when spawning new agents.",children:i.jsx("select",{value:s.defaultProvider||"claude-code",onChange:X=>A("defaultProvider",X.target.value),className:"w-full h-8 px-2.5 text-xs bg-surface-0 border border-border-subtle rounded-md text-text-0 font-mono focus:outline-none focus:ring-1 focus:ring-accent cursor-pointer",children:t.filter(X=>X.installed||X.hasKey).map(X=>i.jsx("option",{value:X.id,children:X.name},X.id))})}),i.jsx(bl,{icon:Hr,label:"Working Directory",description:"Default root directory for new agents.",children:i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("code",{className:"flex-1 h-8 px-2 flex items-center bg-surface-0 border border-border-subtle rounded-md text-2xs font-mono text-text-2 truncate min-w-0",children:s.defaultWorkingDir||"Project root"}),i.jsx(je,{variant:"secondary",size:"sm",onClick:()=>g(!0),className:"h-8 px-2 flex-shrink-0",children:i.jsx(Pb,{size:12})})]})}),i.jsx(bl,{icon:Nb,label:"Rotation Threshold",description:"Context usage that triggers auto-rotation.",children:i.jsx("div",{className:"flex bg-surface-0 rounded-md p-0.5 border border-border-subtle",children:["auto","50%","65%","75%","85%"].map(X=>{const $=X==="auto"?0:parseInt(X,10)/100,W=C===$;return i.jsx("button",{onClick:()=>A("rotationThreshold",$),className:le("flex-1 px-2 py-1.5 text-2xs font-semibold font-sans rounded transition-all cursor-pointer",W?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:X==="auto"?"Auto":X},X)})})}),i.jsx(bl,{icon:Vb,label:"QC Threshold",description:"Running agents count that triggers auto-QC.",children:i.jsx("div",{className:"flex bg-surface-0 rounded-md p-0.5 border border-border-subtle",children:[2,3,4,6,8].map(X=>{const $=(s.qcThreshold||2)===X;return i.jsx("button",{onClick:()=>A("qcThreshold",X),className:le("flex-1 px-2 py-1.5 text-2xs font-semibold font-sans rounded transition-all cursor-pointer",$?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:X},X)})})}),i.jsx(bl,{icon:Zc,label:"Max Agents",description:"Concurrent agent limit. 0 = unlimited.",children:i.jsx("div",{className:"flex bg-surface-0 rounded-md p-0.5 border border-border-subtle",children:[0,4,8,12,20].map(X=>{const $=(s.maxAgents||0)===X;return i.jsx("button",{onClick:()=>A("maxAgents",X),className:le("flex-1 px-2 py-1.5 text-2xs font-semibold font-sans rounded transition-all cursor-pointer",$?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:X===0?"∞":X},X)})})}),i.jsx(bl,{icon:Ir,label:"Journalist Interval",description:"Seconds between synthesis cycles.",children:i.jsx("div",{className:"flex bg-surface-0 rounded-md p-0.5 border border-border-subtle",children:[60,120,300,600].map(X=>{const $=(s.journalistInterval||120)===X,W=X<60?`${X}s`:`${X/60}m`;return i.jsx("button",{onClick:()=>A("journalistInterval",X),className:le("flex-1 px-2 py-1.5 text-2xs font-semibold font-sans rounded transition-all cursor-pointer",$?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:W},X)})})})]})]})]})}),i.jsx(ES,{open:x,onOpenChange:g,currentPath:(s==null?void 0:s.defaultWorkingDir)||"/",onSelect:X=>A("defaultWorkingDir",X)})]})}const Qf=[];function VS(t){const n=(t||"").toLowerCase();return n.includes("reading")||n.includes("read ")?{icon:oi,color:"text-info",label:"Reading"}:n.includes("editing")||n.includes("wrote")||n.includes("writing")||n.includes("edit ")?{icon:Tb,color:"text-warning",label:"Editing"}:n.includes("searching")||n.includes("search")||n.includes("grep")||n.includes("glob")?{icon:ql,color:"text-purple",label:"Searching"}:n.includes("running")||n.includes("bash")||n.includes("command")||n.includes("exec")?{icon:ui,color:"text-orange",label:"Running"}:n.includes("test")||n.includes("pass")?{icon:of,color:"text-success",label:"Testing"}:n.includes("error")||n.includes("fail")||n.includes("crash")?{icon:cn,color:"text-danger",label:"Error"}:n.includes("rotat")?{icon:El,color:"text-accent",label:"Rotating"}:n.includes("spawn")||n.includes("start")?{icon:Na,color:"text-success",label:"Spawned"}:n.includes("tool")||n.includes("function")?{icon:gP,color:"text-text-2",label:"Tool"}:n.includes("complet")||n.includes("done")||n.includes("finish")?{icon:of,color:"text-success",label:"Done"}:{icon:dn,color:"text-text-3",label:"Activity"}}function yl({text:t}){return t?t.split(/(\*\*[^*]+\*\*|`[^`]+`)/g).map((n,s)=>n.startsWith("**")&&n.endsWith("**")?i.jsx("strong",{className:"font-semibold text-text-0",children:n.slice(2,-2)},s):n.startsWith("`")&&n.endsWith("`")?i.jsx("code",{className:"px-1 py-px rounded bg-accent/8 text-[11px] font-mono text-accent",children:n.slice(1,-1)},s):i.jsx("span",{children:n},s)):null}function Z_({text:t}){if(!t)return null;const n=[],s=t.split(`
592
+ For more information, see https://radix-ui.com/primitives/docs/components/${n.docsSlug}`;return v.useEffect(()=>{t&&(document.getElementById(t)||console.error(s))},[s,t]),null},k_="DialogDescriptionWarning",$_=({contentRef:t,descriptionId:n})=>{const l=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${NS(k_).contentName}}.`;return v.useEffect(()=>{var u;const o=(u=t.current)==null?void 0:u.getAttribute("aria-describedby");n&&o&&(document.getElementById(n)||console.warn(l))},[l,t,n]),null},zS=xS,RS=vS,CS=yS,XS=SS,_S=jS,ZS=kS,AS=TS;function T_({children:t,...n}){return i.jsx(zS,{...n,children:t})}function P_({children:t,className:n,title:s,description:l,...o}){return i.jsxs(RS,{children:[i.jsx(CS,{className:"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"}),i.jsxs(XS,{className:le("fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2","w-full max-w-lg max-h-[85vh] overflow-y-auto","bg-surface-1 border border-border rounded-lg shadow-2xl","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",n),...o,children:[s&&i.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border-subtle",children:[i.jsx(_S,{className:"text-base font-semibold text-text-0 font-sans",children:s}),i.jsx(AS,{className:"p-1 rounded-md text-text-3 hover:text-text-0 hover:bg-surface-5 transition-colors",children:i.jsx(Rt,{size:16})})]}),l&&i.jsx(ZS,{className:"sr-only",children:l}),t]})]})}var h0={};function N_({path:t,onNavigate:n}){const s=t.split("/").filter(Boolean);return i.jsxs("div",{className:"flex items-center gap-0.5 min-w-0 overflow-x-auto py-1.5 scrollbar-none",children:[i.jsx("button",{onClick:()=>n("/"),className:"flex-shrink-0 p-1 rounded hover:bg-surface-5 cursor-pointer text-text-3 hover:text-text-0 transition-colors",children:i.jsx(zb,{size:13})}),s.map((l,o)=>{const u="/"+s.slice(0,o+1).join("/"),d=o===s.length-1;return i.jsxs("div",{className:"flex items-center gap-0.5 flex-shrink-0",children:[i.jsx(ii,{size:11,className:"text-text-4"}),i.jsx("button",{onClick:()=>n(u),className:le("px-1.5 py-0.5 rounded text-xs font-mono cursor-pointer transition-colors",d?"text-text-0 bg-surface-4 font-medium":"text-text-3 hover:text-text-0 hover:bg-surface-5"),children:l})]},o)})]})}function ES({open:t,onOpenChange:n,currentPath:s,onSelect:l}){const[o,u]=v.useState(s||h0.HOME||"/"),[d,O]=v.useState([]),[m,p]=v.useState(!1),[x,g]=v.useState(null);v.useEffect(()=>{t&&b(s||"/")},[t]);async function b(T){p(!0),g(null);try{const j=await ee.get(`/browse-system?path=${encodeURIComponent(T)}`);u(j.current||T),O(j.dirs||[])}catch(j){g(j.message),O([])}p(!1)}function S(){const T=o==="/"?"/":o.split("/").slice(0,-1).join("/")||"/";b(T)}function Q(){b(h0.HOME||"/Users")}function k(){l(o),n(!1)}return i.jsx(T_,{open:t,onOpenChange:n,children:i.jsx(P_,{title:"Select Working Directory",description:"Choose a directory for this agent to work in",className:"max-w-[520px]",children:i.jsxs("div",{className:"px-5 py-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("button",{onClick:S,disabled:o==="/",className:"p-1.5 rounded-md bg-surface-4 border border-border text-text-2 hover:text-text-0 hover:bg-surface-5 transition-colors cursor-pointer disabled:opacity-30 disabled:cursor-not-allowed",children:i.jsx(p5,{size:14})}),i.jsx("button",{onClick:Q,className:"p-1.5 rounded-md bg-surface-4 border border-border text-text-2 hover:text-text-0 hover:bg-surface-5 transition-colors cursor-pointer",children:i.jsx(mT,{size:14})}),i.jsx("div",{className:"flex-1 min-w-0 bg-surface-0 rounded-md border border-border-subtle px-2",children:i.jsx(N_,{path:o,onNavigate:b})})]}),i.jsx("div",{className:"bg-surface-0 rounded-lg border border-border-subtle overflow-hidden",children:i.jsxs("div",{className:"max-h-[340px] overflow-y-auto",children:[m&&i.jsx("div",{className:"flex items-center justify-center py-8",children:i.jsx(Gf,{size:18,className:"text-text-3 animate-spin"})}),x&&i.jsx("div",{className:"px-4 py-6 text-center",children:i.jsx("p",{className:"text-xs text-danger font-sans",children:x})}),!m&&!x&&d.length===0&&i.jsx("div",{className:"px-4 py-6 text-center",children:i.jsx("p",{className:"text-xs text-text-3 font-sans",children:"No subdirectories"})}),!m&&!x&&d.map(T=>i.jsxs("button",{onClick:()=>b(T.path),className:le("w-full flex items-center gap-2.5 px-3.5 py-2 text-left cursor-pointer","hover:bg-surface-4 transition-colors border-b border-border-subtle last:border-0"),children:[T.hasChildren?i.jsx(aT,{size:15,className:"text-warning flex-shrink-0"}):i.jsx(Hr,{size:15,className:"text-text-3 flex-shrink-0"}),i.jsx("span",{className:"text-sm text-text-0 font-sans truncate flex-1",children:T.name}),T.hasChildren&&i.jsx(ii,{size:12,className:"text-text-4 flex-shrink-0"})]},T.path))]})}),i.jsxs("div",{className:"flex items-center gap-3 bg-surface-4/50 rounded-lg px-3.5 py-2.5 border border-border-subtle",children:[i.jsx(Hr,{size:16,className:"text-accent flex-shrink-0"}),i.jsx("span",{className:"text-xs font-mono text-text-1 truncate flex-1",children:o})]}),i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(je,{variant:"ghost",size:"md",onClick:()=>n(!1),children:"Cancel"}),i.jsxs(je,{variant:"primary",size:"md",onClick:k,className:"gap-1.5",children:[i.jsx(oa,{size:14})," Select Folder"]})]})]})})})}function qS({children:t,...n}){return i.jsx(zS,{...n,children:t})}function MS({children:t,className:n,title:s,side:l="right",width:o=400,...u}){return i.jsxs(RS,{children:[i.jsx(CS,{className:"fixed inset-0 z-40 bg-black/30"}),i.jsxs(XS,{className:le("fixed top-0 z-50 h-full overflow-y-auto","bg-surface-1 border-l border-border shadow-2xl","data-[state=open]:animate-in data-[state=closed]:animate-out",l==="right"&&"right-0 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right",l==="left"&&"left-0 data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left",n),style:{width:o},...u,children:[s&&i.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border-subtle sticky top-0 bg-surface-1 z-10",children:[i.jsx(_S,{className:"text-base font-semibold text-text-0 font-sans",children:s}),i.jsx(AS,{className:"p-1 rounded-md text-text-3 hover:text-text-0 hover:bg-surface-5 transition-colors cursor-pointer",children:i.jsx(Rt,{size:16})})]}),i.jsx(ZS,{className:"sr-only",children:"Panel"}),t]})]})}function z_({value:t,onChange:n}){return i.jsx("button",{onClick:()=>n(!t),className:le("w-9 h-5 rounded-full p-0.5 transition-colors cursor-pointer",t?"bg-accent":"bg-surface-5"),children:i.jsx("div",{className:le("w-4 h-4 rounded-full bg-white shadow-sm transition-transform",t?"translate-x-4":"translate-x-0")})})}function R_({user:t}){const[n,s]=v.useState(!1),l=(t==null?void 0:t.avatar)||(t==null?void 0:t.picture)||(t==null?void 0:t.photoURL)||(t==null?void 0:t.photo);return l&&!n?i.jsx("img",{src:l,alt:"",className:"w-6 h-6 rounded-full",referrerPolicy:"no-referrer",crossOrigin:"anonymous",onError:()=>s(!0)}):i.jsx("div",{className:"w-6 h-6 rounded-full bg-accent/10 flex items-center justify-center",children:i.jsx(Lb,{size:12,className:"text-accent"})})}function C_({provider:t,onKeyChange:n}){var T,j;const[s,l]=v.useState(!1),[o,u]=v.useState(""),[d,O]=v.useState(!1),[m,p]=v.useState(!1),x=D(P=>P.addToast),g=t.authType==="local",b=t.authType==="subscription",S=g||b?t.installed:t.hasKey;async function Q(){if(o.trim())try{await ee.post(`/credentials/${t.id}`,{key:o.trim()}),x("success",`API key set for ${t.name}`),u(""),l(!1),n&&n()}catch(P){x("error","Failed to set key",P.message)}}async function k(){try{await ee.delete(`/credentials/${t.id}`),x("info",`Removed ${t.name} key`),n&&n()}catch(P){x("error","Remove failed",P.message)}}return g?i.jsxs("div",{className:"flex flex-col rounded-lg border border-border-subtle bg-surface-1 overflow-hidden min-w-[220px]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 px-4 py-3 border-b border-border-subtle",children:[i.jsx(Nl,{status:S?"running":"crashed",size:"sm"}),i.jsx("span",{className:"text-[13px] font-semibold text-text-0 font-sans",children:t.name}),i.jsx("div",{className:"flex-1"}),S?i.jsxs(We,{variant:"success",className:"text-2xs gap-1",children:[i.jsx(oa,{size:8})," Ready"]}):i.jsx(We,{variant:"default",className:"text-2xs",children:"Not installed"})]}),i.jsx("div",{className:"flex-1",children:m?i.jsx(sS,{isInstalled:S,onModelChange:n}):i.jsxs("div",{className:"px-4 py-3 flex flex-col h-full",children:[i.jsx("div",{className:"text-xs text-text-3 font-sans flex-1",children:S?`${((T=t.models)==null?void 0:T.length)||0} models available`:"Local AI models — free, private, no API key"}),i.jsxs(je,{variant:S?"secondary":"primary",size:"sm",onClick:()=>p(!0),className:"w-full h-7 text-2xs gap-1.5 mt-3",children:[i.jsx(Yf,{size:11}),S?"Manage Models":"Set Up Ollama"]})]})})]}):i.jsxs("div",{className:"flex flex-col rounded-lg border border-border-subtle bg-surface-1 overflow-hidden min-w-[220px]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 px-4 py-3 border-b border-border-subtle",children:[i.jsx(Nl,{status:S?"running":"crashed",size:"sm"}),i.jsx("span",{className:"text-[13px] font-semibold text-text-0 font-sans",children:t.name}),i.jsx("div",{className:"flex-1"}),S?i.jsxs(We,{variant:"success",className:"text-2xs gap-1",children:[i.jsx(oa,{size:8})," Ready"]}):i.jsx(We,{variant:"default",className:"text-2xs",children:b?"Not installed":"No key"})]}),i.jsxs("div",{className:"flex-1 flex flex-col px-4 py-3 min-h-[120px]",children:[((j=t.models)==null?void 0:j.length)>0&&i.jsx("div",{className:"flex flex-wrap gap-1 mb-3",children:t.models.map(P=>i.jsx("span",{className:"px-1.5 py-0.5 rounded bg-surface-4 text-2xs font-mono text-text-3",children:P.name||P.id},P.id))}),b&&S&&!t.hasKey&&!s&&i.jsxs("div",{className:"flex items-center gap-1.5 h-8 px-2.5 bg-accent/8 border border-accent/20 rounded-md text-2xs font-sans text-accent mb-3",children:[i.jsx(oa,{size:10})," Subscription active"]}),t.hasKey&&!s&&i.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[i.jsxs("div",{className:"flex-1 flex items-center gap-1.5 h-8 px-2.5 bg-success/8 border border-success/20 rounded-md text-2xs font-sans text-success",children:[i.jsx(oa,{size:10})," API Connected"]}),i.jsx("button",{onClick:()=>{l(!0),O(!1),u("")},className:"text-2xs text-text-4 hover:text-accent cursor-pointer font-sans",children:"Edit"}),i.jsx("button",{onClick:k,className:"text-2xs text-text-4 hover:text-danger cursor-pointer font-sans",children:"Remove"})]}),i.jsx("div",{className:"flex-1"}),s&&i.jsxs("div",{className:"space-y-2.5 pt-1",children:[i.jsxs("div",{children:[i.jsx("label",{className:"text-2xs font-semibold text-text-2 font-sans mb-1.5 block",children:t.hasKey?"Update API Key":`${t.name} API Key`}),i.jsxs("div",{className:"relative",children:[i.jsx("input",{value:o,onChange:P=>u(P.target.value),onKeyDown:P=>P.key==="Enter"&&Q(),type:d?"text":"password",placeholder:"sk-...",className:"w-full h-9 px-3 pr-9 text-xs bg-surface-0 border border-border rounded-md text-text-0 font-mono placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent",autoFocus:!0}),i.jsx("button",{onClick:()=>O(!d),className:"absolute right-2.5 top-1/2 -translate-y-1/2 text-text-4 hover:text-text-2 cursor-pointer",children:d?i.jsx(Uf,{size:12}):i.jsx(oi,{size:12})})]})]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(je,{variant:"primary",size:"sm",onClick:Q,disabled:!o.trim(),className:"flex-1 h-8 text-xs",children:"Save Key"}),i.jsx(je,{variant:"ghost",size:"sm",onClick:()=>{l(!1),u("")},className:"h-8 text-xs px-3",children:"Cancel"})]})]}),!s&&!t.hasKey&&i.jsxs(je,{variant:b?"secondary":"primary",size:"sm",onClick:()=>{l(!0),O(!1),u("")},className:"w-full h-8 text-2xs gap-1.5 mt-2",children:[i.jsx(uc,{size:11}),b?"Add API key for headless mode":"Add API Key"]})]})]})}function bl({icon:t,label:n,description:s,children:l}){return i.jsxs("div",{className:"rounded-lg border border-border-subtle bg-surface-1 px-4 py-3.5 flex flex-col gap-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("div",{className:"w-6 h-6 rounded bg-accent/8 flex items-center justify-center flex-shrink-0",children:i.jsx(t,{size:12,className:"text-accent"})}),i.jsx("div",{className:"text-[13px] font-medium text-text-0 font-sans leading-tight",children:n})]}),i.jsx("div",{className:"text-2xs text-text-4 font-sans leading-relaxed",children:s}),i.jsx("div",{className:"mt-auto pt-1",children:l})]})}const YS={telegram:Bf,discord:ci,slack:Xb},Ss={telegram:"Telegram",discord:"Discord",slack:"Slack"},X_={telegram:"Bot token from @BotFather",discord:"Bot token from Developer Portal",slack:"Bot token (xoxb-...)"},__=["critical","lifecycle","all"];function Z_({type:t,open:n,onOpenChange:s}){if(!t)return null;const o={telegram:{title:"Set Up Telegram",icon:Bf,intro:"Create a Telegram bot and connect it to Groove in under 2 minutes. No dependencies required.",sections:[{title:"Create Your Bot",steps:[{text:"Open Telegram on any device and search for",link:"https://t.me/BotFather",linkText:"@BotFather"},{text:"Send /newbot to start the setup"},{text:"Choose a display name — we suggest GroovePilot"},{text:'Choose a username (must end in "bot") — e.g. GroovePilot_bot'},{text:"BotFather will reply with your bot token — copy it"}]},{title:"Connect to Groove",steps:[{text:"In Groove Settings > Gateways, click Set Token on the Telegram card"},{text:"Paste your bot token and click Save"},{text:"The gateway will connect automatically"}]},{title:"Link a Chat",steps:[{text:"Open a chat with your new bot in Telegram"},{text:'Send any message (e.g. "hello") — Groove captures the chat ID automatically'},{text:"Click Test in the gateway card to verify"}]},{title:"Commands",note:"All commands use / prefix in Telegram:",commands:["/instruct <team> <msg>","/query <team> <question>","/plan <description>","/log <team>","/brief","/tokens","/status","/agents","/help"]}]},discord:{title:"Set Up Discord",icon:ci,intro:"Create a Discord bot and add it to your server. Requires discord.js (installed automatically with Groove).",sections:[{title:"Create the Application",steps:[{text:"Go to the",link:"https://discord.com/developers/applications",linkText:"Discord Developer Portal"},{text:"Click New Application and name it GroovePilot"},{text:"Go to the Bot tab in the left sidebar"},{text:"Click Reset Token and copy the bot token"}]},{title:"Set Permissions & Invite",steps:[{text:"Go to OAuth2 > URL Generator"},{text:"Under Scopes, check bot"},{text:"Under Bot Permissions, check:"}],scopes:["Send Messages","Read Message History","Embed Links","Use External Emojis"],after:[{text:"Copy the generated URL at the bottom and open it in your browser"},{text:"Select your server and click Authorize"}]},{title:"Enable Message Content Intent",steps:[{text:"Go back to the Bot tab in the Developer Portal"},{text:"Scroll to Privileged Gateway Intents"},{text:"Enable Message Content Intent — required for the bot to read commands"},{text:"Click Save Changes"}]},{title:"Connect to Groove",steps:[{text:"In Groove Settings > Gateways, click Set Token on the Discord card"},{text:"Paste your bot token and click Save"},{text:"Send a message in any channel where the bot is — Groove captures the channel automatically"}]},{title:"Commands",note:"All commands use / prefix in Discord:",commands:["/instruct <team> <msg>","/query <team> <question>","/plan <description>","/log <team>","/brief","/tokens","/status","/agents","/help"]}]},slack:{title:"Set Up Slack",icon:Xb,intro:"Create a Slack app with Socket Mode — no public URL needed. Requires @slack/bolt (installed automatically with Groove).",sections:[{title:"Create the App",steps:[{text:"Go to",link:"https://api.slack.com/apps",linkText:"api.slack.com/apps"},{text:"Click Create New App > From scratch"},{text:"Name it GroovePilot and select your workspace"}]},{title:"Enable Socket Mode",steps:[{text:"In the left sidebar, go to Settings > Socket Mode"},{text:"Toggle Enable Socket Mode to on"},{text:"It will ask you to create an App-Level Token"},{text:'Name it "groove", add the connections:write scope'},{text:"Click Generate — copy the xapp-... token (this is your App Token)"}],important:"Save this token now — you can't view it again after closing the dialog."},{title:"Set Bot Token Scopes",steps:[{text:"Go to Features > OAuth & Permissions"},{text:"Scroll to Bot Token Scopes and add all of these:"}],scopes:["chat:write","channels:read","channels:history","groups:read","groups:history","im:history","app_mentions:read"],after:[{text:"Scroll up and click Install to Workspace"},{text:"Click Allow to grant permissions"},{text:"Copy the Bot User OAuth Token (xoxb-...) — this is your Bot Token"}]},{title:"Enable Events",steps:[{text:"Go to Features > Event Subscriptions"},{text:"Toggle Enable Events to on"},{text:"Under Subscribe to bot events, add:"}],scopes:["message.channels","message.im","app_mention"],after:[{text:"Click Save Changes at the bottom"}]},{title:"Connect to Groove",steps:[{text:"In Groove Settings > Gateways, click Set Token on the Slack card"},{text:"Paste your Bot Token (xoxb-...) in the first field"},{text:"Paste your App Token (xapp-...) in the second field"},{text:"Click Save — Groove will auto-connect"}]},{title:"Link a Channel",steps:[{text:"Invite the bot to a channel: /invite @GroovePilot"},{text:"Select the channel from the dropdown in the gateway card"},{text:"Or @mention the bot — it will auto-capture the channel"},{text:"Click Test to verify"}],important:"For private channels, make sure you added the groups:read scope."},{title:"Commands",note:"In Slack, use plain text commands (no / prefix) or @mention the bot:",commands:["instruct <team> <msg>","query <team> <question>","plan <description>","log <team>","brief","tokens","status","agents","help","@GroovePilot status"]}]}}[t];if(!o)return null;const u=o.icon;return i.jsx(qS,{open:n,onOpenChange:s,children:i.jsx(MS,{title:o.title,width:480,children:i.jsxs("div",{className:"px-5 py-4 space-y-5",children:[i.jsxs("div",{className:"flex items-start gap-3 p-3 bg-accent/5 border border-accent/15 rounded-lg",children:[i.jsx("div",{className:"w-8 h-8 rounded-lg bg-accent/10 flex items-center justify-center flex-shrink-0 mt-0.5",children:i.jsx(u,{size:16,className:"text-accent"})}),i.jsx("p",{className:"text-xs text-text-2 font-sans leading-relaxed",children:o.intro})]}),o.sections.map((d,O)=>{var m;return i.jsxs("div",{children:[i.jsxs("h3",{className:"text-xs font-semibold text-text-0 font-sans mb-2.5 flex items-center gap-2",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-accent/10 flex items-center justify-center text-2xs font-bold text-accent",children:O+1}),d.title]}),d.note&&i.jsx("p",{className:"text-2xs text-text-3 font-sans mb-2",children:d.note}),d.steps&&i.jsx("ol",{className:"space-y-2 mb-2",children:d.steps.map((p,x)=>i.jsxs("li",{className:"flex gap-2 text-2xs text-text-2 font-sans leading-relaxed",children:[i.jsxs("span",{className:"text-text-4 font-mono w-4 flex-shrink-0 pt-px",children:[x+1,"."]}),i.jsxs("span",{children:[p.text,p.link&&i.jsxs(i.Fragment,{children:[" ",i.jsxs("a",{href:p.link,target:"_blank",rel:"noopener noreferrer",className:"text-accent hover:underline inline-flex items-center gap-0.5 font-medium",children:[p.linkText,i.jsx(cc,{size:9})]})]})]})]},x))}),d.scopes&&i.jsx("div",{className:"flex flex-wrap gap-1.5 mb-2 ml-6",children:d.scopes.map(p=>i.jsx("code",{className:"px-2 py-0.5 rounded bg-surface-4 text-2xs font-mono text-accent",children:p},p))}),d.after&&i.jsx("ol",{className:"space-y-2 mb-2",start:(((m=d.steps)==null?void 0:m.length)||0)+1,children:d.after.map((p,x)=>{var g;return i.jsxs("li",{className:"flex gap-2 text-2xs text-text-2 font-sans leading-relaxed",children:[i.jsxs("span",{className:"text-text-4 font-mono w-4 flex-shrink-0 pt-px",children:[(((g=d.steps)==null?void 0:g.length)||0)+x+1,"."]}),i.jsx("span",{children:p.text})]},x)})}),d.important&&i.jsx("div",{className:"ml-6 p-2 bg-warning/8 border border-warning/20 rounded-md text-2xs text-warning font-sans",children:d.important}),d.commands&&i.jsx("div",{className:"ml-6 p-2.5 bg-surface-0 border border-border-subtle rounded-md space-y-1",children:d.commands.map(p=>i.jsx("code",{className:"block text-2xs font-mono text-text-1",children:p},p))})]},O)}),i.jsxs("a",{href:"https://docs.groovedev.ai/guide/gateways",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1.5 text-2xs text-accent hover:text-accent/80 font-sans font-medium mt-2",children:[i.jsx(cc,{size:10}),"Full documentation at docs.groovedev.ai"]})]})})})}function A_({gateway:t,onRefresh:n}){var xe,ie;const[s,l]=v.useState(!1),[o,u]=v.useState(""),[d,O]=v.useState(""),[m,p]=v.useState(!1),[x,g]=v.useState(!1),[b,S]=v.useState(!1),[Q,k]=v.useState([]),[T,j]=v.useState(!1),P=D(J=>J.addToast);v.useEffect(()=>{t.connected&&!t.chatId&&t.type==="slack"&&ee.get(`/gateways/${t.id}/channels`).then(J=>k(Array.isArray(J)?J:[])).catch(()=>{})},[t.connected,t.chatId,t.id,t.type]);const N=YS[t.type]||Wf,A=t.type==="slack";async function U(){if(o.trim())try{await ee.post(`/gateways/${t.id}/credentials`,{key:"bot_token",value:o.trim()}),A&&d.trim()&&await ee.post(`/gateways/${t.id}/credentials`,{key:"app_token",value:d.trim()}),P("success","Token saved — connecting..."),u(""),O(""),l(!1);try{await ee.post(`/gateways/${t.id}/connect`),P("success",`${Ss[t.type]} connected!`)}catch(J){P("error","Token saved but connect failed",J.message)}n()}catch(J){P("error","Failed to save token",J.message)}}async function C(){g(!0);try{await ee.post(`/gateways/${t.id}/test`),P("success","Test message sent!")}catch(J){P("error","Test failed",J.message)}g(!1)}async function X(){S(!0);try{t.connected?(await ee.post(`/gateways/${t.id}/disconnect`),P("info",`${Ss[t.type]} disconnected`)):(await ee.post(`/gateways/${t.id}/connect`),P("success",`${Ss[t.type]} connected!`)),n()}catch(J){P("error",t.connected?"Disconnect failed":"Connect failed",J.message)}S(!1)}async function $(J){try{await ee.patch(`/gateways/${t.id}`,{enabled:J}),n()}catch(z){P("error","Update failed",z.message)}}async function W(J){try{await ee.patch(`/gateways/${t.id}`,{notifications:{preset:J}}),n()}catch(z){P("error","Update failed",z.message)}}async function E(J){try{await ee.patch(`/gateways/${t.id}`,{commandPermission:J}),n()}catch(z){P("error","Update failed",z.message)}}async function ne(){try{await ee.delete(`/gateways/${t.id}`),P("info",`${Ss[t.type]} gateway removed`),n()}catch(J){P("error","Delete failed",J.message)}}const re=((xe=t.notifications)==null?void 0:xe.preset)||"critical";return i.jsxs("div",{className:"flex flex-col rounded-lg border border-border-subtle bg-surface-1 overflow-hidden min-w-[220px]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 px-4 py-3 border-b border-border-subtle",children:[i.jsx(Nl,{status:t.connected?"running":"crashed",size:"sm"}),i.jsx(N,{size:13,className:"text-text-2"}),i.jsx("span",{className:"text-[13px] font-semibold text-text-0 font-sans",children:Ss[t.type]}),i.jsx("div",{className:"flex-1"}),t.connected?i.jsxs(We,{variant:"success",className:"text-2xs gap-1",children:[i.jsx(Fg,{size:8})," Connected"]}):t.enabled?i.jsx(We,{variant:"warning",className:"text-2xs",children:"Disconnected"}):i.jsx(We,{variant:"default",className:"text-2xs",children:"Disabled"})]}),i.jsxs("div",{className:"flex-1 flex flex-col px-4 py-3 min-h-[140px]",children:[t.connected&&!s&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center gap-1.5 h-8 px-2.5 bg-success/8 border border-success/20 rounded-md text-2xs font-sans text-success mb-3",children:[i.jsx(oa,{size:10})," Gateway active",t.botUsername&&i.jsxs("span",{className:"text-text-4 ml-1",children:["@",t.botUsername]}),t.botTag&&i.jsx("span",{className:"text-text-4 ml-1",children:t.botTag})]}),i.jsxs("div",{className:"mb-3",children:[i.jsx("label",{className:"text-2xs font-semibold text-text-3 font-sans mb-1.5 block",children:t.type==="slack"?"Channel":"Chat ID"}),t.chatId?i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("code",{className:"flex-1 flex items-center h-7 px-2 bg-surface-0 border border-border-subtle rounded-md text-2xs font-mono text-text-2",children:t.type==="slack"&&Q.length>0?`#${((ie=Q.find(J=>J.id===t.chatId))==null?void 0:ie.name)||t.chatId}`:t.chatId}),i.jsx("button",{onClick:async()=>{try{await ee.patch(`/gateways/${t.id}`,{chatId:null}),n()}catch(J){P("error","Failed",J.message)}},className:"text-2xs text-text-4 hover:text-text-1 cursor-pointer font-sans",children:"Change"})]}):t.type==="slack"&&Q.length>0?i.jsxs("select",{onChange:async J=>{if(J.target.value)try{await ee.patch(`/gateways/${t.id}`,{chatId:J.target.value}),n()}catch(z){P("error","Failed to set channel",z.message)}},className:"w-full h-7 px-2 text-2xs bg-surface-0 border border-border-subtle rounded-md text-text-0 font-sans focus:outline-none focus:ring-1 focus:ring-accent cursor-pointer",defaultValue:"",children:[i.jsx("option",{value:"",disabled:!0,children:"Select a channel..."}),Q.map(J=>i.jsxs("option",{value:J.id,children:["#",J.name]},J.id))]}):i.jsxs("div",{className:"text-2xs text-warning font-sans",children:[t.type==="slack"?"No channels found — invite the bot to a channel first.":"Send a message to the bot to auto-capture, or enter manually:",i.jsx("input",{placeholder:t.type==="slack"?"C0123456789":"Chat ID",className:"mt-1 w-full h-7 px-2 text-2xs bg-surface-0 border border-border rounded-md text-text-0 font-mono placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent",onKeyDown:async J=>{if(J.key==="Enter"&&J.target.value.trim())try{await ee.patch(`/gateways/${t.id}`,{chatId:J.target.value.trim()}),n()}catch(z){P("error","Failed to set channel",z.message)}}})]})]}),i.jsxs("div",{className:"mb-3",children:[i.jsx("label",{className:"text-2xs font-semibold text-text-3 font-sans mb-1.5 block",children:"Notifications"}),i.jsx("div",{className:"flex bg-surface-0 rounded-md p-0.5 border border-border-subtle",children:__.map(J=>i.jsx("button",{onClick:()=>W(J),className:le("flex-1 px-2 py-1.5 text-2xs font-semibold font-sans rounded transition-all cursor-pointer capitalize",re===J?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:J},J))})]}),i.jsxs("div",{className:"mb-3",children:[i.jsx("label",{className:"text-2xs font-semibold text-text-3 font-sans mb-1.5 block",children:"Commands"}),i.jsx("div",{className:"flex bg-surface-0 rounded-md p-0.5 border border-border-subtle",children:["full","read-only"].map(J=>i.jsx("button",{onClick:()=>E(J),className:le("flex-1 px-2 py-1.5 text-2xs font-semibold font-sans rounded transition-all cursor-pointer capitalize",(t.commandPermission||"full")===J?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:J==="full"?"Full Access":"Read Only"},J))})]})]}),!t.connected&&!s&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"text-xs text-text-3 font-sans mb-2",children:t.enabled?t.hasCredentials?"Tokens saved — click Connect.":"Configure bot token to connect.":"Gateway is disabled."}),!t.hasCredentials&&i.jsxs("button",{onClick:()=>j(!0),className:"flex items-center gap-1.5 text-2xs text-accent hover:text-accent/80 font-sans font-medium cursor-pointer mb-2",children:[i.jsx(ic,{size:11}),"How to set up",i.jsx(cc,{size:9})]})]}),i.jsx(Z_,{type:t.type,open:T,onOpenChange:j}),i.jsx("div",{className:"flex-1"}),s&&i.jsxs("div",{className:"space-y-2.5 pt-1",children:[i.jsxs("button",{onClick:()=>j(!0),className:"flex items-center gap-1.5 text-2xs text-accent hover:text-accent/80 font-sans font-medium cursor-pointer",children:[i.jsx(ic,{size:11}),"Where do I get these?"]}),i.jsxs("div",{children:[i.jsx("label",{className:"text-2xs font-semibold text-text-2 font-sans mb-1.5 block",children:"Bot Token"}),i.jsxs("div",{className:"relative",children:[i.jsx("input",{value:o,onChange:J=>u(J.target.value),onKeyDown:J=>J.key==="Enter"&&!A&&U(),type:m?"text":"password",placeholder:X_[t.type],className:"w-full h-9 px-3 pr-9 text-xs bg-surface-0 border border-border rounded-md text-text-0 font-mono placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent",autoFocus:!0}),i.jsx("button",{onClick:()=>p(!m),className:"absolute right-2.5 top-1/2 -translate-y-1/2 text-text-4 hover:text-text-2 cursor-pointer",children:m?i.jsx(Uf,{size:12}):i.jsx(oi,{size:12})})]})]}),A&&i.jsxs("div",{children:[i.jsx("label",{className:"text-2xs font-semibold text-text-2 font-sans mb-1.5 block",children:"App Token (Socket Mode)"}),i.jsx("input",{value:d,onChange:J=>O(J.target.value),onKeyDown:J=>J.key==="Enter"&&U(),type:m?"text":"password",placeholder:"xapp-...",className:"w-full h-9 px-3 text-xs bg-surface-0 border border-border rounded-md text-text-0 font-mono placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent"})]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(je,{variant:"primary",size:"sm",onClick:U,disabled:!o.trim(),className:"flex-1 h-8 text-xs",children:"Save Token"}),i.jsx(je,{variant:"ghost",size:"sm",onClick:()=>{l(!1),u(""),O("")},className:"h-8 text-xs px-3",children:"Cancel"})]})]}),!s&&i.jsxs("div",{className:"flex gap-2 mt-2",children:[!t.connected&&i.jsxs(je,{variant:"primary",size:"sm",onClick:()=>l(!0),className:"flex-1 h-7 text-2xs gap-1.5",children:[i.jsx(uc,{size:11}),t.enabled?"Set Token":"Configure"]}),t.connected&&i.jsxs(i.Fragment,{children:[i.jsxs(je,{variant:"secondary",size:"sm",onClick:C,disabled:x,className:"flex-1 h-7 text-2xs gap-1.5",children:[i.jsx(If,{size:11}),x?"Sending...":"Test"]}),i.jsx(je,{variant:"secondary",size:"sm",onClick:()=>l(!0),className:"h-7 text-2xs px-2.5",children:i.jsx(uc,{size:11})})]}),i.jsx(je,{variant:"ghost",size:"sm",onClick:X,disabled:b,className:"h-7 text-2xs px-2.5",title:t.connected?"Disconnect":"Connect",children:t.connected?i.jsx(Ab,{size:11}):i.jsx(Fg,{size:11})}),i.jsx(z_,{value:t.enabled,onChange:$}),i.jsx("button",{onClick:ne,className:"text-text-4 hover:text-danger cursor-pointer p-1",title:"Remove gateway",children:i.jsx(Xc,{size:11})})]})]})]})}function E_({existingTypes:t,onAdd:n}){const[s,l]=v.useState(!1),o=["telegram","discord","slack"].filter(u=>!t.includes(u));return o.length===0?null:s?i.jsxs("div",{className:"flex flex-col rounded-lg border border-accent/30 bg-surface-1 overflow-hidden min-w-[220px]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 px-4 py-3 border-b border-border-subtle",children:[i.jsx(Wf,{size:13,className:"text-accent"}),i.jsx("span",{className:"text-[13px] font-semibold text-text-0 font-sans",children:"Add Gateway"}),i.jsx("div",{className:"flex-1"}),i.jsx("button",{onClick:()=>l(!1),className:"text-text-4 hover:text-text-1 cursor-pointer",children:i.jsx(Rt,{size:12})})]}),i.jsx("div",{className:"p-3 space-y-2",children:o.map(u=>{const d=YS[u];return i.jsxs("button",{onClick:()=>{n(u),l(!1)},className:"w-full flex items-center gap-3 px-3 py-2.5 rounded-md bg-surface-0 hover:bg-accent/8 border border-border-subtle hover:border-accent/20 cursor-pointer transition-all group",children:[i.jsx(d,{size:14,className:"text-text-3 group-hover:text-accent"}),i.jsx("span",{className:"text-xs font-medium text-text-1 group-hover:text-accent font-sans",children:Ss[u]})]},u)})})]}):i.jsxs("button",{onClick:()=>l(!0),className:"flex flex-col items-center justify-center rounded-lg border border-dashed border-border-subtle bg-surface-1/50 hover:bg-surface-1 hover:border-accent/30 min-h-[140px] min-w-[220px] cursor-pointer transition-all group",children:[i.jsx("div",{className:"w-8 h-8 rounded-full bg-accent/8 group-hover:bg-accent/15 flex items-center justify-center mb-2 transition-colors",children:i.jsx(Fn,{size:14,className:"text-accent"})}),i.jsx("span",{className:"text-2xs font-semibold text-text-3 group-hover:text-text-1 font-sans transition-colors",children:"Add Gateway"})]})}function q_(){const[t,n]=v.useState([]),[s,l]=v.useState(null),[o,u]=v.useState(null),[d,O]=v.useState([]),[m,p]=v.useState(!0),[x,g]=v.useState(!1),b=D(X=>X.addToast),S=D(X=>X.marketplaceUser),Q=D(X=>X.marketplaceAuthenticated),k=D(X=>X.marketplaceLogin),T=D(X=>X.marketplaceLogout);function j(){ee.get("/providers").then(X=>n(Array.isArray(X)?X:[])).catch(()=>{})}function P(){ee.get("/gateways").then(X=>O(Array.isArray(X)?X:[])).catch(()=>{})}v.useEffect(()=>{Promise.all([ee.get("/providers"),ee.get("/config"),ee.get("/status"),ee.get("/gateways")]).then(([X,$,W,E])=>{n(Array.isArray(X)?X:[]),l($),u(W),O(Array.isArray(E)?E:[]),p(!1)}).catch(()=>p(!1))},[]);async function N(X){try{await ee.post("/gateways",{type:X}),b("success",`${Ss[X]} gateway added`),P()}catch($){b("error","Failed to add gateway",$.message)}}async function A(X,$){try{const W=await ee.patch("/config",{[X]:$});l(W)}catch(W){b("error","Update failed",W.message)}}if(m)return i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsx("div",{className:"h-12 bg-surface-1 border-b border-border"}),i.jsxs("div",{className:"flex-1 p-4 space-y-4",children:[i.jsx("div",{className:"grid grid-cols-4 gap-3",children:[...Array(4)].map((X,$)=>i.jsx(Nt,{className:"h-40 rounded-lg"},$))}),i.jsx("div",{className:"grid grid-cols-3 gap-3",children:[...Array(6)].map((X,$)=>i.jsx(Nt,{className:"h-28 rounded-lg"},$))})]})]});const U=t.filter(X=>X.authType==="local"||X.authType==="subscription"?X.installed:X.hasKey).length,C=(s==null?void 0:s.rotationThreshold)||0;return i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsxs("div",{className:"flex items-center gap-4 px-4 py-2.5 bg-surface-1 border-b border-border flex-shrink-0",children:[i.jsx("h2",{className:"text-sm font-semibold text-text-0 font-sans",children:"Settings"}),i.jsx("div",{className:"flex-1"}),i.jsxs("div",{className:"flex items-center gap-4 text-2xs text-text-3 font-sans",children:[(o==null?void 0:o.version)&&i.jsxs("span",{children:["v",o.version]}),(o==null?void 0:o.port)&&i.jsxs("span",{children:[":",o.port]}),(o==null?void 0:o.uptime)>0&&i.jsxs("span",{children:["Up ",Ac(o.uptime)]})]}),i.jsx("div",{className:"w-px h-4 bg-border-subtle"}),Q?i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx(R_,{user:S}),i.jsx("span",{className:"text-xs font-medium text-text-0 font-sans",children:(S==null?void 0:S.displayName)||"User"}),i.jsxs("button",{onClick:T,className:"text-2xs text-text-4 hover:text-text-1 cursor-pointer font-sans flex items-center gap-1",children:[i.jsx(Cb,{size:10})," Sign out"]})]}):i.jsxs(je,{variant:"ghost",size:"sm",onClick:k,className:"h-7 text-2xs gap-1.5 text-text-3",children:[i.jsx(Lf,{size:11})," Sign in"]}),i.jsx(Nl,{status:"running",size:"sm"})]}),i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"p-4 space-y-4",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center gap-2 mb-2.5 px-0.5",children:[i.jsx("span",{className:"text-2xs font-semibold text-text-3 font-sans uppercase tracking-wider",children:"Providers"}),i.jsx("div",{className:"flex-1 h-px bg-border-subtle"}),i.jsxs("span",{className:"text-2xs text-text-4 font-sans",children:[U,"/",t.length," connected"]})]}),i.jsx("div",{className:"grid grid-cols-4 gap-3",children:t.map(X=>i.jsx(C_,{provider:X,onKeyChange:j},X.id))})]}),i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center gap-2 mb-2.5 px-0.5",children:[i.jsx("span",{className:"text-2xs font-semibold text-text-3 font-sans uppercase tracking-wider",children:"Gateways"}),i.jsx("div",{className:"flex-1 h-px bg-border-subtle"}),i.jsxs("span",{className:"text-2xs text-text-4 font-sans",children:[d.filter(X=>X.connected).length,"/",d.length," connected"]})]}),i.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[d.map(X=>i.jsx(A_,{gateway:X,onRefresh:P},X.id)),i.jsx(E_,{existingTypes:d.map(X=>X.type),onAdd:N})]})]}),s&&i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center gap-2 mb-2.5 px-0.5",children:[i.jsx("span",{className:"text-2xs font-semibold text-text-3 font-sans uppercase tracking-wider",children:"Configuration"}),i.jsx("div",{className:"flex-1 h-px bg-border-subtle"}),i.jsx("span",{className:"text-2xs text-text-4 font-sans",children:"Auto-saves"})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsx(bl,{icon:Yf,label:"Default Provider",description:"Provider used when spawning new agents.",children:i.jsx("select",{value:s.defaultProvider||"claude-code",onChange:X=>A("defaultProvider",X.target.value),className:"w-full h-8 px-2.5 text-xs bg-surface-0 border border-border-subtle rounded-md text-text-0 font-mono focus:outline-none focus:ring-1 focus:ring-accent cursor-pointer",children:t.filter(X=>X.installed||X.hasKey).map(X=>i.jsx("option",{value:X.id,children:X.name},X.id))})}),i.jsx(bl,{icon:Hr,label:"Working Directory",description:"Default root directory for new agents.",children:i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("code",{className:"flex-1 h-8 px-2 flex items-center bg-surface-0 border border-border-subtle rounded-md text-2xs font-mono text-text-2 truncate min-w-0",children:s.defaultWorkingDir||"Project root"}),i.jsx(je,{variant:"secondary",size:"sm",onClick:()=>g(!0),className:"h-8 px-2 flex-shrink-0",children:i.jsx(Pb,{size:12})})]})}),i.jsx(bl,{icon:Nb,label:"Rotation Threshold",description:"Context usage that triggers auto-rotation.",children:i.jsx("div",{className:"flex bg-surface-0 rounded-md p-0.5 border border-border-subtle",children:["auto","50%","65%","75%","85%"].map(X=>{const $=X==="auto"?0:parseInt(X,10)/100,W=C===$;return i.jsx("button",{onClick:()=>A("rotationThreshold",$),className:le("flex-1 px-2 py-1.5 text-2xs font-semibold font-sans rounded transition-all cursor-pointer",W?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:X==="auto"?"Auto":X},X)})})}),i.jsx(bl,{icon:Vb,label:"QC Threshold",description:"Running agents count that triggers auto-QC.",children:i.jsx("div",{className:"flex bg-surface-0 rounded-md p-0.5 border border-border-subtle",children:[2,3,4,6,8].map(X=>{const $=(s.qcThreshold||2)===X;return i.jsx("button",{onClick:()=>A("qcThreshold",X),className:le("flex-1 px-2 py-1.5 text-2xs font-semibold font-sans rounded transition-all cursor-pointer",$?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:X},X)})})}),i.jsx(bl,{icon:Zc,label:"Max Agents",description:"Concurrent agent limit. 0 = unlimited.",children:i.jsx("div",{className:"flex bg-surface-0 rounded-md p-0.5 border border-border-subtle",children:[0,4,8,12,20].map(X=>{const $=(s.maxAgents||0)===X;return i.jsx("button",{onClick:()=>A("maxAgents",X),className:le("flex-1 px-2 py-1.5 text-2xs font-semibold font-sans rounded transition-all cursor-pointer",$?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:X===0?"∞":X},X)})})}),i.jsx(bl,{icon:Ir,label:"Journalist Interval",description:"Seconds between synthesis cycles.",children:i.jsx("div",{className:"flex bg-surface-0 rounded-md p-0.5 border border-border-subtle",children:[60,120,300,600].map(X=>{const $=(s.journalistInterval||120)===X,W=X<60?`${X}s`:`${X/60}m`;return i.jsx("button",{onClick:()=>A("journalistInterval",X),className:le("flex-1 px-2 py-1.5 text-2xs font-semibold font-sans rounded transition-all cursor-pointer",$?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:W},X)})})})]})]})]})}),i.jsx(ES,{open:x,onOpenChange:g,currentPath:(s==null?void 0:s.defaultWorkingDir)||"/",onSelect:X=>A("defaultWorkingDir",X)})]})}const Qf=[];function VS(t){const n=(t||"").toLowerCase();return n.includes("reading")||n.includes("read ")?{icon:oi,color:"text-info",label:"Reading"}:n.includes("editing")||n.includes("wrote")||n.includes("writing")||n.includes("edit ")?{icon:Tb,color:"text-warning",label:"Editing"}:n.includes("searching")||n.includes("search")||n.includes("grep")||n.includes("glob")?{icon:ql,color:"text-purple",label:"Searching"}:n.includes("running")||n.includes("bash")||n.includes("command")||n.includes("exec")?{icon:ui,color:"text-orange",label:"Running"}:n.includes("test")||n.includes("pass")?{icon:of,color:"text-success",label:"Testing"}:n.includes("error")||n.includes("fail")||n.includes("crash")?{icon:cn,color:"text-danger",label:"Error"}:n.includes("rotat")?{icon:El,color:"text-accent",label:"Rotating"}:n.includes("spawn")||n.includes("start")?{icon:Na,color:"text-success",label:"Spawned"}:n.includes("tool")||n.includes("function")?{icon:SP,color:"text-text-2",label:"Tool"}:n.includes("complet")||n.includes("done")||n.includes("finish")?{icon:of,color:"text-success",label:"Done"}:{icon:dn,color:"text-text-3",label:"Activity"}}function yl({text:t}){return t?t.split(/(\*\*[^*]+\*\*|`[^`]+`)/g).map((n,s)=>n.startsWith("**")&&n.endsWith("**")?i.jsx("strong",{className:"font-semibold text-text-0",children:n.slice(2,-2)},s):n.startsWith("`")&&n.endsWith("`")?i.jsx("code",{className:"px-1 py-px rounded bg-accent/8 text-[11px] font-mono text-accent",children:n.slice(1,-1)},s):i.jsx("span",{children:n},s)):null}function M_({text:t}){if(!t)return null;const n=[],s=t.split(`
583
593
  `);let l=0;for(;l<s.length;){const o=s[l];if(o.trimStart().startsWith("```")){const d=[],O=o.trim().slice(3);for(l++;l<s.length&&!s[l].trimStart().startsWith("```");)d.push(s[l]),l++;l++,n.push({type:"code",content:d.join(`
584
- `),lang:O});continue}if(/^#{1,3}\s/.test(o)||/^\*\*[^*]+:\*\*\s*$/.test(o.trim())){const d=o.replace(/^#+\s*/,"").replace(/^\*\*/,"").replace(/:\*\*\s*$/,":").trim();n.push({type:"heading",content:d}),l++;continue}if(/^\s*[-*]\s/.test(o)){const d=[];for(;l<s.length&&/^\s*[-*]\s/.test(s[l]);)d.push(s[l].replace(/^\s*[-*]\s+/,"").trim()),l++;n.push({type:"list",items:d});continue}if(/^\s*\d+[\.)]\s/.test(o)){const d=[];for(;l<s.length&&/^\s*\d+[\.)]\s/.test(s[l]);)d.push(s[l].replace(/^\s*\d+[\.)]\s+/,"").trim()),l++;n.push({type:"numbered",items:d});continue}if(!o.trim()){l++;continue}if(/^(Note|Warning|Important|IMPORTANT|TODO):/i.test(o.trim())){n.push({type:"note",content:o.trim()}),l++;continue}const u=[];for(;l<s.length&&s[l].trim()&&!/^#{1,3}\s/.test(s[l])&&!/^\s*[-*]\s/.test(s[l])&&!/^\s*\d+[\.)]\s/.test(s[l])&&!s[l].trimStart().startsWith("```");)u.push(s[l].trim()),l++;u.length>0&&n.push({type:"para",content:u.join(" ")})}return i.jsx("div",{className:"space-y-2",children:n.map((o,u)=>{switch(o.type){case"heading":return i.jsxs("div",{className:"flex items-center gap-1.5 pt-1.5 first:pt-0",children:[i.jsx("div",{className:"w-1 h-3.5 rounded-full bg-accent/40 flex-shrink-0"}),i.jsx("span",{className:"text-[12px] font-semibold text-text-0 font-sans",children:i.jsx(yl,{text:o.content})})]},u);case"list":return i.jsx("div",{className:"space-y-1 pl-2",children:o.items.map((d,O)=>i.jsxs("div",{className:"flex gap-2 text-[12px] text-text-0 font-sans leading-relaxed",children:[i.jsx("span",{className:"text-accent/50 mt-0.5 flex-shrink-0",children:"-"}),i.jsx("span",{className:"min-w-0",children:i.jsx(yl,{text:d})})]},O))},u);case"numbered":return i.jsx("div",{className:"space-y-1 pl-2",children:o.items.map((d,O)=>i.jsxs("div",{className:"flex gap-2 text-[12px] text-text-0 font-sans leading-relaxed",children:[i.jsxs("span",{className:"text-text-4 font-mono w-4 text-right flex-shrink-0",children:[O+1,"."]}),i.jsx("span",{className:"min-w-0",children:i.jsx(yl,{text:d})})]},O))},u);case"code":return i.jsx("pre",{className:"p-2.5 rounded-md bg-[#0d1117] text-[11px] font-mono text-[#c9d1d9] overflow-x-auto whitespace-pre-wrap border border-white/[0.06] leading-relaxed",children:o.content},u);case"note":return i.jsxs("div",{className:"flex items-start gap-1.5 px-2.5 py-1.5 rounded-md bg-warning/6 border border-warning/12",children:[i.jsx(cn,{size:10,className:"text-warning mt-0.5 flex-shrink-0"}),i.jsx("span",{className:"text-[11px] text-warning/80 font-sans",children:i.jsx(yl,{text:o.content})})]},u);case"para":default:return i.jsx("p",{className:"text-[12px] text-text-0 font-sans leading-relaxed",children:i.jsx(yl,{text:o.content})},u)}})})}function A_({text:t}){if(!t)return null;const n=t.split(/(```[\s\S]*?```)/g);return i.jsx("span",{children:n.map((s,l)=>{if(s.startsWith("```")&&s.endsWith("```")){const o=s.slice(3,-3).replace(/^\w+\n/,"");return i.jsx("pre",{className:"my-1.5 p-2 rounded-md bg-[#0d1117] text-[11px] font-mono text-[#c9d1d9] overflow-x-auto whitespace-pre-wrap border border-white/[0.06]",children:o},l)}return i.jsx("span",{children:i.jsx(yl,{text:s})},l)})})}function E_({msg:t}){const n=t.isQuery;return i.jsx("div",{className:"flex justify-end pl-8",children:i.jsxs("div",{className:"max-w-[90%]",children:[n&&i.jsxs("div",{className:"flex items-center justify-end gap-1 mb-1",children:[i.jsx(ic,{size:9,className:"text-info"}),i.jsx("span",{className:"text-2xs text-info font-sans font-medium",children:"Query"})]}),i.jsx("div",{className:le("px-3.5 py-2.5 rounded-lg border","bg-info/10 border-info/25"),children:i.jsx("div",{className:"text-[12px] font-sans whitespace-pre-wrap break-words leading-relaxed text-text-0",children:i.jsx(A_,{text:t.text})})}),i.jsx("div",{className:"text-[10px] text-text-4 font-sans mt-1 text-right",children:Ct(t.timestamp)})]})})}function q_({msg:t,agent:n}){var u,d;const[s,l]=v.useState(((u=t.text)==null?void 0:u.length)>600),o=((d=t.text)==null?void 0:d.length)>600;return i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx("span",{className:"text-2xs font-semibold text-text-1 font-sans",children:(n==null?void 0:n.name)||"Agent"}),i.jsx("span",{className:"text-2xs text-text-4 font-sans",children:n==null?void 0:n.role}),i.jsx("span",{className:"text-[10px] text-text-4 font-sans ml-auto",children:Ct(t.timestamp)})]}),i.jsx("div",{className:"border-l border-accent pl-3.5 py-1",children:i.jsx(Z_,{text:s?t.text.slice(0,600)+"...":t.text})}),s&&i.jsxs("button",{onClick:()=>l(!1),className:"ml-3.5 mt-1.5 flex items-center gap-1.5 text-[11px] text-accent/70 hover:text-accent font-sans font-medium cursor-pointer transition-colors",children:[i.jsx(In,{size:11}),"Show full response"]}),o&&!s&&i.jsxs("button",{onClick:()=>l(!0),className:"ml-3.5 mt-1.5 flex items-center gap-1.5 text-[11px] text-accent/70 hover:text-accent font-sans font-medium cursor-pointer transition-colors",children:[i.jsx(In,{size:11,className:"rotate-180"}),"Collapse"]})]})}function M_({msg:t}){return i.jsxs("div",{className:"flex items-center gap-3 py-2",children:[i.jsx("div",{className:"flex-1 h-px bg-border-subtle"}),i.jsx("span",{className:"text-[10px] text-text-4 font-sans flex-shrink-0 uppercase tracking-wide",children:t.text}),i.jsx("div",{className:"flex-1 h-px bg-border-subtle"})]})}function Y_({entries:t}){var u;const[n,s]=v.useState(0);v.useEffect(()=>{if(t.length<=1)return;const d=setInterval(()=>s(O=>(O+1)%t.length),1500);return()=>clearInterval(d)},[t.length]);const l=t[Math.min(n,t.length-1)];VS(l.text);const o=((u=l.text)==null?void 0:u.length)>60?l.text.slice(0,60)+"...":l.text;return i.jsxs("div",{className:"ml-7 flex items-center gap-2 px-3 py-2 rounded-md bg-surface-3/50 border border-border-subtle/30",children:[i.jsx(Gf,{size:11,className:"text-accent animate-spin flex-shrink-0"}),i.jsx("span",{className:"text-[11px] text-text-2 font-mono truncate flex-1 min-w-0 transition-opacity duration-300",children:o}),t.length>1&&i.jsx("span",{className:"text-[10px] text-text-4 font-mono flex-shrink-0",children:t.length})]})}function V_({agent:t}){const n=D(m=>m.activityLog[t.id])||Qf,s=n[n.length-1],l=s?VS(s.text):null,o=(l==null?void 0:l.icon)||dn,u=s&&Date.now()-s.timestamp<1e4,d=u&&s.text?s.text.length>60?s.text.slice(0,60)+"...":s.text:null,O=Math.round((t.contextUsage||0)*100);return i.jsxs("div",{className:"flex items-center gap-3 px-4 h-8 border-b border-border-subtle bg-surface-1/80 flex-shrink-0",children:[i.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[i.jsxs("div",{className:"relative flex items-center justify-center w-4 h-4",children:[i.jsx("span",{className:"absolute inset-0 rounded-full bg-accent/15 animate-ping",style:{animationDuration:"2s"}}),i.jsx("span",{className:"relative w-1.5 h-1.5 rounded-full bg-accent"})]}),u?i.jsxs(i.Fragment,{children:[i.jsx(o,{size:10,className:le(l.color,"flex-shrink-0")}),i.jsx("span",{className:"text-[11px] text-text-2 font-sans truncate",children:d})]}):i.jsx("span",{className:"text-[11px] text-text-3 font-sans",children:"Working..."})]}),i.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[i.jsx("span",{className:"text-[10px] text-text-4 font-mono",children:U_(t.tokensUsed)}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("div",{className:"w-14 h-1 rounded-full bg-surface-4 overflow-hidden",children:i.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${O}%`,background:O>=75?"var(--color-danger)":O>=50?"var(--color-warning)":"var(--color-accent)"}})}),i.jsxs("span",{className:"text-[10px] text-text-4 font-mono w-7 text-right",children:[O,"%"]})]})]})]})}function U_(t){return t?t>=1e6?(t/1e6).toFixed(1)+"M":t>=1e3?(t/1e3).toFixed(1)+"K":String(t):"0"}function G_({agent:t}){const[n,s]=v.useState([]),l=[{text:`Initializing ${t.name}`,delay:0},{text:`Role: ${t.role}`,delay:400},{text:`Provider: ${t.provider||"claude-code"}`,delay:700},{text:"Loading workspace context",delay:1e3},{text:"Scanning project structure",delay:1400},{text:"Session active",delay:1900}];return v.useEffect(()=>{const o=l.map((u,d)=>setTimeout(()=>s(O=>[...O,d]),u.delay));return()=>o.forEach(clearTimeout)},[]),i.jsxs("div",{className:"flex flex-col px-4 pt-6",children:[i.jsxs("div",{className:"flex items-center gap-3 mb-5",children:[i.jsxs("div",{className:"relative w-9 h-9",children:[i.jsx("span",{className:"absolute inset-0 rounded-full border-2 border-accent/20 animate-ping",style:{animationDuration:"2s"}}),i.jsx("span",{className:"absolute inset-0 rounded-full border-2 border-transparent border-t-accent animate-spin",style:{animationDuration:"1s"}}),i.jsx("span",{className:"absolute inset-[5px] rounded-full bg-accent/8"})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-bold text-text-0 font-sans",children:t.name}),i.jsx("p",{className:"text-2xs text-accent font-mono",children:"starting up"})]})]}),i.jsx("div",{className:"space-y-2 pl-3 border-l border-accent/15",children:l.map((o,u)=>{const d=n.includes(u),O=u===l.length-1;return i.jsxs("div",{className:le("flex items-center gap-2.5 transition-all duration-300",d?"opacity-100 translate-x-0":"opacity-0 -translate-x-2"),children:[i.jsx("span",{className:le("w-1 h-1 rounded-full flex-shrink-0",O&&d?"bg-accent":d?"bg-text-3":"bg-transparent")}),i.jsx("span",{className:le("text-[11px] font-mono",O&&d?"text-accent":"text-text-3"),children:o.text}),O&&d&&i.jsxs("span",{className:"flex gap-0.5 ml-1",children:[i.jsx("span",{className:"w-1 h-1 rounded-full bg-accent animate-pulse",style:{animationDelay:"0ms"}}),i.jsx("span",{className:"w-1 h-1 rounded-full bg-accent animate-pulse",style:{animationDelay:"200ms"}}),i.jsx("span",{className:"w-1 h-1 rounded-full bg-accent animate-pulse",style:{animationDelay:"400ms"}})]})]},u)})})]})}function L_({agent:t}){const n=D(j=>j.chatHistory[t.id])||Qf,s=D(j=>j.activityLog[t.id])||Qf,l=D(j=>j.instructAgent),o=D(j=>j.queryAgent),[u,d]=v.useState(""),[O,m]=v.useState("instruct"),[p,x]=v.useState(!1),g=v.useRef(null),b=v.useRef(null),S=v.useMemo(()=>{var X;const j=[],P=new Set;for(const $ of n){const W=`${$.from}:${(X=$.text)==null?void 0:X.slice(0,100)}`;j.find(ne=>{var re;return ne.kind==="chat"&&`${ne.from}:${(re=ne.text)==null?void 0:re.slice(0,100)}`===W&&Math.abs(ne.ts-$.timestamp)<5e3})||(j.push({...$,kind:"chat",ts:$.timestamp}),P.add($.text))}const N=P,A=s.slice(-30);for(const $ of A)($.text||"").trim()&&!N.has($.text)&&j.push({...$,kind:"activity",ts:$.timestamp});j.sort(($,W)=>$.ts-W.ts);const U=[];let C=[];for(const $ of j)$.kind==="activity"?C.push($):(C.length>0&&(U.push({kind:"activity-group",entries:C}),C=[]),U.push($));return C.length>0&&U.push({kind:"activity-group",entries:C}),U},[n,s]);v.useEffect(()=>{g.current&&requestAnimationFrame(()=>{g.current&&(g.current.scrollTop=g.current.scrollHeight)})},[S.length]);async function Q(){var P;const j=u.trim();if(!(!j||p)){if(j==="/rotate"){const N=D.getState().rotateAgent;d("");try{await N(t.id)}catch{}return}d(""),x(!0);try{O==="query"?await o(t.id,j):await l(t.id,j)}catch{}x(!1),(P=b.current)==null||P.focus()}}function k(j){j.key==="Enter"&&!j.shiftKey&&(j.preventDefault(),Q())}const T=t.status==="running"||t.status==="starting";return i.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[T&&i.jsx(V_,{agent:t}),i.jsxs("div",{ref:g,className:"flex-1 overflow-y-auto px-4 py-4 space-y-4",children:[!S.some(j=>j.from==="agent"||j.kind==="activity-group")&&(T?i.jsx(G_,{agent:t}):i.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center py-8",children:[i.jsx("div",{className:"w-10 h-10 rounded-xl bg-surface-3 flex items-center justify-center mb-3",children:i.jsx(ci,{size:18,className:"text-text-4"})}),i.jsx("p",{className:"text-sm font-semibold text-text-0 font-sans",children:t.name}),i.jsx("p",{className:"text-xs text-text-3 font-sans mt-1",children:"Session complete — send a message to continue"})]})),S.map((j,P)=>j.kind==="activity-group"?i.jsx(Y_,{entries:j.entries},`grp-${P}`):j.from==="user"?i.jsx(E_,{msg:j},`msg-${P}`):j.from==="system"?i.jsx(M_,{msg:j},`msg-${P}`):i.jsx(q_,{msg:j,agent:t},`msg-${P}`)),p&&i.jsxs("div",{className:"flex items-center gap-2 ml-7 py-2",children:[i.jsx("div",{className:"w-5 h-5 rounded-md bg-accent/12 flex items-center justify-center",children:i.jsx(dn,{size:10,className:"text-accent"})}),i.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-2 rounded-2xl bg-surface-2/60 border border-border-subtle",children:[i.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-accent/60 animate-pulse",style:{animationDelay:"0ms"}}),i.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-accent/60 animate-pulse",style:{animationDelay:"200ms"}}),i.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-accent/60 animate-pulse",style:{animationDelay:"400ms"}})]})]})]}),i.jsxs("div",{className:"border-t border-border px-4 py-3 bg-surface-1/50 flex-shrink-0",children:[i.jsxs("div",{className:"flex items-center gap-1 mb-2",children:[i.jsxs("button",{onClick:()=>m("instruct"),className:le("flex items-center gap-1.5 px-2.5 py-1 rounded-md text-[11px] font-sans font-medium transition-colors cursor-pointer",O==="instruct"?"bg-accent/12 text-accent border border-accent/20":"text-text-3 hover:text-text-1 hover:bg-surface-3"),children:[i.jsx(Cc,{size:10}),"Instruct"]}),i.jsxs("button",{onClick:()=>m("query"),className:le("flex items-center gap-1.5 px-2.5 py-1 rounded-md text-[11px] font-sans font-medium transition-colors cursor-pointer",O==="query"?"bg-info/12 text-info border border-info/20":"text-text-3 hover:text-text-1 hover:bg-surface-3"),children:[i.jsx(ic,{size:10}),"Query"]}),i.jsx("span",{className:"text-[10px] text-text-4 font-sans ml-auto",children:O==="query"?"Read-only — agent keeps working":T?"Directs the agent":"Continues the session"})]}),i.jsxs("div",{className:le("flex items-end gap-2 rounded-xl border bg-surface-0 p-1 transition-colors",O==="query"?"border-info/20 focus-within:border-info/40":"border-border-subtle focus-within:border-accent/30"),children:[i.jsx("textarea",{ref:b,value:u,onChange:j=>d(j.target.value),onKeyDown:k,placeholder:O==="query"?"Ask about this agent's work...":T?"Send an instruction...":"Continue this session...",rows:1,className:le("flex-1 resize-none px-3 py-2 text-[13px]","bg-transparent text-text-0 font-sans","placeholder:text-text-4","focus:outline-none","max-h-[120px] min-h-[36px]"),style:{height:Math.min(Math.max(36,u.split(`
585
- `).length*20),120)}}),i.jsx("button",{onClick:Q,disabled:!u.trim()||p,className:le("w-9 h-9 flex items-center justify-center rounded-lg transition-all cursor-pointer flex-shrink-0 mb-px","disabled:opacity-15 disabled:cursor-not-allowed",u.trim()?O==="query"?"bg-info text-white hover:bg-info/85":"bg-accent text-white hover:bg-accent/85":"bg-transparent text-text-4"),children:p?i.jsx(Gf,{size:15,className:"animate-spin"}):i.jsx(Bf,{size:15})})]})]})]})}function IO({options:t,value:n,onChange:s}){return i.jsx("div",{className:"flex bg-surface-0 rounded-lg p-0.5 border border-border-subtle",children:t.map(l=>i.jsx("button",{onClick:()=>s(l.value),className:le("flex-1 px-3 py-1.5 text-2xs font-semibold font-sans rounded-md transition-all cursor-pointer",n===l.value?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:l.label},l.value))})}function ha({label:t,icon:n,children:s,description:l}){return i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{children:[i.jsxs("label",{className:"flex items-center gap-1.5 text-xs font-semibold text-text-1 font-sans",children:[n&&i.jsx(n,{size:13,className:"text-text-3"}),t]}),l&&i.jsx("p",{className:"text-2xs text-text-4 font-sans mt-0.5",children:l})]}),s]})}function D_({agent:t}){const n=D(Q=>Q.killAgent),s=D(Q=>Q.rotateAgent),l=D(Q=>Q.spawnAgent),o=D(Q=>Q.closeDetail),u=D(Q=>Q.addToast),[d,O]=v.useState(null),[m,p]=v.useState(!1),x=t.status==="running"||t.status==="starting";async function g(){O("rotate");try{await s(t.id)}catch{}O(null)}async function b(){if(!m){p(!0),setTimeout(()=>p(!1),3e3);return}O("kill");try{await n(t.id),o()}catch{}O(null),p(!1)}async function S(){O("clone");try{await l({role:t.role,provider:t.provider,model:t.model,name:`${t.name}-clone`,scope:t.scope,workingDir:t.workingDir}),u("success",`Cloned ${t.name}`)}catch{}O(null)}return x?i.jsx("div",{className:"space-y-2",children:i.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[i.jsxs(je,{variant:"primary",size:"md",onClick:g,disabled:d==="rotate",className:"gap-1.5",children:[i.jsx(El,{size:12,className:d==="rotate"?"animate-spin":""}),"Rotate"]}),i.jsxs(je,{variant:"info",size:"md",onClick:S,disabled:!!d,className:"gap-1.5",children:[i.jsx(cf,{size:12})," Clone"]}),i.jsxs(je,{variant:"danger",size:"md",onClick:b,disabled:d==="kill",className:"gap-1.5",children:[i.jsx(Hf,{size:12}),m?"Confirm":"Kill"]})]})}):i.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[i.jsxs(je,{variant:"info",size:"md",onClick:S,disabled:!!d,className:"gap-1.5",children:[i.jsx(cf,{size:12})," Clone"]}),i.jsxs(je,{variant:"danger",size:"md",onClick:b,disabled:d==="kill",className:"gap-1.5",children:[i.jsx(Xc,{size:12}),m?"Confirm":"Remove"]})]})}function W_({agent:t}){var Xe;const n=D(L=>L.addToast),[s,l]=v.useState([]),[o,u]=v.useState(t.model||""),[d,O]=v.useState(""),[m,p]=v.useState(t.effort||"default"),[x,g]=v.useState(!1),[b,S]=v.useState(""),[Q,k]=v.useState(null),[T,j]=v.useState(!1),[P,N]=v.useState(null),[A,U]=v.useState(t.routingMode||"auto"),[C,X]=v.useState([]),[$,W]=v.useState("hr"),[E,ne]=v.useState("1"),[re,xe]=v.useState(!1),ie=t.status==="running"||t.status==="starting";v.useEffect(()=>{J(),ee.get("/skills/installed").then(oe=>X(Array.isArray(oe)?oe:oe.skills||[])).catch(()=>{});function L(){J()}return window.addEventListener("groove:providers-changed",L),()=>window.removeEventListener("groove:providers-changed",L)},[]);function J(){ee.get("/providers").then(L=>l(Array.isArray(L)?L:[])).catch(()=>{})}v.useEffect(()=>{u(t.model||""),ee.get(`/agents/${t.id}/routing/recommend`).then(L=>{U((L==null?void 0:L.mode)||"fixed")}).catch(()=>{})},[t.id,t.model]);const z=s.find(L=>L.id===t.provider);async function B(L,oe){u(oe);try{await ee.patch(`/agents/${t.id}`,{model:oe}),n("success",`Model → ${oe}`)}catch(ze){n("error","Model swap failed",ze.message)}}async function I(L){try{await ee.patch(`/agents/${t.id}`,{workingDir:L}),n("success",`Working dir → ${L.split("/").pop()||L}`)}catch(oe){n("error","Update failed",oe.message)}}async function fe(L){p(L);try{await ee.patch(`/agents/${t.id}`,{effort:L}),n("success",`Effort → ${L}`)}catch(oe){n("error","Update failed",oe.message)}}async function te(L){if(!L.trim())return;const oe=[...t.scope||[],L.trim()];try{await ee.patch(`/agents/${t.id}`,{scope:oe}),O("")}catch(ze){n("error","Scope update failed",ze.message)}}async function Ae(L){const oe=(t.scope||[]).filter((ze,Ot)=>Ot!==L);try{await ee.patch(`/agents/${t.id}`,{scope:oe})}catch(ze){n("error","Scope update failed",ze.message)}}async function Se(L){if(b.trim())try{await ee.post(`/credentials/${L}`,{key:b.trim()}),n("success",`API key set for ${L}`),S(""),k(null),J(),window.dispatchEvent(new CustomEvent("groove:providers-changed"))}catch(oe){n("error","Failed to set key",oe.message)}}const ve=t.spawnedAt||t.createdAt;return i.jsxs("div",{className:"px-5 py-5 space-y-6 overflow-y-auto h-full",children:[i.jsx(ha,{label:"Active Model",icon:Yf,children:i.jsxs("div",{className:"bg-surface-0 rounded-lg border border-border-subtle px-3.5 py-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-sm font-bold font-mono text-text-0",children:t.model||"auto"}),i.jsx("div",{className:"text-2xs text-text-3 font-sans mt-0.5",children:(z==null?void 0:z.name)||t.provider})]}),(z==null?void 0:z.canHotSwap)&&ie&&i.jsxs(We,{variant:"accent",className:"text-2xs gap-1",children:[i.jsx(Na,{size:8})," Hot-swap"]})]}),((Xe=z==null?void 0:z.models)==null?void 0:Xe.length)>1&&i.jsx("div",{className:"flex flex-wrap gap-1.5 mt-3 pt-3 border-t border-border-subtle",children:z.models.map(L=>{const oe=L.id===t.model,ze=!ie||z.canHotSwap;return i.jsx("button",{onClick:()=>ze&&B(t.provider,L.id),disabled:!ze,className:le("px-2.5 py-1 rounded-md text-xs font-mono transition-all",ze?"cursor-pointer":"cursor-not-allowed opacity-40",oe?"bg-accent/15 text-accent font-semibold":"bg-surface-4 text-text-2 hover:bg-surface-5 hover:text-text-0"),children:L.name||L.id},L.id)})})]})}),i.jsx(D_,{agent:t}),i.jsxs(ha,{label:"Providers",icon:Ig,description:"Click a provider to see its models and connection status.",children:[i.jsx("div",{className:"space-y-1.5",children:s.map(L=>{const oe=L.id===t.provider,ze=L.installed||L.hasKey,Ot=P===L.id,_e=L.models||[];return i.jsxs("div",{className:"rounded-lg border border-border-subtle bg-surface-0 overflow-hidden",children:[i.jsxs("button",{onClick:()=>N(Ot?null:L.id),className:"w-full flex items-center gap-2.5 px-3 py-2 cursor-pointer hover:bg-surface-4/50 transition-colors",children:[i.jsx("div",{className:le("w-2 h-2 rounded-full flex-shrink-0",ze?"bg-success":"bg-text-4")}),i.jsx("span",{className:le("text-xs font-semibold font-sans flex-1 text-left",ze?"text-text-0":"text-text-3"),children:L.name||L.id}),oe&&i.jsx(We,{variant:"accent",className:"text-2xs",children:"Active"}),!ze&&i.jsx("span",{className:"text-2xs text-text-4 font-sans",children:L.authType==="local"?"Not installed":"No key"}),i.jsx(In,{size:12,className:le("text-text-4 transition-transform",Ot&&"rotate-180")})]}),Ot&&L.authType==="local"&&i.jsx("div",{className:"border-t border-border-subtle",children:i.jsx(sS,{isInstalled:ze,onModelChange:J})}),Ot&&L.authType!=="local"&&i.jsxs("div",{className:"border-t border-border-subtle",children:[(!ze||L.hasKey)&&i.jsx("div",{className:"px-3 py-2 bg-surface-1/50",children:Q===L.id?i.jsxs("div",{className:"flex gap-1.5",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx("input",{value:b,onChange:tt=>S(tt.target.value),onKeyDown:tt=>tt.key==="Enter"&&Se(L.id),type:T?"text":"password",placeholder:`${L.name||L.id} API key...`,className:"w-full h-7 px-2.5 pr-7 text-2xs bg-surface-0 border border-border rounded-md text-text-0 font-mono placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent",autoFocus:!0}),i.jsx("button",{onClick:()=>j(!T),className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-4 hover:text-text-2 cursor-pointer",children:T?i.jsx(Uf,{size:10}):i.jsx(oi,{size:10})})]}),i.jsx(je,{variant:"primary",size:"sm",onClick:()=>Se(L.id),disabled:!b.trim(),className:"h-7 px-2 text-2xs",children:"Save"}),i.jsx(je,{variant:"ghost",size:"sm",onClick:()=>{k(null),S("")},className:"h-7 px-2 text-2xs",children:"Cancel"})]}):i.jsxs("button",{onClick:()=>{k(L.id),S(""),j(!1)},className:"flex items-center gap-1.5 text-2xs text-text-3 hover:text-accent font-sans cursor-pointer transition-colors",children:[i.jsx(uc,{size:10}),ze?"Update API key":"Add API key to enable"]})}),ze&&_e.length>0&&_e.map(tt=>{const bt=L.id===t.provider&&tt.id===t.model,vt=!ie;return i.jsxs("button",{onClick:()=>vt&&B(L.id,tt.id),disabled:!vt,className:le("w-full flex items-center gap-2 px-3 py-2 text-left text-xs font-sans transition-colors","border-t border-border-subtle",vt?"cursor-pointer hover:bg-surface-4/50":"cursor-not-allowed opacity-40",bt?"text-accent":"text-text-2"),children:[bt?i.jsx(oa,{size:11,className:"text-accent flex-shrink-0"}):i.jsx("div",{className:"w-[11px]"}),i.jsx("span",{className:"font-mono flex-1 truncate",children:tt.name||tt.id}),i.jsx(We,{variant:bt?"accent":"default",className:"text-2xs",children:tt.tier})]},tt.id)})]})]},L.id)})}),ie&&i.jsxs("div",{className:"flex items-center gap-1.5 text-2xs text-text-3 font-sans mt-1.5",children:[i.jsx(cn,{size:10}),i.jsx("span",{children:"Stop agent to switch providers."})]})]}),i.jsx(ha,{label:"Working Directory",icon:Hr,description:"The root directory this agent operates in.",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx("div",{className:"flex-1 bg-surface-0 rounded-lg px-3 py-2.5 text-sm font-mono text-text-1 border border-border-subtle truncate min-w-0",children:t.workingDir||"Project root"}),i.jsxs(je,{variant:"secondary",size:"md",onClick:()=>g(!0),className:"gap-1.5 flex-shrink-0",children:[i.jsx(Pb,{size:14})," Browse"]})]})}),i.jsx(ha,{label:"Permission Mode",icon:Fr,description:"Full Send = no approvals. Agent Approve = Fullstack Manager reviews risky operations.",children:i.jsx(IO,{options:[{value:"full",label:"Full Send"},{value:"auto",label:"Agent Approve"}],value:t.permission||"full",onChange:async L=>{try{await ee.patch(`/agents/${t.id}`,{permission:L}),n("success",`Permission → ${L==="full"?"Full Send":"Agent Approve"}`)}catch(oe){n("error","Update failed",oe.message)}}})}),i.jsxs(ha,{label:"Model Routing",icon:rc,description:"How Groove selects models for this agent's tasks.",children:[i.jsx(IO,{options:[{value:"fixed",label:"Fixed"},{value:"auto",label:"Auto"},{value:"auto-floor",label:"Auto + Floor"}],value:A,onChange:async L=>{U(L);try{await ee.post(`/agents/${t.id}/routing`,{mode:L}),n("success",`Routing → ${L}`)}catch(oe){n("error","Update failed",oe.message)}}}),i.jsxs("div",{className:"text-2xs text-text-4 font-sans mt-1",children:[A==="fixed"&&"Uses the selected model for all tasks.",A==="auto"&&"Groove picks Opus/Sonnet/Haiku based on task complexity.",A==="auto-floor"&&"Auto-routes but never drops below Sonnet."]})]}),i.jsx(ha,{label:"File Scope",icon:Fr,description:"Restrict which files this agent can access. Empty = unrestricted.",children:i.jsxs("div",{className:"flex flex-wrap gap-2",children:[(t.scope||[]).map((L,oe)=>i.jsxs(We,{variant:"default",className:"font-mono text-xs gap-1.5 px-2.5 py-1",children:[L,i.jsx("button",{onClick:()=>Ae(oe),className:"hover:text-danger cursor-pointer",children:i.jsx(Rt,{size:10})})]},oe)),i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("input",{value:d,onChange:L=>O(L.target.value),onKeyDown:L=>L.key==="Enter"&&te(d),placeholder:"e.g. src/**",className:"w-28 h-7 px-2.5 text-xs bg-surface-0 border border-border-subtle rounded-md text-text-0 font-mono placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent"}),i.jsx("button",{onClick:()=>te(d),disabled:!d.trim(),className:"w-7 h-7 flex items-center justify-center rounded-md bg-surface-4 border border-border-subtle text-text-3 hover:text-accent cursor-pointer disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:i.jsx(Fn,{size:12})})]})]})}),i.jsx(ha,{label:"Effort Level",icon:Nb,description:"Controls how deep the agent reasons. Higher = more tokens but better results.",children:i.jsx(IO,{options:[{value:"min",label:"Min"},{value:"low",label:"Low"},{value:"default",label:"Default"},{value:"high",label:"High"},{value:"max",label:"Max"}],value:m,onChange:fe})}),i.jsx(ha,{label:"Agent Details",icon:Ig,children:i.jsxs("div",{className:"bg-surface-0 rounded-lg border border-border-subtle divide-y divide-border-subtle",children:[i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"ID"}),i.jsx("span",{className:"text-xs text-text-1 font-mono",children:t.id})]}),i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"Role"}),i.jsx("span",{className:"text-xs text-text-1 font-sans capitalize",children:t.role})]}),i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"Provider"}),i.jsx("span",{className:"text-xs text-text-1 font-mono",children:t.provider})]}),i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"Model"}),i.jsx("span",{className:"text-xs text-text-1 font-mono",children:t.model||"auto"})]}),i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"Status"}),i.jsx("span",{className:"text-xs text-text-1 font-sans capitalize",children:t.status})]}),i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"Spawned"}),i.jsx("span",{className:"text-xs text-text-1 font-sans",children:ve?Ct(ve):"—"})]}),t.sessionId&&i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"Session"}),i.jsxs("span",{className:"text-xs text-text-1 font-mono",children:[t.sessionId.slice(0,16),"..."]})]})]})}),i.jsx(ha,{label:"Skills",icon:Ub,description:"Attach installed skills to this agent's context.",children:i.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[(t.skills||[]).map(L=>i.jsxs(We,{variant:"accent",className:"font-mono text-xs gap-1.5 px-2.5 py-1",children:[L,i.jsx("button",{onClick:async()=>{try{await ee.delete(`/agents/${t.id}/skills/${L}`),n("success",`Detached ${L}`)}catch(oe){n("error","Detach failed",oe.message)}},className:"hover:text-danger cursor-pointer",children:i.jsx(Rt,{size:10})})]},L)),C.filter(L=>!(t.skills||[]).includes(L.id)).length>0&&i.jsxs("div",{className:"relative group",children:[i.jsx("button",{className:"w-7 h-7 flex items-center justify-center rounded-md bg-surface-4 border border-border-subtle text-text-3 hover:text-accent cursor-pointer transition-colors",children:i.jsx(Fn,{size:12})}),i.jsx("div",{className:"absolute top-full left-0 mt-1 z-20 hidden group-hover:block bg-surface-2 border border-border-subtle rounded-lg shadow-xl py-1 min-w-[160px]",children:C.filter(L=>!(t.skills||[]).includes(L.id)).map(L=>i.jsx("button",{onClick:async()=>{try{await ee.post(`/agents/${t.id}/skills/${L.id}`),n("success",`Attached ${L.name||L.id}`)}catch(oe){n("error","Attach failed",oe.message)}},className:"w-full text-left px-3 py-1.5 text-xs font-sans text-text-1 hover:bg-surface-4 cursor-pointer transition-colors",children:L.name||L.id},L.id))})]}),(t.skills||[]).length===0&&C.length===0&&i.jsx("span",{className:"text-2xs text-text-4 font-sans",children:"No skills installed — browse the Marketplace"})]})}),i.jsx(ha,{label:"Schedule",icon:Hg,description:"Run this agent on a recurring schedule.",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-xs text-text-2 font-sans",children:"Every"}),i.jsx("input",{value:E,onChange:L=>ne(L.target.value.replace(/\D/g,"").slice(0,3)),className:"w-12 h-7 px-2 text-xs text-center bg-surface-0 border border-border-subtle rounded-md text-text-0 font-mono focus:outline-none focus:ring-1 focus:ring-accent",placeholder:"1"}),i.jsx("div",{className:"flex bg-surface-0 rounded-lg p-0.5 border border-border-subtle",children:[{value:"min",label:"Min"},{value:"hr",label:"Hr"},{value:"day",label:"Day"},{value:"wk",label:"Wk"},{value:"mo",label:"Mo"}].map(L=>i.jsx("button",{onClick:()=>W(L.value),className:le("px-2 py-1 text-2xs font-semibold font-sans rounded-md transition-all cursor-pointer",$===L.value?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:L.label},L.value))}),i.jsxs(je,{variant:"primary",size:"sm",disabled:re||!E||parseInt(E,10)<1,onClick:async()=>{const L=parseInt(E,10);if(!L||L<1)return;const oe={min:L===1?"* * * * *":`*/${L} * * * *`,hr:L===1?"0 * * * *":`0 */${L} * * *`,day:L===1?"0 0 * * *":`0 0 */${L} * *`,wk:`0 0 * * ${L===1?"1":"*"}`,mo:`0 0 ${L===1?"1":L} * *`};xe(!0);try{await ee.post("/schedules",{name:`${t.name} schedule`,cron:oe[$],agentConfig:{role:t.role,provider:t.provider,model:t.model,scope:t.scope,workingDir:t.workingDir,prompt:t.prompt}}),n("success",`Scheduled every ${L} ${$}`)}catch(ze){n("error","Schedule failed",ze.message)}xe(!1)},className:"h-7 px-3 text-2xs gap-1",children:[i.jsx(Hg,{size:10}),re?"...":"Set"]})]})}),t.prompt&&i.jsx(ha,{label:"Original Prompt",icon:rc,children:i.jsx("div",{className:"bg-surface-0 rounded-lg border border-border-subtle px-3 py-3 text-xs text-text-2 font-sans leading-relaxed max-h-40 overflow-y-auto",children:t.prompt})}),i.jsx(ES,{open:x,onOpenChange:g,currentPath:t.workingDir||"/",onSelect:I})]})}const m0=[];function B_({data:t,isAlive:n,height:s=48}){const l=v.useRef(null);return v.useEffect(()=>{const o=l.current;if(!o||!t.length)return;const u=o.getContext("2d"),d=window.devicePixelRatio||1,O=o.clientWidth,m=o.clientHeight;o.width=O*d,o.height=m*d,u.scale(d,d),u.clearRect(0,0,O,m);const p=t.map(Q=>Q.v),x=Math.min(...p),b=Math.max(...p,1)-x||1;u.beginPath(),u.moveTo(0,m),t.forEach((Q,k)=>{const T=k/(t.length-1)*O,j=m-(Q.v-x)/b*(m-4)-2;u.lineTo(T,j)}),u.lineTo(O,m),u.closePath();const S=u.createLinearGradient(0,0,0,m);if(S.addColorStop(0,n?"rgba(51,175,188,0.15)":"rgba(110,118,129,0.08)"),S.addColorStop(1,"rgba(0,0,0,0)"),u.fillStyle=S,u.fill(),u.beginPath(),u.strokeStyle=n?pe.accent:pe.text3,u.lineWidth=1.5,t.forEach((Q,k)=>{const T=k/(t.length-1)*O,j=m-(Q.v-x)/b*(m-4)-2;k===0?u.moveTo(T,j):u.lineTo(T,j)}),u.stroke(),t.length>1&&n){const Q=t[t.length-1],k=O-1,T=m-(Q.v-x)/b*(m-4)-2;u.beginPath(),u.arc(k,T,5,0,Math.PI*2),u.fillStyle="rgba(51,175,188,0.3)",u.fill(),u.beginPath(),u.arc(k,T,2.5,0,Math.PI*2),u.fillStyle=pe.accent,u.fill()}},[t,n]),i.jsx("div",{className:"w-full rounded-lg bg-surface-0 overflow-hidden border border-border-subtle",style:{height:s},children:i.jsx("canvas",{ref:l,className:"w-full h-full"})})}function Go({icon:t,label:n,value:s,color:l,sub:o}){return i.jsxs("div",{className:"bg-surface-0 rounded-lg px-3 py-2.5 border border-border-subtle",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx(t,{size:12,className:l||"text-text-3"}),i.jsx("span",{className:"text-2xs text-text-4 font-sans uppercase tracking-wider",children:n})]}),i.jsx("div",{className:le("text-lg font-bold font-mono tabular-nums",l||"text-text-0"),children:s}),o&&i.jsx("div",{className:"text-2xs text-text-4 font-sans mt-0.5",children:o})]})}function H_({score:t}){const n=Math.min(Math.max(t,0),100);let s=pe.success,l="Healthy";return n<40?(s=pe.danger,l="Degraded"):n<70&&(s=pe.warning,l="Fair"),i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-1.5",children:[i.jsxs("span",{className:"text-2xs text-text-3 font-sans flex items-center gap-1.5",children:[i.jsx(fT,{size:11}),"Session Health"]}),i.jsxs("span",{className:"text-xs font-bold font-mono",style:{color:s},children:[n,"/100"]})]}),i.jsx("div",{className:"h-2 bg-surface-0 rounded-full overflow-hidden border border-border-subtle",children:i.jsx("div",{className:"h-full rounded-full transition-all duration-700",style:{width:`${n}%`,background:s}})}),i.jsx("span",{className:"text-2xs font-sans mt-1 block",style:{color:s},children:l})]})}function I_(t){const n=(t||"").toLowerCase();return n.includes("edit")||n.includes("writ")?{icon:Tb,color:"text-warning"}:n.includes("read")||n.includes("view")?{icon:oi,color:"text-info"}:n.includes("search")||n.includes("grep")||n.includes("glob")?{icon:ql,color:"text-purple"}:n.includes("bash")||n.includes("command")||n.includes("terminal")?{icon:ui,color:"text-orange"}:n.includes("error")||n.includes("fail")?{icon:cn,color:"text-danger"}:n.includes("spawn")||n.includes("start")?{icon:Na,color:"text-success"}:n.includes("complet")||n.includes("done")?{icon:of,color:"text-success"}:{icon:oc,color:"text-text-4"}}function F_({agent:t}){const n=D(d=>d.tokenTimeline[t.id])||m0,s=D(d=>d.activityLog[t.id])||m0,l=t.status==="running"||t.status==="starting",o=v.useMemo(()=>{if(n.length<2)return 0;const d=n.slice(-10),O=(d[d.length-1].t-d[0].t)/6e4,m=d[d.length-1].v-d[0].v;return O>0?Math.round(m/O):0},[n]),u=v.useMemo(()=>{const d=t.contextUsage||0;let O=100;return d>90?O-=50:d>70?O-=25:d>50&&(O-=10),o>5e3?O-=15:o>3e3&&(O-=8),t.status==="crashed"&&(O=10),t.status==="completed"&&(O=95),Math.max(0,Math.min(100,O))},[t.contextUsage,t.status,o]);return i.jsxs("div",{className:"px-5 py-5 space-y-5 overflow-y-auto h-full",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-2",children:[i.jsx("span",{className:"text-2xs font-semibold text-text-3 font-sans uppercase tracking-wider",children:"Token Burn"}),l&&i.jsx("span",{className:"text-2xs text-accent font-mono animate-pulse",children:"LIVE"})]}),i.jsx(B_,{data:n,isAlive:l,height:56})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[i.jsx(Go,{icon:eT,label:"Burn Rate",value:o>0?`${rt(o)}/m`:"—",color:o>5e3?"text-danger":o>2e3?"text-warning":"text-text-0"}),i.jsx(Go,{icon:U5,label:"Cost",value:Kf(t.costUsd||0),color:"text-text-0"}),i.jsx(Go,{icon:El,label:"Rotations",value:t.rotations||"0",color:"text-text-0"}),i.jsx(Go,{icon:Na,label:"Turns",value:t.turns||"0",color:"text-text-0"})]}),i.jsx(H_,{score:u}),t.prompt&&i.jsxs("div",{children:[i.jsx("span",{className:"text-2xs font-semibold text-text-3 font-sans uppercase tracking-wider block mb-1.5",children:"Task"}),i.jsx("div",{className:"bg-surface-0 rounded-lg px-3 py-2.5 text-xs text-text-2 font-sans leading-relaxed max-h-28 overflow-y-auto border border-border-subtle",children:t.prompt})]}),s.length>0&&i.jsxs("div",{children:[i.jsx("span",{className:"text-2xs font-semibold text-text-3 font-sans uppercase tracking-wider block mb-2",children:"Activity"}),i.jsxs("div",{className:"space-y-0 relative",children:[i.jsx("div",{className:"absolute left-[9px] top-2 bottom-2 w-px bg-border-subtle"}),s.slice(-12).reverse().map((d,O)=>{const m=I_(d.text),p=m.icon;return i.jsxs("div",{className:"flex items-start gap-3 py-1.5 relative",children:[i.jsx("div",{className:le("w-[18px] h-[18px] rounded-full flex items-center justify-center flex-shrink-0 z-10","bg-surface-1 border border-border-subtle"),children:i.jsx(p,{size:9,className:m.color})}),i.jsx("span",{className:"text-2xs text-text-2 font-sans flex-1 line-clamp-1 pt-0.5",children:d.text}),i.jsx("span",{className:"text-2xs text-text-4 font-mono flex-shrink-0 pt-0.5",children:Ct(d.timestamp)})]},O)})]})]})]})}function K_({agent:t}){const n=D(P=>P.addToast),[s,l]=v.useState([]),[o,u]=v.useState(""),[d,O]=v.useState(null),[m,p]=v.useState(""),[x,g]=v.useState(""),[b,S]=v.useState(!1);async function Q(){try{const P=await ee.get(`/agents/${t.id}/mdfiles`);l(P.files||[]),u(P.workingDir||"")}catch{}}v.useEffect(()=>{Q()},[t.id]);async function k(P){try{const N=await ee.get(`/agents/${t.id}/mdfiles/read?path=${encodeURIComponent(P)}`);p(N.content||""),g(N.content||""),O(P)}catch(N){n("error","Failed to read file",N.message)}}async function T(){if(d){S(!0);try{await ee.put(`/agents/${t.id}/mdfiles/write`,{path:d,content:m}),g(m),n("success",`Saved ${d}`)}catch(P){n("error","Save failed",P.message)}S(!1)}}const j=m!==x;return d?i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-border-subtle",children:[i.jsx("button",{onClick:()=>{O(null),p(""),g("")},className:"p-1 text-text-3 hover:text-text-0 cursor-pointer",children:i.jsx(kb,{size:14})}),i.jsx(Dn,{size:12,className:"text-accent"}),i.jsx("span",{className:"text-xs text-text-0 font-sans font-medium flex-1 truncate",children:d}),j&&i.jsx("span",{className:"text-[10px] text-warning font-sans",children:"unsaved"}),i.jsxs("button",{onClick:T,disabled:!j||b,className:le("flex items-center gap-1 px-2.5 py-1 rounded text-2xs font-sans font-medium cursor-pointer transition-colors",j?"bg-accent/15 text-accent hover:bg-accent/25":"text-text-4 opacity-50 cursor-not-allowed"),children:[i.jsx(DT,{size:10}),b?"Saving...":"Save"]})]}),i.jsx("textarea",{value:m,onChange:P=>p(P.target.value),className:"flex-1 w-full px-4 py-3 bg-surface-0 text-[12px] font-mono text-text-1 leading-relaxed resize-none focus:outline-none",spellCheck:!1})]}):i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsxs("div",{className:"flex items-center gap-2 px-4 py-2.5 border-b border-border-subtle",children:[i.jsx(Dn,{size:12,className:"text-text-3"}),i.jsx("span",{className:"text-2xs font-semibold text-text-2 font-sans uppercase tracking-wider flex-1",children:"Markdown Files"}),i.jsx("button",{onClick:Q,className:"p-1 text-text-4 hover:text-text-1 cursor-pointer",children:i.jsx(es,{size:11})})]}),o&&i.jsx("div",{className:"px-4 py-1.5 text-[10px] text-text-4 font-mono truncate border-b border-border-subtle/50",children:o}),i.jsx("div",{className:"flex-1 overflow-y-auto",children:s.length===0?i.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center px-4",children:[i.jsx(Dn,{size:20,className:"text-text-4 mb-2"}),i.jsx("p",{className:"text-xs text-text-3 font-sans",children:"No markdown files found"}),i.jsx("p",{className:"text-[10px] text-text-4 font-sans mt-1",children:"MD files in the agent's working directory will appear here"})]}):i.jsx("div",{className:"py-1",children:s.map(P=>i.jsxs("button",{onClick:()=>k(P.path),className:"w-full flex items-center gap-2.5 px-4 py-2 text-left hover:bg-surface-5 transition-colors cursor-pointer",children:[i.jsx(Dn,{size:13,className:"text-accent flex-shrink-0"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("span",{className:"text-xs text-text-0 font-sans block truncate",children:P.name}),i.jsx("span",{className:"text-[10px] text-text-4 font-mono",children:P.path})]}),i.jsx("span",{className:"text-[10px] text-text-4 font-mono flex-shrink-0",children:P.size>1024?`${(P.size/1024).toFixed(1)}K`:`${P.size}B`})]},P.path))})})]})}const J_={running:"success",starting:"warning",stopped:"default",crashed:"danger",completed:"accent",killed:"default",rotating:"purple"},eZ={running:"Running",starting:"Starting",stopped:"Stopped",crashed:"Crashed",completed:"Done",killed:"Killed",rotating:"Rotating"},tZ=[{id:"command",label:"Chat",icon:ci},{id:"config",label:"Config",icon:Yb},{id:"telemetry",label:"Monitor",icon:rc},{id:"mdfiles",label:"Files",icon:Dn}];function aZ({agent:t}){const n=D(m=>m.addToast),[s,l]=v.useState(!1),[o,u]=v.useState(t.name),d=v.useRef(null);async function O(){const m=o.trim();if(!m||m===t.name){l(!1);return}try{await ee.patch(`/agents/${t.id}`,{name:m.replace(/\s+/g,"-")}),n("success",`Renamed → ${m}`)}catch(p){n("error","Rename failed",p.message),u(t.name)}l(!1)}return s?i.jsxs("div",{className:"flex items-center gap-1 flex-1 min-w-0",children:[i.jsx("input",{ref:d,value:o,onChange:m=>u(m.target.value),onKeyDown:m=>{m.key==="Enter"&&O(),m.key==="Escape"&&(u(t.name),l(!1))},className:"flex-1 min-w-0 h-6 px-1.5 text-sm font-bold bg-surface-0 border border-accent/30 rounded text-text-0 font-sans focus:outline-none focus:ring-1 focus:ring-accent/40",autoFocus:!0}),i.jsx("button",{onClick:O,className:"p-0.5 text-accent hover:text-accent/80 cursor-pointer",children:i.jsx(oa,{size:12})}),i.jsx("button",{onClick:()=>{u(t.name),l(!1)},className:"p-0.5 text-text-4 hover:text-text-1 cursor-pointer",children:i.jsx(Rt,{size:12})})]}):i.jsxs("div",{className:"flex items-center gap-1.5 flex-1 min-w-0 group",children:[i.jsx("h2",{className:"text-sm font-bold text-text-0 font-sans truncate",children:t.name}),i.jsx("button",{onClick:()=>{u(t.name),l(!0)},className:"p-0.5 text-text-4 opacity-0 group-hover:opacity-100 hover:text-text-1 cursor-pointer transition-opacity",children:i.jsx(Cc,{size:10})})]})}function nZ(){const t=D(p=>p.detailPanel),n=D(p=>p.agents),[s,l]=v.useState("command");if((t==null?void 0:t.type)!=="agent")return null;const o=n.find(p=>p.id===t.agentId);if(!o)return null;const u=o.status==="running"||o.status==="starting",d=Math.round((o.contextUsage||0)*100),O=o.spawnedAt||o.createdAt,m=O?Math.floor((Date.now()-new Date(O).getTime())/1e3):0;return Db(o.role),i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsxs("div",{className:"flex-shrink-0",children:[i.jsxs("div",{className:"pl-4 pr-10 pt-3 pb-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(aZ,{agent:o}),i.jsx(We,{variant:J_[o.status]||"default",dot:u?"pulse":void 0,className:"text-2xs flex-shrink-0",children:eZ[o.status]||o.status})]}),i.jsxs("div",{className:"flex items-center gap-2 mt-1 text-2xs text-text-3 font-mono",children:[i.jsx("span",{className:"capitalize",children:o.role}),i.jsx("span",{className:"text-text-4",children:"·"}),i.jsxs("span",{children:[o.provider,":",o.model||"auto"]}),i.jsx("span",{className:"text-text-4",children:"·"}),i.jsxs("span",{children:[rt(o.tokensUsed||0)," tok"]}),d>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-text-4",children:"·"}),i.jsxs("span",{className:le(d>80?"text-danger":d>60?"text-warning":"text-text-3"),children:[d,"% ctx"]})]}),i.jsx("span",{className:"text-text-4",children:"·"}),i.jsx("span",{children:Ac(m)})]})]}),i.jsx("div",{className:"flex items-center px-4 border-b border-border-subtle",children:tZ.map(p=>{const x=p.icon,g=s===p.id;return i.jsxs("button",{onClick:()=>l(p.id),className:le("flex items-center gap-1.5 px-3 py-2 text-2xs font-semibold font-sans transition-all cursor-pointer select-none border-b-2 -mb-px",g?"border-accent text-text-0":"border-transparent text-text-3 hover:text-text-1"),children:[i.jsx(x,{size:11}),p.label]},p.id)})})]}),i.jsxs("div",{className:"flex-1 min-h-0 flex flex-col overflow-hidden",children:[s==="command"&&i.jsx(L_,{agent:o}),s==="config"&&i.jsx(W_,{agent:o}),s==="telemetry"&&i.jsx(F_,{agent:o}),s==="mdfiles"&&i.jsx(K_,{agent:o})]})]})}const jf=v.forwardRef(({className:t,label:n,error:s,mono:l,...o},u)=>i.jsxs("div",{className:"flex flex-col gap-1",children:[n&&i.jsx("label",{className:"text-xs font-medium text-text-2 font-sans",children:n}),i.jsx("input",{ref:u,className:le("h-8 w-full rounded-md px-3 text-sm","bg-surface-1 border border-border text-text-0","placeholder:text-text-4","focus:outline-none focus:ring-1 focus:ring-accent focus:border-accent","disabled:opacity-40 disabled:cursor-not-allowed","transition-colors duration-100",l?"font-mono":"font-sans",s&&"border-danger focus:ring-danger",t),...o}),s&&i.jsx("span",{className:"text-2xs text-danger font-sans",children:s})]}));jf.displayName="Input";const US=v.forwardRef(({className:t,label:n,error:s,mono:l,...o},u)=>i.jsxs("div",{className:"flex flex-col gap-1",children:[n&&i.jsx("label",{className:"text-xs font-medium text-text-2 font-sans",children:n}),i.jsx("textarea",{ref:u,className:le("w-full rounded-md px-3 py-2 text-sm resize-none","bg-surface-1 border border-border text-text-0","placeholder:text-text-4","focus:outline-none focus:ring-1 focus:ring-accent focus:border-accent","disabled:opacity-40 disabled:cursor-not-allowed","transition-colors duration-100",l?"font-mono":"font-sans",s&&"border-danger focus:ring-danger",t),...o}),s&&i.jsx("span",{className:"text-2xs text-danger font-sans",children:s})]}));US.displayName="Textarea";const sZ=[{id:"planner",label:"Planner",desc:"Plans the team and tasks",icon:qb,tier:"Heavy"},{id:"backend",label:"Backend",desc:"APIs, services, databases",icon:Mb,tier:"Medium"},{id:"frontend",label:"Frontend",desc:"UI, components, styling",icon:Df,tier:"Medium"},{id:"fullstack",label:"Fullstack",desc:"End-to-end implementation",icon:dn,tier:"Heavy"},{id:"testing",label:"Testing",desc:"Tests, coverage, QA",icon:If,tier:"Medium"},{id:"devops",label:"DevOps",desc:"CI/CD, infra, deployment",icon:Z5,tier:"Medium"},{id:"docs",label:"Docs",desc:"Documentation, guides",icon:Dn,tier:"Light"},{id:"security",label:"Security",desc:"Audits, vulnerabilities",icon:Fr,tier:"Medium"},{id:"database",label:"Database",desc:"Schema, migrations, queries",icon:Y5,tier:"Medium"},{id:"cmo",label:"CMO",desc:"Marketing, content, growth",icon:$T,tier:"Medium"},{id:"cfo",label:"CFO",desc:"Finance, metrics, forecasting",icon:S5,tier:"Medium"},{id:"ea",label:"EA",desc:"Executive assistant, scheduling",icon:OP,tier:"Light"},{id:"support",label:"Support",desc:"Customer support, FAQs",icon:dT,tier:"Medium"},{id:"analyst",label:"Analyst",desc:"Data analysis, insights",icon:Rc,tier:"Medium"}];function lZ(){const t=D(E=>E.detailPanel),n=D(E=>E.closeDetail),s=D(E=>E.spawnAgent),l=D(E=>E.fetchProviders),o=(t==null?void 0:t.type)==="spawn",[u,d]=v.useState(""),[O,m]=v.useState(""),[p,x]=v.useState(""),[g,b]=v.useState(""),[S,Q]=v.useState(""),[k,T]=v.useState(""),[j,P]=v.useState([]),[N,A]=v.useState(!1);v.useEffect(()=>{o&&(l().then(E=>{P(Array.isArray(E)?E:E.providers||[])}).catch(()=>{}),d(""),m(""),x(""),b(""),Q(""),T(""))},[o,l]);const U=u||O,C=j.find(E=>E.id===g),X=(C==null?void 0:C.models)||[],$=j.filter(E=>E.installed);async function W(){if(U){A(!0);try{const E={role:U,...p&&{name:p.replace(/\s+/g,"-")},...g&&{provider:g},...S&&{model:S},...k&&{prompt:k}};await s(E),n()}catch{}A(!1)}}return i.jsx(qS,{open:o,onOpenChange:E=>{E||n()},children:i.jsx(MS,{title:"Spawn Agent",width:480,children:i.jsxs("div",{className:"flex flex-col h-[calc(100%-57px)]",children:[i.jsxs("div",{className:"flex-1 overflow-y-auto px-5 py-4 space-y-6",children:[i.jsxs("div",{children:[i.jsx("label",{className:"text-xs font-semibold text-text-2 font-sans uppercase tracking-wider block mb-3",children:"Choose Role"}),i.jsx("div",{className:"grid grid-cols-2 gap-2",children:sZ.map(E=>{const ne=Db(E.id),re=u===E.id;return i.jsxs("button",{onClick:()=>{d(E.id),m("")},className:le("flex items-center gap-2.5 p-3 rounded-md border text-left transition-all cursor-pointer",re?"border-accent bg-accent/5":"border-border-subtle bg-surface-1 hover:border-border hover:bg-surface-2"),children:[i.jsx("div",{className:"w-8 h-8 rounded-md flex items-center justify-center flex-shrink-0",style:{background:ne.bg},children:i.jsx(E.icon,{size:16,style:{color:ne.text}})}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"text-xs font-semibold text-text-0 font-sans",children:E.label}),i.jsx("div",{className:"text-2xs text-text-3 font-sans truncate",children:E.desc})]})]},E.id)})}),i.jsx("div",{className:"mt-3",children:i.jsx(jf,{placeholder:"or type a custom role...",value:O,onChange:E=>{m(E.target.value),d("")},className:"text-xs"})})]}),U&&i.jsxs("div",{className:"space-y-4",children:[i.jsx("label",{className:"text-xs font-semibold text-text-2 font-sans uppercase tracking-wider block",children:"Configuration"}),i.jsx(jf,{label:"Name (optional)",value:p,onChange:E=>x(E.target.value),placeholder:`${U}-1`}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx("label",{className:"text-xs font-medium text-text-2 font-sans",children:"Provider"}),i.jsxs("div",{className:"relative",children:[i.jsxs("select",{value:g,onChange:E=>{b(E.target.value),Q("")},className:"w-full h-8 px-3 pr-8 text-sm rounded-md bg-surface-1 border border-border text-text-0 font-sans appearance-none cursor-pointer focus:outline-none focus:ring-1 focus:ring-accent",children:[i.jsx("option",{value:"",children:"Auto"}),$.map(E=>i.jsx("option",{value:E.id,children:E.name},E.id))]}),i.jsx(In,{size:14,className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-3 pointer-events-none"})]})]}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("label",{className:"text-xs font-medium text-text-2 font-sans",children:"Model"}),i.jsxs("div",{className:"relative",children:[i.jsxs("select",{value:S,onChange:E=>Q(E.target.value),disabled:!g,className:"w-full h-8 px-3 pr-8 text-sm rounded-md bg-surface-1 border border-border text-text-0 font-sans appearance-none cursor-pointer focus:outline-none focus:ring-1 focus:ring-accent disabled:opacity-40",children:[i.jsx("option",{value:"",children:"Auto"}),X.map(E=>i.jsx("option",{value:E.id,children:E.name},E.id))]}),i.jsx(In,{size:14,className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-3 pointer-events-none"})]})]})]}),g&&C&&i.jsx("div",{className:"text-2xs text-text-3 font-sans flex items-center gap-2",children:C.hasKey?i.jsx(We,{variant:"success",children:"API key set"}):C.authType==="subscription"?i.jsx(We,{variant:"accent",children:"Subscription"}):i.jsxs(We,{variant:"warning",children:["No API key — set with: groove set-key ",g," YOUR_KEY"]})}),i.jsx(US,{label:"Prompt (optional)",value:k,onChange:E=>T(E.target.value),placeholder:"What should this agent work on?",rows:3})]})]}),i.jsxs("div",{className:"border-t border-border-subtle px-5 py-4 bg-surface-1",children:[U&&i.jsxs("div",{className:"flex items-center gap-2 mb-3 text-xs text-text-3 font-sans",children:[i.jsx("span",{children:"Spawning"}),i.jsx(We,{variant:"accent",children:U}),g&&i.jsxs("span",{children:["on ",(C==null?void 0:C.name)||g]}),p&&i.jsxs("span",{children:["as ",p.replace(/\s+/g,"-")]})]}),i.jsx(je,{variant:"primary",size:"lg",onClick:W,disabled:!U||N,className:"w-full",children:N?"Spawning...":"Spawn Agent"})]})]})})})}function p0({title:t,icon:n,defaultOpen:s=!1,badge:l,children:o,className:u}){const[d,O]=v.useState(s);return i.jsxs("div",{className:le("border-t border-border-subtle",u),children:[i.jsxs("button",{onClick:()=>O(!d),className:"w-full flex items-center gap-2 px-5 py-3 text-left cursor-pointer hover:bg-surface-5/30 transition-colors group",children:[i.jsx(ii,{size:12,className:le("text-text-4 transition-transform duration-200 flex-shrink-0",d&&"rotate-90")}),n&&i.jsx(n,{size:13,className:"text-text-3 flex-shrink-0"}),i.jsx("span",{className:"text-xs font-semibold text-text-2 font-sans uppercase tracking-wider flex-1",children:t}),l&&i.jsx("span",{className:"text-2xs font-mono text-text-4 bg-surface-4 px-1.5 py-0.5 rounded",children:l})]}),d&&i.jsx("div",{className:"px-5 pb-4",children:o})]})}function rZ(){const t=D(g=>g.journalistStatus),n=D(g=>g.fetchJournalist),s=D(g=>g.triggerJournalistCycle),[l,o]=v.useState(!0),[u,d]=v.useState(!1);v.useEffect(()=>{n().then(()=>o(!1));const g=setInterval(n,1e4);return()=>clearInterval(g)},[n]);async function O(){d(!0);try{await s()}catch{}d(!1)}if(l)return i.jsxs("div",{className:"p-5 space-y-4",children:[i.jsx(Nt,{className:"h-6 w-32 rounded"}),i.jsx(Nt,{className:"h-20 rounded-md"}),i.jsx(Nt,{className:"h-20 rounded-md"})]});const m=t||{},p=m.lastSynthesis,x=m.history||[];return i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsxs("div",{className:"px-5 py-4 border-b border-border-subtle flex items-center gap-2",children:[i.jsx(Ir,{size:16,className:"text-accent"}),i.jsx("h3",{className:"text-sm font-semibold text-text-0 font-sans flex-1",children:"Journalist"}),i.jsxs(je,{variant:"secondary",size:"sm",onClick:O,disabled:u,className:"gap-1.5 text-2xs",children:[i.jsx(es,{size:11,className:u?"animate-spin":""}),u?"Running...":"Run Synthesis"]})]}),i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"px-5 py-4 space-y-5",children:[i.jsxs("div",{className:"flex items-center gap-3 text-2xs text-text-3 font-sans",children:[i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(rc,{size:10}),i.jsxs("span",{children:[m.cycleCount||0," cycles"]})]}),m.lastCycleTime&&i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(oc,{size:10}),i.jsxs("span",{children:["Last: ",Ct(m.lastCycleTime)]})]}),i.jsx(We,{variant:m.cycleCount>0?"success":"default",className:"text-2xs",children:m.cycleCount>0?"Active":"Idle"})]}),(p==null?void 0:p.summary)&&i.jsxs("div",{className:"space-y-2",children:[i.jsxs("label",{className:"text-xs font-semibold text-text-1 font-sans flex items-center gap-1.5",children:[i.jsx(Dn,{size:12,className:"text-text-3"}),"Latest Summary"]}),i.jsx("div",{className:"bg-surface-0 rounded-lg border border-border-subtle px-3.5 py-3 text-xs text-text-2 font-sans leading-relaxed",children:p.summary})]}),(p==null?void 0:p.projectMap)&&i.jsx(p0,{title:"Project Map",icon:QT,children:i.jsx("div",{className:"bg-surface-0 rounded-lg border border-border-subtle px-3.5 py-3 text-xs text-text-2 font-mono leading-relaxed max-h-64 overflow-y-auto whitespace-pre-wrap",children:p.projectMap})}),(p==null?void 0:p.decisions)&&i.jsx(p0,{title:"Decisions Log",icon:Dn,children:i.jsx("div",{className:"bg-surface-0 rounded-lg border border-border-subtle px-3.5 py-3 text-xs text-text-2 font-mono leading-relaxed max-h-64 overflow-y-auto whitespace-pre-wrap",children:p.decisions})}),x.length>0&&i.jsxs("div",{className:"space-y-2",children:[i.jsxs("label",{className:"text-xs font-semibold text-text-1 font-sans flex items-center gap-1.5",children:[i.jsx(oc,{size:12,className:"text-text-3"}),"History (",x.length,")"]}),i.jsx("div",{className:"space-y-1.5",children:x.slice().reverse().slice(0,20).map((g,b)=>i.jsxs("div",{className:"bg-surface-0 rounded-md border border-border-subtle px-3 py-2",children:[i.jsxs("div",{className:"flex items-center gap-2 text-2xs",children:[i.jsxs(We,{variant:"default",className:"text-2xs",children:["Cycle ",g.cycle]}),i.jsxs("span",{className:"text-text-4 font-sans",children:[g.agentCount," agent",g.agentCount!==1?"s":""]}),i.jsx("span",{className:"text-text-4 font-sans ml-auto",children:Ct(g.timestamp)})]}),g.summary&&i.jsx("p",{className:"text-xs text-text-2 font-sans mt-1 leading-relaxed",children:g.summary})]},b))})]}),!p&&x.length===0&&i.jsxs("div",{className:"text-center py-8 text-text-4 font-sans",children:[i.jsx(Ir,{size:28,className:"mx-auto mb-2"}),i.jsx("p",{className:"text-sm",children:"No synthesis data yet"}),i.jsx("p",{className:"text-2xs mt-1",children:"The journalist runs automatically when agents are active, or trigger manually above"})]})]})})]})}function iZ({children:t,height:n,onHeightChange:s,visible:l,fullHeight:o,tabs:u,activeTab:d,onSelectTab:O,onAddTab:m,onCloseTab:p,onToggleFullHeight:x,onMinimize:g}){const b=v.useRef(!1),S=v.useRef(0),Q=v.useRef(0),k=v.useCallback(j=>{if(o)return;j.preventDefault(),b.current=!0,S.current=j.clientY,Q.current=n;function P(A){if(!b.current)return;const U=S.current-A.clientY,C=Math.min(Math.max(Q.current+U,120),600);s(C)}function N(){b.current=!1,document.removeEventListener("mousemove",P),document.removeEventListener("mouseup",N)}document.addEventListener("mousemove",P),document.addEventListener("mouseup",N)},[n,s,o]);if(!l)return null;const T=u||[{id:"default",label:"Terminal"}];return i.jsxs("div",{className:"flex flex-col border-t border-border bg-surface-0 relative",style:o?{flex:1,minHeight:0}:{height:n,flexShrink:0},children:[!o&&i.jsx("div",{className:"absolute top-0 left-0 right-0 h-1 cursor-row-resize hover:bg-accent/30 transition-colors z-10",onMouseDown:k}),i.jsxs("div",{className:"flex items-center h-9 bg-surface-1 border-b border-border-subtle flex-shrink-0 pl-3 pr-1.5",children:[i.jsxs("div",{className:"flex items-center gap-0 flex-1 min-w-0 overflow-x-auto scrollbar-none",children:[T.map(j=>i.jsxs("button",{onClick:()=>O==null?void 0:O(j.id),className:le("flex items-center gap-1.5 pl-2.5 pr-1 h-7 text-2xs font-sans cursor-pointer select-none transition-colors flex-shrink-0 rounded-t",j.id===d?"text-text-0 bg-surface-0":"text-text-3 hover:text-text-1 hover:bg-surface-0/50"),children:[i.jsx(ui,{size:10}),i.jsx("span",{className:"truncate max-w-[80px]",children:j.label}),T.length>1&&i.jsx("button",{onClick:P=>{P.stopPropagation(),p==null||p(j.id)},className:"ml-0.5 p-0.5 rounded hover:bg-surface-5 text-text-4 hover:text-text-1 cursor-pointer",children:i.jsx(Rt,{size:9})})]},j.id)),i.jsx("button",{onClick:m,className:"flex items-center justify-center w-6 h-6 text-text-4 hover:text-text-1 hover:bg-surface-0/50 rounded cursor-pointer transition-colors flex-shrink-0 ml-0.5",title:"New terminal",children:i.jsx(Fn,{size:11})})]}),i.jsx("div",{className:"flex items-center gap-0.5 flex-shrink-0 ml-2",children:o?i.jsx("button",{onClick:g,className:"p-1.5 rounded text-text-3 hover:text-text-0 hover:bg-surface-5 cursor-pointer transition-colors",title:"Restore",children:i.jsx(zT,{size:12})}):i.jsx("button",{onClick:x,className:"p-1.5 rounded text-text-3 hover:text-text-0 hover:bg-surface-5 cursor-pointer transition-colors",title:"Maximize",children:i.jsx(wT,{size:12})})})]}),i.jsx("div",{className:"flex-1 min-h-0 p-2",children:t})]})}const oZ={background:"#1a1e25",foreground:"#bcc2cd",cursor:"#33afbc",cursorAccent:"#1a1e25",selectionBackground:"rgba(51, 175, 188, 0.25)",black:"#1a1e25",red:"#e06c75",green:"#4ae168",yellow:"#e5c07b",blue:"#61afef",magenta:"#c678dd",cyan:"#33afbc",white:"#bcc2cd",brightBlack:"#505862",brightRed:"#e06c75",brightGreen:"#4ae168",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#33afbc",brightWhite:"#e6e6e6"};let FO=0;function cZ({tabId:t,visible:n}){const s=v.useRef(null),l=v.useRef(null),o=v.useRef(null),u=v.useRef(null),d=v.useRef(!1);return v.useEffect(()=>{if(!s.current||d.current)return;d.current=!0;const O=new Lj({theme:oZ,fontFamily:"'JetBrains Mono Variable', 'SF Mono', monospace",fontSize:13,lineHeight:1.4,cursorBlink:!0,cursorStyle:"bar",scrollback:5e3,allowProposedApi:!0}),m=new Dj;O.loadAddon(m),O.loadAddon(new Wj),O.open(s.current),l.current=O,requestAnimationFrame(()=>m.fit());function p(){const g=D.getState().ws;if(!g||g.readyState!==WebSocket.OPEN){setTimeout(p,500);return}g.send(JSON.stringify({type:"terminal:spawn",cols:O.cols,rows:O.rows}));function b(S){let Q;try{Q=JSON.parse(S.data)}catch{return}Q.type==="terminal:spawned"&&!o.current?o.current=Q.id:Q.type==="terminal:output"&&Q.id===o.current?O.write(Q.data):Q.type==="terminal:exit"&&Q.id===o.current&&(O.write(`\r
594
+ `),lang:O});continue}if(/^#{1,3}\s/.test(o)||/^\*\*[^*]+:\*\*\s*$/.test(o.trim())){const d=o.replace(/^#+\s*/,"").replace(/^\*\*/,"").replace(/:\*\*\s*$/,":").trim();n.push({type:"heading",content:d}),l++;continue}if(/^\s*[-*]\s/.test(o)){const d=[];for(;l<s.length&&/^\s*[-*]\s/.test(s[l]);)d.push(s[l].replace(/^\s*[-*]\s+/,"").trim()),l++;n.push({type:"list",items:d});continue}if(/^\s*\d+[\.)]\s/.test(o)){const d=[];for(;l<s.length&&/^\s*\d+[\.)]\s/.test(s[l]);)d.push(s[l].replace(/^\s*\d+[\.)]\s+/,"").trim()),l++;n.push({type:"numbered",items:d});continue}if(!o.trim()){l++;continue}if(/^(Note|Warning|Important|IMPORTANT|TODO):/i.test(o.trim())){n.push({type:"note",content:o.trim()}),l++;continue}const u=[];for(;l<s.length&&s[l].trim()&&!/^#{1,3}\s/.test(s[l])&&!/^\s*[-*]\s/.test(s[l])&&!/^\s*\d+[\.)]\s/.test(s[l])&&!s[l].trimStart().startsWith("```");)u.push(s[l].trim()),l++;u.length>0&&n.push({type:"para",content:u.join(" ")})}return i.jsx("div",{className:"space-y-2",children:n.map((o,u)=>{switch(o.type){case"heading":return i.jsxs("div",{className:"flex items-center gap-1.5 pt-1.5 first:pt-0",children:[i.jsx("div",{className:"w-1 h-3.5 rounded-full bg-accent/40 flex-shrink-0"}),i.jsx("span",{className:"text-[12px] font-semibold text-text-0 font-sans",children:i.jsx(yl,{text:o.content})})]},u);case"list":return i.jsx("div",{className:"space-y-1 pl-2",children:o.items.map((d,O)=>i.jsxs("div",{className:"flex gap-2 text-[12px] text-text-0 font-sans leading-relaxed",children:[i.jsx("span",{className:"text-accent/50 mt-0.5 flex-shrink-0",children:"-"}),i.jsx("span",{className:"min-w-0",children:i.jsx(yl,{text:d})})]},O))},u);case"numbered":return i.jsx("div",{className:"space-y-1 pl-2",children:o.items.map((d,O)=>i.jsxs("div",{className:"flex gap-2 text-[12px] text-text-0 font-sans leading-relaxed",children:[i.jsxs("span",{className:"text-text-4 font-mono w-4 text-right flex-shrink-0",children:[O+1,"."]}),i.jsx("span",{className:"min-w-0",children:i.jsx(yl,{text:d})})]},O))},u);case"code":return i.jsx("pre",{className:"p-2.5 rounded-md bg-[#0d1117] text-[11px] font-mono text-[#c9d1d9] overflow-x-auto whitespace-pre-wrap border border-white/[0.06] leading-relaxed",children:o.content},u);case"note":return i.jsxs("div",{className:"flex items-start gap-1.5 px-2.5 py-1.5 rounded-md bg-warning/6 border border-warning/12",children:[i.jsx(cn,{size:10,className:"text-warning mt-0.5 flex-shrink-0"}),i.jsx("span",{className:"text-[11px] text-warning/80 font-sans",children:i.jsx(yl,{text:o.content})})]},u);case"para":default:return i.jsx("p",{className:"text-[12px] text-text-0 font-sans leading-relaxed",children:i.jsx(yl,{text:o.content})},u)}})})}function Y_({text:t}){if(!t)return null;const n=t.split(/(```[\s\S]*?```)/g);return i.jsx("span",{children:n.map((s,l)=>{if(s.startsWith("```")&&s.endsWith("```")){const o=s.slice(3,-3).replace(/^\w+\n/,"");return i.jsx("pre",{className:"my-1.5 p-2 rounded-md bg-[#0d1117] text-[11px] font-mono text-[#c9d1d9] overflow-x-auto whitespace-pre-wrap border border-white/[0.06]",children:o},l)}return i.jsx("span",{children:i.jsx(yl,{text:s})},l)})})}function V_({msg:t}){const n=t.isQuery;return i.jsx("div",{className:"flex justify-end pl-8",children:i.jsxs("div",{className:"max-w-[90%]",children:[n&&i.jsxs("div",{className:"flex items-center justify-end gap-1 mb-1",children:[i.jsx(ic,{size:9,className:"text-info"}),i.jsx("span",{className:"text-2xs text-info font-sans font-medium",children:"Query"})]}),i.jsx("div",{className:le("px-3.5 py-2.5 rounded-lg border","bg-info/10 border-info/25"),children:i.jsx("div",{className:"text-[12px] font-sans whitespace-pre-wrap break-words leading-relaxed text-text-0",children:i.jsx(Y_,{text:t.text})})}),i.jsx("div",{className:"text-[10px] text-text-4 font-sans mt-1 text-right",children:Ct(t.timestamp)})]})})}function U_({msg:t,agent:n}){var u,d;const[s,l]=v.useState(((u=t.text)==null?void 0:u.length)>600),o=((d=t.text)==null?void 0:d.length)>600;return i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx("span",{className:"text-2xs font-semibold text-text-1 font-sans",children:(n==null?void 0:n.name)||"Agent"}),i.jsx("span",{className:"text-2xs text-text-4 font-sans",children:n==null?void 0:n.role}),i.jsx("span",{className:"text-[10px] text-text-4 font-sans ml-auto",children:Ct(t.timestamp)})]}),i.jsx("div",{className:"border-l border-accent pl-3.5 py-1",children:i.jsx(M_,{text:s?t.text.slice(0,600)+"...":t.text})}),s&&i.jsxs("button",{onClick:()=>l(!1),className:"ml-3.5 mt-1.5 flex items-center gap-1.5 text-[11px] text-accent/70 hover:text-accent font-sans font-medium cursor-pointer transition-colors",children:[i.jsx(In,{size:11}),"Show full response"]}),o&&!s&&i.jsxs("button",{onClick:()=>l(!0),className:"ml-3.5 mt-1.5 flex items-center gap-1.5 text-[11px] text-accent/70 hover:text-accent font-sans font-medium cursor-pointer transition-colors",children:[i.jsx(In,{size:11,className:"rotate-180"}),"Collapse"]})]})}function G_({msg:t}){return i.jsxs("div",{className:"flex items-center gap-3 py-2",children:[i.jsx("div",{className:"flex-1 h-px bg-border-subtle"}),i.jsx("span",{className:"text-[10px] text-text-4 font-sans flex-shrink-0 uppercase tracking-wide",children:t.text}),i.jsx("div",{className:"flex-1 h-px bg-border-subtle"})]})}function L_({entries:t}){var u;const[n,s]=v.useState(0);v.useEffect(()=>{if(t.length<=1)return;const d=setInterval(()=>s(O=>(O+1)%t.length),1500);return()=>clearInterval(d)},[t.length]);const l=t[Math.min(n,t.length-1)];VS(l.text);const o=((u=l.text)==null?void 0:u.length)>60?l.text.slice(0,60)+"...":l.text;return i.jsxs("div",{className:"ml-7 flex items-center gap-2 px-3 py-2 rounded-md bg-surface-3/50 border border-border-subtle/30",children:[i.jsx(Gf,{size:11,className:"text-accent animate-spin flex-shrink-0"}),i.jsx("span",{className:"text-[11px] text-text-2 font-mono truncate flex-1 min-w-0 transition-opacity duration-300",children:o}),t.length>1&&i.jsx("span",{className:"text-[10px] text-text-4 font-mono flex-shrink-0",children:t.length})]})}function D_({agent:t}){const n=D(m=>m.activityLog[t.id])||Qf,s=n[n.length-1],l=s?VS(s.text):null,o=(l==null?void 0:l.icon)||dn,u=s&&Date.now()-s.timestamp<1e4,d=u&&s.text?s.text.length>60?s.text.slice(0,60)+"...":s.text:null,O=Math.round((t.contextUsage||0)*100);return i.jsxs("div",{className:"flex items-center gap-3 px-4 h-8 border-b border-border-subtle bg-surface-1/80 flex-shrink-0",children:[i.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[i.jsxs("div",{className:"relative flex items-center justify-center w-4 h-4",children:[i.jsx("span",{className:"absolute inset-0 rounded-full bg-accent/15 animate-ping",style:{animationDuration:"2s"}}),i.jsx("span",{className:"relative w-1.5 h-1.5 rounded-full bg-accent"})]}),u?i.jsxs(i.Fragment,{children:[i.jsx(o,{size:10,className:le(l.color,"flex-shrink-0")}),i.jsx("span",{className:"text-[11px] text-text-2 font-sans truncate",children:d})]}):i.jsx("span",{className:"text-[11px] text-text-3 font-sans",children:"Working..."})]}),i.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[i.jsx("span",{className:"text-[10px] text-text-4 font-mono",children:W_(t.tokensUsed)}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("div",{className:"w-14 h-1 rounded-full bg-surface-4 overflow-hidden",children:i.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${O}%`,background:O>=75?"var(--color-danger)":O>=50?"var(--color-warning)":"var(--color-accent)"}})}),i.jsxs("span",{className:"text-[10px] text-text-4 font-mono w-7 text-right",children:[O,"%"]})]})]})]})}function W_(t){return t?t>=1e6?(t/1e6).toFixed(1)+"M":t>=1e3?(t/1e3).toFixed(1)+"K":String(t):"0"}function B_({agent:t}){const[n,s]=v.useState([]),l=[{text:`Initializing ${t.name}`,delay:0},{text:`Role: ${t.role}`,delay:400},{text:`Provider: ${t.provider||"claude-code"}`,delay:700},{text:"Loading workspace context",delay:1e3},{text:"Scanning project structure",delay:1400},{text:"Session active",delay:1900}];return v.useEffect(()=>{const o=l.map((u,d)=>setTimeout(()=>s(O=>[...O,d]),u.delay));return()=>o.forEach(clearTimeout)},[]),i.jsxs("div",{className:"flex flex-col px-4 pt-6",children:[i.jsxs("div",{className:"flex items-center gap-3 mb-5",children:[i.jsxs("div",{className:"relative w-9 h-9",children:[i.jsx("span",{className:"absolute inset-0 rounded-full border-2 border-accent/20 animate-ping",style:{animationDuration:"2s"}}),i.jsx("span",{className:"absolute inset-0 rounded-full border-2 border-transparent border-t-accent animate-spin",style:{animationDuration:"1s"}}),i.jsx("span",{className:"absolute inset-[5px] rounded-full bg-accent/8"})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-bold text-text-0 font-sans",children:t.name}),i.jsx("p",{className:"text-2xs text-accent font-mono",children:"starting up"})]})]}),i.jsx("div",{className:"space-y-2 pl-3 border-l border-accent/15",children:l.map((o,u)=>{const d=n.includes(u),O=u===l.length-1;return i.jsxs("div",{className:le("flex items-center gap-2.5 transition-all duration-300",d?"opacity-100 translate-x-0":"opacity-0 -translate-x-2"),children:[i.jsx("span",{className:le("w-1 h-1 rounded-full flex-shrink-0",O&&d?"bg-accent":d?"bg-text-3":"bg-transparent")}),i.jsx("span",{className:le("text-[11px] font-mono",O&&d?"text-accent":"text-text-3"),children:o.text}),O&&d&&i.jsxs("span",{className:"flex gap-0.5 ml-1",children:[i.jsx("span",{className:"w-1 h-1 rounded-full bg-accent animate-pulse",style:{animationDelay:"0ms"}}),i.jsx("span",{className:"w-1 h-1 rounded-full bg-accent animate-pulse",style:{animationDelay:"200ms"}}),i.jsx("span",{className:"w-1 h-1 rounded-full bg-accent animate-pulse",style:{animationDelay:"400ms"}})]})]},u)})})]})}function H_({agent:t}){const n=D(j=>j.chatHistory[t.id])||Qf,s=D(j=>j.activityLog[t.id])||Qf,l=D(j=>j.instructAgent),o=D(j=>j.queryAgent),[u,d]=v.useState(""),[O,m]=v.useState("instruct"),[p,x]=v.useState(!1),g=v.useRef(null),b=v.useRef(null),S=v.useMemo(()=>{var X;const j=[],P=new Set;for(const $ of n){const W=`${$.from}:${(X=$.text)==null?void 0:X.slice(0,100)}`;j.find(ne=>{var re;return ne.kind==="chat"&&`${ne.from}:${(re=ne.text)==null?void 0:re.slice(0,100)}`===W&&Math.abs(ne.ts-$.timestamp)<5e3})||(j.push({...$,kind:"chat",ts:$.timestamp}),P.add($.text))}const N=P,A=s.slice(-30);for(const $ of A)($.text||"").trim()&&!N.has($.text)&&j.push({...$,kind:"activity",ts:$.timestamp});j.sort(($,W)=>$.ts-W.ts);const U=[];let C=[];for(const $ of j)$.kind==="activity"?C.push($):(C.length>0&&(U.push({kind:"activity-group",entries:C}),C=[]),U.push($));return C.length>0&&U.push({kind:"activity-group",entries:C}),U},[n,s]);v.useEffect(()=>{g.current&&requestAnimationFrame(()=>{g.current&&(g.current.scrollTop=g.current.scrollHeight)})},[S.length]);async function Q(){var P;const j=u.trim();if(!(!j||p)){if(j==="/rotate"){const N=D.getState().rotateAgent;d("");try{await N(t.id)}catch{}return}d(""),x(!0);try{O==="query"?await o(t.id,j):await l(t.id,j)}catch{}x(!1),(P=b.current)==null||P.focus()}}function k(j){j.key==="Enter"&&!j.shiftKey&&(j.preventDefault(),Q())}const T=t.status==="running"||t.status==="starting";return i.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[T&&i.jsx(D_,{agent:t}),i.jsxs("div",{ref:g,className:"flex-1 overflow-y-auto px-4 py-4 space-y-4",children:[!S.some(j=>j.from==="agent"||j.kind==="activity-group")&&(T?i.jsx(B_,{agent:t}):i.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center py-8",children:[i.jsx("div",{className:"w-10 h-10 rounded-xl bg-surface-3 flex items-center justify-center mb-3",children:i.jsx(ci,{size:18,className:"text-text-4"})}),i.jsx("p",{className:"text-sm font-semibold text-text-0 font-sans",children:t.name}),i.jsx("p",{className:"text-xs text-text-3 font-sans mt-1",children:"Session complete — send a message to continue"})]})),S.map((j,P)=>j.kind==="activity-group"?i.jsx(L_,{entries:j.entries},`grp-${P}`):j.from==="user"?i.jsx(V_,{msg:j},`msg-${P}`):j.from==="system"?i.jsx(G_,{msg:j},`msg-${P}`):i.jsx(U_,{msg:j,agent:t},`msg-${P}`)),p&&i.jsxs("div",{className:"flex items-center gap-2 ml-7 py-2",children:[i.jsx("div",{className:"w-5 h-5 rounded-md bg-accent/12 flex items-center justify-center",children:i.jsx(dn,{size:10,className:"text-accent"})}),i.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-2 rounded-2xl bg-surface-2/60 border border-border-subtle",children:[i.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-accent/60 animate-pulse",style:{animationDelay:"0ms"}}),i.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-accent/60 animate-pulse",style:{animationDelay:"200ms"}}),i.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-accent/60 animate-pulse",style:{animationDelay:"400ms"}})]})]})]}),i.jsxs("div",{className:"border-t border-border px-4 py-3 bg-surface-1/50 flex-shrink-0",children:[i.jsxs("div",{className:"flex items-center gap-1 mb-2",children:[i.jsxs("button",{onClick:()=>m("instruct"),className:le("flex items-center gap-1.5 px-2.5 py-1 rounded-md text-[11px] font-sans font-medium transition-colors cursor-pointer",O==="instruct"?"bg-accent/12 text-accent border border-accent/20":"text-text-3 hover:text-text-1 hover:bg-surface-3"),children:[i.jsx(Cc,{size:10}),"Instruct"]}),i.jsxs("button",{onClick:()=>m("query"),className:le("flex items-center gap-1.5 px-2.5 py-1 rounded-md text-[11px] font-sans font-medium transition-colors cursor-pointer",O==="query"?"bg-info/12 text-info border border-info/20":"text-text-3 hover:text-text-1 hover:bg-surface-3"),children:[i.jsx(ic,{size:10}),"Query"]}),i.jsx("span",{className:"text-[10px] text-text-4 font-sans ml-auto",children:O==="query"?"Read-only — agent keeps working":T?"Directs the agent":"Continues the session"})]}),i.jsxs("div",{className:le("flex items-end gap-2 rounded-xl border bg-surface-0 p-1 transition-colors",O==="query"?"border-info/20 focus-within:border-info/40":"border-border-subtle focus-within:border-accent/30"),children:[i.jsx("textarea",{ref:b,value:u,onChange:j=>d(j.target.value),onKeyDown:k,placeholder:O==="query"?"Ask about this agent's work...":T?"Send an instruction...":"Continue this session...",rows:1,className:le("flex-1 resize-none px-3 py-2 text-[13px]","bg-transparent text-text-0 font-sans","placeholder:text-text-4","focus:outline-none","max-h-[120px] min-h-[36px]"),style:{height:Math.min(Math.max(36,u.split(`
595
+ `).length*20),120)}}),i.jsx("button",{onClick:Q,disabled:!u.trim()||p,className:le("w-9 h-9 flex items-center justify-center rounded-lg transition-all cursor-pointer flex-shrink-0 mb-px","disabled:opacity-15 disabled:cursor-not-allowed",u.trim()?O==="query"?"bg-info text-white hover:bg-info/85":"bg-accent text-white hover:bg-accent/85":"bg-transparent text-text-4"),children:p?i.jsx(Gf,{size:15,className:"animate-spin"}):i.jsx(Bf,{size:15})})]})]})]})}function IO({options:t,value:n,onChange:s}){return i.jsx("div",{className:"flex bg-surface-0 rounded-lg p-0.5 border border-border-subtle",children:t.map(l=>i.jsx("button",{onClick:()=>s(l.value),className:le("flex-1 px-3 py-1.5 text-2xs font-semibold font-sans rounded-md transition-all cursor-pointer",n===l.value?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:l.label},l.value))})}function ha({label:t,icon:n,children:s,description:l}){return i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{children:[i.jsxs("label",{className:"flex items-center gap-1.5 text-xs font-semibold text-text-1 font-sans",children:[n&&i.jsx(n,{size:13,className:"text-text-3"}),t]}),l&&i.jsx("p",{className:"text-2xs text-text-4 font-sans mt-0.5",children:l})]}),s]})}function I_({agent:t}){const n=D(Q=>Q.killAgent),s=D(Q=>Q.rotateAgent),l=D(Q=>Q.spawnAgent),o=D(Q=>Q.closeDetail),u=D(Q=>Q.addToast),[d,O]=v.useState(null),[m,p]=v.useState(!1),x=t.status==="running"||t.status==="starting";async function g(){O("rotate");try{await s(t.id)}catch{}O(null)}async function b(){if(!m){p(!0),setTimeout(()=>p(!1),3e3);return}O("kill");try{await n(t.id),o()}catch{}O(null),p(!1)}async function S(){O("clone");try{await l({role:t.role,provider:t.provider,model:t.model,name:`${t.name}-clone`,scope:t.scope,workingDir:t.workingDir}),u("success",`Cloned ${t.name}`)}catch{}O(null)}return x?i.jsx("div",{className:"space-y-2",children:i.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[i.jsxs(je,{variant:"primary",size:"md",onClick:g,disabled:d==="rotate",className:"gap-1.5",children:[i.jsx(El,{size:12,className:d==="rotate"?"animate-spin":""}),"Rotate"]}),i.jsxs(je,{variant:"info",size:"md",onClick:S,disabled:!!d,className:"gap-1.5",children:[i.jsx(cf,{size:12})," Clone"]}),i.jsxs(je,{variant:"danger",size:"md",onClick:b,disabled:d==="kill",className:"gap-1.5",children:[i.jsx(Hf,{size:12}),m?"Confirm":"Kill"]})]})}):i.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[i.jsxs(je,{variant:"info",size:"md",onClick:S,disabled:!!d,className:"gap-1.5",children:[i.jsx(cf,{size:12})," Clone"]}),i.jsxs(je,{variant:"danger",size:"md",onClick:b,disabled:d==="kill",className:"gap-1.5",children:[i.jsx(Xc,{size:12}),m?"Confirm":"Remove"]})]})}function F_({agent:t}){var Xe;const n=D(L=>L.addToast),[s,l]=v.useState([]),[o,u]=v.useState(t.model||""),[d,O]=v.useState(""),[m,p]=v.useState(t.effort||"default"),[x,g]=v.useState(!1),[b,S]=v.useState(""),[Q,k]=v.useState(null),[T,j]=v.useState(!1),[P,N]=v.useState(null),[A,U]=v.useState(t.routingMode||"auto"),[C,X]=v.useState([]),[$,W]=v.useState("hr"),[E,ne]=v.useState("1"),[re,xe]=v.useState(!1),ie=t.status==="running"||t.status==="starting";v.useEffect(()=>{J(),ee.get("/skills/installed").then(oe=>X(Array.isArray(oe)?oe:oe.skills||[])).catch(()=>{});function L(){J()}return window.addEventListener("groove:providers-changed",L),()=>window.removeEventListener("groove:providers-changed",L)},[]);function J(){ee.get("/providers").then(L=>l(Array.isArray(L)?L:[])).catch(()=>{})}v.useEffect(()=>{u(t.model||""),ee.get(`/agents/${t.id}/routing/recommend`).then(L=>{U((L==null?void 0:L.mode)||"fixed")}).catch(()=>{})},[t.id,t.model]);const z=s.find(L=>L.id===t.provider);async function B(L,oe){u(oe);try{await ee.patch(`/agents/${t.id}`,{model:oe}),n("success",`Model → ${oe}`)}catch(ze){n("error","Model swap failed",ze.message)}}async function I(L){try{await ee.patch(`/agents/${t.id}`,{workingDir:L}),n("success",`Working dir → ${L.split("/").pop()||L}`)}catch(oe){n("error","Update failed",oe.message)}}async function fe(L){p(L);try{await ee.patch(`/agents/${t.id}`,{effort:L}),n("success",`Effort → ${L}`)}catch(oe){n("error","Update failed",oe.message)}}async function te(L){if(!L.trim())return;const oe=[...t.scope||[],L.trim()];try{await ee.patch(`/agents/${t.id}`,{scope:oe}),O("")}catch(ze){n("error","Scope update failed",ze.message)}}async function Ae(L){const oe=(t.scope||[]).filter((ze,Ot)=>Ot!==L);try{await ee.patch(`/agents/${t.id}`,{scope:oe})}catch(ze){n("error","Scope update failed",ze.message)}}async function Se(L){if(b.trim())try{await ee.post(`/credentials/${L}`,{key:b.trim()}),n("success",`API key set for ${L}`),S(""),k(null),J(),window.dispatchEvent(new CustomEvent("groove:providers-changed"))}catch(oe){n("error","Failed to set key",oe.message)}}const ve=t.spawnedAt||t.createdAt;return i.jsxs("div",{className:"px-5 py-5 space-y-6 overflow-y-auto h-full",children:[i.jsx(ha,{label:"Active Model",icon:Yf,children:i.jsxs("div",{className:"bg-surface-0 rounded-lg border border-border-subtle px-3.5 py-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-sm font-bold font-mono text-text-0",children:t.model||"auto"}),i.jsx("div",{className:"text-2xs text-text-3 font-sans mt-0.5",children:(z==null?void 0:z.name)||t.provider})]}),(z==null?void 0:z.canHotSwap)&&ie&&i.jsxs(We,{variant:"accent",className:"text-2xs gap-1",children:[i.jsx(Na,{size:8})," Hot-swap"]})]}),((Xe=z==null?void 0:z.models)==null?void 0:Xe.length)>1&&i.jsx("div",{className:"flex flex-wrap gap-1.5 mt-3 pt-3 border-t border-border-subtle",children:z.models.map(L=>{const oe=L.id===t.model,ze=!ie||z.canHotSwap;return i.jsx("button",{onClick:()=>ze&&B(t.provider,L.id),disabled:!ze,className:le("px-2.5 py-1 rounded-md text-xs font-mono transition-all",ze?"cursor-pointer":"cursor-not-allowed opacity-40",oe?"bg-accent/15 text-accent font-semibold":"bg-surface-4 text-text-2 hover:bg-surface-5 hover:text-text-0"),children:L.name||L.id},L.id)})})]})}),i.jsx(I_,{agent:t}),i.jsxs(ha,{label:"Providers",icon:Ig,description:"Click a provider to see its models and connection status.",children:[i.jsx("div",{className:"space-y-1.5",children:s.map(L=>{const oe=L.id===t.provider,ze=L.installed||L.hasKey,Ot=P===L.id,_e=L.models||[];return i.jsxs("div",{className:"rounded-lg border border-border-subtle bg-surface-0 overflow-hidden",children:[i.jsxs("button",{onClick:()=>N(Ot?null:L.id),className:"w-full flex items-center gap-2.5 px-3 py-2 cursor-pointer hover:bg-surface-4/50 transition-colors",children:[i.jsx("div",{className:le("w-2 h-2 rounded-full flex-shrink-0",ze?"bg-success":"bg-text-4")}),i.jsx("span",{className:le("text-xs font-semibold font-sans flex-1 text-left",ze?"text-text-0":"text-text-3"),children:L.name||L.id}),oe&&i.jsx(We,{variant:"accent",className:"text-2xs",children:"Active"}),!ze&&i.jsx("span",{className:"text-2xs text-text-4 font-sans",children:L.authType==="local"?"Not installed":"No key"}),i.jsx(In,{size:12,className:le("text-text-4 transition-transform",Ot&&"rotate-180")})]}),Ot&&L.authType==="local"&&i.jsx("div",{className:"border-t border-border-subtle",children:i.jsx(sS,{isInstalled:ze,onModelChange:J})}),Ot&&L.authType!=="local"&&i.jsxs("div",{className:"border-t border-border-subtle",children:[(!ze||L.hasKey)&&i.jsx("div",{className:"px-3 py-2 bg-surface-1/50",children:Q===L.id?i.jsxs("div",{className:"flex gap-1.5",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx("input",{value:b,onChange:tt=>S(tt.target.value),onKeyDown:tt=>tt.key==="Enter"&&Se(L.id),type:T?"text":"password",placeholder:`${L.name||L.id} API key...`,className:"w-full h-7 px-2.5 pr-7 text-2xs bg-surface-0 border border-border rounded-md text-text-0 font-mono placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent",autoFocus:!0}),i.jsx("button",{onClick:()=>j(!T),className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-4 hover:text-text-2 cursor-pointer",children:T?i.jsx(Uf,{size:10}):i.jsx(oi,{size:10})})]}),i.jsx(je,{variant:"primary",size:"sm",onClick:()=>Se(L.id),disabled:!b.trim(),className:"h-7 px-2 text-2xs",children:"Save"}),i.jsx(je,{variant:"ghost",size:"sm",onClick:()=>{k(null),S("")},className:"h-7 px-2 text-2xs",children:"Cancel"})]}):i.jsxs("button",{onClick:()=>{k(L.id),S(""),j(!1)},className:"flex items-center gap-1.5 text-2xs text-text-3 hover:text-accent font-sans cursor-pointer transition-colors",children:[i.jsx(uc,{size:10}),ze?"Update API key":"Add API key to enable"]})}),ze&&_e.length>0&&_e.map(tt=>{const bt=L.id===t.provider&&tt.id===t.model,vt=!ie;return i.jsxs("button",{onClick:()=>vt&&B(L.id,tt.id),disabled:!vt,className:le("w-full flex items-center gap-2 px-3 py-2 text-left text-xs font-sans transition-colors","border-t border-border-subtle",vt?"cursor-pointer hover:bg-surface-4/50":"cursor-not-allowed opacity-40",bt?"text-accent":"text-text-2"),children:[bt?i.jsx(oa,{size:11,className:"text-accent flex-shrink-0"}):i.jsx("div",{className:"w-[11px]"}),i.jsx("span",{className:"font-mono flex-1 truncate",children:tt.name||tt.id}),i.jsx(We,{variant:bt?"accent":"default",className:"text-2xs",children:tt.tier})]},tt.id)})]})]},L.id)})}),ie&&i.jsxs("div",{className:"flex items-center gap-1.5 text-2xs text-text-3 font-sans mt-1.5",children:[i.jsx(cn,{size:10}),i.jsx("span",{children:"Stop agent to switch providers."})]})]}),i.jsx(ha,{label:"Working Directory",icon:Hr,description:"The root directory this agent operates in.",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx("div",{className:"flex-1 bg-surface-0 rounded-lg px-3 py-2.5 text-sm font-mono text-text-1 border border-border-subtle truncate min-w-0",children:t.workingDir||"Project root"}),i.jsxs(je,{variant:"secondary",size:"md",onClick:()=>g(!0),className:"gap-1.5 flex-shrink-0",children:[i.jsx(Pb,{size:14})," Browse"]})]})}),i.jsx(ha,{label:"Permission Mode",icon:Fr,description:"Full Send = no approvals. Agent Approve = Fullstack Manager reviews risky operations.",children:i.jsx(IO,{options:[{value:"full",label:"Full Send"},{value:"auto",label:"Agent Approve"}],value:t.permission||"full",onChange:async L=>{try{await ee.patch(`/agents/${t.id}`,{permission:L}),n("success",`Permission → ${L==="full"?"Full Send":"Agent Approve"}`)}catch(oe){n("error","Update failed",oe.message)}}})}),i.jsxs(ha,{label:"Model Routing",icon:rc,description:"How Groove selects models for this agent's tasks.",children:[i.jsx(IO,{options:[{value:"fixed",label:"Fixed"},{value:"auto",label:"Auto"},{value:"auto-floor",label:"Auto + Floor"}],value:A,onChange:async L=>{U(L);try{await ee.post(`/agents/${t.id}/routing`,{mode:L}),n("success",`Routing → ${L}`)}catch(oe){n("error","Update failed",oe.message)}}}),i.jsxs("div",{className:"text-2xs text-text-4 font-sans mt-1",children:[A==="fixed"&&"Uses the selected model for all tasks.",A==="auto"&&"Groove picks Opus/Sonnet/Haiku based on task complexity.",A==="auto-floor"&&"Auto-routes but never drops below Sonnet."]})]}),i.jsx(ha,{label:"File Scope",icon:Fr,description:"Restrict which files this agent can access. Empty = unrestricted.",children:i.jsxs("div",{className:"flex flex-wrap gap-2",children:[(t.scope||[]).map((L,oe)=>i.jsxs(We,{variant:"default",className:"font-mono text-xs gap-1.5 px-2.5 py-1",children:[L,i.jsx("button",{onClick:()=>Ae(oe),className:"hover:text-danger cursor-pointer",children:i.jsx(Rt,{size:10})})]},oe)),i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("input",{value:d,onChange:L=>O(L.target.value),onKeyDown:L=>L.key==="Enter"&&te(d),placeholder:"e.g. src/**",className:"w-28 h-7 px-2.5 text-xs bg-surface-0 border border-border-subtle rounded-md text-text-0 font-mono placeholder:text-text-4 focus:outline-none focus:ring-1 focus:ring-accent"}),i.jsx("button",{onClick:()=>te(d),disabled:!d.trim(),className:"w-7 h-7 flex items-center justify-center rounded-md bg-surface-4 border border-border-subtle text-text-3 hover:text-accent cursor-pointer disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:i.jsx(Fn,{size:12})})]})]})}),i.jsx(ha,{label:"Effort Level",icon:Nb,description:"Controls how deep the agent reasons. Higher = more tokens but better results.",children:i.jsx(IO,{options:[{value:"min",label:"Min"},{value:"low",label:"Low"},{value:"default",label:"Default"},{value:"high",label:"High"},{value:"max",label:"Max"}],value:m,onChange:fe})}),i.jsx(ha,{label:"Agent Details",icon:Ig,children:i.jsxs("div",{className:"bg-surface-0 rounded-lg border border-border-subtle divide-y divide-border-subtle",children:[i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"ID"}),i.jsx("span",{className:"text-xs text-text-1 font-mono",children:t.id})]}),i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"Role"}),i.jsx("span",{className:"text-xs text-text-1 font-sans capitalize",children:t.role})]}),i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"Provider"}),i.jsx("span",{className:"text-xs text-text-1 font-mono",children:t.provider})]}),i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"Model"}),i.jsx("span",{className:"text-xs text-text-1 font-mono",children:t.model||"auto"})]}),i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"Status"}),i.jsx("span",{className:"text-xs text-text-1 font-sans capitalize",children:t.status})]}),i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"Spawned"}),i.jsx("span",{className:"text-xs text-text-1 font-sans",children:ve?Ct(ve):"—"})]}),t.sessionId&&i.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[i.jsx("span",{className:"text-xs text-text-3 font-sans",children:"Session"}),i.jsxs("span",{className:"text-xs text-text-1 font-mono",children:[t.sessionId.slice(0,16),"..."]})]})]})}),i.jsx(ha,{label:"Skills",icon:Ub,description:"Attach installed skills to this agent's context.",children:i.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[(t.skills||[]).map(L=>i.jsxs(We,{variant:"accent",className:"font-mono text-xs gap-1.5 px-2.5 py-1",children:[L,i.jsx("button",{onClick:async()=>{try{await ee.delete(`/agents/${t.id}/skills/${L}`),n("success",`Detached ${L}`)}catch(oe){n("error","Detach failed",oe.message)}},className:"hover:text-danger cursor-pointer",children:i.jsx(Rt,{size:10})})]},L)),C.filter(L=>!(t.skills||[]).includes(L.id)).length>0&&i.jsxs("div",{className:"relative group",children:[i.jsx("button",{className:"w-7 h-7 flex items-center justify-center rounded-md bg-surface-4 border border-border-subtle text-text-3 hover:text-accent cursor-pointer transition-colors",children:i.jsx(Fn,{size:12})}),i.jsx("div",{className:"absolute top-full left-0 mt-1 z-20 hidden group-hover:block bg-surface-2 border border-border-subtle rounded-lg shadow-xl py-1 min-w-[160px]",children:C.filter(L=>!(t.skills||[]).includes(L.id)).map(L=>i.jsx("button",{onClick:async()=>{try{await ee.post(`/agents/${t.id}/skills/${L.id}`),n("success",`Attached ${L.name||L.id}`)}catch(oe){n("error","Attach failed",oe.message)}},className:"w-full text-left px-3 py-1.5 text-xs font-sans text-text-1 hover:bg-surface-4 cursor-pointer transition-colors",children:L.name||L.id},L.id))})]}),(t.skills||[]).length===0&&C.length===0&&i.jsx("span",{className:"text-2xs text-text-4 font-sans",children:"No skills installed — browse the Marketplace"})]})}),i.jsx(ha,{label:"Schedule",icon:Hg,description:"Run this agent on a recurring schedule.",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-xs text-text-2 font-sans",children:"Every"}),i.jsx("input",{value:E,onChange:L=>ne(L.target.value.replace(/\D/g,"").slice(0,3)),className:"w-12 h-7 px-2 text-xs text-center bg-surface-0 border border-border-subtle rounded-md text-text-0 font-mono focus:outline-none focus:ring-1 focus:ring-accent",placeholder:"1"}),i.jsx("div",{className:"flex bg-surface-0 rounded-lg p-0.5 border border-border-subtle",children:[{value:"min",label:"Min"},{value:"hr",label:"Hr"},{value:"day",label:"Day"},{value:"wk",label:"Wk"},{value:"mo",label:"Mo"}].map(L=>i.jsx("button",{onClick:()=>W(L.value),className:le("px-2 py-1 text-2xs font-semibold font-sans rounded-md transition-all cursor-pointer",$===L.value?"bg-accent/15 text-accent shadow-sm":"text-text-3 hover:text-text-1"),children:L.label},L.value))}),i.jsxs(je,{variant:"primary",size:"sm",disabled:re||!E||parseInt(E,10)<1,onClick:async()=>{const L=parseInt(E,10);if(!L||L<1)return;const oe={min:L===1?"* * * * *":`*/${L} * * * *`,hr:L===1?"0 * * * *":`0 */${L} * * *`,day:L===1?"0 0 * * *":`0 0 */${L} * *`,wk:`0 0 * * ${L===1?"1":"*"}`,mo:`0 0 ${L===1?"1":L} * *`};xe(!0);try{await ee.post("/schedules",{name:`${t.name} schedule`,cron:oe[$],agentConfig:{role:t.role,provider:t.provider,model:t.model,scope:t.scope,workingDir:t.workingDir,prompt:t.prompt}}),n("success",`Scheduled every ${L} ${$}`)}catch(ze){n("error","Schedule failed",ze.message)}xe(!1)},className:"h-7 px-3 text-2xs gap-1",children:[i.jsx(Hg,{size:10}),re?"...":"Set"]})]})}),t.prompt&&i.jsx(ha,{label:"Original Prompt",icon:rc,children:i.jsx("div",{className:"bg-surface-0 rounded-lg border border-border-subtle px-3 py-3 text-xs text-text-2 font-sans leading-relaxed max-h-40 overflow-y-auto",children:t.prompt})}),i.jsx(ES,{open:x,onOpenChange:g,currentPath:t.workingDir||"/",onSelect:I})]})}const m0=[];function K_({data:t,isAlive:n,height:s=48}){const l=v.useRef(null);return v.useEffect(()=>{const o=l.current;if(!o||!t.length)return;const u=o.getContext("2d"),d=window.devicePixelRatio||1,O=o.clientWidth,m=o.clientHeight;o.width=O*d,o.height=m*d,u.scale(d,d),u.clearRect(0,0,O,m);const p=t.map(Q=>Q.v),x=Math.min(...p),b=Math.max(...p,1)-x||1;u.beginPath(),u.moveTo(0,m),t.forEach((Q,k)=>{const T=k/(t.length-1)*O,j=m-(Q.v-x)/b*(m-4)-2;u.lineTo(T,j)}),u.lineTo(O,m),u.closePath();const S=u.createLinearGradient(0,0,0,m);if(S.addColorStop(0,n?"rgba(51,175,188,0.15)":"rgba(110,118,129,0.08)"),S.addColorStop(1,"rgba(0,0,0,0)"),u.fillStyle=S,u.fill(),u.beginPath(),u.strokeStyle=n?pe.accent:pe.text3,u.lineWidth=1.5,t.forEach((Q,k)=>{const T=k/(t.length-1)*O,j=m-(Q.v-x)/b*(m-4)-2;k===0?u.moveTo(T,j):u.lineTo(T,j)}),u.stroke(),t.length>1&&n){const Q=t[t.length-1],k=O-1,T=m-(Q.v-x)/b*(m-4)-2;u.beginPath(),u.arc(k,T,5,0,Math.PI*2),u.fillStyle="rgba(51,175,188,0.3)",u.fill(),u.beginPath(),u.arc(k,T,2.5,0,Math.PI*2),u.fillStyle=pe.accent,u.fill()}},[t,n]),i.jsx("div",{className:"w-full rounded-lg bg-surface-0 overflow-hidden border border-border-subtle",style:{height:s},children:i.jsx("canvas",{ref:l,className:"w-full h-full"})})}function Go({icon:t,label:n,value:s,color:l,sub:o}){return i.jsxs("div",{className:"bg-surface-0 rounded-lg px-3 py-2.5 border border-border-subtle",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx(t,{size:12,className:l||"text-text-3"}),i.jsx("span",{className:"text-2xs text-text-4 font-sans uppercase tracking-wider",children:n})]}),i.jsx("div",{className:le("text-lg font-bold font-mono tabular-nums",l||"text-text-0"),children:s}),o&&i.jsx("div",{className:"text-2xs text-text-4 font-sans mt-0.5",children:o})]})}function J_({score:t}){const n=Math.min(Math.max(t,0),100);let s=pe.success,l="Healthy";return n<40?(s=pe.danger,l="Degraded"):n<70&&(s=pe.warning,l="Fair"),i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-1.5",children:[i.jsxs("span",{className:"text-2xs text-text-3 font-sans flex items-center gap-1.5",children:[i.jsx(fT,{size:11}),"Session Health"]}),i.jsxs("span",{className:"text-xs font-bold font-mono",style:{color:s},children:[n,"/100"]})]}),i.jsx("div",{className:"h-2 bg-surface-0 rounded-full overflow-hidden border border-border-subtle",children:i.jsx("div",{className:"h-full rounded-full transition-all duration-700",style:{width:`${n}%`,background:s}})}),i.jsx("span",{className:"text-2xs font-sans mt-1 block",style:{color:s},children:l})]})}function eZ(t){const n=(t||"").toLowerCase();return n.includes("edit")||n.includes("writ")?{icon:Tb,color:"text-warning"}:n.includes("read")||n.includes("view")?{icon:oi,color:"text-info"}:n.includes("search")||n.includes("grep")||n.includes("glob")?{icon:ql,color:"text-purple"}:n.includes("bash")||n.includes("command")||n.includes("terminal")?{icon:ui,color:"text-orange"}:n.includes("error")||n.includes("fail")?{icon:cn,color:"text-danger"}:n.includes("spawn")||n.includes("start")?{icon:Na,color:"text-success"}:n.includes("complet")||n.includes("done")?{icon:of,color:"text-success"}:{icon:oc,color:"text-text-4"}}function tZ({agent:t}){const n=D(d=>d.tokenTimeline[t.id])||m0,s=D(d=>d.activityLog[t.id])||m0,l=t.status==="running"||t.status==="starting",o=v.useMemo(()=>{if(n.length<2)return 0;const d=n.slice(-10),O=(d[d.length-1].t-d[0].t)/6e4,m=d[d.length-1].v-d[0].v;return O>0?Math.round(m/O):0},[n]),u=v.useMemo(()=>{const d=t.contextUsage||0;let O=100;return d>90?O-=50:d>70?O-=25:d>50&&(O-=10),o>5e3?O-=15:o>3e3&&(O-=8),t.status==="crashed"&&(O=10),t.status==="completed"&&(O=95),Math.max(0,Math.min(100,O))},[t.contextUsage,t.status,o]);return i.jsxs("div",{className:"px-5 py-5 space-y-5 overflow-y-auto h-full",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-2",children:[i.jsx("span",{className:"text-2xs font-semibold text-text-3 font-sans uppercase tracking-wider",children:"Token Burn"}),l&&i.jsx("span",{className:"text-2xs text-accent font-mono animate-pulse",children:"LIVE"})]}),i.jsx(K_,{data:n,isAlive:l,height:56})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[i.jsx(Go,{icon:eT,label:"Burn Rate",value:o>0?`${rt(o)}/m`:"—",color:o>5e3?"text-danger":o>2e3?"text-warning":"text-text-0"}),i.jsx(Go,{icon:U5,label:"Cost",value:Kf(t.costUsd||0),color:"text-text-0"}),i.jsx(Go,{icon:El,label:"Rotations",value:t.rotations||"0",color:"text-text-0"}),i.jsx(Go,{icon:Na,label:"Turns",value:t.turns||"0",color:"text-text-0"})]}),i.jsx(J_,{score:u}),t.prompt&&i.jsxs("div",{children:[i.jsx("span",{className:"text-2xs font-semibold text-text-3 font-sans uppercase tracking-wider block mb-1.5",children:"Task"}),i.jsx("div",{className:"bg-surface-0 rounded-lg px-3 py-2.5 text-xs text-text-2 font-sans leading-relaxed max-h-28 overflow-y-auto border border-border-subtle",children:t.prompt})]}),s.length>0&&i.jsxs("div",{children:[i.jsx("span",{className:"text-2xs font-semibold text-text-3 font-sans uppercase tracking-wider block mb-2",children:"Activity"}),i.jsxs("div",{className:"space-y-0 relative",children:[i.jsx("div",{className:"absolute left-[9px] top-2 bottom-2 w-px bg-border-subtle"}),s.slice(-12).reverse().map((d,O)=>{const m=eZ(d.text),p=m.icon;return i.jsxs("div",{className:"flex items-start gap-3 py-1.5 relative",children:[i.jsx("div",{className:le("w-[18px] h-[18px] rounded-full flex items-center justify-center flex-shrink-0 z-10","bg-surface-1 border border-border-subtle"),children:i.jsx(p,{size:9,className:m.color})}),i.jsx("span",{className:"text-2xs text-text-2 font-sans flex-1 line-clamp-1 pt-0.5",children:d.text}),i.jsx("span",{className:"text-2xs text-text-4 font-mono flex-shrink-0 pt-0.5",children:Ct(d.timestamp)})]},O)})]})]})]})}function aZ({agent:t}){const n=D(P=>P.addToast),[s,l]=v.useState([]),[o,u]=v.useState(""),[d,O]=v.useState(null),[m,p]=v.useState(""),[x,g]=v.useState(""),[b,S]=v.useState(!1);async function Q(){try{const P=await ee.get(`/agents/${t.id}/mdfiles`);l(P.files||[]),u(P.workingDir||"")}catch{}}v.useEffect(()=>{Q()},[t.id]);async function k(P){try{const N=await ee.get(`/agents/${t.id}/mdfiles/read?path=${encodeURIComponent(P)}`);p(N.content||""),g(N.content||""),O(P)}catch(N){n("error","Failed to read file",N.message)}}async function T(){if(d){S(!0);try{await ee.put(`/agents/${t.id}/mdfiles/write`,{path:d,content:m}),g(m),n("success",`Saved ${d}`)}catch(P){n("error","Save failed",P.message)}S(!1)}}const j=m!==x;return d?i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-border-subtle",children:[i.jsx("button",{onClick:()=>{O(null),p(""),g("")},className:"p-1 text-text-3 hover:text-text-0 cursor-pointer",children:i.jsx(kb,{size:14})}),i.jsx(Dn,{size:12,className:"text-accent"}),i.jsx("span",{className:"text-xs text-text-0 font-sans font-medium flex-1 truncate",children:d}),j&&i.jsx("span",{className:"text-[10px] text-warning font-sans",children:"unsaved"}),i.jsxs("button",{onClick:T,disabled:!j||b,className:le("flex items-center gap-1 px-2.5 py-1 rounded text-2xs font-sans font-medium cursor-pointer transition-colors",j?"bg-accent/15 text-accent hover:bg-accent/25":"text-text-4 opacity-50 cursor-not-allowed"),children:[i.jsx(IT,{size:10}),b?"Saving...":"Save"]})]}),i.jsx("textarea",{value:m,onChange:P=>p(P.target.value),className:"flex-1 w-full px-4 py-3 bg-surface-0 text-[12px] font-mono text-text-1 leading-relaxed resize-none focus:outline-none",spellCheck:!1})]}):i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsxs("div",{className:"flex items-center gap-2 px-4 py-2.5 border-b border-border-subtle",children:[i.jsx(Dn,{size:12,className:"text-text-3"}),i.jsx("span",{className:"text-2xs font-semibold text-text-2 font-sans uppercase tracking-wider flex-1",children:"Markdown Files"}),i.jsx("button",{onClick:Q,className:"p-1 text-text-4 hover:text-text-1 cursor-pointer",children:i.jsx(es,{size:11})})]}),o&&i.jsx("div",{className:"px-4 py-1.5 text-[10px] text-text-4 font-mono truncate border-b border-border-subtle/50",children:o}),i.jsx("div",{className:"flex-1 overflow-y-auto",children:s.length===0?i.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center px-4",children:[i.jsx(Dn,{size:20,className:"text-text-4 mb-2"}),i.jsx("p",{className:"text-xs text-text-3 font-sans",children:"No markdown files found"}),i.jsx("p",{className:"text-[10px] text-text-4 font-sans mt-1",children:"MD files in the agent's working directory will appear here"})]}):i.jsx("div",{className:"py-1",children:s.map(P=>i.jsxs("button",{onClick:()=>k(P.path),className:"w-full flex items-center gap-2.5 px-4 py-2 text-left hover:bg-surface-5 transition-colors cursor-pointer",children:[i.jsx(Dn,{size:13,className:"text-accent flex-shrink-0"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("span",{className:"text-xs text-text-0 font-sans block truncate",children:P.name}),i.jsx("span",{className:"text-[10px] text-text-4 font-mono",children:P.path})]}),i.jsx("span",{className:"text-[10px] text-text-4 font-mono flex-shrink-0",children:P.size>1024?`${(P.size/1024).toFixed(1)}K`:`${P.size}B`})]},P.path))})})]})}const nZ={running:"success",starting:"warning",stopped:"default",crashed:"danger",completed:"accent",killed:"default",rotating:"purple"},sZ={running:"Running",starting:"Starting",stopped:"Stopped",crashed:"Crashed",completed:"Done",killed:"Killed",rotating:"Rotating"},lZ=[{id:"command",label:"Chat",icon:ci},{id:"config",label:"Config",icon:Yb},{id:"telemetry",label:"Monitor",icon:rc},{id:"mdfiles",label:"Files",icon:Dn}];function rZ({agent:t}){const n=D(m=>m.addToast),[s,l]=v.useState(!1),[o,u]=v.useState(t.name),d=v.useRef(null);async function O(){const m=o.trim();if(!m||m===t.name){l(!1);return}try{await ee.patch(`/agents/${t.id}`,{name:m.replace(/\s+/g,"-")}),n("success",`Renamed → ${m}`)}catch(p){n("error","Rename failed",p.message),u(t.name)}l(!1)}return s?i.jsxs("div",{className:"flex items-center gap-1 flex-1 min-w-0",children:[i.jsx("input",{ref:d,value:o,onChange:m=>u(m.target.value),onKeyDown:m=>{m.key==="Enter"&&O(),m.key==="Escape"&&(u(t.name),l(!1))},className:"flex-1 min-w-0 h-6 px-1.5 text-sm font-bold bg-surface-0 border border-accent/30 rounded text-text-0 font-sans focus:outline-none focus:ring-1 focus:ring-accent/40",autoFocus:!0}),i.jsx("button",{onClick:O,className:"p-0.5 text-accent hover:text-accent/80 cursor-pointer",children:i.jsx(oa,{size:12})}),i.jsx("button",{onClick:()=>{u(t.name),l(!1)},className:"p-0.5 text-text-4 hover:text-text-1 cursor-pointer",children:i.jsx(Rt,{size:12})})]}):i.jsxs("div",{className:"flex items-center gap-1.5 flex-1 min-w-0 group",children:[i.jsx("h2",{className:"text-sm font-bold text-text-0 font-sans truncate",children:t.name}),i.jsx("button",{onClick:()=>{u(t.name),l(!0)},className:"p-0.5 text-text-4 opacity-0 group-hover:opacity-100 hover:text-text-1 cursor-pointer transition-opacity",children:i.jsx(Cc,{size:10})})]})}function iZ(){const t=D(p=>p.detailPanel),n=D(p=>p.agents),[s,l]=v.useState("command");if((t==null?void 0:t.type)!=="agent")return null;const o=n.find(p=>p.id===t.agentId);if(!o)return null;const u=o.status==="running"||o.status==="starting",d=Math.round((o.contextUsage||0)*100),O=o.spawnedAt||o.createdAt,m=O?Math.floor((Date.now()-new Date(O).getTime())/1e3):0;return Db(o.role),i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsxs("div",{className:"flex-shrink-0",children:[i.jsxs("div",{className:"pl-4 pr-10 pt-3 pb-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(rZ,{agent:o}),i.jsx(We,{variant:nZ[o.status]||"default",dot:u?"pulse":void 0,className:"text-2xs flex-shrink-0",children:sZ[o.status]||o.status})]}),i.jsxs("div",{className:"flex items-center gap-2 mt-1 text-2xs text-text-3 font-mono",children:[i.jsx("span",{className:"capitalize",children:o.role}),i.jsx("span",{className:"text-text-4",children:"·"}),i.jsxs("span",{children:[o.provider,":",o.model||"auto"]}),i.jsx("span",{className:"text-text-4",children:"·"}),i.jsxs("span",{children:[rt(o.tokensUsed||0)," tok"]}),d>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-text-4",children:"·"}),i.jsxs("span",{className:le(d>80?"text-danger":d>60?"text-warning":"text-text-3"),children:[d,"% ctx"]})]}),i.jsx("span",{className:"text-text-4",children:"·"}),i.jsx("span",{children:Ac(m)})]})]}),i.jsx("div",{className:"flex items-center px-4 border-b border-border-subtle",children:lZ.map(p=>{const x=p.icon,g=s===p.id;return i.jsxs("button",{onClick:()=>l(p.id),className:le("flex items-center gap-1.5 px-3 py-2 text-2xs font-semibold font-sans transition-all cursor-pointer select-none border-b-2 -mb-px",g?"border-accent text-text-0":"border-transparent text-text-3 hover:text-text-1"),children:[i.jsx(x,{size:11}),p.label]},p.id)})})]}),i.jsxs("div",{className:"flex-1 min-h-0 flex flex-col overflow-hidden",children:[s==="command"&&i.jsx(H_,{agent:o}),s==="config"&&i.jsx(F_,{agent:o}),s==="telemetry"&&i.jsx(tZ,{agent:o}),s==="mdfiles"&&i.jsx(aZ,{agent:o})]})]})}const jf=v.forwardRef(({className:t,label:n,error:s,mono:l,...o},u)=>i.jsxs("div",{className:"flex flex-col gap-1",children:[n&&i.jsx("label",{className:"text-xs font-medium text-text-2 font-sans",children:n}),i.jsx("input",{ref:u,className:le("h-8 w-full rounded-md px-3 text-sm","bg-surface-1 border border-border text-text-0","placeholder:text-text-4","focus:outline-none focus:ring-1 focus:ring-accent focus:border-accent","disabled:opacity-40 disabled:cursor-not-allowed","transition-colors duration-100",l?"font-mono":"font-sans",s&&"border-danger focus:ring-danger",t),...o}),s&&i.jsx("span",{className:"text-2xs text-danger font-sans",children:s})]}));jf.displayName="Input";const US=v.forwardRef(({className:t,label:n,error:s,mono:l,...o},u)=>i.jsxs("div",{className:"flex flex-col gap-1",children:[n&&i.jsx("label",{className:"text-xs font-medium text-text-2 font-sans",children:n}),i.jsx("textarea",{ref:u,className:le("w-full rounded-md px-3 py-2 text-sm resize-none","bg-surface-1 border border-border text-text-0","placeholder:text-text-4","focus:outline-none focus:ring-1 focus:ring-accent focus:border-accent","disabled:opacity-40 disabled:cursor-not-allowed","transition-colors duration-100",l?"font-mono":"font-sans",s&&"border-danger focus:ring-danger",t),...o}),s&&i.jsx("span",{className:"text-2xs text-danger font-sans",children:s})]}));US.displayName="Textarea";const oZ=[{id:"planner",label:"Planner",desc:"Plans the team and tasks",icon:qb,tier:"Heavy"},{id:"backend",label:"Backend",desc:"APIs, services, databases",icon:Mb,tier:"Medium"},{id:"frontend",label:"Frontend",desc:"UI, components, styling",icon:Df,tier:"Medium"},{id:"fullstack",label:"Fullstack",desc:"End-to-end implementation",icon:dn,tier:"Heavy"},{id:"testing",label:"Testing",desc:"Tests, coverage, QA",icon:If,tier:"Medium"},{id:"devops",label:"DevOps",desc:"CI/CD, infra, deployment",icon:Z5,tier:"Medium"},{id:"docs",label:"Docs",desc:"Documentation, guides",icon:Dn,tier:"Light"},{id:"security",label:"Security",desc:"Audits, vulnerabilities",icon:Fr,tier:"Medium"},{id:"database",label:"Database",desc:"Schema, migrations, queries",icon:Y5,tier:"Medium"},{id:"cmo",label:"CMO",desc:"Marketing, content, growth",icon:$T,tier:"Medium"},{id:"cfo",label:"CFO",desc:"Finance, metrics, forecasting",icon:S5,tier:"Medium"},{id:"ea",label:"EA",desc:"Executive assistant, scheduling",icon:pP,tier:"Light"},{id:"support",label:"Support",desc:"Customer support, FAQs",icon:dT,tier:"Medium"},{id:"analyst",label:"Analyst",desc:"Data analysis, insights",icon:Rc,tier:"Medium"},{id:"creative",label:"Writer",desc:"Copy, articles, proposals",icon:AT,tier:"Heavy",skillHint:!0},{id:"slides",label:"Slides",desc:"Pitch decks, presentations",icon:UT,tier:"Heavy",skillHint:!0}];function cZ(){const t=D(E=>E.detailPanel),n=D(E=>E.closeDetail),s=D(E=>E.spawnAgent),l=D(E=>E.fetchProviders),o=(t==null?void 0:t.type)==="spawn",[u,d]=v.useState(""),[O,m]=v.useState(""),[p,x]=v.useState(""),[g,b]=v.useState(""),[S,Q]=v.useState(""),[k,T]=v.useState(""),[j,P]=v.useState([]),[N,A]=v.useState(!1);v.useEffect(()=>{o&&(l().then(E=>{P(Array.isArray(E)?E:E.providers||[])}).catch(()=>{}),d(""),m(""),x(""),b(""),Q(""),T(""))},[o,l]);const U=u||O,C=j.find(E=>E.id===g),X=(C==null?void 0:C.models)||[],$=j.filter(E=>E.installed);async function W(){if(U){A(!0);try{const E={role:U,...p&&{name:p.replace(/\s+/g,"-")},...g&&{provider:g},...S&&{model:S},...k&&{prompt:k}};await s(E),n()}catch{}A(!1)}}return i.jsx(qS,{open:o,onOpenChange:E=>{E||n()},children:i.jsx(MS,{title:"Spawn Agent",width:480,children:i.jsxs("div",{className:"flex flex-col h-[calc(100%-57px)]",children:[i.jsxs("div",{className:"flex-1 overflow-y-auto px-5 py-4 space-y-6",children:[i.jsxs("div",{children:[i.jsx("label",{className:"text-xs font-semibold text-text-2 font-sans uppercase tracking-wider block mb-3",children:"Choose Role"}),i.jsx("div",{className:"grid grid-cols-2 gap-2",children:oZ.map(E=>{const ne=Db(E.id),re=u===E.id;return i.jsxs("button",{onClick:()=>{d(E.id),m("")},className:le("flex items-center gap-2.5 p-3 rounded-md border text-left transition-all cursor-pointer",re?"border-accent bg-accent/5":"border-border-subtle bg-surface-1 hover:border-border hover:bg-surface-2"),children:[i.jsx("div",{className:"w-8 h-8 rounded-md flex items-center justify-center flex-shrink-0",style:{background:ne.bg},children:i.jsx(E.icon,{size:16,style:{color:ne.text}})}),i.jsxs("div",{className:"min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"text-xs font-semibold text-text-0 font-sans",children:E.label}),E.skillHint&&i.jsx("span",{className:"text-2xs font-mono text-warning/70 bg-warning/8 px-1 py-px rounded",children:"skill"})]}),i.jsx("div",{className:"text-2xs text-text-3 font-sans truncate",children:E.desc})]})]},E.id)})}),i.jsx("div",{className:"mt-3",children:i.jsx(jf,{placeholder:"or type a custom role...",value:O,onChange:E=>{m(E.target.value),d("")},className:"text-xs"})})]}),U&&i.jsxs("div",{className:"space-y-4",children:[i.jsx("label",{className:"text-xs font-semibold text-text-2 font-sans uppercase tracking-wider block",children:"Configuration"}),i.jsx(jf,{label:"Name (optional)",value:p,onChange:E=>x(E.target.value),placeholder:`${U}-1`}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx("label",{className:"text-xs font-medium text-text-2 font-sans",children:"Provider"}),i.jsxs("div",{className:"relative",children:[i.jsxs("select",{value:g,onChange:E=>{b(E.target.value),Q("")},className:"w-full h-8 px-3 pr-8 text-sm rounded-md bg-surface-1 border border-border text-text-0 font-sans appearance-none cursor-pointer focus:outline-none focus:ring-1 focus:ring-accent",children:[i.jsx("option",{value:"",children:"Auto"}),$.map(E=>i.jsx("option",{value:E.id,children:E.name},E.id))]}),i.jsx(In,{size:14,className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-3 pointer-events-none"})]})]}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("label",{className:"text-xs font-medium text-text-2 font-sans",children:"Model"}),i.jsxs("div",{className:"relative",children:[i.jsxs("select",{value:S,onChange:E=>Q(E.target.value),disabled:!g,className:"w-full h-8 px-3 pr-8 text-sm rounded-md bg-surface-1 border border-border text-text-0 font-sans appearance-none cursor-pointer focus:outline-none focus:ring-1 focus:ring-accent disabled:opacity-40",children:[i.jsx("option",{value:"",children:"Auto"}),X.map(E=>i.jsx("option",{value:E.id,children:E.name},E.id))]}),i.jsx(In,{size:14,className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-3 pointer-events-none"})]})]})]}),g&&C&&i.jsx("div",{className:"text-2xs text-text-3 font-sans flex items-center gap-2",children:C.hasKey?i.jsx(We,{variant:"success",children:"API key set"}):C.authType==="subscription"?i.jsx(We,{variant:"accent",children:"Subscription"}):i.jsxs(We,{variant:"warning",children:["No API key — set with: groove set-key ",g," YOUR_KEY"]})}),i.jsx(US,{label:"Prompt (optional)",value:k,onChange:E=>T(E.target.value),placeholder:"What should this agent work on?",rows:3})]})]}),i.jsxs("div",{className:"border-t border-border-subtle px-5 py-4 bg-surface-1",children:[U&&i.jsxs("div",{className:"flex items-center gap-2 mb-3 text-xs text-text-3 font-sans",children:[i.jsx("span",{children:"Spawning"}),i.jsx(We,{variant:"accent",children:U}),g&&i.jsxs("span",{children:["on ",(C==null?void 0:C.name)||g]}),p&&i.jsxs("span",{children:["as ",p.replace(/\s+/g,"-")]})]}),i.jsx(je,{variant:"primary",size:"lg",onClick:W,disabled:!U||N,className:"w-full",children:N?"Spawning...":"Spawn Agent"})]})]})})})}function p0({title:t,icon:n,defaultOpen:s=!1,badge:l,children:o,className:u}){const[d,O]=v.useState(s);return i.jsxs("div",{className:le("border-t border-border-subtle",u),children:[i.jsxs("button",{onClick:()=>O(!d),className:"w-full flex items-center gap-2 px-5 py-3 text-left cursor-pointer hover:bg-surface-5/30 transition-colors group",children:[i.jsx(ii,{size:12,className:le("text-text-4 transition-transform duration-200 flex-shrink-0",d&&"rotate-90")}),n&&i.jsx(n,{size:13,className:"text-text-3 flex-shrink-0"}),i.jsx("span",{className:"text-xs font-semibold text-text-2 font-sans uppercase tracking-wider flex-1",children:t}),l&&i.jsx("span",{className:"text-2xs font-mono text-text-4 bg-surface-4 px-1.5 py-0.5 rounded",children:l})]}),d&&i.jsx("div",{className:"px-5 pb-4",children:o})]})}function uZ(){const t=D(g=>g.journalistStatus),n=D(g=>g.fetchJournalist),s=D(g=>g.triggerJournalistCycle),[l,o]=v.useState(!0),[u,d]=v.useState(!1);v.useEffect(()=>{n().then(()=>o(!1));const g=setInterval(n,1e4);return()=>clearInterval(g)},[n]);async function O(){d(!0);try{await s()}catch{}d(!1)}if(l)return i.jsxs("div",{className:"p-5 space-y-4",children:[i.jsx(Nt,{className:"h-6 w-32 rounded"}),i.jsx(Nt,{className:"h-20 rounded-md"}),i.jsx(Nt,{className:"h-20 rounded-md"})]});const m=t||{},p=m.lastSynthesis,x=m.history||[];return i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsxs("div",{className:"px-5 py-4 border-b border-border-subtle flex items-center gap-2",children:[i.jsx(Ir,{size:16,className:"text-accent"}),i.jsx("h3",{className:"text-sm font-semibold text-text-0 font-sans flex-1",children:"Journalist"}),i.jsxs(je,{variant:"secondary",size:"sm",onClick:O,disabled:u,className:"gap-1.5 text-2xs",children:[i.jsx(es,{size:11,className:u?"animate-spin":""}),u?"Running...":"Run Synthesis"]})]}),i.jsx(Ht,{className:"flex-1",children:i.jsxs("div",{className:"px-5 py-4 space-y-5",children:[i.jsxs("div",{className:"flex items-center gap-3 text-2xs text-text-3 font-sans",children:[i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(rc,{size:10}),i.jsxs("span",{children:[m.cycleCount||0," cycles"]})]}),m.lastCycleTime&&i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(oc,{size:10}),i.jsxs("span",{children:["Last: ",Ct(m.lastCycleTime)]})]}),i.jsx(We,{variant:m.cycleCount>0?"success":"default",className:"text-2xs",children:m.cycleCount>0?"Active":"Idle"})]}),(p==null?void 0:p.summary)&&i.jsxs("div",{className:"space-y-2",children:[i.jsxs("label",{className:"text-xs font-semibold text-text-1 font-sans flex items-center gap-1.5",children:[i.jsx(Dn,{size:12,className:"text-text-3"}),"Latest Summary"]}),i.jsx("div",{className:"bg-surface-0 rounded-lg border border-border-subtle px-3.5 py-3 text-xs text-text-2 font-sans leading-relaxed",children:p.summary})]}),(p==null?void 0:p.projectMap)&&i.jsx(p0,{title:"Project Map",icon:QT,children:i.jsx("div",{className:"bg-surface-0 rounded-lg border border-border-subtle px-3.5 py-3 text-xs text-text-2 font-mono leading-relaxed max-h-64 overflow-y-auto whitespace-pre-wrap",children:p.projectMap})}),(p==null?void 0:p.decisions)&&i.jsx(p0,{title:"Decisions Log",icon:Dn,children:i.jsx("div",{className:"bg-surface-0 rounded-lg border border-border-subtle px-3.5 py-3 text-xs text-text-2 font-mono leading-relaxed max-h-64 overflow-y-auto whitespace-pre-wrap",children:p.decisions})}),x.length>0&&i.jsxs("div",{className:"space-y-2",children:[i.jsxs("label",{className:"text-xs font-semibold text-text-1 font-sans flex items-center gap-1.5",children:[i.jsx(oc,{size:12,className:"text-text-3"}),"History (",x.length,")"]}),i.jsx("div",{className:"space-y-1.5",children:x.slice().reverse().slice(0,20).map((g,b)=>i.jsxs("div",{className:"bg-surface-0 rounded-md border border-border-subtle px-3 py-2",children:[i.jsxs("div",{className:"flex items-center gap-2 text-2xs",children:[i.jsxs(We,{variant:"default",className:"text-2xs",children:["Cycle ",g.cycle]}),i.jsxs("span",{className:"text-text-4 font-sans",children:[g.agentCount," agent",g.agentCount!==1?"s":""]}),i.jsx("span",{className:"text-text-4 font-sans ml-auto",children:Ct(g.timestamp)})]}),g.summary&&i.jsx("p",{className:"text-xs text-text-2 font-sans mt-1 leading-relaxed",children:g.summary})]},b))})]}),!p&&x.length===0&&i.jsxs("div",{className:"text-center py-8 text-text-4 font-sans",children:[i.jsx(Ir,{size:28,className:"mx-auto mb-2"}),i.jsx("p",{className:"text-sm",children:"No synthesis data yet"}),i.jsx("p",{className:"text-2xs mt-1",children:"The journalist runs automatically when agents are active, or trigger manually above"})]})]})})]})}function dZ({children:t,height:n,onHeightChange:s,visible:l,fullHeight:o,tabs:u,activeTab:d,onSelectTab:O,onAddTab:m,onCloseTab:p,onToggleFullHeight:x,onMinimize:g}){const b=v.useRef(!1),S=v.useRef(0),Q=v.useRef(0),k=v.useCallback(j=>{if(o)return;j.preventDefault(),b.current=!0,S.current=j.clientY,Q.current=n;function P(A){if(!b.current)return;const U=S.current-A.clientY,C=Math.min(Math.max(Q.current+U,120),600);s(C)}function N(){b.current=!1,document.removeEventListener("mousemove",P),document.removeEventListener("mouseup",N)}document.addEventListener("mousemove",P),document.addEventListener("mouseup",N)},[n,s,o]);if(!l)return null;const T=u||[{id:"default",label:"Terminal"}];return i.jsxs("div",{className:"flex flex-col border-t border-border bg-surface-0 relative",style:o?{flex:1,minHeight:0}:{height:n,flexShrink:0},children:[!o&&i.jsx("div",{className:"absolute top-0 left-0 right-0 h-1 cursor-row-resize hover:bg-accent/30 transition-colors z-10",onMouseDown:k}),i.jsxs("div",{className:"flex items-center h-9 bg-surface-1 border-b border-border-subtle flex-shrink-0 pl-3 pr-1.5",children:[i.jsxs("div",{className:"flex items-center gap-0 flex-1 min-w-0 overflow-x-auto scrollbar-none",children:[T.map(j=>i.jsxs("button",{onClick:()=>O==null?void 0:O(j.id),className:le("flex items-center gap-1.5 pl-2.5 pr-1 h-7 text-2xs font-sans cursor-pointer select-none transition-colors flex-shrink-0 rounded-t",j.id===d?"text-text-0 bg-surface-0":"text-text-3 hover:text-text-1 hover:bg-surface-0/50"),children:[i.jsx(ui,{size:10}),i.jsx("span",{className:"truncate max-w-[80px]",children:j.label}),T.length>1&&i.jsx("button",{onClick:P=>{P.stopPropagation(),p==null||p(j.id)},className:"ml-0.5 p-0.5 rounded hover:bg-surface-5 text-text-4 hover:text-text-1 cursor-pointer",children:i.jsx(Rt,{size:9})})]},j.id)),i.jsx("button",{onClick:m,className:"flex items-center justify-center w-6 h-6 text-text-4 hover:text-text-1 hover:bg-surface-0/50 rounded cursor-pointer transition-colors flex-shrink-0 ml-0.5",title:"New terminal",children:i.jsx(Fn,{size:11})})]}),i.jsx("div",{className:"flex items-center gap-0.5 flex-shrink-0 ml-2",children:o?i.jsx("button",{onClick:g,className:"p-1.5 rounded text-text-3 hover:text-text-0 hover:bg-surface-5 cursor-pointer transition-colors",title:"Restore",children:i.jsx(zT,{size:12})}):i.jsx("button",{onClick:x,className:"p-1.5 rounded text-text-3 hover:text-text-0 hover:bg-surface-5 cursor-pointer transition-colors",title:"Maximize",children:i.jsx(wT,{size:12})})})]}),i.jsx("div",{className:"flex-1 min-h-0 p-2",children:t})]})}const OZ={background:"#1a1e25",foreground:"#bcc2cd",cursor:"#33afbc",cursorAccent:"#1a1e25",selectionBackground:"rgba(51, 175, 188, 0.25)",black:"#1a1e25",red:"#e06c75",green:"#4ae168",yellow:"#e5c07b",blue:"#61afef",magenta:"#c678dd",cyan:"#33afbc",white:"#bcc2cd",brightBlack:"#505862",brightRed:"#e06c75",brightGreen:"#4ae168",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#33afbc",brightWhite:"#e6e6e6"};let FO=0;function fZ({tabId:t,visible:n}){const s=v.useRef(null),l=v.useRef(null),o=v.useRef(null),u=v.useRef(null),d=v.useRef(!1);return v.useEffect(()=>{if(!s.current||d.current)return;d.current=!0;const O=new Lj({theme:OZ,fontFamily:"'JetBrains Mono Variable', 'SF Mono', monospace",fontSize:13,lineHeight:1.4,cursorBlink:!0,cursorStyle:"bar",scrollback:5e3,allowProposedApi:!0}),m=new Dj;O.loadAddon(m),O.loadAddon(new Wj),O.open(s.current),l.current=O,requestAnimationFrame(()=>m.fit());function p(){const g=D.getState().ws;if(!g||g.readyState!==WebSocket.OPEN){setTimeout(p,500);return}g.send(JSON.stringify({type:"terminal:spawn",cols:O.cols,rows:O.rows}));function b(S){let Q;try{Q=JSON.parse(S.data)}catch{return}Q.type==="terminal:spawned"&&!o.current?o.current=Q.id:Q.type==="terminal:output"&&Q.id===o.current?O.write(Q.data):Q.type==="terminal:exit"&&Q.id===o.current&&(O.write(`\r
586
596
  \x1B[90m[session ended]\x1B[0m\r
587
- `),o.current=null)}g.addEventListener("message",b),u.current={ws:g,handler:b},O.onData(S=>{const Q=D.getState().ws;(Q==null?void 0:Q.readyState)===WebSocket.OPEN&&o.current&&Q.send(JSON.stringify({type:"terminal:input",id:o.current,data:S}))}),O.onResize(({cols:S,rows:Q})=>{const k=D.getState().ws;(k==null?void 0:k.readyState)===WebSocket.OPEN&&o.current&&k.send(JSON.stringify({type:"terminal:resize",id:o.current,rows:Q,cols:S}))})}p();const x=new ResizeObserver(()=>{requestAnimationFrame(()=>{try{m.fit()}catch{}})});return x.observe(s.current),()=>{x.disconnect();const g=D.getState().ws;(g==null?void 0:g.readyState)===WebSocket.OPEN&&o.current&&g.send(JSON.stringify({type:"terminal:kill",id:o.current})),u.current&&u.current.ws.removeEventListener("message",u.current.handler),O.dispose(),d.current=!1}},[]),v.useEffect(()=>{n&&l.current&&requestAnimationFrame(()=>{var O,m,p,x,g;try{(g=(x=(p=(m=(O=l.current._addonManager)==null?void 0:O._addons)==null?void 0:m[0])==null?void 0:p.instance)==null?void 0:x.fit)==null||g.call(x)}catch{}})},[n]),i.jsx("div",{ref:s,className:"w-full h-full",style:{display:n?"block":"none"}})}function uZ(){const t=D(b=>b.terminalVisible),n=D(b=>b.terminalHeight),s=D(b=>b.setTerminalVisible),l=D(b=>b.setTerminalHeight),o=D(b=>b.terminalFullHeight),u=D(b=>b.setTerminalFullHeight),[d,O]=v.useState([{id:"term-0",label:"Terminal"}]),[m,p]=v.useState("term-0"),x=v.useCallback(()=>{FO++;const b=`term-${FO}`;O(S=>[...S,{id:b,label:`Terminal ${FO+1}`}]),p(b)},[]),g=v.useCallback(b=>{O(S=>{const Q=S.filter(k=>k.id!==b);if(Q.length===0)return s(!1),S;if(m===b){const k=S.findIndex(j=>j.id===b),T=Q[Math.min(k,Q.length-1)];p(T.id)}return Q})},[m,s]);return i.jsx(iZ,{visible:t,height:n,onHeightChange:l,fullHeight:o,tabs:d,activeTab:m,onSelectTab:p,onAddTab:x,onCloseTab:g,onToggleFullHeight:()=>u(!0),onMinimize:()=>u(!1),children:d.map(b=>i.jsx(cZ,{tabId:b.id,visible:b.id===m},b.id))})}class dZ extends Vn.Component{constructor(n){super(n),this.state={error:null}}static getDerivedStateFromError(n){return{error:n}}render(){return this.state.error?i.jsxs("div",{className:"h-screen bg-surface-0 p-10 font-sans",children:[i.jsx("h2",{className:"text-lg font-semibold text-text-0 mb-4",children:"Groove — Render Error"}),i.jsx("pre",{className:"text-sm text-danger whitespace-pre-wrap mb-4",children:this.state.error.message}),i.jsx("pre",{className:"text-xs text-text-3 whitespace-pre-wrap",children:this.state.error.stack}),i.jsx("button",{onClick:()=>this.setState({error:null}),className:"mt-6 px-4 py-2 bg-accent text-surface-0 rounded-md font-medium text-sm cursor-pointer",children:"Try Again"})]}):this.props.children}}function OZ(){const t=D(o=>o.activeView),n=D(o=>o.detailPanel);let s;switch(t){case"agents":s=i.jsx(e1,{});break;case"editor":s=i.jsx(aC,{});break;case"dashboard":s=i.jsx(UC,{});break;case"marketplace":s=i.jsx(iX,{});break;case"teams":s=i.jsx(OX,{});break;case"settings":s=i.jsx(__,{});break;default:s=i.jsx(e1,{})}let l=null;if(n)switch(n.type){case"agent":l=i.jsx(nZ,{});break;case"journalist":l=i.jsx(rZ,{});break;case"spawn":l=null;break}return i.jsxs(EP,{detailContent:l,terminalContent:i.jsx(uZ,{}),children:[s,i.jsx(lZ,{})]})}function fZ(){return i.jsxs("div",{className:"h-screen bg-surface-0 flex flex-col items-center justify-center gap-4",children:[i.jsx("img",{src:"/favicon.png",alt:"",className:"w-10 h-10 opacity-60 animate-pulse"}),i.jsx("p",{className:"text-sm text-text-3 font-sans",children:"Connecting..."})]})}function hZ(){const t=D(s=>s.connect),n=D(s=>s.hydrated);return v.useEffect(()=>{t()},[t]),n?i.jsx(dZ,{children:i.jsx(OZ,{})}):i.jsx(fZ,{})}Kj.createRoot(document.getElementById("root")).render(i.jsx(v.StrictMode,{children:i.jsx(hZ,{})}));
597
+ `),o.current=null)}g.addEventListener("message",b),u.current={ws:g,handler:b},O.onData(S=>{const Q=D.getState().ws;(Q==null?void 0:Q.readyState)===WebSocket.OPEN&&o.current&&Q.send(JSON.stringify({type:"terminal:input",id:o.current,data:S}))}),O.onResize(({cols:S,rows:Q})=>{const k=D.getState().ws;(k==null?void 0:k.readyState)===WebSocket.OPEN&&o.current&&k.send(JSON.stringify({type:"terminal:resize",id:o.current,rows:Q,cols:S}))})}p();const x=new ResizeObserver(()=>{requestAnimationFrame(()=>{try{m.fit()}catch{}})});return x.observe(s.current),()=>{x.disconnect();const g=D.getState().ws;(g==null?void 0:g.readyState)===WebSocket.OPEN&&o.current&&g.send(JSON.stringify({type:"terminal:kill",id:o.current})),u.current&&u.current.ws.removeEventListener("message",u.current.handler),O.dispose(),d.current=!1}},[]),v.useEffect(()=>{n&&l.current&&requestAnimationFrame(()=>{var O,m,p,x,g;try{(g=(x=(p=(m=(O=l.current._addonManager)==null?void 0:O._addons)==null?void 0:m[0])==null?void 0:p.instance)==null?void 0:x.fit)==null||g.call(x)}catch{}})},[n]),i.jsx("div",{ref:s,className:"w-full h-full",style:{display:n?"block":"none"}})}function hZ(){const t=D(b=>b.terminalVisible),n=D(b=>b.terminalHeight),s=D(b=>b.setTerminalVisible),l=D(b=>b.setTerminalHeight),o=D(b=>b.terminalFullHeight),u=D(b=>b.setTerminalFullHeight),[d,O]=v.useState([{id:"term-0",label:"Terminal"}]),[m,p]=v.useState("term-0"),x=v.useCallback(()=>{FO++;const b=`term-${FO}`;O(S=>[...S,{id:b,label:`Terminal ${FO+1}`}]),p(b)},[]),g=v.useCallback(b=>{O(S=>{const Q=S.filter(k=>k.id!==b);if(Q.length===0)return s(!1),S;if(m===b){const k=S.findIndex(j=>j.id===b),T=Q[Math.min(k,Q.length-1)];p(T.id)}return Q})},[m,s]);return i.jsx(dZ,{visible:t,height:n,onHeightChange:l,fullHeight:o,tabs:d,activeTab:m,onSelectTab:p,onAddTab:x,onCloseTab:g,onToggleFullHeight:()=>u(!0),onMinimize:()=>u(!1),children:d.map(b=>i.jsx(fZ,{tabId:b.id,visible:b.id===m},b.id))})}class mZ extends Vn.Component{constructor(n){super(n),this.state={error:null}}static getDerivedStateFromError(n){return{error:n}}render(){return this.state.error?i.jsxs("div",{className:"h-screen bg-surface-0 p-10 font-sans",children:[i.jsx("h2",{className:"text-lg font-semibold text-text-0 mb-4",children:"Groove — Render Error"}),i.jsx("pre",{className:"text-sm text-danger whitespace-pre-wrap mb-4",children:this.state.error.message}),i.jsx("pre",{className:"text-xs text-text-3 whitespace-pre-wrap",children:this.state.error.stack}),i.jsx("button",{onClick:()=>this.setState({error:null}),className:"mt-6 px-4 py-2 bg-accent text-surface-0 rounded-md font-medium text-sm cursor-pointer",children:"Try Again"})]}):this.props.children}}function pZ(){const t=D(o=>o.activeView),n=D(o=>o.detailPanel);let s;switch(t){case"agents":s=i.jsx(e1,{});break;case"editor":s=i.jsx(rC,{});break;case"dashboard":s=i.jsx(WC,{});break;case"marketplace":s=i.jsx(dX,{});break;case"teams":s=i.jsx(pX,{});break;case"settings":s=i.jsx(q_,{});break;default:s=i.jsx(e1,{})}let l=null;if(n)switch(n.type){case"agent":l=i.jsx(iZ,{});break;case"journalist":l=i.jsx(uZ,{});break;case"spawn":l=null;break}return i.jsxs(VP,{detailContent:l,terminalContent:i.jsx(hZ,{}),children:[s,i.jsx(cZ,{})]})}function xZ(){return i.jsxs("div",{className:"h-screen bg-surface-0 flex flex-col items-center justify-center gap-4",children:[i.jsx("img",{src:"/favicon.png",alt:"",className:"w-10 h-10 opacity-60 animate-pulse"}),i.jsx("p",{className:"text-sm text-text-3 font-sans",children:"Connecting..."})]})}function gZ(){const t=D(s=>s.connect),n=D(s=>s.hydrated);return v.useEffect(()=>{t()},[t]),n?i.jsx(mZ,{children:i.jsx(pZ,{})}):i.jsx(xZ,{})}Kj.createRoot(document.getElementById("root")).render(i.jsx(v.StrictMode,{children:i.jsx(gZ,{})}));