@chellaa/react 0.2.1 → 0.2.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.
- package/dist/index.cjs +5645 -233
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +2694 -50
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +1620 -4
- package/dist/index.d.ts +1620 -4
- package/dist/index.mjs +5513 -233
- package/dist/index.mjs.map +1 -1
- package/dist/index.node.mjs +5513 -233
- package/dist/styles.css +1 -1
- package/package.json +13 -12
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/theme/palette.ts","../src/theme/typography.ts","../src/theme/spacing.ts","../src/theme/breakpoints.ts","../src/theme/shadows.ts","../src/theme/transitions.ts","../src/theme/zIndex.ts","../src/theme/createTheme.ts","../src/theme/ThemeProvider.tsx","../src/theme/useTheme.ts","../src/theme/ThemeScript.tsx","../src/system/shouldForwardProp.ts","../src/system/sx.ts","../src/system/componentOverrides.ts","../src/system/styled.ts","../src/utils/classNames.ts","../src/utils/composeEventHandlers.ts","../src/hooks/useMergeRefs.ts","../src/primitives/Slot.tsx","../src/components/ButtonGroup/ButtonGroupContext.ts","../src/ripple/TouchRipple.tsx","../src/ripple/useRipple.ts","../src/components/Button/Button.tsx","../src/components/ButtonGroup/ButtonGroup.tsx","../src/components/Box/Box.tsx","../src/components/Stack/Stack.tsx","../src/components/Flex/Flex.tsx","../src/components/Container/Container.tsx","../src/components/Grid/Grid.tsx","../src/components/Divider/Divider.tsx","../src/components/Typography/Typography.tsx","../src/components/Typography/Heading.tsx","../src/components/Typography/Text.tsx","../src/components/Typography/Paragraph.tsx","../src/components/Typography/Code.tsx","../src/components/Kbd/Kbd.tsx","../src/components/FormField/FormFieldContext.tsx","../src/components/Input/Input.tsx","../src/components/Input/TextField.tsx","../src/components/Input/InputAdornment.tsx","../src/components/Textarea/Textarea.tsx","../src/components/FormField/FormField.tsx","../src/components/FormField/FormLabel.tsx","../src/components/FormField/FormHelperText.tsx","../src/components/FormField/FormErrorMessage.tsx","../src/components/Checkbox/CheckboxContext.tsx","../src/components/Checkbox/Checkbox.tsx","../src/hooks/useControllableState.ts","../src/components/Checkbox/CheckboxGroup.tsx","../src/components/Radio/RadioContext.tsx","../src/components/Radio/Radio.tsx","../src/components/Radio/RadioGroup.tsx","../src/components/Switch/Switch.tsx","../src/components/Paper/Paper.tsx","../src/components/Card/CardContext.ts","../src/components/Card/Card.tsx"],"names":["EmotionThemeProvider","React2","useEmotionTheme","defaultTheme","jsx","isObject","resolved","React3","React4","Slot","React5","React6","TouchRipple","pulsate","React7","React8","Button","React9","ButtonGroup","React10","Box","React11","Stack","React12","Flex","React13","Container","React14","Grid","React15","Divider","React16","Typography","React17","Heading","React18","Text","React19","Paragraph","React20","Code","React21","Kbd","React22","React23","InputBase","Input","jsxs","React24","TextField","React25","InputAdornment","React26","Textarea","React27","FormField","React28","FormLabel","React29","FormHelperText","React30","FormErrorMessage","React31","React32","Checkbox","React33","React34","CheckboxGroup","React35","React36","Radio","React37","RadioGroup","React38","Switch","React39","Paper","React40","React41","Card","CardHeader","CardMedia","CardBody","CardFooter","CardActions"],"mappings":";;;;;;AAEO,IAAM,YAAA,GAAwB;AAAA,EACnC,IAAA,EAAM,OAAA;AAAA,EACN,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,qBAAA;AAAA,IACT,SAAA,EAAW,oBAAA;AAAA,IACX,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,SAAA;AAAA,IACT,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS,qBAAA;AAAA,EACT,MAAA,EAAQ;AAAA,IACN,MAAA,EAAQ,qBAAA;AAAA,IACR,KAAA,EAAO,qBAAA;AAAA,IACP,YAAA,EAAc,IAAA;AAAA,IACd,QAAA,EAAU,qBAAA;AAAA,IACV,eAAA,EAAiB,IAAA;AAAA,IACjB,QAAA,EAAU,qBAAA;AAAA,IACV,kBAAA,EAAoB,qBAAA;AAAA,IACpB,KAAA,EAAO,qBAAA;AAAA,IACP,YAAA,EAAc;AAAA;AAElB;AAEO,IAAM,WAAA,GAAuB;AAAA,EAClC,IAAA,EAAM,MAAA;AAAA,EACN,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,2BAAA;AAAA,IACT,SAAA,EAAW,0BAAA;AAAA,IACX,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,SAAA;AAAA,IACT,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS,2BAAA;AAAA,EACT,MAAA,EAAQ;AAAA,IACN,MAAA,EAAQ,0BAAA;AAAA,IACR,KAAA,EAAO,2BAAA;AAAA,IACP,YAAA,EAAc,IAAA;AAAA,IACd,QAAA,EAAU,2BAAA;AAAA,IACV,eAAA,EAAiB,IAAA;AAAA,IACjB,QAAA,EAAU,0BAAA;AAAA,IACV,kBAAA,EAAoB,2BAAA;AAAA,IACpB,KAAA,EAAO,2BAAA;AAAA,IACP,YAAA,EAAc;AAAA;AAElB;AAEO,SAAS,aAAA,CAAc,OAAkB,OAAA,EAAkB;AAChE,EAAA,OAAO,IAAA,KAAS,SAAS,WAAA,GAAc,YAAA;AACzC;;;AC9HO,IAAM,iBAAA,GACX,mIAAA;AAEK,IAAM,iBAAA,GAAqC;AAAA,EAChD,UAAA,EAAY,iBAAA;AAAA,EACZ,QAAA,EAAU,EAAA;AAAA,EACV,eAAA,EAAiB,GAAA;AAAA,EACjB,iBAAA,EAAmB,GAAA;AAAA,EACnB,gBAAA,EAAkB,GAAA;AAAA,EAClB,cAAA,EAAgB,GAAA;AAAA,EAChB,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,SAAA;AAAA,IACV,UAAA,EAAY,GAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,UAAA;AAAA,IACV,UAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,QAAA;AAAA,IACV,UAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,SAAA;AAAA,IACV,UAAA,EAAY,GAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,IAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,UAAA;AAAA,IACV,UAAA,EAAY,IAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,GAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,UAAA;AAAA,IACV,UAAA,EAAY,IAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,UAAA;AAAA,IACV,UAAA,EAAY,IAAA;AAAA,IACZ,aAAA,EAAe,WAAA;AAAA,IACf,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,SAAA;AAAA,IACV,UAAA,EAAY,IAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,SAAA;AAAA,IACV,UAAA,EAAY,IAAA;AAAA,IACZ,aAAA,EAAe,WAAA;AAAA,IACf,aAAA,EAAe;AAAA;AAEnB;;;AC/FO,SAAS,aAAA,CAAc,OAAO,CAAA,EAAG;AACtC,EAAA,OAAO,IAAI,OAAA,KAAyC;AAClD,IAAA,IAAI,OAAA,CAAQ,MAAA,KAAW,CAAA,EAAG,OAAO,GAAG,IAAI,CAAA,EAAA,CAAA;AAExC,IAAA,OAAO,OAAA,CACJ,GAAA,CAAI,CAAC,MAAA,KAAW;AACf,MAAA,IAAI,OAAO,MAAA,KAAW,QAAA,EAAU,OAAO,MAAA;AACvC,MAAA,OAAO,CAAA,EAAG,SAAS,IAAI,CAAA,EAAA,CAAA;AAAA,IACzB,CAAC,CAAA,CACA,IAAA,CAAK,GAAG,CAAA;AAAA,EACb,CAAA;AACF;AAEO,IAAM,cAAA,GAAiB,cAAc,CAAC;;;ACrBtC,IAAM,uBAAA,GAAyD;AAAA,EACpE,EAAA,EAAI,CAAA;AAAA,EACJ,EAAA,EAAI,GAAA;AAAA,EACJ,EAAA,EAAI,GAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEO,IAAM,iBAAkC,CAAC,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI;AAErE,SAAS,kBACd,YAAA,EACa;AACb,EAAA,MAAM,MAAA,GAAwC;AAAA,IAC5C,GAAG,uBAAA;AAAA,IACH,GAAG;AAAA,GACL;AAEA,EAAA,MAAM,OAAO,CAAA,GAAI,GAAA;AAEjB,EAAA,MAAM,EAAA,GAAK,CAAC,GAAA,KAAwC;AAClD,IAAA,MAAM,QAAQ,OAAO,GAAA,KAAQ,QAAA,GAAW,GAAA,GAAM,OAAO,GAAG,CAAA;AACxD,IAAA,OAAO,qBAAqB,KAAK,CAAA,GAAA,CAAA;AAAA,EACnC,CAAA;AAEA,EAAA,MAAM,IAAA,GAAO,CAAC,GAAA,KAAwC;AACpD,IAAA,MAAM,QAAQ,OAAO,GAAA,KAAQ,QAAA,GAAW,GAAA,GAAM,OAAO,GAAG,CAAA;AACxD,IAAA,OAAO,CAAA,kBAAA,EAAqB,QAAQ,IAAI,CAAA,GAAA,CAAA;AAAA,EAC1C,CAAA;AAEA,EAAA,MAAM,OAAA,GAAU,CACd,KAAA,EACA,GAAA,KACW;AACX,IAAA,MAAM,MAAM,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,OAAO,KAAK,CAAA;AAC5D,IAAA,MAAM,MAAM,OAAO,GAAA,KAAQ,QAAA,GAAW,GAAA,GAAM,OAAO,GAAG,CAAA;AACtD,IAAA,OAAO,CAAA,kBAAA,EAAqB,GAAG,CAAA,mBAAA,EAAsB,GAAA,GAAM,IAAI,CAAA,GAAA,CAAA;AAAA,EACjE,CAAA;AAEA,EAAA,MAAM,IAAA,GAAO,CAAC,GAAA,KAA+B;AAC3C,IAAA,MAAM,KAAA,GAAQ,cAAA,CAAe,OAAA,CAAQ,GAAG,CAAA;AACxC,IAAA,IAAI,KAAA,KAAU,cAAA,CAAe,MAAA,GAAS,CAAA,EAAG;AACvC,MAAA,OAAO,GAAG,GAAG,CAAA;AAAA,IACf;AACA,IAAA,MAAM,OAAA,GAAU,cAAA,CAAe,KAAA,GAAQ,CAAC,CAAA;AACxC,IAAA,OAAO,UAAU,OAAA,CAAQ,GAAA,EAAK,OAAO,CAAA,GAAI,GAAG,GAAG,CAAA;AAAA,EACjD,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,IAAM,qBAAqB,iBAAA;;;AClDlC,IAAM,KAAA,GAAQ;AAAA,EACZ,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,QAAA,GAAW;AAAA,EACf,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,OAAA,GAAU;AAAA,EACd,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAA;AAEO,SAAS,aAAA,GAA0B;AACxC,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAM;AACzB,IAAA,IAAI,CAAA,KAAM,GAAG,OAAO,MAAA;AACpB,IAAA,OAAO,CAAA,EAAG,CAAC,CAAA,kBAAA,EAAqB,QAAA,CAAS,CAAC,CAAC,CAAA,mBAAA,EAAsB,OAAA,CAAQ,CAAC,CAAC,CAAA,iBAAA,CAAA;AAAA,EAC7E,CAAC,CAAA;AACH;AAEO,IAAM,iBAAiB,aAAA;;;AClGvB,IAAM,kBAAA,GAAkC;AAAA,EAC7C,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW,8BAAA;AAAA,IACX,OAAA,EAAS,8BAAA;AAAA,IACT,MAAA,EAAQ,4BAAA;AAAA,IACR,KAAA,EAAO;AAAA,GACT;AAAA,EACA,QAAA,EAAU;AAAA,IACR,QAAA,EAAU,GAAA;AAAA,IACV,OAAA,EAAS,GAAA;AAAA,IACT,KAAA,EAAO,GAAA;AAAA,IACP,QAAA,EAAU,GAAA;AAAA,IACV,OAAA,EAAS,GAAA;AAAA,IACT,cAAA,EAAgB,GAAA;AAAA,IAChB,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,OACE,KAAA,GAA2B,CAAC,KAAK,CAAA,EACjC,OAAA,GAII,EAAC,EACG;AACR,IAAA,MAAM;AAAA,MACJ,QAAA,GAAW,mBAAmB,QAAA,CAAS,QAAA;AAAA,MACvC,MAAA,GAAS,mBAAmB,MAAA,CAAO,SAAA;AAAA,MACnC,KAAA,GAAQ;AAAA,KACV,GAAI,OAAA;AAEJ,IAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KACtB,OAAO,MAAM,QAAA,GAAW,CAAA,GAAI,GAAG,CAAC,CAAA,EAAA,CAAA;AAElC,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KACnB,OAAO,MAAM,QAAA,GAAW,CAAA,GAAI,GAAG,CAAC,CAAA,EAAA,CAAA;AAElC,IAAA,MAAM,aAAa,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA,GAAQ,CAAC,KAAK,CAAA;AAExD,IAAA,OAAO,UAAA,CACJ,GAAA;AAAA,MACC,CAAC,IAAA,KACC,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,cAAA,CAAe,QAAQ,CAAC,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,EAAI,WAAA,CAAY,KAAK,CAAC,CAAA;AAAA,KACvE,CACC,KAAK,IAAI,CAAA;AAAA,EACd;AACF;;;AC7CO,IAAM,aAAA,GAAwB;AAAA,EACnC,aAAA,EAAe,GAAA;AAAA,EACf,GAAA,EAAK,IAAA;AAAA,EACL,SAAA,EAAW,IAAA;AAAA,EACX,MAAA,EAAQ,IAAA;AAAA,EACR,MAAA,EAAQ,IAAA;AAAA,EACR,KAAA,EAAO,IAAA;AAAA,EACP,QAAA,EAAU,IAAA;AAAA,EACV,OAAA,EAAS;AACX;;;ACCA,SAAS,SAAS,IAAA,EAAwC;AACxD,EAAA,OAAO,QAAQ,OAAO,IAAA,KAAS,YAAY,CAAC,KAAA,CAAM,QAAQ,IAAI,CAAA;AAChE;AAEA,SAAS,SAAA,CAAU,QAAa,MAAA,EAAkB;AAChD,EAAA,MAAM,MAAA,GAAS,EAAE,GAAG,MAAA,EAAO;AAC3B,EAAA,IAAI,QAAA,CAAS,MAAM,CAAA,IAAK,QAAA,CAAS,MAAM,CAAA,EAAG;AACxC,IAAA,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACnC,MAAA,IAAI,QAAA,CAAS,MAAA,CAAO,GAAG,CAAC,CAAA,EAAG;AACzB,QAAA,IAAI,EAAE,OAAO,MAAA,CAAA,EAAS;AACpB,UAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,EAAE,CAAC,GAAG,GAAG,MAAA,CAAO,GAAG,CAAA,EAAG,CAAA;AAAA,QAC9C,CAAA,MAAO;AACL,UAAA,MAAA,CAAO,GAAG,IAAI,SAAA,CAAU,MAAA,CAAO,GAAG,CAAA,EAAG,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA,QAClD;AAAA,MACF,CAAA,MAAO;AACL,QAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,EAAE,CAAC,GAAG,GAAG,MAAA,CAAO,GAAG,CAAA,EAAG,CAAA;AAAA,MAC9C;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACA,EAAA,OAAO,MAAA;AACT;AAeO,SAAS,WAAA,CAAY,OAAA,GAAwB,EAAC,EAAiB;AACpE,EAAA,MAAM,IAAA,GAAkB,OAAA,CAAQ,OAAA,EAAS,IAAA,IAAQ,OAAA;AACjD,EAAA,MAAM,WAAA,GAAc,cAAc,IAAI,CAAA;AAEtC,EAAA,MAAM,gBAAgB,OAAA,CAAQ,OAAA,GAC1B,UAAU,WAAA,EAAa,OAAA,CAAQ,OAAO,CAAA,GACtC,WAAA;AAEJ,EAAA,MAAM,mBAAmB,OAAA,CAAQ,UAAA,GAC7B,UAAU,iBAAA,EAAmB,OAAA,CAAQ,UAAU,CAAA,GAC/C,iBAAA;AAEJ,EAAA,MAAM,iBAAA,GAAoB,QAAQ,WAAA,EAAa,MAAA,GAC3C,kBAAkB,OAAA,CAAQ,WAAA,CAAY,MAAa,CAAA,GACnD,kBAAA;AAEJ,EAAA,MAAM,UACJ,OAAO,OAAA,CAAQ,OAAA,KAAY,UAAA,GACtB,QAAQ,OAAA,GACT,cAAA;AAEN,EAAA,MAAM,KAAA,GAAQ;AAAA,IACZ,YAAA,EAAc,OAAA,CAAQ,KAAA,EAAO,YAAA,IAAgB;AAAA,GAC/C;AAEA,EAAA,MAAM,OAAA,GAAW,QAAQ,OAAA,IAAwB,cAAA;AACjD,EAAA,MAAM,cAAc,OAAA,CAAQ,WAAA,GACxB,UAAU,kBAAA,EAAoB,OAAA,CAAQ,WAAW,CAAA,GACjD,kBAAA;AACJ,EAAA,MAAM,SAAS,OAAA,CAAQ,MAAA,GACnB,UAAU,aAAA,EAAe,OAAA,CAAQ,MAAM,CAAA,GACvC,aAAA;AAEJ,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,gBAAA;AAAA,IACZ,OAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA,EAAa,iBAAA;AAAA,IACb,OAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA,EAAa,OAAA,CAAQ,UAAA,IAAsB;AAAC,GAC9C;AACF;AAEO,IAAM,YAAA,GAAe,YAAY,EAAE,OAAA,EAAS,EAAE,IAAA,EAAM,OAAA,IAAW;AAC/D,IAAM,gBAAA,GAAmB,YAAY,EAAE,OAAA,EAAS,EAAE,IAAA,EAAM,MAAA,IAAU;ACtElE,IAAM,YAAA,GAAqB,KAAA,CAAA,aAAA;AAAA,EAChC;AACF,CAAA;AAYA,IAAM,kBAAA,GAAqB,8BAAA;AAEpB,SAAS,aAAA,CAAc;AAAA,EAC5B,QAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,cAAc,gBAAA,GAAmB,QAAA;AAAA,EACjC,UAAA,GAAa,eAAA;AAAA,EACb,YAAA,GAAe,IAAA;AAAA,EACf,MAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,EAAuB;AACrB,EAAA,MAAM,aAAA,GAAsB,iBAAW,YAAY,CAAA;AAEnD,EAAA,MAAM,CAAC,SAAA,EAAW,iBAAiB,CAAA,GAAU,eAAoB,MAAM;AACrE,IAAA,IAAI,OAAO,MAAA,KAAW,WAAA,EAAa,OAAO,gBAAA;AAC1C,IAAA,IAAI;AACF,MAAA,OAAQ,YAAA,CAAa,OAAA,CAAQ,UAAU,CAAA,IAAmB,gBAAA;AAAA,IAC5D,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,gBAAA;AAAA,IACT;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAU,eAE1C,MAAM;AACN,IAAA,IACE,OAAO,WAAW,WAAA,IAClB,CAAC,gBACD,OAAO,MAAA,CAAO,eAAe,UAAA,EAC7B;AACA,MAAA,OAAO,MAAA;AAAA,IACT;AACA,IAAA,OAAO,MAAA,CAAO,UAAA,CAAW,kBAAkB,CAAA,CAAE,UAAU,MAAA,GAAS,OAAA;AAAA,EAClE,CAAC,CAAA;AAGD,EAAA,MAAM,aAAA,GAAwC,cAAQ,MAAM;AAC1D,IAAA,IAAI,cAAc,QAAA,EAAU;AAC1B,MAAA,OAAO,WAAA,IAAe,OAAA;AAAA,IACxB;AACA,IAAA,OAAO,SAAA,KAAc,SAAS,MAAA,GAAS,OAAA;AAAA,EACzC,CAAA,EAAG,CAAC,SAAA,EAAW,WAAW,CAAC,CAAA;AAG3B,EAAM,gBAAU,MAAM;AACpB,IAAA,IACE,CAAC,gBACD,OAAO,MAAA,KAAW,eAClB,OAAO,MAAA,CAAO,eAAe,UAAA,EAC7B;AACA,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,UAAA,CAAW,kBAAkB,CAAA;AACvD,IAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAA2B;AAC/C,MAAA,cAAA,CAAe,CAAA,CAAE,OAAA,GAAU,MAAA,GAAS,OAAO,CAAA;AAAA,IAC7C,CAAA;AAEA,IAAA,IAAI,OAAO,UAAA,CAAW,gBAAA,KAAqB,UAAA,EAAY;AACrD,MAAA,UAAA,CAAW,gBAAA,CAAiB,UAAU,YAAY,CAAA;AAClD,MAAA,OAAO,MAAM,UAAA,CAAW,mBAAA,CAAoB,QAAA,EAAU,YAAY,CAAA;AAAA,IACpE,CAAA,MAAA,IACE,OACE,UAAA,CAGA,WAAA,KAAgB,UAAA,EAClB;AACA,MACE,UAAA,CAGA,YAAY,YAAY,CAAA;AAC1B,MAAA,OAAO,MAEH,UAAA,CAGA,cAAA,CAAe,YAAY,CAAA;AAAA,IACjC;AAAA,EACF,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAGjB,EAAA,MAAM,WAAA,GAAoB,cAAsB,MAAM;AACpD,IAAA,IAAI,eAAA,EAAiB;AAEnB,MAAA,OAAO,WAAA,CAAY;AAAA,QACjB,GAAI,eAAA;AAAA,QACJ,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,aAAA;AAAA,UACN,GAAK,eAAA,CAAwB,OAAA,IAAW;AAAC;AAC3C,OACD,CAAA;AAAA,IACH;AACA,IAAA,OAAO,aAAA,KAAkB,SAAS,gBAAA,GAAmB,YAAA;AAAA,EACvD,CAAA,EAAG,CAAC,eAAA,EAAiB,aAAa,CAAC,CAAA;AAGnC,EAAM,gBAAU,MAAM;AACpB,IAAA,IAAI,OAAO,aAAa,WAAA,EAAa;AAErC,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA,MAAM,OAAO,QAAA,CAAS,eAAA;AACtB,MAAA,IAAA,CAAK,YAAA,CAAa,WAAW,aAAa,CAAA;AAE1C,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AACjD,UAAA,IAAA,CAAK,KAAA,CAAM,WAAA,CAAY,GAAA,EAAK,KAAK,CAAA;AAAA,QACnC;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,aAAA,EAAe,aAAA,EAAe,SAAA,EAAW,MAAM,CAAC,CAAA;AAEpD,EAAA,MAAM,QAAA,GAAiB,KAAA,CAAA,WAAA;AAAA,IACrB,CAAC,QAAA,KAAwB;AACvB,MAAA,iBAAA,CAAkB,QAAQ,CAAA;AAC1B,MAAA,IAAI;AACF,QAAA,YAAA,CAAa,OAAA,CAAQ,YAAY,QAAQ,CAAA;AAAA,MAC3C,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IACF,CAAA;AAAA,IACA,CAAC,UAAU;AAAA,GACb;AAEA,EAAA,MAAM,YAAA,GAAqB,KAAA,CAAA,WAAA;AAAA,IACzB,CAAC,IAAA,KAAoB;AACnB,MAAA,QAAA,CAAS,IAAI,CAAA;AAAA,IACf,CAAA;AAAA,IACA,CAAC,QAAQ;AAAA,GACX;AAEA,EAAA,MAAM,YAAA,GAAqB,KAAA,CAAA,OAAA;AAAA,IACzB,OAAO;AAAA,MACL,KAAA,EAAO,SAAA;AAAA,MACP,QAAA;AAAA,MACA,aAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA,EAAW,aAAA;AAAA,MACX;AAAA,KACF,CAAA;AAAA,IACA,CAAC,SAAA,EAAW,QAAA,EAAU,aAAA,EAAe,WAAA,EAAa,aAAa,YAAY;AAAA,GAC7E;AAEA,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,MAAM,QAAA,GAAW,SACZ,MAAA,GACD,MAAA;AAEJ,IAAA,uBACE,GAAA,CAAC,aAAa,QAAA,EAAb,EAAsB,OAAO,YAAA,EAC5B,QAAA,kBAAA,GAAA,CAACA,eAAA,EAAA,EAAqB,KAAA,EAAO,WAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,EAAE,CAAC,SAAS,GAAG,aAAA,EAAc;AAAA,QACjC,KAAA,EAAO,QAAA;AAAA,QACP,SAAA,EAAU,gBAAA;AAAA,QAET;AAAA;AAAA,OAEL,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,GAAA,CAAC,YAAA,CAAa,QAAA,EAAb,EAAsB,KAAA,EAAO,YAAA,EAC5B,QAAA,kBAAA,GAAA,CAACA,eAAA,EAAA,EAAqB,KAAA,EAAO,WAAA,EAAc,QAAA,EAAS,CAAA,EACtD,CAAA;AAEJ;AC/LO,SAAS,QAAA,GAAsC;AACpD,EAAA,MAAM,OAAA,GAAgBC,iBAAW,YAAY,CAAA;AAC7C,EAAA,MAAM,eAAeC,UAAA,EAAgB;AAErC,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAO;AAAA,MACL,GAAG,OAAA;AAAA,MACH,aAAa,OAAA,CAAQ;AAAA,KACvB;AAAA,EACF;AAEA,EAAA,IAAI,YAAA,IAAgB,aAAa,OAAA,EAAS;AACxC,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,aAAa,OAAA,CAAQ,IAAA;AAAA,MAC5B,UAAU,MAAM;AAAA,MAAC,CAAA;AAAA,MACjB,aAAA,EAAe,aAAa,OAAA,CAAQ,IAAA;AAAA,MACpC,WAAA,EAAa,MAAA;AAAA,MACb,WAAA,EAAa,YAAA;AAAA,MACb,SAAA,EAAW,aAAa,OAAA,CAAQ,IAAA;AAAA,MAChC,cAAc,MAAM;AAAA,MAAC,CAAA;AAAA,MACrB,WAAA,EAAa;AAAA,KACf;AAAA,EACF;AAGA,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,OAAA;AAAA,IACP,UAAU,MAAM;AAAA,IAAC,CAAA;AAAA,IACjB,aAAA,EAAe,OAAA;AAAA,IACf,WAAA,EAAa,MAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,SAAA,EAAW,OAAA;AAAA,IACX,cAAc,MAAM;AAAA,IAAC,CAAA;AAAA,IACrB,WAAA,EAAa;AAAA,GACf;AACF;ACzCO,SAAS,WAAA,CAAY;AAAA,EAC1B,UAAA,GAAa,eAAA;AAAA,EACb,cAAAC,aAAAA,GAAe,QAAA;AAAA,EACf,SAAA,GAAY,YAAA;AAAA,EACZ;AACF,CAAA,EAAqB;AACnB,EAAA,MAAM,aAAA,GAAgB,CAAA;AAAA;AAAA,eAAA,EAEP,UAAU,CAAA;AAAA,eAAA,EACVA,aAAY,CAAA;AAAA,gBAAA,EACX,SAAS,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAA,CAAA;AAWzB,EAAA,uBACEC,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,uBAAA,EAAyB,EAAE,MAAA,EAAQ,aAAA,EAAc;AAAA,MACjD,wBAAA,EAAwB;AAAA;AAAA,GAC1B;AAEJ;;;ACvCA,IAAM,mBAAA,uBAA0B,GAAA,CAAY;AAAA,EAC1C,IAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAC,CAAA;AAQM,SAAS,wBACd,aAAA,EACgC;AAChC,EAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAI,mBAAmB,CAAA;AAE9C,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,aAAA,CAAc,QAAQ,CAAC,IAAA,KAAS,UAAA,CAAW,GAAA,CAAI,IAAc,CAAC,CAAA;AAAA,EAChE;AAEA,EAAA,OAAO,CAAC,IAAA,KAA+B;AACrC,IAAA,IAAI,OAAO,IAAA,KAAS,QAAA,IAAY,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,EAAG;AACpD,MAAA,OAAO,KAAA;AAAA,IACT;AACA,IAAA,OAAO,CAAC,UAAA,CAAW,GAAA,CAAI,IAAc,CAAA;AAAA,EACvC,CAAA;AACF;AAMO,IAAM,wBAAwB,uBAAA;;;AC9BrC,IAAM,iBAAA,GAA8C;AAAA,EAClD,CAAA,EAAG,CAAC,QAAQ,CAAA;AAAA,EACZ,MAAA,EAAQ,CAAC,QAAQ,CAAA;AAAA,EACjB,EAAA,EAAI,CAAC,WAAW,CAAA;AAAA,EAChB,SAAA,EAAW,CAAC,WAAW,CAAA;AAAA,EACvB,EAAA,EAAI,CAAC,aAAa,CAAA;AAAA,EAClB,WAAA,EAAa,CAAC,aAAa,CAAA;AAAA,EAC3B,EAAA,EAAI,CAAC,cAAc,CAAA;AAAA,EACnB,YAAA,EAAc,CAAC,cAAc,CAAA;AAAA,EAC7B,EAAA,EAAI,CAAC,YAAY,CAAA;AAAA,EACjB,UAAA,EAAY,CAAC,YAAY,CAAA;AAAA,EACzB,EAAA,EAAI,CAAC,cAAc,CAAA;AAAA,EACnB,YAAA,EAAc,CAAC,cAAc,CAAA;AAAA,EAC7B,EAAA,EAAI,CAAC,aAAa,CAAA;AAAA,EAClB,WAAA,EAAa,CAAC,aAAa,CAAA;AAAA,EAE3B,CAAA,EAAG,CAAC,SAAS,CAAA;AAAA,EACb,OAAA,EAAS,CAAC,SAAS,CAAA;AAAA,EACnB,EAAA,EAAI,CAAC,YAAY,CAAA;AAAA,EACjB,UAAA,EAAY,CAAC,YAAY,CAAA;AAAA,EACzB,EAAA,EAAI,CAAC,cAAc,CAAA;AAAA,EACnB,YAAA,EAAc,CAAC,cAAc,CAAA;AAAA,EAC7B,EAAA,EAAI,CAAC,eAAe,CAAA;AAAA,EACpB,aAAA,EAAe,CAAC,eAAe,CAAA;AAAA,EAC/B,EAAA,EAAI,CAAC,aAAa,CAAA;AAAA,EAClB,WAAA,EAAa,CAAC,aAAa,CAAA;AAAA,EAC3B,EAAA,EAAI,CAAC,eAAe,CAAA;AAAA,EACpB,aAAA,EAAe,CAAC,eAAe,CAAA;AAAA,EAC/B,EAAA,EAAI,CAAC,cAAc,CAAA;AAAA,EACnB,YAAA,EAAc,CAAC,cAAc,CAAA;AAAA,EAE7B,GAAA,EAAK,CAAC,KAAK,CAAA;AAAA,EACX,MAAA,EAAQ,CAAC,QAAQ,CAAA;AAAA,EACjB,SAAA,EAAW,CAAC,WAAW;AACzB,CAAA;AAKA,SAAS,kBAAA,CAAmB,SAAkC,IAAA,EAAkC;AAC9F,EAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,UAAU,OAAO,MAAA;AAC9C,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAC5B,EAAA,IAAI,OAAA,GAAe,OAAA;AACnB,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,IAAI,OAAA,IAAW,OAAO,OAAA,KAAY,QAAA,IAAY,QAAQ,OAAA,EAAS;AAC7D,MAAA,OAAA,GAAU,QAAQ,IAAI,CAAA;AAAA,IACxB,CAAA,MAAO;AACL,MAAA,OAAO,MAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,OAAO,OAAA,KAAY,QAAA,GAAW,OAAA,GAAU,MAAA;AACjD;AAKA,SAAS,YAAA,CAAa,OAAqB,KAAA,EAAiB;AAC1D,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,MAAM,QAAA,GAAW,kBAAA,CAAmB,KAAA,CAAM,OAAA,EAAS,KAAK,CAAA;AACxD,EAAA,OAAO,QAAA,IAAY,KAAA;AACrB;AAKA,SAAS,aAAA,CAAc,OAAqB,KAAA,EAAiB;AAC3D,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,IAAS,MAAM,MAAA,EAAQ;AACtD,IAAA,OAAO,KAAA,CAAM,OAAO,KAAkC,CAAA;AAAA,EACxD;AACA,EAAA,OAAO,KAAA;AACT;AAKA,SAAS,qBAAA,CACP,KAAA,EACA,IAAA,EACA,KAAA,EACqB;AACrB,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,SAAa,EAAC;AAGnD,EAAA,IAAI,QAAQ,iBAAA,EAAmB;AAC7B,IAAA,MAAM,QAAA,GAAW,kBAAkB,IAAI,CAAA;AACvC,IAAA,MAAM,YAAY,OAAO,KAAA,KAAU,WAAW,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA;AACrE,IAAA,MAAM,SAA8B,EAAC;AACrC,IAAA,KAAA,MAAW,WAAW,QAAA,EAAU;AAC9B,MAAA,MAAA,CAAO,OAAO,CAAA,GAAI,SAAA;AAAA,IACpB;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,OAAO,EAAE,eAAA,EAAiB,YAAA,CAAa,KAAA,EAAO,KAAK,CAAA,EAAE;AAAA,EACvD;AAGA,EAAA,IACE,SAAS,OAAA,IACT,IAAA,KAAS,qBACT,IAAA,KAAS,aAAA,IACT,SAAS,cAAA,EACT;AACA,IAAA,OAAO,EAAE,CAAC,IAAI,GAAG,YAAA,CAAa,KAAA,EAAO,KAAK,CAAA,EAAE;AAAA,EAC9C;AAGA,EAAA,IAAI,SAAS,WAAA,EAAa;AACxB,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACrD,MAAA,OAAO,EAAE,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAE;AAAA,IAC3C;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,IAAI,SAAS,WAAA,EAAa;AACxB,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACrD,MAAA,OAAO,EAAE,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAE;AAAA,IAC3C;AACA,IAAA,OAAO,EAAE,WAAW,KAAA,EAAM;AAAA,EAC5B;AAGA,EAAA,IAAI,SAAS,cAAA,EAAgB;AAC3B,IAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,MAAA,MAAM,MAAA,GAAS,KAAA,CAAM,KAAA,EAAO,YAAA,IAAgB,CAAA;AAC5C,MAAA,OAAO,EAAE,YAAA,EAAc,CAAA,EAAG,KAAA,GAAQ,MAAM,CAAA,EAAA,CAAA,EAAK;AAAA,IAC/C;AACA,IAAA,OAAO,EAAE,cAAc,KAAA,EAAM;AAAA,EAC/B;AAGA,EAAA,IAAI,SAAS,QAAA,EAAU;AACrB,IAAA,OAAO,EAAE,MAAA,EAAQ,aAAA,CAAc,KAAA,EAAO,KAAK,CAAA,EAAE;AAAA,EAC/C;AAGA,EAAA,OAAO,EAAE,CAAC,IAAI,GAAG,KAAA,EAAM;AACzB;AAEA,SAASC,UAAS,GAAA,EAAsC;AACtD,EAAA,OAAO,GAAA,KAAQ,QAAQ,OAAO,GAAA,KAAQ,YAAY,CAAC,KAAA,CAAM,QAAQ,GAAG,CAAA;AACtE;AAKA,SAAS,kBAAkB,GAAA,EAAmB;AAC5C,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,EAAG,OAAO,IAAA;AAC/B,EAAA,IAAIA,SAAAA,CAAS,GAAG,CAAA,EAAG;AACjB,IAAA,OAAO,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,cAAA,CAAe,QAAA,CAAS,CAAkB,CAAC,CAAA;AAAA,EACjF;AACA,EAAA,OAAO,KAAA;AACT;AAKA,SAAS,aAAA,CACP,OACA,QAAA,EACqB;AACrB,EAAA,MAAM,SAA8B,EAAC;AAErC,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,QAAQ,CAAA,EAAG;AACnD,IAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AAG3C,IAAA,IAAI,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,IAAK,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,IAAK,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,EAAG;AACrE,MAAA,IAAI,OAAO,UAAU,UAAA,EAAY;AAC/B,QAAA,MAAA,CAAO,GAAG,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,MACjD,CAAA,MAAA,IAAWA,SAAAA,CAAS,KAAK,CAAA,EAAG;AAC1B,QAAA,MAAA,CAAO,GAAG,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,KAAiB,CAAA;AAAA,MACtD;AACA,MAAA;AAAA,IACF;AAGA,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,MAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,KAAA,EAAO,KAAA,KAAU;AAC9B,QAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AAC3C,QAAA,MAAM,KAAA,GAAQ,eAAe,KAAK,CAAA;AAClC,QAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,QAAA,MAAMC,SAAAA,GAAW,qBAAA,CAAsB,KAAA,EAAO,GAAA,EAAK,KAAK,CAAA;AACxD,QAAA,IAAI,UAAU,IAAA,EAAM;AAClB,UAAA,MAAA,CAAO,MAAA,CAAO,QAAQA,SAAQ,CAAA;AAAA,QAChC,CAAA,MAAO;AACL,UAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,WAAA,CAAY,EAAA,CAAG,KAAK,CAAA;AACxC,UAAA,MAAA,CAAO,KAAK,CAAA,GAAI;AAAA,YACd,GAAI,MAAA,CAAO,KAAK,CAAA,IAAK,EAAC;AAAA,YACtB,GAAGA;AAAA,WACL;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AACD,MAAA;AAAA,IACF;AAGA,IAAA,IAAI,iBAAA,CAAkB,KAAK,CAAA,EAAG;AAC5B,MAAA,MAAM,OAAA,GAAU,KAAA;AAChB,MAAA,KAAA,MAAW,CAAC,KAAA,EAAO,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAA,EAAG;AACpD,QAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AAE3C,QAAA,MAAMA,SAAAA,GAAW,qBAAA,CAAsB,KAAA,EAAO,GAAA,EAAK,KAAK,CAAA;AACxD,QAAA,IAAI,UAAU,IAAA,EAAM;AAClB,UAAA,MAAA,CAAO,MAAA,CAAO,QAAQA,SAAQ,CAAA;AAAA,QAChC,CAAA,MAAA,IAAW,cAAA,CAAe,QAAA,CAAS,KAAsB,CAAA,EAAG;AAC1D,UAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,WAAA,CAAY,EAAA,CAAG,KAAsB,CAAA;AACzD,UAAA,MAAA,CAAO,KAAK,CAAA,GAAI;AAAA,YACd,GAAI,MAAA,CAAO,KAAK,CAAA,IAAK,EAAC;AAAA,YACtB,GAAGA;AAAA,WACL;AAAA,QACF;AAAA,MACF;AACA,MAAA;AAAA,IACF;AAGA,IAAA,IAAID,SAAAA,CAAS,KAAK,CAAA,EAAG;AACnB,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,KAAiB,CAAA;AACpD,MAAA;AAAA,IACF;AAGA,IAAA,MAAM,QAAA,GAAW,qBAAA,CAAsB,KAAA,EAAO,GAAA,EAAK,KAAK,CAAA;AACxD,IAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,QAAQ,CAAA;AAAA,EAChC;AAEA,EAAA,OAAO,MAAA;AACT;AAaO,SAAS,OAAA,CACd,YACA,EAAA,EACqB;AACrB,EAAA,IAAI,CAAC,EAAA,EAAI,OAAO,EAAC;AACjB,EAAA,MAAM,QACJ,UAAA,IAAc,OAAO,UAAA,CAAW,OAAA,KAAY,aACxC,UAAA,GACA,YAAA;AAGN,EAAA,IAAI,OAAO,OAAO,UAAA,EAAY;AAC5B,IAAA,OAAO,aAAA,CAAc,KAAA,EAAO,EAAA,CAAG,KAAK,CAAC,CAAA;AAAA,EACvC;AAGA,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,EAAE,CAAA,EAAG;AACrB,IAAA,OAAO,EAAA,CAAG,MAAA,CAA4B,CAAC,GAAA,EAAK,IAAA,KAAS;AACnD,MAAA,IAAI,CAAC,MAAM,OAAO,GAAA;AAClB,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,KAAA,EAAO,IAAI,CAAA;AAClC,MAAA,OAAO,eAAA,CAAgB,KAAK,MAAM,CAAA;AAAA,IACpC,CAAA,EAAG,EAAE,CAAA;AAAA,EACP;AAGA,EAAA,IAAIA,SAAAA,CAAS,EAAE,CAAA,EAAG;AAChB,IAAA,OAAO,aAAA,CAAc,OAAO,EAAE,CAAA;AAAA,EAChC;AAEA,EAAA,OAAO,EAAC;AACV;AAKA,SAAS,eAAA,CACP,QACA,MAAA,EACqB;AACrB,EAAA,MAAM,MAAA,GAA8B,EAAE,GAAG,MAAA,EAAO;AAEhD,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AACjD,IAAA,IACEA,UAAS,KAAK,CAAA,IACdA,UAAS,MAAA,CAAO,GAAG,CAAC,CAAA,IACpB,CAAC,MAAM,OAAA,CAAQ,KAAK,KACpB,CAAC,KAAA,CAAM,QAAQ,MAAA,CAAO,GAAG,CAAC,CAAA,EAC1B;AACA,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,eAAA,CAAgB,MAAA,CAAO,GAAG,GAAG,KAAK,CAAA;AAAA,IAClD,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,KAAA;AAAA,IAChB;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;;;AChSO,SAAS,yBAAA,CACd,KAAA,EACA,OAAA,EACA,KAAA,EACiC;AACjC,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,GAAO,MAAA,EAAQ,mBAAkB,GAAI,OAAA;AACnD,EAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,KAAA,CAAM,UAAA,GAAa,IAAI,CAAA,EAAG;AACtC,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,eAAA,GAAkB,KAAA,CAAM,UAAA,CAAW,IAAI,CAAA;AAC7C,EAAA,MAAM,iBAAiB,eAAA,CAAgB,cAAA;AACvC,EAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,IAAI,iBAAA,EAAmB;AACrB,IAAA,MAAM,QAAA,GAAW,iBAAA,CAAkB,KAAA,EAAO,cAAc,CAAA;AACxD,IAAA,IAAI,UAAU,OAAO,QAAA;AAAA,EACvB;AAGA,EAAA,MAAM,SAAA,GAAY,KAAK,WAAA,EAAY;AACnC,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,IAAA,CAAK,cAAc,CAAA,CAAE,IAAA;AAAA,IAC7C,CAAC,CAAA,KAAM,CAAA,CAAE,WAAA,EAAY,KAAM;AAAA,GAC7B;AAEA,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,MAAM,QAAA,GAAW,eAAe,UAAU,CAAA;AAC1C,IAAA,IAAI,OAAO,aAAa,UAAA,EAAY;AAClC,MAAA,OAAO,SAAS,EAAE,KAAA,EAAO,YAAY,KAAA,CAAM,UAAA,IAAc,OAAO,CAAA;AAAA,IAClE;AACA,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,OAAO,MAAA;AACT;ACxBO,SAAS,MAAA,CAId,SAAA,EACA,OAAA,GAAqC,EAAC,EACtC;AACA,EAAA,MAAM;AAAA,IACJ,IAAA;AAAA,IACA,IAAA,GAAO,MAAA;AAAA,IACP,KAAA;AAAA,IACA,MAAA;AAAA,IACA,iBAAA,EAAmB,uBAAA;AAAA,IACnB,MAAA,GAAS;AAAA,GACX,GAAI,OAAA;AAEJ,EAAA,MAAM,yBAAA,GAA4B,0BAC9B,CAAC,IAAA,KACC,sBAAsB,IAAI,CAAA,IAAK,uBAAA,CAAwB,IAAI,CAAA,GAC7D,qBAAA;AAEJ,EAAA,MAAM,gBAAgB,KAAA,KAAU,IAAA,GAAO,GAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,GAAK,MAAA,CAAA;AAE3D,EAAA,MAAM,cAAA,GAIF;AAAA,IACF,iBAAA,EAAmB;AAAA,GACrB;AAEA,EAAA,IAAI,kBAAkB,MAAA,EAAW;AAC/B,IAAA,cAAA,CAAe,KAAA,GAAQ,aAAA;AAAA,EACzB;AACA,EAAA,IAAI,WAAW,MAAA,EAAW;AACxB,IAAA,cAAA,CAAe,MAAA,GAAS,MAAA;AAAA,EAC1B;AAEA,EAAA,MAAM,cAAA,GAAiB,aAAA,CAAc,SAAA,EAAkB,cAAc,CAAA;AAErE,EAAA,OAAO,IACF,cAAA,KAGA;AACH,IAAA,MAAM,qBAAA,GAAwB,cAAA,CAAe,GAAA,CAAI,CAAC,aAAA,KAAkB;AAClE,MAAA,IAAI,OAAO,kBAAkB,UAAA,EAAY;AACvC,QAAA,OAAO,CAAC,QAAA,KAAkB;AACxB,UAAA,MAAM,WAAA,GACJ,SAAS,KAAA,IAAS,OAAO,SAAS,KAAA,CAAM,OAAA,KAAY,UAAA,GAC/C,QAAA,CAAS,KAAA,GACV,YAAA;AACN,UAAA,OAAO,aAAA,CAAc;AAAA,YACnB,GAAG,QAAA;AAAA,YACH,KAAA,EAAO;AAAA,WACR,CAAA;AAAA,QACH,CAAA;AAAA,MACF;AACA,MAAA,OAAO,aAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,OAAO,cAAA;AAAA,MAEL,GAAI,qBAAA;AAAA;AAAA,MAGJ,CAAC,KAAA,KAAe;AACd,QAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,QAAA,MAAM,WAAA,GACJ,MAAM,KAAA,IAAS,OAAO,MAAM,KAAA,CAAM,OAAA,KAAY,UAAA,GACzC,KAAA,CAAM,KAAA,GACP,YAAA;AACN,QAAA,OAAO,yBAAA,CAA0B,WAAA,EAAa,OAAA,EAAS,KAAK,CAAA;AAAA,MAC9D,CAAA;AAAA;AAAA,MAGA,CAAC,KAAA,KAAe;AACd,QAAA,IAAI,MAAA,IAAU,CAAC,KAAA,CAAM,EAAA,EAAI,OAAO,IAAA;AAChC,QAAA,MAAM,WAAA,GACJ,MAAM,KAAA,IAAS,OAAO,MAAM,KAAA,CAAM,OAAA,KAAY,UAAA,GACzC,KAAA,CAAM,KAAA,GACP,YAAA;AACN,QAAA,OAAO,OAAA,CAAQ,WAAA,EAAa,KAAA,CAAM,EAAE,CAAA;AAAA,MACtC;AAAA,KACF;AAAA,EACF,CAAA;AACF;;;AClGO,SAAS,cAAc,MAAA,EAA8B;AAC1D,EAAA,MAAM,UAAoB,EAAC;AAE3B,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,IAAI,CAAC,KAAA,IAAS,KAAA,KAAU,CAAA,EAAG;AAE3B,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,OAAO,UAAU,QAAA,EAAU;AAC1D,MAAA,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAA,CAAE,IAAA,EAAK;AACnC,MAAA,IAAI,OAAA,EAAS,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA;AAAA,IACnC,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AAC/B,MAAA,MAAM,MAAA,GAAS,UAAA,CAAW,GAAG,KAAK,CAAA;AAClC,MAAA,IAAI,MAAA,EAAQ,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,IACjC,CAAA,MAAA,IAAW,OAAO,KAAA,KAAU,QAAA,EAAU;AACpC,MAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,EAAG;AAChD,QAAA,IAAI,KAAA,IAAS,GAAA,CAAI,IAAA,EAAK,EAAG;AACvB,UAAA,OAAA,CAAQ,IAAA,CAAK,GAAA,CAAI,IAAA,EAAM,CAAA;AAAA,QACzB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;;;AC7BO,SAAS,oBAAA,CACd,iBACA,UAAA,EACA;AAAA,EACE,wBAAA,GAA2B;AAC7B,CAAA,GAA4C,EAAC,EACzB;AACpB,EAAA,OAAO,SAAS,YAAY,KAAA,EAAU;AACpC,IAAA,eAAA,GAAkB,KAAK,CAAA;AAEvB,IAAA,IAAI,CAAC,wBAAA,IAA4B,CAAC,KAAA,CAAM,gBAAA,EAAkB;AACxD,MAAA,UAAA,GAAa,KAAK,CAAA;AAAA,IACpB;AAAA,EACF,CAAA;AACF;AChBO,SAAS,MAAA,CAAU,KAAqB,KAAA,EAAuB;AACpE,EAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,IAAA,GAAA,CAAI,KAAK,CAAA;AAAA,EACX,CAAA,MAAA,IAAW,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW;AAC5C,IAAC,IAAyC,OAAA,GAAU,KAAA;AAAA,EACtD;AACF;AAMO,SAAS,gBACX,IAAA,EACmB;AAEtB,EAAA,OAAaE,KAAA,CAAA,WAAA,CAAY,CAAC,OAAA,KAAsB;AAC9C,IAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,MAAA,MAAA,CAAO,KAAK,OAAO,CAAA;AAAA,IACrB;AAAA,EACF,GAAG,IAAI,CAAA;AACT;;;ACfO,IAAM,IAAA,GAAaC,KAAA,CAAA,UAAA;AAAA,EACxB,SAASC,KAAAA,CAAK,KAAA,EAAO,YAAA,EAAc;AACjC,IAAA,MAAM,EAAE,QAAA,EAAU,GAAG,SAAA,EAAU,GAAI,KAAA;AAEnC,IAAA,IAAUD,KAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,EAAG;AAClC,MAAA,OAAaA,KAAA,CAAA,YAAA;AAAA,QACX,QAAA;AAAA,QACA,UAAA;AAAA,UACE,SAAA;AAAA,UACA,QAAA,CAAS,KAAA;AAAA,UACT,YAAA;AAAA,UACA,cAAc,QAAQ;AAAA;AACxB,OACF;AAAA,IACF;AAEA,IAAA,IAAUA,KAAA,CAAA,QAAA,CAAS,KAAA,CAAM,QAAQ,CAAA,GAAI,CAAA,EAAG;AACtC,MAAMA,KAAA,CAAA,QAAA,CAAS,KAAK,IAAI,CAAA;AAAA,IAC1B;AAEA,IAAA,OAAO,IAAA;AAAA,EACT;AACF,CAAA;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;AAKnB,SAAS,cACP,OAAA,EACoC;AAIpC,EAAA,MAAM,aAAc,OAAA,EAChB,GAAA;AACJ,EAAA,IAAI,eAAe,MAAA,EAAW;AAC5B,IAAA,OAAO,UAAA;AAAA,EACT;AACA,EAAA,OAAQ,QAAQ,KAAA,EAA4C,GAAA;AAC9D;AAKA,SAAS,UAAA,CACP,SAAA,EACA,UAAA,EACA,OAAA,EACA,QAAA,EACyB;AACzB,EAAA,MAAM,aAAA,GAAyC,EAAE,GAAG,UAAA,EAAW;AAE/D,EAAA,KAAA,MAAW,YAAY,SAAA,EAAW;AAChC,IAAA,MAAM,aAAA,GAAgB,UAAU,QAAQ,CAAA;AACxC,IAAA,MAAM,cAAA,GAAiB,WAAW,QAAQ,CAAA;AAE1C,IAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,IAAA,CAAK,QAAQ,CAAA;AAE/C,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,IACE,OAAO,aAAA,KAAkB,UAAA,IACzB,OAAO,mBAAmB,UAAA,EAC1B;AACA,QAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,oBAAA;AAAA,UACxB,cAAA;AAAA,UACA;AAAA,SACF;AAAA,MACF,CAAA,MAAA,IAAW,OAAO,aAAA,KAAkB,UAAA,EAAY;AAC9C,QAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,aAAA;AAAA,MAC5B;AAAA,IACF,CAAA,MAAA,IAAW,aAAa,WAAA,EAAa;AACnC,MAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,UAAA;AAAA,QACxB,aAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,CAAA,MAAA,IAAW,aAAa,OAAA,EAAS;AAC/B,MAAA,aAAA,CAAc,QAAQ,CAAA,GAAI;AAAA,QACxB,GAAI,aAAA;AAAA,QACJ,GAAI;AAAA,OACN;AAAA,IACF,CAAA,MAAO;AACL,MAAA,aAAA,CAAc,QAAQ,CAAA,GACpB,aAAA,KAAkB,MAAA,GAAY,aAAA,GAAgB,cAAA;AAAA,IAClD;AAAA,EACF;AAGA,EAAA,aAAA,CAAc,GAAA,GAAM,CAAC,IAAA,KAA6B;AAChD,IAAA,MAAA,CAAO,UAAU,IAAI,CAAA;AACrB,IAAA,MAAA,CAAO,SAAS,IAAI,CAAA;AAAA,EACtB,CAAA;AAEA,EAAA,OAAO,aAAA;AACT;ACzGO,IAAM,kBAAA,GAA2BE,oBAEtC,MAAS;AAKJ,SAAS,qBAAA,GAA6D;AAC3E,EAAA,OAAaA,iBAAW,kBAAkB,CAAA;AAC5C;ACRA,IAAM,aAAA,GAAgB,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAWtB,IAAM,YAAA,GAAe,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AASrB,IAAM,eAAA,GAAkB,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAsCxB,IAAM,eAAA,GAAkB,OAAO,MAAA,EAAQ;AAAA,EACrC,IAAA,EAAM,oBAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAC,CAAA,CAAE;AAAA,EACD,QAAA,EAAU,QAAA;AAAA,EACV,aAAA,EAAe,MAAA;AAAA,EACf,QAAA,EAAU,UAAA;AAAA,EACV,MAAA,EAAQ,CAAA;AAAA,EACR,GAAA,EAAK,CAAA;AAAA,EACL,KAAA,EAAO,CAAA;AAAA,EACP,MAAA,EAAQ,CAAA;AAAA,EACR,IAAA,EAAM,CAAA;AAAA,EACN,YAAA,EAAc;AAChB,CAAC,CAAA;AAED,IAAM,gBAAA,GAAmB,OAAO,MAAA,EAAQ;AAAA,EACtC,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,eAAe,IAAA,KAAS;AACrC,CAAC,CAAA,CAA8C,CAAC,EAAE,SAAA,EAAW,SAAQ,MAAO;AAAA,EAC1E,QAAA,EAAU,UAAA;AAAA,EACV,YAAA,EAAc,KAAA;AAAA,EACd,eAAA,EAAiB,cAAA;AAAA,EACjB,OAAA,EAAS,GAAA;AAAA,EACT,SAAA,EAAW,GAAG,aAAa,CAAA,mCAAA,CAAA;AAAA,EAC3B,GAAI,SAAA,IAAa;AAAA,IACf,SAAA,EAAW,GAAG,eAAe,CAAA,kCAAA;AAAA,GAC/B;AAAA,EACA,GAAI,OAAA,IAAW;AAAA,IACb,OAAA,EAAS,CAAA;AAAA,IACT,SAAA,EAAW,GAAG,YAAY,CAAA,4CAAA;AAAA;AAE9B,CAAA,CAAE,CAAA;AAKK,IAAM,WAAA,GAAoBC,KAAA,CAAA,UAAA;AAAA,EAC/B,SAASC,YAAAA,CAAY,KAAA,EAAO,GAAA,EAAK;AAC/B,IAAA,MAAM,EAAE,MAAA,EAAQ,UAAA,GAAa,OAAO,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAC3D,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUD,KAAA,CAAA,QAAA,CAAuB,EAAE,CAAA;AAC7D,IAAA,MAAM,OAAA,GAAgBA,aAAO,CAAC,CAAA;AAC9B,IAAA,MAAM,YAAA,GAAqBA,aAA+B,IAAI,CAAA;AAE9D,IAAA,MAAM,KAAA,GAAcA,KAAA,CAAA,WAAA;AAAA,MAClB,CACE,KAAA,EACA,OAAA,GAAmD,EAAC,KACjD;AACH,QAAA,MAAM,EAAE,OAAA,EAAAE,QAAAA,GAAU,OAAO,MAAA,GAAS,UAAA,IAAcA,UAAQ,GAAI,OAAA;AAE5D,QAAA,MAAM,YAAY,YAAA,CAAa,OAAA;AAC/B,QAAA,IAAI,CAAC,SAAA,EAAW;AAEhB,QAAA,MAAM,IAAA,GAAO,UAAU,qBAAA,EAAsB;AAE7C,QAAA,IAAI,OAAA;AACJ,QAAA,IAAI,OAAA;AACJ,QAAA,IAAI,UAAA;AAEJ,QAAA,IACE,UACA,CAAC,KAAA,IACA,KAAA,CAAM,WAAA,CAAoB,YAAY,MAAA,EACvC;AACA,UAAA,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,KAAA,GAAQ,CAAC,CAAA;AACnC,UAAA,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA;AACpC,UAAA,UAAA,GAAa,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,KAAA,EAAO,KAAK,MAAM,CAAA;AAAA,QAC/C,CAAA,MAAO;AACL,UAAA,MAAM,OAAA,GACH,MAAM,WAAA,CAAoB,OAAA,IAC1B,MAAM,WAAA,CAAoB,OAAA,GAAU,CAAC,CAAA,EAAG,OAAA;AAC3C,UAAA,MAAM,OAAA,GACH,MAAM,WAAA,CAAoB,OAAA,IAC1B,MAAM,WAAA,CAAoB,OAAA,GAAU,CAAC,CAAA,EAAG,OAAA;AAE3C,UAAA,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,IAAA,CAAK,IAAI,CAAA;AACxC,UAAA,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,IAAA,CAAK,GAAG,CAAA;AAEvC,UAAA,MAAM,KAAA,GACJ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,WAAA,GAAc,OAAO,CAAA,EAAG,OAAO,CAAA,GAAI,CAAA,GAAI,CAAA;AACrE,UAAA,MAAM,KAAA,GACJ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,YAAA,GAAe,OAAO,CAAA,EAAG,OAAO,CAAA,GAAI,CAAA,GAAI,CAAA;AACtE,UAAA,UAAA,GAAa,IAAA,CAAK,IAAA,CAAK,KAAA,IAAS,CAAA,GAAI,SAAS,CAAC,CAAA;AAAA,QAChD;AAEA,QAAA,MAAM,aAAa,OAAA,CAAQ,OAAA;AAC3B,QAAA,OAAA,CAAQ,OAAA,IAAW,CAAA;AAEnB,QAAA,UAAA,CAAW,CAAC,IAAA,KAAS;AAAA,UACnB,GAAG,IAAA;AAAA,UACH;AAAA,YACE,GAAA,EAAK,UAAA;AAAA,YACL,OAAA;AAAA,YACA,OAAA;AAAA,YACA,UAAA;AAAA,YACA,SAAA,EAAWA,QAAAA;AAAA,YACX,OAAA,EAAS;AAAA;AACX,SACD,CAAA;AAAA,MACH,CAAA;AAAA,MACA,CAAC,UAAU;AAAA,KACb;AAEA,IAAA,MAAM,IAAA,GAAaF,kBAAY,MAAM;AACnC,MAAA,UAAA,CAAW,CAAC,IAAA,KAAS;AACnB,QAAA,IAAI,IAAA,CAAK,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAC9B,QAAA,OAAO,IAAA,CAAK,IAAI,CAAC,MAAA,MAAY,EAAE,GAAG,MAAA,EAAQ,OAAA,EAAS,IAAA,EAAK,CAAE,CAAA;AAAA,MAC5D,CAAC,CAAA;AAGD,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,UAAA,CAAW,CAAC,SAAS,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,OAAO,CAAC,CAAA;AAAA,MACrD,GAAG,GAAG,CAAA;AAAA,IACR,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,OAAA,GAAgBA,kBAAY,MAAM;AACtC,MAAA,KAAA,CAAM,MAAA,EAAW,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,IACpC,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,IAAMA,KAAA,CAAA,mBAAA;AAAA,MACJ,GAAA;AAAA,MACA,OAAO;AAAA,QACL,KAAA;AAAA,QACA,IAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA,CAAC,KAAA,EAAO,IAAA,EAAM,OAAO;AAAA,KACvB;AAEA,IAAA,uBACEP,GAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,YAAA;AAAA,QACL,SAAA;AAAA,QACA,aAAA,EAAY,MAAA;AAAA,QACX,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,IAAA,KAAS;AACrB,UAAA,MAAM,KAAA,GAA6B;AAAA,YACjC,KAAA,EAAO,CAAA,EAAG,IAAA,CAAK,UAAU,CAAA,EAAA,CAAA;AAAA,YACzB,MAAA,EAAQ,CAAA,EAAG,IAAA,CAAK,UAAU,CAAA,EAAA,CAAA;AAAA,YAC1B,KAAK,CAAA,EAAG,EAAE,KAAK,UAAA,GAAa,CAAA,CAAA,GAAK,KAAK,OAAO,CAAA,EAAA,CAAA;AAAA,YAC7C,MAAM,CAAA,EAAG,EAAE,KAAK,UAAA,GAAa,CAAA,CAAA,GAAK,KAAK,OAAO,CAAA,EAAA;AAAA,WAChD;AAEA,UAAA,uBACEA,GAAAA;AAAA,YAAC,gBAAA;AAAA,YAAA;AAAA,cAEC,WAAW,IAAA,CAAK,SAAA;AAAA,cAChB,SAAS,IAAA,CAAK,OAAA;AAAA,cACd;AAAA,aAAA;AAAA,YAHK,IAAA,CAAK;AAAA,WAIZ;AAAA,QAEJ,CAAC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;ACzMnB,SAAS,SAAA,CAAU,OAAA,GAA4B,EAAC,EAAoB;AACzE,EAAA,MAAM,EAAE,QAAA,GAAW,KAAA,EAAO,gBAAgB,KAAA,EAAO,MAAA,GAAS,OAAM,GAAI,OAAA;AACpE,EAAA,MAAM,SAAA,GAAkBU,aAAuB,IAAI,CAAA;AAEnD,EAAA,MAAM,WAAA,GAAoBA,KAAA,CAAA,WAAA;AAAA,IACxB,CAAC,KAAA,KAA4B;AAC3B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,SAAA,CAAU,OAAA,EAAS,MAAM,KAAK,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,SAAA,GAAkBA,KAAA,CAAA,WAAA;AAAA,IACtB,CAAC,KAAA,KAA4B;AAC3B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,SAAA,CAAU,OAAA,EAAS,KAAK,KAAK,CAAA;AAAA,IAC/B,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,YAAA,GAAqBA,KAAA,CAAA,WAAA;AAAA,IACzB,CAAC,KAAA,KAA4B;AAC3B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,SAAA,CAAU,OAAA,EAAS,KAAK,KAAK,CAAA;AAAA,IAC/B,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,YAAA,GAAqBA,KAAA,CAAA,WAAA;AAAA,IACzB,CAAC,KAAA,KAA4B;AAC3B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,SAAA,CAAU,OAAA,EAAS,MAAM,KAAK,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,UAAA,GAAmBA,KAAA,CAAA,WAAA;AAAA,IACvB,CAAC,KAAA,KAA4B;AAC3B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,SAAA,CAAU,OAAA,EAAS,KAAK,KAAK,CAAA;AAAA,IAC/B,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,SAAA,GAAkBA,KAAA,CAAA,WAAA;AAAA,IACtB,CAAC,KAAA,KAA+B;AAC9B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,GAAA,IAAO,KAAA,CAAM,QAAQ,OAAA,EAAS;AAC9C,QAAA,SAAA,CAAU,SAAS,KAAA,CAAM,MAAA,EAAW,EAAE,OAAA,EAAS,MAAM,CAAA;AAAA,MACvD;AAAA,IACF,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,OAAA,GAAgBA,KAAA,CAAA,WAAA;AAAA,IACpB,CAAC,KAAA,KAA+B;AAC9B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,GAAA,IAAO,KAAA,CAAM,QAAQ,OAAA,EAAS;AAC9C,QAAA,SAAA,CAAU,SAAS,IAAA,EAAK;AAAA,MAC1B;AAAA,IACF,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,MAAA,GAAeA,kBAAY,MAAM;AACrC,IAAA,SAAA,CAAU,SAAS,IAAA,EAAK;AAAA,EAC1B,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,iBAAA,GAA0BA,KAAA,CAAA,WAAA;AAAA,IAC9B,CAAgC,KAAA,GAAW,EAAC,KAAc;AACxD,MAAA,OAAO;AAAA,QACL,GAAG,KAAA;AAAA,QACH,WAAA,EAAa,oBAAA,CAAqB,KAAA,CAAM,WAAA,EAAa,WAAW,CAAA;AAAA,QAChE,SAAA,EAAW,oBAAA,CAAqB,KAAA,CAAM,SAAA,EAAW,SAAS,CAAA;AAAA,QAC1D,YAAA,EAAc,oBAAA,CAAqB,KAAA,CAAM,YAAA,EAAc,YAAY,CAAA;AAAA,QACnE,YAAA,EAAc,oBAAA,CAAqB,KAAA,CAAM,YAAA,EAAc,YAAY,CAAA;AAAA,QACnE,UAAA,EAAY,oBAAA,CAAqB,KAAA,CAAM,UAAA,EAAY,UAAU,CAAA;AAAA,QAC7D,SAAA,EAAW,oBAAA,CAAqB,KAAA,CAAM,SAAA,EAAW,SAAS,CAAA;AAAA,QAC1D,OAAA,EAAS,oBAAA,CAAqB,KAAA,CAAM,OAAA,EAAS,OAAO,CAAA;AAAA,QACpD,MAAA,EAAQ,oBAAA,CAAqB,KAAA,CAAM,MAAA,EAAQ,MAAM;AAAA,OACnD;AAAA,IACF,CAAA;AAAA,IACA;AAAA,MACE,WAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,OAAO;AAAA,IACL,SAAA;AAAA,IACA,WAAA,EAAa;AAAA,MACX,GAAA,EAAK,SAAA;AAAA,MACL;AAAA,KACF;AAAA,IACA;AAAA,GACF;AACF;AC3GA,SAAS,aAAA,GAAgB;AACvB,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,oBAAA;AAAA,MACV,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,KAAA,EAAM,4BAAA;AAAA,MACN,aAAA,EAAY,MAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAAV,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,IAAA;AAAA,YACH,EAAA,EAAG,IAAA;AAAA,YACH,CAAA,EAAE,GAAA;AAAA,YACF,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,KAAA;AAAA,YACZ,aAAA,EAAc;AAAA;AAAA,SAChB;AAAA,wBACAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,CAAA,EAAE,qBAAA;AAAA,YACF,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,KAAA;AAAA,YACZ,aAAA,EAAc;AAAA;AAAA;AAChB;AAAA;AAAA,GACF;AAEJ;AAEA,IAAM,gBAAA,GAAmB,OAAO,QAAA,EAAU;AAAA,EACxC,IAAA,EAAM,eAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,aACT,IAAA,KAAS,aAAA,IACT,IAAA,KAAS,aAAA,IACT,IAAA,KAAS,WAAA,IACT,SAAS,YAAA,IACT,IAAA,KAAS,aAAA,IACT,IAAA,KAAS,iBAAA,IACT,IAAA,KAAS,eACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,eAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,MAAA,GAAeW,KAAA,CAAA,UAAA;AAAA,EAC1B,SAASC,OAAAA,CAAO,KAAA,EAAO,YAAA,EAAc;AACnC,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MACT,IAAA,EAAM,QAAA;AAAA,MACN,WAAA,EAAa,eAAA;AAAA,MACb,SAAA,GAAY,KAAA;AAAA,MACZ,WAAA;AAAA,MACA,eAAA,GAAkB,OAAA;AAAA,MAClB,UAAA,EAAY,cAAA;AAAA,MACZ,WAAA,GAAc,KAAA;AAAA,MACd,SAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,IAAA,GAAO,QAAA;AAAA,MACP,OAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAA,GAAgB,KAAA;AAAA,MAChB,EAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,cAAc,qBAAA,EAAsB;AAE1C,IAAA,MAAM,OAAA,GAAU,WAAA,IAAe,WAAA,EAAa,OAAA,IAAW,OAAA;AACvD,IAAA,MAAM,IAAA,GAAO,QAAA,IAAY,WAAA,EAAa,IAAA,IAAQ,IAAA;AAC9C,IAAA,MAAM,WAAA,GACJ,eAAA,IAAmB,WAAA,EAAa,WAAA,IAAe,SAAA;AACjD,IAAA,MAAM,UAAA,GACJ,cAAA,IAAkB,YAAA,IAAgB,WAAA,EAAa,UAAA,IAAc,KAAA;AAC/D,IAAA,MAAM,wBAAwB,UAAA,IAAc,SAAA;AAE5C,IAAA,MAAM,EAAE,WAAA,EAAa,iBAAA,EAAkB,GAAI,SAAA,CAAU;AAAA,MACnD,QAAA,EAAU,qBAAA;AAAA,MACV;AAAA,KACD,CAAA;AAED,IAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAA+C;AAClE,MAAA,IAAI,qBAAA,EAAuB;AACzB,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,QAAA;AAAA,MACF;AACA,MAAA,OAAA,GAAU,KAAK,CAAA;AAAA,IACjB,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAkD;AACvE,MAAA,IAAI,qBAAA,EAAuB;AACzB,QAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,GAAA,IAAO,KAAA,CAAM,QAAQ,OAAA,EAAS;AAC9C,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,UAAA;AAAA,QACF;AAAA,MACF;AACA,MAAA,SAAA,GAAY,KAAK,CAAA;AAAA,IACnB,CAAA;AAEA,IAAA,MAAM,eAAA,GAAkB,UAAA;AAAA,MACtB,WAAA;AAAA,MACA,cAAc,OAAO,CAAA,CAAA;AAAA,MACrB,cAAc,IAAI,CAAA,CAAA;AAAA,MAClB,cAAc,WAAW,CAAA,CAAA;AAAA,MACzB,SAAA,IAAa,oBAAA;AAAA,MACb,UAAA,IAAc,qBAAA;AAAA,MACd,WAAA,IAAe,uBAAA;AAAA,MACf;AAAA,KACF;AAEA,IAAA,MAAM,OAAA,mBAAUZ,GAAAA,CAAC,aAAA,EAAA,EAAc,CAAA;AAG/B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,GAAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA,EAAK,YAAA;AAAA,UACL,SAAA,EAAW,eAAA;AAAA,UACX,eAAA,EAAe,wBAAwB,IAAA,GAAO,MAAA;AAAA,UAC9C,WAAA,EAAW,YAAY,IAAA,GAAO,MAAA;AAAA,UAC9B,EAAA;AAAA,UACA,OAAA,EACE,WAAA;AAAA,UAEF,SAAA,EACE,aAAA;AAAA,UAED,GAAG,SAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAGA,IAAA,MAAM,eAAA,GAAkB,aAAa,eAAA,KAAoB,QAAA;AAEzD,IAAA,MAAM,iBAAiB,iBAAA,CAAkB;AAAA,MACvC,OAAA,EAAS,WAAA;AAAA,MACT,SAAA,EAAW,aAAA;AAAA,MACX,GAAG;AAAA,KACJ,CAAA;AAED,IAAA,uBACE,IAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,YAAA;AAAA,QACL,IAAA;AAAA,QACA,QAAA,EAAU,wBAAwB,IAAA,GAAO,MAAA;AAAA,QACzC,eAAA,EAAe,wBAAwB,IAAA,GAAO,MAAA;AAAA,QAC9C,WAAA,EAAW,YAAY,IAAA,GAAO,MAAA;AAAA,QAC9B,SAAA,EAAW,eAAA;AAAA,QACX,EAAA;AAAA,QACC,GAAG,cAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,eAAA,mBACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCAAA,EACb,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,4BACA,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4BAAA,EACb,QAAA,EAAA;AAAA,cAAA,SAAA,oBACCA,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,wCAAA;AAAA,kBACV,aAAA,EAAY,MAAA;AAAA,kBAEX,QAAA,EAAA;AAAA;AAAA,eACH;AAAA,cAED,aAAa,MAAA,oBACZA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAoB,QAAA,EAAS,CAAA;AAAA,cAE9C,2BACCA,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,sCAAA;AAAA,kBACV,aAAA,EAAY,MAAA;AAAA,kBAEX,QAAA,EAAA;AAAA;AAAA;AACH,aAAA,EAEJ;AAAA,WAAA,EACF,oBAEA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,YAAA,SAAA,IAAa,oBAAoB,OAAA,IAAW,OAAA;AAAA,YAC5C,CAAC,SAAA,IAAa,SAAA,oBACbA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,wCAAA;AAAA,gBACV,aAAA,EAAY,MAAA;AAAA,gBAEX,QAAA,EAAA;AAAA;AAAA,aACH;AAAA,YAED,aAAa,WAAA,mBACZA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,kBAAA,EAAoB,QAAA,EAAA,WAAA,EAAY,CAAA,GAC9C,QAAA,KAAa,yBACfA,GAAAA,CAAC,UAAK,SAAA,EAAU,kBAAA,EAAoB,UAAS,CAAA,GAC3C,IAAA;AAAA,YACH,SAAA,IAAa,oBAAoB,KAAA,IAAS,OAAA;AAAA,YAC1C,CAAC,SAAA,IAAa,OAAA,oBACbA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,sCAAA;AAAA,gBACV,aAAA,EAAY,MAAA;AAAA,gBAEX,QAAA,EAAA;AAAA;AAAA;AACH,WAAA,EAEJ,CAAA;AAAA,UAED,CAAC,iBAAiB,CAAC,qBAAA,oBAClBA,GAAAA,CAAC,WAAA,EAAA,EAAa,GAAG,WAAA,EAAa;AAAA;AAAA;AAAA,KAElC;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;AClOd,IAAM,WAAA,GAAoBa,KAAA,CAAA,UAAA;AAAA,EAC/B,SAASC,YAAAA,CAAY,KAAA,EAAO,YAAA,EAAc;AACxC,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,IAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA,GAAa,KAAA;AAAA,MACb,WAAA,GAAc,YAAA;AAAA,MACd,OAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA,EAAM,QAAA;AAAA,MACN,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,IAAA,GACJ,QAAA,KAAa,MAAA,GAAY,QAAA,GAAW,UAAU,MAAA,GAAY,OAAA;AAE5D,IAAA,MAAM,YAAA,GAAqBD,KAAA,CAAA,OAAA;AAAA,MACzB,OAAO;AAAA,QACL,IAAA;AAAA,QACA,OAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA,CAAC,IAAA,EAAM,OAAA,EAAS,WAAA,EAAa,UAAU;AAAA,KACzC;AAEA,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,iBAAA;AAAA,MACA,oBAAoB,WAAW,CAAA,CAAA;AAAA,MAC/B,UAAA,IAAc,2BAAA;AAAA,MACd;AAAA,KACF;AAEA,IAAA,MAAM,UAAA,GAAkC;AAAA,MACtC,GAAG,KAAA;AAAA,MACH,GAAI,OAAA,KAAY,MAAA,IAAa,CAAC,aAC1B,EAAE,GAAA,EAAK,OAAO,OAAA,KAAY,WAAW,CAAA,EAAG,OAAO,CAAA,EAAA,CAAA,GAAO,OAAA,KACtD;AAAC,KACP;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEb,GAAAA,CAAC,kBAAA,CAAmB,UAAnB,EAA4B,KAAA,EAAO,cAClC,QAAA,kBAAAA,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,YAAA;AAAA,UACL,IAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA,EAAO,UAAA;AAAA,UACN,GAAG,SAAA;AAAA,UAEH;AAAA;AAAA,OACH,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA,CAAC,kBAAA,CAAmB,UAAnB,EAA4B,KAAA,EAAO,cAClC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,YAAA;AAAA,QACL,IAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA,EAAO,UAAA;AAAA,QACN,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AClE1B,IAAM,aAAA,GAAgB,OAAO,KAAA,EAAO;AAAA,EAClC,IAAA,EAAM,YAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS,aAAa,IAAA,KAAS;AAC9D,CAAC,CAAA,CAAE,EAAE,CAAA;AAUE,IAAM,GAAA,GAAYe,KAAA,CAAA,UAAA;AAAA,EACvB,SAASC,IAAAA,CAAI,KAAA,EAAO,GAAA,EAAK;AACvB,IAAA,MAAM,EAAE,OAAA,GAAU,KAAA,EAAO,SAAA,EAAW,EAAA,EAAI,SAAA,EAAW,KAAA,EAAO,EAAA,EAAI,QAAA,EAAU,GAAG,IAAA,EAAK,GAAI,KAAA;AACpF,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAC/B,IAAA,MAAM,YAAA,GAAe,UAAA,CAAW,QAAA,EAAU,SAAS,CAAA;AAEnD,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEhB,GAAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,YAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,uBACEA,GAAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,SAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,YAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,YAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,GAAA,CAAI,WAAA,GAAc,KAAA;AC7ClB,IAAM,eAAA,GAAkB,OAAO,KAAA,EAAO;AAAA,EACpC,IAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,WAAA,IACT,SAAS,SAAA,IACT,IAAA,KAAS,YAAA,IACT,IAAA,KAAS,oBACT,IAAA,KAAS,UAAA,IACT,SAAS,YAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAmC,CAAC,EAAE,KAAA,EAAO,YAAW,KAAM;AAC7D,EAAA,MAAM,SAA8B,EAAC;AAGrC,EAAA,IAAI,OAAO,UAAA,CAAW,SAAA,KAAc,QAAA,EAAU;AAC5C,IAAA,MAAA,CAAO,MAAA;AAAA,MACL,MAAA;AAAA,MACA,QAAQ,KAAA,EAAO,EAAE,aAAA,EAAe,UAAA,CAAW,WAAW;AAAA,KACxD;AAAA,EACF;AAGA,EAAA,IAAI,UAAA,CAAW,OAAA,KAAY,MAAA,IAAa,UAAA,CAAW,YAAY,CAAA,EAAG;AAChE,IAAA,MAAA,CAAO,MAAA;AAAA,MACL,MAAA;AAAA,MACA,QAAQ,KAAA,EAAO,EAAE,GAAA,EAAK,UAAA,CAAW,SAAS;AAAA,KAC5C;AAAA,EACF;AAGA,EAAA,IAAI,UAAA,CAAW,eAAe,MAAA,EAAW;AACvC,IAAA,MAAA,CAAO,MAAA;AAAA,MACL,MAAA;AAAA,MACA,QAAQ,KAAA,EAAO,EAAE,UAAA,EAAY,UAAA,CAAW,YAAY;AAAA,KACtD;AAAA,EACF;AACA,EAAA,IAAI,UAAA,CAAW,mBAAmB,MAAA,EAAW;AAC3C,IAAA,MAAA,CAAO,MAAA;AAAA,MACL,MAAA;AAAA,MACA,QAAQ,KAAA,EAAO,EAAE,cAAA,EAAgB,UAAA,CAAW,gBAAgB;AAAA,KAC9D;AAAA,EACF;AACA,EAAA,IAAI,UAAA,CAAW,aAAa,MAAA,EAAW;AACrC,IAAA,MAAA,CAAO,MAAA;AAAA,MACL,MAAA;AAAA,MACA,QAAQ,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,CAAW,UAAU;AAAA,KAClD;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT,CAAC,CAAA;AAWM,IAAM,KAAA,GAAciB,KAAA,CAAA,UAAA;AAAA,EACzB,SAASC,MAAAA,CAAM,KAAA,EAAO,GAAA,EAAK;AACzB,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA,GAAY,QAAA;AAAA,MACZ,OAAA,GAAU,CAAA;AAAA,MACV,UAAA;AAAA,MACA,cAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA,GAAa,IAAA;AAAA,MACb,OAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,UAAA,GAA8B;AAAA,MAClC,SAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,iBAAA,GAAoB,OAAO,SAAA,KAAc,QAAA;AAE/C,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,UAAA;AAAA,MACA,iBAAA,IAAqB,aAAa,SAAS,CAAA,CAAA;AAAA,MAC3C;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAG/B,IAAA,IAAI,gBAAA,GAAmB,QAAA;AACvB,IAAA,IAAI,OAAA,IAAW,CAAC,OAAA,EAAS;AACvB,MAAA,MAAM,aAAA,GAAsBD,KAAA,CAAA,QAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA,CAAE,MAAA;AAAA,QAC/CA,KAAA,CAAA;AAAA,OACR;AACA,MAAA,gBAAA,GAAmB,aAAA,CAAc,MAAA;AAAA,QAC/B,CAAC,GAAA,EAAK,KAAA,EAAO,KAAA,KAAU;AACrB,UAAA,GAAA,CAAI,KAAK,KAAK,CAAA;AACd,UAAA,IAAI,KAAA,GAAQ,aAAA,CAAc,MAAA,GAAS,CAAA,EAAG;AACpC,YAAA,GAAA,CAAI,IAAA;AAAA,cACIA,KAAA,CAAA,cAAA,CAAe,OAAO,CAAA,GAClBA,KAAA,CAAA,YAAA,CAAa,OAAA,EAA+B;AAAA,gBAChD,GAAA,EAAK,iBAAiB,KAAK,CAAA;AAAA,eAC5B,oBAEDjB,GAAAA,CAAC,UAAqC,QAAA,EAAA,OAAA,EAAA,EAA3B,CAAA,cAAA,EAAiB,KAAK,CAAA,CAAa;AAAA,aAEpD;AAAA,UACF;AACA,UAAA,OAAO,GAAA;AAAA,QACT,CAAA;AAAA,QACA;AAAC,OACH;AAAA,IACF;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,UAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,uBACEA,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,SAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,UAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,UAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AC3KpB,IAAM,cAAA,GAAiB,OAAO,KAAA,EAAO;AAAA,EACnC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,KAAA,IACT,IAAA,KAAS,YAAA,IACT,IAAA,KAAS,OAAA,IACT,IAAA,KAAS,gBAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,MAAA,IACT,IAAA,KAAS,QAAA,IACT,IAAA,KAAS,QAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAkC,CAAC,EAAE,KAAA,EAAO,YAAW,KAAM;AAC5D,EAAA,MAAM,QAAA,GAAW,WAAW,MAAA,IAAU,KAAA;AACtC,EAAA,MAAM,SAA8B,EAAC;AAGrC,EAAA,IAAI,OAAO,UAAA,CAAW,SAAA,KAAc,QAAA,EAAU;AAC5C,IAAA,MAAA,CAAO,MAAA;AAAA,MACL,MAAA;AAAA,MACA,QAAQ,KAAA,EAAO,EAAE,aAAA,EAAe,UAAA,CAAW,WAAW;AAAA,KACxD;AAAA,EACF;AAGA,EAAA,MAAM,QAAA,GAAW,UAAA,CAAW,GAAA,IAAO,UAAA,CAAW,OAAA;AAC9C,EAAA,IAAI,aAAa,MAAA,EAAW;AAC1B,IAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,GAAA,EAAK,QAAA,EAAU,CAAC,CAAA;AAAA,EACzD;AAGA,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,MAAM,QAAA,GAAW,UAAA,CAAW,KAAA,IAAS,UAAA,CAAW,UAAA;AAChD,IAAA,IAAI,aAAa,MAAA,EAAW;AAC1B,MAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,UAAA,EAAY,QAAA,EAAU,CAAC,CAAA;AAAA,IAChE;AAEA,IAAA,MAAM,UAAA,GAAa,UAAA,CAAW,OAAA,IAAW,UAAA,CAAW,cAAA;AACpD,IAAA,IAAI,eAAe,MAAA,EAAW;AAC5B,MAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,cAAA,EAAgB,UAAA,EAAY,CAAC,CAAA;AAAA,IACtE;AAAA,EACF;AAGA,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,IAAA,IAAQ,UAAA,CAAW,QAAA;AAC9C,EAAA,IAAI,YAAY,MAAA,EAAW;AACzB,IAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,QAAA,EAAU,OAAA,EAAS,CAAC,CAAA;AAAA,EAC7D;AAEA,EAAA,OAAO,MAAA;AACT,CAAC,CAAA;AAYM,IAAM,IAAA,GAAamB,KAAA,CAAA,UAAA;AAAA,EACxB,SAASC,KAAAA,CAAK,KAAA,EAAO,GAAA,EAAK;AACxB,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA,GAAY,KAAA;AAAA,MACZ,OAAA;AAAA,MACA,GAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,cAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA,GAAS,KAAA;AAAA,MACT,MAAA,GAAS,KAAA;AAAA,MACT,OAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,UAAA,GAA6B;AAAA,MACjC,SAAA;AAAA,MACA,OAAA;AAAA,MACA,GAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,cAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,iBAAA,GAAoB,OAAO,SAAA,KAAc,QAAA;AAE/C,IAAA,MAAM,aAAA,GAAgB,UAAA;AAAA,MACpB,SAAA;AAAA,MACA,MAAA,IAAU,iBAAA;AAAA,MACV,MAAA,IAAU,iBAAA;AAAA,MACV,iBAAA,IAAqB,YAAY,SAAS,CAAA,CAAA;AAAA,MAC1C;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,IAAI,gBAAA,GAAmB,QAAA;AACvB,IAAA,IAAI,OAAA,IAAW,CAAC,OAAA,EAAS;AACvB,MAAA,MAAM,aAAA,GAAsBD,KAAA,CAAA,QAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA,CAAE,MAAA;AAAA,QAC/CA,KAAA,CAAA;AAAA,OACR;AACA,MAAA,gBAAA,GAAmB,aAAA,CAAc,MAAA;AAAA,QAC/B,CAAC,GAAA,EAAK,KAAA,EAAO,KAAA,KAAU;AACrB,UAAA,GAAA,CAAI,KAAK,KAAK,CAAA;AACd,UAAA,IAAI,KAAA,GAAQ,aAAA,CAAc,MAAA,GAAS,CAAA,EAAG;AACpC,YAAA,GAAA,CAAI,IAAA;AAAA,cACIA,KAAA,CAAA,cAAA,CAAe,OAAO,CAAA,GAClBA,KAAA,CAAA,YAAA,CAAa,OAAA,EAA+B;AAAA,gBAChD,GAAA,EAAK,gBAAgB,KAAK,CAAA;AAAA,eAC3B,oBACDnB,GAAAA,CAAC,UAAoC,QAAA,EAAA,OAAA,EAAA,EAA1B,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAa;AAAA,aACnD;AAAA,UACF;AACA,UAAA,OAAO,GAAA;AAAA,QACT,CAAA;AAAA,QACA;AAAC,OACH;AAAA,IACF;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,GAAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,aAAA;AAAA,UACX,KAAA;AAAA,UACA,UAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,uBACEA,GAAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,SAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,aAAA;AAAA,UACX,KAAA;AAAA,UACA,UAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,KAAA;AAAA,QACA,UAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;AC1MnB,IAAM,mBAAA,GAAsB,OAAO,KAAA,EAAO;AAAA,EACxC,IAAA,EAAM,kBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,OAAA,IACT,IAAA,KAAS,gBAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAUE,IAAM,SAAA,GAAkBqB,KAAA,CAAA,UAAA;AAAA,EAC7B,SAASC,UAAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AAC7B,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA,GAAW,IAAA;AAAA,MACX,KAAA,GAAQ,KAAA;AAAA,MACR,cAAA,GAAiB,KAAA;AAAA,MACjB,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,kBAAA,GAAqB,UAAA;AAAA,MACzB,cAAA;AAAA,MACA,cAAA,IAAkB,+BAAA;AAAA,MAClB,KAAA,IAAS,qBAAA;AAAA,MACT,QAAA,KAAa,KAAA,IAAS,CAAA,cAAA,EAAiB,QAAQ,CAAA,CAAA;AAAA,MAC/C;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEtB,GAAAA;AAAA,QAAC,mBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,kBAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,uBACEA,GAAAA;AAAA,QAAC,mBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,SAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,kBAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,kBAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;ACtExB,SAAS,sBAAA,CACP,IAAA,EACA,OAAA,GAAkB,EAAA,EACG;AACrB,EAAA,IAAI,SAAS,IAAA,EAAM;AACjB,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,CAAA;AAAA,MACX,QAAA,EAAU,CAAA;AAAA,MACV,QAAA,EAAU;AAAA,KACZ;AAAA,EACF;AAEA,EAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,MAAA;AAAA,MACX,QAAA,EAAU,CAAA;AAAA,MACV,QAAA,EAAU;AAAA,KACZ;AAAA,EACF;AAEA,EAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,MAAM,eAAA,GAAkB,GAAG,IAAA,CAAK,KAAA,CAAO,OAAO,OAAA,GAAW,GAAI,IAAI,GAAI,CAAA,CAAA,CAAA;AACrE,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,eAAA;AAAA,MACX,QAAA,EAAU,CAAA;AAAA,MACV,QAAA,EAAU;AAAA,KACZ;AAAA,EACF;AAEA,EAAA,OAAO,EAAC;AACV;AAEA,IAAM,cAAA,GAAiB,OAAO,KAAA,EAAO;AAAA,EACnC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,eACT,IAAA,KAAS,MAAA,IACT,IAAA,KAAS,SAAA,IACT,SAAS,SAAA,IACT,IAAA,KAAS,YAAA,IACT,IAAA,KAAS,mBACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,MAAA,IACT,SAAS,YAAA,IACT,IAAA,KAAS,gBAAA,IACT,IAAA,KAAS,QACT,IAAA,KAAS,IAAA,IACT,IAAA,KAAS,IAAA,IACT,SAAS,IAAA,IACT,IAAA,KAAS,IAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAkC,CAAC,EAAE,KAAA,EAAO,YAAW,KAAM;AAC5D,EAAA,MAAM,SAA8B,EAAC;AACrC,EAAA,MAAM,OAAA,GAAU,WAAW,OAAA,IAAW,EAAA;AAGtC,EAAA,IAAI,WAAW,SAAA,EAAW;AACxB,IAAA,IAAI,OAAO,UAAA,CAAW,SAAA,KAAc,QAAA,EAAU;AAC5C,MAAA,MAAA,CAAO,MAAA;AAAA,QACL,MAAA;AAAA,QACA,QAAQ,KAAA,EAAO,EAAE,aAAA,EAAe,UAAA,CAAW,WAAW;AAAA,OACxD;AAAA,IACF;AAEA,IAAA,IAAI,UAAA,CAAW,YAAY,MAAA,EAAW;AACpC,MAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,GAAA,EAAK,UAAA,CAAW,OAAA,EAAS,CAAC,CAAA;AAAA,IACnE;AACA,IAAA,IAAI,UAAA,CAAW,eAAe,MAAA,EAAW;AACvC,MAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,MAAA,EAAQ,UAAA,CAAW,UAAA,EAAY,CAAC,CAAA;AAAA,IACzE;AACA,IAAA,IAAI,UAAA,CAAW,kBAAkB,MAAA,EAAW;AAC1C,MAAA,MAAA,CAAO,MAAA;AAAA,QACL,MAAA;AAAA,QACA,QAAQ,KAAA,EAAO,EAAE,SAAA,EAAW,UAAA,CAAW,eAAe;AAAA,OACxD;AAAA,IACF;AACA,IAAA,IAAI,UAAA,CAAW,eAAe,MAAA,EAAW;AACvC,MAAA,MAAA,CAAO,MAAA;AAAA,QACL,MAAA;AAAA,QACA,QAAQ,KAAA,EAAO,EAAE,UAAA,EAAY,UAAA,CAAW,YAAY;AAAA,OACtD;AAAA,IACF;AACA,IAAA,IAAI,UAAA,CAAW,mBAAmB,MAAA,EAAW;AAC3C,MAAA,MAAA,CAAO,MAAA;AAAA,QACL,MAAA;AAAA,QACA,QAAQ,KAAA,EAAO,EAAE,cAAA,EAAgB,UAAA,CAAW,gBAAgB;AAAA,OAC9D;AAAA,IACF;AAAA,EACF;AAGA,EAAA,MAAM,OAAA,GAAuD;AAAA,IAC3D,IAAI,UAAA,CAAW,EAAA;AAAA,IACf,IAAI,UAAA,CAAW,EAAA;AAAA,IACf,IAAI,UAAA,CAAW,EAAA;AAAA,IACf,IAAI,UAAA,CAAW,EAAA;AAAA,IACf,IAAI,UAAA,CAAW;AAAA,GACjB;AAEA,EAAA,KAAA,MAAW,MAAM,cAAA,EAAgB;AAC/B,IAAA,MAAM,IAAA,GAAO,QAAQ,EAAE,CAAA;AACvB,IAAA,IAAI,SAAS,MAAA,EAAW;AACtB,MAAA,MAAM,UAAA,GAAa,sBAAA,CAAuB,IAAA,EAAM,OAAO,CAAA;AACvD,MAAA,IAAI,OAAO,IAAA,EAAM;AACf,QAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,UAAU,CAAA;AAAA,MAClC,CAAA,MAAO;AACL,QAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,WAAA,CAAY,EAAA,CAAG,EAAE,CAAA;AACrC,QAAA,MAAA,CAAO,KAAK,CAAA,GAAI;AAAA,UACd,GAAI,MAAA,CAAO,KAAK,CAAA,IAAK,EAAC;AAAA,UACtB,GAAG;AAAA,SACL;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT,CAAC,CAAA;AAWM,IAAM,IAAA,GAAauB,KAAA,CAAA,UAAA;AAAA,EACxB,SAASC,KAAAA,CAAK,KAAA,EAAO,GAAA,EAAK;AACxB,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA,GAAY,KAAA;AAAA,MACZ,IAAA,GAAO,KAAA;AAAA,MACP,OAAA,GAAU,EAAA;AAAA,MACV,OAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA,GAAY,KAAA;AAAA,MACZ,IAAA,GAAO,MAAA;AAAA,MACP,UAAA;AAAA,MACA,cAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,UAAA,GAA6B;AAAA,MACjC,SAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,iBAAA,GAAoB,OAAO,SAAA,KAAc,QAAA;AAE/C,IAAA,MAAM,aAAA,GAAgB,UAAA;AAAA,MACpB,SAAA;AAAA,MACA,SAAA,IAAa,oBAAA;AAAA,MACb,IAAA,IAAQ,eAAA;AAAA,MACR,IAAA,IAAQ,YAAY,IAAI,CAAA,CAAA;AAAA,MACxB,iBAAA,IAAqB,sBAAsB,SAAS,CAAA,CAAA;AAAA,MACpD;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACExB,GAAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,aAAA;AAAA,UACX,KAAA;AAAA,UACA,UAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,uBACEA,GAAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,SAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,aAAA;AAAA,UACX,KAAA;AAAA,UACA,UAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,KAAA;AAAA,QACA,UAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;ACtPnB,IAAM,iBAAA,GAAoB,OAAO,IAAA,EAAM;AAAA,EACrC,IAAA,EAAM,gBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,SAAS,aAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS,WAAA,IACT,SAAS,UAAA,IACT,IAAA,KAAS,WACT,IAAA,KAAS,WAAA,IACT,SAAS,aAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAUE,IAAM,OAAA,GAAgByB,KAAA,CAAA,UAAA;AAAA,EAC3B,SAASC,QAAAA,CAAQ,KAAA,EAAO,GAAA,EAAK;AAC3B,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,WAAA,GAAc,YAAA;AAAA,MACd,OAAA,GAAU,WAAA;AAAA,MACV,SAAA,GAAY,OAAA;AAAA,MACZ,QAAA,GAAW,KAAA;AAAA,MACX,KAAA,GAAQ,KAAA;AAAA,MACR,SAAA,GAAY,QAAA;AAAA,MACZ,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA,EAAM,QAAA;AAAA,MACN,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,WAAA,GAAc,QAAQ,QAAQ,CAAA;AAEpC,IAAA,MAAM,gBAAA,GAAmB,UAAA;AAAA,MACvB,YAAA;AAAA,MACA,eAAe,WAAW,CAAA,CAAA;AAAA,MAC1B,OAAA,KAAY,WAAA,IAAe,CAAA,YAAA,EAAe,OAAO,CAAA,CAAA;AAAA,MACjD,SAAA,KAAc,OAAA,IAAW,CAAA,YAAA,EAAe,SAAS,CAAA,CAAA;AAAA,MACjD,QAAA,IAAY,uBAAA;AAAA,MACZ,KAAA,IAAS,mBAAA;AAAA,MACT,WAAA,IAAe,2BAAA;AAAA,MACf,WAAA,IAAe,qBAAqB,SAAS,CAAA,CAAA;AAAA,MAC7C;AAAA,KACF;AAGA,IAAA,IAAI,UAAA,GAAgC,IAAA;AACpC,IAAA,IAAI,WAAA,KAAgB,cAAc,WAAA,EAAa;AAC7C,MAAA,UAAA,GAAa,KAAA;AAAA,IACf;AAEA,IAAA,MAAM,SAAA,GAAY,aAAa,EAAA,IAAM,UAAA;AAGrC,IAAA,MAAM,aAAa,SAAA,KAAc,IAAA;AACjC,IAAA,MAAM,IAAA,GAAO,QAAA,KAAa,UAAA,GAAa,MAAA,GAAY,WAAA,CAAA;AACnD,IAAA,MAAM,eAAA,GACJ,UAAA,GACI,MAAA,GACA,WAAA,KAAgB,aACd,UAAA,GACA,MAAA;AAER,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE1B,GAAAA;AAAA,QAAC,iBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,gBAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACA,IAAA;AAAA,UACA,kBAAA,EAAkB,eAAA;AAAA,UACjB,GAAG,IAAA;AAAA,UAEH,wCACCA,GAAAA,CAAC,UAAK,SAAA,EAAU,4CAAA,EAA8C,UAAS,CAAA,GAEvE;AAAA;AAAA,OAEJ;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,gBAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACA,IAAA;AAAA,QACA,kBAAA,EAAkB,eAAA;AAAA,QACjB,GAAG,IAAA;AAAA,QAEH,wCACCA,GAAAA,CAAC,UAAK,SAAA,EAAU,4CAAA,EAA8C,UAAS,CAAA,GACrE;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;ACtHtB,IAAM,qBAAA,GAAsE;AAAA,EAC1E,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,SAAA,EAAW,IAAA;AAAA,EACX,SAAA,EAAW,IAAA;AAAA,EACX,KAAA,EAAO,GAAA;AAAA,EACP,KAAA,EAAO,GAAA;AAAA,EACP,MAAA,EAAQ,MAAA;AAAA,EACR,OAAA,EAAS,MAAA;AAAA,EACT,QAAA,EAAU;AACZ,CAAA;AAEO,SAAS,sBAAA,CACd,OACA,KAAA,EACoB;AACpB,EAAA,IAAI,CAAC,KAAA,IAAS,KAAA,KAAU,SAAA,IAAa,UAAU,cAAA,EAAgB;AAC7D,IAAA,OAAO,KAAA;AAAA,EACT;AAGA,EAAA,MAAM,aAAa,KAAA,CAAM,OAAA;AACzB,EAAA,IAAI,UAAA,CAAW,KAAK,CAAA,IAAK,OAAO,WAAW,KAAK,CAAA,CAAE,SAAS,QAAA,EAAU;AACnE,IAAA,OAAO,UAAA,CAAW,KAAK,CAAA,CAAE,IAAA;AAAA,EAC3B;AAGA,EAAA,IAAI,KAAA,CAAM,QAAA,CAAS,GAAG,CAAA,EAAG;AACvB,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA;AAC7B,IAAA,IAAI,UAAe,KAAA,CAAM,OAAA;AACzB,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,MAAA,IAAI,OAAA,IAAW,OAAO,OAAA,KAAY,QAAA,IAAY,QAAQ,OAAA,EAAS;AAC7D,QAAA,OAAA,GAAU,QAAQ,IAAI,CAAA;AAAA,MACxB,CAAA,MAAO;AACL,QAAA,OAAA,GAAU,MAAA;AACV,QAAA;AAAA,MACF;AAAA,IACF;AACA,IAAA,IAAI,OAAO,YAAY,QAAA,EAAU;AAC/B,MAAA,OAAO,OAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,OAAO,KAAA;AACT;AAEA,IAAM,oBAAA,GAAuB,OAAO,MAAA,EAAQ;AAAA,EAC1C,IAAA,EAAM,mBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,SAAA,IACT,SAAS,OAAA,IACT,IAAA,KAAS,OAAA,IACT,IAAA,KAAS,kBACT,IAAA,KAAS,QAAA,IACT,SAAS,WAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAsB,CAAC,EAAE,KAAA,EAAO,OAAM,KAAM;AAC3C,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,sBAAA,CAAuB,KAAA,EAAO,KAAK;AAAA,KAC5C;AAAA,EACF;AACA,EAAA,OAAO,EAAC;AACV,CAAC,CAAA;AAWM,IAAM,UAAA,GAAmB2B,KAAA,CAAA,UAAA;AAAA,EAC9B,SAASC,WAAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AAC9B,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,OAAA,GAAU,OAAA;AAAA,MACV,KAAA,GAAQ,SAAA;AAAA,MACR,KAAA;AAAA,MACA,YAAA,GAAe,KAAA;AAAA,MACf,MAAA,GAAS,KAAA;AAAA,MACT,SAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,mBAAA,GAAsB,UAAA;AAAA,MAC1B,eAAA;AAAA,MACA,kBAAkB,OAAO,CAAA,CAAA;AAAA,MACzB,KAAA,IAAS,KAAA,KAAU,SAAA,IAAa,CAAA,qBAAA,EAAwB,KAAK,CAAA,CAAA;AAAA,MAC7D,YAAA,IAAgB,8BAAA;AAAA,MAChB,MAAA,IAAU,wBAAA;AAAA,MACV,SAAA,KAAc,MAAA,IAAa,SAAA,GAAY,CAAA,IAAK,2BAAA;AAAA,MAC5C;AAAA,KACF;AAEA,IAAA,MAAM,WAAA,GAAmC;AAAA,MACvC,GAAI,cAAc,MAAA,IAAa,SAAA,GAAY,IACtC,EAAE,eAAA,EAAiB,SAAA,EAAU,GAC9B,EAAC;AAAA,MACL,GAAG;AAAA,KACL;AAEA,IAAA,MAAM,SAAA,GACJ,SAAA,IAAa,EAAA,IAAM,qBAAA,CAAsB,OAAO,CAAA,IAAK,MAAA;AAEvD,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE5B,GAAAA;AAAA,QAAC,oBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,mBAAA;AAAA,UACX,KAAA,EAAO,WAAA;AAAA,UACP,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,mBAAA;AAAA,QACX,KAAA,EAAO,WAAA;AAAA,QACP,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;ACvKlB,IAAM,OAAA,GAAgB6B,KAAA,CAAA,UAAA;AAAA,EAC3B,SAASC,QAAAA,CAAQ,KAAA,EAAO,GAAA,EAAK;AAC3B,IAAA,MAAM,EAAE,KAAA,GAAQ,CAAA,EAAG,SAAS,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAEnD,IAAA,MAAM,QAAA,GAAW,IAAI,KAAK,CAAA,CAAA;AAC1B,IAAA,MAAM,kBAAkB,OAAA,IAAW,QAAA;AACnC,IAAA,MAAM,oBAAoB,SAAA,IAAa,QAAA;AAEvC,IAAA,uBACE9B,GAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,iBAAA;AAAA,QACX,OAAA,EAAS,eAAA;AAAA,QACR,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;ACtBtB,IAAM,aAAA,GAAqD;AAAA,EACzD,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AASO,IAAM,IAAA,GAAa+B,KAAA,CAAA,UAAA;AAAA,EACxB,SAASC,KAAAA,CAAK,KAAA,EAAO,GAAA,EAAK;AACxB,IAAA,MAAM,EAAE,MAAM,OAAA,EAAS,KAAA,GAAQ,OAAO,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAE7D,IAAA,MAAM,eAAA,GAAkB,OAAA,KAAY,IAAA,GAAO,aAAA,CAAc,IAAI,CAAA,GAAI,OAAA,CAAA;AACjE,IAAA,MAAM,UAAA,GAAa,QAAQ,GAAA,GAAM,MAAA;AACjC,IAAA,MAAM,oBAAoB,SAAA,IAAa,UAAA;AAEvC,IAAA,uBACEhC,GAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,iBAAA;AAAA,QACX,OAAA,EAAS,eAAA;AAAA,QACR,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;ACvCZ,IAAM,SAAA,GAAkBiC,KAAA,CAAA,UAAA;AAAA,EAC7B,SAASC,UAAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AAC7B,IAAA,MAAM,EAAE,YAAY,GAAA,EAAK,OAAA,GAAU,SAAS,YAAA,GAAe,IAAA,EAAM,GAAG,IAAA,EAAK,GAAI,KAAA;AAE7E,IAAA,uBACElC,GAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA;AAAA,QACA,OAAA;AAAA,QACA,YAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;ACVxB,IAAM,cAAA,GAAiB,OAAO,MAAA,EAAQ;AAAA,EACpC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,SAAS,aAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,IAAA,GAAamC,KAAA,CAAA,UAAA;AAAA,EACxB,SAASC,KAAAA,CAAK,KAAA,EAAO,GAAA,EAAK;AACxB,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA,GAAY,MAAA;AAAA,MACZ,EAAA;AAAA,MACA,WAAA,GAAc,SAAA;AAAA,MACd,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,aAAA,GAAgB,UAAA;AAAA,MACpB,SAAA;AAAA,MACA,WAAA,KAAgB,SAAA,IAAa,CAAA,SAAA,EAAY,WAAW,CAAA,CAAA;AAAA,MACpD;AAAA,KACF;AAEA,IAAA,MAAM,SAAA,GAAY,aAAa,EAAA,IAAM,MAAA;AAErC,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEpC,GAAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,aAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;AC7DZ,IAAM,gBAAA,GAAgD;AAAA,EAC3D,OAAA,EAAS,QAAA;AAAA,EACT,GAAA,EAAK,QAAA;AAAA,EACL,KAAA,EAAO,QAAA;AAAA,EACP,MAAA,EAAQ,QAAA;AAAA,EACR,GAAA,EAAK,QAAA;AAAA,EACL,OAAA,EAAS,QAAA;AAAA,EACT,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO,QAAA;AAAA,EACP,MAAA,EAAQ,KAAA;AAAA,EACR,GAAA,EAAK,KAAA;AAAA,EACL,GAAA,EAAK,QAAA;AAAA,EACL,SAAA,EAAW,QAAA;AAAA,EACX,MAAA,EAAQ,QAAA;AAAA,EACR,GAAA,EAAK,QAAA;AAAA,EACL,EAAA,EAAI,QAAA;AAAA,EACJ,IAAA,EAAM,QAAA;AAAA,EACN,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO;AACT;AA8BA,IAAM,aAAA,GAAgB,OAAO,KAAA,EAAO;AAAA,EAClC,IAAA,EAAM,YAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,MAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAUE,IAAM,GAAA,GAAYqC,KAAA,CAAA,UAAA;AAAA,EACvB,SAASC,IAAAA,CAAI,KAAA,EAAO,GAAA,EAAK;AACvB,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA,GAAY,KAAA;AAAA,MACZ,EAAA;AAAA,MACA,IAAA,GAAO,IAAA;AAAA,MACP,OAAA,GAAU,SAAA;AAAA,MACV,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,YAAA,GAAe,UAAA;AAAA,MACnB,QAAA;AAAA,MACA,WAAW,IAAI,CAAA,CAAA;AAAA,MACf,WAAW,OAAO,CAAA,CAAA;AAAA,MAClB;AAAA,KACF;AAEA,IAAA,MAAM,SAAA,GAAY,aAAa,EAAA,IAAM,KAAA;AAGrC,IAAA,MAAM,UAAU,QAAA,KAAa,QAAA,GAAW,gBAAA,CAAiB,QAAQ,KAAK,QAAA,GAAW,IAAA,CAAA;AAEjF,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEtC,GAAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,YAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,YAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,GAAA,CAAI,WAAA,GAAc,KAAA;AC3IX,IAAM,gBAAA,GAAyBuC,oBAEpC,MAAS;AAMJ,SAAS,YAAA,GAAkD;AAChE,EAAA,OAAaA,iBAAW,gBAAgB,CAAA;AAC1C;ACTO,IAAM,SAAA,GAAkBC,KAAA,CAAA,UAAA,CAG7B,SAASC,UAAAA,CAAU,EAAE,SAAA,EAAW,UAAA,EAAY,WAAA,EAAa,GAAG,KAAA,EAAM,EAAG,GAAA,EAAK;AAC1E,EAAA,uBACEzC,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,UAAA,CAAW,iBAAA,EAAmB,SAAS,CAAA;AAAA,MACjD,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AAED,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,eAAA,GAAkB,OAAO,KAAA,EAAO;AAAA,EACpC,IAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,SAAA,IACT,SAAS,MAAA,IACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,OAAA,IACT,IAAA,KAAS,cACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,mBAAA,IACT,IAAA,KAAS,iBAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,KAAA,GAAcwC,KAAA,CAAA,UAAA;AAAA,EACzB,SAASE,MAAAA,CAAM,KAAA,EAAO,GAAA,EAAK;AACzB,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,OAAA,GAAU,UAAA;AAAA,MACV,IAAA,GAAO,IAAA;AAAA,MACP,SAAA,GAAY,KAAA;AAAA,MACZ,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,cAAA;AAAA,MACA,YAAA;AAAA,MACA,SAAA,GAAY,KAAA;AAAA,MACZ,OAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,YAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA,GAAO,MAAA;AAAA,MACP,EAAA,EAAI,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,UAAA;AAAA,MACA,kBAAA,EAAoB,mBAAA;AAAA,MACpB,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,EAAA,GAAK,UAAU,SAAA,EAAW,EAAA;AAChC,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,SAAA,EAAW,KAAA,IAAS,KAAA;AAC/C,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AAExD,IAAA,MAAM,eAAA,GAAkB;AAAA,MACtB,mBAAA;AAAA,MACA,SAAA,EAAW,KAAA,IAAS,SAAA,EAAW,eAAA,GAAkB,UAAU,cAAA,GAAiB,IAAA;AAAA,MAC5E,SAAA,EAAW,aAAA,GAAgB,SAAA,CAAU,YAAA,GAAe;AAAA,MAEnD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAGhB,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUF,eAAiB,MAAM;AACrE,MAAA,IAAI,SAAA,KAAc,MAAA,EAAW,OAAO,MAAA,CAAO,SAAS,CAAA;AACpD,MAAA,IAAI,YAAA,KAAiB,MAAA,EAAW,OAAO,MAAA,CAAO,YAAY,CAAA;AAC1D,MAAA,OAAO,EAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,MAAM,eAAe,SAAA,KAAc,MAAA;AACnC,IAAA,MAAM,YAAA,GAAe,YAAA,GAAe,MAAA,CAAO,SAAA,IAAa,EAAE,CAAA,GAAI,aAAA;AAE9D,IAAA,MAAM,aAAA,GAAsBA,aAAgC,IAAI,CAAA;AAEhE,IAAA,MAAM,cAAA,GAAuBA,KAAA,CAAA,WAAA;AAAA,MAC3B,CAAC,IAAA,KAAkC;AACjC,QAAA,aAAA,CAAc,OAAA,GAAU,IAAA;AACxB,QAAA,IAAI,OAAO,iBAAiB,UAAA,EAAY;AACtC,UAAA,YAAA,CAAa,IAAI,CAAA;AAAA,QACnB,CAAA,MAAA,IAAW,YAAA,IAAgB,SAAA,IAAa,YAAA,EAAc;AACpD,UAAC,aAAiE,OAAA,GAAU,IAAA;AAAA,QAC9E;AAAA,MACF,CAAA;AAAA,MACA,CAAC,YAAY;AAAA,KACf;AAEA,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAA+C;AACnE,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,gBAAA,CAAiB,KAAA,CAAM,OAAO,KAAK,CAAA;AAAA,MACrC;AACA,MAAA,QAAA,GAAW,KAAK,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA2C;AAC9D,MAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,gBAAA,CAAiB,EAAE,CAAA;AAAA,MACrB;AACA,MAAA,IAAI,cAAc,OAAA,EAAS;AACzB,QAAA,aAAA,CAAc,QAAQ,KAAA,GAAQ,EAAA;AAC9B,QAAA,MAAM,QAAQ,IAAI,KAAA,CAAM,SAAS,EAAE,OAAA,EAAS,MAAM,CAAA;AAClD,QAAA,aAAA,CAAc,OAAA,CAAQ,cAAc,KAAK,CAAA;AACzC,QAAA,aAAA,CAAc,QAAQ,KAAA,EAAM;AAAA,MAC9B;AACA,MAAA,OAAA,IAAU;AAAA,IACZ,CAAA;AAEA,IAAA,MAAM,qBAAqB,MAAM;AAC/B,MAAA,IAAI,aAAA,CAAc,OAAA,IAAW,QAAA,CAAS,aAAA,KAAkB,cAAc,OAAA,EAAS;AAC7E,QAAA,aAAA,CAAc,QAAQ,KAAA,EAAM;AAAA,MAC9B;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,CAAC,YAAY,CAAC,QAAA,IAAY,aAAa,MAAA,GAAS,CAAA;AAE/E,IAAA,MAAM,WAAA,GAAc,4BAClBxC,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAU,iBAAA;AAAA,QACV,YAAA,EAAW,aAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QAET,QAAA,kBAAA2C,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,KAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,EAAA;AAAA,8BAAA3C,GAAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,8BACpCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA;AACtC;AAAA,KACF,GACE,IAAA;AAEJ,IAAA,MAAM,qBAAA,GAAwB,UAAA;AAAA,MAC5B,UAAA;AAAA,MACA,aAAa,OAAO,CAAA,CAAA;AAAA,MACpB,aAAa,IAAI,CAAA,CAAA;AAAA,MACjB,SAAA,IAAa,sBAAA;AAAA,MACb,KAAA,IAAS,iBAAA;AAAA,MACT,QAAA,IAAY,oBAAA;AAAA,MACZ;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE2C,IAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,qBAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACA,OAAA,EAAS,kBAAA;AAAA,UAER,QAAA,EAAA;AAAA,YAAA,cAAA;AAAA,4BACD3C,GAAAA;AAAA,cAAC,OAAA;AAAA,cAAA;AAAA,gBACC,GAAA,EAAK,cAAA;AAAA,gBACL,EAAA;AAAA,gBACA,IAAA;AAAA,gBACA,QAAA;AAAA,gBACA,QAAA;AAAA,gBACA,QAAA;AAAA,gBACA,kBAAA,EAAkB,eAAA;AAAA,gBAClB,KAAA,EAAO,SAAA;AAAA,gBACP,YAAA;AAAA,gBACA,QAAA,EAAU,YAAA;AAAA,gBACV,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,gBAC7B,SAAA,EAAU,iBAAA;AAAA,gBACT,GAAG,UAAA;AAAA,gBACH,GAAG;AAAA;AAAA,aACN;AAAA,YACC,WAAA;AAAA,YACA;AAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE2C,IAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,qBAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACA,OAAA,EAAS,kBAAA;AAAA,QAER,QAAA,EAAA;AAAA,UAAA,cAAA;AAAA,0BACD3C,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAK,cAAA;AAAA,cACL,EAAA;AAAA,cACA,IAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,kBAAA,EAAkB,eAAA;AAAA,cAClB,KAAA,EAAO,SAAA;AAAA,cACP,YAAA;AAAA,cACA,QAAA,EAAU,YAAA;AAAA,cACV,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,cAC7B,SAAA,EAAU,iBAAA;AAAA,cACT,GAAG,UAAA;AAAA,cACH,GAAG;AAAA;AAAA,WACN;AAAA,UACC,WAAA;AAAA,UACA;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AC5OpB,IAAM,mBAAA,GAAsB,OAAO,KAAA,EAAO;AAAA,EACxC,IAAA,EAAM,kBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS;AACxC,CAAC,CAAA,CAA2B,CAAC,EAAE,SAAA,EAAU,MAAO;AAAA,EAC9C,OAAA,EAAS,aAAA;AAAA,EACT,aAAA,EAAe,QAAA;AAAA,EACf,QAAA,EAAU,UAAA;AAAA,EACV,KAAA,EAAO,YAAY,MAAA,GAAS,MAAA;AAAA,EAC5B,aAAA,EAAe;AACjB,CAAA,CAAE,CAAA;AAEF,IAAM,WAAA,GAAc,OAAO,OAAO,CAAA;AAAA,EAChC,CAAC,EAAE,KAAA,EAAO,KAAA,EAAM,MAAO;AAAA,IACrB,OAAA,EAAS,OAAA;AAAA,IACT,QAAA,EAAU,UAAA;AAAA,IACV,UAAA,EAAY,GAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,YAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,IAChC,KAAA,EAAO,QAAQ,KAAA,CAAM,OAAA,CAAQ,MAAM,IAAA,GAAO,KAAA,CAAM,QAAQ,IAAA,CAAK,OAAA;AAAA,IAC7D,UAAA,EAAY,MAAA;AAAA,IACZ,sCAAA,EAAwC;AAAA,MACtC,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,IAAA;AAAA,MAC3B,UAAA,EAAY;AAAA;AACd,GACF;AACF,CAAA;AAEA,IAAM,gBAAA,GAAmB,OAAO,GAAG,CAAA;AAAA,EACjC,CAAC,EAAE,KAAA,EAAO,KAAA,EAAM,MAAO;AAAA,IACrB,QAAA,EAAU,SAAA;AAAA,IACV,UAAA,EAAY,GAAA;AAAA,IACZ,MAAA,EAAQ,CAAA;AAAA,IACR,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA;AAAA,IAC5B,KAAA,EAAO,QAAQ,KAAA,CAAM,OAAA,CAAQ,MAAM,IAAA,GAAO,KAAA,CAAM,QAAQ,IAAA,CAAK;AAAA,GAC/D;AACF,CAAA;AAcO,IAAM,SAAA,GAAkB4C,KAAA,CAAA,UAAA;AAAA,EAC7B,SAASC,UAAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AAC7B,IAAA,MAAM;AAAA,MACJ,EAAA,EAAI,MAAA;AAAA,MACJ,KAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA;AAAA,MACA,KAAA,GAAQ,KAAA;AAAA,MACR,QAAA,GAAW,KAAA;AAAA,MACX,SAAA,GAAY,KAAA;AAAA,MACZ,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,cAAoBD,KAAA,CAAA,KAAA,EAAM;AAChC,IAAA,MAAM,UAAU,MAAA,IAAU,WAAA;AAC1B,IAAA,MAAM,QAAA,GAAW,GAAG,OAAO,CAAA,OAAA,CAAA;AAE3B,IAAA,MAAM,mBAAA,GAAsB,KAAA,IAAS,YAAA,GAAe,YAAA,GAAe,UAAA;AAEnE,IAAA,uBACED,IAAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA,KAAA;AAAA,QACA,EAAA;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,KAAA,oBACCA,IAAAA,CAAC,WAAA,EAAA,EAAY,OAAA,EAAS,OAAA,EAAS,OAAc,QAAA,EAC1C,QAAA,EAAA;AAAA,YAAA,KAAA;AAAA,YACA,4BAAY3C,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qCAAoC,QAAA,EAAA,GAAA,EAAC;AAAA,WAAA,EACpE,CAAA;AAAA,0BAGFA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,OAAA;AAAA,cACJ,KAAA;AAAA,cACA,QAAA;AAAA,cACA,SAAA;AAAA,cACA,kBAAA,EAAkB,sBAAsB,QAAA,GAAW,MAAA;AAAA,cAClD,GAAG;AAAA;AAAA,WACN;AAAA,UAEC,uCACCA,GAAAA,CAAC,oBAAiB,EAAA,EAAI,QAAA,EAAU,OAC7B,QAAA,EAAA,mBAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;AC5GxB,IAAM,mBAAA,GAAsB,OAAO,KAAA,EAAO;AAAA,EACxC,IAAA,EAAM,uBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,cAAc,IAAA,KAAS;AACpC,CAAC,CAAA;AAAA,EACC,CAAC,EAAE,KAAA,EAAO,QAAA,EAAU,sBAAqB,MAAO;AAAA,IAC9C,OAAA,EAAS,MAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,SAAA,EAAW,KAAA;AAAA,IACX,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,SAAA;AAAA,IAC1B,YAAY,QAAA,KAAa,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,GAAI,CAAA;AAAA,IACpD,aAAa,QAAA,KAAa,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,GAAI,CAAA;AAAA,IACvD,aAAA,EAAe,uBAAuB,MAAA,GAAS,MAAA;AAAA,IAC/C,UAAA,EAAY;AAAA,GACd;AACF,CAAA;AAEO,IAAM,cAAA,GAAuB8C,KAAA,CAAA,UAAA,CAGlC,SAASC,eAAAA,CAAe,OAAO,GAAA,EAAK;AACpC,EAAA,MAAM,EAAE,QAAA,EAAU,oBAAA,GAAuB,OAAO,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AAEtE,EAAA,uBACE/C,GAAAA;AAAA,IAAC,mBAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,QAAA;AAAA,MACA,oBAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AAED,cAAA,CAAe,WAAA,GAAc,gBAAA;ACtC7B,IAAM,uBAAA,GAA0B,OAAO,KAAA,EAAO;AAAA,EAC5C,IAAA,EAAM,iBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,SAAA,IACT,SAAS,MAAA,IACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,OAAA,IACT,IAAA,KAAS,cACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,YAAA,IACT,IAAA,KAAS,QAAA,IACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAME,IAAM,QAAA,GAAiBgD,KAAA,CAAA,UAAA;AAAA,EAC5B,SAASC,SAAAA,CAAS,KAAA,EAAO,GAAA,EAAK;AAC5B,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,OAAA,GAAU,UAAA;AAAA,MACV,IAAA,GAAO,IAAA;AAAA,MACP,SAAA,GAAY,KAAA;AAAA,MACZ,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,GAAU,CAAA;AAAA,MACV,OAAA;AAAA,MACA,UAAA,GAAa,KAAA;AAAA,MACb,MAAA,GAAS,UAAA;AAAA,MACT,SAAA,GAAY,KAAA;AAAA,MACZ,SAAA;AAAA,MACA,WAAA,EAAa,eAAA;AAAA,MACb,gBAAgB,EAAC;AAAA,MACjB,KAAA,EAAO,SAAA;AAAA,MACP,YAAA;AAAA,MACA,QAAA;AAAA,MACA,EAAA,EAAI,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,kBAAA,EAAoB,mBAAA;AAAA,MACpB,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,EAAA,GAAK,UAAU,SAAA,EAAW,EAAA;AAChC,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,SAAA,EAAW,KAAA,IAAS,KAAA;AAC/C,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AAExD,IAAA,MAAM,eAAA,GAAkB;AAAA,MACtB,mBAAA;AAAA,MACA,SAAA,EAAW,KAAA,IAAS,SAAA,EAAW,eAAA,GAAkB,UAAU,cAAA,GAAiB,IAAA;AAAA,MAC5E,SAAA,EAAW,aAAA,GAAgB,SAAA,CAAU,YAAA,GAAe;AAAA,MAEnD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAEhB,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUD,eAAiB,MAAM;AACrE,MAAA,IAAI,SAAA,KAAc,MAAA,EAAW,OAAO,MAAA,CAAO,SAAS,CAAA;AACpD,MAAA,IAAI,YAAA,KAAiB,MAAA,EAAW,OAAO,MAAA,CAAO,YAAY,CAAA;AAC1D,MAAA,OAAO,EAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,MAAM,eAAe,SAAA,KAAc,MAAA;AACnC,IAAA,MAAM,YAAA,GAAe,YAAA,GAAe,MAAA,CAAO,SAAA,IAAa,EAAE,CAAA,GAAI,aAAA;AAE9D,IAAA,MAAM,gBAAA,GAAyBA,aAAmC,IAAI,CAAA;AAEtE,IAAA,MAAM,iBAAA,GAA0BA,KAAA,CAAA,WAAA;AAAA,MAC9B,CAAC,IAAA,KAAqC;AACpC,QAAA,gBAAA,CAAiB,OAAA,GAAU,IAAA;AAC3B,QAAA,IAAI,OAAO,oBAAoB,UAAA,EAAY;AACzC,UAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,QACtB,CAAA,MAAA,IAAW,eAAA,IAAmB,SAAA,IAAa,eAAA,EAAiB;AAC1D,UAAC,gBAAuE,OAAA,GAAU,IAAA;AAAA,QACpF;AAAA,MACF,CAAA;AAAA,MACA,CAAC,eAAe;AAAA,KAClB;AAGA,IAAMA,sBAAgB,MAAM;AAC1B,MAAA,IAAI,CAAC,UAAA,IAAc,CAAC,gBAAA,CAAiB,OAAA,EAAS;AAE9C,MAAA,MAAM,WAAW,gBAAA,CAAiB,OAAA;AAClC,MAAA,QAAA,CAAS,MAAM,MAAA,GAAS,MAAA;AAExB,MAAA,MAAM,aAAa,UAAA,CAAW,gBAAA,CAAiB,QAAQ,CAAA,CAAE,UAAU,CAAA,IAAK,EAAA;AACxE,MAAA,MAAM,YAAY,OAAA,GAAU,UAAA;AAC5B,MAAA,MAAM,SAAA,GAAY,OAAA,GAAU,OAAA,GAAU,UAAA,GAAa,QAAA;AAEnD,MAAA,MAAM,mBAAmB,IAAA,CAAK,GAAA;AAAA,QAC5B,IAAA,CAAK,GAAA,CAAI,QAAA,CAAS,YAAA,EAAc,SAAS,CAAA;AAAA,QACzC;AAAA,OACF;AAEA,MAAA,QAAA,CAAS,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,gBAAgB,CAAA,EAAA,CAAA;AAC3C,MAAA,QAAA,CAAS,MAAM,SAAA,GACb,OAAA,IAAW,QAAA,CAAS,YAAA,GAAe,YAAY,MAAA,GAAS,QAAA;AAAA,IAC5D,GAAG,CAAC,YAAA,EAAc,UAAA,EAAY,OAAA,EAAS,OAAO,CAAC,CAAA;AAE/C,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAAkD;AACtE,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,gBAAA,CAAiB,KAAA,CAAM,OAAO,KAAK,CAAA;AAAA,MACrC;AACA,MAAA,QAAA,GAAW,KAAK,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,MAAM,qBAAqB,MAAM;AAC/B,MAAA,IAAI,gBAAA,CAAiB,OAAA,IAAW,QAAA,CAAS,aAAA,KAAkB,iBAAiB,OAAA,EAAS;AACnF,QAAA,gBAAA,CAAiB,QAAQ,KAAA,EAAM;AAAA,MACjC;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,kBAAA,GAAqB,UAAA;AAAA,MACzB,aAAA;AAAA,MACA,gBAAgB,OAAO,CAAA,CAAA;AAAA,MACvB,gBAAgB,IAAI,CAAA,CAAA;AAAA,MACpB,SAAA,IAAa,yBAAA;AAAA,MACb,KAAA,IAAS,oBAAA;AAAA,MACT,QAAA,IAAY,uBAAA;AAAA,MACZ;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,MAAM,aAAA,GAAqC;AAAA,MACzC,MAAA,EAAQ,aAAa,MAAA,GAAS;AAAA,KAChC;AAEA,IAAA,MAAM,YAAA,GAAe,4BACnBL,IAAAA,CAAC,SAAI,SAAA,EAAU,sBAAA,EAAuB,aAAU,QAAA,EAC7C,QAAA,EAAA;AAAA,MAAA,YAAA,CAAa,MAAA;AAAA,MACb,SAAA,GAAY,CAAA,GAAA,EAAM,SAAS,CAAA,CAAA,GAAK;AAAA,KAAA,EACnC,CAAA,GACE,IAAA;AAEJ,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,IAAAA;AAAA,QAAC,uBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,kBAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACA,OAAA,EAAS,kBAAA;AAAA,UACR,GAAG,kBAAA;AAAA,UAEJ,QAAA,EAAA;AAAA,4BAAA3C,GAAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,GAAA,EAAK,iBAAA;AAAA,gBACL,EAAA;AAAA,gBACA,IAAA;AAAA,gBACA,WAAA;AAAA,gBACA,QAAA;AAAA,gBACA,QAAA;AAAA,gBACA,QAAA;AAAA,gBACA,kBAAA,EAAkB,eAAA;AAAA,gBAClB,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,gBAC7B,KAAA,EAAO,SAAA;AAAA,gBACP,YAAA;AAAA,gBACA,QAAA,EAAU,YAAA;AAAA,gBACV,SAAA;AAAA,gBACA,MAAM,IAAA,IAAQ,OAAA;AAAA,gBACd,IAAA;AAAA,gBACA,SAAA;AAAA,gBACA,OAAA;AAAA,gBACA,MAAA;AAAA,gBACA,SAAA;AAAA,gBACA,OAAA;AAAA,gBACA,KAAA,EAAO,aAAA;AAAA,gBACP,SAAA,EAAU,oBAAA;AAAA,gBACT,GAAG;AAAA;AAAA,aACN;AAAA,YACC;AAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE2C,IAAAA;AAAA,MAAC,uBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,kBAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACA,OAAA,EAAS,kBAAA;AAAA,QACR,GAAG,kBAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA3C,GAAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAK,iBAAA;AAAA,cACL,EAAA;AAAA,cACA,IAAA;AAAA,cACA,WAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,kBAAA,EAAkB,eAAA;AAAA,cAClB,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,cAC7B,KAAA,EAAO,SAAA;AAAA,cACP,YAAA;AAAA,cACA,QAAA,EAAU,YAAA;AAAA,cACV,SAAA;AAAA,cACA,MAAM,IAAA,IAAQ,OAAA;AAAA,cACd,IAAA;AAAA,cACA,SAAA;AAAA,cACA,OAAA;AAAA,cACA,MAAA;AAAA,cACA,SAAA;AAAA,cACA,OAAA;AAAA,cACA,KAAA,EAAO,aAAA;AAAA,cACP,SAAA,EAAU,oBAAA;AAAA,cACT,GAAG;AAAA;AAAA,WACN;AAAA,UACC;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AChPvB,IAAM,mBAAA,GAAsB,OAAO,KAAA,EAAO;AAAA,EACxC,IAAA,EAAM,kBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,OAAA,IACT,IAAA,KAAS,cACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAcE,IAAM,SAAA,GAAkBkD,KAAA,CAAA,UAAA;AAAA,EAC7B,SAASC,UAAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AAC7B,IAAA,MAAM;AAAA,MACJ,EAAA,EAAI,MAAA;AAAA,MACJ,IAAA;AAAA,MACA,QAAA,GAAW,KAAA;AAAA,MACX,QAAA,GAAW,KAAA;AAAA,MACX,QAAA,GAAW,KAAA;AAAA,MACX,KAAA,GAAQ,KAAA;AAAA,MACR,SAAA,GAAY,KAAA;AAAA,MACZ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,cAAoBD,KAAA,CAAA,KAAA,EAAM;AAChC,IAAA,MAAM,KAAK,MAAA,IAAU,WAAA;AACrB,IAAA,MAAM,OAAA,GAAU,GAAG,EAAE,CAAA,MAAA,CAAA;AACrB,IAAA,MAAM,YAAA,GAAe,GAAG,EAAE,CAAA,OAAA,CAAA;AAC1B,IAAA,MAAM,cAAA,GAAiB,GAAG,EAAE,CAAA,MAAA,CAAA;AAE5B,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUA,eAAS,KAAK,CAAA;AAC9D,IAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAUA,eAAS,KAAK,CAAA;AAElE,IAAA,MAAM,YAAA,GAA4CA,KAAA,CAAA,OAAA;AAAA,MAChD,OAAO;AAAA,QACL,EAAA;AAAA,QACA,IAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA;AAAA,QACA,YAAA;AAAA,QACA,cAAA;AAAA,QACA,aAAA;AAAA,QACA,eAAA;AAAA,QACA,gBAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA;AAAA,QACE,EAAA;AAAA,QACA,IAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA;AAAA,QACA,YAAA;AAAA,QACA,cAAA;AAAA,QACA,aAAA;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,eAAA;AAAA,MACA,SAAA,IAAa,2BAAA;AAAA,MACb,KAAA,IAAS,sBAAA;AAAA,MACT,QAAA,IAAY,yBAAA;AAAA,MACZ;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACElD,GAAAA,CAAC,gBAAA,CAAiB,UAAjB,EAA0B,KAAA,EAAO,cAChC,QAAA,kBAAAA,GAAAA;AAAA,QAAC,mBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA,CAAC,gBAAA,CAAiB,UAAjB,EAA0B,KAAA,EAAO,cAChC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;AC9GxB,IAAM,eAAA,GAAkB,OAAO,OAAA,EAAS;AAAA,EACtC,IAAA,EAAM,kBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,OAAA,IACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAQE,IAAM,SAAA,GAAkBoD,KAAA,CAAA,UAAA;AAAA,EAC7B,SAASC,UAAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AAC7B,IAAA,MAAM;AAAA,MACJ,OAAA,EAAS,WAAA;AAAA,MACT,EAAA,EAAI,MAAA;AAAA,MACJ,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM,OAAA,GAAU,eAAe,SAAA,EAAW,EAAA;AAC1C,IAAA,MAAM,EAAA,GAAK,UAAU,SAAA,EAAW,OAAA;AAChC,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,SAAA,EAAW,KAAA,IAAS,KAAA;AAC/C,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AAExD,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,eAAA;AAAA,MACA,KAAA,IAAS,sBAAA;AAAA,MACT,QAAA,IAAY,yBAAA;AAAA,MACZ;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACErD,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,OAAA;AAAA,UACA,EAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE2C,IAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,OAAA;AAAA,QACA,EAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UACA,QAAA,oBACC3C,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,yBAAA,EAA0B,aAAA,EAAY,QAAO,QAAA,EAAA,GAAA,EAAC;AAAA;AAAA;AAAA,KAElE;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;ACjGxB,IAAM,oBAAA,GAAuB,OAAO,GAAA,EAAK;AAAA,EACvC,IAAA,EAAM,uBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,SAAS,UAAA,IAAc,IAAA,KAAS,aAAa,IAAA,KAAS;AAC1D,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,cAAA,GAAuBsD,KAAA,CAAA,UAAA,CAGlC,SAASC,eAAAA,CAAe,OAAO,GAAA,EAAK;AACpC,EAAA,MAAM;AAAA,IACJ,EAAA,EAAI,MAAA;AAAA,IACJ,QAAA,EAAU,YAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,SAAA,GAAY,GAAA;AAAA,IACZ,EAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,EAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,MAAM,mBAAmB,SAAA,EAAW,gBAAA;AAEpC,EAAMD,gBAAU,MAAM;AACpB,IAAA,gBAAA,GAAmB,IAAI,CAAA;AACvB,IAAA,OAAO,MAAM,mBAAmB,KAAK,CAAA;AAAA,EACvC,CAAA,EAAG,CAAC,gBAAgB,CAAC,CAAA;AAErB,EAAA,MAAM,EAAA,GAAK,UAAU,SAAA,EAAW,YAAA;AAChC,EAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,EAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,EAAA,MAAM,eAAA,GAAkB,UAAA;AAAA,IACtB,qBAAA;AAAA,IACA,QAAA,IAAY,+BAAA;AAAA,IACZ;AAAA,GACF;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACEtD,GAAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,IAAA;AAAA,QACJ,GAAA;AAAA,QACA,EAAA;AAAA,QACA,SAAA,EAAW,eAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,oBAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAI,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA,EAAW,eAAA;AAAA,MACX,KAAA;AAAA,MACA,EAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AAED,cAAA,CAAe,WAAA,GAAc,gBAAA;AC/E7B,IAAM,sBAAA,GAAyB,OAAO,GAAA,EAAK;AAAA,EACzC,IAAA,EAAM,yBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,SAAS,YAAA,IAAgB,IAAA,KAAS,aAAa,IAAA,KAAS;AAC5D,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,gBAAA,GAAyBwD,KAAA,CAAA,UAAA,CAGpC,SAASC,iBAAAA,CAAiB,OAAO,GAAA,EAAK;AACtC,EAAA,MAAM;AAAA,IACJ,EAAA,EAAI,MAAA;AAAA,IACJ,UAAA,GAAa,KAAA;AAAA,IACb,OAAA,GAAU,KAAA;AAAA,IACV,SAAA,GAAY,GAAA;AAAA,IACZ,EAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,EAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,MAAM,OAAA,GAAU,WAAW,KAAA,IAAS,KAAA;AACpC,EAAA,MAAM,qBAAqB,SAAA,EAAW,kBAAA;AAEtC,EAAMD,gBAAU,MAAM;AACpB,IAAA,IAAI,WAAW,UAAA,EAAY;AACzB,MAAA,kBAAA,GAAqB,IAAI,CAAA;AACzB,MAAA,OAAO,MAAM,qBAAqB,KAAK,CAAA;AAAA,IACzC;AAAA,EACF,CAAA,EAAG,CAAC,kBAAA,EAAoB,OAAA,EAAS,UAAU,CAAC,CAAA;AAE5C,EAAA,IAAI,CAAC,OAAA,IAAW,CAAC,UAAA,EAAY;AAC3B,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,EAAA,GAAK,UAAU,SAAA,EAAW,cAAA;AAChC,EAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,EAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,uBAAA,EAAyB,SAAS,CAAA;AAEpE,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACExD,GAAAA;AAAA,MAAC,sBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,IAAA;AAAA,QACJ,GAAA;AAAA,QACA,EAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,WAAA,EAAU,QAAA;AAAA,QACV,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,sBAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAI,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,EAAA;AAAA,MACA,IAAA,EAAK,OAAA;AAAA,MACL,WAAA,EAAU,QAAA;AAAA,MACV,SAAA,EAAW,cAAA;AAAA,MACX,KAAA;AAAA,MACA,EAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AAED,gBAAA,CAAiB,WAAA,GAAc,kBAAA;ACtHxB,IAAM,eAAA,GAAwB0D,oBAEnC,MAAS;AAMJ,SAAS,gBAAA,GAAqD;AACnE,EAAA,OAAaA,iBAAW,eAAe,CAAA;AACzC;ACIA,IAAM,kBAAA,GAAqB,OAAO,OAAA,EAAS;AAAA,EACzC,IAAA,EAAM,iBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,SAAS,MAAA,IACT,IAAA,KAAS,iBACT,IAAA,KAAS,UAAA,IACT,SAAS,UAAA,IACT,IAAA,KAAS,WACT,IAAA,KAAS,SAAA,IACT,SAAS,eAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAUE,IAAM,QAAA,GAAiBC,KAAA,CAAA,UAAA;AAAA,EAC5B,SAASC,SAAAA,CAAS,KAAA,EAAO,GAAA,EAAK;AAC5B,IAAA,MAAM,QAAQ,gBAAA,EAAiB;AAC/B,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM;AAAA,MACJ,OAAA,EAAS,WAAA;AAAA,MACT,cAAA,GAAiB,KAAA;AAAA,MACjB,aAAA,GAAgB,KAAA;AAAA,MAChB,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,WAAA,EAAa,eAAA;AAAA,MACb,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,aAAa,EAAC;AAAA,MACd,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA,EAAI,MAAA;AAAA,MACJ,GAAG;AAAA,KACL,GAAI,KAAA;AAGJ,IAAA,MAAM,iBAAA,GAAoB,KAAA,KAAU,MAAA,IAAa,SAAA,KAAc,MAAA;AAC/D,IAAA,MAAM,mBAAmB,iBAAA,GACrB,KAAA,CAAM,KAAA,CAAM,QAAA,CAAS,SAAS,CAAA,GAC9B,MAAA;AAEJ,IAAA,MAAM,OAAA,GACJ,WAAA,KAAgB,MAAA,GAAY,WAAA,GAAc,gBAAA;AAE5C,IAAA,MAAM,IAAA,GAAO,QAAA,IAAY,KAAA,EAAO,IAAA,IAAQ,IAAA;AACxC,IAAA,MAAM,WAAA,GAAc,eAAA,IAAmB,KAAA,EAAO,WAAA,IAAe,SAAA;AAC7D,IAAA,MAAM,QAAA,GACJ,YAAA,IAAgB,KAAA,EAAO,QAAA,IAAY,WAAW,QAAA,IAAY,KAAA;AAC5D,IAAA,MAAM,QAAA,GACJ,YAAA,IAAgB,KAAA,EAAO,QAAA,IAAY,WAAW,QAAA,IAAY,KAAA;AAC5D,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,KAAA,EAAO,KAAA,IAAS,WAAW,KAAA,IAAS,KAAA;AAC/D,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,IAAA,GAAO,QAAA,IAAY,KAAA,EAAO,IAAA,IAAQ,SAAA,EAAW,IAAA;AACnD,IAAA,MAAM,KAAK,MAAA,KAAW,SAAA,GAAY,CAAA,EAAG,SAAA,CAAU,EAAE,CAAA,SAAA,CAAA,GAAc,MAAA,CAAA;AAE/D,IAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAUD,KAAA,CAAA,QAAA;AAAA,MAC1D;AAAA,KACF;AAEA,IAAA,MAAM,eAAe,OAAA,KAAY,MAAA;AACjC,IAAA,MAAM,gBAAA,GAAmB,eAAe,OAAA,GAAU,mBAAA;AAElD,IAAA,MAAM,cAAA,GAAuBA,aAAgC,IAAI,CAAA;AACjE,IAAA,MAAM,cAAA,GAAiB,YAAA,CAAa,cAAA,EAAgB,YAAY,CAAA;AAEhE,IAAMA,gBAAU,MAAM;AACpB,MAAA,IAAI,eAAe,OAAA,EAAS;AAC1B,QAAA,cAAA,CAAe,OAAA,CAAQ,aAAA,GAAgB,OAAA,CAAQ,aAAa,CAAA;AAAA,MAC9D;AAAA,IACF,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAElB,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAA+C;AACnE,MAAA,IAAI,YAAY,QAAA,EAAU;AACxB,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,iBAAA,EAAmB;AACrB,QAAA,KAAA,CAAM,YAAY,SAAS,CAAA;AAAA,MAC7B,CAAA,MAAA,IAAW,CAAC,YAAA,EAAc;AACxB,QAAA,sBAAA,CAAuB,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA,MAC7C;AAEA,MAAA,YAAA,GAAe,KAAK,CAAA;AAAA,IACtB,CAAA;AAEA,IAAA,MAAM,iBAAA,GAAoB,UAAA;AAAA,MACxB,aAAA;AAAA,MACA,gBAAgB,IAAI,CAAA,CAAA;AAAA,MACpB,gBAAgB,WAAW,CAAA,CAAA;AAAA,MAC3B,gBAAA,IAAoB,sBAAA;AAAA,MACpB,aAAA,IAAiB,4BAAA;AAAA,MACjB,QAAA,IAAY,uBAAA;AAAA,MACZ,KAAA,IAAS,oBAAA;AAAA,MACT;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,MAAM,UAAA,mBACJ3D,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,8CAAA,EAA+C,aAAA,EAAY,MAAA,EACxE,QAAA,EAAA,aAAA,mBACCA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,4EAAA;AAAA,QACV,OAAA,EAAQ,WAAA;AAAA,QACR,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,WAAA,EAAY,KAAA;AAAA,QACZ,aAAA,EAAc,OAAA;AAAA,QACd,cAAA,EAAe,OAAA;AAAA,QACf,aAAA,EAAY,MAAA;AAAA,QACZ,OAAO,IAAA,KAAS,IAAA,GAAO,EAAA,GAAK,IAAA,KAAS,OAAO,EAAA,GAAK,EAAA;AAAA,QACjD,QAAQ,IAAA,KAAS,IAAA,GAAO,EAAA,GAAK,IAAA,KAAS,OAAO,EAAA,GAAK,EAAA;AAAA,QAElD,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA,KACvC,GACE,mCACFA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,sEAAA;AAAA,QACV,OAAA,EAAQ,WAAA;AAAA,QACR,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,WAAA,EAAY,KAAA;AAAA,QACZ,aAAA,EAAc,OAAA;AAAA,QACd,cAAA,EAAe,OAAA;AAAA,QACf,aAAA,EAAY,MAAA;AAAA,QACZ,OAAO,IAAA,KAAS,IAAA,GAAO,EAAA,GAAK,IAAA,KAAS,OAAO,EAAA,GAAK,EAAA;AAAA,QACjD,QAAQ,IAAA,KAAS,IAAA,GAAO,EAAA,GAAK,IAAA,KAAS,OAAO,EAAA,GAAK,EAAA;AAAA,QAElD,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB;AAAA;AAAA,QAElC,IAAA,EACN,CAAA;AAGF,IAAA,MAAM,eAAA,GAAkB;AAAA,MACtB,WAAW,kBAAkB,CAAA;AAAA,MAC7B,SAAA,EAAW,KAAA,IAAS,SAAA,EAAW,eAAA,GAAkB,UAAU,cAAA,GAAiB,IAAA;AAAA,MAC5E,SAAA,EAAW,aAAA,GAAgB,SAAA,CAAU,YAAA,GAAe;AAAA,MAEnD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAEhB,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,GAAAA;AAAA,QAAC,kBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,iBAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE2C,IAAAA;AAAA,MAAC,kBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,iBAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA3C,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,UAAA;AAAA,cACL,EAAA;AAAA,cACA,IAAA;AAAA,cACA,KAAA,EAAO,SAAA;AAAA,cACP,QAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,OAAA,EAAS,eAAe,gBAAA,GAAmB,MAAA;AAAA,cAC3C,cAAA,EAAgB,CAAC,YAAA,GAAe,cAAA,GAAiB,MAAA;AAAA,cACjD,QAAA,EAAU,YAAA;AAAA,cACV,GAAA,EAAK,cAAA;AAAA,cACL,cAAA,EAAc,gBAAgB,OAAA,GAAU,gBAAA;AAAA,cACxC,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,cAC7B,kBAAA,EAAkB,eAAA;AAAA,cAClB,SAAA,EAAU,oBAAA;AAAA,cACT,GAAG;AAAA;AAAA,WACN;AAAA,UACC,UAAA;AAAA,UACA,4BACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4CACb,QAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AC3NhB,SAAS,oBAAA,CAAwB;AAAA,EACtC,KAAA,EAAO,SAAA;AAAA,EACP,YAAA;AAAA,EACA;AACF,CAAA,EAGE;AACA,EAAA,MAAM,eAAe,SAAA,KAAc,MAAA;AAEnC,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAU6D,eAAY,MAAM;AACxE,IAAA,IAAI,iBAAiB,MAAA,EAAW;AAC9B,MAAA,OAAO,OAAO,YAAA,KAAiB,UAAA,GAC1B,YAAA,EAAyB,GAC1B,YAAA;AAAA,IACN;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAC,CAAA;AAED,EAAA,MAAM,KAAA,GAAQ,eAAgB,SAAA,GAAkB,iBAAA;AAEhD,EAAA,MAAM,WAAA,GAAoBA,aAAO,QAAQ,CAAA;AACzC,EAAMA,gBAAU,MAAM;AACpB,IAAA,WAAA,CAAY,OAAA,GAAU,QAAA;AAAA,EACxB,CAAC,CAAA;AAED,EAAA,MAAM,QAAA,GAAiBA,KAAA,CAAA,WAAA;AAAA,IACrB,CAAC,IAAA,KAA+B;AAC9B,MAAA,MAAM,eACJ,OAAO,IAAA,KAAS,UAAA,GAAc,IAAA,CAAwB,KAAK,CAAA,GAAI,IAAA;AAEjE,MAAA,IAAI,CAAC,MAAA,CAAO,EAAA,CAAG,KAAA,EAAO,YAAY,CAAA,EAAG;AACnC,QAAA,IAAI,CAAC,YAAA,EAAc;AACjB,UAAA,oBAAA,CAAqB,YAAY,CAAA;AAAA,QACnC;AACA,QAAA,WAAA,CAAY,UAAU,YAAY,CAAA;AAAA,MACpC;AAAA,IACF,CAAA;AAAA,IACA,CAAC,cAAc,KAAK;AAAA,GACtB;AAEA,EAAA,OAAO,CAAC,OAAO,QAAQ,CAAA;AACzB;ACvCA,IAAM,uBAAA,GAA0B,OAAO,KAAA,EAAO;AAAA,EAC5C,IAAA,EAAM,sBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,aAAA,IACT,SAAS,SAAA,IACT,IAAA,KAAS,aAAA,IACT,IAAA,KAAS,WACT,IAAA,KAAS,UAAA,IACT,SAAS,UAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,EAAgC,CAAC,EAAE,KAAA,EAAO,OAAA,GAAU,GAAE,KAAM;AAC3D,EAAA,MAAM,WACJ,OAAO,OAAA,KAAY,WAAW,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,GAAI,OAAA;AAEzD,EAAA,OAAO;AAAA,IACL,GAAA,EAAK;AAAA,GACP;AACF,CAAC,CAAA;AAaM,IAAM,aAAA,GAAsBC,KAAA,CAAA,UAAA,CAGjC,SAASC,cAAAA,CAAc,OAAO,GAAA,EAAK;AACnC,EAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,EAAA,MAAM;AAAA,IACJ,KAAA,EAAO,SAAA;AAAA,IACP,eAAe,EAAC;AAAA,IAChB,QAAA,EAAU,YAAA;AAAA,IACV,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,GAAO,IAAA;AAAA,IACP,WAAA,GAAc,SAAA;AAAA,IACd,WAAA,GAAc,UAAA;AAAA,IACd,OAAA,GAAU,CAAA;AAAA,IACV,QAAA,EAAU,YAAA;AAAA,IACV,QAAA,EAAU,YAAA;AAAA,IACV,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,GAAU,KAAA;AAAA,IACV,SAAA;AAAA,IACA,EAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,EAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,IAAA,GAAO,YAAY,SAAA,EAAW,IAAA;AACpC,EAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,EAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,EAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,SAAA,EAAW,KAAA,IAAS,KAAA;AAE/C,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,oBAAA,CAA+B;AAAA,IACvD,KAAA,EAAO,SAAA;AAAA,IACP,YAAA;AAAA,IACA,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,WAAA,GAAoBD,KAAA,CAAA,WAAA;AAAA,IACxB,CAAC,SAAA,KAAsB;AACrB,MAAA,IAAI,YAAY,QAAA,EAAU;AAC1B,MAAA,MAAM,OAAA,GAAU,SAAS,EAAC;AAC1B,MAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,QAAA,CAAS,SAAS,IACnC,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,MAAM,SAAS,CAAA,GACrC,CAAC,GAAG,SAAS,SAAS,CAAA;AAC1B,MAAA,QAAA,CAAS,IAAI,CAAA;AAAA,IACf,CAAA;AAAA,IACA,CAAC,KAAA,EAAO,QAAA,EAAU,QAAA,EAAU,QAAQ;AAAA,GACtC;AAEA,EAAA,MAAM,YAAA,GAA2CA,KAAA,CAAA,OAAA;AAAA,IAC/C,OAAO;AAAA,MACL,KAAA,EAAO,SAAS,EAAC;AAAA,MACjB,IAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF,CAAA;AAAA,IACA,CAAC,OAAO,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,QAAA,EAAU,OAAO,WAAW;AAAA,GACzE;AAEA,EAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,IACrB,mBAAA;AAAA,IACA,sBAAsB,WAAW,CAAA,CAAA;AAAA,IACjC;AAAA,GACF;AAEA,EAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACE9D,GAAAA,CAAC,eAAA,CAAgB,UAAhB,EAAyB,KAAA,EAAO,cAC/B,QAAA,kBAAAA,GAAAA;AAAA,MAAC,uBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,IAAA;AAAA,QACJ,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,WAAA;AAAA,QACA,OAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA,CAAC,eAAA,CAAgB,UAAhB,EAAyB,KAAA,EAAO,cAC/B,QAAA,kBAAAA,GAAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAI,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,IAAA,EAAK,OAAA;AAAA,MACL,WAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA,EAAW,cAAA;AAAA,MACX,KAAA;AAAA,MACA,EAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH,EACF,CAAA;AAEJ,CAAC;AAED,aAAA,CAAc,WAAA,GAAc,eAAA;AC7JrB,IAAM,YAAA,GAAqBgE,oBAEhC,MAAS;AAMJ,SAAS,aAAA,GAA+C;AAC7D,EAAA,OAAaA,iBAAW,YAAY,CAAA;AACtC;ACIA,IAAM,eAAA,GAAkB,OAAO,OAAA,EAAS;AAAA,EACtC,IAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,MAAA,IACT,SAAS,aAAA,IACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,cACT,IAAA,KAAS,OAAA,IACT,SAAS,SAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,KAAA,GAAcC,KAAA,CAAA,UAAA;AAAA,EACzB,SAASC,MAAAA,CAAM,KAAA,EAAO,GAAA,EAAK;AACzB,IAAA,MAAM,QAAQ,aAAA,EAAc;AAC5B,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM;AAAA,MACJ,OAAA,EAAS,WAAA;AAAA,MACT,cAAA,GAAiB,KAAA;AAAA,MACjB,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,WAAA,EAAa,eAAA;AAAA,MACb,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,aAAa,EAAC;AAAA,MACd,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA,EAAI,MAAA;AAAA,MACJ,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,iBAAA,GAAoB,KAAA,KAAU,MAAA,IAAa,SAAA,KAAc,MAAA;AAC/D,IAAA,MAAM,gBAAA,GAAmB,iBAAA,GACrB,KAAA,CAAM,KAAA,KAAU,MAAA,IAAa,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA,KAAM,MAAA,CAAO,SAAS,CAAA,GACrE,MAAA;AAEJ,IAAA,MAAM,OAAA,GACJ,WAAA,KAAgB,MAAA,GAAY,WAAA,GAAc,gBAAA;AAE5C,IAAA,MAAM,IAAA,GAAO,QAAA,IAAY,KAAA,EAAO,IAAA,IAAQ,IAAA;AACxC,IAAA,MAAM,WAAA,GAAc,eAAA,IAAmB,KAAA,EAAO,WAAA,IAAe,SAAA;AAC7D,IAAA,MAAM,QAAA,GACJ,YAAA,IAAgB,KAAA,EAAO,QAAA,IAAY,WAAW,QAAA,IAAY,KAAA;AAC5D,IAAA,MAAM,QAAA,GACJ,YAAA,IAAgB,KAAA,EAAO,QAAA,IAAY,WAAW,QAAA,IAAY,KAAA;AAC5D,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,KAAA,EAAO,KAAA,IAAS,WAAW,KAAA,IAAS,KAAA;AAC/D,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,IAAA,GAAO,QAAA,IAAY,KAAA,EAAO,IAAA,IAAQ,SAAA,EAAW,IAAA;AACnD,IAAA,MAAM,EAAA,GAAK,WAAW,SAAA,GAAY,CAAA,EAAG,UAAU,EAAE,CAAA,OAAA,EAAU,SAAA,IAAa,EAAE,CAAA,CAAA,GAAK,MAAA,CAAA;AAE/E,IAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAUD,KAAA,CAAA,QAAA;AAAA,MAC1D;AAAA,KACF;AAEA,IAAA,MAAM,eAAe,OAAA,KAAY,MAAA;AACjC,IAAA,MAAM,gBAAA,GAAmB,eAAe,OAAA,GAAU,mBAAA;AAElD,IAAA,MAAM,cAAA,GAAuBA,aAAgC,IAAI,CAAA;AACjE,IAAA,MAAM,cAAA,GAAiB,YAAA,CAAa,cAAA,EAAgB,YAAY,CAAA;AAEhE,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAA+C;AACnE,MAAA,IAAI,YAAY,QAAA,EAAU;AACxB,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,iBAAA,IAAqB,cAAc,MAAA,EAAW;AAChD,QAAA,KAAA,CAAM,SAAS,SAAS,CAAA;AAAA,MAC1B,CAAA,MAAA,IAAW,CAAC,YAAA,EAAc;AACxB,QAAA,sBAAA,CAAuB,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA,MAC7C;AAEA,MAAA,YAAA,GAAe,KAAK,CAAA;AAAA,IACtB,CAAA;AAEA,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,UAAA;AAAA,MACA,aAAa,IAAI,CAAA,CAAA;AAAA,MACjB,aAAa,WAAW,CAAA,CAAA;AAAA,MACxB,gBAAA,IAAoB,mBAAA;AAAA,MACpB,QAAA,IAAY,oBAAA;AAAA,MACZ,KAAA,IAAS,iBAAA;AAAA,MACT;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,MAAM,UAAA,mBACJjE,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wCAAA,EAAyC,aAAA,EAAY,MAAA,EACnE,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAiC,CAAA,EACnD,CAAA;AAGF,IAAA,MAAM,eAAA,GAAkB;AAAA,MACtB,WAAW,kBAAkB,CAAA;AAAA,MAC7B,SAAA,EAAW,KAAA,IAAS,SAAA,EAAW,eAAA,GAAkB,UAAU,cAAA,GAAiB,IAAA;AAAA,MAC5E,SAAA,EAAW,aAAA,GAAgB,SAAA,CAAU,YAAA,GAAe;AAAA,MAEnD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAEhB,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE2C,IAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA3C,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,OAAA;AAAA,cACL,EAAA;AAAA,cACA,IAAA;AAAA,cACA,KAAA,EAAO,SAAA;AAAA,cACP,QAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,OAAA,EAAS,eAAe,gBAAA,GAAmB,MAAA;AAAA,cAC3C,cAAA,EAAgB,CAAC,YAAA,GAAe,cAAA,GAAiB,MAAA;AAAA,cACjD,QAAA,EAAU,YAAA;AAAA,cACV,GAAA,EAAK,cAAA;AAAA,cACL,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,cAC7B,kBAAA,EAAkB,eAAA;AAAA,cAClB,SAAA,EAAU,iBAAA;AAAA,cACT,GAAG;AAAA;AAAA,WACN;AAAA,UACC,UAAA;AAAA,UACA,4BACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sCACb,QAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;ACnLpB,IAAM,oBAAA,GAAuB,OAAO,KAAA,EAAO;AAAA,EACzC,IAAA,EAAM,mBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,aAAA,IACT,SAAS,SAAA,IACT,IAAA,KAAS,aAAA,IACT,IAAA,KAAS,WACT,IAAA,KAAS,UAAA,IACT,SAAS,UAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAaE,IAAM,UAAA,GAAmBmE,KAAA,CAAA,UAAA;AAAA,EAC9B,SAASC,WAAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AAC9B,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM;AAAA,MACJ,KAAA,EAAO,SAAA;AAAA,MACP,YAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,GAAO,IAAA;AAAA,MACP,WAAA,GAAc,SAAA;AAAA,MACd,WAAA,GAAc,UAAA;AAAA,MACd,OAAA,GAAU,CAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,gBAAsBD,KAAA,CAAA,KAAA,EAAM;AAClC,IAAA,MAAM,IAAA,GAAO,QAAA,IAAY,SAAA,EAAW,IAAA,IAAQ,aAAA;AAC5C,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,SAAA,EAAW,KAAA,IAAS,KAAA;AAE/C,IAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,oBAAA,CAAkD;AAAA,MAC1E,KAAA,EAAO,SAAA;AAAA,MACP,YAAA;AAAA,MACA,QAAA,EAAU,CAAC,GAAA,KAAQ;AACjB,QAAA,IAAI,QAAQ,MAAA,EAAW;AACrB,UAAA,YAAA,GAAe,GAAG,CAAA;AAAA,QACpB;AAAA,MACF;AAAA,KACD,CAAA;AAED,IAAA,MAAM,YAAA,GAAqBA,KAAA,CAAA,WAAA;AAAA,MACzB,CAAC,SAAA,KAA+B;AAC9B,QAAA,IAAI,YAAY,QAAA,EAAU;AAC1B,QAAA,QAAA,CAAS,SAAS,CAAA;AAAA,MACpB,CAAA;AAAA,MACA,CAAC,QAAA,EAAU,QAAA,EAAU,QAAQ;AAAA,KAC/B;AAEA,IAAA,MAAM,YAAA,GAAwCA,KAAA,CAAA,OAAA;AAAA,MAC5C,OAAO;AAAA,QACL,KAAA;AAAA,QACA,IAAA;AAAA,QACA,IAAA;AAAA,QACA,WAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,QAAA,EAAU;AAAA,OACZ,CAAA;AAAA,MACA,CAAC,OAAO,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,QAAA,EAAU,OAAO,YAAY;AAAA,KAC1E;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,gBAAA;AAAA,MACA,WAAA,KAAgB,eACZ,4BAAA,GACA,0BAAA;AAAA,MACJ;AAAA,KACF;AAEA,IAAA,MAAM,QAAA,GACJ,YAAY,MAAA,GACR;AAAA,MACE,KAAK,OAAO,OAAA,KAAY,WAAW,CAAA,EAAG,OAAA,GAAU,CAAC,CAAA,EAAA,CAAA,GAAO,OAAA;AAAA,MACxD,GAAG;AAAA,KACL,GACA,KAAA;AAEN,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEnE,GAAAA,CAAC,YAAA,CAAa,UAAb,EAAsB,KAAA,EAAO,cAC5B,QAAA,kBAAAA,GAAAA;AAAA,QAAC,oBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,IAAA,EAAK,YAAA;AAAA,UACL,SAAA,EAAW,cAAA;AAAA,UACX,KAAA,EAAO,QAAA;AAAA,UACP,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA,CAAC,YAAA,CAAa,UAAb,EAAsB,KAAA,EAAO,cAC5B,QAAA,kBAAAA,GAAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,IAAA,EAAK,YAAA;AAAA,QACL,SAAA,EAAW,cAAA;AAAA,QACX,KAAA,EAAO,QAAA;AAAA,QACP,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;ACpIzB,IAAM,gBAAA,GAAmB,OAAO,OAAA,EAAS;AAAA,EACvC,IAAA,EAAM,eAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,UACT,IAAA,KAAS,gBAAA,IACT,SAAS,UAAA,IACT,IAAA,KAAS,cACT,IAAA,KAAS,OAAA,IACT,SAAS,SAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS,aAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,MAAA,GAAeqE,KAAA,CAAA,UAAA;AAAA,EAC1B,SAASC,OAAAA,CAAO,KAAA,EAAO,GAAA,EAAK;AAC1B,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM;AAAA,MACJ,OAAA,EAAS,WAAA;AAAA,MACT,cAAA,GAAiB,KAAA;AAAA,MACjB,QAAA,EAAU,YAAA;AAAA,MACV,KAAA;AAAA,MACA,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,GAAO,IAAA;AAAA,MACP,WAAA,GAAc,SAAA;AAAA,MACd,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,OAAA,GAAU,KAAA;AAAA,MACV,WAAA;AAAA,MACA,aAAA;AAAA,MACA,cAAA,GAAiB,KAAA;AAAA,MACjB,QAAA,EAAU,YAAA;AAAA,MACV,aAAa,EAAC;AAAA,MACd,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA,EAAI,MAAA;AAAA,MACJ,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,QAAA,GACJ,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,UAAU,IAAA,GAAO,KAAA;AAC1D,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,SAAA,EAAW,KAAA,IAAS,KAAA;AAC/C,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,IAAA,GAAO,YAAY,SAAA,EAAW,IAAA;AACpC,IAAA,MAAM,KAAK,MAAA,KAAW,SAAA,GAAY,CAAA,EAAG,SAAA,CAAU,EAAE,CAAA,OAAA,CAAA,GAAY,MAAA,CAAA;AAE7D,IAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAUD,KAAA,CAAA,QAAA;AAAA,MAC1D;AAAA,KACF;AAEA,IAAA,MAAM,eAAe,WAAA,KAAgB,MAAA;AACrC,IAAA,MAAM,gBAAA,GAAmB,eAAe,WAAA,GAAc,mBAAA;AAEtD,IAAA,MAAM,cAAA,GAAuBA,aAAgC,IAAI,CAAA;AACjE,IAAA,MAAM,cAAA,GAAiB,YAAA,CAAa,cAAA,EAAgB,YAAY,CAAA;AAEhE,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAA+C;AACnE,MAAA,IAAI,QAAA,IAAY,YAAY,OAAA,EAAS;AACnC,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,sBAAA,CAAuB,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA,MAC7C;AAEA,MAAA,YAAA,GAAe,KAAK,CAAA;AAAA,IACtB,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAiD;AACtE,MAAA,IAAI,KAAA,CAAM,QAAQ,OAAA,EAAS;AACzB,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,cAAA,CAAe,SAAS,KAAA,EAAM;AAAA,MAChC;AACA,MAAA,UAAA,CAAW,YAAY,KAAK,CAAA;AAAA,IAC9B,CAAA;AAEA,IAAA,MAAM,eAAA,GAAkB,UAAA;AAAA,MACtB,WAAA;AAAA,MACA,cAAc,IAAI,CAAA,CAAA;AAAA,MAClB,cAAc,WAAW,CAAA,CAAA;AAAA,MACzB,wBAAwB,cAAc,CAAA,CAAA;AAAA,MACtC,gBAAA,IAAoB,oBAAA;AAAA,MACpB,QAAA,IAAY,qBAAA;AAAA,MACZ,KAAA,IAAS,kBAAA;AAAA,MACT;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,MAAM,SAAA,GAAY,0BAChBrE,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,oBAAA;AAAA,QACV,OAAA,EAAQ,WAAA;AAAA,QACR,IAAA,EAAK,MAAA;AAAA,QACL,aAAA,EAAY,MAAA;AAAA,QAEZ,QAAA,kBAAAA,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,IAAA;AAAA,YACH,EAAA,EAAG,IAAA;AAAA,YACH,CAAA,EAAE,GAAA;AAAA,YACF,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,eAAA,EAAgB,OAAA;AAAA,YAChB,aAAA,EAAc;AAAA;AAAA;AAChB;AAAA,KACF,GACE,mBACF,WAAA,GAEA,aAAA;AAGF,IAAA,MAAM,YAAA,mBACJA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,sCAAA,EAAuC,aAAA,EAAY,MAAA,EACjE,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sCAAA,EACb,qBACH,CAAA,EACF,CAAA;AAGF,IAAA,MAAM,eAAA,GAAkB;AAAA,MACtB,WAAW,kBAAkB,CAAA;AAAA,MAC7B,SAAA,EAAW,KAAA,IAAS,SAAA,EAAW,eAAA,GAAkB,UAAU,cAAA,GAAiB,IAAA;AAAA,MAC5E,SAAA,EAAW,aAAA,GAAgB,SAAA,CAAU,YAAA,GAAe;AAAA,MAEnD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAEhB,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,GAAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,eAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE2C,IAAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,eAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA3C,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,UAAA;AAAA,cACL,IAAA,EAAK,QAAA;AAAA,cACL,EAAA;AAAA,cACA,IAAA;AAAA,cACA,KAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,OAAA,EAAS,eAAe,gBAAA,GAAmB,MAAA;AAAA,cAC3C,cAAA,EAAgB,CAAC,YAAA,GAAe,cAAA,GAAiB,MAAA;AAAA,cACjD,QAAA,EAAU,YAAA;AAAA,cACV,SAAA,EAAW,aAAA;AAAA,cACX,GAAA,EAAK,cAAA;AAAA,cACL,cAAA,EAAc,gBAAA;AAAA,cACd,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,cAC7B,kBAAA,EAAkB,eAAA;AAAA,cAClB,SAAA,EAAU,kBAAA;AAAA,cACT,GAAG;AAAA;AAAA,WACN;AAAA,UACC,YAAA;AAAA,UACA,4BACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wCACb,QAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;AC1LrB,IAAM,eAAA,GAAkB,OAAO,KAAA,EAAO;AAAA,EACpC,IAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,QAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAWE,IAAM,KAAA,GAAcuE,KAAA,CAAA,UAAA;AAAA,EACzB,SAASC,MAAAA,CAAM,KAAA,EAAO,GAAA,EAAK;AACzB,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA,GAAY,CAAA;AAAA,MACZ,OAAA,GAAU,WAAA;AAAA,MACV,MAAA,GAAS,KAAA;AAAA,MACT,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,gBAAA,GAAmB,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAI,EAAA,EAAI,SAAS,CAAC,CAAA;AAE5D,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,UAAA;AAAA,MACA,MAAA,IAAU,kBAAA;AAAA,MACV,OAAA,KAAY,UAAA,GAAa,oBAAA,GAAuB,CAAA,oBAAA,EAAuB,gBAAgB,CAAA,CAAA;AAAA,MACvF;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACExE,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,uBACEA,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,SAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;ACrHb,IAAM,cAAoByE,KAAA,CAAA,aAAA,CAAgC;AAAA,EAC/D,IAAA,EAAM;AACR,CAAC,CAAA;ACID,IAAM,cAAA,GAAiB,OAAO,KAAA,EAAO;AAAA,EACnC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,aACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,WAAA,IACT,SAAS,QAAA,IACT,IAAA,KAAS,MAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAmBE,IAAM,IAAA,GAAaC,KAAA,CAAA,UAAA;AAAA,EACxB,SAASC,KAAAA,CAAK,KAAA,EAAO,GAAA,EAAK;AACxB,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,UAAA;AAAA,MACV,SAAA,GAAY,CAAA;AAAA,MACZ,IAAA,GAAO,IAAA;AAAA,MACP,SAAA,GAAY,KAAA;AAAA,MACZ,MAAA,GAAS,KAAA;AAAA,MACT,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,aAAA,GAAgB,UAAA;AAAA,MACpB,SAAA;AAAA,MACA,YAAY,IAAI,CAAA,CAAA;AAAA,MAChB,YAAY,OAAO,CAAA,CAAA;AAAA,MACnB,MAAA,IAAU,iBAAA;AAAA,MACV,SAAA,IAAa,oBAAA;AAAA,MACb;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,uBACE3E,GAAAA,CAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,OAAO,EAAE,IAAA,EAAK,EACjC,QAAA,EAAA,OAAA,mBACCA,GAAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,IAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,wBAGHA,GAAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH,EAEJ,CAAA;AAAA,EAEJ;AACF;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;AAInB,IAAM,oBAAA,GAAuB,OAAO,KAAA,EAAO;AAAA,EACzC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,QAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS,cAAc,IAAA,KAAS;AAC/D,CAAC,CAAA,CAAE,EAAE,CAAA;AAQE,IAAM,UAAA,GAAmB0E,KAAA,CAAA,UAAA;AAAA,EAC9B,SAASE,WAAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AAC9B,IAAA,MAAM;AAAA,MACJ,MAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,oBAAA;AAAA,MACA,wBAAA;AAAA,MACA,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,eAAA,GAAkB,UAAA;AAAA,MACtB,iBAAA;AAAA,MACA,oBAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE5E,GAAAA;AAAA,QAAC,oBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,eAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE2C,IAAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,eAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,MAAA,oBACC3C,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mDACZ,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,0BAEF2C,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mDAAA,EACZ,QAAA,EAAA;AAAA,YAAA,KAAA,IAAS,wBACR3C,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,UAAA;AAAA,kBACT,uBAAA;AAAA,kBACA,yBAAA;AAAA,kBACA,oBAAA,EAAsB;AAAA,iBACxB;AAAA,gBACC,GAAG,oBAAA;AAAA,gBAEH,QAAA,EAAA;AAAA;AAAA,aACH;AAAA,YAED,SAAA,IAAa,wBACZA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,UAAA;AAAA,kBACT,2BAAA;AAAA,kBACA,6BAAA;AAAA,kBACA,wBAAA,EAA0B;AAAA,iBAC5B;AAAA,gBACC,GAAG,wBAAA;AAAA,gBAEH,QAAA,EAAA;AAAA;AAAA,aACH;AAAA,YAED;AAAA,WAAA,EACH,CAAA;AAAA,UACC,0BACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mDACZ,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;AAIzB,IAAM,mBAAA,GAAsB,OAAO,KAAA,EAAO;AAAA,EACxC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,OAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS,WAAW,IAAA,KAAS;AAC5D,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,SAAA,GAAkB0E,KAAA,CAAA,UAAA;AAAA,EAC7B,SAASG,UAAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AAC7B,IAAA,MAAM;AAAA,MACJ,KAAA;AAAA,MACA,GAAA;AAAA,MACA,WAAA,GAAc,MAAA;AAAA,MACd,SAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,UAAA,GAAkC;AAAA,MACtC,GAAI,WAAA,GAAc,EAAE,WAAA,KAAgB,EAAC;AAAA,MACrC,GAAI,QAAQ,EAAE,eAAA,EAAiB,OAAO,KAAK,CAAA,CAAA,CAAA,KAAQ,EAAC;AAAA,MACpD,GAAG;AAAA,KACL;AAEA,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,gBAAA;AAAA,MACA,mBAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,uBACE7E,GAAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA,EAAO,UAAA;AAAA,QACP,EAAA;AAAA,QACA,IAAA,EAAM,KAAA,IAAS,CAAC,QAAA,GAAW,KAAA,GAAQ,MAAA;AAAA,QACnC,YAAA,EAAY,KAAA,IAAS,CAAC,QAAA,GAAW,GAAA,GAAM,MAAA;AAAA,QACtC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;AAIxB,IAAM,kBAAA,GAAqB,OAAO,KAAA,EAAO;AAAA,EACvC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS;AACxC,CAAC,CAAA,CAAE,EAAE,CAAA;AAQE,IAAM,QAAA,GAAiB0E,KAAA,CAAA,UAAA;AAAA,EAC5B,SAASI,SAAAA,CAAS,KAAA,EAAO,GAAA,EAAK;AAC5B,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,OAAO,EAAA,EAAI,GAAG,MAAK,GAAI,KAAA;AACpD,IAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,eAAA,EAAiB,kBAAA,EAAoB,SAAS,CAAA;AAE/E,IAAA,uBACE9E,GAAAA;AAAA,MAAC,kBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AAIvB,IAAM,oBAAA,GAAuB,OAAO,KAAA,EAAO;AAAA,EACzC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,QAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS,aAAa,IAAA,KAAS;AAC9D,CAAC,CAAA,CAAE,EAAE,CAAA;AAQE,IAAM,UAAA,GAAmB0E,KAAA,CAAA,UAAA;AAAA,EAC9B,SAASK,WAAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AAC9B,IAAA,MAAM,EAAE,UAAU,KAAA,EAAO,QAAA,EAAU,WAAW,KAAA,EAAO,EAAA,EAAI,GAAG,IAAA,EAAK,GAAI,KAAA;AACrE,IAAA,MAAM,eAAA,GAAkB,UAAA;AAAA,MACtB,iBAAA;AAAA,MACA,oBAAA;AAAA,MACA,OAAA,IAAW,0BAAA;AAAA,MACX;AAAA,KACF;AAEA,IAAA,uBACE/E,GAAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,eAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;AAIzB,IAAM,qBAAA,GAAwB,OAAO,KAAA,EAAO;AAAA,EAC1C,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS,oBAAoB,IAAA,KAAS;AACrE,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,WAAA,GAAoB0E,KAAA,CAAA,UAAA;AAAA,EAC/B,SAASM,YAAAA,CAAY,KAAA,EAAO,GAAA,EAAK;AAC/B,IAAA,MAAM,EAAE,iBAAiB,KAAA,EAAO,QAAA,EAAU,WAAW,KAAA,EAAO,EAAA,EAAI,GAAG,IAAA,EAAK,GAAI,KAAA;AAC5E,IAAA,MAAM,gBAAA,GAAmB,UAAA;AAAA,MACvB,kBAAA;AAAA,MACA,qBAAA;AAAA,MACA,cAAA,IAAkB,mCAAA;AAAA,MAClB;AAAA,KACF;AAEA,IAAA,uBACEhF,GAAAA;AAAA,MAAC,qBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,gBAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"index.mjs","sourcesContent":["import { Palette, ColorMode } from \"./types\";\n\nexport const lightPalette: Palette = {\n mode: \"light\",\n primary: {\n light: \"#818cf8\", // indigo-400\n main: \"#6366f1\", // indigo-500\n dark: \"#4f46e5\", // indigo-600\n contrastText: \"#ffffff\",\n },\n secondary: {\n light: \"#a78bfa\", // violet-400\n main: \"#8b5cf6\", // violet-500\n dark: \"#7c3aed\", // violet-600\n contrastText: \"#ffffff\",\n },\n error: {\n light: \"#f87171\", // red-400\n main: \"#ef4444\", // red-500\n dark: \"#dc2626\", // red-600\n contrastText: \"#ffffff\",\n },\n warning: {\n light: \"#fbbf24\", // amber-400\n main: \"#f59e0b\", // amber-500\n dark: \"#d97706\", // amber-600\n contrastText: \"#18181b\",\n },\n info: {\n light: \"#38bdf8\", // sky-400\n main: \"#0ea5e9\", // sky-500\n dark: \"#0284c7\", // sky-600\n contrastText: \"#ffffff\",\n },\n success: {\n light: \"#34d399\", // emerald-400\n main: \"#10b981\", // emerald-500\n dark: \"#059669\", // emerald-600\n contrastText: \"#ffffff\",\n },\n text: {\n primary: \"rgba(0, 0, 0, 0.87)\",\n secondary: \"rgba(0, 0, 0, 0.6)\",\n disabled: \"rgba(0, 0, 0, 0.38)\",\n },\n background: {\n default: \"#f8fafc\",\n paper: \"#ffffff\",\n surface: \"#ffffff\",\n },\n divider: \"rgba(0, 0, 0, 0.12)\",\n action: {\n active: \"rgba(0, 0, 0, 0.54)\",\n hover: \"rgba(0, 0, 0, 0.04)\",\n hoverOpacity: 0.04,\n selected: \"rgba(0, 0, 0, 0.08)\",\n selectedOpacity: 0.08,\n disabled: \"rgba(0, 0, 0, 0.26)\",\n disabledBackground: \"rgba(0, 0, 0, 0.12)\",\n focus: \"rgba(0, 0, 0, 0.12)\",\n focusOpacity: 0.12,\n },\n};\n\nexport const darkPalette: Palette = {\n mode: \"dark\",\n primary: {\n light: \"#a5b4fc\", // indigo-300\n main: \"#818cf8\", // indigo-400\n dark: \"#6366f1\", // indigo-500\n contrastText: \"#09090b\",\n },\n secondary: {\n light: \"#c4b5fd\", // violet-300\n main: \"#a78bfa\", // violet-400\n dark: \"#8b5cf6\", // violet-500\n contrastText: \"#09090b\",\n },\n error: {\n light: \"#fca5a5\", // red-300\n main: \"#f87171\", // red-400\n dark: \"#ef4444\", // red-500\n contrastText: \"#09090b\",\n },\n warning: {\n light: \"#fde68a\", // amber-200\n main: \"#fbbf24\", // amber-400\n dark: \"#f59e0b\", // amber-500\n contrastText: \"#09090b\",\n },\n info: {\n light: \"#7dd3fc\", // sky-300\n main: \"#38bdf8\", // sky-400\n dark: \"#0ea5e9\", // sky-500\n contrastText: \"#09090b\",\n },\n success: {\n light: \"#6ee7b7\", // emerald-300\n main: \"#34d399\", // emerald-400\n dark: \"#10b981\", // emerald-500\n contrastText: \"#09090b\",\n },\n text: {\n primary: \"rgba(255, 255, 255, 0.95)\",\n secondary: \"rgba(255, 255, 255, 0.7)\",\n disabled: \"rgba(255, 255, 255, 0.38)\",\n },\n background: {\n default: \"#09090b\",\n paper: \"#18181b\",\n surface: \"#18181b\",\n },\n divider: \"rgba(255, 255, 255, 0.12)\",\n action: {\n active: \"rgba(255, 255, 255, 0.7)\",\n hover: \"rgba(255, 255, 255, 0.08)\",\n hoverOpacity: 0.08,\n selected: \"rgba(255, 255, 255, 0.16)\",\n selectedOpacity: 0.16,\n disabled: \"rgba(255, 255, 255, 0.3)\",\n disabledBackground: \"rgba(255, 255, 255, 0.12)\",\n focus: \"rgba(255, 255, 255, 0.12)\",\n focusOpacity: 0.12,\n },\n};\n\nexport function createPalette(mode: ColorMode = \"light\"): Palette {\n return mode === \"dark\" ? darkPalette : lightPalette;\n}\n","import { TypographyTheme } from \"./types\";\n\nexport const defaultFontFamily =\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\"';\n\nexport const defaultTypography: TypographyTheme = {\n fontFamily: defaultFontFamily,\n fontSize: 14,\n fontWeightLight: 300,\n fontWeightRegular: 400,\n fontWeightMedium: 500,\n fontWeightBold: 700,\n h1: {\n fontFamily: defaultFontFamily,\n fontWeight: 300,\n fontSize: \"6rem\",\n lineHeight: 1.167,\n letterSpacing: \"-0.01562em\",\n },\n h2: {\n fontFamily: defaultFontFamily,\n fontWeight: 300,\n fontSize: \"3.75rem\",\n lineHeight: 1.2,\n letterSpacing: \"-0.00833em\",\n },\n h3: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"3rem\",\n lineHeight: 1.167,\n letterSpacing: \"0em\",\n },\n h4: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"2.125rem\",\n lineHeight: 1.235,\n letterSpacing: \"0.00735em\",\n },\n h5: {\n fontFamily: defaultFontFamily,\n fontWeight: 500,\n fontSize: \"1.5rem\",\n lineHeight: 1.334,\n letterSpacing: \"0em\",\n },\n h6: {\n fontFamily: defaultFontFamily,\n fontWeight: 500,\n fontSize: \"1.25rem\",\n lineHeight: 1.6,\n letterSpacing: \"0.0075em\",\n },\n subtitle1: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"1rem\",\n lineHeight: 1.75,\n letterSpacing: \"0.00938em\",\n },\n subtitle2: {\n fontFamily: defaultFontFamily,\n fontWeight: 500,\n fontSize: \"0.875rem\",\n lineHeight: 1.57,\n letterSpacing: \"0.00714em\",\n },\n body1: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"1rem\",\n lineHeight: 1.5,\n letterSpacing: \"0.00938em\",\n },\n body2: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"0.875rem\",\n lineHeight: 1.43,\n letterSpacing: \"0.01071em\",\n },\n button: {\n fontFamily: defaultFontFamily,\n fontWeight: 500,\n fontSize: \"0.875rem\",\n lineHeight: 1.75,\n letterSpacing: \"0.02857em\",\n textTransform: \"uppercase\",\n },\n caption: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"0.75rem\",\n lineHeight: 1.66,\n letterSpacing: \"0.03333em\",\n },\n overline: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"0.75rem\",\n lineHeight: 2.66,\n letterSpacing: \"0.08333em\",\n textTransform: \"uppercase\",\n },\n};\n","/**\n * Google Material Design 8px Spacing Grid Function\n *\n * Supports single and multi-argument invocations:\n * - spacing(1) => '8px'\n * - spacing(2) => '16px'\n * - spacing(1, 2) => '8px 16px'\n * - spacing(1, 2, 3, 4) => '8px 16px 24px 32px'\n * - spacing('auto') => 'auto'\n */\nexport function createSpacing(base = 8) {\n return (...factors: (number | string)[]): string => {\n if (factors.length === 0) return `${base}px`;\n\n return factors\n .map((factor) => {\n if (typeof factor === \"string\") return factor;\n return `${factor * base}px`;\n })\n .join(\" \");\n };\n}\n\nexport const defaultSpacing = createSpacing(8);\n","import { BreakpointKey, Breakpoints } from \"./types\";\n\nexport const defaultBreakpointValues: Record<BreakpointKey, number> = {\n xs: 0,\n sm: 600,\n md: 900,\n lg: 1200,\n xl: 1536,\n};\n\nexport const breakpointKeys: BreakpointKey[] = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\"];\n\nexport function createBreakpoints(\n customValues?: Partial<Record<BreakpointKey, number>>\n): Breakpoints {\n const values: Record<BreakpointKey, number> = {\n ...defaultBreakpointValues,\n ...customValues,\n };\n\n const step = 5 / 100; // 0.05px\n\n const up = (key: BreakpointKey | number): string => {\n const value = typeof key === \"number\" ? key : values[key];\n return `@media (min-width:${value}px)`;\n };\n\n const down = (key: BreakpointKey | number): string => {\n const value = typeof key === \"number\" ? key : values[key];\n return `@media (max-width:${value - step}px)`;\n };\n\n const between = (\n start: BreakpointKey | number,\n end: BreakpointKey | number\n ): string => {\n const min = typeof start === \"number\" ? start : values[start];\n const max = typeof end === \"number\" ? end : values[end];\n return `@media (min-width:${min}px) and (max-width:${max - step}px)`;\n };\n\n const only = (key: BreakpointKey): string => {\n const index = breakpointKeys.indexOf(key);\n if (index === breakpointKeys.length - 1) {\n return up(key);\n }\n const nextKey = breakpointKeys[index + 1];\n return nextKey ? between(key, nextKey) : up(key);\n };\n\n return {\n values,\n up,\n down,\n between,\n only,\n };\n}\n\nexport const defaultBreakpoints = createBreakpoints();\n","/**\n * Google Material Design 24-Level Elevation Shadow Matrix\n *\n * Each shadow is composed of 3 distinct light-source formulas:\n * 1. Umbra: Key direct light source shadow\n * 2. Penumbra: Secondary ambient light shadow\n * 3. Ambient: Atmospheric fill shadow\n */\n\nconst umbra = [\n \"0px 0px 0px 0px\",\n \"0px 2px 1px -1px\",\n \"0px 3px 1px -2px\",\n \"0px 3px 3px -2px\",\n \"0px 2px 4px -1px\",\n \"0px 3px 5px -1px\",\n \"0px 3px 5px -1px\",\n \"0px 4px 5px -2px\",\n \"0px 5px 5px -3px\",\n \"0px 5px 6px -3px\",\n \"0px 6px 6px -3px\",\n \"0px 6px 7px -4px\",\n \"0px 7px 8px -4px\",\n \"0px 7px 8px -4px\",\n \"0px 7px 9px -4px\",\n \"0px 8px 9px -5px\",\n \"0px 8px 10px -5px\",\n \"0px 8px 11px -5px\",\n \"0px 9px 11px -5px\",\n \"0px 9px 12px -6px\",\n \"0px 10px 13px -6px\",\n \"0px 10px 13px -6px\",\n \"0px 10px 14px -6px\",\n \"0px 11px 14px -7px\",\n \"0px 11px 15px -7px\",\n];\n\nconst penumbra = [\n \"0px 0px 0px 0px\",\n \"0px 1px 1px 0px\",\n \"0px 2px 2px 0px\",\n \"0px 3px 4px 0px\",\n \"0px 4px 5px 0px\",\n \"0px 5px 8px 0px\",\n \"0px 6px 10px 0px\",\n \"0px 7px 10px 1px\",\n \"0px 8px 10px 1px\",\n \"0px 9px 12px 1px\",\n \"0px 10px 14px 1px\",\n \"0px 11px 15px 1px\",\n \"0px 12px 17px 2px\",\n \"0px 13px 19px 2px\",\n \"0px 14px 21px 2px\",\n \"0px 15px 22px 2px\",\n \"0px 16px 24px 2px\",\n \"0px 17px 26px 2px\",\n \"0px 18px 28px 2px\",\n \"0px 19px 29px 2px\",\n \"0px 20px 31px 3px\",\n \"0px 21px 33px 3px\",\n \"0px 22px 35px 3px\",\n \"0px 23px 36px 3px\",\n \"0px 24px 38px 3px\",\n];\n\nconst ambient = [\n \"0px 0px 0px 0px\",\n \"0px 1px 3px 0px\",\n \"0px 1px 5px 0px\",\n \"0px 1px 8px 0px\",\n \"0px 1px 10px 0px\",\n \"0px 1px 14px 0px\",\n \"0px 1px 18px 0px\",\n \"0px 2px 16px 1px\",\n \"0px 3px 14px 2px\",\n \"0px 3px 16px 2px\",\n \"0px 4px 18px 3px\",\n \"0px 4px 20px 3px\",\n \"0px 5px 22px 4px\",\n \"0px 5px 24px 4px\",\n \"0px 5px 26px 4px\",\n \"0px 6px 28px 5px\",\n \"0px 6px 30px 5px\",\n \"0px 6px 32px 5px\",\n \"0px 7px 34px 6px\",\n \"0px 7px 36px 6px\",\n \"0px 8px 38px 7px\",\n \"0px 8px 40px 7px\",\n \"0px 8px 42px 7px\",\n \"0px 9px 44px 8px\",\n \"0px 9px 46px 8px\",\n];\n\nexport function createShadows(): string[] {\n return umbra.map((u, i) => {\n if (i === 0) return \"none\";\n return `${u} rgba(0,0,0,0.2), ${penumbra[i]} rgba(0,0,0,0.14), ${ambient[i]} rgba(0,0,0,0.12)`;\n });\n}\n\nexport const defaultShadows = createShadows();\n","import { Transitions } from \"./types\";\n\nexport const defaultTransitions: Transitions = {\n easing: {\n easeInOut: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n easeOut: \"cubic-bezier(0.0, 0, 0.2, 1)\",\n easeIn: \"cubic-bezier(0.4, 0, 1, 1)\",\n sharp: \"cubic-bezier(0.4, 0, 0.6, 1)\",\n },\n duration: {\n shortest: 150,\n shorter: 200,\n short: 250,\n standard: 300,\n complex: 375,\n enteringScreen: 225,\n leavingScreen: 195,\n },\n create(\n props: string | string[] = [\"all\"],\n options: {\n duration?: number | string;\n easing?: string;\n delay?: number | string;\n } = {}\n ): string {\n const {\n duration = defaultTransitions.duration.standard,\n easing = defaultTransitions.easing.easeInOut,\n delay = 0,\n } = options;\n\n const formatDuration = (d: number | string) =>\n typeof d === \"string\" ? d : `${d}ms`;\n\n const formatDelay = (d: number | string) =>\n typeof d === \"string\" ? d : `${d}ms`;\n\n const properties = Array.isArray(props) ? props : [props];\n\n return properties\n .map(\n (prop) =>\n `${prop} ${formatDuration(duration)} ${easing} ${formatDelay(delay)}`\n )\n .join(\", \");\n },\n};\n","import { ZIndex } from \"./types\";\n\nexport const defaultZIndex: ZIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500,\n};\n","import { ChellaaTheme, ThemeOptions, ColorMode } from \"./types\";\nimport { createPalette } from \"./palette\";\nimport { defaultTypography } from \"./typography\";\nimport { defaultSpacing } from \"./spacing\";\nimport { defaultBreakpoints, createBreakpoints } from \"./breakpoints\";\nimport { defaultShadows } from \"./shadows\";\nimport { defaultTransitions } from \"./transitions\";\nimport { defaultZIndex } from \"./zIndex\";\n\n/**\n * Deep merge utility for theme options\n */\nfunction isObject(item: any): item is Record<string, any> {\n return item && typeof item === \"object\" && !Array.isArray(item);\n}\n\nfunction deepMerge(target: any, source: any): any {\n const output = { ...target };\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach((key) => {\n if (isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(output, { [key]: source[key] });\n } else {\n output[key] = deepMerge(target[key], source[key]);\n }\n } else {\n Object.assign(output, { [key]: source[key] });\n }\n });\n }\n return output;\n}\n\n/**\n * Creates a Chellaa Material Theme with 24-level elevation shadows,\n * 8px spacing, and complete Google Material 3 design tokens.\n *\n * @example\n * const theme = createTheme({\n * palette: {\n * mode: 'dark',\n * primary: { main: '#6366f1' }\n * },\n * shape: { borderRadius: 8 }\n * });\n */\nexport function createTheme(options: ThemeOptions = {}): ChellaaTheme {\n const mode: ColorMode = options.palette?.mode ?? \"light\";\n const basePalette = createPalette(mode);\n\n const mergedPalette = options.palette\n ? deepMerge(basePalette, options.palette)\n : basePalette;\n\n const mergedTypography = options.typography\n ? deepMerge(defaultTypography, options.typography)\n : defaultTypography;\n\n const mergedBreakpoints = options.breakpoints?.values\n ? createBreakpoints(options.breakpoints.values as any)\n : defaultBreakpoints;\n\n const spacing =\n typeof options.spacing === \"function\"\n ? (options.spacing as any)\n : defaultSpacing;\n\n const shape = {\n borderRadius: options.shape?.borderRadius ?? 4,\n };\n\n const shadows = (options.shadows as string[]) ?? defaultShadows;\n const transitions = options.transitions\n ? deepMerge(defaultTransitions, options.transitions)\n : defaultTransitions;\n const zIndex = options.zIndex\n ? deepMerge(defaultZIndex, options.zIndex)\n : defaultZIndex;\n\n return {\n palette: mergedPalette,\n typography: mergedTypography,\n spacing,\n shape,\n breakpoints: mergedBreakpoints,\n shadows,\n transitions,\n zIndex,\n components: (options.components as any) ?? {},\n };\n}\n\nexport const defaultTheme = createTheme({ palette: { mode: \"light\" } });\nexport const defaultDarkTheme = createTheme({ palette: { mode: \"dark\" } });\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ThemeProvider as EmotionThemeProvider } from \"@emotion/react\";\nimport { ChellaaTheme, ThemeOptions, ColorMode } from \"./types\";\nimport { createTheme, defaultTheme, defaultDarkTheme } from \"./createTheme\";\n\n// Ambient type augmentation for @emotion/react\ndeclare module \"@emotion/react\" {\n export interface Theme extends ChellaaTheme {}\n}\n\nexport type ThemeMode = \"light\" | \"dark\" | \"system\" | string;\n\nexport interface ThemeContextValue {\n theme: ThemeMode;\n setTheme: (theme: ThemeMode) => void;\n resolvedTheme: \"light\" | \"dark\";\n systemTheme: \"light\" | \"dark\" | undefined;\n activeTheme: ChellaaTheme;\n colorMode: ColorMode;\n setColorMode: (mode: ColorMode) => void;\n}\n\nexport const ThemeContext = React.createContext<ThemeContextValue | undefined>(\n undefined\n);\n\nexport interface ThemeProviderProps {\n children?: React.ReactNode;\n theme?: ChellaaTheme | ThemeOptions;\n defaultTheme?: ThemeMode;\n storageKey?: string;\n enableSystem?: boolean;\n tokens?: Record<string, string>;\n attribute?: string;\n}\n\nconst COLOR_SCHEME_QUERY = \"(prefers-color-scheme: dark)\";\n\nexport function ThemeProvider({\n children,\n theme: customThemeProp,\n defaultTheme: defaultThemeMode = \"system\",\n storageKey = \"chellaa-theme\",\n enableSystem = true,\n tokens,\n attribute = \"data-theme\",\n}: ThemeProviderProps) {\n const parentContext = React.useContext(ThemeContext);\n\n const [themeMode, setThemeModeState] = React.useState<ThemeMode>(() => {\n if (typeof window === \"undefined\") return defaultThemeMode;\n try {\n return (localStorage.getItem(storageKey) as ThemeMode) || defaultThemeMode;\n } catch {\n return defaultThemeMode;\n }\n });\n\n const [systemTheme, setSystemTheme] = React.useState<\n \"light\" | \"dark\" | undefined\n >(() => {\n if (\n typeof window === \"undefined\" ||\n !enableSystem ||\n typeof window.matchMedia !== \"function\"\n ) {\n return undefined;\n }\n return window.matchMedia(COLOR_SCHEME_QUERY).matches ? \"dark\" : \"light\";\n });\n\n // Calculate resolved theme (light or dark)\n const resolvedTheme: \"light\" | \"dark\" = React.useMemo(() => {\n if (themeMode === \"system\") {\n return systemTheme ?? \"light\";\n }\n return themeMode === \"dark\" ? \"dark\" : \"light\";\n }, [themeMode, systemTheme]);\n\n // Listen for OS system theme changes\n React.useEffect(() => {\n if (\n !enableSystem ||\n typeof window === \"undefined\" ||\n typeof window.matchMedia !== \"function\"\n ) {\n return;\n }\n\n const mediaQuery = window.matchMedia(COLOR_SCHEME_QUERY);\n const handleChange = (e: MediaQueryListEvent) => {\n setSystemTheme(e.matches ? \"dark\" : \"light\");\n };\n\n if (typeof mediaQuery.addEventListener === \"function\") {\n mediaQuery.addEventListener(\"change\", handleChange);\n return () => mediaQuery.removeEventListener(\"change\", handleChange);\n } else if (\n typeof (\n mediaQuery as {\n addListener?: (cb: (e: MediaQueryListEvent) => void) => void;\n }\n ).addListener === \"function\"\n ) {\n (\n mediaQuery as {\n addListener: (cb: (e: MediaQueryListEvent) => void) => void;\n }\n ).addListener(handleChange);\n return () =>\n (\n mediaQuery as {\n removeListener: (cb: (e: MediaQueryListEvent) => void) => void;\n }\n ).removeListener(handleChange);\n }\n }, [enableSystem]);\n\n // Compute active Emotion ChellaaTheme\n const activeTheme = React.useMemo<ChellaaTheme>(() => {\n if (customThemeProp) {\n // If full ChellaaTheme passed, respect its palette mode or override with resolvedTheme\n return createTheme({\n ...(customThemeProp as any),\n palette: {\n mode: resolvedTheme,\n ...((customThemeProp as any).palette || {}),\n },\n });\n }\n return resolvedTheme === \"dark\" ? defaultDarkTheme : defaultTheme;\n }, [customThemeProp, resolvedTheme]);\n\n // Apply data-theme attribute and CSS tokens to DOM\n React.useEffect(() => {\n if (typeof document === \"undefined\") return;\n\n if (!parentContext) {\n const root = document.documentElement;\n root.setAttribute(attribute, resolvedTheme);\n\n if (tokens) {\n for (const [key, value] of Object.entries(tokens)) {\n root.style.setProperty(key, value);\n }\n }\n }\n }, [resolvedTheme, parentContext, attribute, tokens]);\n\n const setTheme = React.useCallback(\n (newTheme: ThemeMode) => {\n setThemeModeState(newTheme);\n try {\n localStorage.setItem(storageKey, newTheme);\n } catch {\n // Ignore localStorage errors (e.g. private browsing mode)\n }\n },\n [storageKey]\n );\n\n const setColorMode = React.useCallback(\n (mode: ColorMode) => {\n setTheme(mode);\n },\n [setTheme]\n );\n\n const contextValue = React.useMemo<ThemeContextValue>(\n () => ({\n theme: themeMode,\n setTheme,\n resolvedTheme,\n systemTheme,\n activeTheme,\n colorMode: resolvedTheme,\n setColorMode,\n }),\n [themeMode, setTheme, resolvedTheme, systemTheme, activeTheme, setColorMode]\n );\n\n if (parentContext) {\n const styleObj = tokens\n ? (tokens as unknown as React.CSSProperties)\n : undefined;\n\n return (\n <ThemeContext.Provider value={contextValue}>\n <EmotionThemeProvider theme={activeTheme}>\n <div\n {...{ [attribute]: resolvedTheme }}\n style={styleObj}\n className=\"cl-theme-scope\"\n >\n {children}\n </div>\n </EmotionThemeProvider>\n </ThemeContext.Provider>\n );\n }\n\n return (\n <ThemeContext.Provider value={contextValue}>\n <EmotionThemeProvider theme={activeTheme}>{children}</EmotionThemeProvider>\n </ThemeContext.Provider>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { useTheme as useEmotionTheme } from \"@emotion/react\";\nimport { ThemeContext, type ThemeContextValue } from \"./ThemeProvider\";\nimport { ChellaaTheme } from \"./types\";\nimport { defaultTheme } from \"./createTheme\";\n\nexport interface ExtendedThemeContextValue extends ThemeContextValue {\n /** The active ChellaaTheme object (colors, typography, spacing, shadows) */\n themeObject: ChellaaTheme;\n}\n\n/**\n * Accesses the active theme context, allowing components to read and update\n * the current theme mode (`light`, `dark`, `system`), resolved theme, and active ChellaaTheme.\n */\nexport function useTheme(): ExtendedThemeContextValue {\n const context = React.useContext(ThemeContext);\n const emotionTheme = useEmotionTheme() as ChellaaTheme | undefined;\n\n if (context) {\n return {\n ...context,\n themeObject: context.activeTheme,\n };\n }\n\n if (emotionTheme && emotionTheme.palette) {\n return {\n theme: emotionTheme.palette.mode,\n setTheme: () => {},\n resolvedTheme: emotionTheme.palette.mode,\n systemTheme: undefined,\n activeTheme: emotionTheme,\n colorMode: emotionTheme.palette.mode,\n setColorMode: () => {},\n themeObject: emotionTheme,\n };\n }\n\n // Graceful fallback to defaultTheme if used outside ThemeProvider\n return {\n theme: \"light\",\n setTheme: () => {},\n resolvedTheme: \"light\",\n systemTheme: undefined,\n activeTheme: defaultTheme,\n colorMode: \"light\",\n setColorMode: () => {},\n themeObject: defaultTheme,\n };\n}\n","export interface ThemeScriptProps {\n storageKey?: string;\n defaultTheme?: string;\n attribute?: string;\n nonce?: string;\n}\n\n/**\n * Inline synchronous script that prevents theme flash (FOUC) during SSR page load.\n * Place inside the `<head>` of your application layout.\n */\nexport function ThemeScript({\n storageKey = \"chellaa-theme\",\n defaultTheme = \"system\",\n attribute = \"data-theme\",\n nonce,\n}: ThemeScriptProps) {\n const scriptContent = `(function() {\n try {\n var key = '${storageKey}';\n var def = '${defaultTheme}';\n var attr = '${attribute}';\n var stored = localStorage.getItem(key);\n var theme = stored || def;\n var resolved = theme;\n if (theme === 'system') {\n resolved = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n document.documentElement.setAttribute(attr, resolved);\n } catch (e) {}\n})();`;\n\n return (\n <script\n nonce={nonce}\n dangerouslySetInnerHTML={{ __html: scriptContent }}\n suppressHydrationWarning\n />\n );\n}\n","const defaultBlockedProps = new Set<string>([\n \"sx\",\n \"theme\",\n \"as\",\n \"ownerState\",\n \"slotProps\",\n]);\n\n/**\n * Creates a shouldForwardProp predicate function for Emotion styled components.\n * Automatically filters out transient props starting with '$' and default system props.\n *\n * @param customBlocked Array or Set of additional prop names to prevent forwarding to DOM\n */\nexport function createShouldForwardProp(\n customBlocked?: (string | PropertyKey)[] | Set<string | PropertyKey>\n): (prop: PropertyKey) => boolean {\n const blockedSet = new Set(defaultBlockedProps);\n\n if (customBlocked) {\n customBlocked.forEach((prop) => blockedSet.add(prop as string));\n }\n\n return (prop: PropertyKey): boolean => {\n if (typeof prop === \"string\" && prop.startsWith(\"$\")) {\n return false;\n }\n return !blockedSet.has(prop as string);\n };\n}\n\n/**\n * Default root shouldForwardProp filter.\n * Blocks 'sx', 'theme', 'as', 'ownerState', 'slotProps', and '$*'.\n */\nexport const rootShouldForwardProp = createShouldForwardProp();\n","import type { BreakpointKey, ChellaaTheme } from \"../theme/types\";\nimport { breakpointKeys } from \"../theme/breakpoints\";\nimport { defaultTheme } from \"../theme/createTheme\";\nimport type { SxProps, SxObject } from \"./types\";\n\nconst spacingProperties: Record<string, string[]> = {\n m: [\"margin\"],\n margin: [\"margin\"],\n mt: [\"marginTop\"],\n marginTop: [\"marginTop\"],\n mr: [\"marginRight\"],\n marginRight: [\"marginRight\"],\n mb: [\"marginBottom\"],\n marginBottom: [\"marginBottom\"],\n ml: [\"marginLeft\"],\n marginLeft: [\"marginLeft\"],\n mx: [\"marginInline\"],\n marginInline: [\"marginInline\"],\n my: [\"marginBlock\"],\n marginBlock: [\"marginBlock\"],\n\n p: [\"padding\"],\n padding: [\"padding\"],\n pt: [\"paddingTop\"],\n paddingTop: [\"paddingTop\"],\n pr: [\"paddingRight\"],\n paddingRight: [\"paddingRight\"],\n pb: [\"paddingBottom\"],\n paddingBottom: [\"paddingBottom\"],\n pl: [\"paddingLeft\"],\n paddingLeft: [\"paddingLeft\"],\n px: [\"paddingInline\"],\n paddingInline: [\"paddingInline\"],\n py: [\"paddingBlock\"],\n paddingBlock: [\"paddingBlock\"],\n\n gap: [\"gap\"],\n rowGap: [\"rowGap\"],\n columnGap: [\"columnGap\"],\n};\n\n/**\n * Resolves nested property path in theme palette (e.g. 'primary.main', 'text.secondary')\n */\nfunction resolvePalettePath(palette: ChellaaTheme[\"palette\"], path: string): string | undefined {\n if (!path || typeof path !== \"string\") return undefined;\n const parts = path.split(\".\");\n let current: any = palette;\n for (const part of parts) {\n if (current && typeof current === \"object\" && part in current) {\n current = current[part];\n } else {\n return undefined;\n }\n }\n return typeof current === \"string\" ? current : undefined;\n}\n\n/**\n * Resolves color values against theme palette\n */\nfunction resolveColor(theme: ChellaaTheme, value: any): any {\n if (typeof value !== \"string\") return value;\n const resolved = resolvePalettePath(theme.palette, value);\n return resolved ?? value;\n}\n\n/**\n * Resolves z-index token names against theme.zIndex\n */\nfunction resolveZIndex(theme: ChellaaTheme, value: any): any {\n if (typeof value === \"string\" && value in theme.zIndex) {\n return theme.zIndex[value as keyof typeof theme.zIndex];\n }\n return value;\n}\n\n/**\n * Resolves a single CSS property name and value into one or more CSS declarations\n */\nfunction resolveSingleProperty(\n theme: ChellaaTheme,\n prop: string,\n value: any\n): Record<string, any> {\n if (value === undefined || value === null) return {};\n\n // 1. Spacing properties\n if (prop in spacingProperties) {\n const cssProps = spacingProperties[prop]!;\n const formatted = typeof value === \"number\" ? theme.spacing(value) : value;\n const result: Record<string, any> = {};\n for (const cssProp of cssProps) {\n result[cssProp] = formatted;\n }\n return result;\n }\n\n // 2. Background color shorthand\n if (prop === \"bgcolor\") {\n return { backgroundColor: resolveColor(theme, value) };\n }\n\n // 3. Color properties\n if (\n prop === \"color\" ||\n prop === \"backgroundColor\" ||\n prop === \"borderColor\" ||\n prop === \"outlineColor\"\n ) {\n return { [prop]: resolveColor(theme, value) };\n }\n\n // 4. Elevation / BoxShadow\n if (prop === \"elevation\") {\n if (typeof value === \"number\" && theme.shadows[value]) {\n return { boxShadow: theme.shadows[value] };\n }\n return {};\n }\n if (prop === \"boxShadow\") {\n if (typeof value === \"number\" && theme.shadows[value]) {\n return { boxShadow: theme.shadows[value] };\n }\n return { boxShadow: value };\n }\n\n // 5. Border radius\n if (prop === \"borderRadius\") {\n if (typeof value === \"number\") {\n const radius = theme.shape?.borderRadius ?? 4;\n return { borderRadius: `${value * radius}px` };\n }\n return { borderRadius: value };\n }\n\n // 6. Z-Index\n if (prop === \"zIndex\") {\n return { zIndex: resolveZIndex(theme, value) };\n }\n\n // 7. Standard CSS Property pass-through\n return { [prop]: value };\n}\n\nfunction isObject(val: any): val is Record<string, any> {\n return val !== null && typeof val === \"object\" && !Array.isArray(val);\n}\n\n/**\n * Checks if a value is responsive (either an array or breakpoint keyed object)\n */\nfunction isResponsiveValue(val: any): boolean {\n if (Array.isArray(val)) return true;\n if (isObject(val)) {\n return Object.keys(val).some((k) => breakpointKeys.includes(k as BreakpointKey));\n }\n return false;\n}\n\n/**\n * Parses an individual SxObject with the current theme\n */\nfunction parseSxObject(\n theme: ChellaaTheme,\n sxObject: SxObject\n): Record<string, any> {\n const result: Record<string, any> = {};\n\n for (const [key, value] of Object.entries(sxObject)) {\n if (value === undefined || value === null) continue;\n\n // Handle nested selectors / media queries (&:hover, @media, etc.)\n if (key.startsWith(\"&\") || key.startsWith(\"@\") || key.startsWith(\".\")) {\n if (typeof value === \"function\") {\n result[key] = parseSxObject(theme, value(theme));\n } else if (isObject(value)) {\n result[key] = parseSxObject(theme, value as SxObject);\n }\n continue;\n }\n\n // Handle responsive values: array syntax [val1, val2, val3]\n if (Array.isArray(value)) {\n value.forEach((bpVal, index) => {\n if (bpVal === undefined || bpVal === null) return;\n const bpKey = breakpointKeys[index];\n if (!bpKey) return;\n\n const resolved = resolveSingleProperty(theme, key, bpVal);\n if (bpKey === \"xs\") {\n Object.assign(result, resolved);\n } else {\n const media = theme.breakpoints.up(bpKey);\n result[media] = {\n ...(result[media] || {}),\n ...resolved,\n };\n }\n });\n continue;\n }\n\n // Handle responsive values: object syntax { xs: val1, md: val2 }\n if (isResponsiveValue(value)) {\n const respObj = value as Partial<Record<BreakpointKey, any>>;\n for (const [bpKey, bpVal] of Object.entries(respObj)) {\n if (bpVal === undefined || bpVal === null) continue;\n\n const resolved = resolveSingleProperty(theme, key, bpVal);\n if (bpKey === \"xs\") {\n Object.assign(result, resolved);\n } else if (breakpointKeys.includes(bpKey as BreakpointKey)) {\n const media = theme.breakpoints.up(bpKey as BreakpointKey);\n result[media] = {\n ...(result[media] || {}),\n ...resolved,\n };\n }\n }\n continue;\n }\n\n // Handle nested sub-object that is not a selector or responsive breakpoint\n if (isObject(value)) {\n result[key] = parseSxObject(theme, value as SxObject);\n continue;\n }\n\n // Standard single property resolution\n const resolved = resolveSingleProperty(theme, key, value);\n Object.assign(result, resolved);\n }\n\n return result;\n}\n\n/**\n * Core responsive `sx` parser function.\n * Evaluates `sx` prop against current theme, expanding:\n * - Theme spacing shortcuts (m, p, mx, my, px, py, etc.)\n * - Theme palette tokens (color, bgcolor: 'primary.main', 'text.secondary')\n * - Elevation shadows (elevation: 0..24, boxShadow: 0..24)\n * - Breakpoint responsive arrays ([1, 2, 4]) and objects ({ xs: 1, md: 4 })\n * - Pseudo-classes (&:hover, &:focus) and nested selectors\n * - Theme function callbacks: `(theme) => ({ ... })`\n * - Array of sx items: `[sx1, condition && sx2, (theme) => sx3]`\n */\nexport function parseSx(\n themeInput?: ChellaaTheme,\n sx?: SxProps\n): Record<string, any> {\n if (!sx) return {};\n const theme =\n themeInput && typeof themeInput.spacing === \"function\"\n ? themeInput\n : defaultTheme;\n\n // If sx is a function, execute with theme\n if (typeof sx === \"function\") {\n return parseSxObject(theme, sx(theme));\n }\n\n // If sx is an array, merge in sequence\n if (Array.isArray(sx)) {\n return sx.reduce<Record<string, any>>((acc, item) => {\n if (!item) return acc;\n const parsed = parseSx(theme, item);\n return deepMergeStyles(acc, parsed);\n }, {});\n }\n\n // Object sx\n if (isObject(sx)) {\n return parseSxObject(theme, sx);\n }\n\n return {};\n}\n\n/**\n * Deep merge utility for style objects to safely merge nested media queries and selectors\n */\nfunction deepMergeStyles(\n target: Record<string, any>,\n source: Record<string, any>\n): Record<string, any> {\n const result: Record<string, any> = { ...target };\n\n for (const [key, value] of Object.entries(source)) {\n if (\n isObject(value) &&\n isObject(result[key]) &&\n !Array.isArray(value) &&\n !Array.isArray(result[key])\n ) {\n result[key] = deepMergeStyles(result[key], value);\n } else {\n result[key] = value;\n }\n }\n\n return result;\n}\n","import type { ChellaaTheme } from \"../theme/types\";\n\nexport interface ComponentOverrideOptions {\n name?: string;\n slot?: string;\n overridesResolver?: (\n props: any,\n styles: Record<string, any>\n ) => Record<string, any> | undefined;\n}\n\n/**\n * Resolves component-level style overrides defined in theme.components[name].styleOverrides\n * Supports both static style objects and dynamic functions: `({ theme, ownerState }) => ({ ... })`\n */\nexport function resolveComponentOverrides(\n theme: ChellaaTheme,\n options: ComponentOverrideOptions,\n props: Record<string, any>\n): Record<string, any> | undefined {\n const { name, slot = \"root\", overridesResolver } = options;\n if (!name || !theme.components?.[name]) {\n return undefined;\n }\n\n const componentConfig = theme.components[name];\n const styleOverrides = componentConfig.styleOverrides;\n if (!styleOverrides) {\n return undefined;\n }\n\n // If custom overrides resolver is supplied, execute it\n if (overridesResolver) {\n const resolved = overridesResolver(props, styleOverrides);\n if (resolved) return resolved;\n }\n\n // Fallback to slot-based lookup\n const slotLower = slot.toLowerCase();\n const matchedKey = Object.keys(styleOverrides).find(\n (k) => k.toLowerCase() === slotLower\n );\n\n if (matchedKey) {\n const override = styleOverrides[matchedKey];\n if (typeof override === \"function\") {\n return override({ theme, ownerState: props.ownerState ?? props });\n }\n return override;\n }\n\n return undefined;\n}\n","import React from \"react\";\nimport emotionStyled from \"@emotion/styled\";\nimport type { ChellaaTheme } from \"../theme/types\";\nimport { defaultTheme } from \"../theme/createTheme\";\nimport { rootShouldForwardProp } from \"./shouldForwardProp\";\nimport { parseSx } from \"./sx\";\nimport { resolveComponentOverrides } from \"./componentOverrides\";\nimport type { StyledOptions, SxProps } from \"./types\";\n\nexport type StyleInterpolation<Props extends object = {}> =\n | Record<string, any>\n | ((props: Props & { theme: ChellaaTheme }) => Record<string, any> | undefined | null | false);\n\n/**\n * Creates an Emotion-powered styled component with:\n * 1. Automatic `sx` prop parsing with responsive breakpoints & 8px theme spacing.\n * 2. Automatic resolution of `theme.components[name].styleOverrides[slot]`.\n * 3. Safe DOM prop filtering via `shouldForwardProp` preventing `sx` and private props from leaking.\n * 4. First-class polymorphism via `as` prop.\n *\n * @example\n * const MyBox = styled('div', {\n * name: 'ChellaaBox',\n * slot: 'Root'\n * })({\n * boxSizing: 'border-box'\n * });\n */\nexport function styled<\n Component extends React.ElementType,\n ExtraProps extends object = {}\n>(\n component: Component,\n options: StyledOptions<ExtraProps> = {}\n) {\n const {\n name,\n slot = \"Root\",\n label,\n target,\n shouldForwardProp: customShouldForwardProp,\n skipSx = false,\n } = options;\n\n const resolvedShouldForwardProp = customShouldForwardProp\n ? (prop: PropertyKey) =>\n rootShouldForwardProp(prop) && customShouldForwardProp(prop)\n : rootShouldForwardProp;\n\n const resolvedLabel = label ?? (name ? `${name}-${slot}` : undefined);\n\n const emotionOptions: {\n shouldForwardProp?: (prop: PropertyKey) => boolean;\n label?: string;\n target?: string;\n } = {\n shouldForwardProp: resolvedShouldForwardProp,\n };\n\n if (resolvedLabel !== undefined) {\n emotionOptions.label = resolvedLabel;\n }\n if (target !== undefined) {\n emotionOptions.target = target;\n }\n\n const emotionCreator = emotionStyled(component as any, emotionOptions);\n\n return <Props extends object = ExtraProps>(\n ...interpolations: StyleInterpolation<\n Props & { sx?: SxProps; as?: React.ElementType }\n >[]\n ) => {\n const wrappedInterpolations = interpolations.map((interpolation) => {\n if (typeof interpolation === \"function\") {\n return (rawProps: any) => {\n const activeTheme =\n rawProps.theme && typeof rawProps.theme.spacing === \"function\"\n ? (rawProps.theme as ChellaaTheme)\n : defaultTheme;\n return interpolation({\n ...rawProps,\n theme: activeTheme,\n });\n };\n }\n return interpolation;\n });\n\n return emotionCreator(\n // 1. Base component styles\n ...(wrappedInterpolations as any[]),\n\n // 2. Global theme overrides from theme.components[name].styleOverrides[slot]\n (props: any) => {\n if (!name) return null;\n const activeTheme =\n props.theme && typeof props.theme.spacing === \"function\"\n ? (props.theme as ChellaaTheme)\n : defaultTheme;\n return resolveComponentOverrides(activeTheme, options, props);\n },\n\n // 3. Local sx prop styles (highest precedence)\n (props: any) => {\n if (skipSx || !props.sx) return null;\n const activeTheme =\n props.theme && typeof props.theme.spacing === \"function\"\n ? (props.theme as ChellaaTheme)\n : defaultTheme;\n return parseSx(activeTheme, props.sx);\n }\n );\n };\n}\n","export type ClassValue =\n | string\n | number\n | boolean\n | undefined\n | null\n | Record<string, boolean | number | undefined | null>\n | ClassValue[];\n\n/**\n * Combines multiple conditional class names into a clean space-delimited string.\n * Zero external runtime dependencies.\n *\n * @example\n * classNames('cl-button', isActive && 'cl-button--active', { 'cl-button--disabled': isDisabled });\n */\nexport function classNames(...inputs: ClassValue[]): string {\n const classes: string[] = [];\n\n for (const input of inputs) {\n if (!input && input !== 0) continue;\n\n if (typeof input === \"string\" || typeof input === \"number\") {\n const trimmed = String(input).trim();\n if (trimmed) classes.push(trimmed);\n } else if (Array.isArray(input)) {\n const nested = classNames(...input);\n if (nested) classes.push(nested);\n } else if (typeof input === \"object\") {\n for (const [key, value] of Object.entries(input)) {\n if (value && key.trim()) {\n classes.push(key.trim());\n }\n }\n }\n }\n\n return classes.join(\" \");\n}\n","/**\n * Composes an optional consumer event handler with an internal library event handler.\n * If the consumer handler calls event.preventDefault(), the internal handler is skipped,\n * preserving consumer control over event delegation.\n *\n * @param originalHandler Optional consumer-provided event handler\n * @param ourHandler Internal component event handler\n * @param options Configuration options\n */\nexport function composeEventHandlers<E extends { defaultPrevented: boolean }>(\n originalHandler?: ((event: E) => void) | undefined,\n ourHandler?: ((event: E) => void) | undefined,\n {\n checkForDefaultPrevented = true,\n }: { checkForDefaultPrevented?: boolean } = {},\n): (event: E) => void {\n return function handleEvent(event: E) {\n originalHandler?.(event);\n\n if (!checkForDefaultPrevented || !event.defaultPrevented) {\n ourHandler?.(event);\n }\n };\n}\n","import * as React from \"react\";\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Assigns a value to a React ref (either RefCallback or MutableRefObject).\n */\nexport function setRef<T>(ref: PossibleRef<T>, value: T | null): void {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n}\n\n/**\n * Combines multiple React refs into a single RefCallback.\n * Handles both object refs and callback refs, with proper unmount cleanup.\n */\nexport function useMergeRefs<T>(\n ...refs: PossibleRef<T>[]\n): React.RefCallback<T> {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback((current: T | null) => {\n for (const ref of refs) {\n setRef(ref, current);\n }\n }, refs);\n}\n","import * as React from \"react\";\nimport { classNames } from \"../utils/classNames\";\nimport { composeEventHandlers } from \"../utils/composeEventHandlers\";\nimport { setRef } from \"../hooks/useMergeRefs\";\n\nexport interface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\n/**\n * Merges Slot props onto its immediate child element.\n * Preserves child identity, merges classNames, styles, ref forwarding, and event handlers.\n */\nexport const Slot = React.forwardRef<HTMLElement, SlotProps>(\n function Slot(props, forwardedRef) {\n const { children, ...slotProps } = props;\n\n if (React.isValidElement(children)) {\n return React.cloneElement(\n children,\n mergeProps(\n slotProps,\n children.props as Record<string, unknown>,\n forwardedRef,\n getElementRef(children),\n ),\n );\n }\n\n if (React.Children.count(children) > 1) {\n React.Children.only(null); // Will throw informative React.Children.only error\n }\n\n return null;\n },\n);\n\nSlot.displayName = \"Slot\";\n\n/**\n * Extracts a ref from a React element across React 18 and React 19.\n */\nfunction getElementRef(\n element: React.ReactElement,\n): React.Ref<HTMLElement> | undefined {\n // In React 18 and earlier, ref is a property on the element instance.\n // In React 19, ref is passed as a standard prop.\n // Checking element.ref first avoids the React 18 special-props warning.\n const elementRef = (element as unknown as { ref?: React.Ref<HTMLElement> })\n ?.ref;\n if (elementRef !== undefined) {\n return elementRef;\n }\n return (element.props as { ref?: React.Ref<HTMLElement> })?.ref;\n}\n\n/**\n * Merges slot parent props with child props.\n */\nfunction mergeProps(\n slotProps: Record<string, unknown>,\n childProps: Record<string, unknown>,\n slotRef: React.Ref<HTMLElement>,\n childRef?: React.Ref<HTMLElement>,\n): Record<string, unknown> {\n const overrideProps: Record<string, unknown> = { ...childProps };\n\n for (const propName in slotProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isEventHandler = /^on[A-Z]/.test(propName);\n\n if (isEventHandler) {\n if (\n typeof slotPropValue === \"function\" &&\n typeof childPropValue === \"function\"\n ) {\n overrideProps[propName] = composeEventHandlers(\n childPropValue as (event: { defaultPrevented: boolean }) => void,\n slotPropValue as (event: { defaultPrevented: boolean }) => void,\n );\n } else if (typeof slotPropValue === \"function\") {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"className\") {\n overrideProps[propName] = classNames(\n slotPropValue as string | undefined,\n childPropValue as string | undefined,\n );\n } else if (propName === \"style\") {\n overrideProps[propName] = {\n ...(slotPropValue as React.CSSProperties | undefined),\n ...(childPropValue as React.CSSProperties | undefined),\n };\n } else {\n overrideProps[propName] =\n slotPropValue !== undefined ? slotPropValue : childPropValue;\n }\n }\n\n // Ref merging\n overrideProps.ref = (node: HTMLElement | null) => {\n setRef(childRef, node);\n setRef(slotRef, node);\n };\n\n return overrideProps;\n}\n","import * as React from \"react\";\nimport type { ButtonGroupContextValue } from \"./ButtonGroup.types\";\n\nexport const ButtonGroupContext = React.createContext<\n ButtonGroupContextValue | undefined\n>(undefined);\n\n/**\n * Hook to access parent ButtonGroup context if present.\n */\nexport function useButtonGroupContext(): ButtonGroupContextValue | undefined {\n return React.useContext(ButtonGroupContext);\n}\n","import * as React from \"react\";\nimport { keyframes } from \"@emotion/react\";\nimport { styled } from \"../system/styled\";\n\nconst enterKeyframe = keyframes`\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n`;\n\nconst exitKeyframe = keyframes`\n 0% {\n opacity: 0.3;\n }\n 100% {\n opacity: 0;\n }\n`;\n\nconst pulsateKeyframe = keyframes`\n 0% {\n transform: scale(1);\n }\n 50% {\n transform: scale(0.92);\n }\n 100% {\n transform: scale(1);\n }\n`;\n\nexport interface RippleItem {\n key: number;\n rippleX: number;\n rippleY: number;\n rippleSize: number;\n pulsating?: boolean;\n leaving?: boolean;\n}\n\nexport interface TouchRippleRef {\n start: (\n event?: React.SyntheticEvent,\n options?: { pulsate?: boolean; center?: boolean }\n ) => void;\n stop: (event?: React.SyntheticEvent) => void;\n pulsate: () => void;\n}\n\nexport interface TouchRippleProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * If true, the ripple will center on the element rather than pointer coordinates\n */\n center?: boolean;\n className?: string;\n}\n\nconst TouchRippleRoot = styled(\"span\", {\n name: \"ChellaaTouchRipple\",\n slot: \"Root\",\n})({\n overflow: \"hidden\",\n pointerEvents: \"none\",\n position: \"absolute\",\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: \"inherit\",\n});\n\nconst StyledRippleSpan = styled(\"span\", {\n shouldForwardProp: (prop) =>\n prop !== \"pulsating\" && prop !== \"leaving\",\n})<{ pulsating?: boolean; leaving?: boolean }>(({ pulsating, leaving }) => ({\n position: \"absolute\",\n borderRadius: \"50%\",\n backgroundColor: \"currentColor\",\n opacity: 0.3,\n animation: `${enterKeyframe} 550ms cubic-bezier(0.4, 0, 0.2, 1)`,\n ...(pulsating && {\n animation: `${pulsateKeyframe} 2500ms ease-in-out infinite 200ms`,\n }),\n ...(leaving && {\n opacity: 0,\n animation: `${exitKeyframe} 550ms cubic-bezier(0.4, 0, 0.2, 1) forwards`,\n }),\n}));\n\n/**\n * TouchRipple component delivers tactile Material Design touch/click ripple animations.\n */\nexport const TouchRipple = React.forwardRef<TouchRippleRef, TouchRippleProps>(\n function TouchRipple(props, ref) {\n const { center: centerProp = false, className, ...rest } = props;\n const [ripples, setRipples] = React.useState<RippleItem[]>([]);\n const nextKey = React.useRef(0);\n const containerRef = React.useRef<HTMLSpanElement | null>(null);\n\n const start = React.useCallback(\n (\n event?: React.SyntheticEvent,\n options: { pulsate?: boolean; center?: boolean } = {}\n ) => {\n const { pulsate = false, center = centerProp || pulsate } = options;\n\n const container = containerRef.current;\n if (!container) return;\n\n const rect = container.getBoundingClientRect();\n\n let rippleX: number;\n let rippleY: number;\n let rippleSize: number;\n\n if (\n center ||\n !event ||\n (event.nativeEvent as any).clientX === undefined\n ) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n rippleSize = Math.max(rect.width, rect.height);\n } else {\n const clientX =\n (event.nativeEvent as any).clientX ??\n (event.nativeEvent as any).touches?.[0]?.clientX;\n const clientY =\n (event.nativeEvent as any).clientY ??\n (event.nativeEvent as any).touches?.[0]?.clientY;\n\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n\n const sizeX =\n Math.max(Math.abs(container.clientWidth - rippleX), rippleX) * 2 + 2;\n const sizeY =\n Math.max(Math.abs(container.clientHeight - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n }\n\n const currentKey = nextKey.current;\n nextKey.current += 1;\n\n setRipples((prev) => [\n ...prev,\n {\n key: currentKey,\n rippleX,\n rippleY,\n rippleSize,\n pulsating: pulsate,\n leaving: false,\n },\n ]);\n },\n [centerProp]\n );\n\n const stop = React.useCallback(() => {\n setRipples((prev) => {\n if (prev.length === 0) return prev;\n return prev.map((ripple) => ({ ...ripple, leaving: true }));\n });\n\n // Cleanup finished ripples after transition animation completes\n setTimeout(() => {\n setRipples((prev) => prev.filter((r) => !r.leaving));\n }, 550);\n }, []);\n\n const pulsate = React.useCallback(() => {\n start(undefined, { pulsate: true });\n }, [start]);\n\n React.useImperativeHandle(\n ref,\n () => ({\n start,\n stop,\n pulsate,\n }),\n [start, stop, pulsate]\n );\n\n return (\n <TouchRippleRoot\n ref={containerRef}\n className={className}\n aria-hidden=\"true\"\n {...rest}\n >\n {ripples.map((item) => {\n const style: React.CSSProperties = {\n width: `${item.rippleSize}px`,\n height: `${item.rippleSize}px`,\n top: `${-(item.rippleSize / 2) + item.rippleY}px`,\n left: `${-(item.rippleSize / 2) + item.rippleX}px`,\n };\n\n return (\n <StyledRippleSpan\n key={item.key}\n pulsating={item.pulsating}\n leaving={item.leaving}\n style={style}\n />\n );\n })}\n </TouchRippleRoot>\n );\n }\n);\n\nTouchRipple.displayName = \"TouchRipple\";\n","import * as React from \"react\";\nimport type { TouchRippleRef, TouchRippleProps } from \"./TouchRipple\";\nimport { composeEventHandlers } from \"../utils/composeEventHandlers\";\n\nexport interface UseRippleOptions {\n disabled?: boolean;\n disableRipple?: boolean;\n center?: boolean;\n}\n\nexport interface UseRippleReturn {\n rippleRef: React.RefObject<TouchRippleRef>;\n rippleProps: TouchRippleProps & { ref: React.RefObject<TouchRippleRef> };\n getRippleHandlers: <T extends Record<string, any>>(props?: T) => T;\n}\n\n/**\n * Hook connecting user interactions (pointer/touch/keyboard) to TouchRipple.\n */\nexport function useRipple(options: UseRippleOptions = {}): UseRippleReturn {\n const { disabled = false, disableRipple = false, center = false } = options;\n const rippleRef = React.useRef<TouchRippleRef>(null);\n\n const onMouseDown = React.useCallback(\n (event: React.MouseEvent) => {\n if (disabled || disableRipple) return;\n rippleRef.current?.start(event);\n },\n [disabled, disableRipple]\n );\n\n const onMouseUp = React.useCallback(\n (event: React.MouseEvent) => {\n if (disabled || disableRipple) return;\n rippleRef.current?.stop(event);\n },\n [disabled, disableRipple]\n );\n\n const onMouseLeave = React.useCallback(\n (event: React.MouseEvent) => {\n if (disabled || disableRipple) return;\n rippleRef.current?.stop(event);\n },\n [disabled, disableRipple]\n );\n\n const onTouchStart = React.useCallback(\n (event: React.TouchEvent) => {\n if (disabled || disableRipple) return;\n rippleRef.current?.start(event);\n },\n [disabled, disableRipple]\n );\n\n const onTouchEnd = React.useCallback(\n (event: React.TouchEvent) => {\n if (disabled || disableRipple) return;\n rippleRef.current?.stop(event);\n },\n [disabled, disableRipple]\n );\n\n const onKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (disabled || disableRipple) return;\n if (event.key === \" \" || event.key === \"Enter\") {\n rippleRef.current?.start(undefined, { pulsate: true });\n }\n },\n [disabled, disableRipple]\n );\n\n const onKeyUp = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (disabled || disableRipple) return;\n if (event.key === \" \" || event.key === \"Enter\") {\n rippleRef.current?.stop();\n }\n },\n [disabled, disableRipple]\n );\n\n const onBlur = React.useCallback(() => {\n rippleRef.current?.stop();\n }, []);\n\n const getRippleHandlers = React.useCallback(\n <T extends Record<string, any>>(props: T = {} as T): T => {\n return {\n ...props,\n onMouseDown: composeEventHandlers(props.onMouseDown, onMouseDown),\n onMouseUp: composeEventHandlers(props.onMouseUp, onMouseUp),\n onMouseLeave: composeEventHandlers(props.onMouseLeave, onMouseLeave),\n onTouchStart: composeEventHandlers(props.onTouchStart, onTouchStart),\n onTouchEnd: composeEventHandlers(props.onTouchEnd, onTouchEnd),\n onKeyDown: composeEventHandlers(props.onKeyDown, onKeyDown),\n onKeyUp: composeEventHandlers(props.onKeyUp, onKeyUp),\n onBlur: composeEventHandlers(props.onBlur, onBlur),\n };\n },\n [\n onMouseDown,\n onMouseUp,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n onKeyDown,\n onKeyUp,\n onBlur,\n ]\n );\n\n return {\n rippleRef,\n rippleProps: {\n ref: rippleRef,\n center,\n },\n getRippleHandlers,\n };\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useButtonGroupContext } from \"../ButtonGroup/ButtonGroupContext\";\nimport { styled } from \"../../system/styled\";\nimport { TouchRipple } from \"../../ripple/TouchRipple\";\nimport { useRipple } from \"../../ripple/useRipple\";\nimport type { ButtonProps } from \"./Button.types\";\n\n/**\n * Animated SVG spinner for loading states.\n */\nfunction ButtonSpinner() {\n return (\n <svg\n className=\"cl-button__spinner\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeOpacity=\"0.25\"\n />\n <path\n d=\"M12 3a9 9 0 0 1 9 9\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\n\nconst StyledButtonRoot = styled(\"button\", {\n name: \"ChellaaButton\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"variant\" &&\n prop !== \"colorScheme\" &&\n prop !== \"isFullWidth\" &&\n prop !== \"isLoading\" &&\n prop !== \"isDisabled\" &&\n prop !== \"loadingText\" &&\n prop !== \"loadingPosition\" &&\n prop !== \"startIcon\" &&\n prop !== \"endIcon\" &&\n prop !== \"disableRipple\" &&\n prop !== \"asChild\",\n})({});\n\n/**\n * Chellaa React Button component.\n *\n * Fundamental action primitive supporting 5 variants, 5 sizes, 7 color schemes,\n * tactile touch ripple feedback, loading states, icons, keyboard interaction,\n * theme overrides, and polymorphic slot delegation via `asChild`.\n */\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n function Button(props, forwardedRef) {\n const {\n asChild = false,\n variant: variantProp,\n size: sizeProp,\n colorScheme: colorSchemeProp,\n isLoading = false,\n loadingText,\n loadingPosition = \"start\",\n isDisabled: isDisabledProp,\n isFullWidth = false,\n startIcon,\n endIcon,\n className,\n children,\n disabled: disabledProp,\n type = \"button\",\n onClick,\n onKeyDown,\n disableRipple = false,\n sx,\n ...restProps\n } = props;\n\n const buttonGroup = useButtonGroupContext();\n\n const variant = variantProp ?? buttonGroup?.variant ?? \"solid\";\n const size = sizeProp ?? buttonGroup?.size ?? \"md\";\n const colorScheme =\n colorSchemeProp ?? buttonGroup?.colorScheme ?? \"primary\";\n const isDisabled =\n isDisabledProp ?? disabledProp ?? buttonGroup?.isDisabled ?? false;\n const isEffectivelyDisabled = isDisabled || isLoading;\n\n const { rippleProps, getRippleHandlers } = useRipple({\n disabled: isEffectivelyDisabled,\n disableRipple,\n });\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (isEffectivelyDisabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n onClick?.(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (isEffectivelyDisabled) {\n if (event.key === \" \" || event.key === \"Enter\") {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n onKeyDown?.(event);\n };\n\n const buttonClassName = classNames(\n \"cl-button\",\n `cl-button--${variant}`,\n `cl-button--${size}`,\n `cl-button--${colorScheme}`,\n isLoading && \"cl-button--loading\",\n isDisabled && \"cl-button--disabled\",\n isFullWidth && \"cl-button--full-width\",\n className,\n );\n\n const spinner = <ButtonSpinner />;\n\n // When asChild is enabled, delegate root rendering to child via Slot\n if (asChild) {\n return (\n <StyledButtonRoot\n as={Slot}\n ref={forwardedRef as React.Ref<HTMLElement>}\n className={buttonClassName}\n aria-disabled={isEffectivelyDisabled ? true : undefined}\n aria-busy={isLoading ? true : undefined}\n sx={sx}\n onClick={\n handleClick as unknown as React.MouseEventHandler<HTMLElement>\n }\n onKeyDown={\n handleKeyDown as unknown as React.KeyboardEventHandler<HTMLElement>\n }\n {...restProps}\n >\n {children}\n </StyledButtonRoot>\n );\n }\n\n // Center loading state: keep button dimensions identical by visually hiding label\n const isCenterLoading = isLoading && loadingPosition === \"center\";\n\n const buttonHandlers = getRippleHandlers({\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n ...restProps,\n });\n\n return (\n <StyledButtonRoot\n ref={forwardedRef}\n type={type}\n disabled={isEffectivelyDisabled ? true : undefined}\n aria-disabled={isEffectivelyDisabled ? true : undefined}\n aria-busy={isLoading ? true : undefined}\n className={buttonClassName}\n sx={sx}\n {...buttonHandlers}\n >\n {isCenterLoading ? (\n <>\n <span className=\"cl-button__spinner-wrapper--center\">\n {spinner}\n </span>\n <span className=\"cl-button__content--hidden\">\n {startIcon && (\n <span\n className=\"cl-button__icon cl-button__icon--start\"\n aria-hidden=\"true\"\n >\n {startIcon}\n </span>\n )}\n {children !== undefined && (\n <span className=\"cl-button__label\">{children}</span>\n )}\n {endIcon && (\n <span\n className=\"cl-button__icon cl-button__icon--end\"\n aria-hidden=\"true\"\n >\n {endIcon}\n </span>\n )}\n </span>\n </>\n ) : (\n <>\n {isLoading && loadingPosition === \"start\" && spinner}\n {!isLoading && startIcon && (\n <span\n className=\"cl-button__icon cl-button__icon--start\"\n aria-hidden=\"true\"\n >\n {startIcon}\n </span>\n )}\n {isLoading && loadingText ? (\n <span className=\"cl-button__label\">{loadingText}</span>\n ) : children !== undefined ? (\n <span className=\"cl-button__label\">{children}</span>\n ) : null}\n {isLoading && loadingPosition === \"end\" && spinner}\n {!isLoading && endIcon && (\n <span\n className=\"cl-button__icon cl-button__icon--end\"\n aria-hidden=\"true\"\n >\n {endIcon}\n </span>\n )}\n </>\n )}\n {!disableRipple && !isEffectivelyDisabled && (\n <TouchRipple {...rippleProps} />\n )}\n </StyledButtonRoot>\n );\n },\n);\n\nButton.displayName = \"Button\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport type {\n ButtonGroupContextValue,\n ButtonGroupProps,\n} from \"./ButtonGroup.types\";\nimport { ButtonGroupContext } from \"./ButtonGroupContext\";\n\n/**\n * Chellaa React ButtonGroup component.\n *\n * Container primitive for grouping related buttons with unified sizing,\n * visual variants, color schemes, disabled states, and attached border management.\n */\nexport const ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n function ButtonGroup(props, forwardedRef) {\n const {\n asChild = false,\n size,\n variant,\n colorScheme,\n isDisabled,\n isAttached = false,\n orientation = \"horizontal\",\n spacing,\n className,\n style,\n children,\n role: roleProp,\n ...restProps\n } = props;\n\n const role =\n roleProp !== undefined ? roleProp : asChild ? undefined : \"group\";\n\n const contextValue = React.useMemo<ButtonGroupContextValue>(\n () => ({\n size,\n variant,\n colorScheme,\n isDisabled,\n }),\n [size, variant, colorScheme, isDisabled],\n );\n\n const groupClassName = classNames(\n \"cl-button-group\",\n `cl-button-group--${orientation}`,\n isAttached && \"cl-button-group--attached\",\n className,\n );\n\n const groupStyle: React.CSSProperties = {\n ...style,\n ...(spacing !== undefined && !isAttached\n ? { gap: typeof spacing === \"number\" ? `${spacing}px` : spacing }\n : {}),\n };\n\n if (asChild) {\n return (\n <ButtonGroupContext.Provider value={contextValue}>\n <Slot\n ref={forwardedRef as React.Ref<HTMLElement>}\n role={role}\n className={groupClassName}\n style={groupStyle}\n {...restProps}\n >\n {children}\n </Slot>\n </ButtonGroupContext.Provider>\n );\n }\n\n return (\n <ButtonGroupContext.Provider value={contextValue}>\n <div\n ref={forwardedRef}\n role={role}\n className={groupClassName}\n style={groupStyle}\n {...restProps}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n );\n },\n);\n\nButtonGroup.displayName = \"ButtonGroup\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport interface BoxProps extends React.HTMLAttributes<HTMLElement> {\n /**\n * If true, delegating rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * The underlying HTML element or component to render (alias of `as`)\n */\n component?: React.ElementType;\n /**\n * The underlying HTML element or component to render\n */\n as?: React.ElementType;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledBoxRoot = styled(\"div\", {\n name: \"ChellaaBox\",\n slot: \"Root\",\n shouldForwardProp: (prop) => prop !== \"asChild\" && prop !== \"component\",\n})({});\n\n/**\n * Universal polymorphic layout container with theme-aware `sx` styling and `asChild` composition.\n *\n * @example\n * <Box sx={{ p: 2, bgcolor: 'background.paper', borderRadius: 2 }}>\n * Content\n * </Box>\n */\nexport const Box = React.forwardRef<HTMLElement, BoxProps>(\n function Box(props, ref) {\n const { asChild = false, component, as, className, style, sx, children, ...rest } = props;\n const targetTag = component || as;\n const boxClassName = classNames(\"cl-box\", className);\n\n if (asChild) {\n return (\n <StyledBoxRoot\n as={Slot}\n ref={ref as any}\n className={boxClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledBoxRoot>\n );\n }\n\n if (targetTag) {\n return (\n <StyledBoxRoot\n as={targetTag}\n ref={ref as any}\n className={boxClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledBoxRoot>\n );\n }\n\n return (\n <StyledBoxRoot\n ref={ref as any}\n className={boxClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledBoxRoot>\n );\n }\n);\n\nBox.displayName = \"Box\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport type { CSSProperties } from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { parseSx } from \"../../system/sx\";\nimport type { ResponsiveValue, SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type StackDirection = \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\n\nexport interface StackOwnerState {\n direction?: ResponsiveValue<StackDirection> | undefined;\n spacing?: ResponsiveValue<number | string> | undefined;\n alignItems?: ResponsiveValue<CSSProperties[\"alignItems\"]> | undefined;\n justifyContent?: ResponsiveValue<CSSProperties[\"justifyContent\"]> | undefined;\n flexWrap?: ResponsiveValue<CSSProperties[\"flexWrap\"]> | undefined;\n useFlexGap?: boolean | undefined;\n}\n\nexport interface StackProps\n extends React.HTMLAttributes<HTMLElement>,\n StackOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * Underlying HTML element or component\n */\n component?: React.ElementType;\n /**\n * Underlying HTML element or component\n */\n as?: React.ElementType;\n /**\n * Element placed between each child\n */\n divider?: React.ReactNode;\n /**\n * System-aware sx styling prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledStackRoot = styled(\"div\", {\n name: \"ChellaaStack\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"direction\" &&\n prop !== \"spacing\" &&\n prop !== \"alignItems\" &&\n prop !== \"justifyContent\" &&\n prop !== \"flexWrap\" &&\n prop !== \"useFlexGap\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})<{ ownerState: StackOwnerState }>(({ theme, ownerState }) => {\n const styles: Record<string, any> = {};\n\n // 1. Responsive direction (if array or object or non-default)\n if (typeof ownerState.direction === \"object\") {\n Object.assign(\n styles,\n parseSx(theme, { flexDirection: ownerState.direction })\n );\n }\n\n // 2. Responsive spacing (gap)\n if (ownerState.spacing !== undefined && ownerState.spacing !== 0) {\n Object.assign(\n styles,\n parseSx(theme, { gap: ownerState.spacing })\n );\n }\n\n // 3. Alignment and wrapping\n if (ownerState.alignItems !== undefined) {\n Object.assign(\n styles,\n parseSx(theme, { alignItems: ownerState.alignItems })\n );\n }\n if (ownerState.justifyContent !== undefined) {\n Object.assign(\n styles,\n parseSx(theme, { justifyContent: ownerState.justifyContent })\n );\n }\n if (ownerState.flexWrap !== undefined) {\n Object.assign(\n styles,\n parseSx(theme, { flexWrap: ownerState.flexWrap })\n );\n }\n\n return styles;\n});\n\n/**\n * 1D Flexbox layout container managing direction, spacing, alignment, and dividers.\n *\n * @example\n * <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n * <Item>1</Item>\n * <Item>2</Item>\n * </Stack>\n */\nexport const Stack = React.forwardRef<HTMLElement, StackProps>(\n function Stack(props, ref) {\n const {\n asChild = false,\n component,\n as,\n direction = \"column\",\n spacing = 0,\n alignItems,\n justifyContent,\n flexWrap,\n useFlexGap = true,\n divider,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const ownerState: StackOwnerState = {\n direction,\n spacing,\n alignItems,\n justifyContent,\n flexWrap,\n useFlexGap,\n };\n\n const isSimpleDirection = typeof direction === \"string\";\n\n const stackClassName = classNames(\n \"cl-stack\",\n isSimpleDirection && `cl-stack--${direction}`,\n className\n );\n\n const targetTag = component || as;\n\n // Handle divider insertion between valid React children\n let renderedChildren = children;\n if (divider && !asChild) {\n const validChildren = React.Children.toArray(children).filter(\n React.isValidElement\n );\n renderedChildren = validChildren.reduce<React.ReactNode[]>(\n (acc, child, index) => {\n acc.push(child);\n if (index < validChildren.length - 1) {\n acc.push(\n React.isValidElement(divider)\n ? React.cloneElement(divider as React.ReactElement, {\n key: `stack-divider-${index}`,\n })\n : (\n <span key={`stack-divider-${index}`}>{divider}</span>\n )\n );\n }\n return acc;\n },\n []\n );\n }\n\n if (asChild) {\n return (\n <StyledStackRoot\n as={Slot}\n ref={ref as any}\n className={stackClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {renderedChildren}\n </StyledStackRoot>\n );\n }\n\n if (targetTag) {\n return (\n <StyledStackRoot\n as={targetTag}\n ref={ref as any}\n className={stackClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {renderedChildren}\n </StyledStackRoot>\n );\n }\n\n return (\n <StyledStackRoot\n ref={ref as any}\n className={stackClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {renderedChildren}\n </StyledStackRoot>\n );\n }\n);\n\nStack.displayName = \"Stack\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport type { CSSProperties } from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { parseSx } from \"../../system/sx\";\nimport type { ResponsiveValue, SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport type { StackDirection } from \"../Stack\";\n\nexport interface FlexOwnerState {\n direction?: ResponsiveValue<StackDirection> | undefined;\n spacing?: ResponsiveValue<number | string> | undefined;\n gap?: ResponsiveValue<number | string> | undefined;\n alignItems?: ResponsiveValue<CSSProperties[\"alignItems\"]> | undefined;\n align?: ResponsiveValue<CSSProperties[\"alignItems\"]> | undefined;\n justifyContent?: ResponsiveValue<CSSProperties[\"justifyContent\"]> | undefined;\n justify?: ResponsiveValue<CSSProperties[\"justifyContent\"]> | undefined;\n flexWrap?: ResponsiveValue<CSSProperties[\"flexWrap\"]> | undefined;\n wrap?: ResponsiveValue<CSSProperties[\"flexWrap\"]> | undefined;\n inline?: boolean | undefined;\n center?: boolean | undefined;\n}\n\nexport interface FlexProps\n extends React.HTMLAttributes<HTMLElement>,\n FlexOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean | undefined;\n /**\n * Underlying HTML element or component\n */\n component?: React.ElementType | undefined;\n /**\n * Underlying HTML element or component\n */\n as?: React.ElementType | undefined;\n /**\n * Element placed between each child\n */\n divider?: React.ReactNode | undefined;\n /**\n * System-aware sx styling prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledFlexRoot = styled(\"div\", {\n name: \"ChellaaFlex\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"direction\" &&\n prop !== \"spacing\" &&\n prop !== \"gap\" &&\n prop !== \"alignItems\" &&\n prop !== \"align\" &&\n prop !== \"justifyContent\" &&\n prop !== \"justify\" &&\n prop !== \"flexWrap\" &&\n prop !== \"wrap\" &&\n prop !== \"inline\" &&\n prop !== \"center\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})<{ ownerState: FlexOwnerState }>(({ theme, ownerState }) => {\n const isCenter = ownerState.center ?? false;\n const styles: Record<string, any> = {};\n\n // 1. Responsive direction (if array or object)\n if (typeof ownerState.direction === \"object\") {\n Object.assign(\n styles,\n parseSx(theme, { flexDirection: ownerState.direction })\n );\n }\n\n // 2. Responsive gap / spacing\n const gapValue = ownerState.gap ?? ownerState.spacing;\n if (gapValue !== undefined) {\n Object.assign(styles, parseSx(theme, { gap: gapValue }));\n }\n\n // 3. Align & Justify (if not center shorthand)\n if (!isCenter) {\n const alignVal = ownerState.align ?? ownerState.alignItems;\n if (alignVal !== undefined) {\n Object.assign(styles, parseSx(theme, { alignItems: alignVal }));\n }\n\n const justifyVal = ownerState.justify ?? ownerState.justifyContent;\n if (justifyVal !== undefined) {\n Object.assign(styles, parseSx(theme, { justifyContent: justifyVal }));\n }\n }\n\n // 4. Wrapping\n const wrapVal = ownerState.wrap ?? ownerState.flexWrap;\n if (wrapVal !== undefined) {\n Object.assign(styles, parseSx(theme, { flexWrap: wrapVal }));\n }\n\n return styles;\n});\n\n/**\n * 1D Flexbox layout container defaulting to horizontal row flow with convenient\n * shorthands: `center`, `inline`, `align`, `justify`, `wrap`, and `gap`.\n *\n * @example\n * <Flex center gap={2}>\n * <Avatar />\n * <Text>User Name</Text>\n * </Flex>\n */\nexport const Flex = React.forwardRef<HTMLElement, FlexProps>(\n function Flex(props, ref) {\n const {\n asChild = false,\n component,\n as,\n direction = \"row\",\n spacing,\n gap,\n alignItems,\n align,\n justifyContent,\n justify,\n flexWrap,\n wrap,\n inline = false,\n center = false,\n divider,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const ownerState: FlexOwnerState = {\n direction,\n spacing,\n gap,\n alignItems,\n align,\n justifyContent,\n justify,\n flexWrap,\n wrap,\n inline,\n center,\n };\n\n const isSimpleDirection = typeof direction === \"string\";\n\n const flexClassName = classNames(\n \"cl-flex\",\n inline && \"cl-flex--inline\",\n center && \"cl-flex--center\",\n isSimpleDirection && `cl-flex--${direction}`,\n className\n );\n\n const targetTag = component || as;\n\n let renderedChildren = children;\n if (divider && !asChild) {\n const validChildren = React.Children.toArray(children).filter(\n React.isValidElement\n );\n renderedChildren = validChildren.reduce<React.ReactNode[]>(\n (acc, child, index) => {\n acc.push(child);\n if (index < validChildren.length - 1) {\n acc.push(\n React.isValidElement(divider)\n ? React.cloneElement(divider as React.ReactElement, {\n key: `flex-divider-${index}`,\n })\n : <span key={`flex-divider-${index}`}>{divider}</span>\n );\n }\n return acc;\n },\n []\n );\n }\n\n if (asChild) {\n return (\n <StyledFlexRoot\n as={Slot}\n ref={ref as any}\n className={flexClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {renderedChildren}\n </StyledFlexRoot>\n );\n }\n\n if (targetTag) {\n return (\n <StyledFlexRoot\n as={targetTag}\n ref={ref as any}\n className={flexClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {renderedChildren}\n </StyledFlexRoot>\n );\n }\n\n return (\n <StyledFlexRoot\n ref={ref as any}\n className={flexClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {renderedChildren}\n </StyledFlexRoot>\n );\n }\n);\n\nFlex.displayName = \"Flex\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport type { BreakpointKey } from \"../../theme/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport interface ContainerOwnerState {\n maxWidth?: BreakpointKey | false | undefined;\n fixed?: boolean | undefined;\n disableGutters?: boolean | undefined;\n}\n\nexport interface ContainerProps\n extends React.HTMLAttributes<HTMLElement>,\n ContainerOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType;\n /**\n * The underlying HTML element or component\n */\n as?: React.ElementType;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledContainerRoot = styled(\"div\", {\n name: \"ChellaaContainer\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"maxWidth\" &&\n prop !== \"fixed\" &&\n prop !== \"disableGutters\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Centered responsive max-width container with fluid gutters.\n *\n * @example\n * <Container maxWidth=\"md\">\n * <Typography variant=\"h1\">Header</Typography>\n * </Container>\n */\nexport const Container = React.forwardRef<HTMLElement, ContainerProps>(\n function Container(props, ref) {\n const {\n asChild = false,\n component,\n as,\n maxWidth = \"lg\",\n fixed = false,\n disableGutters = false,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const containerClassName = classNames(\n \"cl-container\",\n disableGutters && \"cl-container--disable-gutters\",\n fixed && \"cl-container--fixed\",\n maxWidth !== false && `cl-container--${maxWidth}`,\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <StyledContainerRoot\n as={Slot}\n ref={ref as any}\n className={containerClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledContainerRoot>\n );\n }\n\n if (targetTag) {\n return (\n <StyledContainerRoot\n as={targetTag}\n ref={ref as any}\n className={containerClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledContainerRoot>\n );\n }\n\n return (\n <StyledContainerRoot\n ref={ref as any}\n className={containerClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledContainerRoot>\n );\n }\n);\n\nContainer.displayName = \"Container\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport type { CSSProperties } from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { parseSx } from \"../../system/sx\";\nimport type { ResponsiveValue, SxProps } from \"../../system/types\";\nimport type { BreakpointKey } from \"../../theme/types\";\nimport { breakpointKeys } from \"../../theme/breakpoints\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type GridSize = boolean | \"auto\" | number;\nexport type GridWrap = \"nowrap\" | \"wrap\" | \"wrap-reverse\";\nexport type GridDirection = \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\n\nexport interface GridOwnerState {\n container?: boolean | undefined;\n item?: boolean | undefined;\n columns?: number | undefined;\n spacing?: ResponsiveValue<number | string> | undefined;\n rowSpacing?: ResponsiveValue<number | string> | undefined;\n columnSpacing?: ResponsiveValue<number | string> | undefined;\n direction?: ResponsiveValue<GridDirection> | undefined;\n wrap?: GridWrap | undefined;\n alignItems?: ResponsiveValue<CSSProperties[\"alignItems\"]> | undefined;\n justifyContent?: ResponsiveValue<CSSProperties[\"justifyContent\"]> | undefined;\n xs?: GridSize | undefined;\n sm?: GridSize | undefined;\n md?: GridSize | undefined;\n lg?: GridSize | undefined;\n xl?: GridSize | undefined;\n}\n\nexport interface GridProps\n extends React.HTMLAttributes<HTMLElement>,\n GridOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType;\n /**\n * The underlying HTML element or component\n */\n as?: React.ElementType;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nfunction generateGridSizeStyles(\n size: GridSize,\n columns: number = 12\n): Record<string, any> {\n if (size === true) {\n return {\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: \"100%\",\n };\n }\n\n if (size === \"auto\") {\n return {\n flexBasis: \"auto\",\n flexGrow: 0,\n maxWidth: \"none\",\n };\n }\n\n if (typeof size === \"number\") {\n const widthPercentage = `${Math.round((size / columns) * 10e7) / 10e5}%`;\n return {\n flexBasis: widthPercentage,\n flexGrow: 0,\n maxWidth: widthPercentage,\n };\n }\n\n return {};\n}\n\nconst StyledGridRoot = styled(\"div\", {\n name: \"ChellaaGrid\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"container\" &&\n prop !== \"item\" &&\n prop !== \"columns\" &&\n prop !== \"spacing\" &&\n prop !== \"rowSpacing\" &&\n prop !== \"columnSpacing\" &&\n prop !== \"direction\" &&\n prop !== \"wrap\" &&\n prop !== \"alignItems\" &&\n prop !== \"justifyContent\" &&\n prop !== \"xs\" &&\n prop !== \"sm\" &&\n prop !== \"md\" &&\n prop !== \"lg\" &&\n prop !== \"xl\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})<{ ownerState: GridOwnerState }>(({ theme, ownerState }) => {\n const styles: Record<string, any> = {};\n const columns = ownerState.columns ?? 12;\n\n // 1. Container responsive styles\n if (ownerState.container) {\n if (typeof ownerState.direction === \"object\") {\n Object.assign(\n styles,\n parseSx(theme, { flexDirection: ownerState.direction })\n );\n }\n\n if (ownerState.spacing !== undefined) {\n Object.assign(styles, parseSx(theme, { gap: ownerState.spacing }));\n }\n if (ownerState.rowSpacing !== undefined) {\n Object.assign(styles, parseSx(theme, { rowGap: ownerState.rowSpacing }));\n }\n if (ownerState.columnSpacing !== undefined) {\n Object.assign(\n styles,\n parseSx(theme, { columnGap: ownerState.columnSpacing })\n );\n }\n if (ownerState.alignItems !== undefined) {\n Object.assign(\n styles,\n parseSx(theme, { alignItems: ownerState.alignItems })\n );\n }\n if (ownerState.justifyContent !== undefined) {\n Object.assign(\n styles,\n parseSx(theme, { justifyContent: ownerState.justifyContent })\n );\n }\n }\n\n // 2. Item sizing across breakpoints\n const bpSizes: Record<BreakpointKey, GridSize | undefined> = {\n xs: ownerState.xs,\n sm: ownerState.sm,\n md: ownerState.md,\n lg: ownerState.lg,\n xl: ownerState.xl,\n };\n\n for (const bp of breakpointKeys) {\n const size = bpSizes[bp];\n if (size !== undefined) {\n const sizeStyles = generateGridSizeStyles(size, columns);\n if (bp === \"xs\") {\n Object.assign(styles, sizeStyles);\n } else {\n const media = theme.breakpoints.up(bp);\n styles[media] = {\n ...(styles[media] || {}),\n ...sizeStyles,\n };\n }\n }\n }\n\n return styles;\n});\n\n/**\n * Material 12-column responsive layout grid.\n *\n * @example\n * <Grid container spacing={2}>\n * <Grid item xs={12} md={6}>Item 1</Grid>\n * <Grid item xs={12} md={6}>Item 2</Grid>\n * </Grid>\n */\nexport const Grid = React.forwardRef<HTMLElement, GridProps>(\n function Grid(props, ref) {\n const {\n asChild = false,\n component,\n as,\n container = false,\n item = false,\n columns = 12,\n spacing,\n rowSpacing,\n columnSpacing,\n direction = \"row\",\n wrap = \"wrap\",\n alignItems,\n justifyContent,\n xs,\n sm,\n md,\n lg,\n xl,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const ownerState: GridOwnerState = {\n container,\n item,\n columns,\n spacing,\n rowSpacing,\n columnSpacing,\n direction,\n wrap,\n alignItems,\n justifyContent,\n xs,\n sm,\n md,\n lg,\n xl,\n };\n\n const isSimpleDirection = typeof direction === \"string\";\n\n const gridClassName = classNames(\n \"cl-grid\",\n container && \"cl-grid--container\",\n item && \"cl-grid--item\",\n wrap && `cl-grid--${wrap}`,\n isSimpleDirection && `cl-grid--direction-${direction}`,\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <StyledGridRoot\n as={Slot}\n ref={ref as any}\n className={gridClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledGridRoot>\n );\n }\n\n if (targetTag) {\n return (\n <StyledGridRoot\n as={targetTag}\n ref={ref as any}\n className={gridClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledGridRoot>\n );\n }\n\n return (\n <StyledGridRoot\n ref={ref as any}\n className={gridClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledGridRoot>\n );\n }\n);\n\nGrid.displayName = \"Grid\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type DividerOrientation = \"horizontal\" | \"vertical\";\nexport type DividerVariant = \"fullWidth\" | \"inset\" | \"middle\";\nexport type DividerTextAlign = \"center\" | \"left\" | \"right\";\nexport type DividerLineStyle = \"solid\" | \"dashed\" | \"dotted\";\n\nexport interface DividerOwnerState {\n orientation?: DividerOrientation | undefined;\n variant?: DividerVariant | undefined;\n lineStyle?: DividerLineStyle | undefined;\n flexItem?: boolean | undefined;\n light?: boolean | undefined;\n textAlign?: DividerTextAlign | undefined;\n hasChildren?: boolean | undefined;\n}\n\nexport interface DividerProps\n extends React.HTMLAttributes<HTMLElement>,\n DividerOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType;\n /**\n * The underlying HTML element or component\n */\n as?: React.ElementType;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledDividerRoot = styled(\"hr\", {\n name: \"ChellaaDivider\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"orientation\" &&\n prop !== \"variant\" &&\n prop !== \"lineStyle\" &&\n prop !== \"flexItem\" &&\n prop !== \"light\" &&\n prop !== \"textAlign\" &&\n prop !== \"hasChildren\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Divider visual separator for grouping, lists, toolbars, and labeled sections.\n *\n * @example\n * <Divider />\n * <Divider>OR</Divider>\n * <Divider orientation=\"vertical\" flexItem />\n */\nexport const Divider = React.forwardRef<HTMLElement, DividerProps>(\n function Divider(props, ref) {\n const {\n asChild = false,\n component,\n as,\n orientation = \"horizontal\",\n variant = \"fullWidth\",\n lineStyle = \"solid\",\n flexItem = false,\n light = false,\n textAlign = \"center\",\n className,\n style,\n sx,\n children,\n role: roleProp,\n ...rest\n } = props;\n\n const hasChildren = Boolean(children);\n\n const dividerClassName = classNames(\n \"cl-divider\",\n `cl-divider--${orientation}`,\n variant !== \"fullWidth\" && `cl-divider--${variant}`,\n lineStyle !== \"solid\" && `cl-divider--${lineStyle}`,\n flexItem && \"cl-divider--flex-item\",\n light && \"cl-divider--light\",\n hasChildren && \"cl-divider--with-children\",\n hasChildren && `cl-divider--align-${textAlign}`,\n className\n );\n\n // Determine default semantic tag\n let defaultTag: React.ElementType = \"hr\";\n if (orientation === \"vertical\" || hasChildren) {\n defaultTag = \"div\";\n }\n\n const targetTag = component || as || defaultTag;\n\n // Accessibility attributes\n const isNativeHr = targetTag === \"hr\";\n const role = roleProp || (isNativeHr ? undefined : \"separator\");\n const ariaOrientation =\n isNativeHr\n ? undefined\n : orientation === \"vertical\"\n ? \"vertical\"\n : undefined;\n\n if (asChild) {\n return (\n <StyledDividerRoot\n as={Slot}\n ref={ref as any}\n className={dividerClassName}\n style={style}\n sx={sx}\n role={role}\n aria-orientation={ariaOrientation}\n {...rest}\n >\n {hasChildren ? (\n <span className=\"cl-divider__wrapper ChellaaDivider-wrapper\">{children}</span>\n ) : (\n children\n )}\n </StyledDividerRoot>\n );\n }\n\n return (\n <StyledDividerRoot\n as={targetTag}\n ref={ref as any}\n className={dividerClassName}\n style={style}\n sx={sx}\n role={role}\n aria-orientation={ariaOrientation}\n {...rest}\n >\n {hasChildren ? (\n <span className=\"cl-divider__wrapper ChellaaDivider-wrapper\">{children}</span>\n ) : null}\n </StyledDividerRoot>\n );\n }\n);\n\nDivider.displayName = \"Divider\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport type { TypographyVariant, ChellaaTheme } from \"../../theme/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type TypographyAlign = \"inherit\" | \"left\" | \"center\" | \"right\" | \"justify\";\n\nexport interface TypographyOwnerState {\n variant?: TypographyVariant | undefined;\n align?: TypographyAlign | undefined;\n color?: string | undefined;\n gutterBottom?: boolean | undefined;\n noWrap?: boolean | undefined;\n lineClamp?: number | undefined;\n}\n\nexport interface TypographyProps\n extends React.HTMLAttributes<HTMLElement>,\n TypographyOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType;\n /**\n * Alias for component\n */\n as?: React.ElementType;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst defaultVariantMapping: Record<TypographyVariant, React.ElementType> = {\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n h5: \"h5\",\n h6: \"h6\",\n subtitle1: \"h6\",\n subtitle2: \"h6\",\n body1: \"p\",\n body2: \"p\",\n button: \"span\",\n caption: \"span\",\n overline: \"span\",\n};\n\nexport function resolveTypographyColor(\n theme: ChellaaTheme,\n color?: string\n): string | undefined {\n if (!color || color === \"inherit\" || color === \"currentColor\") {\n return color;\n }\n\n // Check direct palette main colors (primary, secondary, error, warning, info, success)\n const paletteAny = theme.palette as Record<string, any>;\n if (paletteAny[color] && typeof paletteAny[color].main === \"string\") {\n return paletteAny[color].main;\n }\n\n // Check dotted paths (text.primary, text.secondary, background.paper, etc.)\n if (color.includes(\".\")) {\n const parts = color.split(\".\");\n let current: any = theme.palette;\n for (const part of parts) {\n if (current && typeof current === \"object\" && part in current) {\n current = current[part];\n } else {\n current = undefined;\n break;\n }\n }\n if (typeof current === \"string\") {\n return current;\n }\n }\n\n return color;\n}\n\nconst StyledTypographyRoot = styled(\"span\", {\n name: \"ChellaaTypography\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"variant\" &&\n prop !== \"align\" &&\n prop !== \"color\" &&\n prop !== \"gutterBottom\" &&\n prop !== \"noWrap\" &&\n prop !== \"lineClamp\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})<{ color?: string }>(({ theme, color }) => {\n if (color) {\n return {\n color: resolveTypographyColor(theme, color),\n };\n }\n return {};\n});\n\n/**\n * Foundational Typography component supporting all Material Design 3 scale variants,\n * truncation, line clamping, and semantic element delegation.\n *\n * @example\n * <Typography variant=\"h1\">Display Header</Typography>\n * <Typography variant=\"body1\" color=\"text.secondary\">Body text</Typography>\n * <Typography noWrap>Single line truncated text</Typography>\n */\nexport const Typography = React.forwardRef<HTMLElement, TypographyProps>(\n function Typography(props, ref) {\n const {\n asChild = false,\n component,\n as,\n variant = \"body1\",\n align = \"inherit\",\n color,\n gutterBottom = false,\n noWrap = false,\n lineClamp,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const typographyClassName = classNames(\n \"cl-typography\",\n `cl-typography--${variant}`,\n align && align !== \"inherit\" && `cl-typography--align-${align}`,\n gutterBottom && \"cl-typography--gutter-bottom\",\n noWrap && \"cl-typography--no-wrap\",\n lineClamp !== undefined && lineClamp > 0 && \"cl-typography--line-clamp\",\n className\n );\n\n const inlineStyle: React.CSSProperties = {\n ...(lineClamp !== undefined && lineClamp > 0\n ? ({ WebkitLineClamp: lineClamp } as React.CSSProperties)\n : {}),\n ...style,\n };\n\n const targetTag =\n component || as || defaultVariantMapping[variant] || \"span\";\n\n if (asChild) {\n return (\n <StyledTypographyRoot\n as={Slot}\n ref={ref as any}\n className={typographyClassName}\n style={inlineStyle}\n color={color}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledTypographyRoot>\n );\n }\n\n return (\n <StyledTypographyRoot\n as={targetTag}\n ref={ref as any}\n className={typographyClassName}\n style={inlineStyle}\n color={color}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledTypographyRoot>\n );\n }\n);\n\nTypography.displayName = \"Typography\";\n","import * as React from \"react\";\nimport { Typography, type TypographyProps } from \"./Typography\";\nimport type { TypographyVariant } from \"../../theme/types\";\n\nexport type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface HeadingProps extends Omit<TypographyProps, \"variant\"> {\n /**\n * Semantic heading level (1 to 6).\n * Determines both default HTML tag (h1..h6) and typography scale variant unless overridden.\n * @default 2\n */\n level?: HeadingLevel | undefined;\n /**\n * Optional visual scale variant to decouple styling from heading level.\n */\n variant?: TypographyVariant | undefined;\n}\n\n/**\n * Ergonomic semantic heading primitive.\n *\n * @example\n * <Heading level={1}>Page Title</Heading>\n * <Heading level={2} variant=\"h4\">Visually smaller Section Title</Heading>\n */\nexport const Heading = React.forwardRef<HTMLElement, HeadingProps>(\n function Heading(props, ref) {\n const { level = 2, variant, component, ...rest } = props;\n\n const levelTag = `h${level}` as \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n const resolvedVariant = variant || levelTag;\n const resolvedComponent = component || levelTag;\n\n return (\n <Typography\n ref={ref}\n component={resolvedComponent}\n variant={resolvedVariant}\n {...rest}\n />\n );\n }\n);\n\nHeading.displayName = \"Heading\";\n","import * as React from \"react\";\nimport { Typography, type TypographyProps } from \"./Typography\";\nimport type { TypographyVariant } from \"../../theme/types\";\n\nexport type TextSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport interface TextProps extends TypographyProps {\n /**\n * Shorthand text size mapping to theme typographic scale:\n * - \"xs\": caption (12px)\n * - \"sm\": body2 (14px)\n * - \"md\": body1 (16px)\n * - \"lg\": subtitle1 (16px/medium)\n * - \"xl\": h6 (20px)\n */\n size?: TextSize | undefined;\n /**\n * If true, renders as block element ('div' or 'p'). Otherwise renders as inline 'span'.\n * @default false\n */\n block?: boolean | undefined;\n}\n\nconst sizeToVariant: Record<TextSize, TypographyVariant> = {\n xs: \"caption\",\n sm: \"body2\",\n md: \"body1\",\n lg: \"subtitle1\",\n xl: \"h6\",\n};\n\n/**\n * Ergonomic inline or block textual primitive.\n *\n * @example\n * <Text size=\"sm\" color=\"text.secondary\">Secondary caption</Text>\n * <Text block noWrap>Single line block item</Text>\n */\nexport const Text = React.forwardRef<HTMLElement, TextProps>(\n function Text(props, ref) {\n const { size, variant, block = false, component, ...rest } = props;\n\n const resolvedVariant = variant || (size ? sizeToVariant[size] : \"body1\");\n const defaultTag = block ? \"p\" : \"span\";\n const resolvedComponent = component || defaultTag;\n\n return (\n <Typography\n ref={ref}\n component={resolvedComponent}\n variant={resolvedVariant}\n {...rest}\n />\n );\n }\n);\n\nText.displayName = \"Text\";\n","import * as React from \"react\";\nimport { Typography, type TypographyProps } from \"./Typography\";\n\nexport interface ParagraphProps extends TypographyProps {\n /**\n * Shorthand spacing multiplier for bottom margin (defaults to standard gutterBottom).\n */\n spacing?: number | string | undefined;\n}\n\n/**\n * Ergonomic paragraph block primitive with standard reading margins.\n *\n * @example\n * <Paragraph>\n * This is standard paragraph text with built-in reading spacing.\n * </Paragraph>\n */\nexport const Paragraph = React.forwardRef<HTMLElement, ParagraphProps>(\n function Paragraph(props, ref) {\n const { component = \"p\", variant = \"body1\", gutterBottom = true, ...rest } = props;\n\n return (\n <Typography\n ref={ref}\n component={component}\n variant={variant}\n gutterBottom={gutterBottom}\n {...rest}\n />\n );\n }\n);\n\nParagraph.displayName = \"Paragraph\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type CodeColorScheme = \"default\" | \"primary\" | \"secondary\";\n\nexport interface CodeOwnerState {\n colorScheme?: CodeColorScheme | undefined;\n}\n\nexport interface CodeProps\n extends React.HTMLAttributes<HTMLElement>,\n CodeOwnerState {\n asChild?: boolean | undefined;\n component?: React.ElementType | undefined;\n as?: React.ElementType | undefined;\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledCodeRoot = styled(\"code\", {\n name: \"ChellaaCode\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"colorScheme\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Inline monospace code chip primitive for identifiers, filenames, and CLI snippets.\n *\n * @example\n * <Text>Run <Code>npm install</Code> to install dependencies.</Text>\n * <Code colorScheme=\"primary\">package.json</Code>\n */\nexport const Code = React.forwardRef<HTMLElement, CodeProps>(\n function Code(props, ref) {\n const {\n asChild = false,\n component = \"code\",\n as,\n colorScheme = \"default\",\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const codeClassName = classNames(\n \"cl-code\",\n colorScheme !== \"default\" && `cl-code--${colorScheme}`,\n className\n );\n\n const targetTag = component || as || \"code\";\n\n if (asChild) {\n return (\n <StyledCodeRoot\n as={Slot}\n ref={ref as any}\n className={codeClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCodeRoot>\n );\n }\n\n return (\n <StyledCodeRoot\n as={targetTag}\n ref={ref as any}\n className={codeClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCodeRoot>\n );\n }\n);\n\nCode.displayName = \"Code\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type KbdSize = \"sm\" | \"md\" | \"lg\";\nexport type KbdVariant = \"outline\" | \"subtle\" | \"solid\";\n\nexport type KbdModifier =\n | \"command\"\n | \"cmd\"\n | \"shift\"\n | \"option\"\n | \"alt\"\n | \"control\"\n | \"ctrl\"\n | \"enter\"\n | \"escape\"\n | \"esc\"\n | \"tab\"\n | \"backspace\"\n | \"delete\"\n | \"del\"\n | \"up\"\n | \"down\"\n | \"left\"\n | \"right\";\n\nexport const MODIFIER_SYMBOLS: Record<KbdModifier, string> = {\n command: \"⌘\",\n cmd: \"⌘\",\n shift: \"⇧\",\n option: \"⌥\",\n alt: \"⌥\",\n control: \"⌃\",\n ctrl: \"⌃\",\n enter: \"↵\",\n escape: \"Esc\",\n esc: \"Esc\",\n tab: \"⇥\",\n backspace: \"⌫\",\n delete: \"⌦\",\n del: \"⌦\",\n up: \"↑\",\n down: \"↓\",\n left: \"←\",\n right: \"→\",\n};\n\nexport interface KbdOwnerState {\n size?: KbdSize | undefined;\n variant?: KbdVariant | undefined;\n modifier?: KbdModifier | undefined;\n}\n\nexport interface KbdProps\n extends React.HTMLAttributes<HTMLElement>,\n KbdOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType;\n /**\n * Alias for component\n */\n as?: React.ElementType;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledKbdRoot = styled(\"kbd\", {\n name: \"ChellaaKbd\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"size\" &&\n prop !== \"variant\" &&\n prop !== \"modifier\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Tactile keyboard shortcut keycap primitive representing user input keystrokes.\n *\n * @example\n * <Kbd>Ctrl</Kbd> + <Kbd>K</Kbd>\n * <Kbd modifier=\"command\" />\n * <Kbd size=\"sm\" variant=\"subtle\">Esc</Kbd>\n */\nexport const Kbd = React.forwardRef<HTMLElement, KbdProps>(\n function Kbd(props, ref) {\n const {\n asChild = false,\n component = \"kbd\",\n as,\n size = \"md\",\n variant = \"outline\",\n modifier,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const kbdClassName = classNames(\n \"cl-kbd\",\n `cl-kbd--${size}`,\n `cl-kbd--${variant}`,\n className\n );\n\n const targetTag = component || as || \"kbd\";\n\n // Resolve content: children takes precedence, then modifier symbol\n const content = children ?? (modifier ? MODIFIER_SYMBOLS[modifier] ?? modifier : null);\n\n if (asChild) {\n return (\n <StyledKbdRoot\n as={Slot}\n ref={ref as any}\n className={kbdClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {content}\n </StyledKbdRoot>\n );\n }\n\n return (\n <StyledKbdRoot\n as={targetTag}\n ref={ref as any}\n className={kbdClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {content}\n </StyledKbdRoot>\n );\n }\n);\n\nKbd.displayName = \"Kbd\";\n","import * as React from \"react\";\n\nexport interface FormFieldContextValue {\n id: string;\n name?: string | undefined;\n required?: boolean | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n error?: boolean | undefined;\n labelId: string;\n helperTextId: string;\n errorMessageId: string;\n hasHelperText: boolean;\n hasErrorMessage: boolean;\n setHasHelperText: (has: boolean) => void;\n setHasErrorMessage: (has: boolean) => void;\n}\n\nexport const FormFieldContext = React.createContext<\n FormFieldContextValue | undefined\n>(undefined);\n\n/**\n * Hook to consume form field state, IDs, and validation flags.\n * Returns undefined if used outside a <FormField>.\n */\nexport function useFormField(): FormFieldContextValue | undefined {\n return React.useContext(FormFieldContext);\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport type {\n InputProps,\n InputOwnerState,\n InputVariant,\n InputSize,\n} from \"./Input.types\";\n\nexport type { InputProps, InputOwnerState, InputVariant, InputSize };\n\n/**\n * Headless raw input primitive for backward compatibility.\n */\nexport const InputBase = React.forwardRef<\n HTMLInputElement,\n React.InputHTMLAttributes<HTMLInputElement> & { ownerState?: InputOwnerState }\n>(function InputBase({ className, ownerState: _ownerState, ...props }, ref) {\n return (\n <input\n ref={ref}\n className={classNames(\"cl-input__input\", className)}\n {...props}\n />\n );\n});\n\nInputBase.displayName = \"InputBase\";\n\nconst StyledInputRoot = styled(\"div\", {\n name: \"ChellaaInput\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"variant\" &&\n prop !== \"size\" &&\n prop !== \"fullWidth\" &&\n prop !== \"error\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"hasStartAdornment\" &&\n prop !== \"hasEndAdornment\" &&\n prop !== \"focused\" &&\n prop !== \"asChild\" &&\n prop !== \"component\" &&\n prop !== \"ownerState\",\n})({});\n\n/**\n * Chellaa React Input component.\n *\n * Fundamental single-line text entry primitive with Material Design 3 surface variants,\n * precompiled CSS cascade layers (@layer cl-components), zero-runtime static styling,\n * dynamic sx override bridge, and accessible form integration.\n */\nexport const Input = React.forwardRef<HTMLDivElement, InputProps>(\n function Input(props, ref) {\n const formField = useFormField();\n\n const {\n asChild = false,\n component,\n as,\n variant = \"outlined\",\n size = \"md\",\n fullWidth = false,\n error: errorProp,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n required: requiredProp,\n startAdornment,\n endAdornment,\n clearable = false,\n onClear,\n inputRef: inputRefProp,\n value: valueProp,\n defaultValue,\n onChange,\n type = \"text\",\n id: idProp,\n className,\n style,\n sx,\n inputProps,\n \"aria-describedby\": ariaDescribedByProp,\n ...restInputProps\n } = props;\n\n const id = idProp ?? formField?.id;\n const error = errorProp ?? formField?.error ?? false;\n const disabled = disabledProp ?? formField?.disabled ?? false;\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\n const required = requiredProp ?? formField?.required ?? false;\n\n const ariaDescribedBy = [\n ariaDescribedByProp,\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\n formField?.hasHelperText ? formField.helperTextId : null,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n // Value tracking for clearable button\n const [internalValue, setInternalValue] = React.useState<string>(() => {\n if (valueProp !== undefined) return String(valueProp);\n if (defaultValue !== undefined) return String(defaultValue);\n return \"\";\n });\n\n const isControlled = valueProp !== undefined;\n const currentValue = isControlled ? String(valueProp ?? \"\") : internalValue;\n\n const innerInputRef = React.useRef<HTMLInputElement | null>(null);\n\n const handleInputRef = React.useCallback(\n (node: HTMLInputElement | null) => {\n innerInputRef.current = node;\n if (typeof inputRefProp === \"function\") {\n inputRefProp(node);\n } else if (inputRefProp && \"current\" in inputRefProp) {\n (inputRefProp as React.MutableRefObject<HTMLInputElement | null>).current = node;\n }\n },\n [inputRefProp]\n );\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalValue(event.target.value);\n }\n onChange?.(event);\n };\n\n const handleClear = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n if (!isControlled) {\n setInternalValue(\"\");\n }\n if (innerInputRef.current) {\n innerInputRef.current.value = \"\";\n const event = new Event(\"input\", { bubbles: true });\n innerInputRef.current.dispatchEvent(event);\n innerInputRef.current.focus();\n }\n onClear?.();\n };\n\n const handleWrapperClick = () => {\n if (innerInputRef.current && document.activeElement !== innerInputRef.current) {\n innerInputRef.current.focus();\n }\n };\n\n const showClear = clearable && !disabled && !readOnly && currentValue.length > 0;\n\n const clearButton = showClear ? (\n <button\n type=\"button\"\n className=\"cl-input__clear\"\n aria-label=\"Clear input\"\n onClick={handleClear}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n ) : null;\n\n const inputWrapperClassName = classNames(\n \"cl-input\",\n `cl-input--${variant}`,\n `cl-input--${size}`,\n fullWidth && \"cl-input--full-width\",\n error && \"cl-input--error\",\n disabled && \"cl-input--disabled\",\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <StyledInputRoot\n as={Slot}\n ref={ref as React.Ref<HTMLDivElement>}\n className={inputWrapperClassName}\n style={style}\n sx={sx}\n onClick={handleWrapperClick}\n >\n {startAdornment}\n <input\n ref={handleInputRef}\n id={id}\n type={type}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n aria-describedby={ariaDescribedBy}\n value={valueProp}\n defaultValue={defaultValue}\n onChange={handleChange}\n aria-invalid={error ? true : undefined}\n className=\"cl-input__input\"\n {...inputProps}\n {...restInputProps}\n />\n {clearButton}\n {endAdornment}\n </StyledInputRoot>\n );\n }\n\n return (\n <StyledInputRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLDivElement>}\n className={inputWrapperClassName}\n style={style}\n sx={sx}\n onClick={handleWrapperClick}\n >\n {startAdornment}\n <input\n ref={handleInputRef}\n id={id}\n type={type}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n aria-describedby={ariaDescribedBy}\n value={valueProp}\n defaultValue={defaultValue}\n onChange={handleChange}\n aria-invalid={error ? true : undefined}\n className=\"cl-input__input\"\n {...inputProps}\n {...restInputProps}\n />\n {clearButton}\n {endAdornment}\n </StyledInputRoot>\n );\n }\n);\n\nInput.displayName = \"Input\";\n","import * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Input, type InputProps } from \"./Input\";\n\nexport interface TextFieldProps extends InputProps {\n /**\n * The label text displayed above the input.\n */\n label?: React.ReactNode | undefined;\n /**\n * Explanatory helper text displayed below the input.\n */\n helperText?: React.ReactNode | undefined;\n /**\n * Error message displayed below the input when error is true.\n */\n errorMessage?: React.ReactNode | undefined;\n /**\n * If true, displays a required asterisk next to the label and marks input required.\n * @default false\n */\n required?: boolean | undefined;\n}\n\nconst StyledTextFieldRoot = styled(\"div\", {\n name: \"ChellaaTextField\",\n slot: \"Root\",\n shouldForwardProp: (prop) => prop !== \"fullWidth\",\n})<{ fullWidth?: boolean }>(({ fullWidth }) => ({\n display: \"inline-flex\",\n flexDirection: \"column\",\n position: \"relative\",\n width: fullWidth ? \"100%\" : \"auto\",\n verticalAlign: \"top\",\n}));\n\nconst StyledLabel = styled(\"label\")<{ required?: boolean; error?: boolean }>(\n ({ theme, error }) => ({\n display: \"block\",\n fontSize: \"0.875rem\",\n fontWeight: 500,\n lineHeight: 1.4,\n marginBottom: theme.spacing(0.75),\n color: error ? theme.palette.error.main : theme.palette.text.primary,\n userSelect: \"none\",\n \"& .ChellaaTextField-requiredAsterisk\": {\n color: theme.palette.error.main,\n marginLeft: 4,\n },\n })\n);\n\nconst StyledHelperText = styled(\"p\")<{ error?: boolean }>(\n ({ theme, error }) => ({\n fontSize: \"0.75rem\",\n lineHeight: 1.4,\n margin: 0,\n marginTop: theme.spacing(0.5),\n color: error ? theme.palette.error.main : theme.palette.text.secondary,\n })\n);\n\n/**\n * Enterprise composite form control combining label, input, helper text, and validation messaging.\n *\n * @example\n * <TextField\n * label=\"Email Address\"\n * type=\"email\"\n * placeholder=\"user@example.com\"\n * helperText=\"We will never share your email.\"\n * required\n * />\n */\nexport const TextField = React.forwardRef<HTMLDivElement, TextFieldProps>(\n function TextField(props, ref) {\n const {\n id: idProp,\n label,\n helperText,\n errorMessage,\n error = false,\n required = false,\n fullWidth = false,\n className,\n style,\n sx,\n ...inputProps\n } = props;\n\n const generatedId = React.useId();\n const inputId = idProp || generatedId;\n const helperId = `${inputId}-helper`;\n\n const activeHelperContent = error && errorMessage ? errorMessage : helperText;\n\n return (\n <StyledTextFieldRoot\n ref={ref}\n fullWidth={fullWidth}\n className={className}\n style={style}\n sx={sx}\n >\n {label && (\n <StyledLabel htmlFor={inputId} error={error} required={required}>\n {label}\n {required && <span className=\"ChellaaTextField-requiredAsterisk\">*</span>}\n </StyledLabel>\n )}\n\n <Input\n id={inputId}\n error={error}\n required={required}\n fullWidth={fullWidth}\n aria-describedby={activeHelperContent ? helperId : undefined}\n {...inputProps}\n />\n\n {activeHelperContent && (\n <StyledHelperText id={helperId} error={error}>\n {activeHelperContent}\n </StyledHelperText>\n )}\n </StyledTextFieldRoot>\n );\n }\n);\n\nTextField.displayName = \"TextField\";\n","import * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\n\nexport interface InputAdornmentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Position of the adornment within the input track.\n */\n position: \"start\" | \"end\";\n /**\n * If true, prevents pointer events on the adornment (e.g. for purely decorative icons).\n * @default false\n */\n disablePointerEvents?: boolean | undefined;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledAdornmentRoot = styled(\"div\", {\n name: \"ChellaaInputAdornment\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"position\" && prop !== \"disablePointerEvents\",\n})<{ position: \"start\" | \"end\"; disablePointerEvents?: boolean }>(\n ({ theme, position, disablePointerEvents }) => ({\n display: \"flex\",\n height: \"100%\",\n maxHeight: \"2em\",\n alignItems: \"center\",\n justifyContent: \"center\",\n whiteSpace: \"nowrap\",\n color: theme.palette.text.secondary,\n marginLeft: position === \"end\" ? theme.spacing(1) : 0,\n marginRight: position === \"start\" ? theme.spacing(1) : 0,\n pointerEvents: disablePointerEvents ? \"none\" : \"auto\",\n userSelect: \"none\",\n })\n);\n\nexport const InputAdornment = React.forwardRef<\n HTMLDivElement,\n InputAdornmentProps\n>(function InputAdornment(props, ref) {\n const { position, disablePointerEvents = false, children, ...rest } = props;\n\n return (\n <StyledAdornmentRoot\n ref={ref}\n position={position}\n disablePointerEvents={disablePointerEvents}\n {...rest}\n >\n {children}\n </StyledAdornmentRoot>\n );\n});\n\nInputAdornment.displayName = \"InputAdornment\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport type {\n TextareaProps,\n TextareaOwnerState,\n TextareaVariant,\n TextareaSize,\n TextareaResize,\n} from \"./Textarea.types\";\n\nexport type {\n TextareaProps,\n TextareaOwnerState,\n TextareaVariant,\n TextareaSize,\n TextareaResize,\n};\n\nconst StyledTextareaContainer = styled(\"div\", {\n name: \"ChellaaTextarea\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"variant\" &&\n prop !== \"size\" &&\n prop !== \"fullWidth\" &&\n prop !== \"error\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"autoResize\" &&\n prop !== \"resize\" &&\n prop !== \"hasCount\" &&\n prop !== \"asChild\" &&\n prop !== \"component\" &&\n prop !== \"ownerState\",\n})({});\n\n/**\n * Multi-line plain text editing control with Material Design surface variants,\n * auto-expansion support, and character counter capabilities.\n */\nexport const Textarea = React.forwardRef<HTMLDivElement, TextareaProps>(\n function Textarea(props, ref) {\n const formField = useFormField();\n\n const {\n asChild = false,\n component,\n as,\n variant = \"outlined\",\n size = \"md\",\n fullWidth = false,\n error: errorProp,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n required: requiredProp,\n minRows = 3,\n maxRows,\n autoResize = false,\n resize = \"vertical\",\n showCount = false,\n maxLength,\n textareaRef: textareaRefProp,\n textareaProps = {},\n value: valueProp,\n defaultValue,\n onChange,\n id: idProp,\n className,\n style,\n sx,\n placeholder,\n name,\n rows,\n cols,\n autoFocus,\n onFocus,\n onBlur,\n onKeyDown,\n onKeyUp,\n \"aria-describedby\": ariaDescribedByProp,\n ...restContainerProps\n } = props;\n\n const id = idProp ?? formField?.id;\n const error = errorProp ?? formField?.error ?? false;\n const disabled = disabledProp ?? formField?.disabled ?? false;\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\n const required = requiredProp ?? formField?.required ?? false;\n\n const ariaDescribedBy = [\n ariaDescribedByProp,\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\n formField?.hasHelperText ? formField.helperTextId : null,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const [internalValue, setInternalValue] = React.useState<string>(() => {\n if (valueProp !== undefined) return String(valueProp);\n if (defaultValue !== undefined) return String(defaultValue);\n return \"\";\n });\n\n const isControlled = valueProp !== undefined;\n const currentValue = isControlled ? String(valueProp ?? \"\") : internalValue;\n\n const innerTextareaRef = React.useRef<HTMLTextAreaElement | null>(null);\n\n const handleTextareaRef = React.useCallback(\n (node: HTMLTextAreaElement | null) => {\n innerTextareaRef.current = node;\n if (typeof textareaRefProp === \"function\") {\n textareaRefProp(node);\n } else if (textareaRefProp && \"current\" in textareaRefProp) {\n (textareaRefProp as React.MutableRefObject<HTMLTextAreaElement | null>).current = node;\n }\n },\n [textareaRefProp]\n );\n\n // Auto-resize calculation\n React.useLayoutEffect(() => {\n if (!autoResize || !innerTextareaRef.current) return;\n\n const textarea = innerTextareaRef.current;\n textarea.style.height = \"auto\";\n\n const lineHeight = parseFloat(getComputedStyle(textarea).lineHeight) || 20;\n const minHeight = minRows * lineHeight;\n const maxHeight = maxRows ? maxRows * lineHeight : Infinity;\n\n const calculatedHeight = Math.min(\n Math.max(textarea.scrollHeight, minHeight),\n maxHeight\n );\n\n textarea.style.height = `${calculatedHeight}px`;\n textarea.style.overflowY =\n maxRows && textarea.scrollHeight > maxHeight ? \"auto\" : \"hidden\";\n }, [currentValue, autoResize, minRows, maxRows]);\n\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (!isControlled) {\n setInternalValue(event.target.value);\n }\n onChange?.(event);\n };\n\n const handleWrapperClick = () => {\n if (innerTextareaRef.current && document.activeElement !== innerTextareaRef.current) {\n innerTextareaRef.current.focus();\n }\n };\n\n const containerClassName = classNames(\n \"cl-textarea\",\n `cl-textarea--${variant}`,\n `cl-textarea--${size}`,\n fullWidth && \"cl-textarea--full-width\",\n error && \"cl-textarea--error\",\n disabled && \"cl-textarea--disabled\",\n className\n );\n\n const targetTag = component || as;\n\n const textareaStyle: React.CSSProperties = {\n resize: autoResize ? \"none\" : resize,\n };\n\n const countDisplay = showCount ? (\n <div className=\"cl-textarea__counter\" aria-live=\"polite\">\n {currentValue.length}\n {maxLength ? ` / ${maxLength}` : \"\"}\n </div>\n ) : null;\n\n if (asChild) {\n return (\n <StyledTextareaContainer\n as={Slot}\n ref={ref as React.Ref<HTMLDivElement>}\n className={containerClassName}\n style={style}\n sx={sx}\n onClick={handleWrapperClick}\n {...restContainerProps}\n >\n <textarea\n ref={handleTextareaRef}\n id={id}\n name={name}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? true : undefined}\n value={valueProp}\n defaultValue={defaultValue}\n onChange={handleChange}\n maxLength={maxLength}\n rows={rows ?? minRows}\n cols={cols}\n autoFocus={autoFocus}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n style={textareaStyle}\n className=\"cl-textarea__input\"\n {...textareaProps}\n />\n {countDisplay}\n </StyledTextareaContainer>\n );\n }\n\n return (\n <StyledTextareaContainer\n as={targetTag}\n ref={ref as React.Ref<HTMLDivElement>}\n className={containerClassName}\n style={style}\n sx={sx}\n onClick={handleWrapperClick}\n {...restContainerProps}\n >\n <textarea\n ref={handleTextareaRef}\n id={id}\n name={name}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? true : undefined}\n value={valueProp}\n defaultValue={defaultValue}\n onChange={handleChange}\n maxLength={maxLength}\n rows={rows ?? minRows}\n cols={cols}\n autoFocus={autoFocus}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n style={textareaStyle}\n className=\"cl-textarea__input\"\n {...textareaProps}\n />\n {countDisplay}\n </StyledTextareaContainer>\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { FormFieldContext, type FormFieldContextValue } from \"./FormFieldContext\";\n\nexport interface FormFieldProps extends React.HTMLAttributes<HTMLDivElement> {\n id?: string | undefined;\n name?: string | undefined;\n required?: boolean | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n error?: boolean | undefined;\n fullWidth?: boolean | undefined;\n asChild?: boolean | undefined;\n component?: React.ElementType | undefined;\n as?: React.ElementType | undefined;\n sx?: SxProps;\n children?: React.ReactNode | undefined;\n}\n\nconst StyledFormFieldRoot = styled(\"div\", {\n name: \"ChellaaFormField\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"fullWidth\" &&\n prop !== \"asChild\" &&\n prop !== \"component\" &&\n prop !== \"error\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\",\n})({});\n\n/**\n * Root form control container and accessibility context provider.\n * Automatically generates IDs and cascades validation states to child controls.\n *\n * @example\n * <FormField required error={hasError}>\n * <FormLabel>Email Address</FormLabel>\n * <Input type=\"email\" placeholder=\"alex@company.com\" />\n * <FormHelperText>We will never share your email.</FormHelperText>\n * <FormErrorMessage>Invalid email address.</FormErrorMessage>\n * </FormField>\n */\nexport const FormField = React.forwardRef<HTMLDivElement, FormFieldProps>(\n function FormField(props, ref) {\n const {\n id: idProp,\n name,\n required = false,\n disabled = false,\n readOnly = false,\n error = false,\n fullWidth = false,\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n ...rest\n } = props;\n\n const generatedId = React.useId();\n const id = idProp || generatedId;\n const labelId = `${id}-label`;\n const helperTextId = `${id}-helper`;\n const errorMessageId = `${id}-error`;\n\n const [hasHelperText, setHasHelperText] = React.useState(false);\n const [hasErrorMessage, setHasErrorMessage] = React.useState(false);\n\n const contextValue: FormFieldContextValue = React.useMemo(\n () => ({\n id,\n name,\n required,\n disabled,\n readOnly,\n error,\n labelId,\n helperTextId,\n errorMessageId,\n hasHelperText,\n hasErrorMessage,\n setHasHelperText,\n setHasErrorMessage,\n }),\n [\n id,\n name,\n required,\n disabled,\n readOnly,\n error,\n labelId,\n helperTextId,\n errorMessageId,\n hasHelperText,\n hasErrorMessage,\n ]\n );\n\n const fieldClassName = classNames(\n \"cl-form-field\",\n fullWidth && \"cl-form-field--full-width\",\n error && \"cl-form-field--error\",\n disabled && \"cl-form-field--disabled\",\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <FormFieldContext.Provider value={contextValue}>\n <StyledFormFieldRoot\n as={Slot}\n ref={ref as React.Ref<HTMLDivElement>}\n className={fieldClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledFormFieldRoot>\n </FormFieldContext.Provider>\n );\n }\n\n return (\n <FormFieldContext.Provider value={contextValue}>\n <StyledFormFieldRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLDivElement>}\n className={fieldClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledFormFieldRoot>\n </FormFieldContext.Provider>\n );\n }\n);\n\nFormField.displayName = \"FormField\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useFormField } from \"./FormFieldContext\";\n\nexport interface FormLabelProps\n extends React.LabelHTMLAttributes<HTMLLabelElement> {\n /**\n * If true, displays a required asterisk. Inherits from FormField context if omitted.\n */\n required?: boolean | undefined;\n /**\n * If true, highlights label in error palette color. Inherits from FormField context if omitted.\n */\n error?: boolean | undefined;\n /**\n * If true, styles label in disabled state. Inherits from FormField context if omitted.\n */\n disabled?: boolean | undefined;\n /**\n * If true, delegates rendering to immediate child using Slot.\n */\n asChild?: boolean | undefined;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType | undefined;\n /**\n * Alias for component\n */\n as?: React.ElementType | undefined;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode | undefined;\n}\n\nconst StyledLabelRoot = styled(\"label\", {\n name: \"ChellaaFormLabel\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"required\" &&\n prop !== \"error\" &&\n prop !== \"disabled\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Accessible form label automatically linked to its associated input control.\n *\n * @example\n * <FormLabel>Email Address</FormLabel>\n */\nexport const FormLabel = React.forwardRef<HTMLLabelElement, FormLabelProps>(\n function FormLabel(props, ref) {\n const {\n htmlFor: htmlForProp,\n id: idProp,\n required: requiredProp,\n error: errorProp,\n disabled: disabledProp,\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n ...rest\n } = props;\n\n const formField = useFormField();\n\n const htmlFor = htmlForProp ?? formField?.id;\n const id = idProp ?? formField?.labelId;\n const required = requiredProp ?? formField?.required ?? false;\n const error = errorProp ?? formField?.error ?? false;\n const disabled = disabledProp ?? formField?.disabled ?? false;\n\n const labelClassName = classNames(\n \"cl-form-label\",\n error && \"cl-form-label--error\",\n disabled && \"cl-form-label--disabled\",\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <StyledLabelRoot\n as={Slot}\n ref={ref as React.Ref<HTMLLabelElement>}\n htmlFor={htmlFor}\n id={id}\n className={labelClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledLabelRoot>\n );\n }\n\n return (\n <StyledLabelRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLLabelElement>}\n htmlFor={htmlFor}\n id={id}\n className={labelClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n {required && (\n <span className=\"cl-form-label__asterisk\" aria-hidden=\"true\">*</span>\n )}\n </StyledLabelRoot>\n );\n }\n);\n\nFormLabel.displayName = \"FormLabel\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useFormField } from \"./FormFieldContext\";\n\nexport interface FormHelperTextProps\n extends React.HTMLAttributes<HTMLParagraphElement> {\n /**\n * If true, styles helper text in disabled state.\n */\n disabled?: boolean | undefined;\n /**\n * If true, delegates rendering to immediate child using Slot.\n */\n asChild?: boolean | undefined;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType | undefined;\n /**\n * Alias for component\n */\n as?: React.ElementType | undefined;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode | undefined;\n}\n\nconst StyledHelperTextRoot = styled(\"p\", {\n name: \"ChellaaFormHelperText\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"disabled\" && prop !== \"asChild\" && prop !== \"component\",\n})({});\n\n/**\n * Contextual explanation text rendered beneath an input control,\n * automatically linked via aria-describedby.\n *\n * @example\n * <FormHelperText>We will never share your personal email.</FormHelperText>\n */\nexport const FormHelperText = React.forwardRef<\n HTMLParagraphElement,\n FormHelperTextProps\n>(function FormHelperText(props, ref) {\n const {\n id: idProp,\n disabled: disabledProp,\n asChild = false,\n component = \"p\",\n as,\n children,\n className,\n style,\n sx,\n ...rest\n } = props;\n\n const formField = useFormField();\n const setHasHelperText = formField?.setHasHelperText;\n\n React.useEffect(() => {\n setHasHelperText?.(true);\n return () => setHasHelperText?.(false);\n }, [setHasHelperText]);\n\n const id = idProp ?? formField?.helperTextId;\n const disabled = disabledProp ?? formField?.disabled ?? false;\n const targetTag = component || as;\n\n const helperClassName = classNames(\n \"cl-form-helper-text\",\n disabled && \"cl-form-helper-text--disabled\",\n className\n );\n\n if (asChild) {\n return (\n <StyledHelperTextRoot\n as={Slot}\n ref={ref as React.Ref<HTMLParagraphElement>}\n id={id}\n className={helperClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledHelperTextRoot>\n );\n }\n\n return (\n <StyledHelperTextRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLParagraphElement>}\n id={id}\n className={helperClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledHelperTextRoot>\n );\n});\n\nFormHelperText.displayName = \"FormHelperText\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useFormField } from \"./FormFieldContext\";\n\nexport interface FormErrorMessageProps\n extends React.HTMLAttributes<HTMLParagraphElement> {\n /**\n * If true, forces the error message to mount even if error is false.\n * @default false\n */\n forceMount?: boolean | undefined;\n /**\n * If true, delegates rendering to immediate child using Slot.\n */\n asChild?: boolean | undefined;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType | undefined;\n /**\n * Alias for component\n */\n as?: React.ElementType | undefined;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode | undefined;\n}\n\nconst StyledErrorMessageRoot = styled(\"p\", {\n name: \"ChellaaFormErrorMessage\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"forceMount\" && prop !== \"asChild\" && prop !== \"component\",\n})({});\n\n/**\n * Accessible error message primitive rendered conditionally when error is true,\n * possessing role=\"alert\" for immediate screen reader announcement.\n *\n * @example\n * <FormErrorMessage>Please enter a valid email address.</FormErrorMessage>\n */\nexport const FormErrorMessage = React.forwardRef<\n HTMLParagraphElement,\n FormErrorMessageProps\n>(function FormErrorMessage(props, ref) {\n const {\n id: idProp,\n forceMount = false,\n asChild = false,\n component = \"p\",\n as,\n children,\n className,\n style,\n sx,\n ...rest\n } = props;\n\n const formField = useFormField();\n const isError = formField?.error ?? false;\n const setHasErrorMessage = formField?.setHasErrorMessage;\n\n React.useEffect(() => {\n if (isError || forceMount) {\n setHasErrorMessage?.(true);\n return () => setHasErrorMessage?.(false);\n }\n }, [setHasErrorMessage, isError, forceMount]);\n\n if (!isError && !forceMount) {\n return null;\n }\n\n const id = idProp ?? formField?.errorMessageId;\n const targetTag = component || as;\n\n const errorClassName = classNames(\"cl-form-error-message\", className);\n\n if (asChild) {\n return (\n <StyledErrorMessageRoot\n as={Slot}\n ref={ref as React.Ref<HTMLParagraphElement>}\n id={id}\n role=\"alert\"\n aria-live=\"polite\"\n className={errorClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledErrorMessageRoot>\n );\n }\n\n return (\n <StyledErrorMessageRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLParagraphElement>}\n id={id}\n role=\"alert\"\n aria-live=\"polite\"\n className={errorClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledErrorMessageRoot>\n );\n});\n\nFormErrorMessage.displayName = \"FormErrorMessage\";\n","import * as React from \"react\";\nimport type { CheckboxContextValue } from \"./Checkbox.types\";\n\nexport const CheckboxContext = React.createContext<\n CheckboxContextValue | undefined\n>(undefined);\n\n/**\n * Hook to consume parent CheckboxGroup context.\n * Returns undefined if the checkbox is rendered standalone.\n */\nexport function useCheckboxGroup(): CheckboxContextValue | undefined {\n return React.useContext(CheckboxContext);\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { useCheckboxGroup } from \"./CheckboxContext\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport type {\n CheckboxProps,\n CheckboxSize,\n CheckboxColorScheme,\n} from \"./Checkbox.types\";\n\nexport type { CheckboxProps, CheckboxSize, CheckboxColorScheme };\n\nconst StyledCheckboxRoot = styled(\"label\", {\n name: \"ChellaaCheckbox\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"size\" &&\n prop !== \"colorScheme\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"error\" &&\n prop !== \"checked\" &&\n prop !== \"indeterminate\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Checkbox primitive with tri-state selection, custom color palettes,\n * keyboard accessibility, and automatic CheckboxGroup / FormField binding.\n *\n * @example\n * <Checkbox defaultChecked>Subscribe to updates</Checkbox>\n * <Checkbox indeterminate>Select all items</Checkbox>\n */\nexport const Checkbox = React.forwardRef<HTMLLabelElement, CheckboxProps>(\n function Checkbox(props, ref) {\n const group = useCheckboxGroup();\n const formField = useFormField();\n\n const {\n checked: checkedProp,\n defaultChecked = false,\n indeterminate = false,\n onChange: onChangeProp,\n value: valueProp,\n name: nameProp,\n size: sizeProp,\n colorScheme: colorSchemeProp,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n required: requiredProp,\n error: errorProp,\n inputRef: inputRefProp,\n inputProps = {},\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n id: idProp,\n ...rest\n } = props;\n\n // Cascade resolution: Props > Group > FormField > Defaults\n const isGroupControlled = group !== undefined && valueProp !== undefined;\n const isCheckedInGroup = isGroupControlled\n ? group.value.includes(valueProp)\n : undefined;\n\n const checked =\n checkedProp !== undefined ? checkedProp : isCheckedInGroup;\n\n const size = sizeProp ?? group?.size ?? \"md\";\n const colorScheme = colorSchemeProp ?? group?.colorScheme ?? \"primary\";\n const disabled =\n disabledProp ?? group?.disabled ?? formField?.disabled ?? false;\n const readOnly =\n readOnlyProp ?? group?.readOnly ?? formField?.readOnly ?? false;\n const error = errorProp ?? group?.error ?? formField?.error ?? false;\n const required = requiredProp ?? formField?.required ?? false;\n const name = nameProp ?? group?.name ?? formField?.name;\n const id = idProp ?? (formField ? `${formField.id}-checkbox` : undefined);\n\n const [uncontrolledChecked, setUncontrolledChecked] = React.useState<boolean>(\n defaultChecked\n );\n\n const isControlled = checked !== undefined;\n const effectiveChecked = isControlled ? checked : uncontrolledChecked;\n\n const nativeInputRef = React.useRef<HTMLInputElement | null>(null);\n const mergedInputRef = useMergeRefs(nativeInputRef, inputRefProp);\n\n React.useEffect(() => {\n if (nativeInputRef.current) {\n nativeInputRef.current.indeterminate = Boolean(indeterminate);\n }\n }, [indeterminate]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled || readOnly) {\n event.preventDefault();\n return;\n }\n\n if (isGroupControlled) {\n group.toggleValue(valueProp);\n } else if (!isControlled) {\n setUncontrolledChecked(event.target.checked);\n }\n\n onChangeProp?.(event);\n };\n\n const checkboxClassName = classNames(\n \"cl-checkbox\",\n `cl-checkbox--${size}`,\n `cl-checkbox--${colorScheme}`,\n effectiveChecked && \"cl-checkbox--checked\",\n indeterminate && \"cl-checkbox--indeterminate\",\n disabled && \"cl-checkbox--disabled\",\n error && \"cl-checkbox--error\",\n className\n );\n\n const targetTag = component || as;\n\n const controlBox = (\n <span className=\"cl-checkbox__control ChellaaCheckbox-Control\" aria-hidden=\"true\">\n {indeterminate ? (\n <svg\n className=\"cl-checkbox__icon ChellaaCheckbox-Icon ChellaaCheckbox-Icon--indeterminate\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n width={size === \"lg\" ? 18 : size === \"sm\" ? 12 : 14}\n height={size === \"lg\" ? 18 : size === \"sm\" ? 12 : 14}\n >\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n </svg>\n ) : effectiveChecked ? (\n <svg\n className=\"cl-checkbox__icon ChellaaCheckbox-Icon ChellaaCheckbox-Icon--checked\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n width={size === \"lg\" ? 18 : size === \"sm\" ? 12 : 14}\n height={size === \"lg\" ? 18 : size === \"sm\" ? 12 : 14}\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n ) : null}\n </span>\n );\n\n const ariaDescribedBy = [\n inputProps[\"aria-describedby\"],\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\n formField?.hasHelperText ? formField.helperTextId : null,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n if (asChild) {\n return (\n <StyledCheckboxRoot\n as={Slot}\n ref={ref as React.Ref<HTMLLabelElement>}\n className={checkboxClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCheckboxRoot>\n );\n }\n\n return (\n <StyledCheckboxRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLLabelElement>}\n className={checkboxClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n <input\n type=\"checkbox\"\n id={id}\n name={name}\n value={valueProp}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n checked={isControlled ? effectiveChecked : undefined}\n defaultChecked={!isControlled ? defaultChecked : undefined}\n onChange={handleChange}\n ref={mergedInputRef}\n aria-checked={indeterminate ? \"mixed\" : effectiveChecked}\n aria-invalid={error ? true : undefined}\n aria-describedby={ariaDescribedBy}\n className=\"cl-checkbox__input\"\n {...inputProps}\n />\n {controlBox}\n {children && (\n <span className=\"cl-checkbox__label ChellaaCheckbox-Label\">\n {children}\n </span>\n )}\n </StyledCheckboxRoot>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n","import * as React from \"react\";\n\nexport interface UseControllableStateParams<T> {\n value?: T | undefined;\n defaultValue?: T | (() => T) | undefined;\n onChange?: ((value: T) => void) | undefined;\n}\n\n/**\n * Manages state that can be either controlled (via `value`) or uncontrolled (via `defaultValue`).\n * When controlled, updates trigger `onChange` without mutating internal state directly.\n * When uncontrolled, internal state updates and `onChange` is notified.\n */\nexport function useControllableState<T>({\n value: valueProp,\n defaultValue,\n onChange,\n}: UseControllableStateParams<T>): [\n T,\n (nextValue: T | ((prev: T) => T)) => void,\n] {\n const isControlled = valueProp !== undefined;\n\n const [uncontrolledValue, setUncontrolledValue] = React.useState<T>(() => {\n if (defaultValue !== undefined) {\n return typeof defaultValue === \"function\"\n ? (defaultValue as () => T)()\n : defaultValue;\n }\n return undefined as unknown as T;\n });\n\n const value = isControlled ? (valueProp as T) : uncontrolledValue;\n\n const onChangeRef = React.useRef(onChange);\n React.useEffect(() => {\n onChangeRef.current = onChange;\n });\n\n const setValue = React.useCallback(\n (next: T | ((prev: T) => T)) => {\n const resolvedNext =\n typeof next === \"function\" ? (next as (prev: T) => T)(value) : next;\n\n if (!Object.is(value, resolvedNext)) {\n if (!isControlled) {\n setUncontrolledValue(resolvedNext);\n }\n onChangeRef.current?.(resolvedNext);\n }\n },\n [isControlled, value],\n );\n\n return [value, setValue];\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport { CheckboxContext } from \"./CheckboxContext\";\nimport type { CheckboxGroupProps, CheckboxContextValue } from \"./Checkbox.types\";\n\ninterface StyledCheckboxGroupRootProps {\n orientation?: \"vertical\" | \"horizontal\" | undefined;\n spacing?: number | string | undefined;\n}\n\nconst StyledCheckboxGroupRoot = styled(\"div\", {\n name: \"ChellaaCheckboxGroup\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"orientation\" &&\n prop !== \"spacing\" &&\n prop !== \"colorScheme\" &&\n prop !== \"error\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})<StyledCheckboxGroupRootProps>(({ theme, spacing = 2 }) => {\n const gapValue =\n typeof spacing === \"number\" ? theme.spacing(spacing) : spacing;\n\n return {\n gap: gapValue,\n };\n});\n\n/**\n * CheckboxGroup manages selection state for a set of related checkboxes,\n * cascading shared properties and orchestrating multi-selection arrays.\n *\n * @example\n * <CheckboxGroup defaultValue={['react']} onChange={(val) => console.log(val)}>\n * <Checkbox value=\"react\">React</Checkbox>\n * <Checkbox value=\"vue\">Vue</Checkbox>\n * <Checkbox value=\"svelte\">Svelte</Checkbox>\n * </CheckboxGroup>\n */\nexport const CheckboxGroup = React.forwardRef<\n HTMLDivElement,\n CheckboxGroupProps\n>(function CheckboxGroup(props, ref) {\n const formField = useFormField();\n\n const {\n value: valueProp,\n defaultValue = [],\n onChange: onChangeProp,\n name: nameProp,\n size = \"md\",\n colorScheme = \"primary\",\n orientation = \"vertical\",\n spacing = 2,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n error: errorProp,\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n ...rest\n } = props;\n\n const name = nameProp ?? formField?.name;\n const disabled = disabledProp ?? formField?.disabled ?? false;\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\n const error = errorProp ?? formField?.error ?? false;\n\n const [value, setValue] = useControllableState<string[]>({\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n });\n\n const toggleValue = React.useCallback(\n (itemValue: string) => {\n if (readOnly || disabled) return;\n const current = value || [];\n const next = current.includes(itemValue)\n ? current.filter((v) => v !== itemValue)\n : [...current, itemValue];\n setValue(next);\n },\n [value, setValue, readOnly, disabled]\n );\n\n const contextValue: CheckboxContextValue = React.useMemo(\n () => ({\n value: value || [],\n name,\n size,\n colorScheme,\n disabled,\n readOnly,\n error,\n toggleValue,\n }),\n [value, name, size, colorScheme, disabled, readOnly, error, toggleValue]\n );\n\n const groupClassName = classNames(\n \"cl-checkbox-group\",\n `cl-checkbox-group--${orientation}`,\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <CheckboxContext.Provider value={contextValue}>\n <StyledCheckboxGroupRoot\n as={Slot}\n ref={ref as React.Ref<HTMLDivElement>}\n role=\"group\"\n orientation={orientation}\n spacing={spacing}\n className={groupClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCheckboxGroupRoot>\n </CheckboxContext.Provider>\n );\n }\n\n return (\n <CheckboxContext.Provider value={contextValue}>\n <StyledCheckboxGroupRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLDivElement>}\n role=\"group\"\n orientation={orientation}\n spacing={spacing}\n className={groupClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCheckboxGroupRoot>\n </CheckboxContext.Provider>\n );\n});\n\nCheckboxGroup.displayName = \"CheckboxGroup\";\n","import * as React from \"react\";\nimport type { RadioContextValue } from \"./Radio.types\";\n\nexport const RadioContext = React.createContext<\n RadioContextValue | undefined\n>(undefined);\n\n/**\n * Hook to consume parent RadioGroup context.\n * Returns undefined if the radio is rendered standalone.\n */\nexport function useRadioGroup(): RadioContextValue | undefined {\n return React.useContext(RadioContext);\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { useRadioGroup } from \"./RadioContext\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport type {\n RadioProps,\n RadioSize,\n RadioColorScheme,\n} from \"./Radio.types\";\n\nexport type { RadioProps, RadioSize, RadioColorScheme };\n\nconst StyledRadioRoot = styled(\"label\", {\n name: \"ChellaaRadio\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"size\" &&\n prop !== \"colorScheme\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"error\" &&\n prop !== \"checked\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Radio primitive for single-choice selection with animated circular dot indicator,\n * accessible keyboard arrow navigation, and automatic RadioGroup / FormField binding.\n *\n * @example\n * <Radio value=\"express\">Express Delivery</Radio>\n */\nexport const Radio = React.forwardRef<HTMLLabelElement, RadioProps>(\n function Radio(props, ref) {\n const group = useRadioGroup();\n const formField = useFormField();\n\n const {\n checked: checkedProp,\n defaultChecked = false,\n onChange: onChangeProp,\n value: valueProp,\n name: nameProp,\n size: sizeProp,\n colorScheme: colorSchemeProp,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n required: requiredProp,\n error: errorProp,\n inputRef: inputRefProp,\n inputProps = {},\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n id: idProp,\n ...rest\n } = props;\n\n const isGroupControlled = group !== undefined && valueProp !== undefined;\n const isCheckedInGroup = isGroupControlled\n ? group.value !== undefined && String(group.value) === String(valueProp)\n : undefined;\n\n const checked =\n checkedProp !== undefined ? checkedProp : isCheckedInGroup;\n\n const size = sizeProp ?? group?.size ?? \"md\";\n const colorScheme = colorSchemeProp ?? group?.colorScheme ?? \"primary\";\n const disabled =\n disabledProp ?? group?.disabled ?? formField?.disabled ?? false;\n const readOnly =\n readOnlyProp ?? group?.readOnly ?? formField?.readOnly ?? false;\n const error = errorProp ?? group?.error ?? formField?.error ?? false;\n const required = requiredProp ?? formField?.required ?? false;\n const name = nameProp ?? group?.name ?? formField?.name;\n const id = idProp ?? (formField ? `${formField.id}-radio-${valueProp ?? \"\"}` : undefined);\n\n const [uncontrolledChecked, setUncontrolledChecked] = React.useState<boolean>(\n defaultChecked\n );\n\n const isControlled = checked !== undefined;\n const effectiveChecked = isControlled ? checked : uncontrolledChecked;\n\n const nativeInputRef = React.useRef<HTMLInputElement | null>(null);\n const mergedInputRef = useMergeRefs(nativeInputRef, inputRefProp);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled || readOnly) {\n event.preventDefault();\n return;\n }\n\n if (isGroupControlled && valueProp !== undefined) {\n group.onChange(valueProp);\n } else if (!isControlled) {\n setUncontrolledChecked(event.target.checked);\n }\n\n onChangeProp?.(event);\n };\n\n const radioClassName = classNames(\n \"cl-radio\",\n `cl-radio--${size}`,\n `cl-radio--${colorScheme}`,\n effectiveChecked && \"cl-radio--checked\",\n disabled && \"cl-radio--disabled\",\n error && \"cl-radio--error\",\n className\n );\n\n const targetTag = component || as;\n\n const controlBox = (\n <span className=\"cl-radio__control ChellaaRadio-Control\" aria-hidden=\"true\">\n <span className=\"cl-radio__dot ChellaaRadio-Dot\" />\n </span>\n );\n\n const ariaDescribedBy = [\n inputProps[\"aria-describedby\"],\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\n formField?.hasHelperText ? formField.helperTextId : null,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n if (asChild) {\n return (\n <StyledRadioRoot\n as={Slot}\n ref={ref as React.Ref<HTMLLabelElement>}\n className={radioClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledRadioRoot>\n );\n }\n\n return (\n <StyledRadioRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLLabelElement>}\n className={radioClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n <input\n type=\"radio\"\n id={id}\n name={name}\n value={valueProp}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n checked={isControlled ? effectiveChecked : undefined}\n defaultChecked={!isControlled ? defaultChecked : undefined}\n onChange={handleChange}\n ref={mergedInputRef}\n aria-invalid={error ? true : undefined}\n aria-describedby={ariaDescribedBy}\n className=\"cl-radio__input\"\n {...inputProps}\n />\n {controlBox}\n {children && (\n <span className=\"cl-radio__label ChellaaRadio-Label\">\n {children}\n </span>\n )}\n </StyledRadioRoot>\n );\n }\n);\n\nRadio.displayName = \"Radio\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport { RadioContext } from \"./RadioContext\";\nimport type { RadioGroupProps, RadioContextValue } from \"./Radio.types\";\n\nconst StyledRadioGroupRoot = styled(\"div\", {\n name: \"ChellaaRadioGroup\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"orientation\" &&\n prop !== \"spacing\" &&\n prop !== \"colorScheme\" &&\n prop !== \"error\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * RadioGroup manages single-selection state across a group of mutually exclusive Radios,\n * providing native roving keyboard navigation and shared property cascade.\n *\n * @example\n * <RadioGroup defaultValue=\"standard\" onChange={(val) => console.log(val)}>\n * <Radio value=\"standard\">Standard Shipping (3-5 days)</Radio>\n * <Radio value=\"express\">Express Shipping (1-2 days)</Radio>\n * <Radio value=\"overnight\">Overnight Delivery</Radio>\n * </RadioGroup>\n */\nexport const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\n function RadioGroup(props, ref) {\n const formField = useFormField();\n\n const {\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n name: nameProp,\n size = \"md\",\n colorScheme = \"primary\",\n orientation = \"vertical\",\n spacing = 2,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n error: errorProp,\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n ...rest\n } = props;\n\n const generatedName = React.useId();\n const name = nameProp || formField?.name || generatedName;\n const disabled = disabledProp ?? formField?.disabled ?? false;\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\n const error = errorProp ?? formField?.error ?? false;\n\n const [value, setValue] = useControllableState<string | number | undefined>({\n value: valueProp,\n defaultValue,\n onChange: (val) => {\n if (val !== undefined) {\n onChangeProp?.(val);\n }\n },\n });\n\n const handleChange = React.useCallback(\n (nextValue: string | number) => {\n if (readOnly || disabled) return;\n setValue(nextValue);\n },\n [readOnly, disabled, setValue]\n );\n\n const contextValue: RadioContextValue = React.useMemo(\n () => ({\n value,\n name,\n size,\n colorScheme,\n disabled,\n readOnly,\n error,\n onChange: handleChange,\n }),\n [value, name, size, colorScheme, disabled, readOnly, error, handleChange]\n );\n\n const targetTag = component || as;\n\n const groupClassName = classNames(\n \"cl-radio-group\",\n orientation === \"horizontal\"\n ? \"cl-radio-group--horizontal\"\n : \"cl-radio-group--vertical\",\n className\n );\n\n const gapStyle =\n spacing !== undefined\n ? {\n gap: typeof spacing === \"number\" ? `${spacing * 4}px` : spacing,\n ...style,\n }\n : style;\n\n if (asChild) {\n return (\n <RadioContext.Provider value={contextValue}>\n <StyledRadioGroupRoot\n as={Slot}\n ref={ref as React.Ref<HTMLDivElement>}\n role=\"radiogroup\"\n className={groupClassName}\n style={gapStyle}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledRadioGroupRoot>\n </RadioContext.Provider>\n );\n }\n\n return (\n <RadioContext.Provider value={contextValue}>\n <StyledRadioGroupRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLDivElement>}\n role=\"radiogroup\"\n className={groupClassName}\n style={gapStyle}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledRadioGroupRoot>\n </RadioContext.Provider>\n );\n }\n);\n\nRadioGroup.displayName = \"RadioGroup\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport type {\n SwitchProps,\n SwitchSize,\n SwitchColorScheme,\n SwitchLabelPlacement,\n} from \"./Switch.types\";\n\nexport type {\n SwitchProps,\n SwitchSize,\n SwitchColorScheme,\n SwitchLabelPlacement,\n};\n\nconst StyledSwitchRoot = styled(\"label\", {\n name: \"ChellaaSwitch\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"size\" &&\n prop !== \"labelPlacement\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"error\" &&\n prop !== \"loading\" &&\n prop !== \"checked\" &&\n prop !== \"colorScheme\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Switch primitive representing an immediate binary toggle setting.\n * Conforms to the W3C WAI-ARIA 1.2 Switch Pattern (`role=\"switch\"`).\n *\n * @example\n * <Switch defaultChecked>Enable Notifications</Switch>\n */\nexport const Switch = React.forwardRef<HTMLLabelElement, SwitchProps>(\n function Switch(props, ref) {\n const formField = useFormField();\n\n const {\n checked: checkedProp,\n defaultChecked = false,\n onChange: onChangeProp,\n value,\n name: nameProp,\n size = \"md\",\n colorScheme = \"primary\",\n disabled: disabledProp,\n readOnly: readOnlyProp,\n required: requiredProp,\n error: errorProp,\n loading = false,\n checkedIcon,\n uncheckedIcon,\n labelPlacement = \"end\",\n inputRef: inputRefProp,\n inputProps = {},\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n id: idProp,\n ...rest\n } = props;\n\n const disabled =\n disabledProp ?? formField?.disabled ?? loading ? true : false;\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\n const error = errorProp ?? formField?.error ?? false;\n const required = requiredProp ?? formField?.required ?? false;\n const name = nameProp ?? formField?.name;\n const id = idProp ?? (formField ? `${formField.id}-switch` : undefined);\n\n const [uncontrolledChecked, setUncontrolledChecked] = React.useState<boolean>(\n defaultChecked\n );\n\n const isControlled = checkedProp !== undefined;\n const effectiveChecked = isControlled ? checkedProp : uncontrolledChecked;\n\n const nativeInputRef = React.useRef<HTMLInputElement | null>(null);\n const mergedInputRef = useMergeRefs(nativeInputRef, inputRefProp);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled || readOnly || loading) {\n event.preventDefault();\n return;\n }\n\n if (!isControlled) {\n setUncontrolledChecked(event.target.checked);\n }\n\n onChangeProp?.(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n nativeInputRef.current?.click();\n }\n inputProps.onKeyDown?.(event);\n };\n\n const switchClassName = classNames(\n \"cl-switch\",\n `cl-switch--${size}`,\n `cl-switch--${colorScheme}`,\n `cl-switch--placement-${labelPlacement}`,\n effectiveChecked && \"cl-switch--checked\",\n disabled && \"cl-switch--disabled\",\n error && \"cl-switch--error\",\n className\n );\n\n const targetTag = component || as;\n\n const thumbIcon = loading ? (\n <svg\n className=\"cl-switch__spinner\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeDasharray=\"40 20\"\n strokeLinecap=\"round\"\n />\n </svg>\n ) : effectiveChecked ? (\n checkedIcon\n ) : (\n uncheckedIcon\n );\n\n const trackControl = (\n <span className=\"cl-switch__track ChellaaSwitch-Track\" aria-hidden=\"true\">\n <span className=\"cl-switch__thumb ChellaaSwitch-Thumb\">\n {thumbIcon}\n </span>\n </span>\n );\n\n const ariaDescribedBy = [\n inputProps[\"aria-describedby\"],\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\n formField?.hasHelperText ? formField.helperTextId : null,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n if (asChild) {\n return (\n <StyledSwitchRoot\n as={Slot}\n ref={ref as React.Ref<HTMLLabelElement>}\n className={switchClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledSwitchRoot>\n );\n }\n\n return (\n <StyledSwitchRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLLabelElement>}\n className={switchClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n <input\n type=\"checkbox\"\n role=\"switch\"\n id={id}\n name={name}\n value={value}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n checked={isControlled ? effectiveChecked : undefined}\n defaultChecked={!isControlled ? defaultChecked : undefined}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n ref={mergedInputRef}\n aria-checked={effectiveChecked}\n aria-invalid={error ? true : undefined}\n aria-describedby={ariaDescribedBy}\n className=\"cl-switch__input\"\n {...inputProps}\n />\n {trackControl}\n {children && (\n <span className=\"cl-switch__label ChellaaSwitch-Label\">\n {children}\n </span>\n )}\n </StyledSwitchRoot>\n );\n }\n);\n\nSwitch.displayName = \"Switch\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type PaperVariant = \"elevation\" | \"outlined\";\n\nexport interface PaperOwnerState {\n elevation?: number | undefined;\n variant?: PaperVariant | undefined;\n square?: boolean | undefined;\n}\n\nexport interface PaperProps\n extends React.HTMLAttributes<HTMLElement>,\n PaperOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean | undefined;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType | undefined;\n /**\n * The underlying HTML element or component\n */\n as?: React.ElementType | undefined;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledPaperRoot = styled(\"div\", {\n name: \"ChellaaPaper\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"elevation\" &&\n prop !== \"variant\" &&\n prop !== \"square\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Material Paper elevation surface container with 24-level elevation shadows,\n * dark-mode surface elevation overlays, and outlined variants.\n *\n * @example\n * <Paper elevation={3} sx={{ p: 2 }}>\n * Elevated Content\n * </Paper>\n */\nexport const Paper = React.forwardRef<HTMLElement, PaperProps>(\n function Paper(props, ref) {\n const {\n asChild = false,\n component,\n as,\n elevation = 1,\n variant = \"elevation\",\n square = false,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const clampedElevation = Math.max(0, Math.min(24, elevation));\n\n const paperClassName = classNames(\n \"cl-paper\",\n square && \"cl-paper--square\",\n variant === \"outlined\" ? \"cl-paper--outlined\" : `cl-paper--elevation-${clampedElevation}`,\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <StyledPaperRoot\n as={Slot}\n ref={ref as any}\n className={paperClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledPaperRoot>\n );\n }\n\n if (targetTag) {\n return (\n <StyledPaperRoot\n as={targetTag}\n ref={ref as any}\n className={paperClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledPaperRoot>\n );\n }\n\n return (\n <StyledPaperRoot\n ref={ref as any}\n className={paperClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledPaperRoot>\n );\n }\n);\n\nPaper.displayName = \"Paper\";\n","import * as React from \"react\";\nimport type { CardSize } from \"./Card.types\";\n\n/**\n * Internal context propagating Card root's `size` prop to all sub-components\n * (CardHeader, CardBody, CardFooter, CardActions) so they produce consistent\n * padding without consumers having to pass `size` to every child.\n */\nexport interface CardContextValue {\n size: CardSize;\n}\n\nexport const CardContext = React.createContext<CardContextValue>({\n size: \"md\",\n});\n\nexport function useCardContext(): CardContextValue {\n return React.useContext(CardContext);\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { CardContext } from \"./CardContext\";\nimport type {\n CardProps,\n CardHeaderProps,\n CardMediaProps,\n CardBodyProps,\n CardFooterProps,\n CardActionsProps,\n} from \"./Card.types\";\n\n// ─── Card Root Styled Component ──────────────────────────────────────────────\n\nconst StyledCardRoot = styled(\"div\", {\n name: \"ChellaaCard\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"variant\" &&\n prop !== \"elevation\" &&\n prop !== \"hoverable\" &&\n prop !== \"square\" &&\n prop !== \"size\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n// ─── Card Component ──────────────────────────────────────────────────────────\n\n/**\n * Material Design 3-aligned surface container with compound sub-components.\n * Supports 3 visual variants, numeric M3 elevation, dark-mode overlay tinting,\n * and an optional hoverable lift mode.\n *\n * @example\n * <Card hoverable>\n * <CardMedia image=\"/hero.jpg\" alt=\"Hero\" />\n * <CardHeader title=\"Title\" subheader=\"Subtitle\" />\n * <CardBody>Content here</CardBody>\n * <CardActions>\n * <Button>Action</Button>\n * </CardActions>\n * </Card>\n */\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n function Card(props, ref) {\n const {\n variant = \"elevated\",\n elevation = 1,\n size = \"md\",\n hoverable = false,\n square = false,\n asChild = false,\n component,\n as,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const cardClassName = classNames(\n \"cl-card\",\n `cl-card--${size}`,\n `cl-card--${variant}`,\n square && \"cl-card--square\",\n hoverable && \"cl-card--hoverable\",\n className\n );\n\n const targetTag = component || as;\n\n return (\n <CardContext.Provider value={{ size }}>\n {asChild ? (\n <StyledCardRoot\n as={Slot as any}\n ref={ref as any}\n className={cardClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCardRoot>\n ) : (\n <StyledCardRoot\n as={targetTag}\n ref={ref as any}\n className={cardClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCardRoot>\n )}\n </CardContext.Provider>\n );\n }\n);\n\nCard.displayName = \"Card\";\n\n// ─── CardHeader Styled Components ────────────────────────────────────────────\n\nconst StyledCardHeaderRoot = styled(\"div\", {\n name: \"ChellaaCard\",\n slot: \"Header\",\n shouldForwardProp: (prop) => prop !== \"cardSize\" && prop !== \"asChild\",\n})({});\n\n// ─── CardHeader Component ────────────────────────────────────────────────────\n\n/**\n * Header zone of a Card. Supports avatar, title, subheader, and trailing action slots.\n * Automatically inherits `size` from the parent Card via CardContext.\n */\nexport const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(\n function CardHeader(props, ref) {\n const {\n avatar,\n action,\n title,\n subheader,\n titleTypographyProps,\n subheaderTypographyProps,\n asChild = false,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const headerClassName = classNames(\n \"cl-card__header\",\n \"ChellaaCard-header\",\n className\n );\n\n if (asChild) {\n return (\n <StyledCardHeaderRoot\n as={Slot as any}\n ref={ref as any}\n className={headerClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCardHeaderRoot>\n );\n }\n\n return (\n <StyledCardHeaderRoot\n ref={ref as any}\n className={headerClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {avatar && (\n <div className=\"cl-card__header-avatar ChellaaCard-headerAvatar\">\n {avatar}\n </div>\n )}\n <div className=\"cl-card__header-content ChellaaCard-headerContent\">\n {title != null && (\n <span\n className={classNames(\n \"cl-card__header-title\",\n \"ChellaaCard-headerTitle\",\n titleTypographyProps?.className\n )}\n {...titleTypographyProps}\n >\n {title}\n </span>\n )}\n {subheader != null && (\n <span\n className={classNames(\n \"cl-card__header-subheader\",\n \"ChellaaCard-headerSubheader\",\n subheaderTypographyProps?.className\n )}\n {...subheaderTypographyProps}\n >\n {subheader}\n </span>\n )}\n {children}\n </div>\n {action && (\n <div className=\"cl-card__header-action ChellaaCard-headerAction\">\n {action}\n </div>\n )}\n </StyledCardHeaderRoot>\n );\n }\n);\n\nCardHeader.displayName = \"CardHeader\";\n\n// ─── CardMedia Styled Component ──────────────────────────────────────────────\n\nconst StyledCardMediaRoot = styled(\"div\", {\n name: \"ChellaaCard\",\n slot: \"Media\",\n shouldForwardProp: (prop) => prop !== \"image\" && prop !== \"aspectRatio\",\n})({});\n\n// ─── CardMedia Component ─────────────────────────────────────────────────────\n\n/**\n * Aspect-ratio-locked media zone that bleeds edge-to-edge within the card.\n * Use the `image` prop for a CSS background shorthand, or place an `<img>`\n * child for semantic HTML (preferred for accessibility).\n */\nexport const CardMedia = React.forwardRef<HTMLDivElement, CardMediaProps>(\n function CardMedia(props, ref) {\n const {\n image,\n alt,\n aspectRatio = \"16/9\",\n component,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const mediaStyle: React.CSSProperties = {\n ...(aspectRatio ? { aspectRatio } : {}),\n ...(image ? { backgroundImage: `url(${image})` } : {}),\n ...style,\n };\n\n const mediaClassName = classNames(\n \"cl-card__media\",\n \"ChellaaCard-media\",\n className\n );\n\n return (\n <StyledCardMediaRoot\n as={component}\n ref={ref as any}\n className={mediaClassName}\n style={mediaStyle}\n sx={sx}\n role={image && !children ? \"img\" : undefined}\n aria-label={image && !children ? alt : undefined}\n {...rest}\n >\n {children}\n </StyledCardMediaRoot>\n );\n }\n);\n\nCardMedia.displayName = \"CardMedia\";\n\n// ─── CardBody Styled Component ───────────────────────────────────────────────\n\nconst StyledCardBodyRoot = styled(\"div\", {\n name: \"ChellaaCard\",\n slot: \"Body\",\n shouldForwardProp: (prop) => prop !== \"cardSize\",\n})({});\n\n// ─── CardBody Component ──────────────────────────────────────────────────────\n\n/**\n * Main flexible content zone of a Card.\n * Inherits `size` from parent Card for consistent padding.\n */\nexport const CardBody = React.forwardRef<HTMLDivElement, CardBodyProps>(\n function CardBody(props, ref) {\n const { children, className, style, sx, ...rest } = props;\n const bodyClassName = classNames(\"cl-card__body\", \"ChellaaCard-body\", className);\n\n return (\n <StyledCardBodyRoot\n ref={ref as any}\n className={bodyClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCardBodyRoot>\n );\n }\n);\n\nCardBody.displayName = \"CardBody\";\n\n// ─── CardFooter Styled Component ─────────────────────────────────────────────\n\nconst StyledCardFooterRoot = styled(\"div\", {\n name: \"ChellaaCard\",\n slot: \"Footer\",\n shouldForwardProp: (prop) => prop !== \"divider\" && prop !== \"cardSize\",\n})({});\n\n// ─── CardFooter Component ────────────────────────────────────────────────────\n\n/**\n * Semantic footer zone of a Card. Use for metadata, tags, timestamps.\n * Set `divider` to render a 1px separator between the body and footer.\n */\nexport const CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(\n function CardFooter(props, ref) {\n const { divider = false, children, className, style, sx, ...rest } = props;\n const footerClassName = classNames(\n \"cl-card__footer\",\n \"ChellaaCard-footer\",\n divider && \"cl-card__footer--divider\",\n className\n );\n\n return (\n <StyledCardFooterRoot\n ref={ref as any}\n className={footerClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCardFooterRoot>\n );\n }\n);\n\nCardFooter.displayName = \"CardFooter\";\n\n// ─── CardActions Styled Component ────────────────────────────────────────────\n\nconst StyledCardActionsRoot = styled(\"div\", {\n name: \"ChellaaCard\",\n slot: \"Actions\",\n shouldForwardProp: (prop) => prop !== \"disableSpacing\" && prop !== \"cardSize\",\n})({});\n\n// ─── CardActions Component ───────────────────────────────────────────────────\n\n/**\n * Flex action strip for Button / Link controls inside a Card.\n * By default applies a slight negative margin to align icon-buttons\n * flush to the card's padding box. Use `disableSpacing` to remove this.\n */\nexport const CardActions = React.forwardRef<HTMLDivElement, CardActionsProps>(\n function CardActions(props, ref) {\n const { disableSpacing = false, children, className, style, sx, ...rest } = props;\n const actionsClassName = classNames(\n \"cl-card__actions\",\n \"ChellaaCard-actions\",\n disableSpacing && \"cl-card__actions--disable-spacing\",\n className\n );\n\n return (\n <StyledCardActionsRoot\n ref={ref as any}\n className={actionsClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCardActionsRoot>\n );\n }\n);\n\nCardActions.displayName = \"CardActions\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/theme/palette.ts","../src/theme/typography.ts","../src/theme/spacing.ts","../src/theme/breakpoints.ts","../src/theme/shadows.ts","../src/theme/transitions.ts","../src/theme/zIndex.ts","../src/theme/createTheme.ts","../src/theme/ThemeProvider.tsx","../src/theme/useTheme.ts","../src/theme/ThemeScript.tsx","../src/system/shouldForwardProp.ts","../src/system/sx.ts","../src/system/componentOverrides.ts","../src/system/styled.ts","../src/utils/classNames.ts","../src/utils/composeEventHandlers.ts","../src/utils/getElementRef.ts","../src/hooks/useMergeRefs.ts","../src/primitives/Slot.tsx","../src/components/ButtonGroup/ButtonGroupContext.ts","../src/ripple/TouchRipple.tsx","../src/ripple/useRipple.ts","../src/components/Button/Button.tsx","../src/components/ButtonGroup/ButtonGroup.tsx","../src/components/Box/Box.tsx","../src/components/Stack/Stack.tsx","../src/components/Flex/Flex.tsx","../src/components/Container/Container.tsx","../src/components/Grid/Grid.tsx","../src/components/Divider/Divider.tsx","../src/components/Typography/Typography.tsx","../src/components/Typography/Heading.tsx","../src/components/Typography/Text.tsx","../src/components/Typography/Paragraph.tsx","../src/components/Typography/Code.tsx","../src/components/Kbd/Kbd.tsx","../src/components/FormField/FormFieldContext.tsx","../src/components/Input/Input.tsx","../src/components/Input/TextField.tsx","../src/components/Input/InputAdornment.tsx","../src/components/Textarea/Textarea.tsx","../src/components/FormField/FormField.tsx","../src/components/FormField/FormLabel.tsx","../src/components/FormField/FormHelperText.tsx","../src/components/FormField/FormErrorMessage.tsx","../src/components/Checkbox/CheckboxContext.tsx","../src/components/Checkbox/Checkbox.tsx","../src/hooks/useControllableState.ts","../src/components/Checkbox/CheckboxGroup.tsx","../src/components/Radio/RadioContext.tsx","../src/components/Radio/Radio.tsx","../src/components/Radio/RadioGroup.tsx","../src/components/Switch/Switch.tsx","../src/components/Paper/Paper.tsx","../src/components/Card/CardContext.ts","../src/components/Card/Card.tsx","../src/primitives/Portal.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/Popover/Popover.tsx","../src/components/Alert/Alert.tsx","../src/components/Snackbar/ToastProvider.tsx","../src/components/Snackbar/Snackbar.tsx","../src/components/Snackbar/useToast.ts","../src/components/Avatar/AvatarGroup.tsx","../src/components/Avatar/Avatar.tsx","../src/components/Accordion/Accordion.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Select/Select.tsx","../src/components/Pagination/Pagination.tsx","../src/components/Combobox/Combobox.tsx","../src/components/Dialog/Dialog.tsx","../src/components/Badge/Badge.tsx","../src/components/Table/Table.tsx"],"names":["React","EmotionThemeProvider","React2","useEmotionTheme","defaultTheme","jsx","isObject","resolved","React3","React4","React5","Slot","React6","React7","TouchRipple","pulsate","React8","React9","Button","React10","ButtonGroup","React11","Box","React12","Stack","React13","Flex","React14","Container","React15","Grid","React16","Divider","React17","Typography","React18","Heading","React19","Text","React20","Paragraph","React21","Code","React22","Kbd","React23","React24","InputBase","Input","jsxs","React25","TextField","React26","InputAdornment","React27","Textarea","React28","FormField","React29","FormLabel","React30","FormHelperText","React31","FormErrorMessage","React32","React33","Checkbox","React34","React35","CheckboxGroup","React36","React37","Radio","React38","RadioGroup","React39","Switch","React40","Paper","React41","React42","CardRoot","CardHeader","CardMedia","CardBody","CardFooter","CardActions","CardTitle","CardDescription","React43","React44","Tooltip","Fragment","React45","useFloating","autoUpdate","offset","flip","shift","arrow","useDismiss","useRole","useInteractions","PopoverTrigger","PopoverContent","PopoverArrow","PopoverClose","PopoverHeader","PopoverTitle","PopoverBody","PopoverFooter","React46","InfoIcon","SuccessIcon","WarningIcon","DangerIcon","AlertRoot","AlertIcon","AlertBody","AlertTitle","AlertDescription","AlertAction","AlertCloseButton","React47","ToastItem","React48","Snackbar","React49","React50","AvatarGroup","React51","AvatarImage","AvatarFallback","AvatarBadge","Avatar","React52","AccordionRoot","AccordionItem","AccordionHeader","AccordionTrigger","AccordionContent","AccordionIcon","React53","TabsRoot","TabsList","TabsTrigger","TabsContent","TabsIndicator","React54","SelectRoot","size","floatingSize","SelectTrigger","SelectValue","SelectIcon","SelectContent","SelectItem","SelectItemText","SelectItemIndicator","SelectGroup","SelectLabel","SelectSeparator","React55","rightBoundary","leftBoundary","PaginationRoot","PaginationList","PaginationItem","PaginationPrev","PaginationNext","PaginationFirst","PaginationLast","PaginationEllipsis","PaginationSizeSelect","PaginationJumper","ComboboxRoot","ComboboxControl","ComboboxInput","ComboboxTrigger","ComboboxContent","ComboboxItem","ComboboxGroupLabel","ComboboxGroup","ComboboxEmpty","ComboboxTag","ComboboxClear","React57","classNames","React58","React59"],"mappings":";;;;;;;;AAEO,IAAM,YAAA,GAAwB;AAAA,EACnC,IAAA,EAAM,OAAA;AAAA,EACN,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,qBAAA;AAAA,IACT,SAAA,EAAW,oBAAA;AAAA,IACX,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,SAAA;AAAA,IACT,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS,qBAAA;AAAA,EACT,MAAA,EAAQ;AAAA,IACN,MAAA,EAAQ,qBAAA;AAAA,IACR,KAAA,EAAO,qBAAA;AAAA,IACP,YAAA,EAAc,IAAA;AAAA,IACd,QAAA,EAAU,qBAAA;AAAA,IACV,eAAA,EAAiB,IAAA;AAAA,IACjB,QAAA,EAAU,qBAAA;AAAA,IACV,kBAAA,EAAoB,qBAAA;AAAA,IACpB,KAAA,EAAO,qBAAA;AAAA,IACP,YAAA,EAAc;AAAA;AAElB;AAEO,IAAM,WAAA,GAAuB;AAAA,EAClC,IAAA,EAAM,MAAA;AAAA,EACN,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,SAAA;AAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA;AAAA,IACN,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,2BAAA;AAAA,IACT,SAAA,EAAW,0BAAA;AAAA,IACX,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,SAAA;AAAA,IACT,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS,2BAAA;AAAA,EACT,MAAA,EAAQ;AAAA,IACN,MAAA,EAAQ,0BAAA;AAAA,IACR,KAAA,EAAO,2BAAA;AAAA,IACP,YAAA,EAAc,IAAA;AAAA,IACd,QAAA,EAAU,2BAAA;AAAA,IACV,eAAA,EAAiB,IAAA;AAAA,IACjB,QAAA,EAAU,0BAAA;AAAA,IACV,kBAAA,EAAoB,2BAAA;AAAA,IACpB,KAAA,EAAO,2BAAA;AAAA,IACP,YAAA,EAAc;AAAA;AAElB;AAEO,SAAS,aAAA,CAAc,OAAkB,OAAA,EAAkB;AAChE,EAAA,OAAO,IAAA,KAAS,SAAS,WAAA,GAAc,YAAA;AACzC;;;AC9HO,IAAM,iBAAA,GACX,mIAAA;AAEK,IAAM,iBAAA,GAAqC;AAAA,EAChD,UAAA,EAAY,iBAAA;AAAA,EACZ,QAAA,EAAU,EAAA;AAAA,EACV,eAAA,EAAiB,GAAA;AAAA,EACjB,iBAAA,EAAmB,GAAA;AAAA,EACnB,gBAAA,EAAkB,GAAA;AAAA,EAClB,cAAA,EAAgB,GAAA;AAAA,EAChB,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,SAAA;AAAA,IACV,UAAA,EAAY,GAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,UAAA;AAAA,IACV,UAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,QAAA;AAAA,IACV,UAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,SAAA;AAAA,IACV,UAAA,EAAY,GAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,IAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,SAAA,EAAW;AAAA,IACT,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,UAAA;AAAA,IACV,UAAA,EAAY,IAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,GAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,UAAA;AAAA,IACV,UAAA,EAAY,IAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,UAAA;AAAA,IACV,UAAA,EAAY,IAAA;AAAA,IACZ,aAAA,EAAe,WAAA;AAAA,IACf,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,SAAA;AAAA,IACV,UAAA,EAAY,IAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,UAAA,EAAY,iBAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,QAAA,EAAU,SAAA;AAAA,IACV,UAAA,EAAY,IAAA;AAAA,IACZ,aAAA,EAAe,WAAA;AAAA,IACf,aAAA,EAAe;AAAA;AAEnB;;;AC/FO,SAAS,aAAA,CAAc,OAAO,CAAA,EAAG;AACtC,EAAA,OAAO,IAAI,OAAA,KAAyC;AAClD,IAAA,IAAI,OAAA,CAAQ,MAAA,KAAW,CAAA,EAAG,OAAO,GAAG,IAAI,CAAA,EAAA,CAAA;AAExC,IAAA,OAAO,OAAA,CACJ,GAAA,CAAI,CAAC,MAAA,KAAW;AACf,MAAA,IAAI,OAAO,MAAA,KAAW,QAAA,EAAU,OAAO,MAAA;AACvC,MAAA,OAAO,CAAA,EAAG,SAAS,IAAI,CAAA,EAAA,CAAA;AAAA,IACzB,CAAC,CAAA,CACA,IAAA,CAAK,GAAG,CAAA;AAAA,EACb,CAAA;AACF;AAEO,IAAM,cAAA,GAAiB,cAAc,CAAC;;;ACrBtC,IAAM,uBAAA,GAAyD;AAAA,EACpE,EAAA,EAAI,CAAA;AAAA,EACJ,EAAA,EAAI,GAAA;AAAA,EACJ,EAAA,EAAI,GAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEO,IAAM,iBAAkC,CAAC,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI;AAErE,SAAS,kBACd,YAAA,EACa;AACb,EAAA,MAAM,MAAA,GAAwC;AAAA,IAC5C,GAAG,uBAAA;AAAA,IACH,GAAG;AAAA,GACL;AAEA,EAAA,MAAM,OAAO,CAAA,GAAI,GAAA;AAEjB,EAAA,MAAM,EAAA,GAAK,CAAC,GAAA,KAAwC;AAClD,IAAA,MAAM,QAAQ,OAAO,GAAA,KAAQ,QAAA,GAAW,GAAA,GAAM,OAAO,GAAG,CAAA;AACxD,IAAA,OAAO,qBAAqB,KAAK,CAAA,GAAA,CAAA;AAAA,EACnC,CAAA;AAEA,EAAA,MAAM,IAAA,GAAO,CAAC,GAAA,KAAwC;AACpD,IAAA,MAAM,QAAQ,OAAO,GAAA,KAAQ,QAAA,GAAW,GAAA,GAAM,OAAO,GAAG,CAAA;AACxD,IAAA,OAAO,CAAA,kBAAA,EAAqB,QAAQ,IAAI,CAAA,GAAA,CAAA;AAAA,EAC1C,CAAA;AAEA,EAAA,MAAM,OAAA,GAAU,CACd,KAAA,EACA,GAAA,KACW;AACX,IAAA,MAAM,MAAM,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,OAAO,KAAK,CAAA;AAC5D,IAAA,MAAM,MAAM,OAAO,GAAA,KAAQ,QAAA,GAAW,GAAA,GAAM,OAAO,GAAG,CAAA;AACtD,IAAA,OAAO,CAAA,kBAAA,EAAqB,GAAG,CAAA,mBAAA,EAAsB,GAAA,GAAM,IAAI,CAAA,GAAA,CAAA;AAAA,EACjE,CAAA;AAEA,EAAA,MAAM,IAAA,GAAO,CAAC,GAAA,KAA+B;AAC3C,IAAA,MAAM,KAAA,GAAQ,cAAA,CAAe,OAAA,CAAQ,GAAG,CAAA;AACxC,IAAA,IAAI,KAAA,KAAU,cAAA,CAAe,MAAA,GAAS,CAAA,EAAG;AACvC,MAAA,OAAO,GAAG,GAAG,CAAA;AAAA,IACf;AACA,IAAA,MAAM,OAAA,GAAU,cAAA,CAAe,KAAA,GAAQ,CAAC,CAAA;AACxC,IAAA,OAAO,UAAU,OAAA,CAAQ,GAAA,EAAK,OAAO,CAAA,GAAI,GAAG,GAAG,CAAA;AAAA,EACjD,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,IAAM,qBAAqB,iBAAA;;;AClDlC,IAAM,KAAA,GAAQ;AAAA,EACZ,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,QAAA,GAAW;AAAA,EACf,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,OAAA,GAAU;AAAA,EACd,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAA;AAEO,SAAS,aAAA,GAA0B;AACxC,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAM;AACzB,IAAA,IAAI,CAAA,KAAM,GAAG,OAAO,MAAA;AACpB,IAAA,OAAO,CAAA,EAAG,CAAC,CAAA,kBAAA,EAAqB,QAAA,CAAS,CAAC,CAAC,CAAA,mBAAA,EAAsB,OAAA,CAAQ,CAAC,CAAC,CAAA,iBAAA,CAAA;AAAA,EAC7E,CAAC,CAAA;AACH;AAEO,IAAM,iBAAiB,aAAA;;;AClGvB,IAAM,kBAAA,GAAkC;AAAA,EAC7C,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW,8BAAA;AAAA,IACX,OAAA,EAAS,8BAAA;AAAA,IACT,MAAA,EAAQ,4BAAA;AAAA,IACR,KAAA,EAAO;AAAA,GACT;AAAA,EACA,QAAA,EAAU;AAAA,IACR,QAAA,EAAU,GAAA;AAAA,IACV,OAAA,EAAS,GAAA;AAAA,IACT,KAAA,EAAO,GAAA;AAAA,IACP,QAAA,EAAU,GAAA;AAAA,IACV,OAAA,EAAS,GAAA;AAAA,IACT,cAAA,EAAgB,GAAA;AAAA,IAChB,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,OACE,KAAA,GAA2B,CAAC,KAAK,CAAA,EACjC,OAAA,GAII,EAAC,EACG;AACR,IAAA,MAAM;AAAA,MACJ,QAAA,GAAW,mBAAmB,QAAA,CAAS,QAAA;AAAA,MACvC,MAAA,GAAS,mBAAmB,MAAA,CAAO,SAAA;AAAA,MACnC,KAAA,GAAQ;AAAA,KACV,GAAI,OAAA;AAEJ,IAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KACtB,OAAO,MAAM,QAAA,GAAW,CAAA,GAAI,GAAG,CAAC,CAAA,EAAA,CAAA;AAElC,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KACnB,OAAO,MAAM,QAAA,GAAW,CAAA,GAAI,GAAG,CAAC,CAAA,EAAA,CAAA;AAElC,IAAA,MAAM,aAAa,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA,GAAQ,CAAC,KAAK,CAAA;AAExD,IAAA,OAAO,UAAA,CACJ,GAAA;AAAA,MACC,CAAC,IAAA,KACC,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,cAAA,CAAe,QAAQ,CAAC,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,EAAI,WAAA,CAAY,KAAK,CAAC,CAAA;AAAA,KACvE,CACC,KAAK,IAAI,CAAA;AAAA,EACd;AACF;;;AC7CO,IAAM,aAAA,GAAwB;AAAA,EACnC,aAAA,EAAe,GAAA;AAAA,EACf,GAAA,EAAK,IAAA;AAAA,EACL,SAAA,EAAW,IAAA;AAAA,EACX,MAAA,EAAQ,IAAA;AAAA,EACR,MAAA,EAAQ,IAAA;AAAA,EACR,KAAA,EAAO,IAAA;AAAA,EACP,QAAA,EAAU,IAAA;AAAA,EACV,OAAA,EAAS;AACX;;;ACCA,SAAS,SAAS,IAAA,EAAwC;AACxD,EAAA,OAAO,QAAQ,OAAO,IAAA,KAAS,YAAY,CAAC,KAAA,CAAM,QAAQ,IAAI,CAAA;AAChE;AAEA,SAAS,SAAA,CAAU,QAAa,MAAA,EAAkB;AAChD,EAAA,MAAM,MAAA,GAAS,EAAE,GAAG,MAAA,EAAO;AAC3B,EAAA,IAAI,QAAA,CAAS,MAAM,CAAA,IAAK,QAAA,CAAS,MAAM,CAAA,EAAG;AACxC,IAAA,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACnC,MAAA,IAAI,QAAA,CAAS,MAAA,CAAO,GAAG,CAAC,CAAA,EAAG;AACzB,QAAA,IAAI,EAAE,OAAO,MAAA,CAAA,EAAS;AACpB,UAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,EAAE,CAAC,GAAG,GAAG,MAAA,CAAO,GAAG,CAAA,EAAG,CAAA;AAAA,QAC9C,CAAA,MAAO;AACL,UAAA,MAAA,CAAO,GAAG,IAAI,SAAA,CAAU,MAAA,CAAO,GAAG,CAAA,EAAG,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA,QAClD;AAAA,MACF,CAAA,MAAO;AACL,QAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,EAAE,CAAC,GAAG,GAAG,MAAA,CAAO,GAAG,CAAA,EAAG,CAAA;AAAA,MAC9C;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACA,EAAA,OAAO,MAAA;AACT;AAeO,SAAS,WAAA,CAAY,OAAA,GAAwB,EAAC,EAAiB;AACpE,EAAA,MAAM,IAAA,GAAkB,OAAA,CAAQ,OAAA,EAAS,IAAA,IAAQ,OAAA;AACjD,EAAA,MAAM,WAAA,GAAc,cAAc,IAAI,CAAA;AAEtC,EAAA,MAAM,gBAAgB,OAAA,CAAQ,OAAA,GAC1B,UAAU,WAAA,EAAa,OAAA,CAAQ,OAAO,CAAA,GACtC,WAAA;AAEJ,EAAA,MAAM,mBAAmB,OAAA,CAAQ,UAAA,GAC7B,UAAU,iBAAA,EAAmB,OAAA,CAAQ,UAAU,CAAA,GAC/C,iBAAA;AAEJ,EAAA,MAAM,iBAAA,GAAoB,QAAQ,WAAA,EAAa,MAAA,GAC3C,kBAAkB,OAAA,CAAQ,WAAA,CAAY,MAAa,CAAA,GACnD,kBAAA;AAEJ,EAAA,MAAM,UACJ,OAAO,OAAA,CAAQ,OAAA,KAAY,UAAA,GACtB,QAAQ,OAAA,GACT,cAAA;AAEN,EAAA,MAAM,KAAA,GAAQ;AAAA,IACZ,YAAA,EAAc,OAAA,CAAQ,KAAA,EAAO,YAAA,IAAgB;AAAA,GAC/C;AAEA,EAAA,MAAM,OAAA,GAAW,QAAQ,OAAA,IAAwB,cAAA;AACjD,EAAA,MAAM,cAAc,OAAA,CAAQ,WAAA,GACxB,UAAU,kBAAA,EAAoB,OAAA,CAAQ,WAAW,CAAA,GACjD,kBAAA;AACJ,EAAA,MAAM,SAAS,OAAA,CAAQ,MAAA,GACnB,UAAU,aAAA,EAAe,OAAA,CAAQ,MAAM,CAAA,GACvC,aAAA;AAEJ,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,gBAAA;AAAA,IACZ,OAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA,EAAa,iBAAA;AAAA,IACb,OAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA,EAAa,OAAA,CAAQ,UAAA,IAAsB;AAAC,GAC9C;AACF;AAEO,IAAM,YAAA,GAAe,YAAY,EAAE,OAAA,EAAS,EAAE,IAAA,EAAM,OAAA,IAAW;AAC/D,IAAM,gBAAA,GAAmB,YAAY,EAAE,OAAA,EAAS,EAAE,IAAA,EAAM,MAAA,IAAU;ACtElE,IAAM,YAAA,GAAqBA,OAAA,CAAA,aAAA;AAAA,EAChC;AACF,CAAA;AAYA,IAAM,kBAAA,GAAqB,8BAAA;AAEpB,SAAS,aAAA,CAAc;AAAA,EAC5B,QAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,cAAc,gBAAA,GAAmB,QAAA;AAAA,EACjC,UAAA,GAAa,eAAA;AAAA,EACb,YAAA,GAAe,IAAA;AAAA,EACf,MAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,EAAuB;AACrB,EAAA,MAAM,aAAA,GAAsBA,mBAAW,YAAY,CAAA;AAEnD,EAAA,MAAM,CAAC,SAAA,EAAW,iBAAiB,CAAA,GAAUA,iBAAoB,MAAM;AACrE,IAAA,IAAI,OAAO,MAAA,KAAW,WAAA,EAAa,OAAO,gBAAA;AAC1C,IAAA,IAAI;AACF,MAAA,OAAQ,YAAA,CAAa,OAAA,CAAQ,UAAU,CAAA,IAAmB,gBAAA;AAAA,IAC5D,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,gBAAA;AAAA,IACT;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAUA,iBAE1C,MAAM;AACN,IAAA,IACE,OAAO,WAAW,WAAA,IAClB,CAAC,gBACD,OAAO,MAAA,CAAO,eAAe,UAAA,EAC7B;AACA,MAAA,OAAO,MAAA;AAAA,IACT;AACA,IAAA,OAAO,MAAA,CAAO,UAAA,CAAW,kBAAkB,CAAA,CAAE,UAAU,MAAA,GAAS,OAAA;AAAA,EAClE,CAAC,CAAA;AAGD,EAAA,MAAM,aAAA,GAAwCA,gBAAQ,MAAM;AAC1D,IAAA,IAAI,cAAc,QAAA,EAAU;AAC1B,MAAA,OAAO,WAAA,IAAe,OAAA;AAAA,IACxB;AACA,IAAA,OAAO,SAAA,KAAc,SAAS,MAAA,GAAS,OAAA;AAAA,EACzC,CAAA,EAAG,CAAC,SAAA,EAAW,WAAW,CAAC,CAAA;AAG3B,EAAMA,kBAAU,MAAM;AACpB,IAAA,IACE,CAAC,gBACD,OAAO,MAAA,KAAW,eAClB,OAAO,MAAA,CAAO,eAAe,UAAA,EAC7B;AACA,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,UAAA,CAAW,kBAAkB,CAAA;AACvD,IAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAA2B;AAC/C,MAAA,cAAA,CAAe,CAAA,CAAE,OAAA,GAAU,MAAA,GAAS,OAAO,CAAA;AAAA,IAC7C,CAAA;AAEA,IAAA,IAAI,OAAO,UAAA,CAAW,gBAAA,KAAqB,UAAA,EAAY;AACrD,MAAA,UAAA,CAAW,gBAAA,CAAiB,UAAU,YAAY,CAAA;AAClD,MAAA,OAAO,MAAM,UAAA,CAAW,mBAAA,CAAoB,QAAA,EAAU,YAAY,CAAA;AAAA,IACpE,CAAA,MAAA,IACE,OACE,UAAA,CAGA,WAAA,KAAgB,UAAA,EAClB;AACA,MACE,UAAA,CAGA,YAAY,YAAY,CAAA;AAC1B,MAAA,OAAO,MAEH,UAAA,CAGA,cAAA,CAAe,YAAY,CAAA;AAAA,IACjC;AAAA,EACF,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAGjB,EAAA,MAAM,WAAA,GAAoBA,gBAAsB,MAAM;AACpD,IAAA,IAAI,eAAA,EAAiB;AAEnB,MAAA,OAAO,WAAA,CAAY;AAAA,QACjB,GAAI,eAAA;AAAA,QACJ,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,aAAA;AAAA,UACN,GAAK,eAAA,CAAwB,OAAA,IAAW;AAAC;AAC3C,OACD,CAAA;AAAA,IACH;AACA,IAAA,OAAO,aAAA,KAAkB,SAAS,gBAAA,GAAmB,YAAA;AAAA,EACvD,CAAA,EAAG,CAAC,eAAA,EAAiB,aAAa,CAAC,CAAA;AAGnC,EAAMA,kBAAU,MAAM;AACpB,IAAA,IAAI,OAAO,aAAa,WAAA,EAAa;AAErC,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA,MAAM,OAAO,QAAA,CAAS,eAAA;AACtB,MAAA,IAAA,CAAK,YAAA,CAAa,WAAW,aAAa,CAAA;AAE1C,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AACjD,UAAA,IAAA,CAAK,KAAA,CAAM,WAAA,CAAY,GAAA,EAAK,KAAK,CAAA;AAAA,QACnC;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,aAAA,EAAe,aAAA,EAAe,SAAA,EAAW,MAAM,CAAC,CAAA;AAEpD,EAAA,MAAM,QAAA,GAAiBA,OAAA,CAAA,WAAA;AAAA,IACrB,CAAC,QAAA,KAAwB;AACvB,MAAA,iBAAA,CAAkB,QAAQ,CAAA;AAC1B,MAAA,IAAI;AACF,QAAA,YAAA,CAAa,OAAA,CAAQ,YAAY,QAAQ,CAAA;AAAA,MAC3C,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IACF,CAAA;AAAA,IACA,CAAC,UAAU;AAAA,GACb;AAEA,EAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,WAAA;AAAA,IACzB,CAAC,IAAA,KAAoB;AACnB,MAAA,QAAA,CAAS,IAAI,CAAA;AAAA,IACf,CAAA;AAAA,IACA,CAAC,QAAQ;AAAA,GACX;AAEA,EAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,OAAA;AAAA,IACzB,OAAO;AAAA,MACL,KAAA,EAAO,SAAA;AAAA,MACP,QAAA;AAAA,MACA,aAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA,EAAW,aAAA;AAAA,MACX;AAAA,KACF,CAAA;AAAA,IACA,CAAC,SAAA,EAAW,QAAA,EAAU,aAAA,EAAe,WAAA,EAAa,aAAa,YAAY;AAAA,GAC7E;AAEA,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,MAAM,QAAA,GAAW,SACZ,MAAA,GACD,MAAA;AAEJ,IAAA,uBACE,GAAA,CAAC,aAAa,QAAA,EAAb,EAAsB,OAAO,YAAA,EAC5B,QAAA,kBAAA,GAAA,CAACC,eAAA,EAAA,EAAqB,KAAA,EAAO,WAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,EAAE,CAAC,SAAS,GAAG,aAAA,EAAc;AAAA,QACjC,KAAA,EAAO,QAAA;AAAA,QACP,SAAA,EAAU,gBAAA;AAAA,QAET;AAAA;AAAA,OAEL,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,GAAA,CAAC,YAAA,CAAa,QAAA,EAAb,EAAsB,KAAA,EAAO,YAAA,EAC5B,QAAA,kBAAA,GAAA,CAACA,eAAA,EAAA,EAAqB,KAAA,EAAO,WAAA,EAAc,QAAA,EAAS,CAAA,EACtD,CAAA;AAEJ;AC/LO,SAAS,QAAA,GAAsC;AACpD,EAAA,MAAM,OAAA,GAAgBC,mBAAW,YAAY,CAAA;AAC7C,EAAA,MAAM,eAAeC,UAAA,EAAgB;AAErC,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAO;AAAA,MACL,GAAG,OAAA;AAAA,MACH,aAAa,OAAA,CAAQ;AAAA,KACvB;AAAA,EACF;AAEA,EAAA,IAAI,YAAA,IAAgB,aAAa,OAAA,EAAS;AACxC,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,aAAa,OAAA,CAAQ,IAAA;AAAA,MAC5B,UAAU,MAAM;AAAA,MAAC,CAAA;AAAA,MACjB,aAAA,EAAe,aAAa,OAAA,CAAQ,IAAA;AAAA,MACpC,WAAA,EAAa,MAAA;AAAA,MACb,WAAA,EAAa,YAAA;AAAA,MACb,SAAA,EAAW,aAAa,OAAA,CAAQ,IAAA;AAAA,MAChC,cAAc,MAAM;AAAA,MAAC,CAAA;AAAA,MACrB,WAAA,EAAa;AAAA,KACf;AAAA,EACF;AAGA,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,OAAA;AAAA,IACP,UAAU,MAAM;AAAA,IAAC,CAAA;AAAA,IACjB,aAAA,EAAe,OAAA;AAAA,IACf,WAAA,EAAa,MAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,SAAA,EAAW,OAAA;AAAA,IACX,cAAc,MAAM;AAAA,IAAC,CAAA;AAAA,IACrB,WAAA,EAAa;AAAA,GACf;AACF;ACzCO,SAAS,WAAA,CAAY;AAAA,EAC1B,UAAA,GAAa,eAAA;AAAA,EACb,cAAAC,aAAAA,GAAe,QAAA;AAAA,EACf,SAAA,GAAY,YAAA;AAAA,EACZ;AACF,CAAA,EAAqB;AACnB,EAAA,MAAM,aAAA,GAAgB,CAAA;AAAA;AAAA,eAAA,EAEP,UAAU,CAAA;AAAA,eAAA,EACVA,aAAY,CAAA;AAAA,gBAAA,EACX,SAAS,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAA,CAAA;AAWzB,EAAA,uBACEC,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,uBAAA,EAAyB,EAAE,MAAA,EAAQ,aAAA,EAAc;AAAA,MACjD,wBAAA,EAAwB;AAAA;AAAA,GAC1B;AAEJ;;;ACvCA,IAAM,mBAAA,uBAA0B,GAAA,CAAY;AAAA,EAC1C,IAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAC,CAAA;AAQM,SAAS,wBACd,aAAA,EACgC;AAChC,EAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAI,mBAAmB,CAAA;AAE9C,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,aAAA,CAAc,QAAQ,CAAC,IAAA,KAAS,UAAA,CAAW,GAAA,CAAI,IAAc,CAAC,CAAA;AAAA,EAChE;AAEA,EAAA,OAAO,CAAC,IAAA,KAA+B;AACrC,IAAA,IAAI,OAAO,IAAA,KAAS,QAAA,IAAY,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,EAAG;AACpD,MAAA,OAAO,KAAA;AAAA,IACT;AACA,IAAA,OAAO,CAAC,UAAA,CAAW,GAAA,CAAI,IAAc,CAAA;AAAA,EACvC,CAAA;AACF;AAMO,IAAM,wBAAwB,uBAAA;;;AC9BrC,IAAM,iBAAA,GAA8C;AAAA,EAClD,CAAA,EAAG,CAAC,QAAQ,CAAA;AAAA,EACZ,MAAA,EAAQ,CAAC,QAAQ,CAAA;AAAA,EACjB,EAAA,EAAI,CAAC,WAAW,CAAA;AAAA,EAChB,SAAA,EAAW,CAAC,WAAW,CAAA;AAAA,EACvB,EAAA,EAAI,CAAC,aAAa,CAAA;AAAA,EAClB,WAAA,EAAa,CAAC,aAAa,CAAA;AAAA,EAC3B,EAAA,EAAI,CAAC,cAAc,CAAA;AAAA,EACnB,YAAA,EAAc,CAAC,cAAc,CAAA;AAAA,EAC7B,EAAA,EAAI,CAAC,YAAY,CAAA;AAAA,EACjB,UAAA,EAAY,CAAC,YAAY,CAAA;AAAA,EACzB,EAAA,EAAI,CAAC,cAAc,CAAA;AAAA,EACnB,YAAA,EAAc,CAAC,cAAc,CAAA;AAAA,EAC7B,EAAA,EAAI,CAAC,aAAa,CAAA;AAAA,EAClB,WAAA,EAAa,CAAC,aAAa,CAAA;AAAA,EAE3B,CAAA,EAAG,CAAC,SAAS,CAAA;AAAA,EACb,OAAA,EAAS,CAAC,SAAS,CAAA;AAAA,EACnB,EAAA,EAAI,CAAC,YAAY,CAAA;AAAA,EACjB,UAAA,EAAY,CAAC,YAAY,CAAA;AAAA,EACzB,EAAA,EAAI,CAAC,cAAc,CAAA;AAAA,EACnB,YAAA,EAAc,CAAC,cAAc,CAAA;AAAA,EAC7B,EAAA,EAAI,CAAC,eAAe,CAAA;AAAA,EACpB,aAAA,EAAe,CAAC,eAAe,CAAA;AAAA,EAC/B,EAAA,EAAI,CAAC,aAAa,CAAA;AAAA,EAClB,WAAA,EAAa,CAAC,aAAa,CAAA;AAAA,EAC3B,EAAA,EAAI,CAAC,eAAe,CAAA;AAAA,EACpB,aAAA,EAAe,CAAC,eAAe,CAAA;AAAA,EAC/B,EAAA,EAAI,CAAC,cAAc,CAAA;AAAA,EACnB,YAAA,EAAc,CAAC,cAAc,CAAA;AAAA,EAE7B,GAAA,EAAK,CAAC,KAAK,CAAA;AAAA,EACX,MAAA,EAAQ,CAAC,QAAQ,CAAA;AAAA,EACjB,SAAA,EAAW,CAAC,WAAW;AACzB,CAAA;AAKA,SAAS,kBAAA,CAAmB,SAAkC,IAAA,EAAkC;AAC9F,EAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,UAAU,OAAO,MAAA;AAC9C,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAC5B,EAAA,IAAI,OAAA,GAAe,OAAA;AACnB,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,IAAI,OAAA,IAAW,OAAO,OAAA,KAAY,QAAA,IAAY,QAAQ,OAAA,EAAS;AAC7D,MAAA,OAAA,GAAU,QAAQ,IAAI,CAAA;AAAA,IACxB,CAAA,MAAO;AACL,MAAA,OAAO,MAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,OAAO,OAAA,KAAY,QAAA,GAAW,OAAA,GAAU,MAAA;AACjD;AAKA,SAAS,YAAA,CAAa,OAAqB,KAAA,EAAiB;AAC1D,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,MAAM,QAAA,GAAW,kBAAA,CAAmB,KAAA,CAAM,OAAA,EAAS,KAAK,CAAA;AACxD,EAAA,OAAO,QAAA,IAAY,KAAA;AACrB;AAKA,SAAS,aAAA,CAAc,OAAqB,KAAA,EAAiB;AAC3D,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,IAAS,MAAM,MAAA,EAAQ;AACtD,IAAA,OAAO,KAAA,CAAM,OAAO,KAAkC,CAAA;AAAA,EACxD;AACA,EAAA,OAAO,KAAA;AACT;AAKA,SAAS,qBAAA,CACP,KAAA,EACA,IAAA,EACA,KAAA,EACqB;AACrB,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,SAAa,EAAC;AAGnD,EAAA,IAAI,QAAQ,iBAAA,EAAmB;AAC7B,IAAA,MAAM,QAAA,GAAW,kBAAkB,IAAI,CAAA;AACvC,IAAA,MAAM,YAAY,OAAO,KAAA,KAAU,WAAW,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA;AACrE,IAAA,MAAM,SAA8B,EAAC;AACrC,IAAA,KAAA,MAAW,WAAW,QAAA,EAAU;AAC9B,MAAA,MAAA,CAAO,OAAO,CAAA,GAAI,SAAA;AAAA,IACpB;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,OAAO,EAAE,eAAA,EAAiB,YAAA,CAAa,KAAA,EAAO,KAAK,CAAA,EAAE;AAAA,EACvD;AAGA,EAAA,IACE,SAAS,OAAA,IACT,IAAA,KAAS,qBACT,IAAA,KAAS,aAAA,IACT,SAAS,cAAA,EACT;AACA,IAAA,OAAO,EAAE,CAAC,IAAI,GAAG,YAAA,CAAa,KAAA,EAAO,KAAK,CAAA,EAAE;AAAA,EAC9C;AAGA,EAAA,IAAI,SAAS,WAAA,EAAa;AACxB,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACrD,MAAA,OAAO,EAAE,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAE;AAAA,IAC3C;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,IAAI,SAAS,WAAA,EAAa;AACxB,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACrD,MAAA,OAAO,EAAE,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAE;AAAA,IAC3C;AACA,IAAA,OAAO,EAAE,WAAW,KAAA,EAAM;AAAA,EAC5B;AAGA,EAAA,IAAI,SAAS,cAAA,EAAgB;AAC3B,IAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,MAAA,MAAM,MAAA,GAAS,KAAA,CAAM,KAAA,EAAO,YAAA,IAAgB,CAAA;AAC5C,MAAA,OAAO,EAAE,YAAA,EAAc,CAAA,EAAG,KAAA,GAAQ,MAAM,CAAA,EAAA,CAAA,EAAK;AAAA,IAC/C;AACA,IAAA,OAAO,EAAE,cAAc,KAAA,EAAM;AAAA,EAC/B;AAGA,EAAA,IAAI,SAAS,QAAA,EAAU;AACrB,IAAA,OAAO,EAAE,MAAA,EAAQ,aAAA,CAAc,KAAA,EAAO,KAAK,CAAA,EAAE;AAAA,EAC/C;AAGA,EAAA,OAAO,EAAE,CAAC,IAAI,GAAG,KAAA,EAAM;AACzB;AAEA,SAASC,UAAS,GAAA,EAAsC;AACtD,EAAA,OAAO,GAAA,KAAQ,QAAQ,OAAO,GAAA,KAAQ,YAAY,CAAC,KAAA,CAAM,QAAQ,GAAG,CAAA;AACtE;AAKA,SAAS,kBAAkB,GAAA,EAAmB;AAC5C,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,EAAG,OAAO,IAAA;AAC/B,EAAA,IAAIA,SAAAA,CAAS,GAAG,CAAA,EAAG;AACjB,IAAA,OAAO,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,cAAA,CAAe,QAAA,CAAS,CAAkB,CAAC,CAAA;AAAA,EACjF;AACA,EAAA,OAAO,KAAA;AACT;AAKA,SAAS,aAAA,CACP,OACA,QAAA,EACqB;AACrB,EAAA,MAAM,SAA8B,EAAC;AAErC,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,QAAQ,CAAA,EAAG;AACnD,IAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AAG3C,IAAA,IAAI,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,IAAK,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,IAAK,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,EAAG;AACrE,MAAA,IAAI,OAAO,UAAU,UAAA,EAAY;AAC/B,QAAA,MAAA,CAAO,GAAG,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,MACjD,CAAA,MAAA,IAAWA,SAAAA,CAAS,KAAK,CAAA,EAAG;AAC1B,QAAA,MAAA,CAAO,GAAG,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,KAAiB,CAAA;AAAA,MACtD;AACA,MAAA;AAAA,IACF;AAGA,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,MAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,KAAA,EAAO,KAAA,KAAU;AAC9B,QAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AAC3C,QAAA,MAAM,KAAA,GAAQ,eAAe,KAAK,CAAA;AAClC,QAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,QAAA,MAAMC,SAAAA,GAAW,qBAAA,CAAsB,KAAA,EAAO,GAAA,EAAK,KAAK,CAAA;AACxD,QAAA,IAAI,UAAU,IAAA,EAAM;AAClB,UAAA,MAAA,CAAO,MAAA,CAAO,QAAQA,SAAQ,CAAA;AAAA,QAChC,CAAA,MAAO;AACL,UAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,WAAA,CAAY,EAAA,CAAG,KAAK,CAAA;AACxC,UAAA,MAAA,CAAO,KAAK,CAAA,GAAI;AAAA,YACd,GAAI,MAAA,CAAO,KAAK,CAAA,IAAK,EAAC;AAAA,YACtB,GAAGA;AAAA,WACL;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AACD,MAAA;AAAA,IACF;AAGA,IAAA,IAAI,iBAAA,CAAkB,KAAK,CAAA,EAAG;AAC5B,MAAA,MAAM,OAAA,GAAU,KAAA;AAChB,MAAA,KAAA,MAAW,CAAC,KAAA,EAAO,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAA,EAAG;AACpD,QAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AAE3C,QAAA,MAAMA,SAAAA,GAAW,qBAAA,CAAsB,KAAA,EAAO,GAAA,EAAK,KAAK,CAAA;AACxD,QAAA,IAAI,UAAU,IAAA,EAAM;AAClB,UAAA,MAAA,CAAO,MAAA,CAAO,QAAQA,SAAQ,CAAA;AAAA,QAChC,CAAA,MAAA,IAAW,cAAA,CAAe,QAAA,CAAS,KAAsB,CAAA,EAAG;AAC1D,UAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,WAAA,CAAY,EAAA,CAAG,KAAsB,CAAA;AACzD,UAAA,MAAA,CAAO,KAAK,CAAA,GAAI;AAAA,YACd,GAAI,MAAA,CAAO,KAAK,CAAA,IAAK,EAAC;AAAA,YACtB,GAAGA;AAAA,WACL;AAAA,QACF;AAAA,MACF;AACA,MAAA;AAAA,IACF;AAGA,IAAA,IAAID,SAAAA,CAAS,KAAK,CAAA,EAAG;AACnB,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,KAAiB,CAAA;AACpD,MAAA;AAAA,IACF;AAGA,IAAA,MAAM,QAAA,GAAW,qBAAA,CAAsB,KAAA,EAAO,GAAA,EAAK,KAAK,CAAA;AACxD,IAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,QAAQ,CAAA;AAAA,EAChC;AAEA,EAAA,OAAO,MAAA;AACT;AAaO,SAAS,OAAA,CACd,YACA,EAAA,EACqB;AACrB,EAAA,IAAI,CAAC,EAAA,EAAI,OAAO,EAAC;AACjB,EAAA,MAAM,QACJ,UAAA,IAAc,OAAO,UAAA,CAAW,OAAA,KAAY,aACxC,UAAA,GACA,YAAA;AAGN,EAAA,IAAI,OAAO,OAAO,UAAA,EAAY;AAC5B,IAAA,OAAO,aAAA,CAAc,KAAA,EAAO,EAAA,CAAG,KAAK,CAAC,CAAA;AAAA,EACvC;AAGA,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,EAAE,CAAA,EAAG;AACrB,IAAA,OAAO,EAAA,CAAG,MAAA,CAA4B,CAAC,GAAA,EAAK,IAAA,KAAS;AACnD,MAAA,IAAI,CAAC,MAAM,OAAO,GAAA;AAClB,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,KAAA,EAAO,IAAI,CAAA;AAClC,MAAA,OAAO,eAAA,CAAgB,KAAK,MAAM,CAAA;AAAA,IACpC,CAAA,EAAG,EAAE,CAAA;AAAA,EACP;AAGA,EAAA,IAAIA,SAAAA,CAAS,EAAE,CAAA,EAAG;AAChB,IAAA,OAAO,aAAA,CAAc,OAAO,EAAE,CAAA;AAAA,EAChC;AAEA,EAAA,OAAO,EAAC;AACV;AAKA,SAAS,eAAA,CACP,QACA,MAAA,EACqB;AACrB,EAAA,MAAM,MAAA,GAA8B,EAAE,GAAG,MAAA,EAAO;AAEhD,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AACjD,IAAA,IACEA,UAAS,KAAK,CAAA,IACdA,UAAS,MAAA,CAAO,GAAG,CAAC,CAAA,IACpB,CAAC,MAAM,OAAA,CAAQ,KAAK,KACpB,CAAC,KAAA,CAAM,QAAQ,MAAA,CAAO,GAAG,CAAC,CAAA,EAC1B;AACA,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,eAAA,CAAgB,MAAA,CAAO,GAAG,GAAG,KAAK,CAAA;AAAA,IAClD,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,KAAA;AAAA,IAChB;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;;;AChSO,SAAS,yBAAA,CACd,KAAA,EACA,OAAA,EACA,KAAA,EACiC;AACjC,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,GAAO,MAAA,EAAQ,mBAAkB,GAAI,OAAA;AACnD,EAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,KAAA,CAAM,UAAA,GAAa,IAAI,CAAA,EAAG;AACtC,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,eAAA,GAAkB,KAAA,CAAM,UAAA,CAAW,IAAI,CAAA;AAC7C,EAAA,MAAM,iBAAiB,eAAA,CAAgB,cAAA;AACvC,EAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,IAAI,iBAAA,EAAmB;AACrB,IAAA,MAAM,QAAA,GAAW,iBAAA,CAAkB,KAAA,EAAO,cAAc,CAAA;AACxD,IAAA,IAAI,UAAU,OAAO,QAAA;AAAA,EACvB;AAGA,EAAA,MAAM,SAAA,GAAY,KAAK,WAAA,EAAY;AACnC,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,IAAA,CAAK,cAAc,CAAA,CAAE,IAAA;AAAA,IAC7C,CAAC,CAAA,KAAM,CAAA,CAAE,WAAA,EAAY,KAAM;AAAA,GAC7B;AAEA,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,MAAM,QAAA,GAAW,eAAe,UAAU,CAAA;AAC1C,IAAA,IAAI,OAAO,aAAa,UAAA,EAAY;AAClC,MAAA,OAAO,SAAS,EAAE,KAAA,EAAO,YAAY,KAAA,CAAM,UAAA,IAAc,OAAO,CAAA;AAAA,IAClE;AACA,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,OAAO,MAAA;AACT;ACxBO,SAAS,MAAA,CAId,SAAA,EACA,OAAA,GAAqC,EAAC,EACtC;AACA,EAAA,MAAM;AAAA,IACJ,IAAA;AAAA,IACA,IAAA,GAAO,MAAA;AAAA,IACP,KAAA;AAAA,IACA,MAAA;AAAA,IACA,iBAAA,EAAmB,uBAAA;AAAA,IACnB,MAAA,GAAS;AAAA,GACX,GAAI,OAAA;AAEJ,EAAA,MAAM,yBAAA,GAA4B,0BAC9B,CAAC,IAAA,KACC,sBAAsB,IAAI,CAAA,IAAK,uBAAA,CAAwB,IAAI,CAAA,GAC7D,qBAAA;AAEJ,EAAA,MAAM,gBAAgB,KAAA,KAAU,IAAA,GAAO,GAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,GAAK,MAAA,CAAA;AAE3D,EAAA,MAAM,cAAA,GAIF;AAAA,IACF,iBAAA,EAAmB;AAAA,GACrB;AAEA,EAAA,IAAI,kBAAkB,MAAA,EAAW;AAC/B,IAAA,cAAA,CAAe,KAAA,GAAQ,aAAA;AAAA,EACzB;AACA,EAAA,IAAI,WAAW,MAAA,EAAW;AACxB,IAAA,cAAA,CAAe,MAAA,GAAS,MAAA;AAAA,EAC1B;AAEA,EAAA,MAAM,cAAA,GAAiB,aAAA,CAAc,SAAA,EAAkB,cAAc,CAAA;AAErE,EAAA,OAAO,IACF,cAAA,KAGA;AACH,IAAA,MAAM,qBAAA,GAAwB,cAAA,CAAe,GAAA,CAAI,CAAC,aAAA,KAAkB;AAClE,MAAA,IAAI,OAAO,kBAAkB,UAAA,EAAY;AACvC,QAAA,OAAO,CAAC,QAAA,KAAkB;AACxB,UAAA,MAAM,WAAA,GACJ,SAAS,KAAA,IAAS,OAAO,SAAS,KAAA,CAAM,OAAA,KAAY,UAAA,GAC/C,QAAA,CAAS,KAAA,GACV,YAAA;AACN,UAAA,OAAO,aAAA,CAAc;AAAA,YACnB,GAAG,QAAA;AAAA,YACH,KAAA,EAAO;AAAA,WACR,CAAA;AAAA,QACH,CAAA;AAAA,MACF;AACA,MAAA,OAAO,aAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,OAAO,cAAA;AAAA,MAEL,GAAI,qBAAA;AAAA;AAAA,MAGJ,CAAC,KAAA,KAAe;AACd,QAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,QAAA,MAAM,WAAA,GACJ,MAAM,KAAA,IAAS,OAAO,MAAM,KAAA,CAAM,OAAA,KAAY,UAAA,GACzC,KAAA,CAAM,KAAA,GACP,YAAA;AACN,QAAA,OAAO,yBAAA,CAA0B,WAAA,EAAa,OAAA,EAAS,KAAK,CAAA;AAAA,MAC9D,CAAA;AAAA;AAAA,MAGA,CAAC,KAAA,KAAe;AACd,QAAA,IAAI,MAAA,IAAU,CAAC,KAAA,CAAM,EAAA,EAAI,OAAO,IAAA;AAChC,QAAA,MAAM,WAAA,GACJ,MAAM,KAAA,IAAS,OAAO,MAAM,KAAA,CAAM,OAAA,KAAY,UAAA,GACzC,KAAA,CAAM,KAAA,GACP,YAAA;AACN,QAAA,OAAO,OAAA,CAAQ,WAAA,EAAa,KAAA,CAAM,EAAE,CAAA;AAAA,MACtC;AAAA,KACF;AAAA,EACF,CAAA;AACF;;;AClGO,SAAS,cAAc,MAAA,EAA8B;AAC1D,EAAA,MAAM,UAAoB,EAAC;AAE3B,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,IAAI,CAAC,KAAA,IAAS,KAAA,KAAU,CAAA,EAAG;AAE3B,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,OAAO,UAAU,QAAA,EAAU;AAC1D,MAAA,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAA,CAAE,IAAA,EAAK;AACnC,MAAA,IAAI,OAAA,EAAS,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA;AAAA,IACnC,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AAC/B,MAAA,MAAM,MAAA,GAAS,UAAA,CAAW,GAAG,KAAK,CAAA;AAClC,MAAA,IAAI,MAAA,EAAQ,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,IACjC,CAAA,MAAA,IAAW,OAAO,KAAA,KAAU,QAAA,EAAU;AACpC,MAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,EAAG;AAChD,QAAA,IAAI,KAAA,IAAS,GAAA,CAAI,IAAA,EAAK,EAAG;AACvB,UAAA,OAAA,CAAQ,IAAA,CAAK,GAAA,CAAI,IAAA,EAAM,CAAA;AAAA,QACzB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;;;AC7BO,SAAS,oBAAA,CACd,iBACA,UAAA,EACA;AAAA,EACE,wBAAA,GAA2B;AAC7B,CAAA,GAA4C,EAAC,EACzB;AACpB,EAAA,OAAO,SAAS,YAAY,KAAA,EAAU;AACpC,IAAA,eAAA,GAAkB,KAAK,CAAA;AAEvB,IAAA,IAAI,CAAC,wBAAA,IAA4B,CAAC,KAAA,CAAM,gBAAA,EAAkB;AACxD,MAAA,UAAA,GAAa,KAAK,CAAA;AAAA,IACpB;AAAA,EACF,CAAA;AACF;ACNO,SAAS,cACd,OAAA,EAC0B;AAC1B,EAAA,IAAI,CAAC,OAAA,IAAW,CAAOE,OAAA,CAAA,cAAA,CAAe,OAAO,CAAA,EAAG;AAC9C,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,MAAM,cAAc,MAAA,CAAO,wBAAA,CAAyB,OAAA,CAAQ,KAAA,EAAO,KAAK,CAAA,EAAG,GAAA;AAC3E,EAAA,MAAM,cAAA,GAAiB,OAAA,CAAQ,WAAA,IAAe,gBAAA,IAAoB,WAAW,CAAA;AAC7E,EAAA,IAAI,cAAA,EAAgB;AAClB,IAAA,MAAM,IAAK,OAAA,CAA8C,GAAA;AACzD,IAAA,OAAO,CAAA,IAAK,MAAA;AAAA,EACd;AAGA,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,wBAAA,CAAyB,OAAA,EAAS,KAAK,CAAA,EAAG,GAAA;AACvE,EAAA,MAAM,gBAAA,GAAmB,OAAA,CAAQ,aAAA,IAAiB,gBAAA,IAAoB,aAAa,CAAA;AACnF,EAAA,IAAI,gBAAA,EAAkB;AACpB,IAAA,MAAM,CAAA,GAAK,QAAQ,KAAA,CAAiC,GAAA;AACpD,IAAA,OAAO,CAAA,IAAK,MAAA;AAAA,EACd;AAGA,EAAA,MAAM,GAAA,GACH,OAAA,CAAQ,KAAA,CAAiC,GAAA,IACzC,OAAA,CAA8C,GAAA;AACjD,EAAA,OAAO,GAAA,IAAO,MAAA;AAChB;ACtCO,SAAS,MAAA,CAAU,KAAqB,KAAA,EAAuB;AACpE,EAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,IAAA,GAAA,CAAI,KAAK,CAAA;AAAA,EACX,CAAA,MAAA,IAAW,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW;AAC5C,IAAC,IAAyC,OAAA,GAAU,KAAA;AAAA,EACtD;AACF;AAMO,SAAS,gBACX,IAAA,EACmB;AAEtB,EAAA,OAAaC,OAAA,CAAA,WAAA,CAAY,CAAC,OAAA,KAAsB;AAC9C,IAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,MAAA,MAAA,CAAO,KAAK,OAAO,CAAA;AAAA,IACrB;AAAA,EACF,GAAG,IAAI,CAAA;AACT;;;ACdO,IAAM,IAAA,GAAaC,OAAA,CAAA,UAAA;AAAA,EACxB,SAASC,KAAAA,CAAK,KAAA,EAAO,YAAA,EAAc;AACjC,IAAA,MAAM,EAAE,QAAA,EAAU,GAAG,SAAA,EAAU,GAAI,KAAA;AAEnC,IAAA,IAAUD,OAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,EAAG;AAClC,MAAA,OAAaA,OAAA,CAAA,YAAA;AAAA,QACX,QAAA;AAAA,QACA,UAAA;AAAA,UACE,SAAA;AAAA,UACA,QAAA,CAAS,KAAA;AAAA,UACT,YAAA;AAAA,UACA,cAAc,QAAQ;AAAA;AACxB,OACF;AAAA,IACF;AAEA,IAAA,IAAUA,OAAA,CAAA,QAAA,CAAS,KAAA,CAAM,QAAQ,CAAA,GAAI,CAAA,EAAG;AACtC,MAAMA,OAAA,CAAA,QAAA,CAAS,KAAK,IAAI,CAAA;AAAA,IAC1B;AAEA,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;AAKnB,SAAS,UAAA,CACP,SAAA,EACA,UAAA,EACA,OAAA,EACA,QAAA,EACyB;AACzB,EAAA,MAAM,aAAA,GAAyC,EAAE,GAAG,UAAA,EAAW;AAE/D,EAAA,KAAA,MAAW,YAAY,SAAA,EAAW;AAChC,IAAA,MAAM,aAAA,GAAgB,UAAU,QAAQ,CAAA;AACxC,IAAA,MAAM,cAAA,GAAiB,WAAW,QAAQ,CAAA;AAE1C,IAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,IAAA,CAAK,QAAQ,CAAA;AAE/C,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,IACE,OAAO,aAAA,KAAkB,UAAA,IACzB,OAAO,mBAAmB,UAAA,EAC1B;AACA,QAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,oBAAA;AAAA,UACxB,cAAA;AAAA,UACA;AAAA,SACF;AAAA,MACF,CAAA,MAAA,IAAW,OAAO,aAAA,KAAkB,UAAA,EAAY;AAC9C,QAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,aAAA;AAAA,MAC5B;AAAA,IACF,CAAA,MAAA,IAAW,aAAa,WAAA,EAAa;AACnC,MAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,UAAA;AAAA,QACxB,aAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,CAAA,MAAA,IAAW,aAAa,OAAA,EAAS;AAC/B,MAAA,aAAA,CAAc,QAAQ,CAAA,GAAI;AAAA,QACxB,GAAI,aAAA;AAAA,QACJ,GAAI;AAAA,OACN;AAAA,IACF,CAAA,MAAO;AACL,MAAA,aAAA,CAAc,QAAQ,CAAA,GACpB,aAAA,KAAkB,MAAA,GAAY,aAAA,GAAgB,cAAA;AAAA,IAClD;AAAA,EACF;AAGA,EAAA,aAAA,CAAc,GAAA,GAAM,CAAC,IAAA,KAA6B;AAChD,IAAA,MAAA,CAAO,UAAU,IAAI,CAAA;AACrB,IAAA,MAAA,CAAO,SAAS,IAAI,CAAA;AAAA,EACtB,CAAA;AAEA,EAAA,OAAO,aAAA;AACT;ACzFO,IAAM,kBAAA,GAA2BE,sBAEtC,MAAS;AAKJ,SAAS,qBAAA,GAA6D;AAC3E,EAAA,OAAaA,mBAAW,kBAAkB,CAAA;AAC5C;ACRA,IAAM,aAAA,GAAgB,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAWtB,IAAM,YAAA,GAAe,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AASrB,IAAM,eAAA,GAAkB,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAsCxB,IAAM,eAAA,GAAkB,OAAO,MAAA,EAAQ;AAAA,EACrC,IAAA,EAAM,oBAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAC,CAAA,CAAE;AAAA,EACD,QAAA,EAAU,QAAA;AAAA,EACV,aAAA,EAAe,MAAA;AAAA,EACf,QAAA,EAAU,UAAA;AAAA,EACV,MAAA,EAAQ,CAAA;AAAA,EACR,GAAA,EAAK,CAAA;AAAA,EACL,KAAA,EAAO,CAAA;AAAA,EACP,MAAA,EAAQ,CAAA;AAAA,EACR,IAAA,EAAM,CAAA;AAAA,EACN,YAAA,EAAc;AAChB,CAAC,CAAA;AAED,IAAM,gBAAA,GAAmB,OAAO,MAAA,EAAQ;AAAA,EACtC,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,eAAe,IAAA,KAAS;AACrC,CAAC,CAAA,CAA8C,CAAC,EAAE,SAAA,EAAW,SAAQ,MAAO;AAAA,EAC1E,QAAA,EAAU,UAAA;AAAA,EACV,YAAA,EAAc,KAAA;AAAA,EACd,eAAA,EAAiB,cAAA;AAAA,EACjB,OAAA,EAAS,GAAA;AAAA,EACT,SAAA,EAAW,GAAG,aAAa,CAAA,mCAAA,CAAA;AAAA,EAC3B,yCAAA,EAA2C;AAAA,IACzC,iBAAA,EAAmB,gBAAA;AAAA,IACnB,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA,GAAI,SAAA,IAAa;AAAA,IACf,SAAA,EAAW,GAAG,eAAe,CAAA,kCAAA,CAAA;AAAA,IAC7B,yCAAA,EAA2C;AAAA,MACzC,SAAA,EAAW;AAAA;AACb,GACF;AAAA,EACA,GAAI,OAAA,IAAW;AAAA,IACb,OAAA,EAAS,CAAA;AAAA,IACT,SAAA,EAAW,GAAG,YAAY,CAAA,4CAAA,CAAA;AAAA,IAC1B,yCAAA,EAA2C;AAAA,MACzC,iBAAA,EAAmB,gBAAA;AAAA,MACnB,kBAAA,EAAoB;AAAA;AACtB;AAEJ,CAAA,CAAE,CAAA;AAKK,IAAM,WAAA,GAAoBC,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASC,YAAAA,CAAY,KAAA,EAAO,GAAA,EAAK;AAC/B,IAAA,MAAM,EAAE,MAAA,EAAQ,UAAA,GAAa,OAAO,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAC3D,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUD,OAAA,CAAA,QAAA,CAAuB,EAAE,CAAA;AAC7D,IAAA,MAAM,OAAA,GAAgBA,eAAO,CAAC,CAAA;AAC9B,IAAA,MAAM,YAAA,GAAqBA,eAA+B,IAAI,CAAA;AAC9D,IAAA,MAAM,aAAA,GAAsBA,OAAA,CAAA,MAAA,CAAwC,EAAE,CAAA;AACtE,IAAA,MAAM,YAAA,GAAqBA,eAAO,IAAI,CAAA;AAEtC,IAAMA,kBAAU,MAAM;AACpB,MAAA,YAAA,CAAa,OAAA,GAAU,IAAA;AACvB,MAAA,OAAO,MAAM;AACX,QAAA,YAAA,CAAa,OAAA,GAAU,KAAA;AACvB,QAAA,aAAA,CAAc,QAAQ,OAAA,CAAQ,CAAC,EAAA,KAAO,YAAA,CAAa,EAAE,CAAC,CAAA;AACtD,QAAA,aAAA,CAAc,UAAU,EAAC;AAAA,MAC3B,CAAA;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,KAAA,GAAcA,OAAA,CAAA,WAAA;AAAA,MAClB,CACE,KAAA,EACA,OAAA,GAAmD,EAAC,KACjD;AACH,QAAA,MAAM,EAAE,OAAA,EAAAE,QAAAA,GAAU,OAAO,MAAA,GAAS,UAAA,IAAcA,UAAQ,GAAI,OAAA;AAE5D,QAAA,MAAM,YAAY,YAAA,CAAa,OAAA;AAC/B,QAAA,IAAI,CAAC,SAAA,EAAW;AAEhB,QAAA,MAAM,IAAA,GAAO,UAAU,qBAAA,EAAsB;AAE7C,QAAA,IAAI,OAAA;AACJ,QAAA,IAAI,OAAA;AACJ,QAAA,IAAI,UAAA;AAEJ,QAAA,MAAM,cAAc,KAAA,EAAO,WAAA;AAC3B,QAAA,IAAI,OAAA;AACJ,QAAA,IAAI,OAAA;AAEJ,QAAA,IACE,WAAA,IACA,SAAA,IAAa,WAAA,IACb,SAAA,IAAa,WAAA,IACb,OAAQ,WAAA,CAA2B,OAAA,KAAY,QAAA,IAC/C,OAAQ,WAAA,CAA2B,OAAA,KAAY,QAAA,EAC/C;AACA,UAAA,OAAA,GAAW,WAAA,CAA2B,OAAA;AACtC,UAAA,OAAA,GAAW,WAAA,CAA2B,OAAA;AAAA,QACxC,CAAA,MAAA,IACE,eACA,SAAA,IAAa,WAAA,IACZ,YAA2B,OAAA,IAC3B,WAAA,CAA2B,OAAA,CAAQ,MAAA,GAAS,CAAA,EAC7C;AACA,UAAA,MAAM,KAAA,GAAS,WAAA,CAA2B,OAAA,CAAQ,CAAC,CAAA;AACnD,UAAA,IAAI,KAAA,EAAO;AACT,YAAA,OAAA,GAAU,KAAA,CAAM,OAAA;AAChB,YAAA,OAAA,GAAU,KAAA,CAAM,OAAA;AAAA,UAClB;AAAA,QACF;AAEA,QAAA,IAAI,MAAA,IAAU,OAAA,KAAY,MAAA,IAAa,OAAA,KAAY,MAAA,EAAW;AAC5D,UAAA,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,KAAA,GAAQ,CAAC,CAAA;AACnC,UAAA,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA;AACpC,UAAA,UAAA,GAAa,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,KAAA,EAAO,KAAK,MAAM,CAAA;AAAA,QAC/C,CAAA,MAAO;AACL,UAAA,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,IAAA,CAAK,IAAI,CAAA;AACxC,UAAA,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,IAAA,CAAK,GAAG,CAAA;AAEvC,UAAA,MAAM,KAAA,GACJ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,WAAA,GAAc,OAAO,CAAA,EAAG,OAAO,CAAA,GAAI,CAAA,GAAI,CAAA;AACrE,UAAA,MAAM,KAAA,GACJ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,YAAA,GAAe,OAAO,CAAA,EAAG,OAAO,CAAA,GAAI,CAAA,GAAI,CAAA;AACtE,UAAA,UAAA,GAAa,IAAA,CAAK,IAAA,CAAK,KAAA,IAAS,CAAA,GAAI,SAAS,CAAC,CAAA;AAAA,QAChD;AAEA,QAAA,MAAM,aAAa,OAAA,CAAQ,OAAA;AAC3B,QAAA,OAAA,CAAQ,OAAA,IAAW,CAAA;AAEnB,QAAA,UAAA,CAAW,CAAC,IAAA,KAAS;AAAA,UACnB,GAAG,IAAA;AAAA,UACH;AAAA,YACE,GAAA,EAAK,UAAA;AAAA,YACL,OAAA;AAAA,YACA,OAAA;AAAA,YACA,UAAA;AAAA,YACA,SAAA,EAAWA,QAAAA;AAAA,YACX,OAAA,EAAS;AAAA;AACX,SACD,CAAA;AAAA,MACH,CAAA;AAAA,MACA,CAAC,UAAU;AAAA,KACb;AAEA,IAAA,MAAM,IAAA,GAAaF,oBAAY,MAAM;AACnC,MAAA,UAAA,CAAW,CAAC,IAAA,KAAS;AACnB,QAAA,IAAI,IAAA,CAAK,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAC9B,QAAA,OAAO,IAAA,CAAK,IAAI,CAAC,MAAA,MAAY,EAAE,GAAG,MAAA,EAAQ,OAAA,EAAS,IAAA,EAAK,CAAE,CAAA;AAAA,MAC5D,CAAC,CAAA;AAED,MAAA,MAAM,cAAA,GACJ,OAAO,MAAA,KAAW,WAAA,IAClB,OAAO,UAAA,IACP,MAAA,CAAO,UAAA,CAAW,kCAAkC,CAAA,CAAE,OAAA;AACxD,MAAA,MAAM,YAAA,GAAe,iBAAiB,EAAA,GAAK,GAAA;AAE3C,MAAA,MAAM,OAAA,GAAU,WAAW,MAAM;AAC/B,QAAA,IAAI,CAAC,aAAa,OAAA,EAAS;AAC3B,QAAA,UAAA,CAAW,CAAC,SAAS,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,OAAO,CAAC,CAAA;AACnD,QAAA,aAAA,CAAc,UAAU,aAAA,CAAc,OAAA,CAAQ,OAAO,CAAC,EAAA,KAAO,OAAO,OAAO,CAAA;AAAA,MAC7E,GAAG,YAAY,CAAA;AAEf,MAAA,aAAA,CAAc,OAAA,CAAQ,KAAK,OAAO,CAAA;AAAA,IACpC,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,OAAA,GAAgBA,oBAAY,MAAM;AACtC,MAAA,KAAA,CAAM,MAAA,EAAW,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,IACpC,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,IAAMA,OAAA,CAAA,mBAAA;AAAA,MACJ,GAAA;AAAA,MACA,OAAO;AAAA,QACL,KAAA;AAAA,QACA,IAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA,CAAC,KAAA,EAAO,IAAA,EAAM,OAAO;AAAA,KACvB;AAEA,IAAA,uBACER,GAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,YAAA;AAAA,QACL,SAAA;AAAA,QACA,aAAA,EAAY,MAAA;AAAA,QACX,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,IAAA,KAAS;AACrB,UAAA,MAAM,KAAA,GAA6B;AAAA,YACjC,KAAA,EAAO,CAAA,EAAG,IAAA,CAAK,UAAU,CAAA,EAAA,CAAA;AAAA,YACzB,MAAA,EAAQ,CAAA,EAAG,IAAA,CAAK,UAAU,CAAA,EAAA,CAAA;AAAA,YAC1B,KAAK,CAAA,EAAG,EAAE,KAAK,UAAA,GAAa,CAAA,CAAA,GAAK,KAAK,OAAO,CAAA,EAAA,CAAA;AAAA,YAC7C,MAAM,CAAA,EAAG,EAAE,KAAK,UAAA,GAAa,CAAA,CAAA,GAAK,KAAK,OAAO,CAAA,EAAA;AAAA,WAChD;AAEA,UAAA,uBACEA,GAAAA;AAAA,YAAC,gBAAA;AAAA,YAAA;AAAA,cAEC,WAAW,IAAA,CAAK,SAAA;AAAA,cAChB,SAAS,IAAA,CAAK,OAAA;AAAA,cACd;AAAA,aAAA;AAAA,YAHK,IAAA,CAAK;AAAA,WAIZ;AAAA,QAEJ,CAAC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;ACvPnB,SAAS,SAAA,CAAU,OAAA,GAA4B,EAAC,EAAoB;AACzE,EAAA,MAAM,EAAE,QAAA,GAAW,KAAA,EAAO,gBAAgB,KAAA,EAAO,MAAA,GAAS,OAAM,GAAI,OAAA;AACpE,EAAA,MAAM,SAAA,GAAkBW,eAAuB,IAAI,CAAA;AAEnD,EAAA,MAAM,WAAA,GAAoBA,OAAA,CAAA,WAAA;AAAA,IACxB,CAAC,KAAA,KAA4B;AAC3B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,SAAA,CAAU,OAAA,EAAS,MAAM,KAAK,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,SAAA,GAAkBA,OAAA,CAAA,WAAA;AAAA,IACtB,CAAC,KAAA,KAA4B;AAC3B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,SAAA,CAAU,OAAA,EAAS,KAAK,KAAK,CAAA;AAAA,IAC/B,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,WAAA;AAAA,IACzB,CAAC,KAAA,KAA4B;AAC3B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,SAAA,CAAU,OAAA,EAAS,KAAK,KAAK,CAAA;AAAA,IAC/B,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,WAAA;AAAA,IACzB,CAAC,KAAA,KAA4B;AAC3B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,SAAA,CAAU,OAAA,EAAS,MAAM,KAAK,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,UAAA,GAAmBA,OAAA,CAAA,WAAA;AAAA,IACvB,CAAC,KAAA,KAA4B;AAC3B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,SAAA,CAAU,OAAA,EAAS,KAAK,KAAK,CAAA;AAAA,IAC/B,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,SAAA,GAAkBA,OAAA,CAAA,WAAA;AAAA,IACtB,CAAC,KAAA,KAA+B;AAC9B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,GAAA,IAAO,KAAA,CAAM,QAAQ,OAAA,EAAS;AAC9C,QAAA,SAAA,CAAU,SAAS,KAAA,CAAM,MAAA,EAAW,EAAE,OAAA,EAAS,MAAM,CAAA;AAAA,MACvD;AAAA,IACF,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,OAAA,GAAgBA,OAAA,CAAA,WAAA;AAAA,IACpB,CAAC,KAAA,KAA+B;AAC9B,MAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,GAAA,IAAO,KAAA,CAAM,QAAQ,OAAA,EAAS;AAC9C,QAAA,SAAA,CAAU,SAAS,IAAA,EAAK;AAAA,MAC1B;AAAA,IACF,CAAA;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,MAAM,MAAA,GAAeA,oBAAY,MAAM;AACrC,IAAA,SAAA,CAAU,SAAS,IAAA,EAAK;AAAA,EAC1B,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,iBAAA,GAA0BA,OAAA,CAAA,WAAA;AAAA,IAC9B,CAAgC,KAAA,GAAW,EAAC,KAAc;AACxD,MAAA,OAAO;AAAA,QACL,GAAG,KAAA;AAAA,QACH,WAAA,EAAa,oBAAA,CAAqB,KAAA,CAAM,WAAA,EAAa,WAAW,CAAA;AAAA,QAChE,SAAA,EAAW,oBAAA,CAAqB,KAAA,CAAM,SAAA,EAAW,SAAS,CAAA;AAAA,QAC1D,YAAA,EAAc,oBAAA,CAAqB,KAAA,CAAM,YAAA,EAAc,YAAY,CAAA;AAAA,QACnE,YAAA,EAAc,oBAAA,CAAqB,KAAA,CAAM,YAAA,EAAc,YAAY,CAAA;AAAA,QACnE,UAAA,EAAY,oBAAA,CAAqB,KAAA,CAAM,UAAA,EAAY,UAAU,CAAA;AAAA,QAC7D,SAAA,EAAW,oBAAA,CAAqB,KAAA,CAAM,SAAA,EAAW,SAAS,CAAA;AAAA,QAC1D,OAAA,EAAS,oBAAA,CAAqB,KAAA,CAAM,OAAA,EAAS,OAAO,CAAA;AAAA,QACpD,MAAA,EAAQ,oBAAA,CAAqB,KAAA,CAAM,MAAA,EAAQ,MAAM;AAAA,OACnD;AAAA,IACF,CAAA;AAAA,IACA;AAAA,MACE,WAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,OAAO;AAAA,IACL,SAAA;AAAA,IACA,WAAA,EAAa;AAAA,MACX,GAAA,EAAK,SAAA;AAAA,MACL;AAAA,KACF;AAAA,IACA;AAAA,GACF;AACF;AC3GA,SAAS,aAAA,GAAgB;AACvB,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,oBAAA;AAAA,MACV,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,KAAA,EAAM,4BAAA;AAAA,MACN,aAAA,EAAY,MAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAAX,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,IAAA;AAAA,YACH,EAAA,EAAG,IAAA;AAAA,YACH,CAAA,EAAE,GAAA;AAAA,YACF,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,KAAA;AAAA,YACZ,aAAA,EAAc;AAAA;AAAA,SAChB;AAAA,wBACAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,CAAA,EAAE,qBAAA;AAAA,YACF,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,KAAA;AAAA,YACZ,aAAA,EAAc;AAAA;AAAA;AAChB;AAAA;AAAA,GACF;AAEJ;AAEA,IAAM,gBAAA,GAAmB,OAAO,QAAA,EAAU;AAAA,EACxC,IAAA,EAAM,eAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,aACT,IAAA,KAAS,aAAA,IACT,IAAA,KAAS,aAAA,IACT,IAAA,KAAS,WAAA,IACT,SAAS,YAAA,IACT,IAAA,KAAS,aAAA,IACT,IAAA,KAAS,iBAAA,IACT,IAAA,KAAS,eACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,eAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,MAAA,GAAeY,OAAA,CAAA,UAAA;AAAA,EAC1B,SAASC,OAAAA,CAAO,KAAA,EAAO,YAAA,EAAc;AACnC,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MACT,IAAA,EAAM,QAAA;AAAA,MACN,WAAA,EAAa,eAAA;AAAA,MACb,SAAA,GAAY,KAAA;AAAA,MACZ,WAAA;AAAA,MACA,eAAA,GAAkB,OAAA;AAAA,MAClB,UAAA,EAAY,cAAA;AAAA,MACZ,WAAA,GAAc,KAAA;AAAA,MACd,SAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,IAAA,GAAO,QAAA;AAAA,MACP,OAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAA,GAAgB,KAAA;AAAA,MAChB,EAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,cAAc,qBAAA,EAAsB;AAE1C,IAAA,MAAM,OAAA,GAAU,WAAA,IAAe,WAAA,EAAa,OAAA,IAAW,OAAA;AACvD,IAAA,MAAM,IAAA,GAAO,QAAA,IAAY,WAAA,EAAa,IAAA,IAAQ,IAAA;AAC9C,IAAA,MAAM,WAAA,GACJ,eAAA,IAAmB,WAAA,EAAa,WAAA,IAAe,SAAA;AACjD,IAAA,MAAM,UAAA,GACJ,cAAA,IAAkB,YAAA,IAAgB,WAAA,EAAa,UAAA,IAAc,KAAA;AAC/D,IAAA,MAAM,wBAAwB,UAAA,IAAc,SAAA;AAE5C,IAAA,MAAM,EAAE,WAAA,EAAa,iBAAA,EAAkB,GAAI,SAAA,CAAU;AAAA,MACnD,QAAA,EAAU,qBAAA;AAAA,MACV;AAAA,KACD,CAAA;AAED,IAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAA+C;AAClE,MAAA,IAAI,qBAAA,EAAuB;AACzB,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,QAAA;AAAA,MACF;AACA,MAAA,OAAA,GAAU,KAAK,CAAA;AAAA,IACjB,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAkD;AACvE,MAAA,IAAI,qBAAA,EAAuB;AACzB,QAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,GAAA,IAAO,KAAA,CAAM,QAAQ,OAAA,EAAS;AAC9C,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,UAAA;AAAA,QACF;AAAA,MACF;AACA,MAAA,SAAA,GAAY,KAAK,CAAA;AAAA,IACnB,CAAA;AAEA,IAAA,MAAM,eAAA,GAAkB,UAAA;AAAA,MACtB,WAAA;AAAA,MACA,cAAc,OAAO,CAAA,CAAA;AAAA,MACrB,cAAc,IAAI,CAAA,CAAA;AAAA,MAClB,cAAc,WAAW,CAAA,CAAA;AAAA,MACzB,SAAA,IAAa,oBAAA;AAAA,MACb,UAAA,IAAc,qBAAA;AAAA,MACd,WAAA,IAAe,uBAAA;AAAA,MACf;AAAA,KACF;AAEA,IAAA,MAAM,OAAA,mBAAUb,GAAAA,CAAC,aAAA,EAAA,EAAc,CAAA;AAG/B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,GAAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA,EAAK,YAAA;AAAA,UACL,SAAA,EAAW,eAAA;AAAA,UACX,eAAA,EAAe,wBAAwB,IAAA,GAAO,MAAA;AAAA,UAC9C,WAAA,EAAW,YAAY,IAAA,GAAO,MAAA;AAAA,UAC9B,EAAA;AAAA,UACA,OAAA,EACE,WAAA;AAAA,UAEF,SAAA,EACE,aAAA;AAAA,UAED,GAAG,SAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAGA,IAAA,MAAM,eAAA,GAAkB,aAAa,eAAA,KAAoB,QAAA;AAEzD,IAAA,MAAM,iBAAiB,iBAAA,CAAkB;AAAA,MACvC,OAAA,EAAS,WAAA;AAAA,MACT,SAAA,EAAW,aAAA;AAAA,MACX,GAAG;AAAA,KACJ,CAAA;AAED,IAAA,uBACE,IAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,YAAA;AAAA,QACL,IAAA;AAAA,QACA,QAAA,EAAU,wBAAwB,IAAA,GAAO,MAAA;AAAA,QACzC,eAAA,EAAe,wBAAwB,IAAA,GAAO,MAAA;AAAA,QAC9C,WAAA,EAAW,YAAY,IAAA,GAAO,MAAA;AAAA,QAC9B,SAAA,EAAW,eAAA;AAAA,QACX,EAAA;AAAA,QACC,GAAG,cAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,eAAA,mBACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCAAA,EACb,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,4BACA,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4BAAA,EACb,QAAA,EAAA;AAAA,cAAA,SAAA,oBACCA,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,wCAAA;AAAA,kBACV,aAAA,EAAY,MAAA;AAAA,kBAEX,QAAA,EAAA;AAAA;AAAA,eACH;AAAA,cAED,aAAa,MAAA,oBACZA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAoB,QAAA,EAAS,CAAA;AAAA,cAE9C,2BACCA,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,sCAAA;AAAA,kBACV,aAAA,EAAY,MAAA;AAAA,kBAEX,QAAA,EAAA;AAAA;AAAA;AACH,aAAA,EAEJ;AAAA,WAAA,EACF,oBAEA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,YAAA,SAAA,IAAa,oBAAoB,OAAA,IAAW,OAAA;AAAA,YAC5C,CAAC,SAAA,IAAa,SAAA,oBACbA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,wCAAA;AAAA,gBACV,aAAA,EAAY,MAAA;AAAA,gBAEX,QAAA,EAAA;AAAA;AAAA,aACH;AAAA,YAED,aAAa,WAAA,mBACZA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,kBAAA,EAAoB,QAAA,EAAA,WAAA,EAAY,CAAA,GAC9C,QAAA,KAAa,yBACfA,GAAAA,CAAC,UAAK,SAAA,EAAU,kBAAA,EAAoB,UAAS,CAAA,GAC3C,IAAA;AAAA,YACH,SAAA,IAAa,oBAAoB,KAAA,IAAS,OAAA;AAAA,YAC1C,CAAC,SAAA,IAAa,OAAA,oBACbA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,sCAAA;AAAA,gBACV,aAAA,EAAY,MAAA;AAAA,gBAEX,QAAA,EAAA;AAAA;AAAA;AACH,WAAA,EAEJ,CAAA;AAAA,UAED,CAAC,iBAAiB,CAAC,qBAAA,oBAClBA,GAAAA,CAAC,WAAA,EAAA,EAAa,GAAG,WAAA,EAAa;AAAA;AAAA;AAAA,KAElC;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;AClOd,IAAM,WAAA,GAAoBc,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASC,YAAAA,CAAY,KAAA,EAAO,YAAA,EAAc;AACxC,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,IAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA,GAAa,KAAA;AAAA,MACb,WAAA,GAAc,YAAA;AAAA,MACd,OAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA,EAAM,QAAA;AAAA,MACN,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,IAAA,GACJ,QAAA,KAAa,MAAA,GAAY,QAAA,GAAW,UAAU,MAAA,GAAY,OAAA;AAE5D,IAAA,MAAM,YAAA,GAAqBD,OAAA,CAAA,OAAA;AAAA,MACzB,OAAO;AAAA,QACL,IAAA;AAAA,QACA,OAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA,CAAC,IAAA,EAAM,OAAA,EAAS,WAAA,EAAa,UAAU;AAAA,KACzC;AAEA,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,iBAAA;AAAA,MACA,oBAAoB,WAAW,CAAA,CAAA;AAAA,MAC/B,UAAA,IAAc,2BAAA;AAAA,MACd;AAAA,KACF;AAEA,IAAA,MAAM,UAAA,GAAkC;AAAA,MACtC,GAAG,KAAA;AAAA,MACH,GAAI,OAAA,KAAY,MAAA,IAAa,CAAC,aAC1B,EAAE,GAAA,EAAK,OAAO,OAAA,KAAY,WAAW,CAAA,EAAG,OAAO,CAAA,EAAA,CAAA,GAAO,OAAA,KACtD;AAAC,KACP;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEd,GAAAA,CAAC,kBAAA,CAAmB,UAAnB,EAA4B,KAAA,EAAO,cAClC,QAAA,kBAAAA,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,YAAA;AAAA,UACL,IAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA,EAAO,UAAA;AAAA,UACN,GAAG,SAAA;AAAA,UAEH;AAAA;AAAA,OACH,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA,CAAC,kBAAA,CAAmB,UAAnB,EAA4B,KAAA,EAAO,cAClC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,YAAA;AAAA,QACL,IAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA,EAAO,UAAA;AAAA,QACN,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AClE1B,IAAM,aAAA,GAAgB,OAAO,KAAA,EAAO;AAAA,EAClC,IAAA,EAAM,YAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS,aAAa,IAAA,KAAS;AAC9D,CAAC,CAAA,CAAE,EAAE,CAAA;AAUE,IAAM,GAAA,GAAYgB,OAAA,CAAA,UAAA;AAAA,EACvB,SAASC,IAAAA,CAAI,KAAA,EAAO,GAAA,EAAK;AACvB,IAAA,MAAM,EAAE,OAAA,GAAU,KAAA,EAAO,SAAA,EAAW,EAAA,EAAI,SAAA,EAAW,KAAA,EAAO,EAAA,EAAI,QAAA,EAAU,GAAG,IAAA,EAAK,GAAI,KAAA;AACpF,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAC/B,IAAA,MAAM,YAAA,GAAe,UAAA,CAAW,QAAA,EAAU,SAAS,CAAA;AAEnD,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEjB,GAAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,YAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,uBACEA,GAAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,SAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,YAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,YAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,GAAA,CAAI,WAAA,GAAc,KAAA;AC7ClB,IAAM,eAAA,GAAkB,OAAO,KAAA,EAAO;AAAA,EACpC,IAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,WAAA,IACT,SAAS,SAAA,IACT,IAAA,KAAS,YAAA,IACT,IAAA,KAAS,oBACT,IAAA,KAAS,UAAA,IACT,SAAS,YAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAmC,CAAC,EAAE,KAAA,EAAO,YAAW,KAAM;AAC7D,EAAA,MAAM,SAA8B,EAAC;AAGrC,EAAA,IAAI,OAAO,UAAA,CAAW,SAAA,KAAc,QAAA,EAAU;AAC5C,IAAA,MAAA,CAAO,MAAA;AAAA,MACL,MAAA;AAAA,MACA,QAAQ,KAAA,EAAO,EAAE,aAAA,EAAe,UAAA,CAAW,WAAW;AAAA,KACxD;AAAA,EACF;AAGA,EAAA,IAAI,UAAA,CAAW,OAAA,KAAY,MAAA,IAAa,UAAA,CAAW,YAAY,CAAA,EAAG;AAChE,IAAA,MAAA,CAAO,MAAA;AAAA,MACL,MAAA;AAAA,MACA,QAAQ,KAAA,EAAO,EAAE,GAAA,EAAK,UAAA,CAAW,SAAS;AAAA,KAC5C;AAAA,EACF;AAGA,EAAA,IAAI,UAAA,CAAW,eAAe,MAAA,EAAW;AACvC,IAAA,MAAA,CAAO,MAAA;AAAA,MACL,MAAA;AAAA,MACA,QAAQ,KAAA,EAAO,EAAE,UAAA,EAAY,UAAA,CAAW,YAAY;AAAA,KACtD;AAAA,EACF;AACA,EAAA,IAAI,UAAA,CAAW,mBAAmB,MAAA,EAAW;AAC3C,IAAA,MAAA,CAAO,MAAA;AAAA,MACL,MAAA;AAAA,MACA,QAAQ,KAAA,EAAO,EAAE,cAAA,EAAgB,UAAA,CAAW,gBAAgB;AAAA,KAC9D;AAAA,EACF;AACA,EAAA,IAAI,UAAA,CAAW,aAAa,MAAA,EAAW;AACrC,IAAA,MAAA,CAAO,MAAA;AAAA,MACL,MAAA;AAAA,MACA,QAAQ,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,CAAW,UAAU;AAAA,KAClD;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT,CAAC,CAAA;AAWM,IAAM,KAAA,GAAckB,OAAA,CAAA,UAAA;AAAA,EACzB,SAASC,MAAAA,CAAM,KAAA,EAAO,GAAA,EAAK;AACzB,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA,GAAY,QAAA;AAAA,MACZ,OAAA,GAAU,CAAA;AAAA,MACV,UAAA;AAAA,MACA,cAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA,GAAa,IAAA;AAAA,MACb,OAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,UAAA,GAA8B;AAAA,MAClC,SAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,iBAAA,GAAoB,OAAO,SAAA,KAAc,QAAA;AAE/C,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,UAAA;AAAA,MACA,iBAAA,IAAqB,aAAa,SAAS,CAAA,CAAA;AAAA,MAC3C;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAG/B,IAAA,IAAI,gBAAA,GAAmB,QAAA;AACvB,IAAA,IAAI,OAAA,IAAW,CAAC,OAAA,EAAS;AACvB,MAAA,MAAM,aAAA,GAAsBD,OAAA,CAAA,QAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA,CAAE,MAAA;AAAA,QAC/CA,OAAA,CAAA;AAAA,OACR;AACA,MAAA,gBAAA,GAAmB,aAAA,CAAc,MAAA;AAAA,QAC/B,CAAC,GAAA,EAAK,KAAA,EAAO,KAAA,KAAU;AACrB,UAAA,GAAA,CAAI,KAAK,KAAK,CAAA;AACd,UAAA,IAAI,KAAA,GAAQ,aAAA,CAAc,MAAA,GAAS,CAAA,EAAG;AACpC,YAAA,GAAA,CAAI,IAAA;AAAA,cACIA,OAAA,CAAA,cAAA,CAAe,OAAO,CAAA,GAClBA,OAAA,CAAA,YAAA,CAAa,OAAA,EAA+B;AAAA,gBAChD,GAAA,EAAK,iBAAiB,KAAK,CAAA;AAAA,eAC5B,oBAEDlB,GAAAA,CAAC,UAAqC,QAAA,EAAA,OAAA,EAAA,EAA3B,CAAA,cAAA,EAAiB,KAAK,CAAA,CAAa;AAAA,aAEpD;AAAA,UACF;AACA,UAAA,OAAO,GAAA;AAAA,QACT,CAAA;AAAA,QACA;AAAC,OACH;AAAA,IACF;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,UAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,uBACEA,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,SAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,UAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,UAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AC3KpB,IAAM,cAAA,GAAiB,OAAO,KAAA,EAAO;AAAA,EACnC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,KAAA,IACT,IAAA,KAAS,YAAA,IACT,IAAA,KAAS,OAAA,IACT,IAAA,KAAS,gBAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,MAAA,IACT,IAAA,KAAS,QAAA,IACT,IAAA,KAAS,QAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAkC,CAAC,EAAE,KAAA,EAAO,YAAW,KAAM;AAC5D,EAAA,MAAM,QAAA,GAAW,WAAW,MAAA,IAAU,KAAA;AACtC,EAAA,MAAM,SAA8B,EAAC;AAGrC,EAAA,IAAI,OAAO,UAAA,CAAW,SAAA,KAAc,QAAA,EAAU;AAC5C,IAAA,MAAA,CAAO,MAAA;AAAA,MACL,MAAA;AAAA,MACA,QAAQ,KAAA,EAAO,EAAE,aAAA,EAAe,UAAA,CAAW,WAAW;AAAA,KACxD;AAAA,EACF;AAGA,EAAA,MAAM,QAAA,GAAW,UAAA,CAAW,GAAA,IAAO,UAAA,CAAW,OAAA;AAC9C,EAAA,IAAI,aAAa,MAAA,EAAW;AAC1B,IAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,GAAA,EAAK,QAAA,EAAU,CAAC,CAAA;AAAA,EACzD;AAGA,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,MAAM,QAAA,GAAW,UAAA,CAAW,KAAA,IAAS,UAAA,CAAW,UAAA;AAChD,IAAA,IAAI,aAAa,MAAA,EAAW;AAC1B,MAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,UAAA,EAAY,QAAA,EAAU,CAAC,CAAA;AAAA,IAChE;AAEA,IAAA,MAAM,UAAA,GAAa,UAAA,CAAW,OAAA,IAAW,UAAA,CAAW,cAAA;AACpD,IAAA,IAAI,eAAe,MAAA,EAAW;AAC5B,MAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,cAAA,EAAgB,UAAA,EAAY,CAAC,CAAA;AAAA,IACtE;AAAA,EACF;AAGA,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,IAAA,IAAQ,UAAA,CAAW,QAAA;AAC9C,EAAA,IAAI,YAAY,MAAA,EAAW;AACzB,IAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,QAAA,EAAU,OAAA,EAAS,CAAC,CAAA;AAAA,EAC7D;AAEA,EAAA,OAAO,MAAA;AACT,CAAC,CAAA;AAYM,IAAM,IAAA,GAAaoB,OAAA,CAAA,UAAA;AAAA,EACxB,SAASC,KAAAA,CAAK,KAAA,EAAO,GAAA,EAAK;AACxB,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA,GAAY,KAAA;AAAA,MACZ,OAAA;AAAA,MACA,GAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,cAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA,GAAS,KAAA;AAAA,MACT,MAAA,GAAS,KAAA;AAAA,MACT,OAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,UAAA,GAA6B;AAAA,MACjC,SAAA;AAAA,MACA,OAAA;AAAA,MACA,GAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,cAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,iBAAA,GAAoB,OAAO,SAAA,KAAc,QAAA;AAE/C,IAAA,MAAM,aAAA,GAAgB,UAAA;AAAA,MACpB,SAAA;AAAA,MACA,MAAA,IAAU,iBAAA;AAAA,MACV,MAAA,IAAU,iBAAA;AAAA,MACV,iBAAA,IAAqB,YAAY,SAAS,CAAA,CAAA;AAAA,MAC1C;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,IAAI,gBAAA,GAAmB,QAAA;AACvB,IAAA,IAAI,OAAA,IAAW,CAAC,OAAA,EAAS;AACvB,MAAA,MAAM,aAAA,GAAsBD,OAAA,CAAA,QAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA,CAAE,MAAA;AAAA,QAC/CA,OAAA,CAAA;AAAA,OACR;AACA,MAAA,gBAAA,GAAmB,aAAA,CAAc,MAAA;AAAA,QAC/B,CAAC,GAAA,EAAK,KAAA,EAAO,KAAA,KAAU;AACrB,UAAA,GAAA,CAAI,KAAK,KAAK,CAAA;AACd,UAAA,IAAI,KAAA,GAAQ,aAAA,CAAc,MAAA,GAAS,CAAA,EAAG;AACpC,YAAA,GAAA,CAAI,IAAA;AAAA,cACIA,OAAA,CAAA,cAAA,CAAe,OAAO,CAAA,GAClBA,OAAA,CAAA,YAAA,CAAa,OAAA,EAA+B;AAAA,gBAChD,GAAA,EAAK,gBAAgB,KAAK,CAAA;AAAA,eAC3B,oBACDpB,GAAAA,CAAC,UAAoC,QAAA,EAAA,OAAA,EAAA,EAA1B,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAa;AAAA,aACnD;AAAA,UACF;AACA,UAAA,OAAO,GAAA;AAAA,QACT,CAAA;AAAA,QACA;AAAC,OACH;AAAA,IACF;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,GAAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,aAAA;AAAA,UACX,KAAA;AAAA,UACA,UAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,uBACEA,GAAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,SAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,aAAA;AAAA,UACX,KAAA;AAAA,UACA,UAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,KAAA;AAAA,QACA,UAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;AC1MnB,IAAM,mBAAA,GAAsB,OAAO,KAAA,EAAO;AAAA,EACxC,IAAA,EAAM,kBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,OAAA,IACT,IAAA,KAAS,gBAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAUE,IAAM,SAAA,GAAkBsB,OAAA,CAAA,UAAA;AAAA,EAC7B,SAASC,UAAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AAC7B,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA,GAAW,IAAA;AAAA,MACX,KAAA,GAAQ,KAAA;AAAA,MACR,cAAA,GAAiB,KAAA;AAAA,MACjB,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,kBAAA,GAAqB,UAAA;AAAA,MACzB,cAAA;AAAA,MACA,cAAA,IAAkB,+BAAA;AAAA,MAClB,KAAA,IAAS,qBAAA;AAAA,MACT,QAAA,KAAa,KAAA,IAAS,CAAA,cAAA,EAAiB,QAAQ,CAAA,CAAA;AAAA,MAC/C;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEvB,GAAAA;AAAA,QAAC,mBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,kBAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,uBACEA,GAAAA;AAAA,QAAC,mBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,SAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,kBAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,kBAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;ACtExB,SAAS,sBAAA,CACP,IAAA,EACA,OAAA,GAAkB,EAAA,EACG;AACrB,EAAA,IAAI,SAAS,IAAA,EAAM;AACjB,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,CAAA;AAAA,MACX,QAAA,EAAU,CAAA;AAAA,MACV,QAAA,EAAU;AAAA,KACZ;AAAA,EACF;AAEA,EAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,MAAA;AAAA,MACX,QAAA,EAAU,CAAA;AAAA,MACV,QAAA,EAAU;AAAA,KACZ;AAAA,EACF;AAEA,EAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,MAAM,eAAA,GAAkB,GAAG,IAAA,CAAK,KAAA,CAAO,OAAO,OAAA,GAAW,GAAI,IAAI,GAAI,CAAA,CAAA,CAAA;AACrE,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,eAAA;AAAA,MACX,QAAA,EAAU,CAAA;AAAA,MACV,QAAA,EAAU;AAAA,KACZ;AAAA,EACF;AAEA,EAAA,OAAO,EAAC;AACV;AAEA,IAAM,cAAA,GAAiB,OAAO,KAAA,EAAO;AAAA,EACnC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,eACT,IAAA,KAAS,MAAA,IACT,IAAA,KAAS,SAAA,IACT,SAAS,SAAA,IACT,IAAA,KAAS,YAAA,IACT,IAAA,KAAS,mBACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,MAAA,IACT,SAAS,YAAA,IACT,IAAA,KAAS,gBAAA,IACT,IAAA,KAAS,QACT,IAAA,KAAS,IAAA,IACT,IAAA,KAAS,IAAA,IACT,SAAS,IAAA,IACT,IAAA,KAAS,IAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAkC,CAAC,EAAE,KAAA,EAAO,YAAW,KAAM;AAC5D,EAAA,MAAM,SAA8B,EAAC;AACrC,EAAA,MAAM,OAAA,GAAU,WAAW,OAAA,IAAW,EAAA;AAGtC,EAAA,IAAI,WAAW,SAAA,EAAW;AACxB,IAAA,IAAI,OAAO,UAAA,CAAW,SAAA,KAAc,QAAA,EAAU;AAC5C,MAAA,MAAA,CAAO,MAAA;AAAA,QACL,MAAA;AAAA,QACA,QAAQ,KAAA,EAAO,EAAE,aAAA,EAAe,UAAA,CAAW,WAAW;AAAA,OACxD;AAAA,IACF;AAEA,IAAA,IAAI,UAAA,CAAW,YAAY,MAAA,EAAW;AACpC,MAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,GAAA,EAAK,UAAA,CAAW,OAAA,EAAS,CAAC,CAAA;AAAA,IACnE;AACA,IAAA,IAAI,UAAA,CAAW,eAAe,MAAA,EAAW;AACvC,MAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,MAAA,EAAQ,UAAA,CAAW,UAAA,EAAY,CAAC,CAAA;AAAA,IACzE;AACA,IAAA,IAAI,UAAA,CAAW,kBAAkB,MAAA,EAAW;AAC1C,MAAA,MAAA,CAAO,MAAA;AAAA,QACL,MAAA;AAAA,QACA,QAAQ,KAAA,EAAO,EAAE,SAAA,EAAW,UAAA,CAAW,eAAe;AAAA,OACxD;AAAA,IACF;AACA,IAAA,IAAI,UAAA,CAAW,eAAe,MAAA,EAAW;AACvC,MAAA,MAAA,CAAO,MAAA;AAAA,QACL,MAAA;AAAA,QACA,QAAQ,KAAA,EAAO,EAAE,UAAA,EAAY,UAAA,CAAW,YAAY;AAAA,OACtD;AAAA,IACF;AACA,IAAA,IAAI,UAAA,CAAW,mBAAmB,MAAA,EAAW;AAC3C,MAAA,MAAA,CAAO,MAAA;AAAA,QACL,MAAA;AAAA,QACA,QAAQ,KAAA,EAAO,EAAE,cAAA,EAAgB,UAAA,CAAW,gBAAgB;AAAA,OAC9D;AAAA,IACF;AAAA,EACF;AAGA,EAAA,MAAM,OAAA,GAAuD;AAAA,IAC3D,IAAI,UAAA,CAAW,EAAA;AAAA,IACf,IAAI,UAAA,CAAW,EAAA;AAAA,IACf,IAAI,UAAA,CAAW,EAAA;AAAA,IACf,IAAI,UAAA,CAAW,EAAA;AAAA,IACf,IAAI,UAAA,CAAW;AAAA,GACjB;AAEA,EAAA,KAAA,MAAW,MAAM,cAAA,EAAgB;AAC/B,IAAA,MAAM,IAAA,GAAO,QAAQ,EAAE,CAAA;AACvB,IAAA,IAAI,SAAS,MAAA,EAAW;AACtB,MAAA,MAAM,UAAA,GAAa,sBAAA,CAAuB,IAAA,EAAM,OAAO,CAAA;AACvD,MAAA,IAAI,OAAO,IAAA,EAAM;AACf,QAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,UAAU,CAAA;AAAA,MAClC,CAAA,MAAO;AACL,QAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,WAAA,CAAY,EAAA,CAAG,EAAE,CAAA;AACrC,QAAA,MAAA,CAAO,KAAK,CAAA,GAAI;AAAA,UACd,GAAI,MAAA,CAAO,KAAK,CAAA,IAAK,EAAC;AAAA,UACtB,GAAG;AAAA,SACL;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT,CAAC,CAAA;AAWM,IAAM,IAAA,GAAawB,OAAA,CAAA,UAAA;AAAA,EACxB,SAASC,KAAAA,CAAK,KAAA,EAAO,GAAA,EAAK;AACxB,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA,GAAY,KAAA;AAAA,MACZ,IAAA,GAAO,KAAA;AAAA,MACP,OAAA,GAAU,EAAA;AAAA,MACV,OAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA,GAAY,KAAA;AAAA,MACZ,IAAA,GAAO,MAAA;AAAA,MACP,UAAA;AAAA,MACA,cAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,UAAA,GAA6B;AAAA,MACjC,SAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,iBAAA,GAAoB,OAAO,SAAA,KAAc,QAAA;AAE/C,IAAA,MAAM,aAAA,GAAgB,UAAA;AAAA,MACpB,SAAA;AAAA,MACA,SAAA,IAAa,oBAAA;AAAA,MACb,IAAA,IAAQ,eAAA;AAAA,MACR,IAAA,IAAQ,YAAY,IAAI,CAAA,CAAA;AAAA,MACxB,iBAAA,IAAqB,sBAAsB,SAAS,CAAA,CAAA;AAAA,MACpD;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEzB,GAAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,aAAA;AAAA,UACX,KAAA;AAAA,UACA,UAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,uBACEA,GAAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,SAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,aAAA;AAAA,UACX,KAAA;AAAA,UACA,UAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,KAAA;AAAA,QACA,UAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;ACtPnB,IAAM,iBAAA,GAAoB,OAAO,IAAA,EAAM;AAAA,EACrC,IAAA,EAAM,gBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,SAAS,aAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS,WAAA,IACT,SAAS,UAAA,IACT,IAAA,KAAS,WACT,IAAA,KAAS,WAAA,IACT,SAAS,aAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAUE,IAAM,OAAA,GAAgB0B,OAAA,CAAA,UAAA;AAAA,EAC3B,SAASC,QAAAA,CAAQ,KAAA,EAAO,GAAA,EAAK;AAC3B,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,WAAA,GAAc,YAAA;AAAA,MACd,OAAA,GAAU,WAAA;AAAA,MACV,SAAA,GAAY,OAAA;AAAA,MACZ,QAAA,GAAW,KAAA;AAAA,MACX,KAAA,GAAQ,KAAA;AAAA,MACR,SAAA,GAAY,QAAA;AAAA,MACZ,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA,EAAM,QAAA;AAAA,MACN,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,WAAA,GAAc,QAAQ,QAAQ,CAAA;AAEpC,IAAA,MAAM,gBAAA,GAAmB,UAAA;AAAA,MACvB,YAAA;AAAA,MACA,eAAe,WAAW,CAAA,CAAA;AAAA,MAC1B,OAAA,KAAY,WAAA,IAAe,CAAA,YAAA,EAAe,OAAO,CAAA,CAAA;AAAA,MACjD,SAAA,KAAc,OAAA,IAAW,CAAA,YAAA,EAAe,SAAS,CAAA,CAAA;AAAA,MACjD,QAAA,IAAY,uBAAA;AAAA,MACZ,KAAA,IAAS,mBAAA;AAAA,MACT,WAAA,IAAe,2BAAA;AAAA,MACf,WAAA,IAAe,qBAAqB,SAAS,CAAA,CAAA;AAAA,MAC7C;AAAA,KACF;AAGA,IAAA,IAAI,UAAA,GAAgC,IAAA;AACpC,IAAA,IAAI,WAAA,KAAgB,cAAc,WAAA,EAAa;AAC7C,MAAA,UAAA,GAAa,KAAA;AAAA,IACf;AAEA,IAAA,MAAM,SAAA,GAAY,aAAa,EAAA,IAAM,UAAA;AAGrC,IAAA,MAAM,aAAa,SAAA,KAAc,IAAA;AACjC,IAAA,MAAM,IAAA,GAAO,QAAA,KAAa,UAAA,GAAa,MAAA,GAAY,WAAA,CAAA;AACnD,IAAA,MAAM,eAAA,GACJ,UAAA,GACI,MAAA,GACA,WAAA,KAAgB,aACd,UAAA,GACA,MAAA;AAER,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE3B,GAAAA;AAAA,QAAC,iBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,gBAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACA,IAAA;AAAA,UACA,kBAAA,EAAkB,eAAA;AAAA,UACjB,GAAG,IAAA;AAAA,UAEH,wCACCA,GAAAA,CAAC,UAAK,SAAA,EAAU,4CAAA,EAA8C,UAAS,CAAA,GAEvE;AAAA;AAAA,OAEJ;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,gBAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACA,IAAA;AAAA,QACA,kBAAA,EAAkB,eAAA;AAAA,QACjB,GAAG,IAAA;AAAA,QAEH,wCACCA,GAAAA,CAAC,UAAK,SAAA,EAAU,4CAAA,EAA8C,UAAS,CAAA,GACrE;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;ACtHtB,IAAM,qBAAA,GAAsE;AAAA,EAC1E,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,SAAA,EAAW,IAAA;AAAA,EACX,SAAA,EAAW,IAAA;AAAA,EACX,KAAA,EAAO,GAAA;AAAA,EACP,KAAA,EAAO,GAAA;AAAA,EACP,MAAA,EAAQ,MAAA;AAAA,EACR,OAAA,EAAS,MAAA;AAAA,EACT,QAAA,EAAU;AACZ,CAAA;AAUA,SAAS,kBAAkB,GAAA,EAAqC;AAC9D,EAAA,OACE,GAAA,KAAQ,SAAA,IACR,GAAA,KAAQ,WAAA,IACR,GAAA,KAAQ,WACR,GAAA,KAAQ,SAAA,IACR,GAAA,KAAQ,MAAA,IACR,GAAA,KAAQ,SAAA;AAEZ;AAEA,IAAM,uBAAA,GAAkD;AAAA,EACtD,OAAA,EAAS,8BAAA;AAAA,EACT,SAAA,EAAW,gCAAA;AAAA,EACX,KAAA,EAAO,6BAAA;AAAA,EACP,OAAA,EAAS,8BAAA;AAAA,EACT,IAAA,EAAM,2BAAA;AAAA,EACN,OAAA,EAAS,8BAAA;AAAA,EACT,cAAA,EAAgB,4BAAA;AAAA,EAChB,gBAAA,EAAkB,8BAAA;AAAA,EAClB,eAAA,EAAiB,0BAAA;AAAA,EACjB,oBAAA,EAAsB,2BAAA;AAAA,EACtB,kBAAA,EAAoB;AACtB,CAAA;AAEA,SAAS,qBAAA,CAAsB,KAAc,IAAA,EAAkC;AAC7E,EAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,OAAO,GAAA,KAAQ,UAAU,OAAO,MAAA;AACpD,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAC5B,EAAA,IAAI,OAAA,GAAmB,GAAA;AACvB,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,IAAI,YAAY,IAAA,IAAQ,OAAO,OAAA,KAAY,QAAA,IAAY,QAAQ,OAAA,EAAS;AACtE,MAAA,OAAA,GAAW,QAAoC,IAAI,CAAA;AAAA,IACrD,CAAA,MAAO;AACL,MAAA,OAAO,MAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,OAAO,OAAA,KAAY,QAAA,GAAW,OAAA,GAAU,MAAA;AACjD;AAEO,SAAS,sBAAA,CACd,OACA,KAAA,EACoB;AACpB,EAAA,IAAI,CAAC,KAAA,IAAS,KAAA,KAAU,SAAA,IAAa,UAAU,cAAA,EAAgB;AAC7D,IAAA,OAAO,KAAA;AAAA,EACT;AAGA,EAAA,IAAI,KAAA,EAAO,OAAA,IAAW,iBAAA,CAAkB,KAAK,CAAA,EAAG;AAC9C,IAAA,MAAM,YAAA,GAAe,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AACxC,IAAA,IAAI,YAAA,IAAgB,OAAO,YAAA,CAAa,IAAA,KAAS,QAAA,EAAU;AACzD,MAAA,OAAO,YAAA,CAAa,IAAA;AAAA,IACtB;AAAA,EACF;AAGA,EAAA,IAAI,KAAA,CAAM,QAAA,CAAS,GAAG,CAAA,IAAK,OAAO,OAAA,EAAS;AACzC,IAAA,MAAM,QAAA,GAAW,qBAAA,CAAsB,KAAA,CAAM,OAAA,EAAS,KAAK,CAAA;AAC3D,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,OAAO,QAAA;AAAA,IACT;AAAA,EACF;AAGA,EAAA,IAAI,SAAS,uBAAA,EAAyB;AACpC,IAAA,OAAO,wBAAwB,KAAK,CAAA;AAAA,EACtC;AAEA,EAAA,OAAO,KAAA;AACT;AAEA,IAAM,oBAAA,GAAuB,OAAO,MAAA,EAAQ;AAAA,EAC1C,IAAA,EAAM,mBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,SAAA,IACT,SAAS,OAAA,IACT,IAAA,KAAS,OAAA,IACT,IAAA,KAAS,kBACT,IAAA,KAAS,QAAA,IACT,SAAS,WAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAsB,CAAC,EAAE,KAAA,EAAO,OAAM,KAAM;AAC3C,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,sBAAA,CAAuB,KAAA,EAAO,KAAK;AAAA,KAC5C;AAAA,EACF;AACA,EAAA,OAAO,EAAC;AACV,CAAC,CAAA;AAWM,IAAM,UAAA,GAAmB4B,OAAA,CAAA,UAAA;AAAA,EAC9B,SAASC,WAAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AAC9B,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,OAAA,GAAU,OAAA;AAAA,MACV,KAAA,GAAQ,SAAA;AAAA,MACR,KAAA;AAAA,MACA,YAAA,GAAe,KAAA;AAAA,MACf,MAAA,GAAS,KAAA;AAAA,MACT,SAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,mBAAA,GAAsB,UAAA;AAAA,MAC1B,eAAA;AAAA,MACA,kBAAkB,OAAO,CAAA,CAAA;AAAA,MACzB,KAAA,IAAS,KAAA,KAAU,SAAA,IAAa,CAAA,qBAAA,EAAwB,KAAK,CAAA,CAAA;AAAA,MAC7D,YAAA,IAAgB,8BAAA;AAAA,MAChB,MAAA,IAAU,wBAAA;AAAA,MACV,SAAA,KAAc,MAAA,IAAa,SAAA,GAAY,CAAA,IAAK,2BAAA;AAAA,MAC5C;AAAA,KACF;AAEA,IAAA,MAAM,WAAA,GAAmC;AAAA,MACvC,GAAI,cAAc,MAAA,IAAa,SAAA,GAAY,IACtC,EAAE,eAAA,EAAiB,SAAA,EAAU,GAC9B,EAAC;AAAA,MACL,GAAG;AAAA,KACL;AAEA,IAAA,MAAM,SAAA,GACJ,SAAA,IAAa,EAAA,IAAM,qBAAA,CAAsB,OAAO,CAAA,IAAK,MAAA;AAEvD,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE7B,GAAAA;AAAA,QAAC,oBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,mBAAA;AAAA,UACX,KAAA,EAAO,WAAA;AAAA,UACP,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,mBAAA;AAAA,QACX,KAAA,EAAO,WAAA;AAAA,QACP,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;ACpNlB,IAAM,OAAA,GAAgB8B,OAAA,CAAA,UAAA;AAAA,EAC3B,SAASC,QAAAA,CAAQ,KAAA,EAAO,GAAA,EAAK;AAC3B,IAAA,MAAM,EAAE,KAAA,GAAQ,CAAA,EAAG,SAAS,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAEnD,IAAA,MAAM,QAAA,GAAW,IAAI,KAAK,CAAA,CAAA;AAC1B,IAAA,MAAM,kBAAkB,OAAA,IAAW,QAAA;AACnC,IAAA,MAAM,oBAAoB,SAAA,IAAa,QAAA;AAEvC,IAAA,uBACE/B,GAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,iBAAA;AAAA,QACX,OAAA,EAAS,eAAA;AAAA,QACR,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;ACtBtB,IAAM,aAAA,GAAqD;AAAA,EACzD,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AASO,IAAM,IAAA,GAAagC,OAAA,CAAA,UAAA;AAAA,EACxB,SAASC,KAAAA,CAAK,KAAA,EAAO,GAAA,EAAK;AACxB,IAAA,MAAM,EAAE,MAAM,OAAA,EAAS,KAAA,GAAQ,OAAO,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAE7D,IAAA,MAAM,eAAA,GAAkB,OAAA,KAAY,IAAA,GAAO,aAAA,CAAc,IAAI,CAAA,GAAI,OAAA,CAAA;AACjE,IAAA,MAAM,UAAA,GAAa,QAAQ,GAAA,GAAM,MAAA;AACjC,IAAA,MAAM,oBAAoB,SAAA,IAAa,UAAA;AAEvC,IAAA,uBACEjC,GAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,iBAAA;AAAA,QACX,OAAA,EAAS,eAAA;AAAA,QACR,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;ACvCZ,IAAM,SAAA,GAAkBkC,OAAA,CAAA,UAAA;AAAA,EAC7B,SAASC,UAAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AAC7B,IAAA,MAAM,EAAE,YAAY,GAAA,EAAK,OAAA,GAAU,SAAS,YAAA,GAAe,IAAA,EAAM,GAAG,IAAA,EAAK,GAAI,KAAA;AAE7E,IAAA,uBACEnC,GAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA;AAAA,QACA,OAAA;AAAA,QACA,YAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;ACVxB,IAAM,cAAA,GAAiB,OAAO,MAAA,EAAQ;AAAA,EACpC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,SAAS,aAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,IAAA,GAAaoC,OAAA,CAAA,UAAA;AAAA,EACxB,SAASC,KAAAA,CAAK,KAAA,EAAO,GAAA,EAAK;AACxB,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA,GAAY,MAAA;AAAA,MACZ,EAAA;AAAA,MACA,WAAA,GAAc,SAAA;AAAA,MACd,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,aAAA,GAAgB,UAAA;AAAA,MACpB,SAAA;AAAA,MACA,WAAA,KAAgB,SAAA,IAAa,CAAA,SAAA,EAAY,WAAW,CAAA,CAAA;AAAA,MACpD;AAAA,KACF;AAEA,IAAA,MAAM,SAAA,GAAY,aAAa,EAAA,IAAM,MAAA;AAErC,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACErC,GAAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,aAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;AC7DZ,IAAM,gBAAA,GAAgD;AAAA,EAC3D,OAAA,EAAS,QAAA;AAAA,EACT,GAAA,EAAK,QAAA;AAAA,EACL,KAAA,EAAO,QAAA;AAAA,EACP,MAAA,EAAQ,QAAA;AAAA,EACR,GAAA,EAAK,QAAA;AAAA,EACL,OAAA,EAAS,QAAA;AAAA,EACT,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO,QAAA;AAAA,EACP,MAAA,EAAQ,KAAA;AAAA,EACR,GAAA,EAAK,KAAA;AAAA,EACL,GAAA,EAAK,QAAA;AAAA,EACL,SAAA,EAAW,QAAA;AAAA,EACX,MAAA,EAAQ,QAAA;AAAA,EACR,GAAA,EAAK,QAAA;AAAA,EACL,EAAA,EAAI,QAAA;AAAA,EACJ,IAAA,EAAM,QAAA;AAAA,EACN,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO;AACT;AA8BA,IAAM,aAAA,GAAgB,OAAO,KAAA,EAAO;AAAA,EAClC,IAAA,EAAM,YAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,MAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAUE,IAAM,GAAA,GAAYsC,OAAA,CAAA,UAAA;AAAA,EACvB,SAASC,IAAAA,CAAI,KAAA,EAAO,GAAA,EAAK;AACvB,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA,GAAY,KAAA;AAAA,MACZ,EAAA;AAAA,MACA,IAAA,GAAO,IAAA;AAAA,MACP,OAAA,GAAU,SAAA;AAAA,MACV,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,YAAA,GAAe,UAAA;AAAA,MACnB,QAAA;AAAA,MACA,WAAW,IAAI,CAAA,CAAA;AAAA,MACf,WAAW,OAAO,CAAA,CAAA;AAAA,MAClB;AAAA,KACF;AAEA,IAAA,MAAM,SAAA,GAAY,aAAa,EAAA,IAAM,KAAA;AAGrC,IAAA,MAAM,UAAU,QAAA,KAAa,QAAA,GAAW,gBAAA,CAAiB,QAAQ,KAAK,QAAA,GAAW,IAAA,CAAA;AAEjF,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEvC,GAAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,YAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,YAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,GAAA,CAAI,WAAA,GAAc,KAAA;AC3IX,IAAM,gBAAA,GAAyBwC,sBAEpC,MAAS;AAMJ,SAAS,YAAA,GAAkD;AAChE,EAAA,OAAaA,mBAAW,gBAAgB,CAAA;AAC1C;ACRO,IAAM,SAAA,GAAkBC,OAAA,CAAA,UAAA,CAG7B,SAASC,UAAAA,CAAU,EAAE,SAAA,EAAW,UAAA,EAAY,WAAA,EAAa,GAAG,KAAA,EAAM,EAAG,GAAA,EAAK;AAC1E,EAAA,uBACE1C,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,UAAA,CAAW,iBAAA,EAAmB,SAAS,CAAA;AAAA,MACjD,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AAED,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,eAAA,GAAkB,OAAO,KAAA,EAAO;AAAA,EACpC,IAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,SAAA,IACT,SAAS,MAAA,IACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,OAAA,IACT,IAAA,KAAS,cACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,mBAAA,IACT,IAAA,KAAS,iBAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,KAAA,GAAcyC,OAAA,CAAA,UAAA;AAAA,EACzB,SAASE,MAAAA,CAAM,KAAA,EAAO,GAAA,EAAK;AACzB,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,OAAA,GAAU,UAAA;AAAA,MACV,IAAA,GAAO,IAAA;AAAA,MACP,SAAA,GAAY,KAAA;AAAA,MACZ,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,cAAA;AAAA,MACA,YAAA;AAAA,MACA,SAAA,GAAY,KAAA;AAAA,MACZ,OAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,YAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA,EAAM,QAAA;AAAA,MACN,EAAA,EAAI,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,UAAA;AAAA,MACA,kBAAA,EAAoB,mBAAA;AAAA,MACpB,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,EAAA,GAAK,MAAA,KAAW,OAAA,GAAU,MAAA,GAAY,SAAA,EAAW,EAAA,CAAA;AACvD,IAAA,MAAM,IAAA,GAAO,QAAA,KAAa,OAAA,GAAU,MAAA,GAAY,MAAA,CAAA;AAChD,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,SAAA,EAAW,KAAA,IAAS,KAAA;AAC/C,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AAExD,IAAA,MAAM,eAAA,GAAkB;AAAA,MACtB,mBAAA;AAAA,MACA,SAAA,EAAW,KAAA,IAAS,SAAA,EAAW,eAAA,GAAkB,UAAU,cAAA,GAAiB,IAAA;AAAA,MAC5E,SAAA,EAAW,aAAA,GAAgB,SAAA,CAAU,YAAA,GAAe;AAAA,MAEnD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAGhB,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUF,iBAAiB,MAAM;AACrE,MAAA,IAAI,SAAA,KAAc,MAAA,EAAW,OAAO,MAAA,CAAO,SAAS,CAAA;AACpD,MAAA,IAAI,YAAA,KAAiB,MAAA,EAAW,OAAO,MAAA,CAAO,YAAY,CAAA;AAC1D,MAAA,OAAO,EAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,MAAM,eAAe,SAAA,KAAc,MAAA;AACnC,IAAA,MAAM,YAAA,GAAe,YAAA,GAAe,MAAA,CAAO,SAAA,IAAa,EAAE,CAAA,GAAI,aAAA;AAE9D,IAAA,MAAM,aAAA,GAAsBA,eAAgC,IAAI,CAAA;AAEhE,IAAA,MAAM,cAAA,GAAuBA,OAAA,CAAA,WAAA;AAAA,MAC3B,CAAC,IAAA,KAAkC;AACjC,QAAA,aAAA,CAAc,OAAA,GAAU,IAAA;AACxB,QAAA,IAAI,OAAO,iBAAiB,UAAA,EAAY;AACtC,UAAA,YAAA,CAAa,IAAI,CAAA;AAAA,QACnB,CAAA,MAAA,IAAW,YAAA,IAAgB,SAAA,IAAa,YAAA,EAAc;AACpD,UAAC,aAAiE,OAAA,GAAU,IAAA;AAAA,QAC9E;AAAA,MACF,CAAA;AAAA,MACA,CAAC,YAAY;AAAA,KACf;AAEA,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAA+C;AACnE,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,gBAAA,CAAiB,KAAA,CAAM,OAAO,KAAK,CAAA;AAAA,MACrC;AACA,MAAA,QAAA,GAAW,KAAK,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA2C;AAC9D,MAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,gBAAA,CAAiB,EAAE,CAAA;AAAA,MACrB;AACA,MAAA,IAAI,cAAc,OAAA,EAAS;AACzB,QAAA,aAAA,CAAc,QAAQ,KAAA,GAAQ,EAAA;AAC9B,QAAA,MAAM,QAAQ,IAAI,KAAA,CAAM,SAAS,EAAE,OAAA,EAAS,MAAM,CAAA;AAClD,QAAA,aAAA,CAAc,OAAA,CAAQ,cAAc,KAAK,CAAA;AACzC,QAAA,aAAA,CAAc,QAAQ,KAAA,EAAM;AAAA,MAC9B;AACA,MAAA,OAAA,IAAU;AAAA,IACZ,CAAA;AAEA,IAAA,MAAM,qBAAqB,MAAM;AAC/B,MAAA,IAAI,aAAA,CAAc,OAAA,IAAW,QAAA,CAAS,aAAA,KAAkB,cAAc,OAAA,EAAS;AAC7E,QAAA,aAAA,CAAc,QAAQ,KAAA,EAAM;AAAA,MAC9B;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,CAAC,YAAY,CAAC,QAAA,IAAY,aAAa,MAAA,GAAS,CAAA;AAE/E,IAAA,MAAM,WAAA,GAAc,4BAClBzC,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAU,iBAAA;AAAA,QACV,YAAA,EAAW,aAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QAET,QAAA,kBAAA4C,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,KAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,EAAA;AAAA,8BAAA5C,GAAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,8BACpCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA;AACtC;AAAA,KACF,GACE,IAAA;AAEJ,IAAA,MAAM,qBAAA,GAAwB,UAAA;AAAA,MAC5B,UAAA;AAAA,MACA,aAAa,OAAO,CAAA,CAAA;AAAA,MACpB,aAAa,IAAI,CAAA,CAAA;AAAA,MACjB,SAAA,IAAa,sBAAA;AAAA,MACb,KAAA,IAAS,iBAAA;AAAA,MACT,QAAA,IAAY,oBAAA;AAAA,MACZ;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,MAAM,gBAAA,GAAyByC,OAAA,CAAA,WAAA;AAAA,MAC7B,CAAC,IAAA,KAA6B;AAC5B,QAAA,MAAA,CAAO,KAAK,IAA6B,CAAA;AACzC,QAAA,MAAA,CAAO,cAAc,IAA+B,CAAA;AACpD,QAAA,cAAA,CAAe,IAA+B,CAAA;AAAA,MAChD,CAAA;AAAA,MACA,CAAC,GAAA,EAAK,YAAA,EAAc,cAAc;AAAA,KACpC;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEzC,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,gBAAA;AAAA,UACL,SAAA,EAAW,qBAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACA,IAAA;AAAA,UACA,UAAU,QAAA,IAAY,MAAA;AAAA,UACtB,UAAU,QAAA,IAAY,MAAA;AAAA,UACtB,UAAU,QAAA,IAAY,MAAA;AAAA,UACtB,kBAAA,EAAkB,eAAA;AAAA,UAClB,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,UAC7B,KAAA,EAAO,SAAA;AAAA,UACP,YAAA;AAAA,UACA,QAAA,EAAU,YAAA;AAAA,UACV,OAAA,EAAS,kBAAA;AAAA,UACR,GAAG,UAAA;AAAA,UACH,GAAG,cAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE4C,IAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,qBAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACA,OAAA,EAAS,kBAAA;AAAA,QAER,QAAA,EAAA;AAAA,UAAA,cAAA;AAAA,0BACD5C,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAK,cAAA;AAAA,cACL,EAAA;AAAA,cACA,IAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,kBAAA,EAAkB,eAAA;AAAA,cAClB,KAAA,EAAO,SAAA;AAAA,cACP,YAAA;AAAA,cACA,QAAA,EAAU,YAAA;AAAA,cACV,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,cAC7B,SAAA,EAAU,iBAAA;AAAA,cACT,GAAG,UAAA;AAAA,cACH,GAAG;AAAA;AAAA,WACN;AAAA,UACC,WAAA;AAAA,UACA;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AChPpB,IAAM,mBAAA,GAAsB,OAAO,KAAA,EAAO;AAAA,EACxC,IAAA,EAAM,kBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS;AACxC,CAAC,CAAA,CAA2B,CAAC,EAAE,SAAA,EAAU,MAAO;AAAA,EAC9C,OAAA,EAAS,aAAA;AAAA,EACT,aAAA,EAAe,QAAA;AAAA,EACf,QAAA,EAAU,UAAA;AAAA,EACV,KAAA,EAAO,YAAY,MAAA,GAAS,MAAA;AAAA,EAC5B,aAAA,EAAe;AACjB,CAAA,CAAE,CAAA;AAEF,IAAM,WAAA,GAAc,OAAO,OAAO,CAAA;AAAA,EAChC,CAAC,EAAE,KAAA,EAAO,KAAA,EAAM,MAAO;AAAA,IACrB,OAAA,EAAS,OAAA;AAAA,IACT,QAAA,EAAU,UAAA;AAAA,IACV,UAAA,EAAY,GAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,YAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,IAChC,KAAA,EAAO,QAAQ,KAAA,CAAM,OAAA,CAAQ,MAAM,IAAA,GAAO,KAAA,CAAM,QAAQ,IAAA,CAAK,OAAA;AAAA,IAC7D,UAAA,EAAY,MAAA;AAAA,IACZ,sCAAA,EAAwC;AAAA,MACtC,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,IAAA;AAAA,MAC3B,UAAA,EAAY;AAAA;AACd,GACF;AACF,CAAA;AAEA,IAAM,gBAAA,GAAmB,OAAO,GAAG,CAAA;AAAA,EACjC,CAAC,EAAE,KAAA,EAAO,KAAA,EAAM,MAAO;AAAA,IACrB,QAAA,EAAU,SAAA;AAAA,IACV,UAAA,EAAY,GAAA;AAAA,IACZ,MAAA,EAAQ,CAAA;AAAA,IACR,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA;AAAA,IAC5B,KAAA,EAAO,QAAQ,KAAA,CAAM,OAAA,CAAQ,MAAM,IAAA,GAAO,KAAA,CAAM,QAAQ,IAAA,CAAK;AAAA,GAC/D;AACF,CAAA;AAcO,IAAM,SAAA,GAAkB6C,OAAA,CAAA,UAAA;AAAA,EAC7B,SAASC,UAAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AAC7B,IAAA,MAAM;AAAA,MACJ,EAAA,EAAI,MAAA;AAAA,MACJ,KAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA;AAAA,MACA,KAAA,GAAQ,KAAA;AAAA,MACR,QAAA,GAAW,KAAA;AAAA,MACX,SAAA,GAAY,KAAA;AAAA,MACZ,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,cAAoBD,OAAA,CAAA,KAAA,EAAM;AAChC,IAAA,MAAM,UAAU,MAAA,IAAU,WAAA;AAC1B,IAAA,MAAM,OAAA,GAAU,QAAQ,KAAK,CAAA;AAC7B,IAAA,MAAM,mBAAA,GAAsB,OAAA,IAAW,YAAA,GAAe,YAAA,GAAe,UAAA;AACrE,IAAA,MAAM,YAAY,OAAA,IAAW,YAAA,GAAe,GAAG,OAAO,CAAA,MAAA,CAAA,GAAW,GAAG,OAAO,CAAA,OAAA,CAAA;AAE3E,IAAA,uBACED,IAAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA,KAAA;AAAA,QACA,EAAA;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,KAAA,oBACCA,IAAAA,CAAC,WAAA,EAAA,EAAY,OAAA,EAAS,OAAA,EAAS,OAAc,QAAA,EAC1C,QAAA,EAAA;AAAA,YAAA,KAAA;AAAA,YACA,QAAA,oBACC5C,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,mCAAA,EAAoC,aAAA,EAAY,QAAO,QAAA,EAAA,GAAA,EAEvE;AAAA,WAAA,EAEJ,CAAA;AAAA,0BAGFA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,OAAA;AAAA,cACJ,KAAA;AAAA,cACA,QAAA;AAAA,cACA,SAAA;AAAA,cACA,kBAAA,EAAkB,sBAAsB,SAAA,GAAY,MAAA;AAAA,cACnD,GAAG;AAAA;AAAA,WACN;AAAA,UAEC,uCACCA,GAAAA;AAAA,YAAC,gBAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,SAAA;AAAA,cACJ,KAAA;AAAA,cACA,IAAA,EAAM,OAAA,IAAW,YAAA,GAAe,OAAA,GAAU,MAAA;AAAA,cAC1C,WAAA,EAAW,OAAA,IAAW,YAAA,GAAe,QAAA,GAAW,MAAA;AAAA,cAE/C,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;ACrHxB,IAAM,mBAAA,GAAsB,OAAO,KAAA,EAAO;AAAA,EACxC,IAAA,EAAM,uBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,cAAc,IAAA,KAAS;AACpC,CAAC,CAAA;AAAA,EACC,CAAC,EAAE,KAAA,EAAO,QAAA,EAAU,sBAAqB,MAAO;AAAA,IAC9C,OAAA,EAAS,MAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,SAAA,EAAW,KAAA;AAAA,IACX,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,SAAA;AAAA,IAC1B,YAAY,QAAA,KAAa,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,GAAI,CAAA;AAAA,IACpD,aAAa,QAAA,KAAa,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,GAAI,CAAA;AAAA,IACvD,aAAA,EAAe,uBAAuB,MAAA,GAAS,MAAA;AAAA,IAC/C,UAAA,EAAY;AAAA,GACd;AACF,CAAA;AAEO,IAAM,cAAA,GAAuB+C,OAAA,CAAA,UAAA,CAGlC,SAASC,eAAAA,CAAe,OAAO,GAAA,EAAK;AACpC,EAAA,MAAM,EAAE,QAAA,EAAU,oBAAA,GAAuB,OAAO,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AAEtE,EAAA,uBACEhD,GAAAA;AAAA,IAAC,mBAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,QAAA;AAAA,MACA,oBAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AAED,cAAA,CAAe,WAAA,GAAc,gBAAA;ACrC7B,IAAM,uBAAA,GAA0B,OAAO,KAAA,EAAO;AAAA,EAC5C,IAAA,EAAM,iBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,SAAA,IACT,SAAS,MAAA,IACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,OAAA,IACT,IAAA,KAAS,cACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,YAAA,IACT,IAAA,KAAS,QAAA,IACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAME,IAAM,QAAA,GAAiBiD,OAAA,CAAA,UAAA;AAAA,EAC5B,SAASC,SAAAA,CAAS,KAAA,EAAO,GAAA,EAAK;AAC5B,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,OAAA,GAAU,UAAA;AAAA,MACV,IAAA,GAAO,IAAA;AAAA,MACP,SAAA,GAAY,KAAA;AAAA,MACZ,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,GAAU,CAAA;AAAA,MACV,OAAA;AAAA,MACA,UAAA,GAAa,KAAA;AAAA,MACb,MAAA,GAAS,UAAA;AAAA,MACT,SAAA,GAAY,KAAA;AAAA,MACZ,SAAA;AAAA,MACA,WAAA,EAAa,eAAA;AAAA,MACb,gBAAgB,EAAC;AAAA,MACjB,KAAA,EAAO,SAAA;AAAA,MACP,YAAA;AAAA,MACA,QAAA;AAAA,MACA,EAAA,EAAI,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,kBAAA,EAAoB,mBAAA;AAAA,MACpB,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,EAAA,GAAK,MAAA,KAAW,OAAA,GAAU,MAAA,GAAY,SAAA,EAAW,EAAA,CAAA;AACvD,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,SAAA,EAAW,KAAA,IAAS,KAAA;AAC/C,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AAExD,IAAA,MAAM,eAAA,GAAkB;AAAA,MACtB,mBAAA;AAAA,MACA,SAAA,EAAW,KAAA,IAAS,SAAA,EAAW,eAAA,GAAkB,UAAU,cAAA,GAAiB,IAAA;AAAA,MAC5E,SAAA,EAAW,aAAA,GAAgB,SAAA,CAAU,YAAA,GAAe;AAAA,MAEnD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAEhB,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUD,iBAAiB,MAAM;AACrE,MAAA,IAAI,SAAA,KAAc,MAAA,EAAW,OAAO,MAAA,CAAO,SAAS,CAAA;AACpD,MAAA,IAAI,YAAA,KAAiB,MAAA,EAAW,OAAO,MAAA,CAAO,YAAY,CAAA;AAC1D,MAAA,OAAO,EAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,MAAM,eAAe,SAAA,KAAc,MAAA;AACnC,IAAA,MAAM,YAAA,GAAe,YAAA,GAAe,MAAA,CAAO,SAAA,IAAa,EAAE,CAAA,GAAI,aAAA;AAE9D,IAAA,MAAM,gBAAA,GAAyBA,eAAmC,IAAI,CAAA;AAEtE,IAAA,MAAM,iBAAA,GAA0BA,OAAA,CAAA,WAAA;AAAA,MAC9B,CAAC,IAAA,KAAqC;AACpC,QAAA,gBAAA,CAAiB,OAAA,GAAU,IAAA;AAC3B,QAAA,IAAI,OAAO,oBAAoB,UAAA,EAAY;AACzC,UAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,QACtB,CAAA,MAAA,IAAW,eAAA,IAAmB,SAAA,IAAa,eAAA,EAAiB;AAC1D,UAAC,gBAAuE,OAAA,GAAU,IAAA;AAAA,QACpF;AAAA,MACF,CAAA;AAAA,MACA,CAAC,eAAe;AAAA,KAClB;AAGA,IAAMA,wBAAgB,MAAM;AAC1B,MAAA,IAAI,CAAC,UAAA,IAAc,CAAC,gBAAA,CAAiB,OAAA,EAAS;AAE9C,MAAA,MAAM,WAAW,gBAAA,CAAiB,OAAA;AAClC,MAAA,QAAA,CAAS,MAAM,MAAA,GAAS,MAAA;AAExB,MAAA,MAAM,aAAa,UAAA,CAAW,gBAAA,CAAiB,QAAQ,CAAA,CAAE,UAAU,CAAA,IAAK,EAAA;AACxE,MAAA,MAAM,YAAY,OAAA,GAAU,UAAA;AAC5B,MAAA,MAAM,SAAA,GAAY,OAAA,GAAU,OAAA,GAAU,UAAA,GAAa,QAAA;AAEnD,MAAA,MAAM,mBAAmB,IAAA,CAAK,GAAA;AAAA,QAC5B,IAAA,CAAK,GAAA,CAAI,QAAA,CAAS,YAAA,EAAc,SAAS,CAAA;AAAA,QACzC;AAAA,OACF;AAEA,MAAA,QAAA,CAAS,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,gBAAgB,CAAA,EAAA,CAAA;AAC3C,MAAA,QAAA,CAAS,MAAM,SAAA,GACb,OAAA,IAAW,QAAA,CAAS,YAAA,GAAe,YAAY,MAAA,GAAS,QAAA;AAAA,IAC5D,GAAG,CAAC,YAAA,EAAc,UAAA,EAAY,OAAA,EAAS,OAAO,CAAC,CAAA;AAE/C,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAAkD;AACtE,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,gBAAA,CAAiB,KAAA,CAAM,OAAO,KAAK,CAAA;AAAA,MACrC;AACA,MAAA,QAAA,GAAW,KAAK,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,MAAM,qBAAqB,MAAM;AAC/B,MAAA,IAAI,gBAAA,CAAiB,OAAA,IAAW,QAAA,CAAS,aAAA,KAAkB,iBAAiB,OAAA,EAAS;AACnF,QAAA,gBAAA,CAAiB,QAAQ,KAAA,EAAM;AAAA,MACjC;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,kBAAA,GAAqB,UAAA;AAAA,MACzB,aAAA;AAAA,MACA,gBAAgB,OAAO,CAAA,CAAA;AAAA,MACvB,gBAAgB,IAAI,CAAA,CAAA;AAAA,MACpB,SAAA,IAAa,yBAAA;AAAA,MACb,KAAA,IAAS,oBAAA;AAAA,MACT,QAAA,IAAY,uBAAA;AAAA,MACZ;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,MAAM,aAAA,GAAqC;AAAA,MACzC,MAAA,EAAQ,aAAa,MAAA,GAAS;AAAA,KAChC;AAEA,IAAA,MAAM,YAAA,GAAe,4BACnBL,IAAAA,CAAC,SAAI,SAAA,EAAU,sBAAA,EAAuB,aAAU,QAAA,EAC7C,QAAA,EAAA;AAAA,MAAA,YAAA,CAAa,MAAA;AAAA,MACb,SAAA,GAAY,CAAA,GAAA,EAAM,SAAS,CAAA,CAAA,GAAK;AAAA,KAAA,EACnC,CAAA,GACE,IAAA;AAEJ,IAAA,MAAM,gBAAA,GAAyBK,OAAA,CAAA,WAAA;AAAA,MAC7B,CAAC,IAAA,KAA6B;AAC5B,QAAA,MAAA,CAAO,KAAK,IAA6B,CAAA;AACzC,QAAA,MAAA,CAAO,iBAAiB,IAAkC,CAAA;AAC1D,QAAA,iBAAA,CAAkB,IAAkC,CAAA;AAAA,MACtD,CAAA;AAAA,MACA,CAAC,GAAA,EAAK,eAAA,EAAiB,iBAAiB;AAAA,KAC1C;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEjD,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,gBAAA;AAAA,UACL,SAAA,EAAW,kBAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACA,IAAA;AAAA,UACA,WAAA;AAAA,UACA,UAAU,QAAA,IAAY,MAAA;AAAA,UACtB,UAAU,QAAA,IAAY,MAAA;AAAA,UACtB,UAAU,QAAA,IAAY,MAAA;AAAA,UACtB,kBAAA,EAAkB,eAAA;AAAA,UAClB,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,UAC7B,KAAA,EAAO,SAAA;AAAA,UACP,YAAA;AAAA,UACA,QAAA,EAAU,YAAA;AAAA,UACV,SAAA;AAAA,UACA,IAAA,EAAM,IAAA,KAAS,OAAA,GAAU,MAAA,GAAY,OAAA,CAAA;AAAA,UACrC,IAAA;AAAA,UACA,SAAA;AAAA,UACA,OAAA;AAAA,UACA,MAAA;AAAA,UACA,SAAA;AAAA,UACA,OAAA;AAAA,UACA,OAAA,EAAS,kBAAA;AAAA,UACR,GAAG,aAAA;AAAA,UACH,GAAG,kBAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE4C,IAAAA;AAAA,MAAC,uBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,kBAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACA,OAAA,EAAS,kBAAA;AAAA,QACR,GAAG,kBAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA5C,GAAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAK,iBAAA;AAAA,cACL,EAAA;AAAA,cACA,IAAA;AAAA,cACA,WAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,kBAAA,EAAkB,eAAA;AAAA,cAClB,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,cAC7B,KAAA,EAAO,SAAA;AAAA,cACP,YAAA;AAAA,cACA,QAAA,EAAU,YAAA;AAAA,cACV,SAAA;AAAA,cACA,MAAM,IAAA,IAAQ,OAAA;AAAA,cACd,IAAA;AAAA,cACA,SAAA;AAAA,cACA,OAAA;AAAA,cACA,MAAA;AAAA,cACA,SAAA;AAAA,cACA,OAAA;AAAA,cACA,KAAA,EAAO,aAAA;AAAA,cACP,SAAA,EAAU,oBAAA;AAAA,cACT,GAAG;AAAA;AAAA,WACN;AAAA,UACC;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AChPvB,IAAM,mBAAA,GAAsB,OAAO,KAAA,EAAO;AAAA,EACxC,IAAA,EAAM,kBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,eACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,OAAA,IACT,SAAS,WAAA,IACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,YAAA,IACT,IAAA,KAAS,cACT,IAAA,KAAS,YAAA,IACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAcE,IAAM,SAAA,GAAkBmD,OAAA,CAAA,UAAA;AAAA,EAC7B,SAASC,UAAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AAC7B,IAAA,MAAM;AAAA,MACJ,EAAA,EAAI,MAAA;AAAA,MACJ,IAAA;AAAA,MACA,UAAU,YAAA,GAAe,KAAA;AAAA,MACzB,UAAA,GAAa,KAAA;AAAA,MACb,UAAU,YAAA,GAAe,KAAA;AAAA,MACzB,UAAA,GAAa,KAAA;AAAA,MACb,UAAU,YAAA,GAAe,KAAA;AAAA,MACzB,UAAA,GAAa,KAAA;AAAA,MACb,OAAO,SAAA,GAAY,KAAA;AAAA,MACnB,SAAA,GAAY,KAAA;AAAA,MACZ,SAAA,GAAY,KAAA;AAAA,MACZ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,WAAW,UAAA,IAAc,YAAA;AAC/B,IAAA,MAAM,WAAW,UAAA,IAAc,YAAA;AAC/B,IAAA,MAAM,WAAW,UAAA,IAAc,YAAA;AAC/B,IAAA,MAAM,QAAQ,SAAA,IAAa,SAAA;AAE3B,IAAA,MAAM,cAAoBD,OAAA,CAAA,KAAA,EAAM;AAChC,IAAA,MAAM,KAAK,MAAA,IAAU,WAAA;AACrB,IAAA,MAAM,OAAA,GAAU,GAAG,EAAE,CAAA,MAAA,CAAA;AACrB,IAAA,MAAM,YAAA,GAAe,GAAG,EAAE,CAAA,OAAA,CAAA;AAC1B,IAAA,MAAM,cAAA,GAAiB,GAAG,EAAE,CAAA,MAAA,CAAA;AAE5B,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUA,iBAAS,KAAK,CAAA;AAC9D,IAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAUA,iBAAS,KAAK,CAAA;AAElE,IAAA,MAAM,YAAA,GAA4CA,OAAA,CAAA,OAAA;AAAA,MAChD,OAAO;AAAA,QACL,EAAA;AAAA,QACA,IAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA;AAAA,QACA,YAAA;AAAA,QACA,cAAA;AAAA,QACA,aAAA;AAAA,QACA,eAAA;AAAA,QACA,gBAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA;AAAA,QACE,EAAA;AAAA,QACA,IAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA;AAAA,QACA,YAAA;AAAA,QACA,cAAA;AAAA,QACA,aAAA;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,eAAA;AAAA,MACA,SAAA,IAAa,2BAAA;AAAA,MACb,KAAA,IAAS,sBAAA;AAAA,MACT,QAAA,IAAY,yBAAA;AAAA,MACZ;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEnD,GAAAA,CAAC,gBAAA,CAAiB,UAAjB,EAA0B,KAAA,EAAO,cAChC,QAAA,kBAAAA,GAAAA;AAAA,QAAC,mBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA,CAAC,gBAAA,CAAiB,UAAjB,EAA0B,KAAA,EAAO,cAChC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;AChIxB,IAAM,eAAA,GAAkB,OAAO,OAAA,EAAS;AAAA,EACtC,IAAA,EAAM,kBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,OAAA,IACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAQE,IAAM,SAAA,GAAkBqD,OAAA,CAAA,UAAA;AAAA,EAC7B,SAASC,UAAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AAC7B,IAAA,MAAM;AAAA,MACJ,OAAA,EAAS,WAAA;AAAA,MACT,EAAA,EAAI,MAAA;AAAA,MACJ,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM,OAAA,GAAU,eAAe,SAAA,EAAW,EAAA;AAC1C,IAAA,MAAM,EAAA,GAAK,UAAU,SAAA,EAAW,OAAA;AAChC,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,SAAA,EAAW,KAAA,IAAS,KAAA;AAC/C,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AAExD,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,eAAA;AAAA,MACA,KAAA,IAAS,sBAAA;AAAA,MACT,QAAA,IAAY,yBAAA;AAAA,MACZ;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEtD,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,OAAA;AAAA,UACA,EAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE4C,IAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,OAAA;AAAA,QACA,EAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UACA,QAAA,oBACC5C,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,yBAAA,EAA0B,aAAA,EAAY,QAAO,QAAA,EAAA,GAAA,EAAC;AAAA;AAAA;AAAA,KAElE;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;ACjGxB,IAAM,oBAAA,GAAuB,OAAO,GAAA,EAAK;AAAA,EACvC,IAAA,EAAM,uBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,SAAS,UAAA,IAAc,IAAA,KAAS,aAAa,IAAA,KAAS;AAC1D,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,cAAA,GAAuBuD,OAAA,CAAA,UAAA,CAGlC,SAASC,eAAAA,CAAe,OAAO,GAAA,EAAK;AACpC,EAAA,MAAM;AAAA,IACJ,EAAA,EAAI,MAAA;AAAA,IACJ,QAAA,EAAU,YAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,SAAA,GAAY,GAAA;AAAA,IACZ,EAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,EAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,MAAM,mBAAmB,SAAA,EAAW,gBAAA;AAEpC,EAAMD,kBAAU,MAAM;AACpB,IAAA,gBAAA,GAAmB,IAAI,CAAA;AACvB,IAAA,OAAO,MAAM,mBAAmB,KAAK,CAAA;AAAA,EACvC,CAAA,EAAG,CAAC,gBAAgB,CAAC,CAAA;AAErB,EAAA,MAAM,EAAA,GAAK,UAAU,SAAA,EAAW,YAAA;AAChC,EAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,EAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,EAAA,MAAM,eAAA,GAAkB,UAAA;AAAA,IACtB,qBAAA;AAAA,IACA,QAAA,IAAY,+BAAA;AAAA,IACZ;AAAA,GACF;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACEvD,GAAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,IAAA;AAAA,QACJ,GAAA;AAAA,QACA,EAAA;AAAA,QACA,SAAA,EAAW,eAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,oBAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAI,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA,EAAW,eAAA;AAAA,MACX,KAAA;AAAA,MACA,EAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AAED,cAAA,CAAe,WAAA,GAAc,gBAAA;AC/E7B,IAAM,sBAAA,GAAyB,OAAO,GAAA,EAAK;AAAA,EACzC,IAAA,EAAM,yBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,SAAS,YAAA,IAAgB,IAAA,KAAS,aAAa,IAAA,KAAS;AAC5D,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,gBAAA,GAAyByD,OAAA,CAAA,UAAA,CAGpC,SAASC,iBAAAA,CAAiB,OAAO,GAAA,EAAK;AACtC,EAAA,MAAM;AAAA,IACJ,EAAA,EAAI,MAAA;AAAA,IACJ,UAAA,GAAa,KAAA;AAAA,IACb,OAAA,GAAU,KAAA;AAAA,IACV,SAAA,GAAY,GAAA;AAAA,IACZ,EAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,EAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,MAAM,OAAA,GAAU,WAAW,KAAA,IAAS,KAAA;AACpC,EAAA,MAAM,qBAAqB,SAAA,EAAW,kBAAA;AAEtC,EAAMD,kBAAU,MAAM;AACpB,IAAA,IAAI,WAAW,UAAA,EAAY;AACzB,MAAA,kBAAA,GAAqB,IAAI,CAAA;AACzB,MAAA,OAAO,MAAM,qBAAqB,KAAK,CAAA;AAAA,IACzC;AAAA,EACF,CAAA,EAAG,CAAC,kBAAA,EAAoB,OAAA,EAAS,UAAU,CAAC,CAAA;AAE5C,EAAA,IAAI,CAAC,OAAA,IAAW,CAAC,UAAA,EAAY;AAC3B,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,EAAA,GAAK,UAAU,SAAA,EAAW,cAAA;AAChC,EAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,EAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,uBAAA,EAAyB,SAAS,CAAA;AAEpE,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACEzD,GAAAA;AAAA,MAAC,sBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,IAAA;AAAA,QACJ,GAAA;AAAA,QACA,EAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,WAAA,EAAU,QAAA;AAAA,QACV,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,sBAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAI,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,EAAA;AAAA,MACA,IAAA,EAAK,OAAA;AAAA,MACL,WAAA,EAAU,QAAA;AAAA,MACV,SAAA,EAAW,cAAA;AAAA,MACX,KAAA;AAAA,MACA,EAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AAED,gBAAA,CAAiB,WAAA,GAAc,kBAAA;ACtHxB,IAAM,eAAA,GAAwB2D,sBAEnC,MAAS;AAMJ,SAAS,gBAAA,GAAqD;AACnE,EAAA,OAAaA,mBAAW,eAAe,CAAA;AACzC;ACIA,IAAM,kBAAA,GAAqB,OAAO,OAAA,EAAS;AAAA,EACzC,IAAA,EAAM,iBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,SAAS,MAAA,IACT,IAAA,KAAS,iBACT,IAAA,KAAS,UAAA,IACT,SAAS,UAAA,IACT,IAAA,KAAS,WACT,IAAA,KAAS,SAAA,IACT,SAAS,eAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAUE,IAAM,QAAA,GAAiBC,OAAA,CAAA,UAAA;AAAA,EAC5B,SAASC,SAAAA,CAAS,KAAA,EAAO,GAAA,EAAK;AAC5B,IAAA,MAAM,QAAQ,gBAAA,EAAiB;AAC/B,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM;AAAA,MACJ,OAAA,EAAS,WAAA;AAAA,MACT,cAAA,GAAiB,KAAA;AAAA,MACjB,aAAA,GAAgB,KAAA;AAAA,MAChB,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,WAAA,EAAa,eAAA;AAAA,MACb,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,aAAa,EAAC;AAAA,MACd,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA,EAAI,MAAA;AAAA,MACJ,GAAG;AAAA,KACL,GAAI,KAAA;AAGJ,IAAA,MAAM,iBAAA,GAAoB,KAAA,KAAU,MAAA,IAAa,SAAA,KAAc,MAAA;AAC/D,IAAA,MAAM,mBAAmB,iBAAA,GACrB,KAAA,CAAM,KAAA,CAAM,QAAA,CAAS,SAAS,CAAA,GAC9B,MAAA;AAEJ,IAAA,MAAM,OAAA,GACJ,WAAA,KAAgB,MAAA,GAAY,WAAA,GAAc,gBAAA;AAE5C,IAAA,MAAM,IAAA,GAAO,QAAA,IAAY,KAAA,EAAO,IAAA,IAAQ,IAAA;AACxC,IAAA,MAAM,WAAA,GAAc,eAAA,IAAmB,KAAA,EAAO,WAAA,IAAe,SAAA;AAC7D,IAAA,MAAM,QAAA,GACJ,YAAA,IAAgB,KAAA,EAAO,QAAA,IAAY,WAAW,QAAA,IAAY,KAAA;AAC5D,IAAA,MAAM,QAAA,GACJ,YAAA,IAAgB,KAAA,EAAO,QAAA,IAAY,WAAW,QAAA,IAAY,KAAA;AAC5D,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,KAAA,EAAO,KAAA,IAAS,WAAW,KAAA,IAAS,KAAA;AAC/D,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,IAAA,GAAO,QAAA,IAAY,KAAA,EAAO,IAAA,IAAQ,SAAA,EAAW,IAAA;AACnD,IAAA,MAAM,KAAK,MAAA,KAAW,SAAA,GAAY,CAAA,EAAG,SAAA,CAAU,EAAE,CAAA,SAAA,CAAA,GAAc,MAAA,CAAA;AAE/D,IAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAUD,OAAA,CAAA,QAAA;AAAA,MAC1D;AAAA,KACF;AAEA,IAAA,MAAM,eAAe,OAAA,KAAY,MAAA;AACjC,IAAA,MAAM,gBAAA,GAAmB,eAAe,OAAA,GAAU,mBAAA;AAElD,IAAA,MAAM,cAAA,GAAuBA,eAAgC,IAAI,CAAA;AACjE,IAAA,MAAM,cAAA,GAAiB,YAAA,CAAa,cAAA,EAAgB,YAAY,CAAA;AAEhE,IAAMA,kBAAU,MAAM;AACpB,MAAA,IAAI,eAAe,OAAA,EAAS;AAC1B,QAAA,cAAA,CAAe,OAAA,CAAQ,aAAA,GAAgB,OAAA,CAAQ,aAAa,CAAA;AAAA,MAC9D;AAAA,IACF,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAElB,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAA+C;AACnE,MAAA,IAAI,YAAY,QAAA,EAAU;AACxB,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,iBAAA,EAAmB;AACrB,QAAA,KAAA,CAAM,YAAY,SAAS,CAAA;AAAA,MAC7B,CAAA,MAAA,IAAW,CAAC,YAAA,EAAc;AACxB,QAAA,sBAAA,CAAuB,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA,MAC7C;AAEA,MAAA,YAAA,GAAe,KAAK,CAAA;AAAA,IACtB,CAAA;AAEA,IAAA,MAAM,iBAAA,GAAoB,UAAA;AAAA,MACxB,aAAA;AAAA,MACA,gBAAgB,IAAI,CAAA,CAAA;AAAA,MACpB,gBAAgB,WAAW,CAAA,CAAA;AAAA,MAC3B,gBAAA,IAAoB,sBAAA;AAAA,MACpB,aAAA,IAAiB,4BAAA;AAAA,MACjB,QAAA,IAAY,uBAAA;AAAA,MACZ,KAAA,IAAS,oBAAA;AAAA,MACT;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,MAAM,UAAA,mBACJ5D,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,8CAAA,EAA+C,aAAA,EAAY,MAAA,EACxE,QAAA,EAAA,aAAA,mBACCA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,4EAAA;AAAA,QACV,OAAA,EAAQ,WAAA;AAAA,QACR,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,WAAA,EAAY,KAAA;AAAA,QACZ,aAAA,EAAc,OAAA;AAAA,QACd,cAAA,EAAe,OAAA;AAAA,QACf,aAAA,EAAY,MAAA;AAAA,QACZ,OAAO,IAAA,KAAS,IAAA,GAAO,EAAA,GAAK,IAAA,KAAS,OAAO,EAAA,GAAK,EAAA;AAAA,QACjD,QAAQ,IAAA,KAAS,IAAA,GAAO,EAAA,GAAK,IAAA,KAAS,OAAO,EAAA,GAAK,EAAA;AAAA,QAElD,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA,KACvC,GACE,mCACFA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,sEAAA;AAAA,QACV,OAAA,EAAQ,WAAA;AAAA,QACR,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,WAAA,EAAY,KAAA;AAAA,QACZ,aAAA,EAAc,OAAA;AAAA,QACd,cAAA,EAAe,OAAA;AAAA,QACf,aAAA,EAAY,MAAA;AAAA,QACZ,OAAO,IAAA,KAAS,IAAA,GAAO,EAAA,GAAK,IAAA,KAAS,OAAO,EAAA,GAAK,EAAA;AAAA,QACjD,QAAQ,IAAA,KAAS,IAAA,GAAO,EAAA,GAAK,IAAA,KAAS,OAAO,EAAA,GAAK,EAAA;AAAA,QAElD,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB;AAAA;AAAA,QAElC,IAAA,EACN,CAAA;AAGF,IAAA,MAAM,eAAA,GAAkB;AAAA,MACtB,WAAW,kBAAkB,CAAA;AAAA,MAC7B,SAAA,EAAW,KAAA,IAAS,SAAA,EAAW,eAAA,GAAkB,UAAU,cAAA,GAAiB,IAAA;AAAA,MAC5E,SAAA,EAAW,aAAA,GAAgB,SAAA,CAAU,YAAA,GAAe;AAAA,MAEnD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAEhB,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,GAAAA;AAAA,QAAC,kBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,iBAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE4C,IAAAA;AAAA,MAAC,kBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,iBAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA5C,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,UAAA;AAAA,cACL,EAAA;AAAA,cACA,IAAA;AAAA,cACA,KAAA,EAAO,SAAA;AAAA,cACP,QAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,OAAA,EAAS,eAAe,gBAAA,GAAmB,MAAA;AAAA,cAC3C,cAAA,EAAgB,CAAC,YAAA,GAAe,cAAA,GAAiB,MAAA;AAAA,cACjD,QAAA,EAAU,YAAA;AAAA,cACV,GAAA,EAAK,cAAA;AAAA,cACL,cAAA,EAAc,gBAAgB,OAAA,GAAU,gBAAA;AAAA,cACxC,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,cAC7B,kBAAA,EAAkB,eAAA;AAAA,cAClB,SAAA,EAAU,oBAAA;AAAA,cACT,GAAG;AAAA;AAAA,WACN;AAAA,UACC,UAAA;AAAA,UACA,4BACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4CACb,QAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AC3NhB,SAAS,oBAAA,CAAwB;AAAA,EACtC,KAAA,EAAO,SAAA;AAAA,EACP,YAAA;AAAA,EACA;AACF,CAAA,EAGE;AACA,EAAA,MAAM,eAAe,SAAA,KAAc,MAAA;AAEnC,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAU8D,iBAAY,MAAM;AACxE,IAAA,IAAI,iBAAiB,MAAA,EAAW;AAC9B,MAAA,OAAO,OAAO,YAAA,KAAiB,UAAA,GAC1B,YAAA,EAAyB,GAC1B,YAAA;AAAA,IACN;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAC,CAAA;AAED,EAAA,MAAM,KAAA,GAAQ,eAAgB,SAAA,GAAkB,iBAAA;AAEhD,EAAA,MAAM,WAAA,GAAoBA,eAAO,QAAQ,CAAA;AACzC,EAAMA,kBAAU,MAAM;AACpB,IAAA,WAAA,CAAY,OAAA,GAAU,QAAA;AAAA,EACxB,CAAC,CAAA;AAED,EAAA,MAAM,QAAA,GAAiBA,OAAA,CAAA,WAAA;AAAA,IACrB,CAAC,IAAA,KAA+B;AAC9B,MAAA,MAAM,eACJ,OAAO,IAAA,KAAS,UAAA,GAAc,IAAA,CAAwB,KAAK,CAAA,GAAI,IAAA;AAEjE,MAAA,IAAI,CAAC,MAAA,CAAO,EAAA,CAAG,KAAA,EAAO,YAAY,CAAA,EAAG;AACnC,QAAA,IAAI,CAAC,YAAA,EAAc;AACjB,UAAA,oBAAA,CAAqB,YAAY,CAAA;AAAA,QACnC;AACA,QAAA,WAAA,CAAY,UAAU,YAAY,CAAA;AAAA,MACpC;AAAA,IACF,CAAA;AAAA,IACA,CAAC,cAAc,KAAK;AAAA,GACtB;AAEA,EAAA,OAAO,CAAC,OAAO,QAAQ,CAAA;AACzB;ACvCA,IAAM,uBAAA,GAA0B,OAAO,KAAA,EAAO;AAAA,EAC5C,IAAA,EAAM,sBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,aAAA,IACT,SAAS,SAAA,IACT,IAAA,KAAS,aAAA,IACT,IAAA,KAAS,WACT,IAAA,KAAS,UAAA,IACT,SAAS,UAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,EAAgC,CAAC,EAAE,KAAA,EAAO,OAAA,GAAU,GAAE,KAAM;AAC3D,EAAA,MAAM,WACJ,OAAO,OAAA,KAAY,WAAW,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,GAAI,OAAA;AAEzD,EAAA,OAAO;AAAA,IACL,GAAA,EAAK;AAAA,GACP;AACF,CAAC,CAAA;AAaM,IAAM,aAAA,GAAsBC,OAAA,CAAA,UAAA,CAGjC,SAASC,cAAAA,CAAc,OAAO,GAAA,EAAK;AACnC,EAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,EAAA,MAAM;AAAA,IACJ,KAAA,EAAO,SAAA;AAAA,IACP,eAAe,EAAC;AAAA,IAChB,QAAA,EAAU,YAAA;AAAA,IACV,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,GAAO,IAAA;AAAA,IACP,WAAA,GAAc,SAAA;AAAA,IACd,WAAA,GAAc,UAAA;AAAA,IACd,OAAA,GAAU,CAAA;AAAA,IACV,QAAA,EAAU,YAAA;AAAA,IACV,QAAA,EAAU,YAAA;AAAA,IACV,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,GAAU,KAAA;AAAA,IACV,SAAA;AAAA,IACA,EAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,EAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,IAAA,GAAO,YAAY,SAAA,EAAW,IAAA;AACpC,EAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,EAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,EAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,SAAA,EAAW,KAAA,IAAS,KAAA;AAE/C,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,oBAAA,CAA+B;AAAA,IACvD,KAAA,EAAO,SAAA;AAAA,IACP,YAAA;AAAA,IACA,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,WAAA,GAAoBD,OAAA,CAAA,WAAA;AAAA,IACxB,CAAC,SAAA,KAAsB;AACrB,MAAA,IAAI,YAAY,QAAA,EAAU;AAC1B,MAAA,MAAM,OAAA,GAAU,SAAS,EAAC;AAC1B,MAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,QAAA,CAAS,SAAS,IACnC,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,MAAM,SAAS,CAAA,GACrC,CAAC,GAAG,SAAS,SAAS,CAAA;AAC1B,MAAA,QAAA,CAAS,IAAI,CAAA;AAAA,IACf,CAAA;AAAA,IACA,CAAC,KAAA,EAAO,QAAA,EAAU,QAAA,EAAU,QAAQ;AAAA,GACtC;AAEA,EAAA,MAAM,YAAA,GAA2CA,OAAA,CAAA,OAAA;AAAA,IAC/C,OAAO;AAAA,MACL,KAAA,EAAO,SAAS,EAAC;AAAA,MACjB,IAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF,CAAA;AAAA,IACA,CAAC,OAAO,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,QAAA,EAAU,OAAO,WAAW;AAAA,GACzE;AAEA,EAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,IACrB,mBAAA;AAAA,IACA,sBAAsB,WAAW,CAAA,CAAA;AAAA,IACjC;AAAA,GACF;AAEA,EAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACE/D,GAAAA,CAAC,eAAA,CAAgB,UAAhB,EAAyB,KAAA,EAAO,cAC/B,QAAA,kBAAAA,GAAAA;AAAA,MAAC,uBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,IAAA;AAAA,QACJ,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,WAAA;AAAA,QACA,OAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA,CAAC,eAAA,CAAgB,UAAhB,EAAyB,KAAA,EAAO,cAC/B,QAAA,kBAAAA,GAAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAI,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,IAAA,EAAK,OAAA;AAAA,MACL,WAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA,EAAW,cAAA;AAAA,MACX,KAAA;AAAA,MACA,EAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH,EACF,CAAA;AAEJ,CAAC;AAED,aAAA,CAAc,WAAA,GAAc,eAAA;AC7JrB,IAAM,YAAA,GAAqBiE,sBAEhC,MAAS;AAMJ,SAAS,aAAA,GAA+C;AAC7D,EAAA,OAAaA,mBAAW,YAAY,CAAA;AACtC;ACIA,IAAM,eAAA,GAAkB,OAAO,OAAA,EAAS;AAAA,EACtC,IAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,MAAA,IACT,SAAS,aAAA,IACT,IAAA,KAAS,UAAA,IACT,IAAA,KAAS,cACT,IAAA,KAAS,OAAA,IACT,SAAS,SAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,KAAA,GAAcC,OAAA,CAAA,UAAA;AAAA,EACzB,SAASC,MAAAA,CAAM,KAAA,EAAO,GAAA,EAAK;AACzB,IAAA,MAAM,QAAQ,aAAA,EAAc;AAC5B,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM;AAAA,MACJ,OAAA,EAAS,WAAA;AAAA,MACT,cAAA,GAAiB,KAAA;AAAA,MACjB,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,WAAA,EAAa,eAAA;AAAA,MACb,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,aAAa,EAAC;AAAA,MACd,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA,EAAI,MAAA;AAAA,MACJ,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,iBAAA,GAAoB,KAAA,KAAU,MAAA,IAAa,SAAA,KAAc,MAAA;AAC/D,IAAA,MAAM,gBAAA,GAAmB,iBAAA,GACrB,KAAA,CAAM,KAAA,KAAU,MAAA,IAAa,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA,KAAM,MAAA,CAAO,SAAS,CAAA,GACrE,MAAA;AAEJ,IAAA,MAAM,OAAA,GACJ,WAAA,KAAgB,MAAA,GAAY,WAAA,GAAc,gBAAA;AAE5C,IAAA,MAAM,IAAA,GAAO,QAAA,IAAY,KAAA,EAAO,IAAA,IAAQ,IAAA;AACxC,IAAA,MAAM,WAAA,GAAc,eAAA,IAAmB,KAAA,EAAO,WAAA,IAAe,SAAA;AAC7D,IAAA,MAAM,QAAA,GACJ,YAAA,IAAgB,KAAA,EAAO,QAAA,IAAY,WAAW,QAAA,IAAY,KAAA;AAC5D,IAAA,MAAM,QAAA,GACJ,YAAA,IAAgB,KAAA,EAAO,QAAA,IAAY,WAAW,QAAA,IAAY,KAAA;AAC5D,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,KAAA,EAAO,KAAA,IAAS,WAAW,KAAA,IAAS,KAAA;AAC/D,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,IAAA,GAAO,QAAA,IAAY,KAAA,EAAO,IAAA,IAAQ,SAAA,EAAW,IAAA;AACnD,IAAA,MAAM,EAAA,GAAK,WAAW,SAAA,GAAY,CAAA,EAAG,UAAU,EAAE,CAAA,OAAA,EAAU,SAAA,IAAa,EAAE,CAAA,CAAA,GAAK,MAAA,CAAA;AAE/E,IAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAUD,OAAA,CAAA,QAAA;AAAA,MAC1D;AAAA,KACF;AAEA,IAAA,MAAM,eAAe,OAAA,KAAY,MAAA;AACjC,IAAA,MAAM,gBAAA,GAAmB,eAAe,OAAA,GAAU,mBAAA;AAElD,IAAA,MAAM,cAAA,GAAuBA,eAAgC,IAAI,CAAA;AACjE,IAAA,MAAM,cAAA,GAAiB,YAAA,CAAa,cAAA,EAAgB,YAAY,CAAA;AAEhE,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAA+C;AACnE,MAAA,IAAI,YAAY,QAAA,EAAU;AACxB,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,iBAAA,IAAqB,cAAc,MAAA,EAAW;AAChD,QAAA,KAAA,CAAM,SAAS,SAAS,CAAA;AAAA,MAC1B,CAAA,MAAA,IAAW,CAAC,YAAA,EAAc;AACxB,QAAA,sBAAA,CAAuB,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA,MAC7C;AAEA,MAAA,YAAA,GAAe,KAAK,CAAA;AAAA,IACtB,CAAA;AAEA,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,UAAA;AAAA,MACA,aAAa,IAAI,CAAA,CAAA;AAAA,MACjB,aAAa,WAAW,CAAA,CAAA;AAAA,MACxB,gBAAA,IAAoB,mBAAA;AAAA,MACpB,QAAA,IAAY,oBAAA;AAAA,MACZ,KAAA,IAAS,iBAAA;AAAA,MACT;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,MAAM,UAAA,mBACJlE,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wCAAA,EAAyC,aAAA,EAAY,MAAA,EACnE,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAiC,CAAA,EACnD,CAAA;AAGF,IAAA,MAAM,eAAA,GAAkB;AAAA,MACtB,WAAW,kBAAkB,CAAA;AAAA,MAC7B,SAAA,EAAW,KAAA,IAAS,SAAA,EAAW,eAAA,GAAkB,UAAU,cAAA,GAAiB,IAAA;AAAA,MAC5E,SAAA,EAAW,aAAA,GAAgB,SAAA,CAAU,YAAA,GAAe;AAAA,MAEnD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAEhB,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE4C,IAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA5C,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,OAAA;AAAA,cACL,EAAA;AAAA,cACA,IAAA;AAAA,cACA,KAAA,EAAO,SAAA;AAAA,cACP,QAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,OAAA,EAAS,eAAe,gBAAA,GAAmB,MAAA;AAAA,cAC3C,cAAA,EAAgB,CAAC,YAAA,GAAe,cAAA,GAAiB,MAAA;AAAA,cACjD,QAAA,EAAU,YAAA;AAAA,cACV,GAAA,EAAK,cAAA;AAAA,cACL,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,cAC7B,kBAAA,EAAkB,eAAA;AAAA,cAClB,SAAA,EAAU,iBAAA;AAAA,cACT,GAAG;AAAA;AAAA,WACN;AAAA,UACC,UAAA;AAAA,UACA,4BACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sCACb,QAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;ACnLpB,IAAM,oBAAA,GAAuB,OAAO,KAAA,EAAO;AAAA,EACzC,IAAA,EAAM,mBAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,mBAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,aAAA,IACT,SAAS,SAAA,IACT,IAAA,KAAS,aAAA,IACT,IAAA,KAAS,WACT,IAAA,KAAS,UAAA,IACT,SAAS,UAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAaE,IAAM,UAAA,GAAmBoE,OAAA,CAAA,UAAA;AAAA,EAC9B,SAASC,WAAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AAC9B,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM;AAAA,MACJ,KAAA,EAAO,SAAA;AAAA,MACP,YAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,GAAO,IAAA;AAAA,MACP,WAAA,GAAc,SAAA;AAAA,MACd,WAAA,GAAc,UAAA;AAAA,MACd,OAAA,GAAU,CAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,gBAAsBD,OAAA,CAAA,KAAA,EAAM;AAClC,IAAA,MAAM,IAAA,GAAO,QAAA,IAAY,SAAA,EAAW,IAAA,IAAQ,aAAA;AAC5C,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,SAAA,EAAW,KAAA,IAAS,KAAA;AAE/C,IAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,oBAAA,CAAkD;AAAA,MAC1E,KAAA,EAAO,SAAA;AAAA,MACP,YAAA;AAAA,MACA,QAAA,EAAU,CAAC,GAAA,KAAQ;AACjB,QAAA,IAAI,QAAQ,MAAA,EAAW;AACrB,UAAA,YAAA,GAAe,GAAG,CAAA;AAAA,QACpB;AAAA,MACF;AAAA,KACD,CAAA;AAED,IAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,WAAA;AAAA,MACzB,CAAC,SAAA,KAA+B;AAC9B,QAAA,IAAI,YAAY,QAAA,EAAU;AAC1B,QAAA,QAAA,CAAS,SAAS,CAAA;AAAA,MACpB,CAAA;AAAA,MACA,CAAC,QAAA,EAAU,QAAA,EAAU,QAAQ;AAAA,KAC/B;AAEA,IAAA,MAAM,YAAA,GAAwCA,OAAA,CAAA,OAAA;AAAA,MAC5C,OAAO;AAAA,QACL,KAAA;AAAA,QACA,IAAA;AAAA,QACA,IAAA;AAAA,QACA,WAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,QAAA,EAAU;AAAA,OACZ,CAAA;AAAA,MACA,CAAC,OAAO,IAAA,EAAM,IAAA,EAAM,aAAa,QAAA,EAAU,QAAA,EAAU,OAAO,YAAY;AAAA,KAC1E;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,gBAAA;AAAA,MACA,WAAA,KAAgB,eACZ,4BAAA,GACA,0BAAA;AAAA,MACJ;AAAA,KACF;AAEA,IAAA,MAAM,QAAA,GACJ,YAAY,MAAA,GACR;AAAA,MACE,KAAK,OAAO,OAAA,KAAY,WAAW,CAAA,EAAG,OAAA,GAAU,CAAC,CAAA,EAAA,CAAA,GAAO,OAAA;AAAA,MACxD,GAAG;AAAA,KACL,GACA,KAAA;AAEN,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEpE,GAAAA,CAAC,YAAA,CAAa,UAAb,EAAsB,KAAA,EAAO,cAC5B,QAAA,kBAAAA,GAAAA;AAAA,QAAC,oBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,IAAA,EAAK,YAAA;AAAA,UACL,SAAA,EAAW,cAAA;AAAA,UACX,KAAA,EAAO,QAAA;AAAA,UACP,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA,CAAC,YAAA,CAAa,UAAb,EAAsB,KAAA,EAAO,cAC5B,QAAA,kBAAAA,GAAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,IAAA,EAAK,YAAA;AAAA,QACL,SAAA,EAAW,cAAA;AAAA,QACX,KAAA,EAAO,QAAA;AAAA,QACP,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;ACpIzB,IAAM,gBAAA,GAAmB,OAAO,OAAA,EAAS;AAAA,EACvC,IAAA,EAAM,eAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,UACT,IAAA,KAAS,gBAAA,IACT,SAAS,UAAA,IACT,IAAA,KAAS,cACT,IAAA,KAAS,OAAA,IACT,SAAS,SAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS,aAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,MAAA,GAAesE,OAAA,CAAA,UAAA;AAAA,EAC1B,SAASC,OAAAA,CAAO,KAAA,EAAO,GAAA,EAAK;AAC1B,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM;AAAA,MACJ,OAAA,EAAS,WAAA;AAAA,MACT,cAAA,GAAiB,KAAA;AAAA,MACjB,QAAA,EAAU,YAAA;AAAA,MACV,KAAA;AAAA,MACA,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,GAAO,IAAA;AAAA,MACP,WAAA,GAAc,SAAA;AAAA,MACd,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,OAAA,GAAU,KAAA;AAAA,MACV,WAAA;AAAA,MACA,aAAA;AAAA,MACA,cAAA,GAAiB,KAAA;AAAA,MACjB,QAAA,EAAU,YAAA;AAAA,MACV,aAAa,EAAC;AAAA,MACd,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA,EAAI,MAAA;AAAA,MACJ,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,QAAA,GACJ,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,UAAU,IAAA,GAAO,KAAA;AAC1D,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,SAAA,EAAW,KAAA,IAAS,KAAA;AAC/C,IAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AACxD,IAAA,MAAM,IAAA,GAAO,YAAY,SAAA,EAAW,IAAA;AACpC,IAAA,MAAM,KAAK,MAAA,KAAW,SAAA,GAAY,CAAA,EAAG,SAAA,CAAU,EAAE,CAAA,OAAA,CAAA,GAAY,MAAA,CAAA;AAE7D,IAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAUD,OAAA,CAAA,QAAA;AAAA,MAC1D;AAAA,KACF;AAEA,IAAA,MAAM,eAAe,WAAA,KAAgB,MAAA;AACrC,IAAA,MAAM,gBAAA,GAAmB,eAAe,WAAA,GAAc,mBAAA;AAEtD,IAAA,MAAM,cAAA,GAAuBA,eAAgC,IAAI,CAAA;AACjE,IAAA,MAAM,cAAA,GAAiB,YAAA,CAAa,cAAA,EAAgB,YAAY,CAAA;AAEhE,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAA+C;AACnE,MAAA,IAAI,QAAA,IAAY,YAAY,OAAA,EAAS;AACnC,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,sBAAA,CAAuB,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA,MAC7C;AAEA,MAAA,YAAA,GAAe,KAAK,CAAA;AAAA,IACtB,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAiD;AACtE,MAAA,IAAI,KAAA,CAAM,QAAQ,OAAA,EAAS;AACzB,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,IAAI,CAAC,QAAA,IAAY,CAAC,QAAA,IAAY,CAAC,OAAA,EAAS;AACtC,UAAA,cAAA,CAAe,SAAS,KAAA,EAAM;AAAA,QAChC;AAAA,MACF,CAAA,MAAA,IAAW,KAAA,CAAM,GAAA,KAAQ,GAAA,KAAQ,YAAY,OAAA,CAAA,EAAU;AACrD,QAAA,KAAA,CAAM,cAAA,EAAe;AAAA,MACvB;AACA,MAAA,UAAA,CAAW,YAAY,KAAK,CAAA;AAAA,IAC9B,CAAA;AAEA,IAAA,MAAM,eAAA,GAAkB,UAAA;AAAA,MACtB,WAAA;AAAA,MACA,cAAc,IAAI,CAAA,CAAA;AAAA,MAClB,cAAc,WAAW,CAAA,CAAA;AAAA,MACzB,wBAAwB,cAAc,CAAA,CAAA;AAAA,MACtC,gBAAA,IAAoB,oBAAA;AAAA,MACpB,QAAA,IAAY,qBAAA;AAAA,MACZ,KAAA,IAAS,kBAAA;AAAA,MACT;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,MAAM,SAAA,GAAY,0BAChBtE,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,oBAAA;AAAA,QACV,OAAA,EAAQ,WAAA;AAAA,QACR,IAAA,EAAK,MAAA;AAAA,QACL,aAAA,EAAY,MAAA;AAAA,QAEZ,QAAA,kBAAAA,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,IAAA;AAAA,YACH,EAAA,EAAG,IAAA;AAAA,YACH,CAAA,EAAE,GAAA;AAAA,YACF,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,eAAA,EAAgB,OAAA;AAAA,YAChB,aAAA,EAAc;AAAA;AAAA;AAChB;AAAA,KACF,GACE,mBACF,WAAA,GAEA,aAAA;AAGF,IAAA,MAAM,YAAA,mBACJA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,sCAAA,EAAuC,aAAA,EAAY,MAAA,EACjE,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sCAAA,EACb,qBACH,CAAA,EACF,CAAA;AAGF,IAAA,MAAM,eAAA,GAAkB;AAAA,MACtB,WAAW,kBAAkB,CAAA;AAAA,MAC7B,SAAA,EAAW,KAAA,IAAS,SAAA,EAAW,eAAA,GAAkB,UAAU,cAAA,GAAiB,IAAA;AAAA,MAC5E,SAAA,EAAW,aAAA,GAAgB,SAAA,CAAU,YAAA,GAAe;AAAA,MAEnD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAEhB,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEA,GAAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,eAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE4C,IAAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,eAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA5C,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,UAAA;AAAA,cACL,IAAA,EAAK,QAAA;AAAA,cACL,EAAA;AAAA,cACA,IAAA;AAAA,cACA,KAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,OAAA,EAAS,eAAe,gBAAA,GAAmB,MAAA;AAAA,cAC3C,cAAA,EAAgB,CAAC,YAAA,GAAe,cAAA,GAAiB,MAAA;AAAA,cACjD,QAAA,EAAU,YAAA;AAAA,cACV,SAAA,EAAW,aAAA;AAAA,cACX,GAAA,EAAK,cAAA;AAAA,cACL,cAAA,EAAc,gBAAA;AAAA,cACd,cAAA,EAAc,QAAQ,IAAA,GAAO,MAAA;AAAA,cAC7B,kBAAA,EAAkB,eAAA;AAAA,cAClB,SAAA,EAAU,kBAAA;AAAA,cACT,GAAG;AAAA;AAAA,WACN;AAAA,UACC,YAAA;AAAA,UACA,4BACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wCACb,QAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;ACrNrB,IAAM,eAAA,GAAkB,OAAO,KAAA,EAAO;AAAA,EACpC,IAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,QAAA,IACT,IAAA,KAAS,SAAA,IACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAWE,IAAM,KAAA,GAAcwE,OAAA,CAAA,UAAA;AAAA,EACzB,SAASC,MAAAA,CAAM,KAAA,EAAO,GAAA,EAAK;AACzB,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA,GAAY,CAAA;AAAA,MACZ,OAAA,GAAU,WAAA;AAAA,MACV,MAAA,GAAS,KAAA;AAAA,MACT,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,gBAAA,GAAmB,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAI,EAAA,EAAI,SAAS,CAAC,CAAA;AAE5D,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,UAAA;AAAA,MACA,MAAA,IAAU,kBAAA;AAAA,MACV,OAAA,KAAY,UAAA,GAAa,oBAAA,GAAuB,CAAA,oBAAA,EAAuB,gBAAgB,CAAA,CAAA;AAAA,MACvF;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEzE,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,uBACEA,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,SAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AC9Fb,IAAM,cAAoB0E,OAAA,CAAA,aAAA,CAAgC;AAAA,EAC/D,IAAA,EAAM;AACR,CAAC,CAAA;ACMD,IAAM,cAAA,GAAiB,OAAO,KAAA,EAAO;AAAA,EACnC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,aACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,WAAA,IACT,SAAS,QAAA,IACT,IAAA,KAAS,MAAA,IACT,IAAA,KAAS,aACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAmBE,IAAM,QAAA,GAAiBC,OAAA,CAAA,UAAA;AAAA,EAC5B,SAASC,SAAAA,CAAS,KAAA,EAAO,GAAA,EAAK;AAC5B,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,UAAA;AAAA,MACV,SAAA,GAAY,CAAA;AAAA,MACZ,IAAA,GAAO,IAAA;AAAA,MACP,SAAA,GAAY,KAAA;AAAA,MACZ,WAAA,GAAc,KAAA;AAAA,MACd,MAAA,GAAS,KAAA;AAAA,MACT,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,iBAAA,GAAoB,OAAA,KAAY,SAAA,GAAY,UAAA,GAAa,OAAA;AAE/D,IAAA,MAAM,aAAA,GAAgB,UAAA;AAAA,MACpB,SAAA;AAAA,MACA,YAAY,IAAI,CAAA,CAAA;AAAA,MAChB,YAAY,iBAAiB,CAAA,CAAA;AAAA,MAC7B,YAAY,SAAA,IAAa,kBAAA;AAAA,MACzB,MAAA,IAAU,iBAAA;AAAA,MAAA,CACT,aAAa,WAAA,KAAgB,oBAAA;AAAA,MAC9B,WAAA,IAAe,oBAAA;AAAA,MACf;AAAA,KACF;AAEA,IAAA,MAAM,YAAY,SAAA,IAAa,EAAA;AAE/B,IAAA,uBACE5E,GAAAA,CAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,OAAO,EAAE,IAAA,EAAK,EACjC,QAAA,EAAA,OAAA,mBACCA,GAAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,IAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,wBAGHA,GAAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH,EAEJ,CAAA;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,MAAA;AAIvB,IAAM,oBAAA,GAAuB,OAAO,KAAA,EAAO;AAAA,EACzC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,QAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS,cAAc,IAAA,KAAS;AAC/D,CAAC,CAAA,CAAE,EAAE,CAAA;AAQE,IAAM,UAAA,GAAmB2E,OAAA,CAAA,UAAA;AAAA,EAC9B,SAASE,WAAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AAC9B,IAAA,MAAM;AAAA,MACJ,MAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,oBAAA;AAAA,MACA,wBAAA;AAAA,MACA,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,eAAA,GAAkB,UAAA;AAAA,MACtB,iBAAA;AAAA,MACA,oBAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE7E,GAAAA;AAAA,QAAC,oBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,eAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE4C,IAAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,eAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,MAAA,oBACC5C,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mDACZ,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,0BAEF4C,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mDAAA,EACZ,QAAA,EAAA;AAAA,YAAA,KAAA,IAAS,wBACR5C,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,UAAA;AAAA,kBACT,uBAAA;AAAA,kBACA,yBAAA;AAAA,kBACA,oBAAA,EAAsB;AAAA,iBACxB;AAAA,gBACC,GAAG,oBAAA;AAAA,gBAEH,QAAA,EAAA;AAAA;AAAA,aACH;AAAA,YAED,SAAA,IAAa,wBACZA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,UAAA;AAAA,kBACT,2BAAA;AAAA,kBACA,6BAAA;AAAA,kBACA,wBAAA,EAA0B;AAAA,iBAC5B;AAAA,gBACC,GAAG,wBAAA;AAAA,gBAEH,QAAA,EAAA;AAAA;AAAA,aACH;AAAA,YAED;AAAA,WAAA,EACH,CAAA;AAAA,UACC,0BACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mDACZ,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;AAIzB,IAAM,mBAAA,GAAsB,OAAO,KAAA,EAAO;AAAA,EACxC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,OAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS,WAAW,IAAA,KAAS;AAC5D,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,SAAA,GAAkB2E,OAAA,CAAA,UAAA;AAAA,EAC7B,SAASG,UAAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AAC7B,IAAA,MAAM;AAAA,MACJ,KAAA;AAAA,MACA,GAAA;AAAA,MACA,WAAA,GAAc,MAAA;AAAA,MACd,SAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,UAAA,GAAkC;AAAA,MACtC,GAAI,WAAA,GAAc,EAAE,WAAA,KAAgB,EAAC;AAAA,MACrC,GAAI,QAAQ,EAAE,eAAA,EAAiB,OAAO,KAAK,CAAA,CAAA,CAAA,KAAQ,EAAC;AAAA,MACpD,GAAG;AAAA,KACL;AAEA,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,gBAAA;AAAA,MACA,mBAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,uBACE9E,GAAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,SAAA;AAAA,QACJ,GAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA,EAAO,UAAA;AAAA,QACP,EAAA;AAAA,QACA,IAAA,EAAM,KAAA,IAAS,CAAC,QAAA,GAAW,KAAA,GAAQ,MAAA;AAAA,QACnC,YAAA,EAAY,KAAA,IAAS,CAAC,QAAA,GAAW,GAAA,GAAM,MAAA;AAAA,QACtC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;AAIxB,IAAM,kBAAA,GAAqB,OAAO,KAAA,EAAO;AAAA,EACvC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS;AACxC,CAAC,CAAA,CAAE,EAAE,CAAA;AAQE,IAAM,QAAA,GAAiB2E,OAAA,CAAA,UAAA;AAAA,EAC5B,SAASI,SAAAA,CAAS,KAAA,EAAO,GAAA,EAAK;AAC5B,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,OAAO,EAAA,EAAI,GAAG,MAAK,GAAI,KAAA;AACpD,IAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,eAAA,EAAiB,kBAAA,EAAoB,SAAS,CAAA;AAE/E,IAAA,uBACE/E,GAAAA;AAAA,MAAC,kBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AAIvB,IAAM,oBAAA,GAAuB,OAAO,KAAA,EAAO;AAAA,EACzC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,QAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS,aAAa,IAAA,KAAS;AAC9D,CAAC,CAAA,CAAE,EAAE,CAAA;AAQE,IAAM,UAAA,GAAmB2E,OAAA,CAAA,UAAA;AAAA,EAC9B,SAASK,WAAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AAC9B,IAAA,MAAM,EAAE,UAAU,KAAA,EAAO,QAAA,EAAU,WAAW,KAAA,EAAO,EAAA,EAAI,GAAG,IAAA,EAAK,GAAI,KAAA;AACrE,IAAA,MAAM,eAAA,GAAkB,UAAA;AAAA,MACtB,iBAAA;AAAA,MACA,oBAAA;AAAA,MACA,OAAA,IAAW,0BAAA;AAAA,MACX;AAAA,KACF;AAEA,IAAA,uBACEhF,GAAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,eAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;AAIzB,IAAM,qBAAA,GAAwB,OAAO,KAAA,EAAO;AAAA,EAC1C,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS,oBAAoB,IAAA,KAAS;AACrE,CAAC,CAAA,CAAE,EAAE,CAAA;AASE,IAAM,WAAA,GAAoB2E,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASM,YAAAA,CAAY,KAAA,EAAO,GAAA,EAAK;AAC/B,IAAA,MAAM;AAAA,MACJ,cAAA,GAAiB,KAAA;AAAA,MACjB,KAAA,GAAQ,OAAA;AAAA,MACR,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AACJ,IAAA,MAAM,gBAAA,GAAmB,UAAA;AAAA,MACvB,kBAAA;AAAA,MACA,qBAAA;AAAA,MACA,2BAA2B,KAAK,CAAA,CAAA;AAAA,MAChC,cAAA,IAAkB,mCAAA;AAAA,MAClB;AAAA,KACF;AAEA,IAAA,uBACEjF,GAAAA;AAAA,MAAC,qBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,gBAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AAI1B,IAAM,mBAAA,GAAsB,OAAO,IAAA,EAAM;AAAA,EACvC,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,OAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS;AACxC,CAAC,CAAA,CAAE,EAAE,CAAA;AAQE,IAAM,SAAA,GAAkB2E,OAAA,CAAA,UAAA;AAAA,EAC7B,SAASO,UAAAA,CAAU,EAAE,OAAA,GAAU,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,KAAA,EAAO,EAAA,EAAI,GAAG,IAAA,EAAK,EAAG,GAAA,EAAK;AACpF,IAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,gBAAA,EAAkB,SAAS,CAAA;AAC7D,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACElF,GAAAA;AAAA,QAAC,mBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AACA,IAAA,uBACEA,GAAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;AAIxB,IAAM,yBAAA,GAA4B,OAAO,GAAA,EAAK;AAAA,EAC5C,IAAA,EAAM,aAAA;AAAA,EACN,IAAA,EAAM,aAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAAS,IAAA,KAAS;AACxC,CAAC,CAAA,CAAE,EAAE,CAAA;AAQE,IAAM,eAAA,GAAwB2E,OAAA,CAAA,UAAA;AAAA,EACnC,SAASQ,gBAAAA,CAAgB,EAAE,OAAA,GAAU,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,KAAA,EAAO,EAAA,EAAI,GAAG,IAAA,EAAK,EAAG,GAAA,EAAK;AAC1F,IAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,sBAAA,EAAwB,eAAA,EAAiB,SAAS,CAAA;AACnF,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEnF,GAAAA;AAAA,QAAC,yBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,aAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AACA,IAAA,uBACEA,GAAAA;AAAA,MAAC,yBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAIvB,IAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU;AAAA,EAC1C,IAAA,EAAM,QAAA;AAAA,EACN,MAAA,EAAQ,UAAA;AAAA,EACR,KAAA,EAAO,SAAA;AAAA,EACP,WAAA,EAAa,eAAA;AAAA,EACb,IAAA,EAAM,QAAA;AAAA,EACN,MAAA,EAAQ,UAAA;AAAA,EACR,KAAA,EAAO,SAAA;AAAA,EACP,OAAA,EAAS;AACX,CAAC;AChfM,SAAS,MAAA,CAAO;AAAA,EACrB,QAAA;AAAA,EACA;AACF,CAAA,EAA0C;AACxC,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUoF,iBAAS,KAAK,CAAA;AAElD,EAAMA,kBAAU,MAAM;AACpB,IAAA,UAAA,CAAW,IAAI,CAAA;AACf,IAAA,OAAO,MAAM,WAAW,KAAK,CAAA;AAAA,EAC/B,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,kBACJ,SAAA,KAAc,OAAO,QAAA,KAAa,WAAA,GAAc,SAAS,IAAA,GAAO,IAAA,CAAA;AAElE,EAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAgB,QAAA,CAAA,YAAA,CAAa,UAAU,eAAe,CAAA;AACxD;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;ACRd,IAAM,OAAA,GAAgBC,OAAA,CAAA,UAAA;AAAA,EAC3B,SAASC,QAAAA,CACP;AAAA,IACE,OAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,SAAA,GAAY,GAAA;AAAA,IACZ,UAAA,GAAa,GAAA;AAAA,IACb,MAAA,EAAQ,cAAA;AAAA,IACR,WAAA,GAAc,KAAA;AAAA,IACd,YAAA;AAAA,IACA,QAAA,GAAW,IAAA;AAAA,IACX,UAAA,GAAa,KAAA;AAAA,IACb,QAAQ,UAAA,GAAa,CAAA;AAAA,IACrB,QAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,KAEF,YAAA,EACA;AACA,IAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,oBAAA,CAA8B;AAAA,MACxD,KAAA,EAAO,cAAA;AAAA,MACP,YAAA,EAAc,WAAA;AAAA,MACd,QAAA,EAAU;AAAA,KACX,CAAA;AAED,IAAA,MAAM,iBAAA,GAAoB,OAAA,CAAQ,MAAA,IAAU,CAAC,cAAc,OAAO,CAAA;AAClE,IAAA,MAAM,QAAA,GAAiBD,eAAuB,IAAI,CAAA;AAElD,IAAA,MAAM;AAAA,MACJ,IAAA;AAAA,MACA,cAAA;AAAA,MACA,SAAA,EAAW,eAAA;AAAA,MACX,cAAA;AAAA,MACA;AAAA,QACE,WAAA,CAAY;AAAA,MACd,SAAA;AAAA,MACA,IAAA,EAAM,iBAAA;AAAA,MACN,YAAA,EAAc,CAAC,QAAA,KAAa;AAC1B,QAAA,IAAI,CAAC,cAAc,OAAA,EAAS;AAC1B,UAAA,SAAA,CAAU,QAAQ,CAAA;AAAA,QACpB,CAAA,MAAA,IAAW,CAAC,QAAA,EAAU;AACpB,UAAA,SAAA,CAAU,KAAK,CAAA;AAAA,QACjB;AAAA,MACF,CAAA;AAAA,MACA,oBAAA,EAAsB,UAAA;AAAA,MACtB,UAAA,EAAY;AAAA,QACV,OAAO,UAAU,CAAA;AAAA,QACjB,IAAA,CAAK,EAAE,yBAAA,EAA2B,OAAA,EAAS,CAAA;AAAA,QAC3C,KAAA,CAAM,EAAE,OAAA,EAAS,CAAA,EAAG,CAAA;AAAA,QACpB,WAAW,KAAA,CAAM,EAAE,OAAA,EAAS,QAAA,EAAU,CAAA,GAAI;AAAA,OAC5C,CAAE,OAAO,OAAO;AAAA,KACjB,CAAA;AAED,IAAA,MAAM,KAAA,GAAQ,SAAS,OAAA,EAAS;AAAA,MAC9B,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,SAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,aAAa,WAAA,EAAY;AAAA,MACzB,OAAA,EAAS,CAAC,UAAA,IAAc,OAAA,CAAQ,OAAO;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,KAAA,GAAQ,SAAS,OAAA,EAAS;AAAA,MAC9B,WAAA,EAAa,KAAA;AAAA,MACb,OAAA,EAAS,CAAC,UAAA,IAAc,OAAA,CAAQ,OAAO;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,OAAA,GAAU,WAAW,OAAA,EAAS;AAAA,MAClC,SAAA,EAAW,IAAA;AAAA,MACX,OAAA,EAAS,CAAC,UAAA,IAAc,OAAA,CAAQ,OAAO;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,IAAA,GAAO,QAAQ,OAAA,EAAS;AAAA,MAC5B,IAAA,EAAM;AAAA,KACP,CAAA;AAED,IAAA,MAAM,EAAE,iBAAA,EAAmB,gBAAA,EAAiB,GAAI,eAAA,CAAgB;AAAA,MAC9D,KAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,cAAoBA,OAAA,CAAA,KAAA,EAAM;AAChC,IAAA,MAAM,SAAA,GAAY,eAAe,OAAA,CAAQ,UAAA,IAAc,aAAa,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAC,CAAA,CAAA;AACrF,IAAA,MAAM,WAAiBA,OAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,GAC1C,aAAA,CAAc,QAAQ,CAAA,GACtB,MAAA;AACJ,IAAA,MAAM,kBAAA,GAAqB,YAAA,CAAa,IAAA,CAAK,YAAA,EAAc,QAAQ,CAAA;AACnE,IAAA,MAAM,iBAAA,GAAoB,YAAA,CAAa,IAAA,CAAK,WAAA,EAAa,YAAY,CAAA;AAErE,IAAA,IAAI,CAAOA,OAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,EAAG;AACnC,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,aAAa,QAAA,CAAS,KAAA;AAC5B,IAAA,MAAM,oBAAA,GAAuB,WAAW,kBAAkB,CAAA;AAC1D,IAAA,MAAM,qBAAA,GAAwB,iBAAA,GAC1B,CAAC,oBAAA,EAAsB,SAAS,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,GAC1D,oBAAA;AAEJ,IAAA,MAAM,iBAAiB,iBAAA,CAAkB;AAAA,MACvC,GAAG,UAAA;AAAA,MACH,GAAA,EAAK,kBAAA;AAAA,MACL,kBAAA,EAAoB;AAAA,KACrB,CAAA;AAED,IAAA,MAAM,aAAA,GAAsBA,OAAA,CAAA,YAAA,CAAa,QAAA,EAAU,cAAc,CAAA;AAEjE,IAAA,uBACEzC,IAAAA,CAAA2C,QAAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,aAAA;AAAA,MACA,iBAAA,oBACCvF,GAAAA,CAAC,MAAA,EAAA,EACC,QAAA,kBAAA4C,IAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACE,GAAG,gBAAA,CAAiB;AAAA,YACnB,EAAA,EAAI,SAAA;AAAA,YACJ,GAAA,EAAK,iBAAA;AAAA,YACL,IAAA,EAAM,SAAA;AAAA,YACN,SAAA,EAAW,UAAA,CAAW,YAAA,EAAc,SAAS,CAAA;AAAA,YAC7C,KAAA,EAAO;AAAA,cACL,GAAG,cAAA;AAAA,cACH,GAAG;AAAA;AACL,WACD,CAAA;AAAA,UACD,YAAA,EAAW,MAAA;AAAA,UACX,gBAAA,EAAgB,eAAA;AAAA,UAEhB,QAAA,EAAA;AAAA,4BAAA5C,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAA,EAAqB,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,YAC5C,QAAA,oBACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EACd,QAAA,kBAAAA,GAAAA,CAAC,GAAA,EAAA,EAAI,IAAA,EAAK,IAAA,EAAM,QAAA,EAAA,QAAA,EAAS,CAAA,EAC3B,CAAA;AAAA,YAED,4BACCA,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,GAAA,EAAK,QAAA;AAAA,gBACL,SAAA,EAAU,mBAAA;AAAA,gBACV,aAAA,EAAY,MAAA;AAAA,gBACZ,KAAA,EAAO;AAAA,kBACL,IAAA,EACE,eAAe,KAAA,EAAO,CAAA,IAAK,OACvB,CAAA,EAAG,cAAA,CAAe,KAAA,CAAM,CAAC,CAAA,EAAA,CAAA,GACzB,MAAA;AAAA,kBACN,GAAA,EACE,eAAe,KAAA,EAAO,CAAA,IAAK,OACvB,CAAA,EAAG,cAAA,CAAe,KAAA,CAAM,CAAC,CAAA,EAAA,CAAA,GACzB;AAAA;AACR;AAAA;AACF;AAAA;AAAA,OAEJ,EACF;AAAA,KAAA,EAEJ,CAAA;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;AC7ItB,IAAM,cAAA,GAAuBwF,sBAAkD,IAAI,CAAA;AAE5E,SAAS,iBAAA,GAAiD;AAC/D,EAAA,MAAM,OAAA,GAAgBA,mBAAW,cAAc,CAAA;AAC/C,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;AAMO,SAAS,WAAA,CAAY;AAAA,EAC1B,QAAA;AAAA,EACA,MAAA,EAAQ,cAAA;AAAA,EACR,WAAA,GAAc,KAAA;AAAA,EACd,YAAA;AAAA,EACA,SAAA,GAAY,QAAA;AAAA,EACZ,QAAQ,UAAA,GAAa,CAAA;AAAA,EACrB,SAAA,GAAY,IAAA;AAAA,EACZ,UAAA,GAAa,IAAA;AAAA,EACb,eAAA;AAAA,EACA;AACF,CAAA,EAAqB;AACnB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,oBAAA,CAA8B;AAAA,IACxD,KAAA,EAAO,cAAA;AAAA,IACP,YAAA,EAAc,WAAA;AAAA,IACd,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,QAAA,GAAiBA,eAA8B,IAAI,CAAA;AACzD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAUA,iBAAS,KAAK,CAAA;AACpD,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAUA,iBAAS,KAAK,CAAA;AAElE,EAAA,MAAM;AAAA,IACJ,IAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAA,EAAW,eAAA;AAAA,IACX,cAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACPC,WAAAA,CAAY;AAAA,IACd,SAAA;AAAA,IACA,IAAA,EAAM,MAAA;AAAA,IACN,YAAA,EAAc,SAAA;AAAA,IACd,oBAAA,EAAsBC,UAAAA;AAAA,IACtB,UAAA,EAAY;AAAA,MACVC,OAAO,UAAU,CAAA;AAAA,MACjBC,IAAAA,CAAK,EAAE,yBAAA,EAA2B,OAAA,EAAS,CAAA;AAAA,MAC3CC,KAAAA,CAAM,EAAE,OAAA,EAAS,CAAA,EAAG,CAAA;AAAA,MACpBC,KAAAA,CAAM,EAAE,OAAA,EAAS,QAAA,EAAU;AAAA;AAC7B,GACD,CAAA;AAED,EAAA,MAAM,KAAA,GAAQ,SAAS,eAAe,CAAA;AACtC,EAAA,MAAM,OAAA,GAAUC,WAAW,eAAA,EAAiB;AAAA,IAC1C,SAAA,EAAW,UAAA;AAAA,IACX,YAAA,EAAc,IAAA;AAAA,IACd,OAAA,EAAS;AAAA,GACV,CAAA;AACD,EAAA,MAAM,IAAA,GAAOC,QAAQ,eAAA,EAAiB;AAAA,IACpC,IAAA,EAAM;AAAA,GACP,CAAA;AAED,EAAA,MAAM,EAAE,iBAAA,EAAmB,gBAAA,EAAiB,GAAIC,eAAAA,CAAgB;AAAA,IAC9D,KAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,cAAoBT,OAAA,CAAA,KAAA,EAAM;AAChC,EAAA,MAAM,EAAA,GAAK,eAAe,eAAA,CAAgB,UAAA,IAAc,aAAa,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAC,CAAA,CAAA;AACtF,EAAA,MAAM,OAAA,GAAU,qBAAqB,eAAA,CAAgB,UAAA,IAAc,aAAa,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAC,CAAA,CAAA;AAEjG,EAAA,MAAM,IAAA,GAAaA,oBAAY,MAAM,SAAA,CAAU,IAAI,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AACjE,EAAA,MAAM,KAAA,GAAcA,oBAAY,MAAM,SAAA,CAAU,KAAK,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AACnE,EAAA,MAAM,MAAA,GAAeA,OAAA,CAAA,WAAA,CAAY,MAAM,SAAA,CAAU,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAE9E,EAAA,MAAM,YAAA,GAA4C;AAAA,IAChD,MAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,SAAA;AAAA,IACA,eAAA;AAAA,IACA,SAAA;AAAA,IACA,EAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,eAAA;AAAA,IACA,kBAAA;AAAA,IACA,eAAA;AAAA,IACA,cAAA;AAAA,IACA,eAAA;AAAA,IACA,iBAAA;AAAA,IACA,gBAAA;AAAA,IACA,IAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,uBACExF,GAAAA,CAAC,cAAA,CAAe,UAAf,EAAwB,KAAA,EAAO,cAC7B,QAAA,EACH,CAAA;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,cAAA;AAKnB,IAAM,cAAA,GAAuBwF,OAAA,CAAA,UAAA;AAAA,EAClC,SAASU,eAAAA,CAAe,EAAE,UAAU,OAAA,GAAU,KAAA,IAAS,GAAA,EAAK;AAC1D,IAAA,MAAM,EAAE,IAAA,EAAM,iBAAA,EAAmB,MAAA,EAAQ,EAAA,KAAO,iBAAA,EAAkB;AAElE,IAAA,MAAM,WAAiBV,OAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,GAC1C,aAAA,CAAc,QAAQ,CAAA,GACtB,MAAA;AACJ,IAAA,MAAM,SAAA,GAAY,YAAA,CAAa,IAAA,CAAK,YAAA,EAAc,UAAU,GAAG,CAAA;AAE/D,IAAA,IAAI,CAAOA,OAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,EAAG;AACnC,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,aAAa,QAAA,CAAS,KAAA;AAE5B,IAAA,MAAM,iBAAiB,iBAAA,CAAkB;AAAA,MACvC,GAAG,UAAA;AAAA,MACH,GAAA,EAAK,SAAA;AAAA,MACL,eAAA,EAAiB,QAAA;AAAA,MACjB,eAAA,EAAiB,MAAA;AAAA,MACjB,eAAA,EAAiB,SAAS,EAAA,GAAK;AAAA,KAChC,CAAA;AAED,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBAAOxF,GAAAA,CAAC,IAAA,EAAA,EAAM,GAAG,gBAAiB,QAAA,EAAS,CAAA;AAAA,IAC7C;AAEA,IAAA,OAAawF,OAAA,CAAA,YAAA,CAAa,UAAU,cAAc,CAAA;AAAA,EACpD;AACF;AAEA,cAAA,CAAe,WAAA,GAAc,iBAAA;AAKtB,SAAS,aAAA,CAAc,EAAE,QAAA,EAAU,SAAA,EAAU,EAAuB;AACzE,EAAA,MAAM,EAAE,MAAA,EAAQ,kBAAA,EAAmB,GAAI,iBAAA,EAAkB;AAEzD,EAAMA,kBAAU,MAAM;AACpB,IAAA,kBAAA,CAAmB,IAAI,CAAA;AACvB,IAAA,OAAO,MAAM,mBAAmB,KAAK,CAAA;AAAA,EACvC,CAAA,EAAG,CAAC,kBAAkB,CAAC,CAAA;AAEvB,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBAAOxF,GAAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAW,SAAA,IAAa,MAAO,QAAA,EAAS,CAAA;AACzD;AAEA,aAAA,CAAc,WAAA,GAAc,gBAAA;AAKrB,IAAM,cAAA,GAAuBwF,OAAA,CAAA,UAAA;AAAA,EAClC,SAASW,eAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,QAAA,GAAW,IAAA;AAAA,IACX,SAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM;AAAA,MACJ,MAAA;AAAA,MACA,EAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,eAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MACA,IAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA;AAAA,QACE,iBAAA,EAAkB;AAEtB,IAAA,MAAM,SAAA,GAAY,YAAA,CAAa,IAAA,CAAK,WAAA,EAAa,GAAG,CAAA;AAEpD,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,8BACJnG,GAAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,eAAA;AAAA,QACT,KAAA,EAAO,SAAA;AAAA,QACP,UAAU,CAAC,SAAA;AAAA,QACX,cAAc,eAAA,IAAmB,MAAA;AAAA,QACjC,aAAa,cAAA,IAAkB,IAAA;AAAA,QAE/B,QAAA,kBAAA4C,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACE,GAAG,gBAAA,CAAiB;AAAA,cACnB,EAAA;AAAA,cACA,GAAA,EAAK,SAAA;AAAA,cACL,IAAA,EAAM,QAAA;AAAA,cACN,YAAA,EAAc,YAAY,MAAA,GAAS,MAAA;AAAA,cACnC,iBAAA,EAAmB,WAAW,OAAA,GAAU,MAAA;AAAA,cACxC,SAAA,EAAW,UAAA,CAAW,YAAA,EAAc,SAAS,CAAA;AAAA,cAC7C,KAAA,EAAO;AAAA,gBACL,GAAG,cAAA;AAAA,gBACH,GAAG;AAAA,eACL;AAAA,cACA,QAAA,EAAU,EAAA;AAAA,cACV,GAAG;AAAA,aACJ,CAAA;AAAA,YACD,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,YAC9B,gBAAA,EAAgB,eAAA;AAAA,YAEf,QAAA,EAAA;AAAA,cAAA,QAAA,oBAAY5C,IAAC,YAAA,EAAA,EAAa,CAAA;AAAA,cAC1B;AAAA;AAAA;AAAA;AACH;AAAA,KACF;AAGF,IAAA,IAAI,eAAA,EAAiB;AACnB,MAAA,OAAO,WAAA;AAAA,IACT;AAEA,IAAA,uBAAOA,GAAAA,CAAC,MAAA,EAAA,EAAQ,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,EAC9B;AACF;AAEA,cAAA,CAAe,WAAA,GAAc,iBAAA;AAKtB,IAAM,YAAA,GAAqBwF,OAAA,CAAA,UAAA;AAAA,EAChC,SAASY,cAAa,EAAE,SAAA,EAAW,OAAO,GAAG,SAAA,IAAa,GAAA,EAAK;AAC7D,IAAA,MAAM,EAAE,QAAA,EAAU,cAAA,EAAe,GAAI,iBAAA,EAAkB;AACvD,IAAA,MAAM,SAAA,GAAY,YAAA,CAAa,QAAA,EAAU,GAAG,CAAA;AAE5C,IAAA,uBACEpG,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,SAAA;AAAA,QACL,aAAA,EAAY,MAAA;AAAA,QACZ,SAAA,EAAW,UAAA,CAAW,mBAAA,EAAqB,SAAS,CAAA;AAAA,QACpD,KAAA,EAAO;AAAA,UACL,IAAA,EACE,eAAe,KAAA,EAAO,CAAA,IAAK,OACvB,CAAA,EAAG,cAAA,CAAe,KAAA,CAAM,CAAC,CAAA,EAAA,CAAA,GACzB,MAAA;AAAA,UACN,GAAA,EACE,eAAe,KAAA,EAAO,CAAA,IAAK,OACvB,CAAA,EAAG,cAAA,CAAe,KAAA,CAAM,CAAC,CAAA,EAAA,CAAA,GACzB,MAAA;AAAA,UACN,GAAG;AAAA,SACL;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,eAAA;AAKpB,IAAM,YAAA,GAAqBwF,OAAA,CAAA,UAAA;AAAA,EAChC,SAASa,aAAAA,CACP,EAAE,QAAA,EAAU,OAAA,GAAU,KAAA,EAAO,OAAA,EAAS,SAAA,EAAW,GAAG,SAAA,EAAU,EAC9D,GAAA,EACA;AACA,IAAA,MAAM,EAAE,KAAA,EAAM,GAAI,iBAAA,EAAkB;AACpC,IAAA,MAAM,WAAA,GAAc,oBAAA,CAAqB,OAAA,EAAS,MAAM,OAAO,CAAA;AAE/D,IAAA,IAAI,OAAA,IAAiBb,OAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,EAAG;AAC7C,MAAA,uBACExF,IAAC,IAAA,EAAA,EAAK,GAAA,EAAU,SAAS,WAAA,EAAc,GAAG,WACvC,QAAA,EACH,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,GAAA;AAAA,QACA,OAAA,EAAS,WAAA;AAAA,QACT,YAAA,EAAW,eAAA;AAAA,QACX,SAAA,EAAW,UAAA,CAAW,mBAAA,EAAqB,SAAS,CAAA;AAAA,QACnD,GAAG,SAAA;AAAA,QAEH,QAAA,EAAA,QAAA,IAAY;AAAA;AAAA,KACf;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,eAAA;AAKpB,IAAM,aAAA,GAAsBwF,OAAA,CAAA,UAAA;AAAA,EACjC,SAASc,eAAc,EAAE,QAAA,EAAU,WAAW,GAAG,SAAA,IAAa,GAAA,EAAK;AACjE,IAAA,uBACEtG,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA,CAAW,oBAAA,EAAsB,SAAS,CAAA;AAAA,QACpD,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,gBAAA;AAKrB,IAAM,YAAA,GAAqBwF,OAAA,CAAA,UAAA;AAAA,EAChC,SAASe,cAAa,EAAE,QAAA,EAAU,WAAW,GAAG,SAAA,IAAa,GAAA,EAAK;AAChE,IAAA,MAAM,EAAE,OAAA,EAAS,WAAA,EAAY,GAAI,iBAAA,EAAkB;AAEnD,IAAMf,kBAAU,MAAM;AACpB,MAAA,WAAA,CAAY,IAAI,CAAA;AAChB,MAAA,OAAO,MAAM,YAAY,KAAK,CAAA;AAAA,IAChC,CAAA,EAAG,CAAC,WAAW,CAAC,CAAA;AAEhB,IAAA,uBACExF,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,EAAA,EAAI,OAAA;AAAA,QACJ,SAAA,EAAW,UAAA,CAAW,mBAAA,EAAqB,SAAS,CAAA;AAAA,QACnD,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,eAAA;AAKpB,IAAM,WAAA,GAAoBwF,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASgB,aAAY,EAAE,QAAA,EAAU,WAAW,GAAG,SAAA,IAAa,GAAA,EAAK;AAC/D,IAAA,uBACExG,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA,CAAW,kBAAA,EAAoB,SAAS,CAAA;AAAA,QAClD,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,cAAA;AAKnB,IAAM,aAAA,GAAsBwF,OAAA,CAAA,UAAA;AAAA,EACjC,SAASiB,eAAc,EAAE,QAAA,EAAU,WAAW,GAAG,SAAA,IAAa,GAAA,EAAK;AACjE,IAAA,uBACEzG,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA,CAAW,oBAAA,EAAsB,SAAS,CAAA;AAAA,QACpD,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,gBAAA;AAKrB,IAAM,OAAA,GAAU,MAAA,CAAO,MAAA,CAAO,WAAA,EAAa;AAAA,EAChD,IAAA,EAAM,WAAA;AAAA,EACN,OAAA,EAAS,cAAA;AAAA,EACT,MAAA,EAAQ,aAAA;AAAA,EACR,OAAA,EAAS,cAAA;AAAA,EACT,KAAA,EAAO,YAAA;AAAA,EACP,KAAA,EAAO,YAAA;AAAA,EACP,MAAA,EAAQ,aAAA;AAAA,EACR,KAAA,EAAO,YAAA;AAAA,EACP,IAAA,EAAM,WAAA;AAAA,EACN,MAAA,EAAQ;AACV,CAAC;AChcD,IAAM,YAAA,GAAqB0G,sBAAwC,IAAI,CAAA;AAEhE,SAAS,eAAA,GAAqC;AACnD,EAAA,MAAM,OAAA,GAAgBA,mBAAW,YAAY,CAAA;AAC7C,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;AAKA,IAAM,QAAA,GAAiBA,OAAA,CAAA,UAAA;AAAA,EACrB,SAASC,SAAAA,CAAS,KAAA,EAAO,GAAA,EAAK;AAC5B,IAAA,uBACE/D,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,OAAA,EAAQ,WAAA;AAAA,QACR,KAAA,EAAM,IAAA;AAAA,QACN,MAAA,EAAO,IAAA;AAAA,QACP,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,WAAA,EAAY,GAAA;AAAA,QACZ,aAAA,EAAc,OAAA;AAAA,QACd,cAAA,EAAe,OAAA;AAAA,QACf,aAAA,EAAY,MAAA;AAAA,QACZ,SAAA,EAAU,OAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA5C,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,IAAA,EAAK,CAAA;AAAA,0BAC/BA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,0BACtCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,OAAA,EAAQ,EAAA,EAAG,GAAA,EAAI;AAAA;AAAA;AAAA,KACzC;AAAA,EAEJ;AACF,CAAA;AAEA,IAAM,WAAA,GAAoB0G,OAAA,CAAA,UAAA;AAAA,EACxB,SAASE,YAAAA,CAAY,KAAA,EAAO,GAAA,EAAK;AAC/B,IAAA,uBACEhE,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,OAAA,EAAQ,WAAA;AAAA,QACR,KAAA,EAAM,IAAA;AAAA,QACN,MAAA,EAAO,IAAA;AAAA,QACP,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,WAAA,EAAY,GAAA;AAAA,QACZ,aAAA,EAAc,OAAA;AAAA,QACd,cAAA,EAAe,OAAA;AAAA,QACf,aAAA,EAAY,MAAA;AAAA,QACZ,SAAA,EAAU,OAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA5C,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,IAAA,EAAK,CAAA;AAAA,0BAC/BA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAgB;AAAA;AAAA;AAAA,KAC1B;AAAA,EAEJ;AACF,CAAA;AAEA,IAAM,WAAA,GAAoB0G,OAAA,CAAA,UAAA;AAAA,EACxB,SAASG,YAAAA,CAAY,KAAA,EAAO,GAAA,EAAK;AAC/B,IAAA,uBACEjE,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,OAAA,EAAQ,WAAA;AAAA,QACR,KAAA,EAAM,IAAA;AAAA,QACN,MAAA,EAAO,IAAA;AAAA,QACP,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,WAAA,EAAY,GAAA;AAAA,QACZ,aAAA,EAAc,OAAA;AAAA,QACd,cAAA,EAAe,OAAA;AAAA,QACf,aAAA,EAAY,MAAA;AAAA,QACZ,SAAA,EAAU,OAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA5C,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,2EAAA,EAA4E,CAAA;AAAA,0BACpFA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,0BACrCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,OAAA,EAAQ,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA,KAC3C;AAAA,EAEJ;AACF,CAAA;AAEA,IAAM,UAAA,GAAmB0G,OAAA,CAAA,UAAA;AAAA,EACvB,SAASI,WAAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AAC9B,IAAA,uBACElE,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,OAAA,EAAQ,WAAA;AAAA,QACR,KAAA,EAAM,IAAA;AAAA,QACN,MAAA,EAAO,IAAA;AAAA,QACP,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,WAAA,EAAY,GAAA;AAAA,QACZ,aAAA,EAAc,OAAA;AAAA,QACd,cAAA,EAAe,OAAA;AAAA,QACf,aAAA,EAAY,MAAA;AAAA,QACZ,SAAA,EAAU,OAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA5C,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,IAAA,EAAK,CAAA;AAAA,0BAC/BA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,0BACrCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,OAAA,EAAQ,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA,KAC3C;AAAA,EAEJ;AACF,CAAA;AAEA,SAAS,cACP,MAAA,EAGA;AACA,EAAA,QAAQ,MAAA;AAAQ,IACd,KAAK,SAAA;AACH,MAAA,OAAO,WAAA;AAAA,IACT,KAAK,SAAA;AACH,MAAA,OAAO,WAAA;AAAA,IACT,KAAK,QAAA;AACH,MAAA,OAAO,UAAA;AAAA,IACT,KAAK,SAAA;AAAA,IACL,KAAK,MAAA;AAAA,IACL;AACE,MAAA,OAAO,QAAA;AAAA;AAEb;AAKO,IAAM,SAAA,GAAkB0G,OAAA,CAAA,UAAA;AAAA,EAC7B,SAASK,UAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,MAAA,GAAS,MAAA;AAAA,IACT,OAAA,GAAU,QAAA;AAAA,IACV,UAAA,GAAa,KAAA;AAAA,IACb,OAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,YAAA;AAAA,IACb,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAUL,iBAAS,KAAK,CAAA;AAEpD,IAAA,MAAM,WAAA,GAAoBA,oBAAY,MAAM;AAC1C,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,WAAA,CAAY,IAAI,CAAA;AAChB,MAAA,OAAA,IAAU;AAAA,IACZ,CAAA,EAAG,CAAC,QAAA,EAAU,OAAO,CAAC,CAAA;AAEtB,IAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,OAAA;AAAA,MACzB,OAAO;AAAA,QACL,MAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA,CAAC,MAAA,EAAQ,OAAA,EAAS,OAAA,EAAS,aAAa,QAAQ;AAAA,KAClD;AAEA,IAAA,MAAM,gBAAA,GAAyBA,gBAAQ,MAAM;AAC3C,MAAA,IAAI,KAAA,GAAQ,KAAA;AACZ,MAAMA,OAAA,CAAA,QAAA,CAAS,OAAA,CAAQ,QAAA,EAAU,CAAC,KAAA,KAAU;AAC1C,QAAA,IAAUA,OAAA,CAAA,cAAA,CAAe,KAAK,CAAA,EAAG;AAC/B,UAAA,IACE,MAAM,IAAA,KAAS,gBAAA,IACd,KAAA,CAAM,IAAA,EAAmC,gBACxC,mBAAA,EACF;AACA,YAAA,KAAA,GAAQ,IAAA;AAAA,UACV;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AACD,MAAA,OAAO,KAAA;AAAA,IACT,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,WAAA,GAAc,MAAA,KAAW,QAAA,GAAW,OAAA,GAAU,QAAA;AACpD,IAAA,MAAM,eAAA,GAAkB,MAAA,KAAW,QAAA,GAAW,WAAA,GAAc,QAAA;AAC5D,IAAA,MAAM,eAAe,QAAA,IAAY,WAAA;AACjC,IAAA,MAAM,mBAAmB,YAAA,IAAgB,eAAA;AAEzC,IAAA,MAAM,YAAA,GAAe,UAAA;AAAA,MACnB,UAAA;AAAA,MACA,aAAa,MAAM,CAAA,CAAA;AAAA,MACnB,aAAa,OAAO,CAAA,CAAA;AAAA,MACpB,UAAA,IAAc,oBAAA;AAAA,MACd;AAAA,KACF;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE1G,GAAAA,CAAC,YAAA,CAAa,UAAb,EAAsB,KAAA,EAAO,cAC5B,QAAA,kBAAAA,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,IAAA,EAAM,YAAA;AAAA,UACN,WAAA,EAAW,gBAAA;AAAA,UACX,SAAA,EAAW,YAAA;AAAA,UACV,GAAG,SAAA;AAAA,UAEH;AAAA;AAAA,OACH,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA,CAAC,YAAA,CAAa,UAAb,EAAsB,KAAA,EAAO,cAC5B,QAAA,kBAAA4C,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAM,YAAA;AAAA,QACN,WAAA,EAAW,gBAAA;AAAA,QACX,SAAA,EAAW,YAAA;AAAA,QACV,GAAG,SAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UACA,UAAA,IAAc,CAAC,gBAAA,oBAAoB5C,IAAC,gBAAA,EAAA,EAAiB;AAAA;AAAA;AAAA,KACxD,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,YAAA;AAKjB,IAAM,SAAA,GAAkB0G,OAAA,CAAA,UAAA;AAAA,EAC7B,SAASM,WAAU,EAAE,IAAA,EAAM,UAAU,SAAA,EAAW,GAAG,SAAA,EAAU,EAAG,GAAA,EAAK;AACnE,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,eAAA,EAAgB;AAEnC,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,IAAUN,OAAA,CAAA,cAAA,CAAe,IAAI,CAAA,EAAG;AAC9B,QAAA,OAAaA,qBAAa,IAAA,EAAqD;AAAA,UAC7E,GAAG,SAAA;AAAA,UACH,GAAI,IAAA,CAAK,KAAA;AAAA,UACT,GAAA;AAAA,UACA,aAAA,EAAe,MAAA;AAAA,UACf,SAAA,EAAW,UAAA;AAAA,YACT,gBAAA;AAAA,YACA,SAAA;AAAA,YACC,KAAK,KAAA,EAAkC;AAAA;AAC1C,SACD,CAAA;AAAA,MACH;AACA,MAAA,uBACE1G,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,UAAA,CAAW,kBAAkB,SAAS,CAAA,EAAG,aAAA,EAAY,MAAA,EACnE,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,IAEJ;AAEA,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,IAAU0G,OAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,EAAG;AAClC,QAAA,OAAaA,qBAAa,QAAA,EAAyD;AAAA,UACjF,GAAG,SAAA;AAAA,UACH,GAAI,QAAA,CAAS,KAAA;AAAA,UACb,GAAA;AAAA,UACA,aAAA,EAAe,MAAA;AAAA,UACf,SAAA,EAAW,UAAA;AAAA,YACT,gBAAA;AAAA,YACA,SAAA;AAAA,YACC,SAAS,KAAA,EAAkC;AAAA;AAC9C,SACD,CAAA;AAAA,MACH;AACA,MAAA,uBACE1G,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,UAAA,CAAW,kBAAkB,SAAS,CAAA,EAAG,aAAA,EAAY,MAAA,EACnE,QAAA,EACH,CAAA;AAAA,IAEJ;AAEA,IAAA,MAAM,aAAA,GAAgB,cAAc,MAAM,CAAA;AAC1C,IAAA,uBACEA,GAAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA,CAAW,gBAAA,EAAkB,SAAS,CAAA;AAAA,QAChD,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,YAAA;AAKjB,IAAM,SAAA,GAAkB0G,OAAA,CAAA,UAAA;AAAA,EAC7B,SAASO,WAAU,EAAE,QAAA,EAAU,WAAW,GAAG,SAAA,IAAa,GAAA,EAAK;AAC7D,IAAA,uBACEjH,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA,CAAW,gBAAA,EAAkB,SAAS,CAAA;AAAA,QAChD,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,YAAA;AAKjB,IAAM,UAAA,GAAmB0G,OAAA,CAAA,UAAA;AAAA,EAC9B,SAASQ,YAAW,EAAE,QAAA,EAAU,WAAW,GAAG,SAAA,IAAa,GAAA,EAAK;AAC9D,IAAA,uBACElH,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA,CAAW,iBAAA,EAAmB,SAAS,CAAA;AAAA,QACjD,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,aAAA;AAKlB,IAAM,gBAAA,GAAyB0G,OAAA,CAAA,UAAA,CAGpC,SAASS,iBAAAA,CAAiB,EAAE,UAAU,SAAA,EAAW,GAAG,SAAA,EAAU,EAAG,GAAA,EAAK;AACtE,EAAA,uBACEnH,GAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,UAAA,CAAW,uBAAA,EAAyB,SAAS,CAAA;AAAA,MACvD,GAAG,SAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AAED,gBAAA,CAAiB,WAAA,GAAc,mBAAA;AAKxB,IAAM,WAAA,GAAoB0G,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASU,aAAY,EAAE,QAAA,EAAU,WAAW,GAAG,SAAA,IAAa,GAAA,EAAK;AAC/D,IAAA,uBACEpH,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA,CAAW,kBAAA,EAAoB,SAAS,CAAA;AAAA,QAClD,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,cAAA;AAKnB,IAAM,gBAAA,GAAyB0G,OAAA,CAAA,UAAA,CAGpC,SAASW,iBAAAA,CACT;AAAA,EACE,OAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAc,SAAA,GAAY,aAAA;AAAA,EAC1B,QAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,EAAE,WAAA,EAAa,QAAA,EAAS,GAAI,eAAA,EAAgB;AAElD,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAA+C;AAClE,IAAA,OAAA,GAAU,KAAK,CAAA;AACf,IAAA,IAAI,CAAC,MAAM,gBAAA,EAAkB;AAC3B,MAAA,WAAA,EAAY;AAAA,IACd;AAAA,EACF,CAAA;AAEA,EAAA,uBACErH,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAY,SAAA;AAAA,MACZ,UAAU,QAAA,IAAY,QAAA;AAAA,MACtB,OAAA,EAAS,WAAA;AAAA,MACT,SAAA,EAAW,UAAA,CAAW,iBAAA,EAAmB,SAAS,CAAA;AAAA,MACjD,GAAG,SAAA;AAAA,MAEH,sCACC4C,IAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,WAAA;AAAA,UACR,KAAA,EAAM,IAAA;AAAA,UACN,MAAA,EAAO,IAAA;AAAA,UACP,IAAA,EAAK,MAAA;AAAA,UACL,MAAA,EAAO,cAAA;AAAA,UACP,WAAA,EAAY,GAAA;AAAA,UACZ,aAAA,EAAc,OAAA;AAAA,UACd,cAAA,EAAe,OAAA;AAAA,UACf,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAU,OAAA;AAAA,UAEV,QAAA,EAAA;AAAA,4BAAA5C,GAAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,4BACpCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA;AACtC;AAAA,GAEJ;AAEJ,CAAC;AAED,gBAAA,CAAiB,WAAA,GAAc,mBAAA;AAKxB,IAAM,KAAA,GAAQ,MAAA,CAAO,MAAA,CAAO,SAAA,EAAW;AAAA,EAC5C,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,KAAA,EAAO,UAAA;AAAA,EACP,WAAA,EAAa,gBAAA;AAAA,EACb,MAAA,EAAQ,WAAA;AAAA,EACR,WAAA,EAAa;AACf,CAAC;ACncM,IAAM,YAAA,GAAqBsH,sBAAqC,IAAI;AAE3E,IAAM,SAAA,GAA6B;AAAA,EACjC,KAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA;AAEA,SAASX,SAAAA,GAAW;AAClB,EAAA,uBACE/D,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,WAAA;AAAA,MACR,KAAA,EAAM,IAAA;AAAA,MACN,MAAA,EAAO,IAAA;AAAA,MACP,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAU,OAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAA5C,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,IAAA,EAAK,CAAA;AAAA,wBAC/BA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBACtCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,OAAA,EAAQ,EAAA,EAAG,GAAA,EAAI;AAAA;AAAA;AAAA,GACzC;AAEJ;AAEA,SAAS4G,YAAAA,GAAc;AACrB,EAAA,uBACEhE,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,WAAA;AAAA,MACR,KAAA,EAAM,IAAA;AAAA,MACN,MAAA,EAAO,IAAA;AAAA,MACP,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAU,OAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAA5C,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,IAAA,EAAK,CAAA;AAAA,wBAC/BA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAgB;AAAA;AAAA;AAAA,GAC1B;AAEJ;AAEA,SAAS6G,YAAAA,GAAc;AACrB,EAAA,uBACEjE,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,WAAA;AAAA,MACR,KAAA,EAAM,IAAA;AAAA,MACN,MAAA,EAAO,IAAA;AAAA,MACP,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAU,OAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAA5C,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,2EAAA,EAA4E,CAAA;AAAA,wBACpFA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBACrCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,OAAA,EAAQ,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA,GAC3C;AAEJ;AAEA,SAAS8G,WAAAA,GAAa;AACpB,EAAA,uBACElE,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,WAAA;AAAA,MACR,KAAA,EAAM,IAAA;AAAA,MACN,MAAA,EAAO,IAAA;AAAA,MACP,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAU,OAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAA5C,IAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,IAAA,EAAK,CAAA;AAAA,wBAC/BA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBACrCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,OAAA,EAAQ,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA,GAC3C;AAEJ;AAEA,SAAS,iBAAiB,MAAA,EAAqB;AAC7C,EAAA,QAAQ,MAAA;AAAQ,IACd,KAAK,SAAA;AACH,MAAA,uBAAOA,GAAAA,CAAC4G,YAAAA,EAAA,EAAY,CAAA;AAAA,IACtB,KAAK,SAAA;AACH,MAAA,uBAAO5G,GAAAA,CAAC6G,YAAAA,EAAA,EAAY,CAAA;AAAA,IACtB,KAAK,QAAA;AACH,MAAA,uBAAO7G,GAAAA,CAAC8G,WAAAA,EAAA,EAAW,CAAA;AAAA,IACrB,KAAK,SAAA;AAAA,IACL,KAAK,MAAA;AAAA,IACL;AACE,MAAA,uBAAO9G,GAAAA,CAAC2G,SAAAA,EAAA,EAAS,CAAA;AAAA;AAEvB;AAKO,IAAM,SAAA,GAAkBW,mBAM7B,SAASC,UAAAA,CAAU,EAAE,KAAA,EAAO,OAAA,IAAW,GAAA,EAAK;AAC5C,EAAA,MAAM;AAAA,IACJ,KAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF,GAAI,KAAA;AAEJ,EAAA,MAAM,YAAA,GAAqBD,OAAA,CAAA,MAAA;AAAA,IACzB,OAAO,QAAA,KAAa,QAAA,GAAW,QAAA,GAAW;AAAA,GAC5C;AACA,EAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,MAAA,CAAe,IAAA,CAAK,GAAA,EAAK,CAAA;AACpD,EAAA,MAAM,QAAA,GAAiBA,eAA6C,IAAI,CAAA;AACxE,EAAA,MAAM,WAAA,GAAoBA,eAAgB,KAAK,CAAA;AAE/C,EAAMA,kBAAU,MAAM;AACpB,IAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,MAAA,YAAA,CAAa,OAAA,GAAU,QAAA;AAAA,IACzB;AAAA,EACF,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,UAAA,GAAmBA,oBAAY,MAAM;AACzC,IAAA,IAAI,QAAA,KAAa,IAAA,IAAQ,QAAA,KAAa,MAAA,EAAW;AAEjD,IAAA,IAAI,SAAS,OAAA,EAAS;AACpB,MAAA,YAAA,CAAa,SAAS,OAAO,CAAA;AAC7B,MAAA,QAAA,CAAS,OAAA,GAAU,IAAA;AAAA,IACrB;AAEA,IAAA,IAAI,YAAA,CAAa,WAAW,CAAA,EAAG;AAC7B,MAAA,QAAA,CAAS,OAAA,GAAU,WAAW,MAAM;AAClC,QAAA,OAAA,EAAQ;AACR,QAAA,QAAA,CAAS,OAAA,GAAU,IAAA;AAAA,MACrB,GAAG,CAAC,CAAA;AACJ,MAAA;AAAA,IACF;AAEA,IAAA,YAAA,CAAa,OAAA,GAAU,KAAK,GAAA,EAAI;AAChC,IAAA,QAAA,CAAS,OAAA,GAAU,WAAW,MAAM;AAClC,MAAA,OAAA,EAAQ;AACR,MAAA,QAAA,CAAS,OAAA,GAAU,IAAA;AAAA,IACrB,CAAA,EAAG,aAAa,OAAO,CAAA;AAAA,EACzB,CAAA,EAAG,CAAC,QAAA,EAAU,OAAO,CAAC,CAAA;AAEtB,EAAA,MAAM,UAAA,GAAmBA,oBAAY,MAAM;AACzC,IAAA,IAAI,QAAA,KAAa,IAAA,IAAQ,QAAA,KAAa,MAAA,EAAW;AACjD,IAAA,IAAI,SAAS,OAAA,EAAS;AACpB,MAAA,YAAA,CAAa,SAAS,OAAO,CAAA;AAC7B,MAAA,QAAA,CAAS,OAAA,GAAU,IAAA;AAAA,IACrB;AACA,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,GAAA,EAAI,GAAI,YAAA,CAAa,OAAA;AAC1C,IAAA,YAAA,CAAa,UAAU,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,YAAA,CAAa,UAAU,OAAO,CAAA;AACjE,IAAA,WAAA,CAAY,OAAA,GAAU,IAAA;AAAA,EACxB,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,WAAA,GAAoBA,oBAAY,MAAM;AAC1C,IAAA,IAAI,QAAA,KAAa,IAAA,IAAQ,QAAA,KAAa,MAAA,EAAW;AACjD,IAAA,IAAI,YAAY,OAAA,EAAS;AACvB,MAAA,WAAA,CAAY,OAAA,GAAU,KAAA;AACtB,MAAA,UAAA,EAAW;AAAA,IACb;AAAA,EACF,CAAA,EAAG,CAAC,QAAA,EAAU,UAAU,CAAC,CAAA;AAEzB,EAAMA,kBAAU,MAAM;AACpB,IAAA,UAAA,EAAW;AACX,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,SAAS,OAAA,EAAS;AACpB,QAAA,YAAA,CAAa,SAAS,OAAO,CAAA;AAC7B,QAAA,QAAA,CAAS,OAAA,GAAU,IAAA;AAAA,MACrB;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAA,MAAM,IAAA,GAAO,MAAA,KAAW,QAAA,GAAW,OAAA,GAAU,QAAA;AAC7C,EAAA,MAAM,QAAA,GAAW,MAAA,KAAW,QAAA,GAAW,WAAA,GAAc,QAAA;AAErD,EAAA,uBACE1E,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA,EAAW,QAAA;AAAA,MACX,aAAA,EAAY,MAAA;AAAA,MACZ,QAAA,EAAU,CAAA;AAAA,MACV,YAAA,EAAc,UAAA;AAAA,MACd,YAAA,EAAc,WAAA;AAAA,MACd,cAAA,EAAgB,UAAA;AAAA,MAChB,cAAA,EAAgB,WAAA;AAAA,MAChB,OAAA,EAAS,UAAA;AAAA,MACT,MAAA,EAAQ,WAAA;AAAA,MACR,SAAA,EAAW,UAAA;AAAA,QACT,UAAA;AAAA,QACA,aAAa,MAAM,CAAA;AAAA,OACrB;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA5C,GAAAA,CAAC,UAAK,SAAA,EAAU,gBAAA,EAAiB,eAAY,MAAA,EAC1C,QAAA,EAAA,gBAAA,CAAiB,MAAM,CAAA,EAC1B,CAAA;AAAA,wBAEA4C,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,KAAA,oBAAS5C,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,mBAAmB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UAChD,+BAAeA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yBAAyB,QAAA,EAAA,WAAA,EAAY;AAAA,SAAA,EACpE,CAAA;AAAA,QAEC,0BAAUA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAoB,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,QAEpD,8BACCA,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,YAAA,EAAW,SAAA;AAAA,YACX,OAAA,EAAS,OAAA;AAAA,YACT,SAAA,EAAU,iBAAA;AAAA,YAEV,QAAA,kBAAA4C,IAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAQ,WAAA;AAAA,gBACR,KAAA,EAAM,IAAA;AAAA,gBACN,MAAA,EAAO,IAAA;AAAA,gBACP,IAAA,EAAK,MAAA;AAAA,gBACL,MAAA,EAAO,cAAA;AAAA,gBACP,WAAA,EAAY,GAAA;AAAA,gBACZ,aAAA,EAAc,OAAA;AAAA,gBACd,cAAA,EAAe,OAAA;AAAA,gBACf,aAAA,EAAY,MAAA;AAAA,gBACZ,SAAA,EAAU,OAAA;AAAA,gBAEV,QAAA,EAAA;AAAA,kCAAA5C,GAAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,kCACpCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA;AACtC;AAAA;AACF;AAAA;AAAA,GAEJ;AAEJ,CAAC;AAED,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAI,YAAA,GAAe,CAAA;AAKZ,SAAS,aAAA,CAAc;AAAA,EAC5B,QAAA;AAAA,EACA,eAAA,GAAkB,GAAA;AAAA,EAClB,eAAA,GAAkB,cAAA;AAAA,EAClB,gBAAA,GAAmB;AACrB,CAAA,EAAuB;AACrB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAUsH,OAAA,CAAA,QAAA,CAAwB,EAAE,CAAA;AAE5D,EAAA,MAAM,KAAA,GAAcA,OAAA,CAAA,WAAA,CAAY,CAAC,EAAA,KAAe;AAC9C,IAAA,SAAA,CAAU,CAAC,IAAA,KAAS;AAClB,MAAA,MAAM,QAAQ,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAC1C,MAAA,IAAI,OAAO,OAAA,EAAS;AAClB,QAAA,KAAA,CAAM,OAAA,EAAQ;AAAA,MAChB;AACA,MAAA,OAAO,KAAK,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAAA,IACvC,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,QAAA,GAAiBA,oBAAY,MAAM;AACvC,IAAA,SAAA,CAAU,CAAC,IAAA,KAAS;AAClB,MAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,CAAA;AACjC,MAAA,OAAO,EAAC;AAAA,IACV,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,MAAA,GAAeA,OAAA,CAAA,WAAA;AAAA,IACnB,CAAC,IAAY,OAAA,KAAmC;AAC9C,MAAA,SAAA;AAAA,QAAU,CAAC,IAAA,KACT,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAM;AACd,UAAA,IAAI,CAAA,CAAE,EAAA,KAAO,EAAA,EAAI,OAAO,CAAA;AACxB,UAAA,OAAO;AAAA,YACL,GAAG,CAAA;AAAA,YACH,GAAG,OAAA;AAAA,YACH,IAAI,CAAA,CAAE,EAAA;AAAA,YACN,UAAU,OAAA,CAAQ,QAAA,KAAa,MAAA,GAAY,OAAA,CAAQ,WAAW,CAAA,CAAE,QAAA;AAAA,YAChE,UAAU,OAAA,CAAQ,QAAA,KAAa,MAAA,GAAY,OAAA,CAAQ,WAAW,CAAA,CAAE,QAAA;AAAA,YAChE,QAAQ,OAAA,CAAQ,MAAA,KAAW,MAAA,GAAY,OAAA,CAAQ,SAAS,CAAA,CAAE,MAAA;AAAA,YAC1D,YACE,OAAA,CAAQ,UAAA,KAAe,MAAA,GAAY,OAAA,CAAQ,aAAa,CAAA,CAAE;AAAA,WAC9D;AAAA,QACF,CAAC;AAAA,OACH;AAAA,IACF,CAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAA,MAAM,QAAA,GAAiBA,OAAA,CAAA,WAAA;AAAA,IACrB,CAAC,OAAe,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAAA,IAC9C,CAAC,MAAM;AAAA,GACT;AAEA,EAAA,MAAM,KAAA,GAAcA,OAAA,CAAA,WAAA;AAAA,IAClB,CAAC,OAAA,KAAkC;AACjC,MAAA,MAAM,EAAA,GAAK,OAAA,CAAQ,EAAA,IAAM,CAAA,SAAA,EAAY,EAAE,YAAY,CAAA,CAAA;AACnD,MAAA,MAAM,QAAA,GAAW,QAAQ,QAAA,IAAY,eAAA;AACrC,MAAA,MAAM,QAAA,GACJ,OAAA,CAAQ,QAAA,KAAa,MAAA,GAAY,QAAQ,QAAA,GAAW,eAAA;AACtD,MAAA,MAAM,MAAA,GAAS,QAAQ,MAAA,IAAU,MAAA;AACjC,MAAA,MAAM,UAAA,GACJ,OAAA,CAAQ,UAAA,KAAe,MAAA,GAAY,QAAQ,UAAA,GAAa,IAAA;AAE1D,MAAA,MAAM,SAAA,GAAyB;AAAA,QAC7B,GAAG,OAAA;AAAA,QACH,EAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA,EAAW,KAAK,GAAA;AAAI,OACtB;AAEA,MAAA,SAAA,CAAU,CAAC,IAAA,KAAS;AAElB,QAAA,MAAM,iBAAiB,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa,QAAQ,CAAA;AACjE,QAAA,IAAI,UAAU,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAE5C,QAAA,IAAI,cAAA,CAAe,UAAU,gBAAA,EAAkB;AAC7C,UAAA,MAAM,MAAA,GAAS,eAAe,CAAC,CAAA;AAC/B,UAAA,IAAI,MAAA,EAAQ;AACV,YAAA,MAAA,CAAO,OAAA,IAAU;AACjB,YAAA,OAAA,GAAU,QAAQ,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,EAAA,KAAO,OAAO,EAAE,CAAA;AAAA,UACpD;AAAA,QACF;AAEA,QAAA,OAAO,CAAC,GAAG,OAAA,EAAS,SAAS,CAAA;AAAA,MAC/B,CAAC,CAAA;AAED,MAAA,OAAO,EAAA;AAAA,IACT,CAAA;AAAA,IACA,CAAC,eAAA,EAAiB,eAAA,EAAiB,gBAAgB;AAAA,GACrD;AAEA,EAAA,MAAM,YAAA,GAAqBA,gBAAwB,MAAM;AACvD,IAAA,MAAM,EAAA,GAAK,CAAC,OAAA,KAA0B,KAAA,CAAM,OAAO,CAAA;AACnD,IAAA,EAAA,CAAG,KAAA,GAAQ,KAAA;AACX,IAAA,EAAA,CAAG,QAAA,GAAW,QAAA;AACd,IAAA,EAAA,CAAG,MAAA,GAAS,MAAA;AACZ,IAAA,EAAA,CAAG,QAAA,GAAW,QAAA;AACd,IAAA,OAAO,EAAA;AAAA,EACT,GAAG,CAAC,KAAA,EAAO,OAAO,QAAA,EAAU,MAAA,EAAQ,QAAQ,CAAC,CAAA;AAE7C,EAAA,uBACE1E,IAAAA,CAAC,YAAA,CAAa,QAAA,EAAb,EAAsB,OAAO,YAAA,EAC3B,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,oBACD5C,GAAAA,CAAC,MAAA,EAAA,EACE,QAAA,EAAA,SAAA,CAAU,GAAA,CAAI,CAAC,GAAA,KAAQ;AACtB,MAAA,MAAM,QAAQ,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa,GAAG,CAAA;AACrD,MAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAE/B,MAAA,uBACEA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UAEC,SAAA,EAAW,UAAA;AAAA,YACT,oBAAA;AAAA,YACA,uBAAuB,GAAG,CAAA;AAAA,WAC5B;AAAA,UACA,IAAA,EAAK,QAAA;AAAA,UACL,YAAA,EAAY,iBAAiB,GAAG,CAAA,CAAA;AAAA,UAE/B,gBAAM,GAAA,CAAI,CAAC,CAAA,qBACVA,IAAC,SAAA,EAAA,EAAqB,KAAA,EAAO,CAAA,EAAG,OAAA,EAAS,MAAM,KAAA,CAAM,CAAA,CAAE,EAAE,CAAA,EAAA,EAAzC,CAAA,CAAE,EAA0C,CAC7D;AAAA,SAAA;AAAA,QAVI;AAAA,OAWP;AAAA,IAEJ,CAAC,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AClYO,IAAM,QAAA,GAAiBwH,OAAA,CAAA,UAAA;AAAA,EAC5B,SAASC,SAAAA,CACP;AAAA,IACE,MAAA,GAAS,KAAA;AAAA,IACT,OAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA,GAAS,MAAA;AAAA,IACT,QAAA,GAAW,GAAA;AAAA,IACX,QAAA,GAAW,cAAA;AAAA,IACX,MAAA;AAAA,IACA,UAAA,GAAa,IAAA;AAAA,IACb,OAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,WAAA,GAAoBD,oBAAY,MAAM;AAC1C,MAAA,OAAA,IAAU;AAAA,IACZ,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,WAAA,GAA2B;AAAA,MAC/B,EAAA,EAAI,sBAAA;AAAA,MACJ,OAAO,OAAA,IAAW,QAAA;AAAA,MAClB,WAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAU,QAAA,IAAY,IAAA;AAAA,MACtB,QAAA;AAAA,MACA,UAAA,EAAY,QAAQ,UAAU,CAAA;AAAA,MAC9B,MAAA;AAAA,MACA,SAAA,EAAW,KAAK,GAAA,EAAI;AAAA,MACpB,OAAA,EAAS;AAAA,KACX;AAEA,IAAA,uBACExH,GAAAA,CAAC,MAAA,EAAA,EACC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,UAAA;AAAA,UACT,oBAAA;AAAA,UACA,uBAAuB,QAAQ,CAAA,CAAA;AAAA,UAC/B;AAAA,SACF;AAAA,QACA,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAY,iBAAiB,QAAQ,CAAA,CAAA;AAAA,QACpC,GAAG,SAAA;AAAA,QAEJ,0BAAAA,GAAAA,CAAC,SAAA,EAAA,EAAU,KAAU,KAAA,EAAO,WAAA,EAAa,SAAS,WAAA,EAAa;AAAA;AAAA,KACjE,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AAKhB,IAAM,KAAA,GAAQ;ACtEd,SAAS,QAAA,GAA2B;AACzC,EAAA,MAAM,OAAA,GAAgB0H,mBAAW,YAAY,CAAA;AAC7C,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAAA,EAClE;AACA,EAAA,OAAO,OAAA;AACT;ACNO,IAAM,kBAAA,GACLC,OAAA,CAAA,aAAA,CAAuC,EAAE;AAE1C,IAAM,qBAAA,GAAwB,MAC7BA,OAAA,CAAA,UAAA,CAAW,kBAAkB;AAK9B,IAAM,WAAA,GAAoBA,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASC,YAAAA,CACP;AAAA,IACE,GAAA;AAAA,IACA,IAAA,GAAO,IAAA;AAAA,IACP,KAAA,GAAQ,UAAA;AAAA,IACR,OAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,aAAA,GAAsBD,OAAA,CAAA,QAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA,CAAE,MAAA;AAAA,MAC/CA,OAAA,CAAA;AAAA,KACR;AAEA,IAAA,MAAM,YAAY,GAAA,KAAQ,MAAA,IAAa,GAAA,GAAM,CAAA,IAAK,cAAc,MAAA,GAAS,GAAA;AACzE,IAAA,MAAM,kBAAkB,SAAA,GACpB,aAAA,CAAc,KAAA,CAAM,CAAA,EAAG,GAAG,CAAA,GAC1B,aAAA;AACJ,IAAA,MAAM,WAAA,GAAc,SAAA,GAAY,aAAA,CAAc,MAAA,GAAS,GAAA,GAAM,CAAA;AAE7D,IAAA,MAAM,UAAA,GAAa,eAAA,CAAgB,MAAA,IAAU,WAAA,GAAc,IAAI,CAAA,GAAI,CAAA,CAAA;AAEnE,IAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,OAAA;AAAA,MACzB,OAAO,EAAE,IAAA,EAAM,KAAA,EAAM,CAAA;AAAA,MACrB,CAAC,MAAM,KAAK;AAAA,KACd;AAEA,IAAA,uBACE3H,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA,CAAW,iBAAA,EAAmB,SAAS,CAAA;AAAA,QAClD,IAAA,EAAK,OAAA;AAAA,QACL,KAAA,EAAO;AAAA,UACL,GAAI,YAAY,MAAA,GACX;AAAA,YACC,6BACE,OAAO,OAAA,KAAY,QAAA,GAAW,CAAA,EAAG,OAAO,CAAA,EAAA,CAAA,GAAO;AAAA,cAEnD,EAAC;AAAA,UACL,GAAG;AAAA,SACL;AAAA,QACC,GAAG,SAAA;AAAA,QAEJ,0BAAA4C,IAAAA,CAAC,kBAAA,CAAmB,QAAA,EAAnB,EAA4B,OAAO,YAAA,EACjC,QAAA,EAAA;AAAA,UAAA,eAAA,CAAgB,GAAA,CAAI,CAAC,KAAA,EAAO,KAAA,KAAU;AACrC,YAAA,MAAM,OAAA,GAAU,KAAA;AAGhB,YAAA,MAAM,UAAA,GAAkC;AAAA,cACtC,QAAQ,UAAA,GAAa,KAAA;AAAA,cACrB,GAAI,OAAA,CAAQ,KAAA,EAAO,KAAA,IAAS;AAAC,aAC/B;AACA,YAAA,OAAa+E,qBAAa,OAAA,EAAS;AAAA,cACjC,GAAA,EAAK,QAAQ,GAAA,IAAO,KAAA;AAAA,cACpB,KAAA,EAAO;AAAA,aACR,CAAA;AAAA,UACH,CAAC,CAAA;AAAA,UACA,WAAA,GAAc,qBACb/E,IAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,UAAA;AAAA,gBACT,WAAA;AAAA,gBACA,cAAc,IAAI,CAAA,CAAA;AAAA,gBAClB,cAAc,KAAK,CAAA,CAAA;AAAA,gBACnB;AAAA,eACF;AAAA,cACA,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAE;AAAA,cACnB,YAAA,EAAY,IAAI,WAAW,CAAA,OAAA,CAAA;AAAA,cAC5B,QAAA,EAAA;AAAA,gBAAA,GAAA;AAAA,gBACG;AAAA;AAAA;AAAA;AACJ,SAAA,EAEJ;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AClFnB,IAAM,aAAA,GAAsBiF,sBAAyC,IAAI;AAEzE,IAAM,gBAAA,GAAmB,MACxBA,OAAA,CAAA,UAAA,CAAW,aAAa;AAMzB,SAAS,YAAY,IAAA,EAAuB;AACjD,EAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,UAAU,OAAO,EAAA;AAC9C,EAAA,MAAM,OAAA,GAAU,KAAK,IAAA,EAAK;AAC1B,EAAA,IAAI,CAAC,SAAS,OAAO,EAAA;AAErB,EAAA,MAAM,QAAQ,OAAA,CAAQ,KAAA,CAAM,QAAQ,CAAA,CAAE,OAAO,OAAO,CAAA;AACpD,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,EAAA;AAE/B,EAAA,MAAM,SAAA,GAAY,MAAM,CAAC,CAAA;AACzB,EAAA,IAAI,CAAC,WAAW,OAAO,EAAA;AAEvB,EAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,CAAK,SAAS,CAAA;AAClC,IAAA,OAAO,MAAM,CAAC,CAAA,GAAI,MAAM,CAAC,CAAA,CAAE,aAAY,GAAI,EAAA;AAAA,EAC7C;AAEA,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA;AACvC,EAAA,IAAI,CAAC,UAAU,OAAO,EAAA;AAEtB,EAAA,MAAM,YAAY,KAAA,CAAM,IAAA,CAAK,SAAS,CAAA,CAAE,CAAC,CAAA,IAAK,EAAA;AAC9C,EAAA,MAAM,WAAW,KAAA,CAAM,IAAA,CAAK,QAAQ,CAAA,CAAE,CAAC,CAAA,IAAK,EAAA;AAC5C,EAAA,OAAA,CAAQ,SAAA,GAAY,UAAU,WAAA,EAAY;AAC5C;AAKA,SAAS,iBAAA,GAAoB;AAC3B,EAAA,uBACE7H,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,cAAA;AAAA,MACL,KAAA,EAAM,KAAA;AAAA,MACN,MAAA,EAAO,KAAA;AAAA,MACP,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAU,OAAA;AAAA,MAEV,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,+GAAA,EAAgH;AAAA;AAAA,GAC1H;AAEJ;AAKO,IAAM,WAAA,GAAoB6H,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASC,YAAAA,CACP,EAAE,GAAA,EAAK,QAAQ,GAAA,EAAK,SAAA,EAAW,KAAA,EAAO,OAAA,GAAU,OAAO,MAAA,EAAQ,OAAA,EAAS,GAAG,SAAA,IAC3E,GAAA,EACA;AACA,IAAA,MAAM,UAAU,gBAAA,EAAiB;AACjC,IAAA,MAAM,WAAA,GAAc,OAAA,EAAS,WAAA,KAAgB,GAAA,GAAM,SAAA,GAAY,OAAA,CAAA;AAE/D,IAAA,MAAM,UAAA,GAAmBD,OAAA,CAAA,WAAA;AAAA,MACvB,CAAC,KAAA,KAAyD;AACxD,QAAA,OAAA,EAAS,eAAe,QAAQ,CAAA;AAChC,QAAA,MAAA,GAAS,KAAK,CAAA;AAAA,MAChB,CAAA;AAAA,MACA,CAAC,SAAS,MAAM;AAAA,KAClB;AAEA,IAAA,MAAM,WAAA,GAAoBA,OAAA,CAAA,WAAA;AAAA,MACxB,CAAC,KAAA,KAAyD;AACxD,QAAA,OAAA,EAAS,eAAe,OAAO,CAAA;AAC/B,QAAA,OAAA,GAAU,KAAK,CAAA;AAAA,MACjB,CAAA;AAAA,MACA,CAAC,SAAS,OAAO;AAAA,KACnB;AAEA,IAAA,IAAI,WAAA,KAAgB,OAAA,IAAW,CAAC,GAAA,EAAK;AACnC,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,YAAA,GAAe,UAAA,CAAW,kBAAA,EAAoB,SAAS,CAAA;AAC7D,IAAA,MAAM,UAAA,GAAkC;AAAA,MACtC,OAAA,EAAS,WAAA,KAAgB,QAAA,GAAW,CAAA,GAAI,CAAA;AAAA,MACxC,GAAG;AAAA,KACL;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE7H,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,SAAA,EAAW,YAAA;AAAA,UACX,KAAA,EAAO,UAAA;AAAA,UACN,GAAI;AAAA;AAAA,OACP;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,GAAA;AAAA,QACA,MAAA;AAAA,QACA,KAAK,GAAA,IAAO,EAAA;AAAA,QACZ,SAAA,EAAW,YAAA;AAAA,QACX,KAAA,EAAO,UAAA;AAAA,QACP,MAAA,EAAQ,UAAA;AAAA,QACR,OAAA,EAAS,WAAA;AAAA,QACR,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,cAAA;AAKnB,IAAM,cAAA,GAAuB6H,OAAA,CAAA,UAAA,CAGlC,SAASE,eAAAA,CACT,EAAE,QAAA,EAAU,SAAA,EAAW,OAAA,EAAS,OAAA,GAAU,KAAA,EAAO,GAAG,SAAA,IACpD,GAAA,EACA;AACA,EAAA,MAAM,UAAU,gBAAA,EAAiB;AACjC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAUF,OAAA,CAAA,QAAA,CAAS,YAAY,MAAS,CAAA;AAEtE,EAAMA,kBAAU,MAAM;AACpB,IAAA,IAAI,OAAA,KAAY,MAAA,IAAa,OAAA,GAAU,CAAA,EAAG;AACxC,MAAA,MAAM,QAAQ,UAAA,CAAW,MAAM,YAAA,CAAa,IAAI,GAAG,OAAO,CAAA;AAC1D,MAAA,OAAO,MAAM,aAAa,KAAK,CAAA;AAAA,IACjC;AACA,IAAA,YAAA,CAAa,IAAI,CAAA;AACjB,IAAA,OAAO,MAAA;AAAA,EACT,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,IAAI,OAAA,IAAW,OAAA,CAAQ,WAAA,KAAgB,QAAA,EAAU;AAC/C,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,eAAA,GAAkB,UAAA,CAAW,qBAAA,EAAuB,SAAS,CAAA;AAEnE,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACE7H,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,eAAA;AAAA,QACV,GAAI,SAAA;AAAA,QAEJ;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACEA,IAAC,MAAA,EAAA,EAAK,GAAA,EAAU,WAAW,eAAA,EAAkB,GAAG,WAC7C,QAAA,EACH,CAAA;AAEJ,CAAC;AAED,cAAA,CAAe,WAAA,GAAc,iBAAA;AAKtB,IAAM,WAAA,GAAoB6H,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASG,YAAAA,CACP;AAAA,IACE,MAAA,GAAS,QAAA;AAAA,IACT,SAAA,GAAY,YAAA;AAAA,IACZ,SAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,YAAA,EAAc,SAAA;AAAA,IACd,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,YAAA,GAAe,UAAA;AAAA,MACnB,kBAAA;AAAA,MACA,qBAAqB,MAAM,CAAA,CAAA;AAAA,MAC3B,qBAAqB,SAAS,CAAA,CAAA;AAAA,MAC9B;AAAA,KACF;AAEA,IAAA,MAAM,eAAA,GAAkB,SAAA,IAAa,CAAA,QAAA,EAAW,MAAM,CAAA,CAAA;AAEtD,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEhI,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,SAAA,EAAW,YAAA;AAAA,UACX,IAAA,EAAK,QAAA;AAAA,UACL,YAAA,EAAY,eAAA;AAAA,UACX,GAAI;AAAA;AAAA,OACP;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,YAAA;AAAA,QACX,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAY,eAAA;AAAA,QACX,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,cAAA;AAK1B,IAAM,UAAA,GAAmB6H,OAAA,CAAA,UAAA,CAAwC,SAAS,MAAA,CACxE;AAAA,EACE,GAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA,EAAc,SAAA;AAAA,EACd,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,eAAe,qBAAA,EAAsB;AAC3C,EAAA,MAAM,IAAA,GAAmB,QAAA,IAAY,YAAA,CAAa,IAAA,IAAQ,IAAA;AAC1D,EAAA,MAAM,KAAA,GAAqB,SAAA,IAAa,YAAA,CAAa,KAAA,IAAS,UAAA;AAE9D,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAUA,OAAA,CAAA,QAAA;AAAA,IAC1C,MAAM,SAAA,GAAY;AAAA,GACpB;AAEA,EAAMA,kBAAU,MAAM;AACpB,IAAA,cAAA,CAAe,GAAA,GAAM,YAAY,OAAO,CAAA;AAAA,EAC1C,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AAER,EAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,OAAA;AAAA,IACzB,OAAO;AAAA,MACL,IAAA;AAAA,MACA,KAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACF,CAAA;AAAA,IACA,CAAC,IAAA,EAAM,KAAA,EAAO,WAAW;AAAA,GAC3B;AAEA,EAAA,MAAM,QAAA,GAAW,YAAY,IAAI,CAAA;AACjC,EAAA,MAAM,iBAAA,GAAoB,aAAa,GAAA,IAAO,IAAA;AAE9C,EAAA,MAAM,WAAA,GAAc,UAAA;AAAA,IAClB,WAAA;AAAA,IACA,cAAc,IAAI,CAAA,CAAA;AAAA,IAClB,cAAc,KAAK,CAAA,CAAA;AAAA,IACnB;AAAA,GACF;AAEA,EAAA,MAAM,qBAA2D,EAAC;AAClE,EAAA,IAAI,iBAAA,EAAmB;AACrB,IAAA,kBAAA,CAAmB,IAAA,GAAO,KAAA;AAC1B,IAAA,kBAAA,CAAmB,YAAY,CAAA,GAAI,iBAAA;AAAA,EACrC;AAGA,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE7H,GAAAA,CAAC,aAAA,CAAc,UAAd,EAAuB,KAAA,EAAO,cAC7B,QAAA,kBAAAA,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,SAAA,EAAW,WAAA;AAAA,UACV,GAAG,kBAAA;AAAA,UACH,GAAI,SAAA;AAAA,UAEJ;AAAA;AAAA,OACH,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA,CAAC,aAAA,CAAc,UAAd,EAAuB,KAAA,EAAO,cAC7B,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,WAAA;AAAA,QACV,GAAG,kBAAA;AAAA,QACH,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AAGA,EAAA,MAAM,eAAA,GACJ,aACC,QAAA,GACC,QAAA,GACE,OACF,IAAA,mBAEAA,IAAC,iBAAA,EAAA,EAAkB,CAAA,CAAA;AAGvB,EAAA,MAAM,OAAA,mBACJ4C,IAAAA,CAAA2C,QAAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,GAAA,IAAO,WAAA,KAAgB,2BACtBvF,GAAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,MAAA;AAAA,QACA,GAAA,EAAK,OAAO,IAAA,IAAQ,EAAA;AAAA,QACpB,MAAA;AAAA,QACA;AAAA;AAAA,KACF;AAAA,IAED,WAAA,KAAgB,QAAA,oBACfA,GAAAA,CAAC,kBAAgB,QAAA,EAAA,eAAA,EAAgB;AAAA,GAAA,EAErC,CAAA;AAGF,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACEA,GAAAA,CAAC,aAAA,CAAc,UAAd,EAAuB,KAAA,EAAO,cAC7B,QAAA,kBAAAA,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,WAAA;AAAA,QACV,GAAG,kBAAA;AAAA,QACH,GAAI,SAAA;AAAA,QAEJ,QAAA,EAAA;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA,CAAC,aAAA,CAAc,UAAd,EAAuB,KAAA,EAAO,cAC7B,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,WAAA;AAAA,MACV,GAAG,kBAAA;AAAA,MACH,GAAG,SAAA;AAAA,MAEH,QAAA,EAAA;AAAA;AAAA,GACH,EACF,CAAA;AAEJ,CAAC,CAAA;AAED,UAAA,CAAW,WAAA,GAAc,QAAA;AAalB,IAAMiI,OAAAA,GAAS;AACtBA,OAAAA,CAAO,IAAA,GAAO,UAAA;AACdA,OAAAA,CAAO,KAAA,GAAQ,WAAA;AACfA,OAAAA,CAAO,QAAA,GAAW,cAAA;AAClBA,OAAAA,CAAO,KAAA,GAAQ,WAAA;AACfA,OAAAA,CAAO,KAAA,GAAQ,WAAA;AAER,IAAM,UAAA,GAAa;AClYnB,IAAM,gBAAA,GACLC,sBAA4C,IAAI;AAEjD,IAAM,sBAAsB,MAA6B;AAC9D,EAAA,MAAM,OAAA,GAAgBA,mBAAW,gBAAgB,CAAA;AACjD,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;AAEO,IAAM,oBAAA,GACLA,sBAAgD,IAAI;AAErD,IAAM,0BAA0B,MAAiC;AACtE,EAAA,MAAM,OAAA,GAAgBA,mBAAW,oBAAoB,CAAA;AACrD,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;AAKO,IAAM,aAAA,GAAsBA,OAAA,CAAA,UAAA;AAAA,EACjC,SAASC,cAAAA,CAAc,KAAA,EAAO,GAAA,EAAK;AACjC,IAAA,MAAM;AAAA,MACJ,IAAA,GAAO,QAAA;AAAA,MACP,OAAA,GAAU,SAAA;AAAA,MACV,UAAA,GAAa,KAAA;AAAA,MACb,SAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA,EAAO,MAAA;AAAA,MACP,YAAA,EAAc,aAAA;AAAA,MACd,aAAA,EAAe,cAAA;AAAA,MACf,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,aAAa,IAAA,KAAS,UAAA;AAC5B,IAAA,MAAM,WAAA,GACJ,CAAC,UAAA,IAAc,aAAA,IAAiB,QAAQ,OAAA,CAAQ,KAAA,CAAM,WAAW,CAAA,GAAI,KAAA;AAEvE,IAAA,MAAM,QAAA,GAAW,EAAE,GAAG,SAAA,EAAU;AAChC,IAAA,OAAQ,QAAA,CAAuC,WAAA;AAG/C,IAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,oBAAA,CAA+B;AAAA,MACzE,KAAA,EAAO,UAAA,GAAc,KAAA,CAAM,KAAA,GAAiC,MAAA;AAAA,MAC5D,cAAc,UAAA,GACT,KAAA,CAAM,YAAA,IAAyC,KAChD,EAAC;AAAA,MACL,QAAA,EAAU,UAAA,GACL,KAAA,CAAM,aAAA,GACP;AAAA,KACL,CAAA;AAED,IAAA,MAAM,kBAAA,GAA2BD,OAAA,CAAA,WAAA;AAAA,MAC/B,CAAC,GAAA,KAA4B;AAC3B,QAAA,IAAI,CAAC,UAAA,IAAc,eAAA,IAAmB,SAAS,OAAO,KAAA,CAAM,kBAAkB,UAAA,EAAY;AACxF,UAAC,KAAA,CAAM,aAAA,CAAsC,GAAA,IAAO,EAAE,CAAA;AAAA,QACxD;AAAA,MACF,CAAA;AAAA,MACA,CAAC,YAAY,KAAK;AAAA,KACpB;AAGA,IAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,oBAAA,CAEpC;AAAA,MACA,KAAA,EAAO,CAAC,UAAA,GAAc,KAAA,CAAM,KAAA,GAA+B,MAAA;AAAA,MAC3D,YAAA,EAAc,CAAC,UAAA,GACV,KAAA,CAAM,YAAA,GACP,MAAA;AAAA,MACJ,QAAA,EAAU;AAAA,KACX,CAAA;AAED,IAAA,MAAM,cAAA,GAAuBA,gBAAQ,MAAM;AACzC,MAAA,IAAI,UAAA,EAAY;AACd,QAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,cAAc,CAAA,GAAI,iBAAiB,EAAC;AAAA,MAC3D;AACA,MAAA,OAAO,WAAA,GAAc,CAAC,WAAW,CAAA,GAAI,EAAC;AAAA,IACxC,CAAA,EAAG,CAAC,UAAA,EAAY,cAAA,EAAgB,WAAW,CAAC,CAAA;AAE5C,IAAA,MAAM,UAAA,GAAmBA,OAAA,CAAA,WAAA;AAAA,MACvB,CAAC,SAAA,KAAsB;AACrB,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,MAAM,UAAU,KAAA,CAAM,OAAA,CAAQ,cAAc,CAAA,GAAI,iBAAiB,EAAC;AAClE,UAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,QAAA,CAAS,SAAS,IACnC,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,MAAM,SAAS,CAAA,GACrC,CAAC,GAAG,SAAS,SAAS,CAAA;AAC1B,UAAA,iBAAA,CAAkB,IAAI,CAAA;AAAA,QACxB,CAAA,MAAO;AACL,UAAA,MAAM,gBAAgB,WAAA,KAAgB,SAAA;AACtC,UAAA,IAAI,aAAA,EAAe;AACjB,YAAA,IAAI,WAAA,EAAa;AACf,cAAA,cAAA,CAAe,EAAE,CAAA;AAAA,YACnB;AAAA,UACF,CAAA,MAAO;AACL,YAAA,cAAA,CAAe,SAAS,CAAA;AAAA,UAC1B;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA;AAAA,QACE,UAAA;AAAA,QACA,cAAA;AAAA,QACA,iBAAA;AAAA,QACA,WAAA;AAAA,QACA,cAAA;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,MAAM,eAAA,GAAwBA,eAA8B,IAAI,CAAA;AAChE,IAAA,MAAM,SAAA,GAAY,YAAA,CAAa,GAAA,EAAK,eAAe,CAAA;AAEnD,IAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,OAAA;AAAA,MACzB,OAAO;AAAA,QACL,IAAA;AAAA,QACA,OAAA;AAAA,QACA,WAAA;AAAA,QACA,UAAA;AAAA,QACA,cAAA;AAAA,QACA,UAAA;AAAA,QACA,OAAA,EAAS;AAAA,OACX,CAAA;AAAA,MACA,CAAC,IAAA,EAAM,OAAA,EAAS,WAAA,EAAa,UAAA,EAAY,gBAAgB,UAAU;AAAA,KACrE;AAEA,IAAA,uBACElI,GAAAA,CAAC,gBAAA,CAAiB,UAAjB,EAA0B,KAAA,EAAO,cAChC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,SAAA;AAAA,QACL,SAAA,EAAW,UAAA;AAAA,UACT,cAAA;AAAA,UACA,iBAAiB,OAAO,CAAA,CAAA;AAAA,UACxB;AAAA,SACF;AAAA,QACC,GAAG,QAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,WAAA;AAKrB,IAAM,aAAA,GAAsBkI,OAAA,CAAA,UAAA;AAAA,EACjC,SAASE,cAAAA,CACP,EAAE,KAAA,EAAO,UAAA,EAAY,gBAAA,GAAmB,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,GAAG,SAAA,EAAU,EACjF,GAAA,EACA;AACA,IAAA,MAAM,EAAE,cAAA,EAAgB,UAAA,EAAY,cAAA,KAAmB,mBAAA,EAAoB;AAC3E,IAAA,MAAM,MAAA,GAAS,cAAA,CAAe,QAAA,CAAS,KAAK,CAAA;AAC5C,IAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,gBAAA,IAAoB,cAAc,CAAA;AAE7D,IAAA,MAAM,cAAoBF,OAAA,CAAA,KAAA,EAAM;AAChC,IAAA,MAAM,SAAA,GAAY,CAAA,qBAAA,EAAwB,KAAK,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA;AAC9D,IAAA,MAAM,OAAA,GAAU,CAAA,mBAAA,EAAsB,KAAK,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA;AAE1D,IAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,OAAA;AAAA,MACzB,OAAO;AAAA,QACL,KAAA;AAAA,QACA,MAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA,CAAC,KAAA,EAAO,MAAA,EAAQ,UAAA,EAAY,WAAW,OAAO;AAAA,KAChD;AAEA,IAAA,uBACElI,GAAAA,CAAC,oBAAA,CAAqB,UAArB,EAA8B,KAAA,EAAO,cACpC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA,CAAW,oBAAA,EAAsB,SAAS,CAAA;AAAA,QACrD,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,QAC9B,eAAA,EAAe,aAAa,EAAA,GAAK,MAAA;AAAA,QAChC,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,gBAAA;AAKrB,IAAM,eAAA,GAAwBkI,OAAA,CAAA,UAAA,CAGnC,SAASG,gBAAAA,CACT,EAAE,KAAA,GAAQ,CAAA,EAAG,SAAA,EAAW,QAAA,EAAU,GAAG,SAAA,EAAU,EAC/C,GAAA,EACA;AACA,EAAA,MAAM,UAAA,GAAa,IAAI,KAAK,CAAA,CAAA;AAE5B,EAAA,uBACErI,GAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,UAAA,CAAW,sBAAA,EAAwB,SAAS,CAAA;AAAA,MACtD,GAAG,SAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AAED,eAAA,CAAgB,WAAA,GAAc,kBAAA;AAKvB,IAAM,gBAAA,GAAyBkI,OAAA,CAAA,UAAA,CAGpC,SAASI,iBAAAA,CACT,EAAE,OAAA,GAAU,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,OAAA,EAAS,SAAA,EAAW,GAAG,SAAA,IAC/D,GAAA,EACA;AACA,EAAA,MAAM,EAAE,UAAA,EAAY,OAAA,EAAQ,GAAI,mBAAA,EAAoB;AACpD,EAAA,MAAM,EAAE,KAAA,EAAO,MAAA,EAAQ,YAAY,SAAA,EAAW,OAAA,KAC5C,uBAAA,EAAwB;AAE1B,EAAA,MAAM,WAAA,GAAoBJ,OAAA,CAAA,WAAA;AAAA,IACxB,CAAC,KAAA,KAA+C;AAC9C,MAAA,OAAA,GAAU,KAAK,CAAA;AACf,MAAA,IAAI,KAAA,CAAM,oBAAoB,UAAA,EAAY;AAC1C,MAAA,UAAA,CAAW,KAAK,CAAA;AAAA,IAClB,CAAA;AAAA,IACA,CAAC,OAAA,EAAS,UAAA,EAAY,UAAA,EAAY,KAAK;AAAA,GACzC;AAEA,EAAA,MAAM,aAAA,GAAsBA,OAAA,CAAA,WAAA;AAAA,IAC1B,CAAC,KAAA,KAAkD;AACjD,MAAA,SAAA,GAAY,KAAK,CAAA;AACjB,MAAA,IAAI,MAAM,gBAAA,EAAkB;AAE5B,MAAA,MAAM,SAAS,OAAA,CAAQ,OAAA;AACvB,MAAA,IAAI,CAAC,MAAA,EAAQ;AAEb,MAAA,MAAM,WAAW,KAAA,CAAM,IAAA;AAAA,QACrB,MAAA,CAAO,gBAAA;AAAA,UACL;AAAA;AACF,OACF;AACA,MAAA,MAAM,YAAA,GAAe,QAAA,CAAS,OAAA,CAAQ,KAAA,CAAM,aAAa,CAAA;AACzD,MAAA,IAAI,YAAA,KAAiB,EAAA,IAAM,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG;AAElD,MAAA,IAAI,KAAA,CAAM,QAAQ,WAAA,EAAa;AAC7B,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,MAAM,SAAA,GAAA,CAAa,YAAA,GAAe,CAAA,IAAK,QAAA,CAAS,MAAA;AAChD,QAAA,QAAA,CAAS,SAAS,GAAG,KAAA,EAAM;AAAA,MAC7B,CAAA,MAAA,IAAW,KAAA,CAAM,GAAA,KAAQ,SAAA,EAAW;AAClC,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,MAAM,SAAA,GAAA,CAAa,YAAA,GAAe,CAAA,GAAI,QAAA,CAAS,UAAU,QAAA,CAAS,MAAA;AAClE,QAAA,QAAA,CAAS,SAAS,GAAG,KAAA,EAAM;AAAA,MAC7B,CAAA,MAAA,IAAW,KAAA,CAAM,GAAA,KAAQ,MAAA,EAAQ;AAC/B,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,QAAA,CAAS,CAAC,GAAG,KAAA,EAAM;AAAA,MACrB,CAAA,MAAA,IAAW,KAAA,CAAM,GAAA,KAAQ,KAAA,EAAO;AAC9B,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,QAAA,CAAS,QAAA,CAAS,MAAA,GAAS,CAAC,CAAA,EAAG,KAAA,EAAM;AAAA,MACvC;AAAA,IACF,CAAA;AAAA,IACA,CAAC,WAAW,OAAO;AAAA,GACrB;AAEA,EAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,uBAAA,EAAyB,SAAS,CAAA;AAEpE,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACElI,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,EAAA,EAAI,SAAA;AAAA,QACJ,IAAA,EAAK,QAAA;AAAA,QACL,eAAA,EAAe,MAAA;AAAA,QACf,eAAA,EAAe,OAAA;AAAA,QACf,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,QAC9B,eAAA,EAAe,aAAa,EAAA,GAAK,MAAA;AAAA,QACjC,SAAA,EAAW,cAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QACT,SAAA,EAAW,aAAA;AAAA,QACV,GAAI,SAAA;AAAA,QAEJ;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA,EAAI,SAAA;AAAA,MACJ,IAAA,EAAK,QAAA;AAAA,MACL,eAAA,EAAe,MAAA;AAAA,MACf,eAAA,EAAe,OAAA;AAAA,MACf,QAAA,EAAU,UAAA;AAAA,MACV,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,MAC9B,eAAA,EAAe,aAAa,EAAA,GAAK,MAAA;AAAA,MACjC,SAAA,EAAW,cAAA;AAAA,MACX,OAAA,EAAS,WAAA;AAAA,MACT,SAAA,EAAW,aAAA;AAAA,MACV,GAAG,SAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AAED,gBAAA,CAAiB,WAAA,GAAc,mBAAA;AAKxB,IAAM,gBAAA,GAAyBkI,OAAA,CAAA,UAAA,CAGpC,SAASK,iBAAAA,CAAiB,EAAE,WAAW,QAAA,EAAU,GAAG,SAAA,EAAU,EAAG,GAAA,EAAK;AACtE,EAAA,MAAM,EAAE,MAAA,EAAQ,UAAA,EAAY,SAAA,EAAW,OAAA,KAAY,uBAAA,EAAwB;AAE3E,EAAA,uBACEvI,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA,EAAI,OAAA;AAAA,MACJ,IAAA,EAAK,QAAA;AAAA,MACL,iBAAA,EAAiB,SAAA;AAAA,MACjB,QAAQ,CAAC,MAAA;AAAA,MACT,YAAA,EAAY,SAAS,MAAA,GAAS,QAAA;AAAA,MAC9B,eAAA,EAAe,aAAa,EAAA,GAAK,MAAA;AAAA,MACjC,SAAA,EAAW,UAAA,CAAW,uBAAA,EAAyB,SAAS,CAAA;AAAA,MACvD,GAAG,SAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAuB,QAAA,EAAS;AAAA;AAAA,GACjD;AAEJ,CAAC;AAED,gBAAA,CAAiB,WAAA,GAAc,mBAAA;AAKxB,IAAM,aAAA,GAAsBkI,mBAGjC,SAASM,cAAAA,CAAc,EAAE,SAAA,EAAW,GAAG,SAAA,EAAU,EAAG,GAAA,EAAK;AACzD,EAAA,uBACExI,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,SAAA,EAAW,UAAA,CAAW,oBAAA,EAAsB,SAAS,CAAA;AAAA,MACrD,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAU,OAAA;AAAA,MACT,GAAG,SAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB;AAAA;AAAA,GACpC;AAEJ,CAAC;AAED,aAAA,CAAc,WAAA,GAAc,gBAAA;AAcrB,IAAM,SAAA,GAAY;AACzB,SAAA,CAAU,IAAA,GAAO,aAAA;AACjB,SAAA,CAAU,IAAA,GAAO,aAAA;AACjB,SAAA,CAAU,MAAA,GAAS,eAAA;AACnB,SAAA,CAAU,OAAA,GAAU,gBAAA;AACpB,SAAA,CAAU,OAAA,GAAU,gBAAA;AACpB,SAAA,CAAU,IAAA,GAAO,aAAA;ACjZV,IAAM,WAAA,GAAoByI,sBAAuC,IAAI;AAErE,SAAS,cAAA,GAAmC;AACjD,EAAA,MAAM,OAAA,GAAgBA,mBAAW,WAAW,CAAA;AAC5C,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;AAEA,SAAS,sBAAsB,QAAA,EAA+C;AAC5E,EAAA,IAAI,KAAA;AACJ,EAAMA,OAAA,CAAA,QAAA,CAAS,OAAA,CAAQ,QAAA,EAAU,CAAC,KAAA,KAAU;AAC1C,IAAA,IAAI,KAAA,IAAS,CAAOA,OAAA,CAAA,cAAA,CAAe,KAAK,CAAA,EAAG;AAC3C,IAAA,MAAM,QAAQ,KAAA,CAAM,KAAA;AACpB,IAAA,IACE,KAAA,IACA,OAAO,KAAA,CAAM,KAAA,KAAU,QAAA,IACvB,CAAC,KAAA,CAAM,UAAA,IACP,CAAC,KAAA,CAAM,QAAA,EACP;AACA,MAAA,KAAA,GAAQ,KAAA,CAAM,KAAA;AACd,MAAA;AAAA,IACF;AACA,IAAA,IAAI,KAAA,IAAS,MAAM,QAAA,EAAU;AAC3B,MAAA,KAAA,GAAQ,qBAAA,CAAsB,MAAM,QAA2B,CAAA;AAAA,IACjE;AAAA,EACF,CAAC,CAAA;AACD,EAAA,OAAO,KAAA;AACT;AAKO,IAAM,QAAA,GAAiBA,OAAA,CAAA,UAAA;AAAA,EAC5B,SAASC,SAAAA,CACP;AAAA,IACE,KAAA,EAAO,SAAA;AAAA,IACP,YAAA;AAAA,IACA,aAAA;AAAA,IACA,WAAA,GAAc,YAAA;AAAA,IACd,OAAA,GAAU,MAAA;AAAA,IACV,IAAA,GAAO,IAAA;AAAA,IACP,cAAA,GAAiB,WAAA;AAAA,IACjB,MAAA,GAAS,KAAA;AAAA,IACT,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,cAAA,GAAuBD,gBAAQ,MAAM;AACzC,MAAA,IAAI,YAAA,KAAiB,QAAW,OAAO,YAAA;AACvC,MAAA,OAAO,qBAAA,CAAsB,QAAQ,CAAA,IAAK,EAAA;AAAA,IAC5C,CAAA,EAAG,CAAC,YAAA,EAAc,QAAQ,CAAC,CAAA;AAE3B,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,oBAAA,CAA6B;AAAA,MACrE,KAAA,EAAO,SAAA;AAAA,MACP,YAAA,EAAc,cAAA;AAAA,MACd,QAAA,EAAU;AAAA,KACX,CAAA;AAED,IAAA,MAAM,cAAoBA,OAAA,CAAA,KAAA,EAAM;AAChC,IAAA,MAAM,MAAA,GAAeA,OAAA,CAAA,OAAA;AAAA,MACnB,MAAM,WAAA,CAAY,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAA;AAAA,MAClC,CAAC,WAAW;AAAA,KACd;AAEA,IAAA,MAAM,OAAA,GAAgBA,eAA8B,IAAI,CAAA;AAExD,IAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,OAAA;AAAA,MACzB,OAAO;AAAA,QACL,aAAA;AAAA,QACA,gBAAA;AAAA,QACA,WAAA;AAAA,QACA,OAAA;AAAA,QACA,IAAA;AAAA,QACA,cAAA;AAAA,QACA,MAAA;AAAA,QACA,MAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA;AAAA,QACE,aAAA;AAAA,QACA,gBAAA;AAAA,QACA,WAAA;AAAA,QACA,OAAA;AAAA,QACA,IAAA;AAAA,QACA,cAAA;AAAA,QACA,MAAA;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,uBACEzI,GAAAA,CAAC,WAAA,CAAY,UAAZ,EAAqB,KAAA,EAAO,cAC3B,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA;AAAA,UACT,SAAA;AAAA,UACA,YAAY,WAAW,CAAA,CAAA;AAAA,UACvB,YAAY,OAAO,CAAA,CAAA;AAAA,UACnB,YAAY,IAAI,CAAA,CAAA;AAAA,UAChB;AAAA,SACF;AAAA,QACA,kBAAA,EAAkB,WAAA;AAAA,QACjB,GAAG,QAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,MAAA;AAKhB,IAAM,QAAA,GAAiByI,OAAA,CAAA,UAAA;AAAA,EAC5B,SAASE,SAAAA,CACP,EAAE,YAAA,EAAc,SAAA,EAAW,WAAW,QAAA,EAAU,GAAG,SAAA,EAAU,EAC7D,GAAA,EACA;AACA,IAAA,MAAM,EAAE,WAAA,EAAa,OAAA,EAAQ,GAAI,cAAA,EAAe;AAChD,IAAA,MAAM,SAAA,GAAY,YAAA,CAAa,GAAA,EAAK,OAAO,CAAA;AAE3C,IAAA,uBACE3I,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,SAAA;AAAA,QACL,IAAA,EAAK,SAAA;AAAA,QACL,kBAAA,EAAkB,WAAA;AAAA,QAClB,YAAA,EAAY,SAAA;AAAA,QACZ,kBAAA,EAAkB,WAAA;AAAA,QAClB,SAAA,EAAW,UAAA,CAAW,eAAA,EAAiB,SAAS,CAAA;AAAA,QAC/C,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,WAAA;AAKhB,IAAM,WAAA,GAAoByI,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASG,YAAAA,CACP;AAAA,IACE,KAAA;AAAA,IACA,UAAA,GAAa,KAAA;AAAA,IACb,OAAA,GAAU,KAAA;AAAA,IACV,SAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM;AAAA,MACJ,aAAA;AAAA,MACA,gBAAA;AAAA,MACA,WAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAA,QACE,cAAA,EAAe;AAEnB,IAAA,MAAM,aAAa,aAAA,KAAkB,KAAA;AACrC,IAAA,MAAM,SAAA,GAAY,CAAA,OAAA,EAAU,MAAM,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAC3C,IAAA,MAAM,OAAA,GAAU,CAAA,YAAA,EAAe,MAAM,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAG9C,IAAMH,kBAAU,MAAM;AACpB,MAAA,IAAI,CAAC,aAAA,IAAiB,CAAC,UAAA,EAAY;AACjC,QAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,MACxB;AAAA,IACF,GAAG,CAAC,aAAA,EAAe,KAAA,EAAO,UAAA,EAAY,gBAAgB,CAAC,CAAA;AAEvD,IAAA,MAAM,WAAA,GAAoBA,OAAA,CAAA,WAAA;AAAA,MACxB,CAAC,CAAA,KAA2C;AAC1C,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA;AAAA,QACF;AACA,QAAA,OAAA,GAAU,CAAC,CAAA;AACX,QAAA,IAAI,CAAC,EAAE,gBAAA,EAAkB;AACvB,UAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,QACxB;AAAA,MACF,CAAA;AAAA,MACA,CAAC,UAAA,EAAY,OAAA,EAAS,gBAAA,EAAkB,KAAK;AAAA,KAC/C;AAEA,IAAA,MAAM,aAAA,GAAsBA,OAAA,CAAA,WAAA;AAAA,MAC1B,CAAC,CAAA,KAA8C;AAC7C,QAAA,SAAA,GAAY,CAAC,CAAA;AACb,QAAA,IAAI,EAAE,gBAAA,EAAkB;AAExB,QAAA,MAAM,IAAA,GAAO,CAAA,CAAE,aAAA,CAAc,OAAA,CAAQ,kBAAkB,CAAA;AACvD,QAAA,IAAI,CAAC,IAAA,EAAM;AAEX,QAAA,MAAM,WAAW,KAAA,CAAM,IAAA;AAAA,UACrB,IAAA,CAAK,gBAAA;AAAA,YACH;AAAA;AACF,SACF;AAEA,QAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AAE3B,QAAA,MAAM,YAAA,GAAe,QAAA,CAAS,OAAA,CAAQ,CAAA,CAAE,aAAa,CAAA;AACrD,QAAA,IAAI,iBAAiB,EAAA,EAAI;AAEzB,QAAA,IAAI,SAAA,GAAY,YAAA;AAChB,QAAA,IAAI,UAAA,GAAa,KAAA;AAEjB,QAAA,MAAM,eAAe,WAAA,KAAgB,YAAA;AACrC,QAAA,MAAM,aAAa,WAAA,KAAgB,UAAA;AAEnC,QAAA,QAAQ,EAAE,GAAA;AAAK,UACb,KAAK,YAAA;AACH,YAAA,IAAI,YAAA,EAAc;AAChB,cAAA,SAAA,GAAA,CAAa,YAAA,GAAe,KAAK,QAAA,CAAS,MAAA;AAC1C,cAAA,UAAA,GAAa,IAAA;AAAA,YACf;AACA,YAAA;AAAA,UACF,KAAK,WAAA;AACH,YAAA,IAAI,YAAA,EAAc;AAChB,cAAA,SAAA,GAAA,CAAa,YAAA,GAAe,CAAA,GAAI,QAAA,CAAS,MAAA,IAAU,QAAA,CAAS,MAAA;AAC5D,cAAA,UAAA,GAAa,IAAA;AAAA,YACf;AACA,YAAA;AAAA,UACF,KAAK,WAAA;AACH,YAAA,IAAI,UAAA,EAAY;AACd,cAAA,SAAA,GAAA,CAAa,YAAA,GAAe,KAAK,QAAA,CAAS,MAAA;AAC1C,cAAA,UAAA,GAAa,IAAA;AAAA,YACf;AACA,YAAA;AAAA,UACF,KAAK,SAAA;AACH,YAAA,IAAI,UAAA,EAAY;AACd,cAAA,SAAA,GAAA,CAAa,YAAA,GAAe,CAAA,GAAI,QAAA,CAAS,MAAA,IAAU,QAAA,CAAS,MAAA;AAC5D,cAAA,UAAA,GAAa,IAAA;AAAA,YACf;AACA,YAAA;AAAA,UACF,KAAK,MAAA;AACH,YAAA,SAAA,GAAY,CAAA;AACZ,YAAA,UAAA,GAAa,IAAA;AACb,YAAA;AAAA,UACF,KAAK,KAAA;AACH,YAAA,SAAA,GAAY,SAAS,MAAA,GAAS,CAAA;AAC9B,YAAA,UAAA,GAAa,IAAA;AACb,YAAA;AAAA,UACF,KAAK,OAAA;AAAA,UACL,KAAK,GAAA;AACH,YAAA,IAAI,CAAC,UAAA,EAAY;AACf,cAAA,CAAA,CAAE,cAAA,EAAe;AACjB,cAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,YACxB;AACA,YAAA;AAAA,UACF;AACE,YAAA;AAAA;AAGJ,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,MAAM,aAAA,GAAgB,SAAS,SAAS,CAAA;AACxC,UAAA,IAAI,aAAA,EAAe;AACjB,YAAA,aAAA,CAAc,KAAA,EAAM;AACpB,YAAA,IAAI,mBAAmB,WAAA,EAAa;AAClC,cAAA,MAAM,WAAA,GAAc,aAAA,CAAc,YAAA,CAAa,YAAY,CAAA;AAC3D,cAAA,IAAI,WAAA,EAAa;AACf,gBAAA,gBAAA,CAAiB,WAAW,CAAA;AAAA,cAC9B;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA;AAAA,QACE,SAAA;AAAA,QACA,WAAA;AAAA,QACA,cAAA;AAAA,QACA,UAAA;AAAA,QACA,gBAAA;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,kBAAA,EAAoB,SAAS,CAAA;AAE/D,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEzI,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,EAAA,EAAI,SAAA;AAAA,UACJ,IAAA,EAAK,KAAA;AAAA,UACL,eAAA,EAAe,UAAA;AAAA,UACf,eAAA,EAAe,OAAA;AAAA,UACf,QAAA,EAAU,aAAa,CAAA,GAAI,EAAA;AAAA,UAC3B,YAAA,EAAY,aAAa,QAAA,GAAW,UAAA;AAAA,UACpC,eAAA,EAAe,aAAa,EAAA,GAAK,MAAA;AAAA,UACjC,YAAA,EAAY,KAAA;AAAA,UACZ,kBAAA,EAAkB,WAAA;AAAA,UAClB,SAAA,EAAW,cAAA;AAAA,UACX,OAAA,EAAS,WAAA;AAAA,UACT,SAAA,EAAW,aAAA;AAAA,UACV,GAAI,SAAA;AAAA,UAEJ;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,EAAA,EAAI,SAAA;AAAA,QACJ,IAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAK,KAAA;AAAA,QACL,eAAA,EAAe,UAAA;AAAA,QACf,eAAA,EAAe,OAAA;AAAA,QACf,QAAA,EAAU,aAAa,CAAA,GAAI,EAAA;AAAA,QAC3B,QAAA,EAAU,UAAA;AAAA,QACV,YAAA,EAAY,aAAa,QAAA,GAAW,UAAA;AAAA,QACpC,eAAA,EAAe,aAAa,EAAA,GAAK,MAAA;AAAA,QACjC,YAAA,EAAY,KAAA;AAAA,QACZ,kBAAA,EAAkB,WAAA;AAAA,QAClB,SAAA,EAAW,cAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QACT,SAAA,EAAW,aAAA;AAAA,QACV,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,cAAA;AAKnB,IAAM,WAAA,GAAoByI,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASI,aAAY,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,SAAA,EAAU,EAAG,GAAA,EAAK;AACtE,IAAA,MAAM,EAAE,aAAA,EAAe,WAAA,EAAa,MAAA,EAAQ,MAAA,KAAW,cAAA,EAAe;AAEtE,IAAA,MAAM,aAAa,aAAA,KAAkB,KAAA;AACrC,IAAA,MAAM,SAAA,GAAY,CAAA,OAAA,EAAU,MAAM,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAC3C,IAAA,MAAM,OAAA,GAAU,CAAA,YAAA,EAAe,MAAM,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAE9C,IAAA,IAAI,MAAA,IAAU,CAAC,UAAA,EAAY;AACzB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,uBACE7I,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,EAAA,EAAI,OAAA;AAAA,QACJ,IAAA,EAAK,UAAA;AAAA,QACL,iBAAA,EAAiB,SAAA;AAAA,QACjB,QAAA,EAAU,CAAA;AAAA,QACV,QAAQ,CAAC,UAAA;AAAA,QACT,YAAA,EAAY,aAAa,QAAA,GAAW,UAAA;AAAA,QACpC,kBAAA,EAAkB,WAAA;AAAA,QAClB,SAAA,EAAW,UAAA,CAAW,kBAAA,EAAoB,SAAS,CAAA;AAAA,QAClD,GAAG,SAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,cAAA;AAKnB,IAAM,aAAA,GAAsByI,mBAGjC,SAASK,cAAAA,CAAc,EAAE,SAAA,EAAW,GAAG,SAAA,EAAU,EAAG,GAAA,EAAK;AACzD,EAAA,uBACE9I,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAW,UAAA,CAAW,oBAAA,EAAsB,SAAS,CAAA;AAAA,MACpD,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AAED,aAAA,CAAc,WAAA,GAAc,gBAAA;AAKrB,IAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU;AAAA,EAC1C,IAAA,EAAM,QAAA;AAAA,EACN,IAAA,EAAM,QAAA;AAAA,EACN,OAAA,EAAS,WAAA;AAAA,EACT,OAAA,EAAS,WAAA;AAAA,EACT,SAAA,EAAW;AACb,CAAC;ACxXD,SAAS,YAAY,IAAA,EAA+B;AAClD,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA,EAAU,OAAO,IAAA;AACrC,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA,EAAU,OAAO,OAAO,IAAI,CAAA;AAChD,EAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,UAAU,OAAO,EAAA;AAC9C,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG,OAAO,KAAK,GAAA,CAAI,WAAW,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA;AAC7D,EAAA,IAAU+I,OAAA,CAAA,cAAA,CAAe,IAAI,CAAA,IAAM,IAAA,CAAK,OAAe,QAAA,EAAU;AAC/D,IAAA,OAAO,WAAA,CAAa,IAAA,CAAK,KAAA,CAAc,QAAQ,CAAA;AAAA,EACjD;AACA,EAAA,OAAO,EAAA;AACT;AAEA,SAAS,2BAA2B,QAAA,EAAgD;AAClF,EAAA,MAAM,GAAA,uBAAU,GAAA,EAAoB;AACpC,EAAA,SAAS,KAAK,IAAA,EAAuB;AACnC,IAAMA,OAAA,CAAA,QAAA,CAAS,OAAA,CAAQ,IAAA,EAAM,CAAC,KAAA,KAAU;AACtC,MAAA,IAAI,CAAOA,OAAA,CAAA,cAAA,CAAe,KAAK,CAAA,EAAG;AAClC,MAAA,MAAM,QAAQ,KAAA,CAAM,KAAA;AACpB,MAAA,IAAI,SAAS,OAAA,IAAW,KAAA,IAAS,OAAO,KAAA,CAAM,UAAU,QAAA,EAAU;AAChE,QAAA,MAAM,IAAA,GAAO,KAAA,CAAM,SAAA,IAAa,WAAA,CAAY,MAAM,QAAQ,CAAA;AAC1D,QAAA,IAAI,IAAA,EAAM;AACR,UAAA,GAAA,CAAI,GAAA,CAAI,KAAA,CAAM,KAAA,EAAO,IAAI,CAAA;AAAA,QAC3B;AAAA,MACF;AACA,MAAA,IAAI,KAAA,IAAS,MAAM,QAAA,EAAU;AAC3B,QAAA,IAAA,CAAK,MAAM,QAAQ,CAAA;AAAA,MACrB;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACA,EAAA,IAAA,CAAK,QAAQ,CAAA;AACb,EAAA,OAAO,GAAA;AACT;AAEA,IAAM,aAAA,GAAsBA,sBAA4C,IAAI,CAAA;AAErE,SAAS,gBAAA,GAA+E;AAC7F,EAAA,MAAM,OAAA,GAAgBA,mBAAW,aAAa,CAAA;AAC9C,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;AAMO,IAAM,UAAA,GAAmBA,OAAA,CAAA,UAAA;AAAA,EAC9B,SAASC,WAAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AAC9B,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM,UAAA,GAAa,KAAA,CAAM,UAAA,IAAc,SAAA,EAAW,QAAA,IAAY,KAAA;AAC9D,IAAA,MAAM,SAAA,GAAY,KAAA,CAAM,SAAA,IAAa,SAAA,EAAW,KAAA,IAAS,KAAA;AACzD,IAAA,MAAM,UAAA,GAAa,KAAA,CAAM,UAAA,IAAc,SAAA,EAAW,QAAA,IAAY,KAAA;AAC9D,IAAA,MAAM,IAAA,GAAO,KAAA,CAAM,IAAA,IAAQ,SAAA,EAAW,IAAA;AACtC,IAAA,MAAM,eAAA,GAAkB;AAAA,MACtB,MAAM,kBAAkB,CAAA;AAAA,MACxB,SAAA,EAAW,KAAA,IAAS,SAAA,EAAW,eAAA,GAAkB,UAAU,cAAA,GAAiB,IAAA;AAAA,MAC5E,SAAA,EAAW,aAAA,GAAgB,SAAA,CAAU,YAAA,GAAe;AAAA,MAEnD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAEhB,IAAA,MAAM;AAAA,MACJ,KAAA,EAAO,SAAA;AAAA,MACP,YAAA;AAAA,MACA,aAAA;AAAA,MACA,MAAA,EAAQ,UAAA;AAAA,MACR,WAAA,GAAc,KAAA;AAAA,MACd,YAAA;AAAA,YACAC,MAAA,GAAO,IAAA;AAAA,MACP,OAAA,GAAU,SAAA;AAAA,MACV,WAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA,EAAY,gBAAA;AAAA,MACZ,SAAA,EAAW,eAAA;AAAA,MACX,UAAA,EAAY,gBAAA;AAAA,MACZ,IAAA,EAAM,YAAA;AAAA,MACN,kBAAA,EAAoB,YAAA;AAAA,MACpB,GAAG;AAAA,KACL,GAAI,KAAA;AAGJ,IAAA,MAAM,CAAC,KAAA,EAAO,aAAa,CAAA,GAAI,oBAAA,CAAyC;AAAA,MACtE,KAAA,EAAO,SAAA;AAAA,MACP,YAAA;AAAA,MACA,QAAA,EAAU,CAAC,IAAA,KAAS;AAClB,QAAA,IAAI,IAAA,KAAS,UAAa,aAAA,EAAe;AACvC,UAAA,aAAA,CAAc,IAAI,CAAA;AAAA,QACpB;AAAA,MACF;AAAA,KACD,CAAA;AAGD,IAAA,MAAM,CAAC,MAAA,EAAQ,cAAc,CAAA,GAAI,oBAAA,CAA8B;AAAA,MAC7D,KAAA,EAAO,UAAA;AAAA,MACP,YAAA,EAAc,WAAA;AAAA,MACd,QAAA,EAAU;AAAA,KACX,CAAA;AAED,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAUF,iBAAwB,IAAI,CAAA;AAClF,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAUA,iBAA8B,MAAM;AAC5E,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,OAAO,2BAA2B,QAAQ,CAAA;AAAA,MAC5C;AACA,MAAA,2BAAW,GAAA,EAAI;AAAA,IACjB,CAAC,CAAA;AACD,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAUA,iBAAmB,MAAM;AAC/D,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,OAAO,MAAM,IAAA,CAAK,0BAAA,CAA2B,QAAQ,CAAA,CAAE,MAAM,CAAA;AAAA,MAC/D;AACA,MAAA,OAAO,EAAC;AAAA,IACV,CAAC,CAAA;AACD,IAAA,MAAM,CAAC,eAAe,gBAAgB,CAAA,GAAUA,iBAAsB,sBAAM,IAAI,KAAK,CAAA;AAErF,IAAA,MAAM,YAAkBA,OAAA,CAAA,KAAA,EAAM;AAC9B,IAAA,MAAM,YAAkBA,OAAA,CAAA,KAAA,EAAM;AAC9B,IAAA,MAAM,UAAA,GAAmBA,eAAiC,IAAI,CAAA;AAC9D,IAAA,MAAM,UAAA,GAAmBA,eAA8B,IAAI,CAAA;AAG3D,IAAA,MAAM,EAAE,IAAA,EAAM,cAAA,EAAgB,OAAA,EAAS,eAAA,KAAoBtD,WAAAA,CAAY;AAAA,MACrE,IAAA,EAAM,MAAA;AAAA,MACN,YAAA,EAAc,CAAC,IAAA,KAAS;AACtB,QAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,MAAA,EAAQ;AACtB,QAAA,cAAA,CAAe,IAAI,CAAA;AAAA,MACrB,CAAA;AAAA,MACA,SAAA,EAAW,cAAA;AAAA,MACX,oBAAA,EAAsBC,UAAAA;AAAA,MACtB,UAAA,EAAY;AAAA,QACVC,OAAO,CAAC,CAAA;AAAA,QACRC,IAAAA,CAAK,EAAE,OAAA,EAAS,CAAA,EAAG,CAAA;AAAA,QACnBC,KAAAA,CAAM,EAAE,OAAA,EAAS,CAAA,EAAG,CAAA;AAAA,QACpBqD,IAAA,CAAa;AAAA,UACX,KAAA,CAAM,EAAE,KAAA,EAAO,QAAA,EAAS,EAAG;AACzB,YAAA,MAAA,CAAO,MAAA,CAAO,QAAA,CAAS,QAAA,CAAS,KAAA,EAAO;AAAA,cACrC,KAAA,EAAO,CAAA,EAAG,KAAA,CAAM,SAAA,CAAU,KAAK,CAAA,EAAA,CAAA;AAAA,cAC/B,QAAA,EAAU,CAAA,EAAG,KAAA,CAAM,SAAA,CAAU,KAAK,CAAA,EAAA;AAAA,aACnC,CAAA;AAAA,UACH;AAAA,SACD;AAAA;AACH,KACD,CAAA;AAED,IAAA,MAAM,OAAA,GAAUnD,WAAW,eAAA,EAAiB;AAAA,MAC1C,OAAA,EAAS,MAAA;AAAA,MACT,YAAA,EAAc,IAAA;AAAA,MACd,SAAA,EAAW;AAAA,KACZ,CAAA;AAED,IAAA,MAAM,EAAE,iBAAA,EAAmB,gBAAA,KAAqBE,eAAAA,CAAgB,CAAC,OAAO,CAAC,CAAA;AAGzE,IAAA,MAAM,YAAA,GAAqB8C,OAAA,CAAA,WAAA;AAAA,MACzB,CAAC,OAAA,EAAiB,SAAA,EAAmB,YAAA,KAA2B;AAC9D,QAAA,aAAA,CAAc,CAAC,IAAA,KAAS;AACtB,UAAA,IAAI,IAAA,CAAK,GAAA,CAAI,OAAO,CAAA,KAAM,WAAW,OAAO,IAAA;AAC5C,UAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,IAAI,CAAA;AACzB,UAAA,IAAA,CAAK,GAAA,CAAI,SAAS,SAAS,CAAA;AAC3B,UAAA,OAAO,IAAA;AAAA,QACT,CAAC,CAAA;AACD,QAAA,YAAA,CAAa,CAAC,IAAA,KAAU,IAAA,CAAK,QAAA,CAAS,OAAO,CAAA,GAAI,IAAA,GAAO,CAAC,GAAG,IAAA,EAAM,OAAO,CAAE,CAAA;AAC3E,QAAA,IAAI,YAAA,EAAc;AAChB,UAAA,gBAAA,CAAiB,CAAC,IAAA,KAAS;AACzB,YAAA,IAAI,IAAA,CAAK,GAAA,CAAI,OAAO,CAAA,EAAG,OAAO,IAAA;AAC9B,YAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,IAAI,CAAA;AACzB,YAAA,IAAA,CAAK,IAAI,OAAO,CAAA;AAChB,YAAA,OAAO,IAAA;AAAA,UACT,CAAC,CAAA;AAAA,QACH;AACA,QAAA,OAAO,MAAM;AAAA,QAEb,CAAA;AAAA,MACF,CAAA;AAAA,MACA;AAAC,KACH;AAGA,IAAMA,kBAAU,MAAM;AACpB,MAAA,IAAI,OAAA,IAAW,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AACjC,QAAA,MAAM,MAAA,uBAAa,GAAA,EAAoB;AACvC,QAAA,MAAM,UAAoB,EAAC;AAC3B,QAAA,MAAM,WAAA,uBAAkB,GAAA,EAAY;AACpC,QAAA,KAAA,MAAW,OAAO,OAAA,EAAS;AACzB,UAAA,MAAA,CAAO,GAAA,CAAI,GAAA,CAAI,KAAA,EAAO,GAAA,CAAI,KAAK,CAAA;AAC/B,UAAA,OAAA,CAAQ,IAAA,CAAK,IAAI,KAAK,CAAA;AACtB,UAAA,IAAI,GAAA,CAAI,QAAA,EAAU,WAAA,CAAY,GAAA,CAAI,IAAI,KAAK,CAAA;AAAA,QAC7C;AACA,QAAA,aAAA,CAAc,MAAM,CAAA;AACpB,QAAA,YAAA,CAAa,OAAO,CAAA;AACpB,QAAA,gBAAA,CAAiB,WAAW,CAAA;AAAA,MAC9B;AAAA,IACF,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,IAAA,MAAM,gBAAgB,KAAA,GAAQ,UAAA,CAAW,GAAA,CAAI,KAAK,KAAK,IAAA,GAAO,IAAA;AAE9D,IAAA,MAAM,QAAA,GAAiBA,OAAA,CAAA,WAAA;AAAA,MACrB,CAAC,OAAA,KAAoB;AACnB,QAAA,aAAA,CAAc,OAAO,CAAA;AAAA,MACvB,CAAA;AAAA,MACA,CAAC,aAAa;AAAA,KAChB;AAEA,IAAA,MAAM,SAAA,GAAkBA,OAAA,CAAA,WAAA;AAAA,MACtB,CAAC,QAAA,KAAsB;AACrB,QAAA,cAAA,CAAe,QAAQ,CAAA;AACvB,QAAA,IAAI,YAAY,KAAA,EAAO;AACrB,UAAA,mBAAA,CAAoB,KAAK,CAAA;AAAA,QAC3B;AAAA,MACF,CAAA;AAAA,MACA,CAAC,gBAAgB,KAAK;AAAA,KACxB;AAEA,IAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,OAAA;AAAA,MACzB,OAAO;AAAA,QACL,KAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAA,EAAQ,QAAQ,MAAM,CAAA;AAAA,QACtB,SAAA;AAAA,QACA,gBAAA;AAAA,QACA,mBAAA;AAAA,cACAE,MAAA;AAAA,QACA,OAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA;AAAA,QACA,UAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA,UAAA;AAAA,QACA,UAAA;AAAA,QACA,aAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA;AAAA,QACA,aAAA;AAAA,QACA,eAAA;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,cAAc,IAAA,CAAK,YAAA;AAAA,UACnB,aAAa,IAAA,CAAK;AAAA,SACpB;AAAA,QACA,cAAA;AAAA,QACA,iBAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA;AAAA,QACE,KAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAA;AAAA,QACA,SAAA;AAAA,QACA,gBAAA;AAAA,QACAA,MAAA;AAAA,QACA,OAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA;AAAA,QACA,UAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA,aAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA;AAAA,QACA,aAAA;AAAA,QACA,eAAA;AAAA,QACA,IAAA,CAAK,YAAA;AAAA,QACL,IAAA,CAAK,WAAA;AAAA,QACL,cAAA;AAAA,QACA,iBAAA;AAAA,QACA;AAAA;AACF,KACF;AAGA,IAAA,MAAM,gBAAgB,MAAM;AAC1B,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,OAAO,QAAA;AAAA,MACT;AACA,MAAA,IAAI,OAAA,IAAW,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AACjC,QAAA,uBACErG,IAAAA,CAAA2C,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA3C,KAAC,aAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAA5C,GAAAA,CAAC,WAAA,EAAA,EAAY,WAAA,EAAa,WAAA,IAAe,MAAA,EAAW,CAAA;AAAA,4BACpDA,IAAC,UAAA,EAAA,EAAW;AAAA,WAAA,EACd,CAAA;AAAA,0BACAA,GAAAA,CAAC,YAAA,EAAA,EACC,0BAAAA,GAAAA,CAAC,aAAA,EAAA,EACE,kBAAQ,GAAA,CAAI,CAAC,wBACZ4C,IAAAA,CAAC,cAA2B,KAAA,EAAO,GAAA,CAAI,OAAO,UAAA,EAAY,GAAA,CAAI,YAAY,MAAA,EACxE,QAAA,EAAA;AAAA,4BAAA5C,GAAAA,CAAC,cAAA,EAAA,EAAgB,QAAA,EAAA,GAAA,CAAI,KAAA,EAAM,CAAA;AAAA,4BAC3BA,IAAC,mBAAA,EAAA,EAAoB;AAAA,WAAA,EAAA,EAFN,GAAA,CAAI,KAGrB,CACD,CAAA,EACH,CAAA,EACF;AAAA,SAAA,EACF,CAAA;AAAA,MAEJ;AACA,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAEA,IAAA,uBACEA,GAAAA,CAAC,aAAA,CAAc,UAAd,EAAuB,KAAA,EAAO,cAC7B,QAAA,kBAAA4C,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA,CAAW,WAAA,EAAa,SAAS,CAAA;AAAA,QAC5C,eAAA,EAAe,aAAa,MAAA,GAAS,MAAA;AAAA,QACrC,cAAA,EAAc,YAAY,MAAA,GAAS,MAAA;AAAA,QACnC,WAAA,EAAWqG,MAAA;AAAA,QACX,cAAA,EAAc,OAAA;AAAA,QACb,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,aAAA,EAAc;AAAA,UACd,wBACCjJ,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,IAAA;AAAA,cACA,OAAO,KAAA,IAAS,EAAA;AAAA,cAChB,QAAA,EAAU,UAAA;AAAA,cACV,QAAA,EAAU,UAAA;AAAA,cACV,aAAA,EAAY;AAAA;AAAA;AACd;AAAA;AAAA,KAEJ,EACF,CAAA;AAAA,EAEJ;AACF;AAMO,IAAM,aAAA,GAAsB+I,OAAA,CAAA,UAAA;AAAA,EACjC,SAASI,cAAAA,CAAc,KAAA,EAAO,YAAA,EAAc;AAC1C,IAAA,MAAM,MAAM,gBAAA,EAAiB;AAC7B,IAAA,MAAM,EAAE,UAAU,KAAA,EAAO,SAAA,EAAW,UAAU,OAAA,EAAS,SAAA,EAAW,GAAG,IAAA,EAAK,GAAI,KAAA;AAE9E,IAAA,MAAM,SAAA,GAAY,YAAA,CAAa,GAAA,CAAI,UAAA,EAAY,CAAC,IAAA,KAA6B;AAC3E,MAAA,GAAA,CAAI,IAAA,CAAK,aAAa,IAAI,CAAA;AAC1B,MAAA,IAAI,OAAO,iBAAiB,UAAA,EAAY;AACtC,QAAA,YAAA,CAAa,IAAgC,CAAA;AAAA,MAC/C,WAAW,YAAA,EAAc;AACvB,QAAC,aAAkE,OAAA,GAAU,IAAA;AAAA,MAC/E;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA2C;AAC9D,MAAA,IAAI,IAAI,UAAA,EAAY;AACpB,MAAA,GAAA,CAAI,SAAA,CAAU,CAAC,GAAA,CAAI,MAAM,CAAA;AACzB,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAGA,IAAA,MAAM,eAAA,GAAwBJ,eAAO,EAAE,CAAA;AACvC,IAAA,MAAM,gBAAA,GAAyBA,eAA6C,IAAI,CAAA;AAGhF,IAAMA,kBAAU,MAAM;AACpB,MAAA,OAAO,MAAM;AACX,QAAA,IAAI,iBAAiB,OAAA,EAAS;AAC5B,UAAA,YAAA,CAAa,iBAAiB,OAAO,CAAA;AACrC,UAAA,gBAAA,CAAiB,OAAA,GAAU,IAAA;AAAA,QAC7B;AAAA,MACF,CAAA;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,QAAA,GAAW,GAAA;AAEjB,IAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAA8C;AACnE,MAAA,IAAI,IAAI,UAAA,EAAY;AAEpB,MAAA,MAAM,WAAA,GAAc,QAAA,CAAS,SAAA,CAAU,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,QAAA,CAAS,aAAA,CAAc,GAAA,CAAI,CAAC,CAAC,CAAA;AAEnF,MAAA,IAAI,CAAA,CAAE,QAAQ,WAAA,EAAa;AACzB,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,IAAI,CAAC,IAAI,MAAA,EAAQ;AACf,UAAA,GAAA,CAAI,UAAU,IAAI,CAAA;AAAA,QACpB,CAAA,MAAA,IAAW,WAAA,CAAY,MAAA,GAAS,CAAA,EAAG;AACjC,UAAA,MAAM,eAAe,GAAA,CAAI,gBAAA,GAAmB,YAAY,OAAA,CAAQ,GAAA,CAAI,gBAAgB,CAAA,GAAI,EAAA;AACxF,UAAA,MAAM,UAAU,YAAA,GAAe,WAAA,CAAY,MAAA,GAAS,CAAA,GAAI,eAAe,CAAA,GAAI,CAAA;AAC3E,UAAA,GAAA,CAAI,mBAAA,CAAoB,WAAA,CAAY,OAAO,CAAA,IAAK,IAAI,CAAA;AAAA,QACtD;AAAA,MACF,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,SAAA,EAAW;AAC9B,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,IAAI,CAAC,IAAI,MAAA,EAAQ;AACf,UAAA,GAAA,CAAI,UAAU,IAAI,CAAA;AAAA,QACpB,CAAA,MAAA,IAAW,WAAA,CAAY,MAAA,GAAS,CAAA,EAAG;AACjC,UAAA,MAAM,eAAe,GAAA,CAAI,gBAAA,GAAmB,YAAY,OAAA,CAAQ,GAAA,CAAI,gBAAgB,CAAA,GAAI,EAAA;AACxF,UAAA,MAAM,UAAU,YAAA,GAAe,CAAA,GAAI,YAAA,GAAe,CAAA,GAAI,YAAY,MAAA,GAAS,CAAA;AAC3E,UAAA,GAAA,CAAI,mBAAA,CAAoB,WAAA,CAAY,OAAO,CAAA,IAAK,IAAI,CAAA;AAAA,QACtD;AAAA,MACF,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,MAAA,IAAU,IAAI,MAAA,EAAQ;AACzC,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,UAAA,GAAA,CAAI,mBAAA,CAAoB,WAAA,CAAY,CAAC,CAAA,IAAK,IAAI,CAAA;AAAA,QAChD;AAAA,MACF,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,KAAA,IAAS,IAAI,MAAA,EAAQ;AACxC,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,UAAA,GAAA,CAAI,oBAAoB,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,KAAK,IAAI,CAAA;AAAA,QACrE;AAAA,MACF,WAAW,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AAC7C,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,IAAI,CAAC,IAAI,MAAA,EAAQ;AACf,UAAA,GAAA,CAAI,UAAU,IAAI,CAAA;AAAA,QACpB,CAAA,MAAO;AACL,UAAA,IAAI,GAAA,CAAI,oBAAoB,CAAC,QAAA,CAAS,cAAc,GAAA,CAAI,GAAA,CAAI,gBAAgB,CAAA,EAAG;AAC7E,YAAA,GAAA,CAAI,QAAA,CAAS,IAAI,gBAAgB,CAAA;AAAA,UACnC;AACA,UAAA,GAAA,CAAI,UAAU,KAAK,CAAA;AAAA,QACrB;AAAA,MACF,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,QAAA,IAAY,IAAI,MAAA,EAAQ;AAC3C,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,GAAA,CAAI,UAAU,KAAK,CAAA;AAAA,MACrB,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,CAAI,MAAA,KAAW,CAAA,IAAK,CAAC,CAAA,CAAE,OAAA,IAAW,CAAC,CAAA,CAAE,OAAA,IAAW,CAAC,EAAE,MAAA,EAAQ;AAEtE,QAAA,IAAI,iBAAiB,OAAA,EAAS;AAC5B,UAAA,YAAA,CAAa,iBAAiB,OAAO,CAAA;AACrC,UAAA,gBAAA,CAAiB,OAAA,GAAU,IAAA;AAAA,QAC7B;AACA,QAAA,eAAA,CAAgB,OAAA,IAAW,CAAA,CAAE,GAAA,CAAI,WAAA,EAAY;AAC7C,QAAA,gBAAA,CAAiB,OAAA,GAAU,WAAW,MAAM;AAC1C,UAAA,eAAA,CAAgB,OAAA,GAAU,EAAA;AAC1B,UAAA,gBAAA,CAAiB,OAAA,GAAU,IAAA;AAAA,QAC7B,GAAG,GAAG,CAAA;AAEN,QAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,IAAA,CAAK,CAAC,GAAA,KAAQ;AACtC,UAAA,MAAM,QAAQ,QAAA,CAAS,UAAA,CAAW,IAAI,GAAG,CAAA,EAAG,aAAY,IAAK,EAAA;AAC7D,UAAA,OAAO,KAAA,CAAM,UAAA,CAAW,eAAA,CAAgB,OAAO,CAAA;AAAA,QACjD,CAAC,CAAA;AAED,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,IAAI,CAAC,IAAI,MAAA,EAAQ;AACf,YAAA,GAAA,CAAI,SAAS,KAAK,CAAA;AAAA,UACpB;AACA,UAAA,GAAA,CAAI,oBAAoB,KAAK,CAAA;AAAA,QAC/B;AAAA,MACF;AAEA,MAAA,SAAA,GAAY,CAAC,CAAA;AAAA,IACf,CAAA;AAEA,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,oBAAA;AAAA,MACA,CAAA,oBAAA,EAAuB,IAAI,OAAO,CAAA,CAAA;AAAA,MAClC,CAAA,oBAAA,EAAuB,IAAI,IAAI,CAAA,CAAA;AAAA,MAC/B;AAAA,KACF;AAEA,IAAA,MAAM,kBAAA,GACJ,GAAA,CAAI,MAAA,IAAU,GAAA,CAAI,gBAAA,GAAmB,CAAA,EAAG,GAAA,CAAI,SAAS,CAAA,MAAA,EAAS,GAAA,CAAI,gBAAgB,CAAA,CAAA,GAAK,MAAA;AAEzF,IAAA,MAAM,gBAAA,GAAmB;AAAA,MACvB,GAAA,EAAK,SAAA;AAAA,MACL,IAAI,GAAA,CAAI,SAAA;AAAA,MACR,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,eAAA,EAAiB,SAAA;AAAA,MACjB,iBAAiB,GAAA,CAAI,MAAA;AAAA,MACrB,eAAA,EAAiB,GAAA,CAAI,MAAA,GAAS,GAAA,CAAI,SAAA,GAAY,MAAA;AAAA,MAC9C,uBAAA,EAAyB,kBAAA;AAAA,MACzB,cAAA,EAAgB,GAAA,CAAI,SAAA,GAAY,IAAA,GAAO,MAAA;AAAA,MACvC,eAAA,EAAiB,GAAA,CAAI,UAAA,GAAa,IAAA,GAAO,MAAA;AAAA,MACzC,kBAAA,EAAqB,GAAA,CAAY,eAAA,IAAmB,IAAA,CAAK,kBAAkB,CAAA;AAAA,MAC3E,UAAU,GAAA,CAAI,UAAA;AAAA,MACd,YAAA,EAAc,GAAA,CAAI,MAAA,GAAS,MAAA,GAAS,QAAA;AAAA,MACpC,cAAA,EAAgB,GAAA,CAAI,SAAA,GAAY,MAAA,GAAS,MAAA;AAAA,MACzC,eAAA,EAAiB,GAAA,CAAI,UAAA,GAAa,MAAA,GAAS,MAAA;AAAA,MAC3C,SAAA,EAAW,cAAA;AAAA,MACX,OAAA,EAAS,WAAA;AAAA,MACT,SAAA,EAAW,aAAA;AAAA,MACX,GAAG;AAAA,KACL;AAEA,IAAA,MAAM,eAAe,QAAA,CAAS,iBAAA,GAC1B,QAAA,CAAS,iBAAA,CAAkB,gBAAuB,CAAA,GAClD,gBAAA;AAEJ,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBAAO/I,GAAAA,CAAC,IAAA,EAAA,EAAM,GAAG,cAAe,QAAA,EAAS,CAAA;AAAA,IAC3C;AAEA,IAAA,uBAAOA,GAAAA,CAAC,QAAA,EAAA,EAAQ,GAAG,cAAe,QAAA,EAAS,CAAA;AAAA,EAC7C;AACF;AAMO,IAAM,WAAA,GAAoB+I,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASK,YAAAA,CAAY,KAAA,EAAO,GAAA,EAAK;AAC/B,IAAA,MAAM,MAAM,gBAAA,EAAiB;AAC7B,IAAA,MAAM,EAAE,WAAA,GAAc,qBAAA,EAAuB,UAAU,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAE9E,IAAA,MAAM,WAAA,GAAc,YAAY,GAAA,CAAI,aAAA,KAAkB,IAAI,KAAA,GAAQ,MAAA,CAAO,GAAA,CAAI,KAAK,CAAA,GAAI,IAAA,CAAA;AACtF,IAAA,MAAM,gBAAgB,CAAC,WAAA;AAEvB,IAAA,uBACEpJ,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA;AAAA,UACT,kBAAA;AAAA,UACA,aAAA,IAAiB,+BAAA;AAAA,UACjB;AAAA,SACF;AAAA,QACC,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA,WAAA,IAAe;AAAA;AAAA,KAClB;AAAA,EAEJ;AACF;AAMO,IAAM,UAAA,GAAmB+I,OAAA,CAAA,UAAA;AAAA,EAC9B,SAASM,WAAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AAC9B,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAEzC,IAAA,uBACErJ,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA,CAAW,iBAAA,EAAmB,SAAS,CAAA;AAAA,QAClD,aAAA,EAAY,MAAA;AAAA,QACX,GAAG,IAAA;AAAA,QAEH,sCACCA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,cAAA,EAAe;AAAA;AAAA;AACzB;AAAA,KAEJ;AAAA,EAEJ;AACF;AAMO,SAAS,YAAA,CAAa,EAAE,QAAA,EAAU,SAAA,EAAU,EAAsB;AACvE,EAAA,MAAM,MAAM,gBAAA,EAAiB;AAC7B,EAAA,IAAI,CAAC,GAAA,CAAI,MAAA,EAAQ,OAAO,IAAA;AACxB,EAAA,uBAAOA,GAAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAW,SAAA,IAAa,MAAO,QAAA,EAAS,CAAA;AACzD;AAMO,IAAM,aAAA,GAAsB+I,OAAA,CAAA,UAAA;AAAA,EACjC,SAASO,cAAAA,CAAc,KAAA,EAAO,YAAA,EAAc;AAC1C,IAAA,MAAM,MAAM,gBAAA,EAAiB;AAC7B,IAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAEpD,IAAA,MAAM,SAAA,GAAY,YAAA,CAAa,GAAA,CAAI,UAAA,EAAY,CAAC,IAAA,KAA6B;AAC3E,MAAA,GAAA,CAAI,IAAA,CAAK,YAAY,IAAI,CAAA;AACzB,MAAA,IAAI,OAAO,iBAAiB,UAAA,EAAY;AACtC,QAAA,YAAA,CAAa,IAA6B,CAAA;AAAA,MAC5C,WAAW,YAAA,EAAc;AACvB,QAAC,aAA+D,OAAA,GAAU,IAAA;AAAA,MAC5E;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,QAAA,GAAW,GAAA;AAGjB,IAAMP,wBAAgB,MAAM;AAC1B,MAAA,IAAI,IAAI,MAAA,IAAU,GAAA,CAAI,gBAAA,IAAoB,GAAA,CAAI,WAAW,OAAA,EAAS;AAChE,QAAA,MAAM,MAAA,GAAS,GAAA,CAAI,UAAA,CAAW,OAAA,CAAQ,aAAA;AAAA,UACpC,CAAA,aAAA,EAAgB,GAAA,CAAI,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAC,CAAA,EAAA;AAAA,SAClD;AACA,QAAA,IAAI,MAAA,IAAU,OAAO,MAAA,CAAO,cAAA,KAAmB,UAAA,EAAY;AACzD,UAAA,MAAA,CAAO,cAAA,CAAe,EAAE,KAAA,EAAO,SAAA,EAAW,CAAA;AAAA,QAC5C;AAAA,MACF;AAAA,IACF,GAAG,CAAC,GAAA,CAAI,MAAA,EAAQ,GAAA,CAAI,gBAAgB,CAAC,CAAA;AAGrC,IAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAA2C;AAChE,MAAA,MAAM,WAAA,GAAc,QAAA,CAAS,SAAA,CAAU,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,QAAA,CAAS,aAAA,CAAc,GAAA,CAAI,CAAC,CAAC,CAAA;AACnF,MAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAE9B,MAAA,MAAM,eAAe,GAAA,CAAI,gBAAA,GACrB,YAAY,OAAA,CAAQ,GAAA,CAAI,gBAAgB,CAAA,GACxC,EAAA;AAEJ,MAAA,IAAI,CAAA,CAAE,QAAQ,WAAA,EAAa;AACzB,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,MAAM,UAAU,YAAA,GAAe,WAAA,CAAY,MAAA,GAAS,CAAA,GAAI,eAAe,CAAA,GAAI,CAAA;AAC3E,QAAA,GAAA,CAAI,mBAAA,CAAoB,WAAA,CAAY,OAAO,CAAA,IAAK,IAAI,CAAA;AAAA,MACtD,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,SAAA,EAAW;AAC9B,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,MAAM,UAAU,YAAA,GAAe,CAAA,GAAI,YAAA,GAAe,CAAA,GAAI,YAAY,MAAA,GAAS,CAAA;AAC3E,QAAA,GAAA,CAAI,mBAAA,CAAoB,WAAA,CAAY,OAAO,CAAA,IAAK,IAAI,CAAA;AAAA,MACtD,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,MAAA,EAAQ;AAC3B,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,GAAA,CAAI,mBAAA,CAAoB,WAAA,CAAY,CAAC,CAAA,IAAK,IAAI,CAAA;AAAA,MAChD,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,KAAA,EAAO;AAC1B,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,GAAA,CAAI,oBAAoB,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,KAAK,IAAI,CAAA;AAAA,MACrE,WAAW,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AAC7C,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,IAAI,GAAA,CAAI,oBAAoB,CAAC,QAAA,CAAS,cAAc,GAAA,CAAI,GAAA,CAAI,gBAAgB,CAAA,EAAG;AAC7E,UAAA,GAAA,CAAI,QAAA,CAAS,IAAI,gBAAgB,CAAA;AACjC,UAAA,GAAA,CAAI,UAAU,KAAK,CAAA;AACnB,UAAA,GAAA,CAAI,UAAA,CAAW,SAAS,KAAA,EAAM;AAAA,QAChC;AAAA,MACF,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,QAAA,EAAU;AAC7B,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,GAAA,CAAI,UAAU,KAAK,CAAA;AACnB,QAAA,GAAA,CAAI,UAAA,CAAW,SAAS,KAAA,EAAM;AAAA,MAChC,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,KAAA,EAAO;AAC1B,QAAA,GAAA,CAAI,UAAU,KAAK,CAAA;AAAA,MACrB;AAEA,MAAA,SAAA,GAAY,CAAC,CAAA;AAAA,IACf,CAAA;AAEA,IAAA,IAAI,CAAC,GAAA,CAAI,MAAA,EAAQ,OAAO,IAAA;AAExB,IAAA,MAAM,gBAAA,GAAmB;AAAA,MACvB,GAAA,EAAK,SAAA;AAAA,MACL,IAAI,GAAA,CAAI,SAAA;AAAA,MACR,IAAA,EAAM,SAAA;AAAA,MACN,mBAAmB,GAAA,CAAI,SAAA;AAAA,MACvB,QAAA,EAAU,EAAA;AAAA,MACV,OAAO,GAAA,CAAI,cAAA;AAAA,MACX,SAAA,EAAW,UAAA,CAAW,oBAAA,EAAsB,SAAS,CAAA;AAAA,MACrD,SAAA,EAAW,aAAA;AAAA,MACX,GAAG;AAAA,KACL;AAEA,IAAA,MAAM,eAAe,QAAA,CAAS,gBAAA,GAC1B,QAAA,CAAS,gBAAA,CAAiB,gBAAuB,CAAA,GACjD,gBAAA;AAEJ,IAAA,uBACE/I,GAAAA,CAAC,KAAA,EAAA,EAAK,GAAG,cACN,QAAA,EACH,CAAA;AAAA,EAEJ;AACF;AAUA,IAAM,WAAA,GAAoB+I,OAAA,CAAA,aAAA,CAAwC,EAAE,UAAA,EAAY,OAAO,CAAA;AAEhF,IAAM,UAAA,GAAmBA,OAAA,CAAA,UAAA;AAAA,EAC9B,SAASQ,WAAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AAC9B,IAAA,MAAM,MAAM,gBAAA,EAAiB;AAC7B,IAAA,MAAM;AAAA,MACJ,KAAA;AAAA,MACA,UAAA,GAAa,KAAA;AAAA,MACb,SAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,YAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,UAAA,GAAa,IAAI,KAAA,KAAU,KAAA;AACjC,IAAA,MAAM,aAAA,GAAgB,IAAI,gBAAA,KAAqB,KAAA;AAG/C,IAAA,MAAM,OAAA,GAAgBR,eAA8B,IAAI,CAAA;AACxD,IAAA,MAAM,SAAA,GAAY,YAAA,CAAa,OAAA,EAAS,GAAG,CAAA;AAE3C,IAAA,MAAM,EAAE,cAAa,GAAI,GAAA;AAEzB,IAAMA,kBAAU,MAAM;AACpB,MAAA,MAAM,KAAA,GACJ,SAAA,KACC,OAAO,QAAA,KAAa,QAAA,GAAW,WAAW,OAAA,CAAQ,OAAA,EAAS,WAAA,EAAa,IAAA,EAAK,IAAK,KAAA,CAAA;AACrF,MAAA,MAAM,UAAA,GAAa,YAAA,CAAa,KAAA,EAAO,KAAA,EAAO,UAAU,CAAA;AACxD,MAAA,OAAO,UAAA;AAAA,IACT,GAAG,CAAC,KAAA,EAAO,SAAA,EAAW,UAAA,EAAY,YAAY,CAAC,CAAA;AAE/C,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAwC;AAC3D,MAAA,IAAI,UAAA,IAAc,IAAI,UAAA,EAAY;AAClC,MAAA,GAAA,CAAI,SAAS,KAAK,CAAA;AAClB,MAAA,GAAA,CAAI,UAAU,KAAK,CAAA;AACnB,MAAA,GAAA,CAAI,UAAA,CAAW,SAAS,KAAA,EAAM;AAC9B,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAEA,IAAA,MAAM,gBAAA,GAAmB,CAAC,CAAA,KAAwC;AAChE,MAAA,IAAI,CAAC,UAAA,IAAc,CAAC,GAAA,CAAI,UAAA,EAAY;AAClC,QAAA,GAAA,CAAI,oBAAoB,KAAK,CAAA;AAAA,MAC/B;AACA,MAAA,YAAA,GAAe,CAAC,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,MAAM,MAAA,GAAS,CAAA,EAAG,GAAA,CAAI,SAAS,SAAS,KAAK,CAAA,CAAA;AAE7C,IAAA,uBACE/I,IAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAE,UAAA,EAAW,EACxC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,SAAA;AAAA,QACL,EAAA,EAAI,MAAA;AAAA,QACJ,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAY,KAAA;AAAA,QACZ,eAAA,EAAe,UAAA;AAAA,QACf,eAAA,EAAe,aAAa,MAAA,GAAS,MAAA;AAAA,QACrC,eAAA,EAAe,aAAa,MAAA,GAAS,MAAA;AAAA,QACrC,kBAAA,EAAkB,gBAAgB,MAAA,GAAS,MAAA;AAAA,QAC3C,SAAA,EAAW,UAAA,CAAW,iBAAA,EAAmB,SAAS,CAAA;AAAA,QAClD,OAAA,EAAS,WAAA;AAAA,QACT,YAAA,EAAc,gBAAA;AAAA,QACb,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF;AAMO,IAAM,cAAA,GAAuB+I,OAAA,CAAA,UAAA;AAAA,EAClC,SAASS,eAAAA,CAAe,KAAA,EAAO,GAAA,EAAK;AAClC,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAEzC,IAAA,uBACExJ,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAA,EAAU,SAAA,EAAW,UAAA,CAAW,sBAAA,EAAwB,SAAS,CAAA,EAAI,GAAG,IAAA,EAC3E,QAAA,EACH,CAAA;AAAA,EAEJ;AACF;AAMO,IAAM,mBAAA,GAA4B+I,OAAA,CAAA,UAAA;AAAA,EACvC,SAASU,oBAAAA,CAAoB,KAAA,EAAO,GAAA,EAAK;AACvC,IAAA,MAAM,EAAE,UAAA,EAAW,GAAUV,OAAA,CAAA,UAAA,CAAW,WAAW,CAAA;AACnD,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAEzC,IAAA,IAAI,CAAC,YAAY,OAAO,IAAA;AAExB,IAAA,uBACE/I,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,aAAA,EAAY,MAAA;AAAA,QACZ,SAAA,EAAW,UAAA,CAAW,2BAAA,EAA6B,SAAS,CAAA;AAAA,QAC3D,GAAG,IAAA;AAAA,QAEH,sCACCA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YAEf,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,uBAAA,EAAwB;AAAA;AAAA;AAC3C;AAAA,KAEJ;AAAA,EAEJ;AACF;AAMO,IAAM,WAAA,GAAoB+I,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASW,YAAAA,CAAY,KAAA,EAAO,GAAA,EAAK;AAC/B,IAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,GAAI,KAAA;AAC/B,IAAA,uBAAO1J,GAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,IAAA,EAAK,OAAA,EAAQ,SAAA,EAAW,UAAA,CAAW,kBAAA,EAAoB,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAAA,EACrG;AACF;AAEO,IAAM,WAAA,GAAoB+I,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASY,YAAAA,CAAY,KAAA,EAAO,GAAA,EAAK;AAC/B,IAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,GAAI,KAAA;AAC/B,IAAA,uBAAO3J,GAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,SAAA,EAAW,WAAW,kBAAA,EAAoB,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAAA,EACxF;AACF;AAEO,IAAM,eAAA,GAAwB+I,OAAA,CAAA,UAAA;AAAA,EACnC,SAASa,gBAAAA,CAAgB,KAAA,EAAO,GAAA,EAAK;AACnC,IAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,GAAI,KAAA;AAC/B,IAAA,uBAAO5J,GAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,IAAA,EAAK,WAAA,EAAY,SAAA,EAAW,UAAA,CAAW,sBAAA,EAAwB,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAAA,EAC7G;AACF;AAMO,IAAM,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,UAAA,EAAY;AAAA,EAC9C,IAAA,EAAM,UAAA;AAAA,EACN,OAAA,EAAS,aAAA;AAAA,EACT,KAAA,EAAO,WAAA;AAAA,EACP,IAAA,EAAM,UAAA;AAAA,EACN,MAAA,EAAQ,YAAA;AAAA,EACR,OAAA,EAAS,aAAA;AAAA,EACT,IAAA,EAAM,UAAA;AAAA,EACN,QAAA,EAAU,cAAA;AAAA,EACV,aAAA,EAAe,mBAAA;AAAA,EACf,KAAA,EAAO,WAAA;AAAA,EACP,KAAA,EAAO,WAAA;AAAA,EACP,SAAA,EAAW;AACb,CAAC;ACp2BM,IAAM,iBAAA,GACL6J,sBAA6C,IAAI;AAElD,SAAS,oBAAA,GAA+C;AAC7D,EAAA,MAAM,OAAA,GAAgBA,mBAAW,iBAAiB,CAAA;AAClD,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;AAOO,SAAS,kBAAA,CAAmB;AAAA,EACjC,UAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA,GAAe,CAAA;AAAA,EACf,aAAA,GAAgB;AAClB,CAAA,EAK0B;AACxB,EAAA,IAAI,UAAA,IAAc,CAAA,EAAG,OAAO,CAAC,CAAC,CAAA;AAE9B,EAAA,MAAM,KAAA,GAAQ,CAAC,KAAA,EAAe,GAAA,KAA0B;AACtD,IAAA,MAAM,MAAA,GAAS,MAAM,KAAA,GAAQ,CAAA;AAC7B,IAAA,OAAO,KAAA,CAAM,KAAK,EAAE,MAAA,IAAU,CAAC,CAAA,EAAG,CAAA,KAAM,KAAA,GAAQ,CAAC,CAAA;AAAA,EACnD,CAAA;AAIA,EAAA,MAAM,YAAA,GAAe,aAAA,GAAgB,CAAA,GAAI,YAAA,GAAe,CAAA,GAAI,CAAA;AAE5D,EAAA,IAAI,cAAc,YAAA,EAAc;AAC9B,IAAA,OAAO,KAAA,CAAM,GAAG,UAAU,CAAA;AAAA,EAC5B;AAEA,EAAA,MAAM,gBAAA,GAAmB,IAAA,CAAK,GAAA,CAAI,WAAA,GAAc,cAAc,CAAC,CAAA;AAC/D,EAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,GAAA,CAAI,WAAA,GAAc,cAAc,UAAU,CAAA;AAEzE,EAAA,MAAM,sBAAA,GACJ,mBAAmB,aAAA,GAAgB,CAAA;AACrC,EAAA,MAAM,uBAAA,GACJ,iBAAA,GAAoB,UAAA,IAAc,aAAA,GAAgB,CAAA,CAAA;AAEpD,EAAA,IAAI,CAAC,0BAA0B,uBAAA,EAAyB;AACtD,IAAA,MAAM,aAAA,GAAgB,aAAA,GAAgB,YAAA,GAAe,CAAA,GAAI,CAAA;AACzD,IAAA,MAAM,SAAA,GAAY,KAAA,CAAM,CAAA,EAAG,aAAa,CAAA;AACxC,IAAA,MAAMC,cAAAA,GAAgB,KAAA,CAAM,UAAA,GAAa,aAAA,GAAgB,GAAG,UAAU,CAAA;AACtE,IAAA,OAAO,CAAC,GAAG,SAAA,EAAW,cAAA,EAAgB,GAAGA,cAAa,CAAA;AAAA,EACxD;AAEA,EAAA,IAAI,sBAAA,IAA0B,CAAC,uBAAA,EAAyB;AACtD,IAAA,MAAMC,aAAAA,GAAe,KAAA,CAAM,CAAA,EAAG,aAAa,CAAA;AAC3C,IAAA,MAAM,cAAA,GAAiB,aAAA,GAAgB,YAAA,GAAe,CAAA,GAAI,CAAA;AAC1D,IAAA,MAAM,UAAA,GAAa,KAAA,CAAM,UAAA,GAAa,cAAA,GAAiB,GAAG,UAAU,CAAA;AACpE,IAAA,OAAO,CAAC,GAAGA,aAAAA,EAAc,gBAAA,EAAkB,GAAG,UAAU,CAAA;AAAA,EAC1D;AAGA,EAAA,MAAM,YAAA,GAAe,KAAA,CAAM,CAAA,EAAG,aAAa,CAAA;AAC3C,EAAA,MAAM,WAAA,GAAc,KAAA,CAAM,gBAAA,EAAkB,iBAAiB,CAAA;AAC7D,EAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,UAAA,GAAa,aAAA,GAAgB,GAAG,UAAU,CAAA;AACtE,EAAA,OAAO;AAAA,IACL,GAAG,YAAA;AAAA,IACH,gBAAA;AAAA,IACA,GAAG,WAAA;AAAA,IACH,cAAA;AAAA,IACA,GAAG;AAAA,GACL;AACF;AAKO,IAAM,cAAA,GAAuBF,OAAA,CAAA,UAAA;AAAA,EAClC,SAASG,eAAAA,CACP;AAAA,IACE,KAAA;AAAA,IACA,UAAU,YAAA,GAAe,EAAA;AAAA,IACzB,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,GAAc,CAAA;AAAA,IACd,YAAA;AAAA,IACA,gBAAA;AAAA,IACA,YAAA,GAAe,CAAA;AAAA,IACf,aAAA,GAAgB,CAAA;AAAA,IAChB,IAAA,GAAO,IAAA;AAAA,IACP,OAAA,GAAU,SAAA;AAAA,IACV,UAAA,GAAa,KAAA;AAAA,IACb,eAAA,GAAkB,KAAA;AAAA,IAClB,eAAA,GAAkB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAG,CAAA;AAAA,IAClC,eAAA,GAAkB,KAAA;AAAA,IAClB,cAAc,SAAA,GAAY,YAAA;AAAA,IAC1B,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,CAAC,QAAA,EAAU,mBAAmB,CAAA,GAAUH,iBAAiB,YAAY,CAAA;AAE3E,IAAMA,kBAAU,MAAM;AACpB,MAAA,mBAAA,CAAoB,YAAY,CAAA;AAAA,IAClC,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,IAAA,MAAM,UAAA,GAAa,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,IAAA,CAAK,KAAA,GAAQ,QAAQ,CAAC,CAAA;AAE1D,IAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,oBAAA,CAA6B;AAAA,MACjE,KAAA,EAAO,QAAA;AAAA,MACP,YAAA,EAAc,WAAA;AAAA,MACd,QAAA,EAAU;AAAA,KACX,CAAA;AAED,IAAA,MAAM,OAAA,GAAgBA,OAAA,CAAA,WAAA;AAAA,MACpB,CAAC,QAAA,KAAqB;AACpB,QAAA,IAAI,UAAA,EAAY;AAChB,QAAA,MAAM,OAAA,GAAU,KAAK,GAAA,CAAI,IAAA,CAAK,IAAI,CAAA,EAAG,QAAQ,GAAG,UAAU,CAAA;AAC1D,QAAA,cAAA,CAAe,OAAO,CAAA;AAAA,MACxB,CAAA;AAAA,MACA,CAAC,UAAA,EAAY,cAAA,EAAgB,UAAU;AAAA,KACzC;AAEA,IAAA,MAAM,oBAAA,GAA6BA,OAAA,CAAA,WAAA;AAAA,MACjC,CAAC,OAAA,KAAoB;AACnB,QAAA,IAAI,UAAA,EAAY;AAChB,QAAA,mBAAA,CAAoB,OAAO,CAAA;AAC3B,QAAA,gBAAA,GAAmB,OAAO,CAAA;AAE1B,QAAA,MAAM,aAAA,GAAgB,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,IAAA,CAAK,KAAA,GAAQ,OAAO,CAAC,CAAA;AAC5D,QAAA,IAAI,cAAc,aAAA,EAAe;AAC/B,UAAA,OAAA,CAAQ,aAAa,CAAA;AAAA,QACvB;AAAA,MACF,CAAA;AAAA,MACA,CAAC,WAAA,EAAa,UAAA,EAAY,gBAAA,EAAkB,SAAS,KAAK;AAAA,KAC5D;AAEA,IAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,OAAA;AAAA,MACzB,OAAO;AAAA,QACL,WAAA;AAAA,QACA,UAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA;AAAA,QACA,WAAA,EAAa,oBAAA;AAAA,QACb,IAAA;AAAA,QACA,OAAA;AAAA,QACA,UAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA;AAAA,QACE,WAAA;AAAA,QACA,UAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA;AAAA,QACA,oBAAA;AAAA,QACA,IAAA;AAAA,QACA,OAAA;AAAA,QACA,UAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,MAAM,KAAA,GAAcA,OAAA,CAAA,OAAA;AAAA,MAClB,MACE,kBAAA,CAAmB;AAAA,QACjB,UAAA;AAAA,QACA,WAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA,OACD,CAAA;AAAA,MACH,CAAC,UAAA,EAAY,WAAA,EAAa,YAAA,EAAc,aAAa;AAAA,KACvD;AAEA,IAAA,uBACE7J,GAAAA,CAAC,iBAAA,CAAkB,UAAlB,EAA2B,KAAA,EAAO,cACjC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,YAAA,EAAY,SAAA;AAAA,QACZ,SAAA,EAAW,UAAA;AAAA,UACT,eAAA;AAAA,UACA,kBAAkB,IAAI,CAAA,CAAA;AAAA,UACtB,kBAAkB,OAAO,CAAA,CAAA;AAAA,UACzB;AAAA,SACF;AAAA,QACC,GAAG,QAAA;AAAA,QAEH,QAAA,EAAA,QAAA,GACC,QAAA,mBAEA4C,IAAAA,CAAA2C,UAAA,EACE,QAAA,EAAA;AAAA,0BAAA3C,KAAC,cAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAA5C,IAAC,IAAA,EAAA,EAAG,SAAA,EAAU,4BACZ,QAAA,kBAAAA,GAAAA,CAAC,kBAAe,CAAA,EAClB,CAAA;AAAA,YACC,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,wBAChBA,GAAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBAMC,SAAA,EAAU,0BAAA;AAAA,gBAET,QAAA,EAAA,OAAO,IAAA,KAAS,QAAA,mBACfA,GAAAA;AAAA,kBAAC,cAAA;AAAA,kBAAA;AAAA,oBACC,IAAA,EAAM,IAAA;AAAA,oBACN,WAAW,IAAA,KAAS,WAAA;AAAA,oBAEnB,QAAA,EAAA;AAAA;AAAA,iBACH,mBAEAA,GAAAA,CAAC,kBAAA,EAAA,EAAmB;AAAA,eAAA;AAAA,cAdpB,OAAO,SAAS,QAAA,GACZ,CAAA,KAAA,EAAQ,IAAI,CAAA,CAAA,GACZ,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA;AAAA,aAevB,CAAA;AAAA,4BACDA,IAAC,IAAA,EAAA,EAAG,SAAA,EAAU,4BACZ,QAAA,kBAAAA,GAAAA,CAAC,kBAAe,CAAA,EAClB;AAAA,WAAA,EACF,CAAA;AAAA,UACC,eAAA,oBACCA,GAAAA,CAAC,oBAAA,EAAA,EAAqB,SAAS,eAAA,EAAiB,CAAA;AAAA,UAEjD,eAAA,oBAAmBA,GAAAA,CAAC,gBAAA,EAAA,EAAiB;AAAA,SAAA,EACxC;AAAA;AAAA,KAEJ,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,cAAA,CAAe,WAAA,GAAc,YAAA;AAKtB,IAAM,cAAA,GAAuB6J,OAAA,CAAA,UAAA,CAGlC,SAASI,eAAAA,CAAe,EAAE,WAAW,QAAA,EAAU,GAAG,SAAA,EAAU,EAAG,GAAA,EAAK;AACpE,EAAA,uBACEjK,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,MAAA;AAAA,MACL,SAAA,EAAW,UAAA,CAAW,qBAAA,EAAuB,SAAS,CAAA;AAAA,MACrD,GAAG,SAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AAED,cAAA,CAAe,WAAA,GAAc,iBAAA;AAKtB,IAAM,cAAA,GAAuB6J,OAAA,CAAA,UAAA,CAGlC,SAASK,eAAAA,CACT;AAAA,EACE,IAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA,EAAc,SAAA;AAAA,EACd,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,EAAE,WAAA,EAAa,OAAA,EAAS,UAAA,KAAe,oBAAA,EAAqB;AAClE,EAAA,MAAM,MAAA,GAAS,aAAa,WAAA,KAAgB,IAAA;AAE5C,EAAA,MAAM,WAAA,GAAoBL,OAAA,CAAA,WAAA;AAAA,IACxB,CAAC,CAAA,KAA2C;AAC1C,MAAA,IAAI,UAAA,EAAY;AAChB,MAAA,OAAA,GAAU,CAAC,CAAA;AACX,MAAA,IAAI,CAAC,EAAE,gBAAA,EAAkB;AACvB,QAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,MACd;AAAA,IACF,CAAA;AAAA,IACA,CAAC,UAAA,EAAY,OAAA,EAAS,IAAA,EAAM,OAAO;AAAA,GACrC;AAEA,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,qBAAA,EAAuB,SAAS,CAAA;AAE/D,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACE7J,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,cAAA,EAAc,SAAS,MAAA,GAAS,MAAA;AAAA,QAChC,YAAA,EAAY,SAAA;AAAA,QACZ,SAAA,EAAW,WAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QACR,GAAI,SAAA;AAAA,QAEJ,QAAA,EAAA,QAAA,IAAY;AAAA;AAAA,KACf;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MACL,cAAA,EAAc,SAAS,MAAA,GAAS,MAAA;AAAA,MAChC,YAAA,EAAY,SAAA,IAAa,CAAA,KAAA,EAAQ,IAAI,CAAA,CAAA;AAAA,MACrC,QAAA,EAAU,UAAA;AAAA,MACV,SAAA,EAAW,WAAA;AAAA,MACX,OAAA,EAAS,WAAA;AAAA,MACR,GAAG,SAAA;AAAA,MAEH,QAAA,EAAA,QAAA,IAAY;AAAA;AAAA,GACf;AAEJ,CAAC;AAED,cAAA,CAAe,WAAA,GAAc,iBAAA;AAE7B,IAAM,eAAA,GAAkB,sBACtBA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,KAAA,EAAM,IAAA;AAAA,IACN,MAAA,EAAO,IAAA;AAAA,IACP,OAAA,EAAQ,WAAA;AAAA,IACR,IAAA,EAAK,MAAA;AAAA,IACL,MAAA,EAAO,cAAA;AAAA,IACP,WAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAc,OAAA;AAAA,IACd,cAAA,EAAe,OAAA;AAAA,IACf,aAAA,EAAY,MAAA;AAAA,IACZ,SAAA,EAAU,qBAAA;AAAA,IAEV,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,iBAAA,EAAkB;AAAA;AACrC,CAAA;AAGF,IAAM,gBAAA,GAAmB,sBACvBA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,KAAA,EAAM,IAAA;AAAA,IACN,MAAA,EAAO,IAAA;AAAA,IACP,OAAA,EAAQ,WAAA;AAAA,IACR,IAAA,EAAK,MAAA;AAAA,IACL,MAAA,EAAO,cAAA;AAAA,IACP,WAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAc,OAAA;AAAA,IACd,cAAA,EAAe,OAAA;AAAA,IACf,aAAA,EAAY,MAAA;AAAA,IACZ,SAAA,EAAU,qBAAA;AAAA,IAEV,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB;AAAA;AACpC,CAAA;AAGF,IAAM,gBAAA,GAAmB,sBACvB4C,IAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,KAAA,EAAM,IAAA;AAAA,IACN,MAAA,EAAO,IAAA;AAAA,IACP,OAAA,EAAQ,WAAA;AAAA,IACR,IAAA,EAAK,MAAA;AAAA,IACL,MAAA,EAAO,cAAA;AAAA,IACP,WAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAc,OAAA;AAAA,IACd,cAAA,EAAe,OAAA;AAAA,IACf,aAAA,EAAY,MAAA;AAAA,IACZ,SAAA,EAAU,qBAAA;AAAA,IAEV,QAAA,EAAA;AAAA,sBAAA5C,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,iBAAA,EAAkB,CAAA;AAAA,sBACnCA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,kBAAA,EAAmB;AAAA;AAAA;AACtC,CAAA;AAGF,IAAM,iBAAA,GAAoB,sBACxB4C,IAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,KAAA,EAAM,IAAA;AAAA,IACN,MAAA,EAAO,IAAA;AAAA,IACP,OAAA,EAAQ,WAAA;AAAA,IACR,IAAA,EAAK,MAAA;AAAA,IACL,MAAA,EAAO,cAAA;AAAA,IACP,WAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAc,OAAA;AAAA,IACd,cAAA,EAAe,OAAA;AAAA,IACf,aAAA,EAAY,MAAA;AAAA,IACZ,SAAA,EAAU,qBAAA;AAAA,IAEV,QAAA,EAAA;AAAA,sBAAA5C,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,kBAAA,EAAmB,CAAA;AAAA,sBACpCA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB;AAAA;AAAA;AACpC,CAAA;AAMK,IAAM,cAAA,GAAuB6J,OAAA,CAAA,UAAA,CAGlC,SAASM,eAAAA,CACT,EAAE,OAAA,GAAU,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,OAAA,EAAS,GAAG,SAAA,IACpD,GAAA,EACA;AACA,EAAA,MAAM,EAAE,WAAA,EAAa,OAAA,EAAS,UAAA,KAAe,oBAAA,EAAqB;AAClE,EAAA,MAAM,aAAa,WAAA,IAAe,CAAA;AAClC,EAAA,MAAM,WAAW,UAAA,IAAc,UAAA;AAE/B,EAAA,MAAM,WAAA,GAAoBN,OAAA,CAAA,WAAA;AAAA,IACxB,CAAC,CAAA,KAA2C;AAC1C,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,OAAA,GAAU,CAAC,CAAA;AACX,MAAA,IAAI,CAAC,EAAE,gBAAA,EAAkB;AACvB,QAAA,OAAA,CAAQ,cAAc,CAAC,CAAA;AAAA,MACzB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS,WAAW;AAAA,GAC1C;AAEA,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,qBAAA,EAAuB,SAAS,CAAA;AAE/D,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACE7J,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,YAAA,EAAW,qBAAA;AAAA,QACX,eAAA,EAAe,WAAW,MAAA,GAAS,MAAA;AAAA,QACnC,SAAA,EAAW,WAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QACR,GAAI,SAAA;AAAA,QAEJ,QAAA,EAAA,QAAA,oBAAYA,GAAAA,CAAC,eAAA,EAAA,EAAgB;AAAA;AAAA,KAChC;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,qBAAA;AAAA,MACX,QAAA;AAAA,MACA,SAAA,EAAW,WAAA;AAAA,MACX,OAAA,EAAS,WAAA;AAAA,MACR,GAAG,SAAA;AAAA,MAEH,QAAA,EAAA,QAAA,oBAAYA,GAAAA,CAAC,eAAA,EAAA,EAAgB;AAAA;AAAA,GAChC;AAEJ,CAAC;AAED,cAAA,CAAe,WAAA,GAAc,iBAAA;AAKtB,IAAM,cAAA,GAAuB6J,OAAA,CAAA,UAAA,CAGlC,SAASO,eAAAA,CACT,EAAE,OAAA,GAAU,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,OAAA,EAAS,GAAG,SAAA,IACpD,GAAA,EACA;AACA,EAAA,MAAM,EAAE,WAAA,EAAa,UAAA,EAAY,OAAA,EAAS,UAAA,KACxC,oBAAA,EAAqB;AACvB,EAAA,MAAM,aAAa,WAAA,IAAe,UAAA;AAClC,EAAA,MAAM,WAAW,UAAA,IAAc,UAAA;AAE/B,EAAA,MAAM,WAAA,GAAoBP,OAAA,CAAA,WAAA;AAAA,IACxB,CAAC,CAAA,KAA2C;AAC1C,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,OAAA,GAAU,CAAC,CAAA;AACX,MAAA,IAAI,CAAC,EAAE,gBAAA,EAAkB;AACvB,QAAA,OAAA,CAAQ,cAAc,CAAC,CAAA;AAAA,MACzB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS,WAAW;AAAA,GAC1C;AAEA,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,qBAAA,EAAuB,SAAS,CAAA;AAE/D,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACE7J,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,YAAA,EAAW,iBAAA;AAAA,QACX,eAAA,EAAe,WAAW,MAAA,GAAS,MAAA;AAAA,QACnC,SAAA,EAAW,WAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QACR,GAAI,SAAA;AAAA,QAEJ,QAAA,EAAA,QAAA,oBAAYA,GAAAA,CAAC,gBAAA,EAAA,EAAiB;AAAA;AAAA,KACjC;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,iBAAA;AAAA,MACX,QAAA;AAAA,MACA,SAAA,EAAW,WAAA;AAAA,MACX,OAAA,EAAS,WAAA;AAAA,MACR,GAAG,SAAA;AAAA,MAEH,QAAA,EAAA,QAAA,oBAAYA,GAAAA,CAAC,gBAAA,EAAA,EAAiB;AAAA;AAAA,GACjC;AAEJ,CAAC;AAED,cAAA,CAAe,WAAA,GAAc,iBAAA;AAKtB,IAAM,eAAA,GAAwB6J,OAAA,CAAA,UAAA,CAGnC,SAASQ,gBAAAA,CACT,EAAE,OAAA,GAAU,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,OAAA,EAAS,GAAG,SAAA,IACpD,GAAA,EACA;AACA,EAAA,MAAM,EAAE,WAAA,EAAa,OAAA,EAAS,UAAA,KAAe,oBAAA,EAAqB;AAClE,EAAA,MAAM,QAAA,GAAW,cAAc,WAAA,IAAe,CAAA;AAE9C,EAAA,MAAM,WAAA,GAAoBR,OAAA,CAAA,WAAA;AAAA,IACxB,CAAC,CAAA,KAA2C;AAC1C,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,OAAA,GAAU,CAAC,CAAA;AACX,MAAA,IAAI,CAAC,EAAE,gBAAA,EAAkB;AACvB,QAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,MACX;AAAA,IACF,CAAA;AAAA,IACA,CAAC,QAAA,EAAU,OAAA,EAAS,OAAO;AAAA,GAC7B;AAEA,EAAA,MAAM,YAAA,GAAe,UAAA,CAAW,sBAAA,EAAwB,SAAS,CAAA;AAEjE,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACE7J,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,YAAA,EAAW,kBAAA;AAAA,QACX,eAAA,EAAe,WAAW,MAAA,GAAS,MAAA;AAAA,QACnC,SAAA,EAAW,YAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QACR,GAAI,SAAA;AAAA,QAEJ,QAAA,EAAA,QAAA,oBAAYA,GAAAA,CAAC,gBAAA,EAAA,EAAiB;AAAA;AAAA,KACjC;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,kBAAA;AAAA,MACX,QAAA;AAAA,MACA,SAAA,EAAW,YAAA;AAAA,MACX,OAAA,EAAS,WAAA;AAAA,MACR,GAAG,SAAA;AAAA,MAEH,QAAA,EAAA,QAAA,oBAAYA,GAAAA,CAAC,gBAAA,EAAA,EAAiB;AAAA;AAAA,GACjC;AAEJ,CAAC;AAED,eAAA,CAAgB,WAAA,GAAc,kBAAA;AAKvB,IAAM,cAAA,GAAuB6J,OAAA,CAAA,UAAA,CAGlC,SAASS,eAAAA,CACT,EAAE,OAAA,GAAU,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,OAAA,EAAS,GAAG,SAAA,IACpD,GAAA,EACA;AACA,EAAA,MAAM,EAAE,WAAA,EAAa,UAAA,EAAY,OAAA,EAAS,UAAA,KACxC,oBAAA,EAAqB;AACvB,EAAA,MAAM,QAAA,GAAW,cAAc,WAAA,IAAe,UAAA;AAE9C,EAAA,MAAM,WAAA,GAAoBT,OAAA,CAAA,WAAA;AAAA,IACxB,CAAC,CAAA,KAA2C;AAC1C,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,OAAA,GAAU,CAAC,CAAA;AACX,MAAA,IAAI,CAAC,EAAE,gBAAA,EAAkB;AACvB,QAAA,OAAA,CAAQ,UAAU,CAAA;AAAA,MACpB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS,UAAU;AAAA,GACzC;AAEA,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,qBAAA,EAAuB,SAAS,CAAA;AAE/D,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACE7J,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,YAAA,EAAW,iBAAA;AAAA,QACX,eAAA,EAAe,WAAW,MAAA,GAAS,MAAA;AAAA,QACnC,SAAA,EAAW,WAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QACR,GAAI,SAAA;AAAA,QAEJ,QAAA,EAAA,QAAA,oBAAYA,GAAAA,CAAC,iBAAA,EAAA,EAAkB;AAAA;AAAA,KAClC;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,iBAAA;AAAA,MACX,QAAA;AAAA,MACA,SAAA,EAAW,WAAA;AAAA,MACX,OAAA,EAAS,WAAA;AAAA,MACR,GAAG,SAAA;AAAA,MAEH,QAAA,EAAA,QAAA,oBAAYA,GAAAA,CAAC,iBAAA,EAAA,EAAkB;AAAA;AAAA,GAClC;AAEJ,CAAC;AAED,cAAA,CAAe,WAAA,GAAc,iBAAA;AAKtB,IAAM,kBAAA,GAA2B6J,OAAA,CAAA,UAAA,CAGtC,SAASU,mBAAAA,CAAmB,EAAE,WAAW,QAAA,EAAU,GAAG,SAAA,EAAU,EAAG,GAAA,EAAK;AACxE,EAAA,uBACEvK,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAW,UAAA,CAAW,yBAAA,EAA2B,SAAS,CAAA;AAAA,MACzD,GAAG,SAAA;AAAA,MAEH,QAAA,EAAA,QAAA,IAAY;AAAA;AAAA,GACf;AAEJ,CAAC;AAED,kBAAA,CAAmB,WAAA,GAAc,qBAAA;AAK1B,IAAM,oBAAA,GAA6B6J,OAAA,CAAA,UAAA,CAGxC,SAASW,qBAAAA,CACT;AAAA,EACE,OAAA,GAAU,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAG,CAAA;AAAA,EAC1B,SAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAc,SAAA,GAAY,WAAA;AAAA,EAC1B,UAAA,EAAY,cAAA;AAAA,EACZ,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,EAAE,QAAA,EAAU,WAAA,EAAa,MAAM,UAAA,EAAY,iBAAA,KAC/C,oBAAA,EAAqB;AACvB,EAAA,MAAM,WAAW,cAAA,IAAkB,iBAAA;AAEnC,EAAA,MAAM,iBAAA,GAA0BX,OAAA,CAAA,WAAA;AAAA,IAC9B,CAAC,GAAA,KAAgB;AACf,MAAA,MAAM,GAAA,GAAM,QAAA,CAAS,GAAA,EAAK,EAAE,CAAA;AAC5B,MAAA,IAAI,CAAC,KAAA,CAAM,GAAG,CAAA,EAAG;AACf,QAAA,WAAA,CAAY,GAAG,CAAA;AACf,QAAA,QAAA,GAAW,GAAG,CAAA;AAAA,MAChB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,UAAU,WAAW;AAAA,GACxB;AAEA,EAAA,uBACEjH,IAAAA;AAAA,IAAC,MAAA,CAAO,IAAA;AAAA,IAAP;AAAA,MACC,KAAA,EAAO,OAAO,QAAQ,CAAA;AAAA,MACtB,aAAA,EAAe,iBAAA;AAAA,MACf,UAAA,EAAY,QAAA;AAAA,MACZ,IAAA;AAAA,MACA,SAAA,EAAW,UAAA,CAAW,iCAAA,EAAmC,SAAS,CAAA;AAAA,MAElE,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,MAAA,CAAO,OAAA;AAAA,UAAP;AAAA,YACC,GAAA;AAAA,YACA,YAAA,EAAY,SAAA;AAAA,YACZ,SAAA,EAAU,oCAAA;AAAA,YACT,GAAG,SAAA;AAAA,YAEJ,QAAA,EAAA;AAAA,8BAAA5C,IAAC,MAAA,CAAO,KAAA,EAAP,EAAc,QAAA,EAAA,CAAA,EAAG,QAAQ,CAAA,OAAA,CAAA,EAAU,CAAA;AAAA,8BACpCA,GAAAA,CAAC,MAAA,CAAO,IAAA,EAAP,EAAY;AAAA;AAAA;AAAA,SACf;AAAA,wBACAA,GAAAA,CAAC,MAAA,CAAO,MAAA,EAAP,EACC,0BAAAA,GAAAA,CAAC,MAAA,CAAO,OAAA,EAAP,EAAe,SAAA,EAAU,oCAAA,EACvB,kBAAQ,GAAA,CAAI,CAAC,GAAA,qBACZ4C,IAAAA,CAAC,MAAA,CAAO,MAAP,EAAsB,KAAA,EAAO,MAAA,CAAO,GAAG,CAAA,EACtC,QAAA,EAAA;AAAA,0BAAAA,IAAAA,CAAC,MAAA,CAAO,QAAA,EAAP,EAAiB,QAAA,EAAA;AAAA,YAAA,GAAA;AAAA,YAAI;AAAA,WAAA,EAAO,CAAA;AAAA,0BAC7B5C,GAAAA,CAAC,MAAA,CAAO,aAAA,EAAP,EAAqB;AAAA,SAAA,EAAA,EAFN,GAGlB,CACD,CAAA,EACH,CAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ,CAAC;AAED,oBAAA,CAAqB,WAAA,GAAc,uBAAA;AAK5B,IAAM,gBAAA,GAAyB6J,OAAA,CAAA,UAAA,CAGpC,SAASY,iBAAAA,CAAiB,EAAE,WAAW,QAAA,EAAU,GAAG,SAAA,EAAU,EAAG,GAAA,EAAK;AACtE,EAAA,MAAM,EAAE,UAAA,EAAY,OAAA,EAAS,UAAA,KAAe,oBAAA,EAAqB;AACjE,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAUZ,iBAAiB,EAAE,CAAA;AAE/C,EAAA,MAAM,aAAA,GAAsBA,OAAA,CAAA,WAAA;AAAA,IAC1B,CAAC,CAAA,KAA6C;AAC5C,MAAA,IAAI,CAAA,CAAE,QAAQ,OAAA,EAAS;AACrB,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,MAAM,GAAA,GAAM,QAAA,CAAS,GAAA,EAAK,EAAE,CAAA;AAC5B,QAAA,IAAI,CAAC,KAAA,CAAM,GAAG,KAAK,GAAA,IAAO,CAAA,IAAK,OAAO,UAAA,EAAY;AAChD,UAAA,OAAA,CAAQ,GAAG,CAAA;AACX,UAAA,MAAA,CAAO,EAAE,CAAA;AAAA,QACX;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,CAAC,GAAA,EAAK,UAAA,EAAY,OAAO;AAAA,GAC3B;AAEA,EAAA,uBACEjH,IAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,UAAA,CAAW,uBAAA,EAAyB,SAAS,CAAA;AAAA,MACvD,GAAG,SAAA;AAAA,MACL,QAAA,EAAA;AAAA,QAAA,OAAA;AAAA,wBAEC5C,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,GAAA,EAAK,CAAA;AAAA,YACL,GAAA,EAAK,UAAA;AAAA,YACL,YAAA,EAAW,cAAA;AAAA,YACX,QAAA,EAAU,UAAA;AAAA,YACV,KAAA,EAAO,GAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,MAAA,CAAO,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YACtC,SAAA,EAAW,aAAA;AAAA,YACX,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA;AAAA,GACF;AAEJ,CAAC;AAED,gBAAA,CAAiB,WAAA,GAAc,mBAAA;AAKxB,IAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,cAAA,EAAgB;AAAA,EACtD,IAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAM,cAAA;AAAA,EACN,KAAA,EAAO,eAAA;AAAA,EACP,IAAA,EAAM,cAAA;AAAA,EACN,QAAA,EAAU,kBAAA;AAAA,EACV,UAAA,EAAY,oBAAA;AAAA,EACZ,MAAA,EAAQ;AACV,CAAC;AC1vBD,IAAM,eAAA,GAAwB,sBAA8C,IAAI,CAAA;AAEzE,SAAS,kBAAA,GAA2C;AACzD,EAAA,MAAM,OAAA,GAAgB,mBAAW,eAAe,CAAA;AAChD,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;AAEO,IAAM,WAAA,GAAc;AAMpB,IAAM,YAAA,GAAqB,OAAA,CAAA,UAAA;AAAA,EAChC,SAAS0K,aAAAA,CAAa,KAAA,EAAO,GAAA,EAAK;AAChC,IAAA,MAAM,YAAY,YAAA,EAAa;AAE/B,IAAA,MAAM;AAAA,MACJ,KAAA,EAAO,SAAA;AAAA,MACP,YAAA,EAAc,gBAAA;AAAA,MACd,aAAA;AAAA,MACA,WAAA,EAAa,eAAA;AAAA,MACb,kBAAA,GAAqB,EAAA;AAAA,MACrB,cAAA;AAAA,MACA,MAAA,EAAQ,UAAA;AAAA,MACR,WAAA,GAAc,KAAA;AAAA,MACd,YAAA;AAAA,MACA,UAAA,EAAY,YAAA;AAAA,MACZ,SAAA,EAAW,aAAA;AAAA,MACX,WAAW,aAAA,GAAgB,KAAA;AAAA,MAC3B,OAAA,GAAU,KAAA;AAAA,MACV,MAAM,QAAA,GAAW,IAAA;AAAA,MACjB,SAAS,WAAA,GAAc,SAAA;AAAA,MACvB,MAAA,GAAS,CAAC,OAAA,EAAiB,QAAA,EAAkB,MAAA,KAAmB;AAC9D,QAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,QAAA,MAAM,CAAA,GAAI,MAAA,CAAO,WAAA,EAAY,CAAE,IAAA,EAAK;AACpC,QAAA,OACE,OAAA,CAAQ,WAAA,EAAY,CAAE,QAAA,CAAS,CAAC,KAChC,QAAA,CAAS,WAAA,EAAY,CAAE,QAAA,CAAS,CAAC,CAAA;AAAA,MAErC,CAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,EAAA,EAAI,MAAA;AAAA,MACJ,IAAA,EAAM,QAAA;AAAA,MACN,UAAA,EAAY,cAAA;AAAA,MACZ,kBAAA,EAAoB,mBAAA;AAAA,MACpB,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,UAAA,GAAa,YAAA,IAAgB,SAAA,EAAW,QAAA,IAAY,KAAA;AAC1D,IAAA,MAAM,SAAA,GAAY,aAAA,IAAiB,SAAA,EAAW,KAAA,IAAS,KAAA;AACvD,IAAA,MAAM,UAAA,GAAa,cAAA,IAAmB,KAAA,CAAc,QAAA,IAAY,WAAW,QAAA,IAAY,KAAA;AACvF,IAAA,MAAM,IAAA,GAAO,YAAY,SAAA,EAAW,IAAA;AACpC,IAAA,MAAM,eAAA,GAAkB;AAAA,MACtB,mBAAA;AAAA,MACA,SAAA,EAAW,KAAA,IAAS,SAAA,EAAW,eAAA,GAAkB,UAAU,cAAA,GAAiB,IAAA;AAAA,MAC5E,SAAA,EAAW,aAAA,GAAgB,SAAA,CAAU,YAAA,GAAe;AAAA,MAEnD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAEhB,IAAA,MAAMzB,SAAO,QAAA,IAAY,IAAA;AACzB,IAAA,MAAM,OAAA,GAAU,WAAA;AAChB,IAAA,MAAM,SAAA,GAAY,aAAA;AAElB,IAAA,MAAM,MAAA,GAAe,OAAA,CAAA,KAAA,EAAM,CAAE,OAAA,CAAQ,MAAM,EAAE,CAAA;AAC7C,IAAA,MAAM,gBAAA,GAAmB,qBAAqB,MAAM,CAAA,CAAA;AACpD,IAAA,MAAM,OAAA,GAAU,MAAA,IAAU,SAAA,EAAW,EAAA,IAAM,gBAAA;AAC3C,IAAA,MAAM,SAAA,GAAY,uBAAuB,MAAM,CAAA,CAAA;AAG/C,IAAA,MAAM,UAAA,GAAa,SAAA,KAAc,MAAA,GAAY,SAAA,GAAY,gBAAA;AACzD,IAAA,MAAM,qBAAA,GACJ,CAAC,OAAA,IAAW,OAAA,IAAW,UAAA,KAAe,MAAA,GAClC,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,KAAU,UAAU,CAAA,GAC1C,MAAA;AAEN,IAAA,MAAM,qBAAA,GACJ,kBAAA,KACC,OAAO,qBAAA,EAAuB,KAAA,KAAU,QAAA,GACrC,qBAAA,CAAsB,KAAA,GACtB,OAAO,qBAAA,EAAuB,KAAA,KAAU,QAAA,GACtC,sBAAsB,KAAA,GACtB,EAAA,CAAA;AAGR,IAAA,MAAM,CAAC,KAAA,EAAO,aAAa,CAAA,GAAI,oBAAA,CAA0B;AAAA,MACvD,KAAA,EAAO,SAAA;AAAA,MACP,cAAc,gBAAA,KAAqB,MAAA,GAAY,gBAAA,GAAmB,OAAA,GAAU,EAAC,GAAI,EAAA;AAAA,MACjF,QAAA,EAAU;AAAA,KACX,CAAA;AAGD,IAAA,MAAM,CAAC,WAAA,EAAa,mBAAmB,CAAA,GAAI,oBAAA,CAA6B;AAAA,MACtE,KAAA,EAAO,eAAA;AAAA,MACP,YAAA,EAAc,qBAAA;AAAA,MACd,QAAA,EAAU;AAAA,KACX,CAAA;AAGD,IAAA,MAAM,CAAC,MAAA,EAAQ,cAAc,CAAA,GAAI,oBAAA,CAA8B;AAAA,MAC7D,KAAA,EAAO,UAAA;AAAA,MACP,YAAA,EAAc,WAAA;AAAA,MACd,QAAA,EAAU;AAAA,KACX,CAAA;AAED,IAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAU,iBAAkB,KAAK,CAAA;AACnE,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAU,iBAEpD,IAAI,CAAA;AAEN,IAAA,MAAM,iBAAA,GAA0B,OAAA,CAAA,WAAA;AAAA,MAC9B,CAAC,MAAA,KAA0C;AACzC,QAAA,IAAI,UAAA,EAAY;AAChB,QAAA,cAAA,CAAe,KAAK,CAAA;AACpB,QAAA,mBAAA,CAAoB,MAAM,CAAA;AAC1B,QAAA,cAAA,CAAe,IAAI,CAAA;AAAA,MACrB,CAAA;AAAA,MACA,CAAC,YAAY,cAAc;AAAA,KAC7B;AAEA,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAU,iBAAwB,IAAI,CAAA;AAClE,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAU,iBAAkB,IAAI,CAAA;AAChE,IAAA,MAAM,qBAAA,GAA8B,OAAA,CAAA,WAAA,CAAY,CAAC,GAAA,KAAiB;AAChE,MAAA,aAAA,CAAc,CAAC,IAAA,KAAU,IAAA,KAAS,GAAA,GAAM,OAAO,GAAI,CAAA;AAAA,IACrD,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,QAAA,GAAiB,eAAgC,IAAI,CAAA;AAC3D,IAAA,MAAM,iBAAA,GAA0B,eAA8B,IAAI,CAAA;AAGlE,IAAA,MAAM;AAAA,MACJ,IAAA;AAAA,MACA,cAAA;AAAA,MACA,OAAA,EAAS;AAAA,QACPxD,WAAAA,CAAY;AAAA,MACd,IAAA,EAAM,MAAA;AAAA,MACN,YAAA,EAAc,CAAC,IAAA,KAAS;AACtB,QAAA,IAAI,CAAC,UAAA,EAAY;AACf,UAAA,cAAA,CAAe,IAAI,CAAA;AAAA,QACrB;AAAA,MACF,CAAA;AAAA,MACA,oBAAA,EAAsBC,UAAAA;AAAA,MACtB,SAAA,EAAW,cAAA;AAAA,MACX,UAAA,EAAY;AAAA,QACVC,OAAO,CAAC,CAAA;AAAA,QACRC,IAAAA,CAAK,EAAE,yBAAA,EAA2B,OAAA,EAAS,CAAA;AAAA,QAC3CC,KAAAA,CAAM,EAAE,OAAA,EAAS,CAAA,EAAG,CAAA;AAAA,QACpBqD,IAAAA,CAAa;AAAA,UACX,KAAA,CAAM,EAAE,KAAA,EAAO,QAAA,EAAS,EAAG;AACzB,YAAA,MAAA,CAAO,MAAA,CAAO,QAAA,CAAS,QAAA,CAAS,KAAA,EAAO;AAAA,cACrC,KAAA,EAAO,CAAA,EAAG,KAAA,CAAM,SAAA,CAAU,KAAK,CAAA,EAAA;AAAA,aAChC,CAAA;AAAA,UACH;AAAA,SACD;AAAA;AACH,KACD,CAAA;AAED,IAAA,MAAM,OAAA,GAAUnD,WAAW,eAAA,EAAiB;AAAA,MAC1C,YAAA,EAAc,IAAA;AAAA,MACd,SAAA,EAAW;AAAA;AAAA,KACZ,CAAA;AAED,IAAAE,eAAAA,CAAgB,CAAC,OAAO,CAAC,CAAA;AAGzB,IAAA,MAAM,UAAA,GAAmB,OAAA,CAAA,WAAA;AAAA,MACvB,CAAC,SAAiB,QAAA,KAAqB;AACrC,QAAA,IAAI,OAAA,EAAS;AACX,UAAA,MAAM,aAAa,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,QAAQ,EAAC;AACnD,UAAA,MAAM,MAAA,GAAS,UAAA,CAAW,QAAA,CAAS,OAAO,CAAA;AAC1C,UAAA,MAAM,OAAA,GAAU,MAAA,GACZ,UAAA,CAAW,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,KAAM,OAAO,CAAA,GACtC,CAAC,GAAG,UAAA,EAAY,OAAO,CAAA;AAC3B,UAAA,aAAA,CAAc,OAAO,CAAA;AACrB,UAAA,mBAAA,CAAoB,EAAE,CAAA;AACtB,UAAA,cAAA,CAAe,KAAK,CAAA;AACpB,UAAA,IAAI,SAAS,OAAA,EAAS;AACpB,YAAA,QAAA,CAAS,QAAQ,KAAA,EAAM;AAAA,UACzB;AAAA,QACF,CAAA,MAAO;AACL,UAAA,aAAA,CAAc,OAAO,CAAA;AACrB,UAAA,mBAAA,CAAoB,YAAY,OAAO,CAAA;AACvC,UAAA,cAAA,CAAe,KAAK,CAAA;AACpB,UAAA,cAAA,CAAe,KAAK,CAAA;AACpB,UAAA,WAAA,CAAY,IAAI,CAAA;AAChB,UAAA,IAAI,SAAS,OAAA,EAAS;AACpB,YAAA,QAAA,CAAS,QAAQ,KAAA,EAAM;AAAA,UACzB;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,CAAC,OAAA,EAAS,KAAA,EAAO,aAAA,EAAe,qBAAqB,cAAc;AAAA,KACrE;AAEA,IAAA,MAAM,UAAA,GAAmB,OAAA,CAAA,WAAA;AAAA,MACvB,CAAC,OAAA,KAAoB;AACnB,QAAA,IAAI,OAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACnC,UAAA,aAAA,CAAc,MAAM,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,KAAM,OAAO,CAAC,CAAA;AAAA,QAClD;AAAA,MACF,CAAA;AAAA,MACA,CAAC,OAAA,EAAS,KAAA,EAAO,aAAa;AAAA,KAChC;AAEA,IAAA,MAAM,cAAA,GAAuB,oBAAY,MAAM;AAC7C,MAAA,aAAA,CAAc,OAAA,GAAU,EAAC,GAAI,EAAE,CAAA;AAC/B,MAAA,mBAAA,CAAoB,EAAE,CAAA;AACtB,MAAA,cAAA,CAAe,KAAK,CAAA;AACpB,MAAA,WAAA,CAAY,IAAI,CAAA;AAChB,MAAA,IAAI,SAAS,OAAA,EAAS;AACpB,QAAA,QAAA,CAAS,QAAQ,KAAA,EAAM;AAAA,MACzB;AAAA,IACF,CAAA,EAAG,CAAC,OAAA,EAAS,aAAA,EAAe,mBAAmB,CAAC,CAAA;AAEhD,IAAA,MAAM,YAAA,GAAqB,OAAA,CAAA,WAAA,CAAY,MAAM,MAAM;AAAA,IAAC,CAAA,EAAG,EAAE,CAAA;AACzD,IAAA,MAAM,oBAAA,GAA6B,oBAAY,MAAM;AAAA,IAAC,CAAA,EAAG,EAAE,CAAA;AAE3D,IAAA,MAAM,YAAA,GAA8C,OAAA,CAAA,OAAA;AAAA,MAClD,OAAO;AAAA,QACL,KAAA;AAAA,QACA,UAAA;AAAA,QACA,UAAA;AAAA,QACA,cAAA;AAAA,QACA,WAAA;AAAA,QACA,cAAA,EAAgB,mBAAA;AAAA,QAChB,MAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,QAAA;AAAA,QACA,WAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAY,IAAA,CAAK,YAAA;AAAA,QACjB,YAAY,IAAA,CAAK,WAAA;AAAA,QACjB,iBAAA;AAAA,QACA,UAAA;AAAA,QACA,aAAA,EAAe,qBAAA;AAAA,QACf,cAAA;AAAA,QACA,SAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,cACAgD,MAAA;AAAA,QACA,OAAA;AAAA,QACA,MAAA;AAAA,QACA,WAAA;AAAA,QACA,cAAA;AAAA,QACA,gBAAA;AAAA,QACA,mBAAA;AAAA,QACA,iBAAA;AAAA,QACA,eAAA;AAAA,QACA,UAAA;AAAA,QACA,IAAA;AAAA,QACA,YAAA;AAAA,QACA,oBAAA;AAAA,QACA,cAAc,EAAC;AAAA,QACf,aAAA,EAAe,aAAa,CAAA,GAAI;AAAA,OAClC,CAAA;AAAA,MACA;AAAA,QACE,KAAA;AAAA,QACA,UAAA;AAAA,QACA,UAAA;AAAA,QACA,cAAA;AAAA,QACA,WAAA;AAAA,QACA,mBAAA;AAAA,QACA,MAAA;AAAA,QACA,cAAA;AAAA,QACA,QAAA;AAAA,QACA,IAAA,CAAK,YAAA;AAAA,QACL,IAAA,CAAK,WAAA;AAAA,QACL,UAAA;AAAA,QACA,qBAAA;AAAA,QACA,cAAA;AAAA,QACA,SAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACAA,MAAA;AAAA,QACA,OAAA;AAAA,QACA,MAAA;AAAA,QACA,WAAA;AAAA,QACA,gBAAA;AAAA,QACA,iBAAA;AAAA,QACA,eAAA;AAAA,QACA,UAAA;AAAA,QACA,IAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,MAAM,WAAA,GAAc,UAAA;AAAA,MAClB,aAAA;AAAA,MACA,gBAAgBA,MAAI,CAAA,CAAA;AAAA,MACpB,gBAAgB,OAAO,CAAA,CAAA;AAAA,MACvB;AAAA,KACF;AAEA,IAAA,MAAM,aAAA,GAAgB,YAAA,CAAa,GAAA,EAAK,IAAA,CAAK,YAAY,CAAA;AAEzD,IAAA,uBACEjJ,IAAC,eAAA,CAAgB,QAAA,EAAhB,EAAyB,KAAA,EAAO,YAAA,EAC/B,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAK,aAAA,EAAe,SAAA,EAAW,aAAc,GAAG,IAAA,EAClD,sCACC4C,IAAAA,CAAA2C,UAAA,EACE,QAAA,EAAA;AAAA,sBAAA3C,KAAC,eAAA,EAAA,EACE,QAAA,EAAA;AAAA,QAAA,OAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,IAAK,MAAM,MAAA,GAAS,CAAA,oBACjD5C,GAAAA,CAAC,SAAI,SAAA,EAAU,mBAAA,EACZ,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,GAAA,KAAQ;AAClB,UAAA,MAAM,MAAM,OAAA,EAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,UAAU,GAAG,CAAA;AAChD,UAAA,uBACEA,IAAC,WAAA,EAAA,EAAsB,KAAA,EAAO,KAC3B,QAAA,EAAA,GAAA,EAAK,KAAA,IAAS,OADC,GAElB,CAAA;AAAA,QAEJ,CAAC,CAAA,EACH,CAAA;AAAA,wBAEFA,GAAAA,CAAC,aAAA,EAAA,EAAc,WAAA,EAA0B,CAAA;AAAA,wBACzCA,IAAC,aAAA,EAAA,EAAc,CAAA;AAAA,wBACfA,IAAC,eAAA,EAAA,EAAgB;AAAA,OAAA,EACnB,CAAA;AAAA,sBACA4C,KAAC,eAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA5C,GAAAA,CAAC,iBAAc,QAAA,EAAA,mBAAA,EAAiB,CAAA;AAAA,QAC/B,OAAA,EAAS,GAAA,CAAI,CAAC,GAAA,qBACbA,GAAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YAEC,OAAO,GAAA,CAAI,KAAA;AAAA,YACX,YAAY,GAAA,CAAI,QAAA;AAAA,YAEf,QAAA,EAAA,GAAA,CAAI,SAAS,GAAA,CAAI;AAAA,WAAA;AAAA,UAJb,GAAA,CAAI;AAAA,SAMZ;AAAA,OAAA,EACH;AAAA,KAAA,EACF,GAEJ,CAAA,EACF,CAAA;AAAA,EAEJ;AACF;AAMO,IAAM,eAAA,GAAwB,OAAA,CAAA,UAAA;AAAA,EACnC,SAAS2K,gBAAAA,CAAgB,KAAA,EAAO,GAAA,EAAK;AACnC,IAAA,MAAM,MAAM,kBAAA,EAAmB;AAC/B,IAAA,MAAM,EAAE,OAAA,GAAU,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AAC1D,IAAA,MAAM,WAAA,GAAc,YAAA,CAAa,GAAA,EAAK,GAAA,CAAI,UAAU,CAAA;AAEpD,IAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,sBAAA,EAAwB,SAAS,CAAA;AAEnE,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE3K,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,WAAA;AAAA,UACL,eAAA,EAAe,GAAA,CAAI,UAAA,GAAa,MAAA,GAAS,MAAA;AAAA,UACzC,cAAA,EAAc,GAAA,CAAI,SAAA,GAAY,MAAA,GAAS,MAAA;AAAA,UACvC,SAAA,EAAW,cAAA;AAAA,UACV,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,WAAA;AAAA,QACL,eAAA,EAAe,GAAA,CAAI,UAAA,GAAa,MAAA,GAAS,MAAA;AAAA,QACzC,cAAA,EAAc,GAAA,CAAI,SAAA,GAAY,MAAA,GAAS,MAAA;AAAA,QACvC,SAAA,EAAW,cAAA;AAAA,QACV,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAMO,IAAM,aAAA,GAAsB,OAAA,CAAA,UAAA;AAAA,EACjC,SAAS4K,cAAAA,CAAc,KAAA,EAAO,GAAA,EAAK;AACjC,IAAA,MAAM,GAAA,GAAY,mBAAW,eAAe,CAAA;AAC5C,IAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,4CAA4C,CAAA;AAEtE,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,WAAA;AAAA,MACA,KAAA,EAAO,YAAA;AAAA,MACP,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,UAAA,GAAa,gBAAgB,GAAA,CAAI,UAAA;AAEvC,IAAA,MAAM,oBAAoB,MAAM;AAC9B,MAAA,MAAM,SAAA,GAAY,IAAI,iBAAA,CAAkB,OAAA;AACxC,MAAA,IAAI,CAAC,SAAA,EAAW,OAAO,EAAC;AACxB,MAAA,OAAO,KAAA,CAAM,IAAA;AAAA,QACX,SAAA,CAAU,gBAAA;AAAA,UACR;AAAA;AACF,OACF;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAA2C;AAC/D,MAAA,IAAI,UAAA,EAAY;AAChB,MAAA,MAAM,SAAA,GAAY,EAAE,MAAA,CAAO,KAAA;AAC3B,MAAA,GAAA,CAAI,eAAe,IAAI,CAAA;AACvB,MAAA,GAAA,CAAI,eAAe,SAAS,CAAA;AAC5B,MAAA,IAAI,CAAC,IAAI,MAAA,EAAQ;AACf,QAAA,GAAA,CAAI,UAAU,IAAI,CAAA;AAAA,MACpB;AACA,MAAA,QAAA,GAAW,CAAC,CAAA;AAAA,IACd,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAA6C;AAClE,MAAA,IAAI,UAAA,EAAY;AAEhB,MAAA,MAAM,UAAU,iBAAA,EAAkB;AAElC,MAAA,QAAQ,EAAE,GAAA;AAAK,QACb,KAAK,WAAA,EAAa;AAChB,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,IAAI,CAAC,IAAI,MAAA,EAAQ;AACf,YAAA,GAAA,CAAI,kBAAkB,GAAA,CAAI,KAAA,IAAS,CAAC,GAAA,CAAI,OAAA,GAAU,aAAa,OAAO,CAAA;AACtE,YAAA;AAAA,UACF;AACA,UAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACtB,YAAA,MAAM,YAAA,GAAe,QAAQ,SAAA,CAAU,CAAC,QAAQ,GAAA,CAAI,EAAA,KAAO,IAAI,QAAQ,CAAA;AACvE,YAAA,MAAM,SAAA,GACJ,iBAAiB,EAAA,IAAM,YAAA,KAAiB,QAAQ,MAAA,GAAS,CAAA,GACrD,IACA,YAAA,GAAe,CAAA;AACrB,YAAA,MAAM,MAAA,GAAS,QAAQ,SAAS,CAAA;AAChC,YAAA,IAAI,MAAA,EAAQ;AACV,cAAA,GAAA,CAAI,WAAA,CAAY,OAAO,EAAE,CAAA;AACzB,cAAA,MAAA,CAAO,cAAA,GAAiB,EAAE,KAAA,EAAO,SAAA,EAAW,CAAA;AAAA,YAC9C;AAAA,UACF;AACA,UAAA;AAAA,QACF;AAAA,QAEA,KAAK,SAAA,EAAW;AACd,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,IAAI,CAAC,IAAI,MAAA,EAAQ;AACf,YAAA,GAAA,CAAI,kBAAkB,GAAA,CAAI,KAAA,IAAS,CAAC,GAAA,CAAI,OAAA,GAAU,aAAa,MAAM,CAAA;AACrE,YAAA;AAAA,UACF;AACA,UAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACtB,YAAA,MAAM,YAAA,GAAe,QAAQ,SAAA,CAAU,CAAC,QAAQ,GAAA,CAAI,EAAA,KAAO,IAAI,QAAQ,CAAA;AACvE,YAAA,MAAM,YACJ,YAAA,IAAgB,CAAA,GAAI,OAAA,CAAQ,MAAA,GAAS,IAAI,YAAA,GAAe,CAAA;AAC1D,YAAA,MAAM,MAAA,GAAS,QAAQ,SAAS,CAAA;AAChC,YAAA,IAAI,MAAA,EAAQ;AACV,cAAA,GAAA,CAAI,WAAA,CAAY,OAAO,EAAE,CAAA;AACzB,cAAA,MAAA,CAAO,cAAA,GAAiB,EAAE,KAAA,EAAO,SAAA,EAAW,CAAA;AAAA,YAC9C;AAAA,UACF;AACA,UAAA;AAAA,QACF;AAAA,QAEA,KAAK,MAAA,EAAQ;AACX,UAAA,IAAI,GAAA,CAAI,MAAA,IAAU,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AACpC,YAAA,CAAA,CAAE,cAAA,EAAe;AACjB,YAAA,MAAM,MAAA,GAAS,QAAQ,CAAC,CAAA;AACxB,YAAA,IAAI,MAAA,EAAQ;AACV,cAAA,GAAA,CAAI,WAAA,CAAY,OAAO,EAAE,CAAA;AACzB,cAAA,MAAA,CAAO,cAAA,GAAiB,EAAE,KAAA,EAAO,SAAA,EAAW,CAAA;AAAA,YAC9C;AAAA,UACF;AACA,UAAA;AAAA,QACF;AAAA,QAEA,KAAK,KAAA,EAAO;AACV,UAAA,IAAI,GAAA,CAAI,MAAA,IAAU,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AACpC,YAAA,CAAA,CAAE,cAAA,EAAe;AACjB,YAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,OAAA,CAAQ,MAAA,GAAS,CAAC,CAAA;AACzC,YAAA,IAAI,MAAA,EAAQ;AACV,cAAA,GAAA,CAAI,WAAA,CAAY,OAAO,EAAE,CAAA;AACzB,cAAA,MAAA,CAAO,cAAA,GAAiB,EAAE,KAAA,EAAO,SAAA,EAAW,CAAA;AAAA,YAC9C;AAAA,UACF;AACA,UAAA;AAAA,QACF;AAAA,QAEA,KAAK,OAAA,EAAS;AACZ,UAAA,IAAI,GAAA,CAAI,MAAA,IAAU,GAAA,CAAI,QAAA,EAAU;AAC9B,YAAA,CAAA,CAAE,cAAA,EAAe;AACjB,YAAA,MAAM,QAAA,GAAW,QAAA,CAAS,cAAA,CAAe,GAAA,CAAI,QAAQ,CAAA;AACrD,YAAA,IAAI,QAAA,IAAY,QAAA,CAAS,YAAA,CAAa,eAAe,MAAM,MAAA,EAAQ;AACjE,cAAA,MAAM,GAAA,GAAM,QAAA,CAAS,YAAA,CAAa,YAAY,CAAA,IAAK,EAAA;AACnD,cAAA,MAAM,OACJ,QAAA,CAAS,YAAA,CAAa,YAAY,CAAA,IAClC,SAAS,WAAA,IACT,GAAA;AACF,cAAA,GAAA,CAAI,UAAA,CAAW,KAAK,IAAI,CAAA;AAAA,YAC1B;AAAA,UACF;AACA,UAAA;AAAA,QACF;AAAA,QAEA,KAAK,QAAA,EAAU;AACb,UAAA,IAAI,IAAI,MAAA,EAAQ;AACd,YAAA,CAAA,CAAE,cAAA,EAAe;AACjB,YAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,YAAA,GAAA,CAAI,UAAU,KAAK,CAAA;AACnB,YAAA,GAAA,CAAI,YAAY,IAAI,CAAA;AAAA,UACtB;AACA,UAAA;AAAA,QACF;AAAA,QAEA,KAAK,KAAA,EAAO;AACV,UAAA,IAAI,IAAI,MAAA,EAAQ;AACd,YAAA,GAAA,CAAI,UAAU,KAAK,CAAA;AACnB,YAAA,GAAA,CAAI,YAAY,IAAI,CAAA;AAAA,UACtB;AACA,UAAA;AAAA,QACF;AAAA,QAEA,KAAK,WAAA,EAAa;AAChB,UAAA,IACE,GAAA,CAAI,OAAA,IACJ,CAAC,GAAA,CAAI,WAAA,IACL,KAAA,CAAM,OAAA,CAAQ,GAAA,CAAI,KAAK,CAAA,IACvB,GAAA,CAAI,KAAA,CAAM,SAAS,CAAA,EACnB;AACA,YAAA,MAAM,UAAU,GAAA,CAAI,KAAA,CAAM,GAAA,CAAI,KAAA,CAAM,SAAS,CAAC,CAAA;AAC9C,YAAA,GAAA,CAAI,WAAW,OAAO,CAAA;AAAA,UACxB;AACA,UAAA;AAAA,QACF;AAAA;AAGF,MAAA,SAAA,GAAY,CAAC,CAAA;AAAA,IACf,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA0C;AAC7D,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAEA,IAAA,MAAM,UAAA,GAAa,CAAC,CAAA,KAA0C;AAC5D,MAAA,MAAA,GAAS,CAAC,CAAA;AAAA,IACZ,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA0C;AAC7D,MAAA,IAAI,UAAA,EAAY;AAChB,MAAA,IAAI,CAAC,IAAI,MAAA,EAAQ;AACf,QAAA,GAAA,CAAI,kBAAkB,UAAU,CAAA;AAChC,QAAA,IAAI,CAAC,GAAA,CAAI,OAAA,IAAW,GAAA,CAAI,KAAA,EAAO;AAC7B,UAAA,GAAA,CAAI,QAAA,CAAS,SAAS,MAAA,EAAO;AAAA,QAC/B;AAAA,MACF;AACA,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,CAAC,IAAA,KAAkC;AACrD,MAAA,GAAA,CAAI,SAAS,OAAA,GAAU,IAAA;AACvB,MAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,QAAA,GAAA,CAAI,IAAI,CAAA;AAAA,MACV,WAAW,GAAA,EAAK;AACd,QAAA,GAAA,CAAI,OAAA,GAAU,IAAA;AAAA,MAChB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,UAAA,GACJ,YAAA,KAAiB,MAAA,GAAY,YAAA,GAAe,GAAA,CAAI,WAAA;AAElD,IAAA,MAAM,YAAA,GAAe,UAAA,CAAW,oBAAA,EAAsB,SAAS,CAAA;AAE/D,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE5K,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACE,GAAI;AAAA,YACH,GAAA,EAAK,WAAA;AAAA,YACL,IAAA,EAAM,UAAA;AAAA,YACN,mBAAA,EAAqB,MAAA;AAAA,YACrB,iBAAiB,GAAA,CAAI,MAAA;AAAA,YACrB,iBAAiB,GAAA,CAAI,SAAA;AAAA,YACrB,uBAAA,EAAyB,IAAI,QAAA,IAAY,MAAA;AAAA,YACzC,eAAA,EAAiB,SAAA;AAAA,YACjB,cAAA,EAAgB,IAAI,SAAA,IAAa,MAAA;AAAA,YACjC,iBAAiB,UAAA,IAAc,MAAA;AAAA,YAC/B,WAAA,EAAa,IAAI,SAAA,IAAa,MAAA;AAAA,YAC9B,oBAAoB,GAAA,CAAI,eAAA;AAAA,YACxB,eAAA,EAAiB,IAAI,UAAA,IAAc,MAAA;AAAA,YACnC,MAAM,GAAA,CAAI,IAAA;AAAA,YACV,QAAA,EAAU,IAAI,UAAA,IAAc,MAAA;AAAA,YAC5B,IAAI,GAAA,CAAI,OAAA;AAAA,YACR,YAAA,EAAc,KAAA;AAAA,YACd,UAAA,EAAY,OAAA;AAAA,YACZ,KAAA,EAAO,UAAA;AAAA,YACP,QAAA,EAAU,YAAA;AAAA,YACV,SAAA,EAAW,aAAA;AAAA,YACX,OAAA,EAAS,WAAA;AAAA,YACT,MAAA,EAAQ,UAAA;AAAA,YACR,OAAA,EAAS,WAAA;AAAA,YACT,WAAA;AAAA,YACA,SAAA,EAAW,YAAA;AAAA,YACX,GAAG;AAAA;AACL;AAAA,OACF;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,WAAA;AAAA,QACL,IAAA,EAAK,MAAA;AAAA,QACL,IAAA,EAAK,UAAA;AAAA,QACL,mBAAA,EAAkB,MAAA;AAAA,QAClB,iBAAe,GAAA,CAAI,MAAA;AAAA,QACnB,iBAAe,GAAA,CAAI,SAAA;AAAA,QACnB,uBAAA,EAAuB,IAAI,QAAA,IAAY,MAAA;AAAA,QACvC,eAAA,EAAc,SAAA;AAAA,QACd,cAAA,EAAc,IAAI,SAAA,IAAa,MAAA;AAAA,QAC/B,iBAAe,UAAA,IAAc,MAAA;AAAA,QAC7B,WAAA,EAAW,IAAI,SAAA,IAAa,MAAA;AAAA,QAC5B,oBAAkB,GAAA,CAAI,eAAA;AAAA,QACtB,eAAA,EAAe,IAAI,UAAA,IAAc,MAAA;AAAA,QACjC,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,QAAA,EAAU,IAAI,UAAA,IAAc,MAAA;AAAA,QAC5B,QAAA,EAAU,UAAA;AAAA,QACV,IAAI,GAAA,CAAI,OAAA;AAAA,QACR,YAAA,EAAa,KAAA;AAAA,QACb,UAAA,EAAW,OAAA;AAAA,QACX,KAAA,EAAO,UAAA;AAAA,QACP,QAAA,EAAU,YAAA;AAAA,QACV,SAAA,EAAW,aAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QACT,MAAA,EAAQ,UAAA;AAAA,QACR,OAAA,EAAS,WAAA;AAAA,QACT,WAAA;AAAA,QACA,SAAA,EAAW,YAAA;AAAA,QACV,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAMO,IAAM,eAAA,GAAwB,OAAA,CAAA,UAAA;AAAA,EACnC,SAAS6K,gBAAAA,CAAgB,KAAA,EAAO,GAAA,EAAK;AACnC,IAAA,MAAM,MAAM,kBAAA,EAAmB;AAC/B,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,UAAA,GAAa,gBAAgB,GAAA,CAAI,UAAA;AAEvC,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA2C;AAC9D,MAAA,IAAI,UAAA,EAAY;AAChB,MAAA,IAAI,IAAI,MAAA,EAAQ;AACd,QAAA,GAAA,CAAI,UAAU,KAAK,CAAA;AAAA,MACrB,CAAA,MAAO;AACL,QAAA,GAAA,CAAI,kBAAkB,UAAU,CAAA;AAAA,MAClC;AACA,MAAA,IAAI,GAAA,CAAI,SAAS,OAAA,EAAS;AACxB,QAAA,GAAA,CAAI,QAAA,CAAS,QAAQ,KAAA,EAAM;AAAA,MAC7B;AACA,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAEA,IAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,sBAAA,EAAwB,SAAS,CAAA;AAEnE,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE7K,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,IAAA,EAAK,QAAA;AAAA,UACL,QAAA,EAAU,EAAA;AAAA,UACV,YAAA,EAAW,gBAAA;AAAA,UACX,YAAA,EAAY,GAAA,CAAI,MAAA,GAAS,MAAA,GAAS,QAAA;AAAA,UAClC,iBAAe,UAAA,IAAc,MAAA;AAAA,UAC7B,OAAA,EAAS,WAAA;AAAA,UACT,SAAA,EAAW,cAAA;AAAA,UACV,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,QAAA;AAAA,QACL,QAAA,EAAU,EAAA;AAAA,QACV,YAAA,EAAW,gBAAA;AAAA,QACX,YAAA,EAAY,GAAA,CAAI,MAAA,GAAS,MAAA,GAAS,QAAA;AAAA,QAClC,QAAA,EAAU,UAAA;AAAA,QACV,OAAA,EAAS,WAAA;AAAA,QACT,SAAA,EAAW,cAAA;AAAA,QACV,GAAG,IAAA;AAAA,QAEH,sCACCA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,2BAAA;AAAA,YACV,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YACf,aAAA,EAAY,MAAA;AAAA,YAEZ,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,cAAA,EAAe;AAAA;AAAA;AACzB;AAAA,KAEJ;AAAA,EAEJ;AACF;AAMO,IAAM,iBAAgD,CAAC;AAAA,EAC5D,QAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,OAAO,SAAA,KAAc,MAAA,mBACnBA,GAAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAuB,QAAA,EAAS,CAAA,mBAExCA,GAAAA,CAAC,MAAA,EAAA,EAAQ,QAAA,EAAS,CAAA;AAEtB;AAMO,IAAM,eAAA,GAAwB,OAAA,CAAA,UAAA;AAAA,EACnC,SAAS8K,gBAAAA,CAAgB,KAAA,EAAO,GAAA,EAAK;AACnC,IAAA,MAAM,GAAA,GAAY,mBAAW,eAAe,CAAA;AAC5C,IAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAExE,IAAA,MAAM,EAAE,UAAU,KAAA,EAAO,SAAA,EAAW,OAAO,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AAEjE,IAAA,MAAM,WAAA,GAAc,CAAC,IAAA,KAAgC;AACnD,MAAA,GAAA,CAAI,WAAW,IAAI,CAAA;AACnB,MAAA,GAAA,CAAI,kBAAkB,OAAA,GAAU,IAAA;AAChC,MAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,QAAA,GAAA,CAAI,IAAI,CAAA;AAAA,MACV,WAAW,GAAA,EAAK;AACd,QAAA,GAAA,CAAI,OAAA,GAAU,IAAA;AAAA,MAChB;AAAA,IACF,CAAA;AAGA,IAAM,wBAAgB,MAAM;AAC1B,MAAA,IAAI,GAAA,CAAI,MAAA,IAAU,GAAA,CAAI,iBAAA,CAAkB,OAAA,EAAS;AAC/C,QAAA,MAAM,SAAA,GAAY,IAAI,iBAAA,CAAkB,OAAA;AACxC,QAAA,MAAM,aAAa,KAAA,CAAM,IAAA;AAAA,UACvB,SAAA,CAAU,iBAA8B,iBAAiB;AAAA,SAC3D;AACA,QAAA,MAAM,iBAAiB,UAAA,CAAW,MAAA;AAAA,UAChC,CAAC,EAAA,KAAO,EAAA,CAAG,YAAA,CAAa,eAAe,CAAA,KAAM;AAAA,SAC/C;AAEA,QAAA,GAAA,CAAI,aAAA,CAAc,UAAA,CAAW,MAAA,GAAS,CAAC,CAAA;AAEvC,QAAA,IAAI,IAAI,gBAAA,EAAkB;AACxB,UAAA,IAAI,QAAA,GAA+B,IAAA;AACnC,UAAA,IAAI,GAAA,CAAI,gBAAA,KAAqB,OAAA,IAAW,cAAA,CAAe,SAAS,CAAA,EAAG;AACjE,YAAA,QAAA,GAAW,cAAA,CAAe,CAAC,CAAA,IAAK,IAAA;AAAA,UAClC,WAAW,GAAA,CAAI,gBAAA,KAAqB,MAAA,IAAU,cAAA,CAAe,SAAS,CAAA,EAAG;AACvE,YAAA,QAAA,GAAW,cAAA,CAAe,cAAA,CAAe,MAAA,GAAS,CAAC,CAAA,IAAK,IAAA;AAAA,UAC1D,CAAA,MAAA,IAAW,GAAA,CAAI,gBAAA,KAAqB,UAAA,EAAY;AAC9C,YAAA,MAAM,aAAa,cAAA,CAAe,IAAA;AAAA,cAChC,CAAC,EAAA,KAAO,EAAA,CAAG,YAAA,CAAa,eAAe,CAAA,KAAM;AAAA,aAC/C;AACA,YAAA,QAAA,GAAW,eAAe,cAAA,CAAe,MAAA,GAAS,IAAI,cAAA,CAAe,CAAC,KAAK,IAAA,GAAO,IAAA,CAAA;AAAA,UACpF;AAEA,UAAA,IAAI,QAAA,EAAU;AACZ,YAAA,GAAA,CAAI,WAAA,CAAY,SAAS,EAAE,CAAA;AAC3B,YAAA,QAAA,CAAS,cAAA,GAAiB,EAAE,KAAA,EAAO,SAAA,EAAW,CAAA;AAAA,UAChD;AACA,UAAA,GAAA,CAAI,oBAAoB,IAAI,CAAA;AAAA,QAC9B;AAAA,MACF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,IAAI,CAAC,IAAI,MAAA,EAAQ;AACf,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,sBAAA,EAAwB,SAAS,CAAA;AACnE,IAAA,MAAM,YAAA,GAAoC;AAAA,MACxC,GAAG,GAAA,CAAI,cAAA;AAAA,MACP,GAAG;AAAA,KACL;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE9K,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,WAAA;AAAA,UACL,IAAA,EAAK,SAAA;AAAA,UACL,IAAI,GAAA,CAAI,SAAA;AAAA,UACR,mBAAiB,GAAA,CAAI,OAAA;AAAA,UACrB,sBAAA,EAAsB,GAAA,CAAI,OAAA,GAAU,IAAA,GAAO,MAAA;AAAA,UAC3C,WAAA,EAAW,GAAA,CAAI,SAAA,GAAY,IAAA,GAAO,MAAA;AAAA,UAClC,QAAA,EAAU,EAAA;AAAA,UACV,YAAA,EAAW,MAAA;AAAA,UACX,KAAA,EAAO,YAAA;AAAA,UACP,SAAA,EAAW,cAAA;AAAA,UACV,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,WAAA;AAAA,QACL,IAAA,EAAK,SAAA;AAAA,QACL,IAAI,GAAA,CAAI,SAAA;AAAA,QACR,mBAAiB,GAAA,CAAI,OAAA;AAAA,QACrB,sBAAA,EAAsB,GAAA,CAAI,OAAA,GAAU,IAAA,GAAO,MAAA;AAAA,QAC3C,WAAA,EAAW,GAAA,CAAI,SAAA,GAAY,IAAA,GAAO,MAAA;AAAA,QAClC,QAAA,EAAU,EAAA;AAAA,QACV,YAAA,EAAW,MAAA;AAAA,QACX,KAAA,EAAO,YAAA;AAAA,QACP,SAAA,EAAW,cAAA;AAAA,QACV,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAMO,IAAM,YAAA,GAAqB,OAAA,CAAA,UAAA;AAAA,EAChC,SAAS+K,aAAAA,CAAa,KAAA,EAAO,GAAA,EAAK;AAChC,IAAA,MAAM,GAAA,GAAY,mBAAW,eAAe,CAAA;AAC5C,IAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,2CAA2C,CAAA;AAErE,IAAA,MAAM;AAAA,MACJ,KAAA,EAAO,OAAA;AAAA,MACP,KAAA;AAAA,MACA,YAAY,YAAA,GAAe,KAAA;AAAA,MAC3B,OAAA,GAAU,KAAA;AAAA,MACV,SAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,YAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,SAAS,CAAA,EAAG,GAAA,CAAI,SAAS,CAAA,KAAA,EAAQ,kBAAA,CAAmB,OAAO,CAAC,CAAA,CAAA;AAClE,IAAA,MAAM,OAAA,GAAgB,eAA8B,IAAI,CAAA;AAGxD,IAAA,MAAM,QAAA,GAAiB,gBAAQ,MAAM;AACnC,MAAA,IAAI,OAAO,OAAO,KAAA;AAClB,MAAA,IAAI,OAAO,QAAA,KAAa,QAAA,EAAU,OAAO,QAAA;AACzC,MAAA,IAAI,OAAO,QAAA,KAAa,QAAA,EAAU,OAAO,OAAO,QAAQ,CAAA;AACxD,MAAA,OAAO,OAAA;AAAA,IACT,CAAA,EAAG,CAAC,KAAA,EAAO,QAAA,EAAU,OAAO,CAAC,CAAA;AAG7B,IAAA,MAAM,SAAA,GAAkB,gBAAQ,MAAM;AACpC,MAAA,IAAI,GAAA,CAAI,MAAA,KAAW,KAAA,EAAO,OAAO,IAAA;AACjC,MAAA,IAAI,CAAC,GAAA,CAAI,WAAA,IAAe,CAAC,GAAA,CAAI,SAAS,OAAO,IAAA;AAC7C,MAAA,OAAO,GAAA,CAAI,MAAA,CAAO,OAAA,EAAS,QAAA,EAAU,IAAI,WAAW,CAAA;AAAA,IACtD,CAAA,EAAG,CAAC,GAAA,CAAI,MAAA,EAAQ,GAAA,CAAI,WAAA,EAAa,GAAA,CAAI,OAAA,EAAS,OAAA,EAAS,QAAA,EAAU,GAAA,CAAI,WAAW,CAAC,CAAA;AAGjF,IAAA,MAAM,UAAA,GAAmB,gBAAQ,MAAM;AACrC,MAAA,IAAI,IAAI,OAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,GAAA,CAAI,KAAK,CAAA,EAAG;AAC3C,QAAA,OAAO,GAAA,CAAI,KAAA,CAAM,QAAA,CAAS,OAAO,CAAA;AAAA,MACnC;AACA,MAAA,OAAO,IAAI,KAAA,KAAU,OAAA;AAAA,IACvB,GAAG,CAAC,GAAA,CAAI,SAAS,GAAA,CAAI,KAAA,EAAO,OAAO,CAAC,CAAA;AAEpC,IAAA,MAAM,aAAA,GAAgB,IAAI,QAAA,KAAa,MAAA;AAEvC,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAwC;AAC3D,MAAA,IAAI,YAAA,IAAgB,IAAI,UAAA,EAAY;AACpC,MAAA,GAAA,CAAI,UAAA,CAAW,SAAS,QAAQ,CAAA;AAChC,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAEA,IAAA,MAAM,gBAAA,GAAmB,CAAC,CAAA,KAAwC;AAChE,MAAA,IAAI,CAAC,YAAA,IAAgB,CAAC,GAAA,CAAI,UAAA,EAAY;AACpC,QAAA,GAAA,CAAI,YAAY,MAAM,CAAA;AAAA,MACxB;AACA,MAAA,YAAA,GAAe,CAAC,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,CAAC,IAAA,KAAgC;AACnD,MAAA,OAAA,CAAQ,OAAA,GAAU,IAAA;AAClB,MAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,QAAA,GAAA,CAAI,IAAI,CAAA;AAAA,MACV,WAAW,GAAA,EAAK;AACd,QAAA,GAAA,CAAI,OAAA,GAAU,IAAA;AAAA,MAChB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,UAAA,CAAW,mBAAA,EAAqB,SAAS,CAAA;AAE7D,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACE/K,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,WAAA;AAAA,UACL,IAAA,EAAK,QAAA;AAAA,UACL,EAAA,EAAI,MAAA;AAAA,UACJ,YAAA,EAAY,OAAA;AAAA,UACZ,YAAA,EAAY,QAAA;AAAA,UACZ,eAAA,EAAe,UAAA;AAAA,UACf,iBAAe,YAAA,IAAgB,MAAA;AAAA,UAC/B,kBAAA,EAAkB,gBAAgB,MAAA,GAAS,MAAA;AAAA,UAC3C,eAAA,EAAe,eAAe,MAAA,GAAS,MAAA;AAAA,UACvC,YAAA,EAAY,aAAa,SAAA,GAAY,WAAA;AAAA,UACrC,OAAA,EAAS,WAAA;AAAA,UACT,YAAA,EAAc,gBAAA;AAAA,UACd,SAAA,EAAW,WAAA;AAAA,UACV,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE4C,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,WAAA;AAAA,QACL,IAAA,EAAK,QAAA;AAAA,QACL,EAAA,EAAI,MAAA;AAAA,QACJ,YAAA,EAAY,OAAA;AAAA,QACZ,YAAA,EAAY,QAAA;AAAA,QACZ,eAAA,EAAe,UAAA;AAAA,QACf,iBAAe,YAAA,IAAgB,MAAA;AAAA,QAC/B,kBAAA,EAAkB,gBAAgB,MAAA,GAAS,MAAA;AAAA,QAC3C,eAAA,EAAe,eAAe,MAAA,GAAS,MAAA;AAAA,QACvC,YAAA,EAAY,aAAa,SAAA,GAAY,WAAA;AAAA,QACrC,OAAA,EAAS,WAAA;AAAA,QACT,YAAA,EAAc,gBAAA;AAAA,QACd,SAAA,EAAW,WAAA;AAAA,QACV,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA5C,GAAAA,CAAC,UAAM,QAAA,EAAS,CAAA;AAAA,UACf,UAAA,oBACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,6BAAA,EAA8B,aAAA,EAAY,QACxD,QAAA,kBAAAA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAQ,WAAA;AAAA,cACR,KAAA,EAAM,IAAA;AAAA,cACN,MAAA,EAAO,IAAA;AAAA,cACP,IAAA,EAAK,MAAA;AAAA,cACL,MAAA,EAAO,cAAA;AAAA,cACP,WAAA,EAAY,KAAA;AAAA,cACZ,aAAA,EAAc,OAAA;AAAA,cACd,cAAA,EAAe,OAAA;AAAA,cAEf,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB;AAAA;AAAA,WACpC,EACF;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAMO,IAAM,kBAAA,GAA2B,OAAA,CAAA,UAAA,CAGtC,SAASgL,mBAAAA,CAAmB,OAAO,GAAA,EAAK;AACxC,EAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AACzC,EAAA,uBACEhL,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,UAAA,CAAW,4BAAA,EAA8B,SAAS,CAAA;AAAA,MAC5D,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AAEM,IAAM,aAAA,GAAsB,OAAA,CAAA,UAAA;AAAA,EACjC,SAASiL,cAAAA,CAAc,KAAA,EAAO,GAAA,EAAK;AACjC,IAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAW,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AAClD,IAAA,MAAM,YAAkB,OAAA,CAAA,KAAA,EAAM;AAE9B,IAAA,uBACErI,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,iBAAA,EAAiB,UAAU,SAAA,GAAY,MAAA;AAAA,QACvC,SAAA,EAAW,UAAA,CAAW,oBAAA,EAAsB,SAAS,CAAA;AAAA,QACpD,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,OAAA,oBACC5C,GAAAA,CAAC,KAAA,EAAA,EAAI,IAAI,SAAA,EAAW,SAAA,EAAU,8BAC3B,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,UAED;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAMO,IAAM,aAAA,GAAsB,OAAA,CAAA,UAAA;AAAA,EACjC,SAASkL,cAAAA,CAAc,KAAA,EAAO,GAAA,EAAK;AACjC,IAAA,MAAM,GAAA,GAAY,mBAAW,eAAe,CAAA;AAC5C,IAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,4CAA4C,CAAA;AACtE,IAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AAGzC,IAAA,IAAI,GAAA,CAAI,UAAA,IAAc,GAAA,CAAI,SAAA,EAAW;AACnC,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,uBACElL,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,cAAA;AAAA,QACL,SAAA,EAAW,UAAA,CAAW,oBAAA,EAAsB,SAAS,CAAA;AAAA,QACpD,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAMO,IAAM,WAAA,GAAoB,OAAA,CAAA,UAAA;AAAA,EAC/B,SAASmL,YAAAA,CAAY,KAAA,EAAO,GAAA,EAAK;AAC/B,IAAA,MAAM,MAAM,kBAAA,EAAmB;AAC/B,IAAA,MAAM;AAAA,MACJ,KAAA,EAAO,MAAA;AAAA,MACP,QAAA;AAAA,MACA,UAAA,EAAY,YAAA;AAAA,MACZ,SAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAG;AAAA,KAAI,GAAI,KAAA;AAEb,IAAA,MAAM,UAAA,GAAa,gBAAgB,GAAA,CAAI,UAAA;AAEvC,IAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAA2C;AAC/D,MAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,MAAA,IAAI,UAAA,EAAY;AAChB,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,QAAA,EAAS;AAAA,MACX,CAAA,MAAO;AACL,QAAA,GAAA,CAAI,WAAW,MAAM,CAAA;AAAA,MACvB;AAAA,IACF,CAAA;AAEA,IAAA,uBACEvI,IAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,UAAA,CAAW,kBAAA,EAAoB,SAAS,CAAA;AAAA,QAClD,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA5C,GAAAA,CAAC,UAAM,QAAA,EAAS,CAAA;AAAA,0BAChBA,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,QAAA,EAAU,EAAA;AAAA,cACV,cAAY,CAAA,OAAA,EAAU,OAAO,QAAA,KAAa,QAAA,GAAW,WAAW,MAAM,CAAA,CAAA;AAAA,cACtE,SAAA,EAAU,yBAAA;AAAA,cACV,QAAA,EAAU,UAAA;AAAA,cACV,OAAA,EAAS,YAAA;AAAA,cACV,QAAA,EAAA;AAAA;AAAA;AAED;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AAMO,IAAM,aAAA,GAAsB,OAAA,CAAA,UAAA;AAAA,EACjC,SAASoL,cAAAA,CAAc,KAAA,EAAO,GAAA,EAAK;AACjC,IAAA,MAAM,MAAM,kBAAA,EAAmB;AAC/B,IAAA,MAAM,EAAE,WAAW,OAAA,EAAS,QAAA,EAAU,UAAU,YAAA,EAAc,GAAG,MAAK,GAAI,KAAA;AAE1E,IAAA,MAAM,UAAA,GAAa,gBAAgB,GAAA,CAAI,UAAA;AAEvC,IAAA,MAAM,WACJ,GAAA,CAAI,OAAA,GACA,KAAA,CAAM,OAAA,CAAQ,IAAI,KAAK,CAAA,IAAK,GAAA,CAAI,KAAA,CAAM,SAAS,CAAA,GAC/C,OAAA,CAAQ,GAAA,CAAI,KAAA,IAAS,IAAI,WAAW,CAAA;AAE1C,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA2C;AAC9D,MAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,MAAA,IAAI,UAAA,EAAY;AAChB,MAAA,GAAA,CAAI,cAAA,EAAe;AACnB,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAEA,IAAA,uBACEpL,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,QAAA;AAAA,QACL,QAAA,EAAU,EAAA;AAAA,QACV,YAAA,EAAW,iBAAA;AAAA,QACX,SAAA,EAAW,UAAA,CAAW,oBAAA,EAAsB,SAAS,CAAA;AAAA,QACrD,QAAA,EAAU,UAAA;AAAA,QACV,OAAA,EAAS,WAAA;AAAA,QACR,GAAG,IAAA;AAAA,QAEH,sCACC4C,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAQ,WAAA;AAAA,YACR,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,IAAA;AAAA,YACP,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YACZ,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YACf,aAAA,EAAY,MAAA;AAAA,YAEZ,QAAA,EAAA;AAAA,8BAAA5C,GAAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,8BACpCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA;AACtC;AAAA,KAEJ;AAAA,EAEJ;AACF;AAwBO,IAAM,QAAA,GAAW;AACxB,QAAA,CAAS,IAAA,GAAO,YAAA;AAChB,QAAA,CAAS,OAAA,GAAU,eAAA;AACnB,QAAA,CAAS,KAAA,GAAQ,aAAA;AACjB,QAAA,CAAS,OAAA,GAAU,eAAA;AACnB,QAAA,CAAS,MAAA,GAAS,cAAA;AAClB,QAAA,CAAS,OAAA,GAAU,eAAA;AACnB,QAAA,CAAS,IAAA,GAAO,YAAA;AAChB,QAAA,CAAS,KAAA,GAAQ,aAAA;AACjB,QAAA,CAAS,UAAA,GAAa,kBAAA;AACtB,QAAA,CAAS,KAAA,GAAQ,aAAA;AACjB,QAAA,CAAS,GAAA,GAAM,WAAA;AACf,QAAA,CAAS,KAAA,GAAQ,aAAA;AAEV,IAAM,YAAA,GAAe;ACpsC5B,IAAM,aAAA,GAAsBqL,sBAAyC,IAAI,CAAA;AAEzE,SAAS,iBAAiB,aAAA,EAA2C;AACnE,EAAA,MAAM,OAAA,GAAgBA,mBAAW,aAAa,CAAA;AAC9C,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,WAAW,aAAa,CAAA,4DAAA;AAAA,KAC1B;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;AAEA,IAAM,kBAAA,GACJ,2IAAA;AAKK,IAAM,aAAwC,CAAC;AAAA,EACpD,MAAA,EAAQ,UAAA;AAAA,EACR,WAAA,GAAc,KAAA;AAAA,EACd,OAAA,EAAS,WAAA;AAAA,EACT,UAAA,GAAa,IAAA;AAAA,EACb,mBAAA,GAAsB,IAAA;AAAA,EACtB,eAAA;AAAA,EACA,aAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,UAAA,GAAa,IAAA;AAAA,EACb;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,oBAAA,CAA8B;AAAA,IACxD,KAAA,EAAO,UAAA;AAAA,IACP,YAAA,EAAc;AAAA,GACf,CAAA;AAED,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUA,iBAAiB,EAAE,CAAA;AACvD,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUA,iBAAiB,EAAE,CAAA;AACnE,EAAA,MAAM,UAAA,GAAmBA,eAA2B,IAAI,CAAA;AAExD,EAAA,MAAM,UAAA,GAAmBA,oBAAY,MAAM;AACzC,IAAA,SAAA,CAAU,IAAI,CAAA;AAAA,EAChB,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,MAAM,WAAA,GAAoBA,oBAAY,MAAM;AAC1C,IAAA,SAAA,CAAU,KAAK,CAAA;AACf,IAAA,WAAA,IAAc;AAAA,EAChB,CAAA,EAAG,CAAC,SAAA,EAAW,WAAW,CAAC,CAAA;AAE3B,EAAA,MAAM,YAAA,GAAqBA,OAAA,CAAA,OAAA;AAAA,IACzB,OAAO;AAAA,MACL,MAAA,EAAQ,CAAC,CAAC,MAAA;AAAA,MACV,MAAA,EAAQ,UAAA;AAAA,MACR,OAAA,EAAS,WAAA;AAAA,MACT,UAAA;AAAA,MACA,mBAAA;AAAA,MACA,eAAA;AAAA,MACA,aAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA,KACF,CAAA;AAAA,IACA;AAAA,MACE,MAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,mBAAA;AAAA,MACA,eAAA;AAAA,MACA,aAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,uBACErL,GAAAA,CAAC,aAAA,CAAc,UAAd,EAAuB,KAAA,EAAO,cAC5B,QAAA,EACH,CAAA;AAEJ;AACA,UAAA,CAAW,WAAA,GAAc,aAAA;AAKlB,IAAM,aAAA,GAAsBqL,OAAA,CAAA,UAAA,CAGjC,CAAC,EAAE,OAAA,GAAU,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,YAAA,KAAiB;AACpE,EAAA,MAAM,EAAE,MAAA,EAAQ,UAAA,EAAW,GAAI,iBAAiB,SAAS,CAAA;AACzD,EAAA,MAAM,SAAA,GAAY,YAAA,CAAa,UAAA,EAAY,YAAY,CAAA;AAEvD,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA2C;AAC9D,IAAA,OAAA,GAAU,CAAC,CAAA;AACX,IAAA,IAAI,CAAC,EAAE,gBAAA,EAAkB;AACvB,MAAA,MAAA,EAAO;AAAA,IACT;AAAA,EACF,CAAA;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACErL,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,SAAA;AAAA,QACL,eAAA,EAAc,QAAA;AAAA,QACd,OAAA,EAAS,WAAA;AAAA,QACR,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,SAAA;AAAA,MACL,IAAA,EAAK,QAAA;AAAA,MACL,eAAA,EAAc,QAAA;AAAA,MACd,OAAA,EAAS,WAAA;AAAA,MACR,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,aAAA,CAAc,WAAA,GAAc,gBAAA;AAKrB,IAAM,eAA4C,CAAC;AAAA,EACxD,SAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,gBAAA,CAAiB,QAAQ,CAAA;AAE5C,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEA,GAAAA,CAAC,MAAA,EAAA,EAAQ,GAAI,SAAA,KAAc,MAAA,GAAY,EAAE,SAAA,EAAU,GAAI,EAAC,EACrD,QAAA,EACH,CAAA;AAEJ;AACA,YAAA,CAAa,WAAA,GAAc,eAAA;AAKpB,IAAM,aAAA,GAAsBqL,OAAA,CAAA,UAAA,CAGjC,CAAC,EAAE,OAAA,GAAU,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,YAAA,KAAiB;AAC/E,EAAA,MAAM,EAAE,OAAA,EAAS,mBAAA,EAAqB,UAAA,EAAW,GAC/C,iBAAiB,SAAS,CAAA;AAE5B,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAwC;AAC3D,IAAA,OAAA,GAAU,CAAC,CAAA;AACX,IAAA,IAAI,CAAC,CAAA,CAAE,gBAAA,IAAoB,uBAAuB,CAAA,CAAE,MAAA,KAAW,EAAE,aAAA,EAAe;AAC9E,MAAA,OAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAEA,EAAA,MAAMC,WAAAA,GAAa;AAAA,IACjB,oBAAA;AAAA,IACA,CAAC,UAAA,IAAc,yBAAA;AAAA,IACf;AAAA,GACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEX,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACEtL,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,YAAA;AAAA,QACL,SAAA,EAAWsL,WAAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QACR,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACEtL,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,YAAA;AAAA,MACL,SAAA,EAAWsL,WAAAA;AAAA,MACX,OAAA,EAAS,WAAA;AAAA,MACR,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,aAAA,CAAc,WAAA,GAAc,gBAAA;AAKrB,IAAM,aAAA,GAAsBD,OAAA,CAAA,UAAA,CAGjC,CAAC,EAAE,OAAA,GAAU,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,YAAA,KAAiB;AACjF,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,IACA,eAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF,GAAI,iBAAiB,SAAS,CAAA;AAE9B,EAAA,MAAM,WAAA,GAAoBA,eAA8B,IAAI,CAAA;AAC5D,EAAA,MAAM,SAAA,GAAY,YAAA,CAAa,WAAA,EAAa,YAAY,CAAA;AACxD,EAAA,MAAM,cAAA,GAAuBA,eAA2B,IAAI,CAAA;AAG5D,EAAMA,kBAAU,MAAM;AACpB,IAAA,IAAI,CAAC,MAAA,EAAQ;AAGb,IAAA,IAAI,OAAO,aAAa,WAAA,EAAa;AACnC,MAAA,cAAA,CAAe,UAAU,QAAA,CAAS,aAAA;AAAA,IACpC;AAGA,IAAA,MAAM,mBACJ,OAAO,QAAA,KAAa,cAAc,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,EAAA;AACnE,IAAA,IAAI,OAAO,aAAa,WAAA,EAAa;AACnC,MAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,QAAA;AAAA,IACjC;AAGA,IAAA,MAAM,OAAA,GAAU,sBAAsB,MAAM;AAC1C,MAAA,IAAI,iBAAiB,OAAA,EAAS;AAC5B,QAAA,eAAA,CAAgB,QAAQ,KAAA,EAAM;AAAA,MAChC,CAAA,MAAA,IAAW,YAAY,OAAA,EAAS;AAC9B,QAAA,MAAM,UAAA,GAAa,YAAY,OAAA,CAAQ,gBAAA;AAAA,UACrC;AAAA,SACF;AACA,QAAA,IAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AACzB,UAAA,UAAA,CAAW,CAAC,GAAG,KAAA,EAAM;AAAA,QACvB,CAAA,MAAO;AACL,UAAA,WAAA,CAAY,QAAQ,KAAA,EAAM;AAAA,QAC5B;AAAA,MACF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,OAAO,MAAM;AACX,MAAA,oBAAA,CAAqB,OAAO,CAAA;AAE5B,MAAA,IAAI,OAAO,aAAa,WAAA,EAAa;AACnC,QAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,gBAAA;AAAA,MACjC;AAEA,MAAA,MAAM,cAAA,GACJ,aAAA,EAAe,OAAA,IAAW,UAAA,CAAW,WAAW,cAAA,CAAe,OAAA;AACjE,MAAA,IAAI,cAAA,IAAkB,OAAO,cAAA,CAAe,KAAA,KAAU,UAAA,EAAY;AAChE,QAAA,cAAA,CAAe,KAAA,EAAM;AAAA,MACvB;AAAA,IACF,CAAA;AAAA,EACF,GAAG,CAAC,MAAA,EAAQ,eAAA,EAAiB,aAAA,EAAe,UAAU,CAAC,CAAA;AAGvD,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAA2C;AAChE,IAAA,SAAA,GAAY,CAAC,CAAA;AACb,IAAA,IAAI,EAAE,gBAAA,EAAkB;AAExB,IAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,QAAA,IAAY,UAAA,EAAY;AACpC,MAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,MAAA,OAAA,EAAQ;AACR,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,KAAA,IAAS,WAAA,CAAY,OAAA,EAAS;AAC1C,MAAA,MAAM,aAAa,KAAA,CAAM,IAAA;AAAA,QACvB,WAAA,CAAY,OAAA,CAAQ,gBAAA,CAA8B,kBAAkB;AAAA,OACtE,CAAE,MAAA,CAAO,CAAC,EAAA,KAAO,CAAC,EAAA,CAAG,YAAA,CAAa,UAAU,CAAA,IAAK,EAAA,CAAG,YAAA,CAAa,aAAa,MAAM,MAAM,CAAA;AAE1F,MAAA,IAAI,UAAA,CAAW,WAAW,CAAA,EAAG;AAC3B,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,cAAA,GAAiB,WAAW,CAAC,CAAA;AACnC,MAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,UAAA,CAAW,MAAA,GAAS,CAAC,CAAA;AAEtD,MAAA,IAAI,EAAE,QAAA,EAAU;AACd,QAAA,IACE,SAAS,aAAA,KAAkB,cAAA,IAC3B,QAAA,CAAS,aAAA,KAAkB,YAAY,OAAA,EACvC;AACA,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,aAAA,EAAe,KAAA,EAAM;AAAA,QACvB;AAAA,MACF,CAAA,MAAO;AACL,QAAA,IAAI,QAAA,CAAS,kBAAkB,aAAA,EAAe;AAC5C,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,cAAA,EAAgB,KAAA,EAAM;AAAA,QACxB;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAEA,EAAA,MAAMC,WAAAA,GAAa;AAAA,IACjB,oBAAA;AAAA,IACA,uBAAuB,IAAI,CAAA,CAAA;AAAA,IAC3B,CAAC,UAAA,IAAc,yBAAA;AAAA,IACf;AAAA,GACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEX,EAAA,MAAM,cAAA,GAAiB;AAAA,IACrB,IAAA,EAAM,QAAA;AAAA,IACN,YAAA,EAAc,IAAA;AAAA,IACd,GAAI,OAAA,GAAU,EAAE,iBAAA,EAAmB,OAAA,KAAY,EAAC;AAAA,IAChD,GAAI,aAAA,GAAgB,EAAE,kBAAA,EAAoB,aAAA,KAAkB,EAAC;AAAA,IAC7D,QAAA,EAAU;AAAA,GACZ;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACEtL,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,SAAA;AAAA,QACL,SAAA,EAAWsL,WAAAA;AAAA,QACX,SAAA,EAAW,aAAA;AAAA,QACV,GAAG,cAAA;AAAA,QACH,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACEtL,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,SAAA;AAAA,MACL,SAAA,EAAWsL,WAAAA;AAAA,MACX,SAAA,EAAW,aAAA;AAAA,MACV,GAAG,cAAA;AAAA,MACH,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,aAAA,CAAc,WAAA,GAAc,gBAAA;AAKrB,IAAM,YAAA,GAAqBD,OAAA,CAAA,UAAA;AAAA,EAChC,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC1C,IAAA,uBACErL,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,CAAC,mBAAA,EAAqB,SAAS,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAAA,QACnE,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AACA,YAAA,CAAa,WAAA,GAAc,eAAA;AAKpB,IAAM,WAAA,GAAoBqL,OAAA,CAAA,UAAA,CAG/B,CAAC,EAAE,OAAA,GAAU,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AACzE,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,gBAAA,CAAiB,OAAO,CAAA;AAC/C,EAAA,MAAM,SAAeA,OAAA,CAAA,KAAA,EAAM;AAC3B,EAAA,MAAM,KAAK,MAAA,IAAU,MAAA;AAErB,EAAMA,kBAAU,MAAM;AACpB,IAAA,UAAA,CAAW,EAAE,CAAA;AACb,IAAA,OAAO,MAAM,WAAW,EAAE,CAAA;AAAA,EAC5B,CAAA,EAAG,CAAC,EAAA,EAAI,UAAU,CAAC,CAAA;AAEnB,EAAA,MAAMC,WAAAA,GAAa,CAAC,kBAAA,EAAoB,SAAS,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAE3E,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACEtL,IAAC,IAAA,EAAA,EAAK,GAAA,EAAU,IAAQ,SAAA,EAAWsL,WAAAA,EAAa,GAAG,KAAA,EAChD,QAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEtL,IAAC,IAAA,EAAA,EAAG,GAAA,EAAU,IAAQ,SAAA,EAAWsL,WAAAA,EAAa,GAAG,KAAA,EAC9C,QAAA,EACH,CAAA;AAEJ,CAAC;AACD,WAAA,CAAY,WAAA,GAAc,cAAA;AAKnB,IAAM,iBAAA,GAA0BD,OAAA,CAAA,UAAA,CAGrC,CAAC,EAAE,OAAA,GAAU,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AACzE,EAAA,MAAM,EAAE,gBAAA,EAAiB,GAAI,gBAAA,CAAiB,aAAa,CAAA;AAC3D,EAAA,MAAM,SAAeA,OAAA,CAAA,KAAA,EAAM;AAC3B,EAAA,MAAM,KAAK,MAAA,IAAU,MAAA;AAErB,EAAMA,kBAAU,MAAM;AACpB,IAAA,gBAAA,CAAiB,EAAE,CAAA;AACnB,IAAA,OAAO,MAAM,iBAAiB,EAAE,CAAA;AAAA,EAClC,CAAA,EAAG,CAAC,EAAA,EAAI,gBAAgB,CAAC,CAAA;AAEzB,EAAA,MAAMC,WAAAA,GAAa,CAAC,iBAAA,EAAmB,SAAS,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAE1E,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACEtL,IAAC,IAAA,EAAA,EAAK,GAAA,EAAU,IAAQ,SAAA,EAAWsL,WAAAA,EAAa,GAAG,KAAA,EAChD,QAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEtL,IAAC,GAAA,EAAA,EAAE,GAAA,EAAU,IAAQ,SAAA,EAAWsL,WAAAA,EAAa,GAAG,KAAA,EAC7C,QAAA,EACH,CAAA;AAEJ,CAAC;AACD,iBAAA,CAAkB,WAAA,GAAc,oBAAA;AAKzB,IAAM,UAAA,GAAmBD,OAAA,CAAA,UAAA;AAAA,EAC9B,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC1C,IAAA,uBACErL,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,CAAC,iBAAA,EAAmB,SAAS,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAAA,QACjE,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AACA,UAAA,CAAW,WAAA,GAAc,aAAA;AAKlB,IAAM,YAAA,GAAqBqL,OAAA,CAAA,UAAA;AAAA,EAChC,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC1C,IAAA,uBACErL,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,CAAC,mBAAA,EAAqB,SAAS,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAAA,QACnE,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AACA,YAAA,CAAa,WAAA,GAAc,eAAA;AAKpB,IAAM,WAAA,GAAoBqL,OAAA,CAAA,UAAA;AAAA,EAC/B,CAAC,EAAE,OAAA,GAAU,KAAA,EAAO,SAAA,EAAW,SAAS,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACpE,IAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,gBAAA,CAAiB,OAAO,CAAA;AAE5C,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA2C;AAC9D,MAAA,OAAA,GAAU,CAAC,CAAA;AACX,MAAA,IAAI,CAAC,EAAE,gBAAA,EAAkB;AACvB,QAAA,OAAA,EAAQ;AAAA,MACV;AAAA,IACF,CAAA;AAEA,IAAA,MAAMC,WAAAA,GAAa,CAAC,yBAAA,EAA2B,SAAS,EACrD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA;AAEX,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEtL,GAAAA,CAAC,IAAA,EAAA,EAAK,GAAA,EAAU,SAAA,EAAWsL,aAAY,OAAA,EAAS,WAAA,EAAc,GAAG,KAAA,EAC9D,QAAA,EACH,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACEtL,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAWsL,WAAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QACT,YAAA,EAAY,KAAA,CAAM,YAAY,CAAA,IAAK,cAAA;AAAA,QAClC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA,QAAA,IAAY;AAAA;AAAA,KACf;AAAA,EAEJ;AACF;AACA,WAAA,CAAY,WAAA,GAAc,cAAA;AAKnB,IAAM,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,UAAA,EAAY;AAAA,EAC9C,IAAA,EAAM,UAAA;AAAA,EACN,OAAA,EAAS,aAAA;AAAA,EACT,MAAA,EAAQ,YAAA;AAAA,EACR,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,MAAA,EAAQ,YAAA;AAAA,EACR,KAAA,EAAO,WAAA;AAAA,EACP,WAAA,EAAa,iBAAA;AAAA,EACb,IAAA,EAAM,UAAA;AAAA,EACN,MAAA,EAAQ,YAAA;AAAA,EACR,KAAA,EAAO;AACT,CAAC;AAKM,IAAM,KAAA,GAAQ;AChkBrB,IAAM,eAAA,GAAkB,OAAO,MAAA,EAAQ;AAAA,EACrC,IAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,iBAAA,EAAmB,CAAC,IAAA,KAClB,IAAA,KAAS,SAAA,IACT,IAAA,KAAS,MAAA,IACT,IAAA,KAAS,aAAA,IACT,IAAA,KAAS,QAAA,IACT,IAAA,KAAS,YACT,IAAA,KAAS;AACb,CAAC,CAAA,CAAE,EAAE,CAAA;AAKE,IAAM,KAAA,GAAcC,OAAA,CAAA,UAAA;AAAA,EACzB,CACE;AAAA,IACE,OAAA,GAAU,QAAA;AAAA,IACV,IAAA,GAAO,IAAA;AAAA,IACP,WAAA,GAAc,SAAA;AAAA,IACd,MAAA,GAAS,KAAA;AAAA,IACT,MAAA,GAAS,KAAA;AAAA,IACT,OAAA,GAAU,KAAA;AAAA,IACV,SAAA;AAAA,IACA,KAAA;AAAA,IACA,EAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,MACrB,UAAA;AAAA,MACA,aAAa,OAAO,CAAA,CAAA;AAAA,MACpB,aAAa,IAAI,CAAA,CAAA;AAAA,MACjB,aAAa,WAAW,CAAA,CAAA;AAAA,MACxB,MAAA,IAAU,gBAAA;AAAA,MACV;AAAA,KACF;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,uBACEvL,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,IAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,cAAA;AAAA,UACX,KAAA;AAAA,UACA,EAAA;AAAA,UACC,GAAG,KAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACE4C,IAAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,cAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAA;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,MAAA,oBAAU5C,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,eAAA,EAAgB,eAAY,MAAA,EAAO,CAAA;AAAA,UAC7D;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;ACjEpB,IAAM,eAAqBwL,OAAA,CAAA,aAAA,CAAiC;AAAA,EAC1D,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,QAAA;AAAA,EACT,WAAA,EAAa;AACf,CAAC,CAAA;AAKM,IAAM,SAAA,GAAkBA,OAAA,CAAA,UAAA;AAAA,EAC7B,CACE;AAAA,IACE,OAAA,GAAU,QAAA;AAAA,IACV,IAAA,GAAO,IAAA;AAAA,IACP,WAAA,GAAc,KAAA;AAAA,IACd,cAAA,GAAiB,KAAA;AAAA,IACjB,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAMF,WAAAA,GAAa;AAAA,MACjB,UAAA;AAAA,MACA,aAAa,OAAO,CAAA,CAAA;AAAA,MACpB,aAAa,IAAI,CAAA,CAAA;AAAA,MACjB,WAAA,IAAe,qBAAA;AAAA,MACf,cAAA,IAAkB,yBAAA;AAAA,MAClB;AAAA,KACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEX,IAAA,MAAM,YAAA,GAAqBE,OAAA,CAAA,OAAA;AAAA,MACzB,OAAO;AAAA,QACL,IAAA;AAAA,QACA,OAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA,CAAC,IAAA,EAAM,OAAA,EAAS,WAAW;AAAA,KAC7B;AAEA,IAAA,uBACExL,GAAAA,CAAC,YAAA,CAAa,QAAA,EAAb,EAAsB,OAAO,YAAA,EAC5B,QAAA,kBAAAA,GAAAA,CAAC,OAAA,EAAA,EAAM,KAAU,SAAA,EAAWsL,WAAAA,EAAa,GAAG,KAAA,EACzC,UACH,CAAA,EACF,CAAA;AAAA,EAEJ;AACF;AACA,SAAA,CAAU,WAAA,GAAc,YAAA;AAKjB,IAAM,cAAA,GAAuBE,OAAA,CAAA,UAAA,CAGlC,CAAC,EAAE,QAAA,GAAW,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC9D,EAAA,uBACExL,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW;AAAA,QACT,qBAAA;AAAA,QACA,QAAA,IAAY,+BAAA;AAAA,QACZ;AAAA,OACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,cAAA,CAAe,WAAA,GAAc,iBAAA;AAKtB,IAAM,YAAA,GAAqBwL,OAAA,CAAA,UAAA,CAGhC,CAAC,EAAE,SAAA,GAAY,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAClE,EAAA,MAAMF,WAAAA,GAAa;AAAA,IACjB,mBAAA;AAAA,IACA,cAAc,KAAA,IAAS,wBAAA;AAAA,IACvB;AAAA,GACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEX,EAAA,uBACEtL,IAAC,SAAA,EAAA,EAAQ,GAAA,EAAU,WAAWsL,WAAAA,EAAa,GAAG,OAC3C,QAAA,EACH,CAAA;AAEJ,CAAC;AACD,YAAA,CAAa,WAAA,GAAc,eAAA;AAKpB,IAAM,UAAA,GAAmBE,mBAG9B,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5C,EAAA,uBACExL,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,CAAC,iBAAA,EAAmB,SAAS,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAAA,MACjE,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,UAAA,CAAW,WAAA,GAAc,aAAA;AAKlB,IAAM,UAAA,GAAmBwL,mBAG9B,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5C,EAAA,uBACExL,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,CAAC,iBAAA,EAAmB,SAAS,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAAA,MACjE,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,UAAA,CAAW,WAAA,GAAc,aAAA;AAKlB,IAAM,UAAA,GAAmBwL,mBAG9B,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5C,EAAA,uBACExL,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,CAAC,iBAAA,EAAmB,SAAS,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAAA,MACjE,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,UAAA,CAAW,WAAA,GAAc,aAAA;AAKlB,IAAM,OAAA,GAAgBwL,OAAA,CAAA,UAAA;AAAA,EAC3B,CAAC,EAAE,WAAA,EAAa,eAAA,EAAiB,UAAA,GAAa,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5F,IAAA,MAAM,YAAA,GAAqBA,mBAAW,YAAY,CAAA;AAClD,IAAA,MAAM,SAAA,GAAY,mBAAmB,YAAA,CAAa,WAAA;AAElD,IAAA,MAAMF,WAAAA,GAAa;AAAA,MACjB,cAAA;AAAA,MACA,SAAA,IAAa,yBAAA;AAAA,MACb,UAAA,IAAc,wBAAA;AAAA,MACd;AAAA,KACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEX,IAAA,uBACEtL,IAAC,IAAA,EAAA,EAAG,GAAA,EAAU,WAAWsL,WAAAA,EAAa,GAAG,OACtC,QAAA,EACH,CAAA;AAAA,EAEJ;AACF;AACA,OAAA,CAAQ,WAAA,GAAc,UAAA;AAKf,IAAM,OAAA,GAAgBE,OAAA,CAAA,UAAA;AAAA,EAI3B,CACE;AAAA,IACE,SAAA,GAAY,KAAA;AAAA,IACZ,KAAA;AAAA,IACA,UAAA,GAAa,KAAA;AAAA,IACb,aAAA;AAAA,IACA,KAAA,GAAQ,KAAA;AAAA,IACR,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,gBAAA,GAAmB,UAAA,GACrB,aAAA,KAAkB,KAAA,GAChB,WAAA,GACA,kBAAkB,MAAA,GAClB,YAAA,GACA,MAAA,GACF,KAAA,CAAM,WAAW,CAAA;AAErB,IAAA,MAAMF,WAAAA,GAAa;AAAA,MACjB,cAAA;AAAA,MACA,SAAA,IAAa,uBAAA;AAAA,MACb,KAAA,IAAS,uBAAuB,KAAK,CAAA,CAAA;AAAA,MACrC,UAAA,IAAc,wBAAA;AAAA,MACd,aAAA,IACE,aAAA,KAAkB,MAAA,IAClB,CAAA,qBAAA,EAAwB,aAAa,CAAA,CAAA;AAAA,MACvC;AAAA,KACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEX,IAAA,uBACEtL,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,KAAA;AAAA,QACA,WAAA,EAAW,gBAAA;AAAA,QACX,SAAA,EAAWsL,WAAAA;AAAA,QACV,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AACA,OAAA,CAAQ,WAAA,GAAc,UAAA;AAKf,IAAM,OAAA,GAAgBE,OAAA,CAAA,UAAA;AAAA,EAC3B,CAAC,EAAE,SAAA,GAAY,KAAA,EAAO,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACpE,IAAA,MAAMF,WAAAA,GAAa;AAAA,MACjB,cAAA;AAAA,MACA,SAAA,IAAa,uBAAA;AAAA,MACb,KAAA,IAAS,uBAAuB,KAAK,CAAA,CAAA;AAAA,MACrC;AAAA,KACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEX,IAAA,uBACEtL,IAAC,IAAA,EAAA,EAAG,GAAA,EAAU,WAAWsL,WAAAA,EAAa,GAAG,OACtC,QAAA,EACH,CAAA;AAAA,EAEJ;AACF;AACA,OAAA,CAAQ,WAAA,GAAc,UAAA;AAKf,IAAM,KAAA,GAAQ,MAAA,CAAO,MAAA,CAAO,SAAA,EAAW;AAAA,EAC5C,IAAA,EAAM,SAAA;AAAA,EACN,SAAA,EAAW,cAAA;AAAA,EACX,OAAA,EAAS,YAAA;AAAA,EACT,KAAA,EAAO,UAAA;AAAA,EACP,KAAA,EAAO,UAAA;AAAA,EACP,KAAA,EAAO,UAAA;AAAA,EACP,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAC","file":"index.mjs","sourcesContent":["import { Palette, ColorMode } from \"./types\";\r\n\r\nexport const lightPalette: Palette = {\r\n mode: \"light\",\r\n primary: {\r\n light: \"#818cf8\", // indigo-400\r\n main: \"#6366f1\", // indigo-500\r\n dark: \"#4f46e5\", // indigo-600\r\n contrastText: \"#ffffff\",\r\n },\r\n secondary: {\r\n light: \"#a78bfa\", // violet-400\r\n main: \"#8b5cf6\", // violet-500\r\n dark: \"#7c3aed\", // violet-600\r\n contrastText: \"#ffffff\",\r\n },\r\n error: {\r\n light: \"#f87171\", // red-400\r\n main: \"#ef4444\", // red-500\r\n dark: \"#dc2626\", // red-600\r\n contrastText: \"#ffffff\",\r\n },\r\n warning: {\r\n light: \"#fbbf24\", // amber-400\r\n main: \"#f59e0b\", // amber-500\r\n dark: \"#d97706\", // amber-600\r\n contrastText: \"#18181b\",\r\n },\r\n info: {\r\n light: \"#38bdf8\", // sky-400\r\n main: \"#0ea5e9\", // sky-500\r\n dark: \"#0284c7\", // sky-600\r\n contrastText: \"#ffffff\",\r\n },\r\n success: {\r\n light: \"#34d399\", // emerald-400\r\n main: \"#10b981\", // emerald-500\r\n dark: \"#059669\", // emerald-600\r\n contrastText: \"#ffffff\",\r\n },\r\n text: {\r\n primary: \"rgba(0, 0, 0, 0.87)\",\r\n secondary: \"rgba(0, 0, 0, 0.6)\",\r\n disabled: \"rgba(0, 0, 0, 0.38)\",\r\n },\r\n background: {\r\n default: \"#f8fafc\",\r\n paper: \"#ffffff\",\r\n surface: \"#ffffff\",\r\n },\r\n divider: \"rgba(0, 0, 0, 0.12)\",\r\n action: {\r\n active: \"rgba(0, 0, 0, 0.54)\",\r\n hover: \"rgba(0, 0, 0, 0.04)\",\r\n hoverOpacity: 0.04,\r\n selected: \"rgba(0, 0, 0, 0.08)\",\r\n selectedOpacity: 0.08,\r\n disabled: \"rgba(0, 0, 0, 0.26)\",\r\n disabledBackground: \"rgba(0, 0, 0, 0.12)\",\r\n focus: \"rgba(0, 0, 0, 0.12)\",\r\n focusOpacity: 0.12,\r\n },\r\n};\r\n\r\nexport const darkPalette: Palette = {\r\n mode: \"dark\",\r\n primary: {\r\n light: \"#a5b4fc\", // indigo-300\r\n main: \"#818cf8\", // indigo-400\r\n dark: \"#6366f1\", // indigo-500\r\n contrastText: \"#09090b\",\r\n },\r\n secondary: {\r\n light: \"#c4b5fd\", // violet-300\r\n main: \"#a78bfa\", // violet-400\r\n dark: \"#8b5cf6\", // violet-500\r\n contrastText: \"#09090b\",\r\n },\r\n error: {\r\n light: \"#fca5a5\", // red-300\r\n main: \"#f87171\", // red-400\r\n dark: \"#ef4444\", // red-500\r\n contrastText: \"#09090b\",\r\n },\r\n warning: {\r\n light: \"#fde68a\", // amber-200\r\n main: \"#fbbf24\", // amber-400\r\n dark: \"#f59e0b\", // amber-500\r\n contrastText: \"#09090b\",\r\n },\r\n info: {\r\n light: \"#7dd3fc\", // sky-300\r\n main: \"#38bdf8\", // sky-400\r\n dark: \"#0ea5e9\", // sky-500\r\n contrastText: \"#09090b\",\r\n },\r\n success: {\r\n light: \"#6ee7b7\", // emerald-300\r\n main: \"#34d399\", // emerald-400\r\n dark: \"#10b981\", // emerald-500\r\n contrastText: \"#09090b\",\r\n },\r\n text: {\r\n primary: \"rgba(255, 255, 255, 0.95)\",\r\n secondary: \"rgba(255, 255, 255, 0.7)\",\r\n disabled: \"rgba(255, 255, 255, 0.38)\",\r\n },\r\n background: {\r\n default: \"#09090b\",\r\n paper: \"#18181b\",\r\n surface: \"#18181b\",\r\n },\r\n divider: \"rgba(255, 255, 255, 0.12)\",\r\n action: {\r\n active: \"rgba(255, 255, 255, 0.7)\",\r\n hover: \"rgba(255, 255, 255, 0.08)\",\r\n hoverOpacity: 0.08,\r\n selected: \"rgba(255, 255, 255, 0.16)\",\r\n selectedOpacity: 0.16,\r\n disabled: \"rgba(255, 255, 255, 0.3)\",\r\n disabledBackground: \"rgba(255, 255, 255, 0.12)\",\r\n focus: \"rgba(255, 255, 255, 0.12)\",\r\n focusOpacity: 0.12,\r\n },\r\n};\r\n\r\nexport function createPalette(mode: ColorMode = \"light\"): Palette {\r\n return mode === \"dark\" ? darkPalette : lightPalette;\r\n}\r\n","import { TypographyTheme } from \"./types\";\r\n\r\nexport const defaultFontFamily =\r\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\"';\r\n\r\nexport const defaultTypography: TypographyTheme = {\r\n fontFamily: defaultFontFamily,\r\n fontSize: 14,\r\n fontWeightLight: 300,\r\n fontWeightRegular: 400,\r\n fontWeightMedium: 500,\r\n fontWeightBold: 700,\r\n h1: {\r\n fontFamily: defaultFontFamily,\r\n fontWeight: 300,\r\n fontSize: \"6rem\",\r\n lineHeight: 1.167,\r\n letterSpacing: \"-0.01562em\",\r\n },\r\n h2: {\r\n fontFamily: defaultFontFamily,\r\n fontWeight: 300,\r\n fontSize: \"3.75rem\",\r\n lineHeight: 1.2,\r\n letterSpacing: \"-0.00833em\",\r\n },\r\n h3: {\r\n fontFamily: defaultFontFamily,\r\n fontWeight: 400,\r\n fontSize: \"3rem\",\r\n lineHeight: 1.167,\r\n letterSpacing: \"0em\",\r\n },\r\n h4: {\r\n fontFamily: defaultFontFamily,\r\n fontWeight: 400,\r\n fontSize: \"2.125rem\",\r\n lineHeight: 1.235,\r\n letterSpacing: \"0.00735em\",\r\n },\r\n h5: {\r\n fontFamily: defaultFontFamily,\r\n fontWeight: 500,\r\n fontSize: \"1.5rem\",\r\n lineHeight: 1.334,\r\n letterSpacing: \"0em\",\r\n },\r\n h6: {\r\n fontFamily: defaultFontFamily,\r\n fontWeight: 500,\r\n fontSize: \"1.25rem\",\r\n lineHeight: 1.6,\r\n letterSpacing: \"0.0075em\",\r\n },\r\n subtitle1: {\r\n fontFamily: defaultFontFamily,\r\n fontWeight: 400,\r\n fontSize: \"1rem\",\r\n lineHeight: 1.75,\r\n letterSpacing: \"0.00938em\",\r\n },\r\n subtitle2: {\r\n fontFamily: defaultFontFamily,\r\n fontWeight: 500,\r\n fontSize: \"0.875rem\",\r\n lineHeight: 1.57,\r\n letterSpacing: \"0.00714em\",\r\n },\r\n body1: {\r\n fontFamily: defaultFontFamily,\r\n fontWeight: 400,\r\n fontSize: \"1rem\",\r\n lineHeight: 1.5,\r\n letterSpacing: \"0.00938em\",\r\n },\r\n body2: {\r\n fontFamily: defaultFontFamily,\r\n fontWeight: 400,\r\n fontSize: \"0.875rem\",\r\n lineHeight: 1.43,\r\n letterSpacing: \"0.01071em\",\r\n },\r\n button: {\r\n fontFamily: defaultFontFamily,\r\n fontWeight: 500,\r\n fontSize: \"0.875rem\",\r\n lineHeight: 1.75,\r\n letterSpacing: \"0.02857em\",\r\n textTransform: \"uppercase\",\r\n },\r\n caption: {\r\n fontFamily: defaultFontFamily,\r\n fontWeight: 400,\r\n fontSize: \"0.75rem\",\r\n lineHeight: 1.66,\r\n letterSpacing: \"0.03333em\",\r\n },\r\n overline: {\r\n fontFamily: defaultFontFamily,\r\n fontWeight: 400,\r\n fontSize: \"0.75rem\",\r\n lineHeight: 2.66,\r\n letterSpacing: \"0.08333em\",\r\n textTransform: \"uppercase\",\r\n },\r\n};\r\n","/**\r\n * Google Material Design 8px Spacing Grid Function\r\n *\r\n * Supports single and multi-argument invocations:\r\n * - spacing(1) => '8px'\r\n * - spacing(2) => '16px'\r\n * - spacing(1, 2) => '8px 16px'\r\n * - spacing(1, 2, 3, 4) => '8px 16px 24px 32px'\r\n * - spacing('auto') => 'auto'\r\n */\r\nexport function createSpacing(base = 8) {\r\n return (...factors: (number | string)[]): string => {\r\n if (factors.length === 0) return `${base}px`;\r\n\r\n return factors\r\n .map((factor) => {\r\n if (typeof factor === \"string\") return factor;\r\n return `${factor * base}px`;\r\n })\r\n .join(\" \");\r\n };\r\n}\r\n\r\nexport const defaultSpacing = createSpacing(8);\r\n","import { BreakpointKey, Breakpoints } from \"./types\";\r\n\r\nexport const defaultBreakpointValues: Record<BreakpointKey, number> = {\r\n xs: 0,\r\n sm: 600,\r\n md: 900,\r\n lg: 1200,\r\n xl: 1536,\r\n};\r\n\r\nexport const breakpointKeys: BreakpointKey[] = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\"];\r\n\r\nexport function createBreakpoints(\r\n customValues?: Partial<Record<BreakpointKey, number>>\r\n): Breakpoints {\r\n const values: Record<BreakpointKey, number> = {\r\n ...defaultBreakpointValues,\r\n ...customValues,\r\n };\r\n\r\n const step = 5 / 100; // 0.05px\r\n\r\n const up = (key: BreakpointKey | number): string => {\r\n const value = typeof key === \"number\" ? key : values[key];\r\n return `@media (min-width:${value}px)`;\r\n };\r\n\r\n const down = (key: BreakpointKey | number): string => {\r\n const value = typeof key === \"number\" ? key : values[key];\r\n return `@media (max-width:${value - step}px)`;\r\n };\r\n\r\n const between = (\r\n start: BreakpointKey | number,\r\n end: BreakpointKey | number\r\n ): string => {\r\n const min = typeof start === \"number\" ? start : values[start];\r\n const max = typeof end === \"number\" ? end : values[end];\r\n return `@media (min-width:${min}px) and (max-width:${max - step}px)`;\r\n };\r\n\r\n const only = (key: BreakpointKey): string => {\r\n const index = breakpointKeys.indexOf(key);\r\n if (index === breakpointKeys.length - 1) {\r\n return up(key);\r\n }\r\n const nextKey = breakpointKeys[index + 1];\r\n return nextKey ? between(key, nextKey) : up(key);\r\n };\r\n\r\n return {\r\n values,\r\n up,\r\n down,\r\n between,\r\n only,\r\n };\r\n}\r\n\r\nexport const defaultBreakpoints = createBreakpoints();\r\n","/**\r\n * Google Material Design 24-Level Elevation Shadow Matrix\r\n *\r\n * Each shadow is composed of 3 distinct light-source formulas:\r\n * 1. Umbra: Key direct light source shadow\r\n * 2. Penumbra: Secondary ambient light shadow\r\n * 3. Ambient: Atmospheric fill shadow\r\n */\r\n\r\nconst umbra = [\r\n \"0px 0px 0px 0px\",\r\n \"0px 2px 1px -1px\",\r\n \"0px 3px 1px -2px\",\r\n \"0px 3px 3px -2px\",\r\n \"0px 2px 4px -1px\",\r\n \"0px 3px 5px -1px\",\r\n \"0px 3px 5px -1px\",\r\n \"0px 4px 5px -2px\",\r\n \"0px 5px 5px -3px\",\r\n \"0px 5px 6px -3px\",\r\n \"0px 6px 6px -3px\",\r\n \"0px 6px 7px -4px\",\r\n \"0px 7px 8px -4px\",\r\n \"0px 7px 8px -4px\",\r\n \"0px 7px 9px -4px\",\r\n \"0px 8px 9px -5px\",\r\n \"0px 8px 10px -5px\",\r\n \"0px 8px 11px -5px\",\r\n \"0px 9px 11px -5px\",\r\n \"0px 9px 12px -6px\",\r\n \"0px 10px 13px -6px\",\r\n \"0px 10px 13px -6px\",\r\n \"0px 10px 14px -6px\",\r\n \"0px 11px 14px -7px\",\r\n \"0px 11px 15px -7px\",\r\n];\r\n\r\nconst penumbra = [\r\n \"0px 0px 0px 0px\",\r\n \"0px 1px 1px 0px\",\r\n \"0px 2px 2px 0px\",\r\n \"0px 3px 4px 0px\",\r\n \"0px 4px 5px 0px\",\r\n \"0px 5px 8px 0px\",\r\n \"0px 6px 10px 0px\",\r\n \"0px 7px 10px 1px\",\r\n \"0px 8px 10px 1px\",\r\n \"0px 9px 12px 1px\",\r\n \"0px 10px 14px 1px\",\r\n \"0px 11px 15px 1px\",\r\n \"0px 12px 17px 2px\",\r\n \"0px 13px 19px 2px\",\r\n \"0px 14px 21px 2px\",\r\n \"0px 15px 22px 2px\",\r\n \"0px 16px 24px 2px\",\r\n \"0px 17px 26px 2px\",\r\n \"0px 18px 28px 2px\",\r\n \"0px 19px 29px 2px\",\r\n \"0px 20px 31px 3px\",\r\n \"0px 21px 33px 3px\",\r\n \"0px 22px 35px 3px\",\r\n \"0px 23px 36px 3px\",\r\n \"0px 24px 38px 3px\",\r\n];\r\n\r\nconst ambient = [\r\n \"0px 0px 0px 0px\",\r\n \"0px 1px 3px 0px\",\r\n \"0px 1px 5px 0px\",\r\n \"0px 1px 8px 0px\",\r\n \"0px 1px 10px 0px\",\r\n \"0px 1px 14px 0px\",\r\n \"0px 1px 18px 0px\",\r\n \"0px 2px 16px 1px\",\r\n \"0px 3px 14px 2px\",\r\n \"0px 3px 16px 2px\",\r\n \"0px 4px 18px 3px\",\r\n \"0px 4px 20px 3px\",\r\n \"0px 5px 22px 4px\",\r\n \"0px 5px 24px 4px\",\r\n \"0px 5px 26px 4px\",\r\n \"0px 6px 28px 5px\",\r\n \"0px 6px 30px 5px\",\r\n \"0px 6px 32px 5px\",\r\n \"0px 7px 34px 6px\",\r\n \"0px 7px 36px 6px\",\r\n \"0px 8px 38px 7px\",\r\n \"0px 8px 40px 7px\",\r\n \"0px 8px 42px 7px\",\r\n \"0px 9px 44px 8px\",\r\n \"0px 9px 46px 8px\",\r\n];\r\n\r\nexport function createShadows(): string[] {\r\n return umbra.map((u, i) => {\r\n if (i === 0) return \"none\";\r\n return `${u} rgba(0,0,0,0.2), ${penumbra[i]} rgba(0,0,0,0.14), ${ambient[i]} rgba(0,0,0,0.12)`;\r\n });\r\n}\r\n\r\nexport const defaultShadows = createShadows();\r\n","import { Transitions } from \"./types\";\r\n\r\nexport const defaultTransitions: Transitions = {\r\n easing: {\r\n easeInOut: \"cubic-bezier(0.4, 0, 0.2, 1)\",\r\n easeOut: \"cubic-bezier(0.0, 0, 0.2, 1)\",\r\n easeIn: \"cubic-bezier(0.4, 0, 1, 1)\",\r\n sharp: \"cubic-bezier(0.4, 0, 0.6, 1)\",\r\n },\r\n duration: {\r\n shortest: 150,\r\n shorter: 200,\r\n short: 250,\r\n standard: 300,\r\n complex: 375,\r\n enteringScreen: 225,\r\n leavingScreen: 195,\r\n },\r\n create(\r\n props: string | string[] = [\"all\"],\r\n options: {\r\n duration?: number | string;\r\n easing?: string;\r\n delay?: number | string;\r\n } = {}\r\n ): string {\r\n const {\r\n duration = defaultTransitions.duration.standard,\r\n easing = defaultTransitions.easing.easeInOut,\r\n delay = 0,\r\n } = options;\r\n\r\n const formatDuration = (d: number | string) =>\r\n typeof d === \"string\" ? d : `${d}ms`;\r\n\r\n const formatDelay = (d: number | string) =>\r\n typeof d === \"string\" ? d : `${d}ms`;\r\n\r\n const properties = Array.isArray(props) ? props : [props];\r\n\r\n return properties\r\n .map(\r\n (prop) =>\r\n `${prop} ${formatDuration(duration)} ${easing} ${formatDelay(delay)}`\r\n )\r\n .join(\", \");\r\n },\r\n};\r\n","import { ZIndex } from \"./types\";\r\n\r\nexport const defaultZIndex: ZIndex = {\r\n mobileStepper: 1000,\r\n fab: 1050,\r\n speedDial: 1050,\r\n appBar: 1100,\r\n drawer: 1200,\r\n modal: 1300,\r\n snackbar: 1400,\r\n tooltip: 1500,\r\n};\r\n","import { ChellaaTheme, ThemeOptions, ColorMode } from \"./types\";\r\nimport { createPalette } from \"./palette\";\r\nimport { defaultTypography } from \"./typography\";\r\nimport { defaultSpacing } from \"./spacing\";\r\nimport { defaultBreakpoints, createBreakpoints } from \"./breakpoints\";\r\nimport { defaultShadows } from \"./shadows\";\r\nimport { defaultTransitions } from \"./transitions\";\r\nimport { defaultZIndex } from \"./zIndex\";\r\n\r\n/**\r\n * Deep merge utility for theme options\r\n */\r\nfunction isObject(item: any): item is Record<string, any> {\r\n return item && typeof item === \"object\" && !Array.isArray(item);\r\n}\r\n\r\nfunction deepMerge(target: any, source: any): any {\r\n const output = { ...target };\r\n if (isObject(target) && isObject(source)) {\r\n Object.keys(source).forEach((key) => {\r\n if (isObject(source[key])) {\r\n if (!(key in target)) {\r\n Object.assign(output, { [key]: source[key] });\r\n } else {\r\n output[key] = deepMerge(target[key], source[key]);\r\n }\r\n } else {\r\n Object.assign(output, { [key]: source[key] });\r\n }\r\n });\r\n }\r\n return output;\r\n}\r\n\r\n/**\r\n * Creates a Chellaa Material Theme with 24-level elevation shadows,\r\n * 8px spacing, and complete Google Material 3 design tokens.\r\n *\r\n * @example\r\n * const theme = createTheme({\r\n * palette: {\r\n * mode: 'dark',\r\n * primary: { main: '#6366f1' }\r\n * },\r\n * shape: { borderRadius: 8 }\r\n * });\r\n */\r\nexport function createTheme(options: ThemeOptions = {}): ChellaaTheme {\r\n const mode: ColorMode = options.palette?.mode ?? \"light\";\r\n const basePalette = createPalette(mode);\r\n\r\n const mergedPalette = options.palette\r\n ? deepMerge(basePalette, options.palette)\r\n : basePalette;\r\n\r\n const mergedTypography = options.typography\r\n ? deepMerge(defaultTypography, options.typography)\r\n : defaultTypography;\r\n\r\n const mergedBreakpoints = options.breakpoints?.values\r\n ? createBreakpoints(options.breakpoints.values as any)\r\n : defaultBreakpoints;\r\n\r\n const spacing =\r\n typeof options.spacing === \"function\"\r\n ? (options.spacing as any)\r\n : defaultSpacing;\r\n\r\n const shape = {\r\n borderRadius: options.shape?.borderRadius ?? 4,\r\n };\r\n\r\n const shadows = (options.shadows as string[]) ?? defaultShadows;\r\n const transitions = options.transitions\r\n ? deepMerge(defaultTransitions, options.transitions)\r\n : defaultTransitions;\r\n const zIndex = options.zIndex\r\n ? deepMerge(defaultZIndex, options.zIndex)\r\n : defaultZIndex;\r\n\r\n return {\r\n palette: mergedPalette,\r\n typography: mergedTypography,\r\n spacing,\r\n shape,\r\n breakpoints: mergedBreakpoints,\r\n shadows,\r\n transitions,\r\n zIndex,\r\n components: (options.components as any) ?? {},\r\n };\r\n}\r\n\r\nexport const defaultTheme = createTheme({ palette: { mode: \"light\" } });\r\nexport const defaultDarkTheme = createTheme({ palette: { mode: \"dark\" } });\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { ThemeProvider as EmotionThemeProvider } from \"@emotion/react\";\r\nimport { ChellaaTheme, ThemeOptions, ColorMode } from \"./types\";\r\nimport { createTheme, defaultTheme, defaultDarkTheme } from \"./createTheme\";\r\n\r\n// Ambient type augmentation for @emotion/react\r\ndeclare module \"@emotion/react\" {\r\n export interface Theme extends ChellaaTheme {}\r\n}\r\n\r\nexport type ThemeMode = \"light\" | \"dark\" | \"system\" | string;\r\n\r\nexport interface ThemeContextValue {\r\n theme: ThemeMode;\r\n setTheme: (theme: ThemeMode) => void;\r\n resolvedTheme: \"light\" | \"dark\";\r\n systemTheme: \"light\" | \"dark\" | undefined;\r\n activeTheme: ChellaaTheme;\r\n colorMode: ColorMode;\r\n setColorMode: (mode: ColorMode) => void;\r\n}\r\n\r\nexport const ThemeContext = React.createContext<ThemeContextValue | undefined>(\r\n undefined\r\n);\r\n\r\nexport interface ThemeProviderProps {\r\n children?: React.ReactNode;\r\n theme?: ChellaaTheme | ThemeOptions;\r\n defaultTheme?: ThemeMode;\r\n storageKey?: string;\r\n enableSystem?: boolean;\r\n tokens?: Record<string, string>;\r\n attribute?: string;\r\n}\r\n\r\nconst COLOR_SCHEME_QUERY = \"(prefers-color-scheme: dark)\";\r\n\r\nexport function ThemeProvider({\r\n children,\r\n theme: customThemeProp,\r\n defaultTheme: defaultThemeMode = \"system\",\r\n storageKey = \"chellaa-theme\",\r\n enableSystem = true,\r\n tokens,\r\n attribute = \"data-theme\",\r\n}: ThemeProviderProps) {\r\n const parentContext = React.useContext(ThemeContext);\r\n\r\n const [themeMode, setThemeModeState] = React.useState<ThemeMode>(() => {\r\n if (typeof window === \"undefined\") return defaultThemeMode;\r\n try {\r\n return (localStorage.getItem(storageKey) as ThemeMode) || defaultThemeMode;\r\n } catch {\r\n return defaultThemeMode;\r\n }\r\n });\r\n\r\n const [systemTheme, setSystemTheme] = React.useState<\r\n \"light\" | \"dark\" | undefined\r\n >(() => {\r\n if (\r\n typeof window === \"undefined\" ||\r\n !enableSystem ||\r\n typeof window.matchMedia !== \"function\"\r\n ) {\r\n return undefined;\r\n }\r\n return window.matchMedia(COLOR_SCHEME_QUERY).matches ? \"dark\" : \"light\";\r\n });\r\n\r\n // Calculate resolved theme (light or dark)\r\n const resolvedTheme: \"light\" | \"dark\" = React.useMemo(() => {\r\n if (themeMode === \"system\") {\r\n return systemTheme ?? \"light\";\r\n }\r\n return themeMode === \"dark\" ? \"dark\" : \"light\";\r\n }, [themeMode, systemTheme]);\r\n\r\n // Listen for OS system theme changes\r\n React.useEffect(() => {\r\n if (\r\n !enableSystem ||\r\n typeof window === \"undefined\" ||\r\n typeof window.matchMedia !== \"function\"\r\n ) {\r\n return;\r\n }\r\n\r\n const mediaQuery = window.matchMedia(COLOR_SCHEME_QUERY);\r\n const handleChange = (e: MediaQueryListEvent) => {\r\n setSystemTheme(e.matches ? \"dark\" : \"light\");\r\n };\r\n\r\n if (typeof mediaQuery.addEventListener === \"function\") {\r\n mediaQuery.addEventListener(\"change\", handleChange);\r\n return () => mediaQuery.removeEventListener(\"change\", handleChange);\r\n } else if (\r\n typeof (\r\n mediaQuery as {\r\n addListener?: (cb: (e: MediaQueryListEvent) => void) => void;\r\n }\r\n ).addListener === \"function\"\r\n ) {\r\n (\r\n mediaQuery as {\r\n addListener: (cb: (e: MediaQueryListEvent) => void) => void;\r\n }\r\n ).addListener(handleChange);\r\n return () =>\r\n (\r\n mediaQuery as {\r\n removeListener: (cb: (e: MediaQueryListEvent) => void) => void;\r\n }\r\n ).removeListener(handleChange);\r\n }\r\n }, [enableSystem]);\r\n\r\n // Compute active Emotion ChellaaTheme\r\n const activeTheme = React.useMemo<ChellaaTheme>(() => {\r\n if (customThemeProp) {\r\n // If full ChellaaTheme passed, respect its palette mode or override with resolvedTheme\r\n return createTheme({\r\n ...(customThemeProp as any),\r\n palette: {\r\n mode: resolvedTheme,\r\n ...((customThemeProp as any).palette || {}),\r\n },\r\n });\r\n }\r\n return resolvedTheme === \"dark\" ? defaultDarkTheme : defaultTheme;\r\n }, [customThemeProp, resolvedTheme]);\r\n\r\n // Apply data-theme attribute and CSS tokens to DOM\r\n React.useEffect(() => {\r\n if (typeof document === \"undefined\") return;\r\n\r\n if (!parentContext) {\r\n const root = document.documentElement;\r\n root.setAttribute(attribute, resolvedTheme);\r\n\r\n if (tokens) {\r\n for (const [key, value] of Object.entries(tokens)) {\r\n root.style.setProperty(key, value);\r\n }\r\n }\r\n }\r\n }, [resolvedTheme, parentContext, attribute, tokens]);\r\n\r\n const setTheme = React.useCallback(\r\n (newTheme: ThemeMode) => {\r\n setThemeModeState(newTheme);\r\n try {\r\n localStorage.setItem(storageKey, newTheme);\r\n } catch {\r\n // Ignore localStorage errors (e.g. private browsing mode)\r\n }\r\n },\r\n [storageKey]\r\n );\r\n\r\n const setColorMode = React.useCallback(\r\n (mode: ColorMode) => {\r\n setTheme(mode);\r\n },\r\n [setTheme]\r\n );\r\n\r\n const contextValue = React.useMemo<ThemeContextValue>(\r\n () => ({\r\n theme: themeMode,\r\n setTheme,\r\n resolvedTheme,\r\n systemTheme,\r\n activeTheme,\r\n colorMode: resolvedTheme,\r\n setColorMode,\r\n }),\r\n [themeMode, setTheme, resolvedTheme, systemTheme, activeTheme, setColorMode]\r\n );\r\n\r\n if (parentContext) {\r\n const styleObj = tokens\r\n ? (tokens as unknown as React.CSSProperties)\r\n : undefined;\r\n\r\n return (\r\n <ThemeContext.Provider value={contextValue}>\r\n <EmotionThemeProvider theme={activeTheme}>\r\n <div\r\n {...{ [attribute]: resolvedTheme }}\r\n style={styleObj}\r\n className=\"cl-theme-scope\"\r\n >\r\n {children}\r\n </div>\r\n </EmotionThemeProvider>\r\n </ThemeContext.Provider>\r\n );\r\n }\r\n\r\n return (\r\n <ThemeContext.Provider value={contextValue}>\r\n <EmotionThemeProvider theme={activeTheme}>{children}</EmotionThemeProvider>\r\n </ThemeContext.Provider>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { useTheme as useEmotionTheme } from \"@emotion/react\";\r\nimport { ThemeContext, type ThemeContextValue } from \"./ThemeProvider\";\r\nimport { ChellaaTheme } from \"./types\";\r\nimport { defaultTheme } from \"./createTheme\";\r\n\r\nexport interface ExtendedThemeContextValue extends ThemeContextValue {\r\n /** The active ChellaaTheme object (colors, typography, spacing, shadows) */\r\n themeObject: ChellaaTheme;\r\n}\r\n\r\n/**\r\n * Accesses the active theme context, allowing components to read and update\r\n * the current theme mode (`light`, `dark`, `system`), resolved theme, and active ChellaaTheme.\r\n */\r\nexport function useTheme(): ExtendedThemeContextValue {\r\n const context = React.useContext(ThemeContext);\r\n const emotionTheme = useEmotionTheme() as ChellaaTheme | undefined;\r\n\r\n if (context) {\r\n return {\r\n ...context,\r\n themeObject: context.activeTheme,\r\n };\r\n }\r\n\r\n if (emotionTheme && emotionTheme.palette) {\r\n return {\r\n theme: emotionTheme.palette.mode,\r\n setTheme: () => {},\r\n resolvedTheme: emotionTheme.palette.mode,\r\n systemTheme: undefined,\r\n activeTheme: emotionTheme,\r\n colorMode: emotionTheme.palette.mode,\r\n setColorMode: () => {},\r\n themeObject: emotionTheme,\r\n };\r\n }\r\n\r\n // Graceful fallback to defaultTheme if used outside ThemeProvider\r\n return {\r\n theme: \"light\",\r\n setTheme: () => {},\r\n resolvedTheme: \"light\",\r\n systemTheme: undefined,\r\n activeTheme: defaultTheme,\r\n colorMode: \"light\",\r\n setColorMode: () => {},\r\n themeObject: defaultTheme,\r\n };\r\n}\r\n","export interface ThemeScriptProps {\n storageKey?: string;\n defaultTheme?: string;\n attribute?: string;\n nonce?: string;\n}\n\n/**\n * Inline synchronous script that prevents theme flash (FOUC) during SSR page load.\n * Place inside the `<head>` of your application layout.\n */\nexport function ThemeScript({\n storageKey = \"chellaa-theme\",\n defaultTheme = \"system\",\n attribute = \"data-theme\",\n nonce,\n}: ThemeScriptProps) {\n const scriptContent = `(function() {\n try {\n var key = '${storageKey}';\n var def = '${defaultTheme}';\n var attr = '${attribute}';\n var stored = localStorage.getItem(key);\n var theme = stored || def;\n var resolved = theme;\n if (theme === 'system') {\n resolved = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n document.documentElement.setAttribute(attr, resolved);\n } catch (e) {}\n})();`;\n\n return (\n <script\n nonce={nonce}\n dangerouslySetInnerHTML={{ __html: scriptContent }}\n suppressHydrationWarning\n />\n );\n}\n","const defaultBlockedProps = new Set<string>([\r\n \"sx\",\r\n \"theme\",\r\n \"as\",\r\n \"ownerState\",\r\n \"slotProps\",\r\n]);\r\n\r\n/**\r\n * Creates a shouldForwardProp predicate function for Emotion styled components.\r\n * Automatically filters out transient props starting with '$' and default system props.\r\n *\r\n * @param customBlocked Array or Set of additional prop names to prevent forwarding to DOM\r\n */\r\nexport function createShouldForwardProp(\r\n customBlocked?: (string | PropertyKey)[] | Set<string | PropertyKey>\r\n): (prop: PropertyKey) => boolean {\r\n const blockedSet = new Set(defaultBlockedProps);\r\n\r\n if (customBlocked) {\r\n customBlocked.forEach((prop) => blockedSet.add(prop as string));\r\n }\r\n\r\n return (prop: PropertyKey): boolean => {\r\n if (typeof prop === \"string\" && prop.startsWith(\"$\")) {\r\n return false;\r\n }\r\n return !blockedSet.has(prop as string);\r\n };\r\n}\r\n\r\n/**\r\n * Default root shouldForwardProp filter.\r\n * Blocks 'sx', 'theme', 'as', 'ownerState', 'slotProps', and '$*'.\r\n */\r\nexport const rootShouldForwardProp = createShouldForwardProp();\r\n","import type { BreakpointKey, ChellaaTheme } from \"../theme/types\";\r\nimport { breakpointKeys } from \"../theme/breakpoints\";\r\nimport { defaultTheme } from \"../theme/createTheme\";\r\nimport type { SxProps, SxObject } from \"./types\";\r\n\r\nconst spacingProperties: Record<string, string[]> = {\r\n m: [\"margin\"],\r\n margin: [\"margin\"],\r\n mt: [\"marginTop\"],\r\n marginTop: [\"marginTop\"],\r\n mr: [\"marginRight\"],\r\n marginRight: [\"marginRight\"],\r\n mb: [\"marginBottom\"],\r\n marginBottom: [\"marginBottom\"],\r\n ml: [\"marginLeft\"],\r\n marginLeft: [\"marginLeft\"],\r\n mx: [\"marginInline\"],\r\n marginInline: [\"marginInline\"],\r\n my: [\"marginBlock\"],\r\n marginBlock: [\"marginBlock\"],\r\n\r\n p: [\"padding\"],\r\n padding: [\"padding\"],\r\n pt: [\"paddingTop\"],\r\n paddingTop: [\"paddingTop\"],\r\n pr: [\"paddingRight\"],\r\n paddingRight: [\"paddingRight\"],\r\n pb: [\"paddingBottom\"],\r\n paddingBottom: [\"paddingBottom\"],\r\n pl: [\"paddingLeft\"],\r\n paddingLeft: [\"paddingLeft\"],\r\n px: [\"paddingInline\"],\r\n paddingInline: [\"paddingInline\"],\r\n py: [\"paddingBlock\"],\r\n paddingBlock: [\"paddingBlock\"],\r\n\r\n gap: [\"gap\"],\r\n rowGap: [\"rowGap\"],\r\n columnGap: [\"columnGap\"],\r\n};\r\n\r\n/**\r\n * Resolves nested property path in theme palette (e.g. 'primary.main', 'text.secondary')\r\n */\r\nfunction resolvePalettePath(palette: ChellaaTheme[\"palette\"], path: string): string | undefined {\r\n if (!path || typeof path !== \"string\") return undefined;\r\n const parts = path.split(\".\");\r\n let current: any = palette;\r\n for (const part of parts) {\r\n if (current && typeof current === \"object\" && part in current) {\r\n current = current[part];\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n return typeof current === \"string\" ? current : undefined;\r\n}\r\n\r\n/**\r\n * Resolves color values against theme palette\r\n */\r\nfunction resolveColor(theme: ChellaaTheme, value: any): any {\r\n if (typeof value !== \"string\") return value;\r\n const resolved = resolvePalettePath(theme.palette, value);\r\n return resolved ?? value;\r\n}\r\n\r\n/**\r\n * Resolves z-index token names against theme.zIndex\r\n */\r\nfunction resolveZIndex(theme: ChellaaTheme, value: any): any {\r\n if (typeof value === \"string\" && value in theme.zIndex) {\r\n return theme.zIndex[value as keyof typeof theme.zIndex];\r\n }\r\n return value;\r\n}\r\n\r\n/**\r\n * Resolves a single CSS property name and value into one or more CSS declarations\r\n */\r\nfunction resolveSingleProperty(\r\n theme: ChellaaTheme,\r\n prop: string,\r\n value: any\r\n): Record<string, any> {\r\n if (value === undefined || value === null) return {};\r\n\r\n // 1. Spacing properties\r\n if (prop in spacingProperties) {\r\n const cssProps = spacingProperties[prop]!;\r\n const formatted = typeof value === \"number\" ? theme.spacing(value) : value;\r\n const result: Record<string, any> = {};\r\n for (const cssProp of cssProps) {\r\n result[cssProp] = formatted;\r\n }\r\n return result;\r\n }\r\n\r\n // 2. Background color shorthand\r\n if (prop === \"bgcolor\") {\r\n return { backgroundColor: resolveColor(theme, value) };\r\n }\r\n\r\n // 3. Color properties\r\n if (\r\n prop === \"color\" ||\r\n prop === \"backgroundColor\" ||\r\n prop === \"borderColor\" ||\r\n prop === \"outlineColor\"\r\n ) {\r\n return { [prop]: resolveColor(theme, value) };\r\n }\r\n\r\n // 4. Elevation / BoxShadow\r\n if (prop === \"elevation\") {\r\n if (typeof value === \"number\" && theme.shadows[value]) {\r\n return { boxShadow: theme.shadows[value] };\r\n }\r\n return {};\r\n }\r\n if (prop === \"boxShadow\") {\r\n if (typeof value === \"number\" && theme.shadows[value]) {\r\n return { boxShadow: theme.shadows[value] };\r\n }\r\n return { boxShadow: value };\r\n }\r\n\r\n // 5. Border radius\r\n if (prop === \"borderRadius\") {\r\n if (typeof value === \"number\") {\r\n const radius = theme.shape?.borderRadius ?? 4;\r\n return { borderRadius: `${value * radius}px` };\r\n }\r\n return { borderRadius: value };\r\n }\r\n\r\n // 6. Z-Index\r\n if (prop === \"zIndex\") {\r\n return { zIndex: resolveZIndex(theme, value) };\r\n }\r\n\r\n // 7. Standard CSS Property pass-through\r\n return { [prop]: value };\r\n}\r\n\r\nfunction isObject(val: any): val is Record<string, any> {\r\n return val !== null && typeof val === \"object\" && !Array.isArray(val);\r\n}\r\n\r\n/**\r\n * Checks if a value is responsive (either an array or breakpoint keyed object)\r\n */\r\nfunction isResponsiveValue(val: any): boolean {\r\n if (Array.isArray(val)) return true;\r\n if (isObject(val)) {\r\n return Object.keys(val).some((k) => breakpointKeys.includes(k as BreakpointKey));\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Parses an individual SxObject with the current theme\r\n */\r\nfunction parseSxObject(\r\n theme: ChellaaTheme,\r\n sxObject: SxObject\r\n): Record<string, any> {\r\n const result: Record<string, any> = {};\r\n\r\n for (const [key, value] of Object.entries(sxObject)) {\r\n if (value === undefined || value === null) continue;\r\n\r\n // Handle nested selectors / media queries (&:hover, @media, etc.)\r\n if (key.startsWith(\"&\") || key.startsWith(\"@\") || key.startsWith(\".\")) {\r\n if (typeof value === \"function\") {\r\n result[key] = parseSxObject(theme, value(theme));\r\n } else if (isObject(value)) {\r\n result[key] = parseSxObject(theme, value as SxObject);\r\n }\r\n continue;\r\n }\r\n\r\n // Handle responsive values: array syntax [val1, val2, val3]\r\n if (Array.isArray(value)) {\r\n value.forEach((bpVal, index) => {\r\n if (bpVal === undefined || bpVal === null) return;\r\n const bpKey = breakpointKeys[index];\r\n if (!bpKey) return;\r\n\r\n const resolved = resolveSingleProperty(theme, key, bpVal);\r\n if (bpKey === \"xs\") {\r\n Object.assign(result, resolved);\r\n } else {\r\n const media = theme.breakpoints.up(bpKey);\r\n result[media] = {\r\n ...(result[media] || {}),\r\n ...resolved,\r\n };\r\n }\r\n });\r\n continue;\r\n }\r\n\r\n // Handle responsive values: object syntax { xs: val1, md: val2 }\r\n if (isResponsiveValue(value)) {\r\n const respObj = value as Partial<Record<BreakpointKey, any>>;\r\n for (const [bpKey, bpVal] of Object.entries(respObj)) {\r\n if (bpVal === undefined || bpVal === null) continue;\r\n\r\n const resolved = resolveSingleProperty(theme, key, bpVal);\r\n if (bpKey === \"xs\") {\r\n Object.assign(result, resolved);\r\n } else if (breakpointKeys.includes(bpKey as BreakpointKey)) {\r\n const media = theme.breakpoints.up(bpKey as BreakpointKey);\r\n result[media] = {\r\n ...(result[media] || {}),\r\n ...resolved,\r\n };\r\n }\r\n }\r\n continue;\r\n }\r\n\r\n // Handle nested sub-object that is not a selector or responsive breakpoint\r\n if (isObject(value)) {\r\n result[key] = parseSxObject(theme, value as SxObject);\r\n continue;\r\n }\r\n\r\n // Standard single property resolution\r\n const resolved = resolveSingleProperty(theme, key, value);\r\n Object.assign(result, resolved);\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Core responsive `sx` parser function.\r\n * Evaluates `sx` prop against current theme, expanding:\r\n * - Theme spacing shortcuts (m, p, mx, my, px, py, etc.)\r\n * - Theme palette tokens (color, bgcolor: 'primary.main', 'text.secondary')\r\n * - Elevation shadows (elevation: 0..24, boxShadow: 0..24)\r\n * - Breakpoint responsive arrays ([1, 2, 4]) and objects ({ xs: 1, md: 4 })\r\n * - Pseudo-classes (&:hover, &:focus) and nested selectors\r\n * - Theme function callbacks: `(theme) => ({ ... })`\r\n * - Array of sx items: `[sx1, condition && sx2, (theme) => sx3]`\r\n */\r\nexport function parseSx(\r\n themeInput?: ChellaaTheme,\r\n sx?: SxProps\r\n): Record<string, any> {\r\n if (!sx) return {};\r\n const theme =\r\n themeInput && typeof themeInput.spacing === \"function\"\r\n ? themeInput\r\n : defaultTheme;\r\n\r\n // If sx is a function, execute with theme\r\n if (typeof sx === \"function\") {\r\n return parseSxObject(theme, sx(theme));\r\n }\r\n\r\n // If sx is an array, merge in sequence\r\n if (Array.isArray(sx)) {\r\n return sx.reduce<Record<string, any>>((acc, item) => {\r\n if (!item) return acc;\r\n const parsed = parseSx(theme, item);\r\n return deepMergeStyles(acc, parsed);\r\n }, {});\r\n }\r\n\r\n // Object sx\r\n if (isObject(sx)) {\r\n return parseSxObject(theme, sx);\r\n }\r\n\r\n return {};\r\n}\r\n\r\n/**\r\n * Deep merge utility for style objects to safely merge nested media queries and selectors\r\n */\r\nfunction deepMergeStyles(\r\n target: Record<string, any>,\r\n source: Record<string, any>\r\n): Record<string, any> {\r\n const result: Record<string, any> = { ...target };\r\n\r\n for (const [key, value] of Object.entries(source)) {\r\n if (\r\n isObject(value) &&\r\n isObject(result[key]) &&\r\n !Array.isArray(value) &&\r\n !Array.isArray(result[key])\r\n ) {\r\n result[key] = deepMergeStyles(result[key], value);\r\n } else {\r\n result[key] = value;\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n","import type { ChellaaTheme } from \"../theme/types\";\r\n\r\nexport interface ComponentOverrideOptions {\r\n name?: string;\r\n slot?: string;\r\n overridesResolver?: (\r\n props: any,\r\n styles: Record<string, any>\r\n ) => Record<string, any> | undefined;\r\n}\r\n\r\n/**\r\n * Resolves component-level style overrides defined in theme.components[name].styleOverrides\r\n * Supports both static style objects and dynamic functions: `({ theme, ownerState }) => ({ ... })`\r\n */\r\nexport function resolveComponentOverrides(\r\n theme: ChellaaTheme,\r\n options: ComponentOverrideOptions,\r\n props: Record<string, any>\r\n): Record<string, any> | undefined {\r\n const { name, slot = \"root\", overridesResolver } = options;\r\n if (!name || !theme.components?.[name]) {\r\n return undefined;\r\n }\r\n\r\n const componentConfig = theme.components[name];\r\n const styleOverrides = componentConfig.styleOverrides;\r\n if (!styleOverrides) {\r\n return undefined;\r\n }\r\n\r\n // If custom overrides resolver is supplied, execute it\r\n if (overridesResolver) {\r\n const resolved = overridesResolver(props, styleOverrides);\r\n if (resolved) return resolved;\r\n }\r\n\r\n // Fallback to slot-based lookup\r\n const slotLower = slot.toLowerCase();\r\n const matchedKey = Object.keys(styleOverrides).find(\r\n (k) => k.toLowerCase() === slotLower\r\n );\r\n\r\n if (matchedKey) {\r\n const override = styleOverrides[matchedKey];\r\n if (typeof override === \"function\") {\r\n return override({ theme, ownerState: props.ownerState ?? props });\r\n }\r\n return override;\r\n }\r\n\r\n return undefined;\r\n}\r\n","import React from \"react\";\r\nimport emotionStyled from \"@emotion/styled\";\r\nimport type { ChellaaTheme } from \"../theme/types\";\r\nimport { defaultTheme } from \"../theme/createTheme\";\r\nimport { rootShouldForwardProp } from \"./shouldForwardProp\";\r\nimport { parseSx } from \"./sx\";\r\nimport { resolveComponentOverrides } from \"./componentOverrides\";\r\nimport type { StyledOptions, SxProps } from \"./types\";\r\n\r\nexport type StyleInterpolation<Props extends object = {}> =\r\n | Record<string, any>\r\n | ((props: Props & { theme: ChellaaTheme }) => Record<string, any> | undefined | null | false);\r\n\r\n/**\r\n * Creates an Emotion-powered styled component with:\r\n * 1. Automatic `sx` prop parsing with responsive breakpoints & 8px theme spacing.\r\n * 2. Automatic resolution of `theme.components[name].styleOverrides[slot]`.\r\n * 3. Safe DOM prop filtering via `shouldForwardProp` preventing `sx` and private props from leaking.\r\n * 4. First-class polymorphism via `as` prop.\r\n *\r\n * @example\r\n * const MyBox = styled('div', {\r\n * name: 'ChellaaBox',\r\n * slot: 'Root'\r\n * })({\r\n * boxSizing: 'border-box'\r\n * });\r\n */\r\nexport function styled<\r\n Component extends React.ElementType,\r\n ExtraProps extends object = {}\r\n>(\r\n component: Component,\r\n options: StyledOptions<ExtraProps> = {}\r\n) {\r\n const {\r\n name,\r\n slot = \"Root\",\r\n label,\r\n target,\r\n shouldForwardProp: customShouldForwardProp,\r\n skipSx = false,\r\n } = options;\r\n\r\n const resolvedShouldForwardProp = customShouldForwardProp\r\n ? (prop: PropertyKey) =>\r\n rootShouldForwardProp(prop) && customShouldForwardProp(prop)\r\n : rootShouldForwardProp;\r\n\r\n const resolvedLabel = label ?? (name ? `${name}-${slot}` : undefined);\r\n\r\n const emotionOptions: {\r\n shouldForwardProp?: (prop: PropertyKey) => boolean;\r\n label?: string;\r\n target?: string;\r\n } = {\r\n shouldForwardProp: resolvedShouldForwardProp,\r\n };\r\n\r\n if (resolvedLabel !== undefined) {\r\n emotionOptions.label = resolvedLabel;\r\n }\r\n if (target !== undefined) {\r\n emotionOptions.target = target;\r\n }\r\n\r\n const emotionCreator = emotionStyled(component as any, emotionOptions);\r\n\r\n return <Props extends object = ExtraProps>(\r\n ...interpolations: StyleInterpolation<\r\n Props & { sx?: SxProps; as?: React.ElementType }\r\n >[]\r\n ) => {\r\n const wrappedInterpolations = interpolations.map((interpolation) => {\r\n if (typeof interpolation === \"function\") {\r\n return (rawProps: any) => {\r\n const activeTheme =\r\n rawProps.theme && typeof rawProps.theme.spacing === \"function\"\r\n ? (rawProps.theme as ChellaaTheme)\r\n : defaultTheme;\r\n return interpolation({\r\n ...rawProps,\r\n theme: activeTheme,\r\n });\r\n };\r\n }\r\n return interpolation;\r\n });\r\n\r\n return emotionCreator(\r\n // 1. Base component styles\r\n ...(wrappedInterpolations as any[]),\r\n\r\n // 2. Global theme overrides from theme.components[name].styleOverrides[slot]\r\n (props: any) => {\r\n if (!name) return null;\r\n const activeTheme =\r\n props.theme && typeof props.theme.spacing === \"function\"\r\n ? (props.theme as ChellaaTheme)\r\n : defaultTheme;\r\n return resolveComponentOverrides(activeTheme, options, props);\r\n },\r\n\r\n // 3. Local sx prop styles (highest precedence)\r\n (props: any) => {\r\n if (skipSx || !props.sx) return null;\r\n const activeTheme =\r\n props.theme && typeof props.theme.spacing === \"function\"\r\n ? (props.theme as ChellaaTheme)\r\n : defaultTheme;\r\n return parseSx(activeTheme, props.sx);\r\n }\r\n );\r\n };\r\n}\r\n","export type ClassValue =\n | string\n | number\n | boolean\n | undefined\n | null\n | Record<string, boolean | number | undefined | null>\n | ClassValue[];\n\n/**\n * Combines multiple conditional class names into a clean space-delimited string.\n * Zero external runtime dependencies.\n *\n * @example\n * classNames('cl-button', isActive && 'cl-button--active', { 'cl-button--disabled': isDisabled });\n */\nexport function classNames(...inputs: ClassValue[]): string {\n const classes: string[] = [];\n\n for (const input of inputs) {\n if (!input && input !== 0) continue;\n\n if (typeof input === \"string\" || typeof input === \"number\") {\n const trimmed = String(input).trim();\n if (trimmed) classes.push(trimmed);\n } else if (Array.isArray(input)) {\n const nested = classNames(...input);\n if (nested) classes.push(nested);\n } else if (typeof input === \"object\") {\n for (const [key, value] of Object.entries(input)) {\n if (value && key.trim()) {\n classes.push(key.trim());\n }\n }\n }\n }\n\n return classes.join(\" \");\n}\n","/**\n * Composes an optional consumer event handler with an internal library event handler.\n * If the consumer handler calls event.preventDefault(), the internal handler is skipped,\n * preserving consumer control over event delegation.\n *\n * @param originalHandler Optional consumer-provided event handler\n * @param ourHandler Internal component event handler\n * @param options Configuration options\n */\nexport function composeEventHandlers<E extends { defaultPrevented: boolean }>(\n originalHandler?: ((event: E) => void) | undefined,\n ourHandler?: ((event: E) => void) | undefined,\n {\n checkForDefaultPrevented = true,\n }: { checkForDefaultPrevented?: boolean } = {},\n): (event: E) => void {\n return function handleEvent(event: E) {\n originalHandler?.(event);\n\n if (!checkForDefaultPrevented || !event.defaultPrevented) {\n ourHandler?.(event);\n }\n };\n}\n","import * as React from \"react\";\n\n/**\n * Safely extracts a ref from a React element across React 18 and React 19\n * without triggering deprecation warnings in either version.\n *\n * In React 18:\n * - `element.props.ref` logs a warning in DEV mode if accessed directly.\n * - The ref lives on `element.ref` (defaults to `null` if unspecified).\n *\n * In React 19:\n * - `element.ref` logs a warning in DEV mode because ref is now a standard prop.\n * - The ref lives on `element.props.ref` (defaults to `undefined` if unspecified).\n *\n * We inspect property descriptor getters to detect React's DEV warnings before\n * accessing the respective property, ensuring warning-free behavior across all versions.\n */\nexport function getElementRef<T = HTMLElement>(\n element: React.ReactElement,\n): React.Ref<T> | undefined {\n if (!element || !React.isValidElement(element)) {\n return undefined;\n }\n\n // React <= 18 in DEV: accessing element.props.ref triggers a warning\n const propsGetter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n const isPropsWarning = Boolean(propsGetter && \"isReactWarning\" in propsGetter);\n if (isPropsWarning) {\n const r = (element as unknown as { ref?: React.Ref<T> }).ref;\n return r ?? undefined;\n }\n\n // React 19 in DEV: accessing element.ref triggers a warning\n const elementGetter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n const isElementWarning = Boolean(elementGetter && \"isReactWarning\" in elementGetter);\n if (isElementWarning) {\n const r = (element.props as { ref?: React.Ref<T> }).ref;\n return r ?? undefined;\n }\n\n // Production or un-proxied environment\n const ref =\n (element.props as { ref?: React.Ref<T> }).ref ??\n (element as unknown as { ref?: React.Ref<T> }).ref;\n return ref ?? undefined;\n}\n","import * as React from \"react\";\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Assigns a value to a React ref (either RefCallback or MutableRefObject).\n */\nexport function setRef<T>(ref: PossibleRef<T>, value: T | null): void {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n}\n\n/**\n * Combines multiple React refs into a single RefCallback.\n * Handles both object refs and callback refs, with proper unmount cleanup.\n */\nexport function useMergeRefs<T>(\n ...refs: PossibleRef<T>[]\n): React.RefCallback<T> {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback((current: T | null) => {\n for (const ref of refs) {\n setRef(ref, current);\n }\n }, refs);\n}\n","import * as React from \"react\";\nimport { classNames } from \"../utils/classNames\";\nimport { composeEventHandlers } from \"../utils/composeEventHandlers\";\nimport { getElementRef } from \"../utils/getElementRef\";\nimport { setRef } from \"../hooks/useMergeRefs\";\n\nexport interface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\n/**\n * Merges Slot props onto its immediate child element.\n * Preserves child identity, merges classNames, styles, ref forwarding, and event handlers.\n */\nexport const Slot = React.forwardRef<HTMLElement, SlotProps>(\n function Slot(props, forwardedRef) {\n const { children, ...slotProps } = props;\n\n if (React.isValidElement(children)) {\n return React.cloneElement(\n children,\n mergeProps(\n slotProps,\n children.props as Record<string, unknown>,\n forwardedRef,\n getElementRef(children),\n ),\n );\n }\n\n if (React.Children.count(children) > 1) {\n React.Children.only(null); // Will throw informative React.Children.only error\n }\n\n return null;\n },\n);\n\nSlot.displayName = \"Slot\";\n\n/**\n * Merges slot parent props with child props.\n */\nfunction mergeProps(\n slotProps: Record<string, unknown>,\n childProps: Record<string, unknown>,\n slotRef: React.Ref<HTMLElement>,\n childRef?: React.Ref<HTMLElement>,\n): Record<string, unknown> {\n const overrideProps: Record<string, unknown> = { ...childProps };\n\n for (const propName in slotProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isEventHandler = /^on[A-Z]/.test(propName);\n\n if (isEventHandler) {\n if (\n typeof slotPropValue === \"function\" &&\n typeof childPropValue === \"function\"\n ) {\n overrideProps[propName] = composeEventHandlers(\n childPropValue as (event: { defaultPrevented: boolean }) => void,\n slotPropValue as (event: { defaultPrevented: boolean }) => void,\n );\n } else if (typeof slotPropValue === \"function\") {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"className\") {\n overrideProps[propName] = classNames(\n slotPropValue as string | undefined,\n childPropValue as string | undefined,\n );\n } else if (propName === \"style\") {\n overrideProps[propName] = {\n ...(slotPropValue as React.CSSProperties | undefined),\n ...(childPropValue as React.CSSProperties | undefined),\n };\n } else {\n overrideProps[propName] =\n slotPropValue !== undefined ? slotPropValue : childPropValue;\n }\n }\n\n // Ref merging\n overrideProps.ref = (node: HTMLElement | null) => {\n setRef(childRef, node);\n setRef(slotRef, node);\n };\n\n return overrideProps;\n}\n","import * as React from \"react\";\nimport type { ButtonGroupContextValue } from \"./ButtonGroup.types\";\n\nexport const ButtonGroupContext = React.createContext<\n ButtonGroupContextValue | undefined\n>(undefined);\n\n/**\n * Hook to access parent ButtonGroup context if present.\n */\nexport function useButtonGroupContext(): ButtonGroupContextValue | undefined {\n return React.useContext(ButtonGroupContext);\n}\n","import * as React from \"react\";\r\nimport { keyframes } from \"@emotion/react\";\r\nimport { styled } from \"../system/styled\";\r\n\r\nconst enterKeyframe = keyframes`\r\n 0% {\r\n transform: scale(0);\r\n opacity: 0.1;\r\n }\r\n 100% {\r\n transform: scale(1);\r\n opacity: 0.3;\r\n }\r\n`;\r\n\r\nconst exitKeyframe = keyframes`\r\n 0% {\r\n opacity: 0.3;\r\n }\r\n 100% {\r\n opacity: 0;\r\n }\r\n`;\r\n\r\nconst pulsateKeyframe = keyframes`\r\n 0% {\r\n transform: scale(1);\r\n }\r\n 50% {\r\n transform: scale(0.92);\r\n }\r\n 100% {\r\n transform: scale(1);\r\n }\r\n`;\r\n\r\nexport interface RippleItem {\r\n key: number;\r\n rippleX: number;\r\n rippleY: number;\r\n rippleSize: number;\r\n pulsating?: boolean;\r\n leaving?: boolean;\r\n}\r\n\r\nexport interface TouchRippleRef {\r\n start: (\r\n event?: React.SyntheticEvent,\r\n options?: { pulsate?: boolean; center?: boolean }\r\n ) => void;\r\n stop: (event?: React.SyntheticEvent) => void;\r\n pulsate: () => void;\r\n}\r\n\r\nexport interface TouchRippleProps extends React.HTMLAttributes<HTMLSpanElement> {\r\n /**\r\n * If true, the ripple will center on the element rather than pointer coordinates\r\n */\r\n center?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst TouchRippleRoot = styled(\"span\", {\r\n name: \"ChellaaTouchRipple\",\r\n slot: \"Root\",\r\n})({\r\n overflow: \"hidden\",\r\n pointerEvents: \"none\",\r\n position: \"absolute\",\r\n zIndex: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0,\r\n borderRadius: \"inherit\",\r\n});\r\n\r\nconst StyledRippleSpan = styled(\"span\", {\r\n shouldForwardProp: (prop) =>\r\n prop !== \"pulsating\" && prop !== \"leaving\",\r\n})<{ pulsating?: boolean; leaving?: boolean }>(({ pulsating, leaving }) => ({\r\n position: \"absolute\",\r\n borderRadius: \"50%\",\r\n backgroundColor: \"currentColor\",\r\n opacity: 0.3,\r\n animation: `${enterKeyframe} 550ms cubic-bezier(0.4, 0, 0.2, 1)`,\r\n \"@media (prefers-reduced-motion: reduce)\": {\r\n animationDuration: \"1ms !important\",\r\n transitionDuration: \"1ms !important\",\r\n },\r\n ...(pulsating && {\r\n animation: `${pulsateKeyframe} 2500ms ease-in-out infinite 200ms`,\r\n \"@media (prefers-reduced-motion: reduce)\": {\r\n animation: \"none !important\",\r\n },\r\n }),\r\n ...(leaving && {\r\n opacity: 0,\r\n animation: `${exitKeyframe} 550ms cubic-bezier(0.4, 0, 0.2, 1) forwards`,\r\n \"@media (prefers-reduced-motion: reduce)\": {\r\n animationDuration: \"1ms !important\",\r\n transitionDuration: \"1ms !important\",\r\n },\r\n }),\r\n}));\r\n\r\n/**\r\n * TouchRipple component delivers tactile Material Design touch/click ripple animations.\r\n */\r\nexport const TouchRipple = React.forwardRef<TouchRippleRef, TouchRippleProps>(\r\n function TouchRipple(props, ref) {\r\n const { center: centerProp = false, className, ...rest } = props;\r\n const [ripples, setRipples] = React.useState<RippleItem[]>([]);\r\n const nextKey = React.useRef(0);\r\n const containerRef = React.useRef<HTMLSpanElement | null>(null);\r\n const timeoutIdsRef = React.useRef<ReturnType<typeof setTimeout>[]>([]);\r\n const isMountedRef = React.useRef(true);\r\n\r\n React.useEffect(() => {\r\n isMountedRef.current = true;\r\n return () => {\r\n isMountedRef.current = false;\r\n timeoutIdsRef.current.forEach((id) => clearTimeout(id));\r\n timeoutIdsRef.current = [];\r\n };\r\n }, []);\r\n\r\n const start = React.useCallback(\r\n (\r\n event?: React.SyntheticEvent,\r\n options: { pulsate?: boolean; center?: boolean } = {}\r\n ) => {\r\n const { pulsate = false, center = centerProp || pulsate } = options;\r\n\r\n const container = containerRef.current;\r\n if (!container) return;\r\n\r\n const rect = container.getBoundingClientRect();\r\n\r\n let rippleX: number;\r\n let rippleY: number;\r\n let rippleSize: number;\r\n\r\n const nativeEvent = event?.nativeEvent;\r\n let clientX: number | undefined;\r\n let clientY: number | undefined;\r\n\r\n if (\r\n nativeEvent &&\r\n \"clientX\" in nativeEvent &&\r\n \"clientY\" in nativeEvent &&\r\n typeof (nativeEvent as MouseEvent).clientX === \"number\" &&\r\n typeof (nativeEvent as MouseEvent).clientY === \"number\"\r\n ) {\r\n clientX = (nativeEvent as MouseEvent).clientX;\r\n clientY = (nativeEvent as MouseEvent).clientY;\r\n } else if (\r\n nativeEvent &&\r\n \"touches\" in nativeEvent &&\r\n (nativeEvent as TouchEvent).touches &&\r\n (nativeEvent as TouchEvent).touches.length > 0\r\n ) {\r\n const touch = (nativeEvent as TouchEvent).touches[0];\r\n if (touch) {\r\n clientX = touch.clientX;\r\n clientY = touch.clientY;\r\n }\r\n }\r\n\r\n if (center || clientX === undefined || clientY === undefined) {\r\n rippleX = Math.round(rect.width / 2);\r\n rippleY = Math.round(rect.height / 2);\r\n rippleSize = Math.max(rect.width, rect.height);\r\n } else {\r\n rippleX = Math.round(clientX - rect.left);\r\n rippleY = Math.round(clientY - rect.top);\r\n\r\n const sizeX =\r\n Math.max(Math.abs(container.clientWidth - rippleX), rippleX) * 2 + 2;\r\n const sizeY =\r\n Math.max(Math.abs(container.clientHeight - rippleY), rippleY) * 2 + 2;\r\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\r\n }\r\n\r\n const currentKey = nextKey.current;\r\n nextKey.current += 1;\r\n\r\n setRipples((prev) => [\r\n ...prev,\r\n {\r\n key: currentKey,\r\n rippleX,\r\n rippleY,\r\n rippleSize,\r\n pulsating: pulsate,\r\n leaving: false,\r\n },\r\n ]);\r\n },\r\n [centerProp]\r\n );\r\n\r\n const stop = React.useCallback(() => {\r\n setRipples((prev) => {\r\n if (prev.length === 0) return prev;\r\n return prev.map((ripple) => ({ ...ripple, leaving: true }));\r\n });\r\n\r\n const prefersReduced =\r\n typeof window !== \"undefined\" &&\r\n window.matchMedia &&\r\n window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\r\n const cleanupDelay = prefersReduced ? 10 : 550;\r\n\r\n const timerId = setTimeout(() => {\r\n if (!isMountedRef.current) return;\r\n setRipples((prev) => prev.filter((r) => !r.leaving));\r\n timeoutIdsRef.current = timeoutIdsRef.current.filter((id) => id !== timerId);\r\n }, cleanupDelay);\r\n\r\n timeoutIdsRef.current.push(timerId);\r\n }, []);\r\n\r\n const pulsate = React.useCallback(() => {\r\n start(undefined, { pulsate: true });\r\n }, [start]);\r\n\r\n React.useImperativeHandle(\r\n ref,\r\n () => ({\r\n start,\r\n stop,\r\n pulsate,\r\n }),\r\n [start, stop, pulsate]\r\n );\r\n\r\n return (\r\n <TouchRippleRoot\r\n ref={containerRef}\r\n className={className}\r\n aria-hidden=\"true\"\r\n {...rest}\r\n >\r\n {ripples.map((item) => {\r\n const style: React.CSSProperties = {\r\n width: `${item.rippleSize}px`,\r\n height: `${item.rippleSize}px`,\r\n top: `${-(item.rippleSize / 2) + item.rippleY}px`,\r\n left: `${-(item.rippleSize / 2) + item.rippleX}px`,\r\n };\r\n\r\n return (\r\n <StyledRippleSpan\r\n key={item.key}\r\n pulsating={item.pulsating}\r\n leaving={item.leaving}\r\n style={style}\r\n />\r\n );\r\n })}\r\n </TouchRippleRoot>\r\n );\r\n }\r\n);\r\n\r\nTouchRipple.displayName = \"TouchRipple\";\r\n","import * as React from \"react\";\r\nimport type { TouchRippleRef, TouchRippleProps } from \"./TouchRipple\";\r\nimport { composeEventHandlers } from \"../utils/composeEventHandlers\";\r\n\r\nexport interface UseRippleOptions {\r\n disabled?: boolean;\r\n disableRipple?: boolean;\r\n center?: boolean;\r\n}\r\n\r\nexport interface UseRippleReturn {\r\n rippleRef: React.RefObject<TouchRippleRef>;\r\n rippleProps: TouchRippleProps & { ref: React.RefObject<TouchRippleRef> };\r\n getRippleHandlers: <T extends Record<string, any>>(props?: T) => T;\r\n}\r\n\r\n/**\r\n * Hook connecting user interactions (pointer/touch/keyboard) to TouchRipple.\r\n */\r\nexport function useRipple(options: UseRippleOptions = {}): UseRippleReturn {\r\n const { disabled = false, disableRipple = false, center = false } = options;\r\n const rippleRef = React.useRef<TouchRippleRef>(null);\r\n\r\n const onMouseDown = React.useCallback(\r\n (event: React.MouseEvent) => {\r\n if (disabled || disableRipple) return;\r\n rippleRef.current?.start(event);\r\n },\r\n [disabled, disableRipple]\r\n );\r\n\r\n const onMouseUp = React.useCallback(\r\n (event: React.MouseEvent) => {\r\n if (disabled || disableRipple) return;\r\n rippleRef.current?.stop(event);\r\n },\r\n [disabled, disableRipple]\r\n );\r\n\r\n const onMouseLeave = React.useCallback(\r\n (event: React.MouseEvent) => {\r\n if (disabled || disableRipple) return;\r\n rippleRef.current?.stop(event);\r\n },\r\n [disabled, disableRipple]\r\n );\r\n\r\n const onTouchStart = React.useCallback(\r\n (event: React.TouchEvent) => {\r\n if (disabled || disableRipple) return;\r\n rippleRef.current?.start(event);\r\n },\r\n [disabled, disableRipple]\r\n );\r\n\r\n const onTouchEnd = React.useCallback(\r\n (event: React.TouchEvent) => {\r\n if (disabled || disableRipple) return;\r\n rippleRef.current?.stop(event);\r\n },\r\n [disabled, disableRipple]\r\n );\r\n\r\n const onKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent) => {\r\n if (disabled || disableRipple) return;\r\n if (event.key === \" \" || event.key === \"Enter\") {\r\n rippleRef.current?.start(undefined, { pulsate: true });\r\n }\r\n },\r\n [disabled, disableRipple]\r\n );\r\n\r\n const onKeyUp = React.useCallback(\r\n (event: React.KeyboardEvent) => {\r\n if (disabled || disableRipple) return;\r\n if (event.key === \" \" || event.key === \"Enter\") {\r\n rippleRef.current?.stop();\r\n }\r\n },\r\n [disabled, disableRipple]\r\n );\r\n\r\n const onBlur = React.useCallback(() => {\r\n rippleRef.current?.stop();\r\n }, []);\r\n\r\n const getRippleHandlers = React.useCallback(\r\n <T extends Record<string, any>>(props: T = {} as T): T => {\r\n return {\r\n ...props,\r\n onMouseDown: composeEventHandlers(props.onMouseDown, onMouseDown),\r\n onMouseUp: composeEventHandlers(props.onMouseUp, onMouseUp),\r\n onMouseLeave: composeEventHandlers(props.onMouseLeave, onMouseLeave),\r\n onTouchStart: composeEventHandlers(props.onTouchStart, onTouchStart),\r\n onTouchEnd: composeEventHandlers(props.onTouchEnd, onTouchEnd),\r\n onKeyDown: composeEventHandlers(props.onKeyDown, onKeyDown),\r\n onKeyUp: composeEventHandlers(props.onKeyUp, onKeyUp),\r\n onBlur: composeEventHandlers(props.onBlur, onBlur),\r\n };\r\n },\r\n [\r\n onMouseDown,\r\n onMouseUp,\r\n onMouseLeave,\r\n onTouchStart,\r\n onTouchEnd,\r\n onKeyDown,\r\n onKeyUp,\r\n onBlur,\r\n ]\r\n );\r\n\r\n return {\r\n rippleRef,\r\n rippleProps: {\r\n ref: rippleRef,\r\n center,\r\n },\r\n getRippleHandlers,\r\n };\r\n}\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport { useButtonGroupContext } from \"../ButtonGroup/ButtonGroupContext\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { TouchRipple } from \"../../ripple/TouchRipple\";\r\nimport { useRipple } from \"../../ripple/useRipple\";\r\nimport type { ButtonProps } from \"./Button.types\";\r\n\r\n/**\r\n * Animated SVG spinner for loading states.\r\n */\r\nfunction ButtonSpinner() {\r\n return (\r\n <svg\r\n className=\"cl-button__spinner\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-hidden=\"true\"\r\n >\r\n <circle\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"9\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2.5\"\r\n strokeOpacity=\"0.25\"\r\n />\r\n <path\r\n d=\"M12 3a9 9 0 0 1 9 9\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2.5\"\r\n strokeLinecap=\"round\"\r\n />\r\n </svg>\r\n );\r\n}\r\n\r\nconst StyledButtonRoot = styled(\"button\", {\r\n name: \"ChellaaButton\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"variant\" &&\r\n prop !== \"colorScheme\" &&\r\n prop !== \"isFullWidth\" &&\r\n prop !== \"isLoading\" &&\r\n prop !== \"isDisabled\" &&\r\n prop !== \"loadingText\" &&\r\n prop !== \"loadingPosition\" &&\r\n prop !== \"startIcon\" &&\r\n prop !== \"endIcon\" &&\r\n prop !== \"disableRipple\" &&\r\n prop !== \"asChild\",\r\n})({});\r\n\r\n/**\r\n * Chellaa React Button component.\r\n *\r\n * Fundamental action primitive supporting 5 variants, 5 sizes, 7 color schemes,\r\n * tactile touch ripple feedback, loading states, icons, keyboard interaction,\r\n * theme overrides, and polymorphic slot delegation via `asChild`.\r\n */\r\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n function Button(props, forwardedRef) {\r\n const {\r\n asChild = false,\r\n variant: variantProp,\r\n size: sizeProp,\r\n colorScheme: colorSchemeProp,\r\n isLoading = false,\r\n loadingText,\r\n loadingPosition = \"start\",\r\n isDisabled: isDisabledProp,\r\n isFullWidth = false,\r\n startIcon,\r\n endIcon,\r\n className,\r\n children,\r\n disabled: disabledProp,\r\n type = \"button\",\r\n onClick,\r\n onKeyDown,\r\n disableRipple = false,\r\n sx,\r\n ...restProps\r\n } = props;\r\n\r\n const buttonGroup = useButtonGroupContext();\r\n\r\n const variant = variantProp ?? buttonGroup?.variant ?? \"solid\";\r\n const size = sizeProp ?? buttonGroup?.size ?? \"md\";\r\n const colorScheme =\r\n colorSchemeProp ?? buttonGroup?.colorScheme ?? \"primary\";\r\n const isDisabled =\r\n isDisabledProp ?? disabledProp ?? buttonGroup?.isDisabled ?? false;\r\n const isEffectivelyDisabled = isDisabled || isLoading;\r\n\r\n const { rippleProps, getRippleHandlers } = useRipple({\r\n disabled: isEffectivelyDisabled,\r\n disableRipple,\r\n });\r\n\r\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n if (isEffectivelyDisabled) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return;\r\n }\r\n onClick?.(event);\r\n };\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\r\n if (isEffectivelyDisabled) {\r\n if (event.key === \" \" || event.key === \"Enter\") {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return;\r\n }\r\n }\r\n onKeyDown?.(event);\r\n };\r\n\r\n const buttonClassName = classNames(\r\n \"cl-button\",\r\n `cl-button--${variant}`,\r\n `cl-button--${size}`,\r\n `cl-button--${colorScheme}`,\r\n isLoading && \"cl-button--loading\",\r\n isDisabled && \"cl-button--disabled\",\r\n isFullWidth && \"cl-button--full-width\",\r\n className,\r\n );\r\n\r\n const spinner = <ButtonSpinner />;\r\n\r\n // When asChild is enabled, delegate root rendering to child via Slot\r\n if (asChild) {\r\n return (\r\n <StyledButtonRoot\r\n as={Slot}\r\n ref={forwardedRef as React.Ref<HTMLElement>}\r\n className={buttonClassName}\r\n aria-disabled={isEffectivelyDisabled ? true : undefined}\r\n aria-busy={isLoading ? true : undefined}\r\n sx={sx}\r\n onClick={\r\n handleClick as unknown as React.MouseEventHandler<HTMLElement>\r\n }\r\n onKeyDown={\r\n handleKeyDown as unknown as React.KeyboardEventHandler<HTMLElement>\r\n }\r\n {...restProps}\r\n >\r\n {children}\r\n </StyledButtonRoot>\r\n );\r\n }\r\n\r\n // Center loading state: keep button dimensions identical by visually hiding label\r\n const isCenterLoading = isLoading && loadingPosition === \"center\";\r\n\r\n const buttonHandlers = getRippleHandlers({\r\n onClick: handleClick,\r\n onKeyDown: handleKeyDown,\r\n ...restProps,\r\n });\r\n\r\n return (\r\n <StyledButtonRoot\r\n ref={forwardedRef}\r\n type={type}\r\n disabled={isEffectivelyDisabled ? true : undefined}\r\n aria-disabled={isEffectivelyDisabled ? true : undefined}\r\n aria-busy={isLoading ? true : undefined}\r\n className={buttonClassName}\r\n sx={sx}\r\n {...buttonHandlers}\r\n >\r\n {isCenterLoading ? (\r\n <>\r\n <span className=\"cl-button__spinner-wrapper--center\">\r\n {spinner}\r\n </span>\r\n <span className=\"cl-button__content--hidden\">\r\n {startIcon && (\r\n <span\r\n className=\"cl-button__icon cl-button__icon--start\"\r\n aria-hidden=\"true\"\r\n >\r\n {startIcon}\r\n </span>\r\n )}\r\n {children !== undefined && (\r\n <span className=\"cl-button__label\">{children}</span>\r\n )}\r\n {endIcon && (\r\n <span\r\n className=\"cl-button__icon cl-button__icon--end\"\r\n aria-hidden=\"true\"\r\n >\r\n {endIcon}\r\n </span>\r\n )}\r\n </span>\r\n </>\r\n ) : (\r\n <>\r\n {isLoading && loadingPosition === \"start\" && spinner}\r\n {!isLoading && startIcon && (\r\n <span\r\n className=\"cl-button__icon cl-button__icon--start\"\r\n aria-hidden=\"true\"\r\n >\r\n {startIcon}\r\n </span>\r\n )}\r\n {isLoading && loadingText ? (\r\n <span className=\"cl-button__label\">{loadingText}</span>\r\n ) : children !== undefined ? (\r\n <span className=\"cl-button__label\">{children}</span>\r\n ) : null}\r\n {isLoading && loadingPosition === \"end\" && spinner}\r\n {!isLoading && endIcon && (\r\n <span\r\n className=\"cl-button__icon cl-button__icon--end\"\r\n aria-hidden=\"true\"\r\n >\r\n {endIcon}\r\n </span>\r\n )}\r\n </>\r\n )}\r\n {!disableRipple && !isEffectivelyDisabled && (\r\n <TouchRipple {...rippleProps} />\r\n )}\r\n </StyledButtonRoot>\r\n );\r\n },\r\n);\r\n\r\nButton.displayName = \"Button\";\r\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport type {\n ButtonGroupContextValue,\n ButtonGroupProps,\n} from \"./ButtonGroup.types\";\nimport { ButtonGroupContext } from \"./ButtonGroupContext\";\n\n/**\n * Chellaa React ButtonGroup component.\n *\n * Container primitive for grouping related buttons with unified sizing,\n * visual variants, color schemes, disabled states, and attached border management.\n */\nexport const ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n function ButtonGroup(props, forwardedRef) {\n const {\n asChild = false,\n size,\n variant,\n colorScheme,\n isDisabled,\n isAttached = false,\n orientation = \"horizontal\",\n spacing,\n className,\n style,\n children,\n role: roleProp,\n ...restProps\n } = props;\n\n const role =\n roleProp !== undefined ? roleProp : asChild ? undefined : \"group\";\n\n const contextValue = React.useMemo<ButtonGroupContextValue>(\n () => ({\n size,\n variant,\n colorScheme,\n isDisabled,\n }),\n [size, variant, colorScheme, isDisabled],\n );\n\n const groupClassName = classNames(\n \"cl-button-group\",\n `cl-button-group--${orientation}`,\n isAttached && \"cl-button-group--attached\",\n className,\n );\n\n const groupStyle: React.CSSProperties = {\n ...style,\n ...(spacing !== undefined && !isAttached\n ? { gap: typeof spacing === \"number\" ? `${spacing}px` : spacing }\n : {}),\n };\n\n if (asChild) {\n return (\n <ButtonGroupContext.Provider value={contextValue}>\n <Slot\n ref={forwardedRef as React.Ref<HTMLElement>}\n role={role}\n className={groupClassName}\n style={groupStyle}\n {...restProps}\n >\n {children}\n </Slot>\n </ButtonGroupContext.Provider>\n );\n }\n\n return (\n <ButtonGroupContext.Provider value={contextValue}>\n <div\n ref={forwardedRef}\n role={role}\n className={groupClassName}\n style={groupStyle}\n {...restProps}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n );\n },\n);\n\nButtonGroup.displayName = \"ButtonGroup\";\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport type { SxProps } from \"../../system/types\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\n\r\nexport interface BoxProps extends React.HTMLAttributes<HTMLElement> {\r\n /**\r\n * If true, delegating rendering to immediate child element using Slot\r\n */\r\n asChild?: boolean;\r\n /**\r\n * The underlying HTML element or component to render (alias of `as`)\r\n */\r\n component?: React.ElementType;\r\n /**\r\n * The underlying HTML element or component to render\r\n */\r\n as?: React.ElementType;\r\n /**\r\n * The system-aware sx prop\r\n */\r\n sx?: SxProps;\r\n children?: React.ReactNode;\r\n}\r\n\r\nconst StyledBoxRoot = styled(\"div\", {\r\n name: \"ChellaaBox\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) => prop !== \"asChild\" && prop !== \"component\",\r\n})({});\r\n\r\n/**\r\n * Universal polymorphic layout container with theme-aware `sx` styling and `asChild` composition.\r\n *\r\n * @example\r\n * <Box sx={{ p: 2, bgcolor: 'background.paper', borderRadius: 2 }}>\r\n * Content\r\n * </Box>\r\n */\r\nexport const Box = React.forwardRef<HTMLElement, BoxProps>(\r\n function Box(props, ref) {\r\n const { asChild = false, component, as, className, style, sx, children, ...rest } = props;\r\n const targetTag = component || as;\r\n const boxClassName = classNames(\"cl-box\", className);\r\n\r\n if (asChild) {\r\n return (\r\n <StyledBoxRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={boxClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledBoxRoot>\r\n );\r\n }\r\n\r\n if (targetTag) {\r\n return (\r\n <StyledBoxRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={boxClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledBoxRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledBoxRoot\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={boxClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledBoxRoot>\r\n );\r\n }\r\n);\r\n\r\nBox.displayName = \"Box\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport type { CSSProperties } from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { parseSx } from \"../../system/sx\";\r\nimport type { ResponsiveValue, SxProps } from \"../../system/types\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\n\r\nexport type StackDirection = \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\r\n\r\nexport interface StackOwnerState {\r\n direction?: ResponsiveValue<StackDirection> | undefined;\r\n spacing?: ResponsiveValue<number | string> | undefined;\r\n alignItems?: ResponsiveValue<CSSProperties[\"alignItems\"]> | undefined;\r\n justifyContent?: ResponsiveValue<CSSProperties[\"justifyContent\"]> | undefined;\r\n flexWrap?: ResponsiveValue<CSSProperties[\"flexWrap\"]> | undefined;\r\n useFlexGap?: boolean | undefined;\r\n}\r\n\r\nexport interface StackProps\r\n extends React.HTMLAttributes<HTMLElement>,\r\n StackOwnerState {\r\n /**\r\n * If true, delegate rendering to immediate child element using Slot\r\n */\r\n asChild?: boolean;\r\n /**\r\n * Underlying HTML element or component\r\n */\r\n component?: React.ElementType;\r\n /**\r\n * Underlying HTML element or component\r\n */\r\n as?: React.ElementType;\r\n /**\r\n * Element placed between each child\r\n */\r\n divider?: React.ReactNode;\r\n /**\r\n * System-aware sx styling prop\r\n */\r\n sx?: SxProps;\r\n children?: React.ReactNode;\r\n}\r\n\r\nconst StyledStackRoot = styled(\"div\", {\r\n name: \"ChellaaStack\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"direction\" &&\r\n prop !== \"spacing\" &&\r\n prop !== \"alignItems\" &&\r\n prop !== \"justifyContent\" &&\r\n prop !== \"flexWrap\" &&\r\n prop !== \"useFlexGap\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})<{ ownerState: StackOwnerState }>(({ theme, ownerState }) => {\r\n const styles: Record<string, any> = {};\r\n\r\n // 1. Responsive direction (if array or object or non-default)\r\n if (typeof ownerState.direction === \"object\") {\r\n Object.assign(\r\n styles,\r\n parseSx(theme, { flexDirection: ownerState.direction })\r\n );\r\n }\r\n\r\n // 2. Responsive spacing (gap)\r\n if (ownerState.spacing !== undefined && ownerState.spacing !== 0) {\r\n Object.assign(\r\n styles,\r\n parseSx(theme, { gap: ownerState.spacing })\r\n );\r\n }\r\n\r\n // 3. Alignment and wrapping\r\n if (ownerState.alignItems !== undefined) {\r\n Object.assign(\r\n styles,\r\n parseSx(theme, { alignItems: ownerState.alignItems })\r\n );\r\n }\r\n if (ownerState.justifyContent !== undefined) {\r\n Object.assign(\r\n styles,\r\n parseSx(theme, { justifyContent: ownerState.justifyContent })\r\n );\r\n }\r\n if (ownerState.flexWrap !== undefined) {\r\n Object.assign(\r\n styles,\r\n parseSx(theme, { flexWrap: ownerState.flexWrap })\r\n );\r\n }\r\n\r\n return styles;\r\n});\r\n\r\n/**\r\n * 1D Flexbox layout container managing direction, spacing, alignment, and dividers.\r\n *\r\n * @example\r\n * <Stack direction=\"row\" spacing={2} alignItems=\"center\">\r\n * <Item>1</Item>\r\n * <Item>2</Item>\r\n * </Stack>\r\n */\r\nexport const Stack = React.forwardRef<HTMLElement, StackProps>(\r\n function Stack(props, ref) {\r\n const {\r\n asChild = false,\r\n component,\r\n as,\r\n direction = \"column\",\r\n spacing = 0,\r\n alignItems,\r\n justifyContent,\r\n flexWrap,\r\n useFlexGap = true,\r\n divider,\r\n className,\r\n style,\r\n sx,\r\n children,\r\n ...rest\r\n } = props;\r\n\r\n const ownerState: StackOwnerState = {\r\n direction,\r\n spacing,\r\n alignItems,\r\n justifyContent,\r\n flexWrap,\r\n useFlexGap,\r\n };\r\n\r\n const isSimpleDirection = typeof direction === \"string\";\r\n\r\n const stackClassName = classNames(\r\n \"cl-stack\",\r\n isSimpleDirection && `cl-stack--${direction}`,\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n // Handle divider insertion between valid React children\r\n let renderedChildren = children;\r\n if (divider && !asChild) {\r\n const validChildren = React.Children.toArray(children).filter(\r\n React.isValidElement\r\n );\r\n renderedChildren = validChildren.reduce<React.ReactNode[]>(\r\n (acc, child, index) => {\r\n acc.push(child);\r\n if (index < validChildren.length - 1) {\r\n acc.push(\r\n React.isValidElement(divider)\r\n ? React.cloneElement(divider as React.ReactElement, {\r\n key: `stack-divider-${index}`,\r\n })\r\n : (\r\n <span key={`stack-divider-${index}`}>{divider}</span>\r\n )\r\n );\r\n }\r\n return acc;\r\n },\r\n []\r\n );\r\n }\r\n\r\n if (asChild) {\r\n return (\r\n <StyledStackRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={stackClassName}\r\n style={style}\r\n ownerState={ownerState}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {renderedChildren}\r\n </StyledStackRoot>\r\n );\r\n }\r\n\r\n if (targetTag) {\r\n return (\r\n <StyledStackRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={stackClassName}\r\n style={style}\r\n ownerState={ownerState}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {renderedChildren}\r\n </StyledStackRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledStackRoot\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={stackClassName}\r\n style={style}\r\n ownerState={ownerState}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {renderedChildren}\r\n </StyledStackRoot>\r\n );\r\n }\r\n);\r\n\r\nStack.displayName = \"Stack\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport type { CSSProperties } from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { parseSx } from \"../../system/sx\";\r\nimport type { ResponsiveValue, SxProps } from \"../../system/types\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport type { StackDirection } from \"../Stack\";\r\n\r\nexport interface FlexOwnerState {\r\n direction?: ResponsiveValue<StackDirection> | undefined;\r\n spacing?: ResponsiveValue<number | string> | undefined;\r\n gap?: ResponsiveValue<number | string> | undefined;\r\n alignItems?: ResponsiveValue<CSSProperties[\"alignItems\"]> | undefined;\r\n align?: ResponsiveValue<CSSProperties[\"alignItems\"]> | undefined;\r\n justifyContent?: ResponsiveValue<CSSProperties[\"justifyContent\"]> | undefined;\r\n justify?: ResponsiveValue<CSSProperties[\"justifyContent\"]> | undefined;\r\n flexWrap?: ResponsiveValue<CSSProperties[\"flexWrap\"]> | undefined;\r\n wrap?: ResponsiveValue<CSSProperties[\"flexWrap\"]> | undefined;\r\n inline?: boolean | undefined;\r\n center?: boolean | undefined;\r\n}\r\n\r\nexport interface FlexProps\r\n extends React.HTMLAttributes<HTMLElement>,\r\n FlexOwnerState {\r\n /**\r\n * If true, delegate rendering to immediate child element using Slot\r\n */\r\n asChild?: boolean | undefined;\r\n /**\r\n * Underlying HTML element or component\r\n */\r\n component?: React.ElementType | undefined;\r\n /**\r\n * Underlying HTML element or component\r\n */\r\n as?: React.ElementType | undefined;\r\n /**\r\n * Element placed between each child\r\n */\r\n divider?: React.ReactNode | undefined;\r\n /**\r\n * System-aware sx styling prop\r\n */\r\n sx?: SxProps;\r\n children?: React.ReactNode;\r\n}\r\n\r\nconst StyledFlexRoot = styled(\"div\", {\r\n name: \"ChellaaFlex\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"direction\" &&\r\n prop !== \"spacing\" &&\r\n prop !== \"gap\" &&\r\n prop !== \"alignItems\" &&\r\n prop !== \"align\" &&\r\n prop !== \"justifyContent\" &&\r\n prop !== \"justify\" &&\r\n prop !== \"flexWrap\" &&\r\n prop !== \"wrap\" &&\r\n prop !== \"inline\" &&\r\n prop !== \"center\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})<{ ownerState: FlexOwnerState }>(({ theme, ownerState }) => {\r\n const isCenter = ownerState.center ?? false;\r\n const styles: Record<string, any> = {};\r\n\r\n // 1. Responsive direction (if array or object)\r\n if (typeof ownerState.direction === \"object\") {\r\n Object.assign(\r\n styles,\r\n parseSx(theme, { flexDirection: ownerState.direction })\r\n );\r\n }\r\n\r\n // 2. Responsive gap / spacing\r\n const gapValue = ownerState.gap ?? ownerState.spacing;\r\n if (gapValue !== undefined) {\r\n Object.assign(styles, parseSx(theme, { gap: gapValue }));\r\n }\r\n\r\n // 3. Align & Justify (if not center shorthand)\r\n if (!isCenter) {\r\n const alignVal = ownerState.align ?? ownerState.alignItems;\r\n if (alignVal !== undefined) {\r\n Object.assign(styles, parseSx(theme, { alignItems: alignVal }));\r\n }\r\n\r\n const justifyVal = ownerState.justify ?? ownerState.justifyContent;\r\n if (justifyVal !== undefined) {\r\n Object.assign(styles, parseSx(theme, { justifyContent: justifyVal }));\r\n }\r\n }\r\n\r\n // 4. Wrapping\r\n const wrapVal = ownerState.wrap ?? ownerState.flexWrap;\r\n if (wrapVal !== undefined) {\r\n Object.assign(styles, parseSx(theme, { flexWrap: wrapVal }));\r\n }\r\n\r\n return styles;\r\n});\r\n\r\n/**\r\n * 1D Flexbox layout container defaulting to horizontal row flow with convenient\r\n * shorthands: `center`, `inline`, `align`, `justify`, `wrap`, and `gap`.\r\n *\r\n * @example\r\n * <Flex center gap={2}>\r\n * <Avatar />\r\n * <Text>User Name</Text>\r\n * </Flex>\r\n */\r\nexport const Flex = React.forwardRef<HTMLElement, FlexProps>(\r\n function Flex(props, ref) {\r\n const {\r\n asChild = false,\r\n component,\r\n as,\r\n direction = \"row\",\r\n spacing,\r\n gap,\r\n alignItems,\r\n align,\r\n justifyContent,\r\n justify,\r\n flexWrap,\r\n wrap,\r\n inline = false,\r\n center = false,\r\n divider,\r\n className,\r\n style,\r\n sx,\r\n children,\r\n ...rest\r\n } = props;\r\n\r\n const ownerState: FlexOwnerState = {\r\n direction,\r\n spacing,\r\n gap,\r\n alignItems,\r\n align,\r\n justifyContent,\r\n justify,\r\n flexWrap,\r\n wrap,\r\n inline,\r\n center,\r\n };\r\n\r\n const isSimpleDirection = typeof direction === \"string\";\r\n\r\n const flexClassName = classNames(\r\n \"cl-flex\",\r\n inline && \"cl-flex--inline\",\r\n center && \"cl-flex--center\",\r\n isSimpleDirection && `cl-flex--${direction}`,\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n let renderedChildren = children;\r\n if (divider && !asChild) {\r\n const validChildren = React.Children.toArray(children).filter(\r\n React.isValidElement\r\n );\r\n renderedChildren = validChildren.reduce<React.ReactNode[]>(\r\n (acc, child, index) => {\r\n acc.push(child);\r\n if (index < validChildren.length - 1) {\r\n acc.push(\r\n React.isValidElement(divider)\r\n ? React.cloneElement(divider as React.ReactElement, {\r\n key: `flex-divider-${index}`,\r\n })\r\n : <span key={`flex-divider-${index}`}>{divider}</span>\r\n );\r\n }\r\n return acc;\r\n },\r\n []\r\n );\r\n }\r\n\r\n if (asChild) {\r\n return (\r\n <StyledFlexRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={flexClassName}\r\n style={style}\r\n ownerState={ownerState}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {renderedChildren}\r\n </StyledFlexRoot>\r\n );\r\n }\r\n\r\n if (targetTag) {\r\n return (\r\n <StyledFlexRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={flexClassName}\r\n style={style}\r\n ownerState={ownerState}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {renderedChildren}\r\n </StyledFlexRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledFlexRoot\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={flexClassName}\r\n style={style}\r\n ownerState={ownerState}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {renderedChildren}\r\n </StyledFlexRoot>\r\n );\r\n }\r\n);\r\n\r\nFlex.displayName = \"Flex\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport type { SxProps } from \"../../system/types\";\r\nimport type { BreakpointKey } from \"../../theme/types\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\n\r\nexport interface ContainerOwnerState {\r\n maxWidth?: BreakpointKey | false | undefined;\r\n fixed?: boolean | undefined;\r\n disableGutters?: boolean | undefined;\r\n}\r\n\r\nexport interface ContainerProps\r\n extends React.HTMLAttributes<HTMLElement>,\r\n ContainerOwnerState {\r\n /**\r\n * If true, delegate rendering to immediate child element using Slot\r\n */\r\n asChild?: boolean;\r\n /**\r\n * The underlying HTML element or component\r\n */\r\n component?: React.ElementType;\r\n /**\r\n * The underlying HTML element or component\r\n */\r\n as?: React.ElementType;\r\n /**\r\n * The system-aware sx prop\r\n */\r\n sx?: SxProps;\r\n children?: React.ReactNode;\r\n}\r\n\r\nconst StyledContainerRoot = styled(\"div\", {\r\n name: \"ChellaaContainer\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"maxWidth\" &&\r\n prop !== \"fixed\" &&\r\n prop !== \"disableGutters\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})({});\r\n\r\n/**\r\n * Centered responsive max-width container with fluid gutters.\r\n *\r\n * @example\r\n * <Container maxWidth=\"md\">\r\n * <Typography variant=\"h1\">Header</Typography>\r\n * </Container>\r\n */\r\nexport const Container = React.forwardRef<HTMLElement, ContainerProps>(\r\n function Container(props, ref) {\r\n const {\r\n asChild = false,\r\n component,\r\n as,\r\n maxWidth = \"lg\",\r\n fixed = false,\r\n disableGutters = false,\r\n className,\r\n style,\r\n sx,\r\n children,\r\n ...rest\r\n } = props;\r\n\r\n const containerClassName = classNames(\r\n \"cl-container\",\r\n disableGutters && \"cl-container--disable-gutters\",\r\n fixed && \"cl-container--fixed\",\r\n maxWidth !== false && `cl-container--${maxWidth}`,\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n if (asChild) {\r\n return (\r\n <StyledContainerRoot\r\n as={Slot}\r\n ref={ref as any}\r\n className={containerClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledContainerRoot>\r\n );\r\n }\r\n\r\n if (targetTag) {\r\n return (\r\n <StyledContainerRoot\r\n as={targetTag}\r\n ref={ref as any}\r\n className={containerClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledContainerRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledContainerRoot\r\n ref={ref as any}\r\n className={containerClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledContainerRoot>\r\n );\r\n }\r\n);\r\n\r\nContainer.displayName = \"Container\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport type { CSSProperties } from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { parseSx } from \"../../system/sx\";\r\nimport type { ResponsiveValue, SxProps } from \"../../system/types\";\r\nimport type { BreakpointKey } from \"../../theme/types\";\r\nimport { breakpointKeys } from \"../../theme/breakpoints\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\n\r\nexport type GridSize = boolean | \"auto\" | number;\r\nexport type GridWrap = \"nowrap\" | \"wrap\" | \"wrap-reverse\";\r\nexport type GridDirection = \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\r\n\r\nexport interface GridOwnerState {\r\n container?: boolean | undefined;\r\n item?: boolean | undefined;\r\n columns?: number | undefined;\r\n spacing?: ResponsiveValue<number | string> | undefined;\r\n rowSpacing?: ResponsiveValue<number | string> | undefined;\r\n columnSpacing?: ResponsiveValue<number | string> | undefined;\r\n direction?: ResponsiveValue<GridDirection> | undefined;\r\n wrap?: GridWrap | undefined;\r\n alignItems?: ResponsiveValue<CSSProperties[\"alignItems\"]> | undefined;\r\n justifyContent?: ResponsiveValue<CSSProperties[\"justifyContent\"]> | undefined;\r\n xs?: GridSize | undefined;\r\n sm?: GridSize | undefined;\r\n md?: GridSize | undefined;\r\n lg?: GridSize | undefined;\r\n xl?: GridSize | undefined;\r\n}\r\n\r\nexport interface GridProps\r\n extends React.HTMLAttributes<HTMLElement>,\r\n GridOwnerState {\r\n /**\r\n * If true, delegate rendering to immediate child element using Slot\r\n */\r\n asChild?: boolean;\r\n /**\r\n * The underlying HTML element or component\r\n */\r\n component?: React.ElementType;\r\n /**\r\n * The underlying HTML element or component\r\n */\r\n as?: React.ElementType;\r\n /**\r\n * The system-aware sx prop\r\n */\r\n sx?: SxProps;\r\n children?: React.ReactNode;\r\n}\r\n\r\nfunction generateGridSizeStyles(\r\n size: GridSize,\r\n columns: number = 12\r\n): Record<string, any> {\r\n if (size === true) {\r\n return {\r\n flexBasis: 0,\r\n flexGrow: 1,\r\n maxWidth: \"100%\",\r\n };\r\n }\r\n\r\n if (size === \"auto\") {\r\n return {\r\n flexBasis: \"auto\",\r\n flexGrow: 0,\r\n maxWidth: \"none\",\r\n };\r\n }\r\n\r\n if (typeof size === \"number\") {\r\n const widthPercentage = `${Math.round((size / columns) * 10e7) / 10e5}%`;\r\n return {\r\n flexBasis: widthPercentage,\r\n flexGrow: 0,\r\n maxWidth: widthPercentage,\r\n };\r\n }\r\n\r\n return {};\r\n}\r\n\r\nconst StyledGridRoot = styled(\"div\", {\r\n name: \"ChellaaGrid\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"container\" &&\r\n prop !== \"item\" &&\r\n prop !== \"columns\" &&\r\n prop !== \"spacing\" &&\r\n prop !== \"rowSpacing\" &&\r\n prop !== \"columnSpacing\" &&\r\n prop !== \"direction\" &&\r\n prop !== \"wrap\" &&\r\n prop !== \"alignItems\" &&\r\n prop !== \"justifyContent\" &&\r\n prop !== \"xs\" &&\r\n prop !== \"sm\" &&\r\n prop !== \"md\" &&\r\n prop !== \"lg\" &&\r\n prop !== \"xl\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})<{ ownerState: GridOwnerState }>(({ theme, ownerState }) => {\r\n const styles: Record<string, any> = {};\r\n const columns = ownerState.columns ?? 12;\r\n\r\n // 1. Container responsive styles\r\n if (ownerState.container) {\r\n if (typeof ownerState.direction === \"object\") {\r\n Object.assign(\r\n styles,\r\n parseSx(theme, { flexDirection: ownerState.direction })\r\n );\r\n }\r\n\r\n if (ownerState.spacing !== undefined) {\r\n Object.assign(styles, parseSx(theme, { gap: ownerState.spacing }));\r\n }\r\n if (ownerState.rowSpacing !== undefined) {\r\n Object.assign(styles, parseSx(theme, { rowGap: ownerState.rowSpacing }));\r\n }\r\n if (ownerState.columnSpacing !== undefined) {\r\n Object.assign(\r\n styles,\r\n parseSx(theme, { columnGap: ownerState.columnSpacing })\r\n );\r\n }\r\n if (ownerState.alignItems !== undefined) {\r\n Object.assign(\r\n styles,\r\n parseSx(theme, { alignItems: ownerState.alignItems })\r\n );\r\n }\r\n if (ownerState.justifyContent !== undefined) {\r\n Object.assign(\r\n styles,\r\n parseSx(theme, { justifyContent: ownerState.justifyContent })\r\n );\r\n }\r\n }\r\n\r\n // 2. Item sizing across breakpoints\r\n const bpSizes: Record<BreakpointKey, GridSize | undefined> = {\r\n xs: ownerState.xs,\r\n sm: ownerState.sm,\r\n md: ownerState.md,\r\n lg: ownerState.lg,\r\n xl: ownerState.xl,\r\n };\r\n\r\n for (const bp of breakpointKeys) {\r\n const size = bpSizes[bp];\r\n if (size !== undefined) {\r\n const sizeStyles = generateGridSizeStyles(size, columns);\r\n if (bp === \"xs\") {\r\n Object.assign(styles, sizeStyles);\r\n } else {\r\n const media = theme.breakpoints.up(bp);\r\n styles[media] = {\r\n ...(styles[media] || {}),\r\n ...sizeStyles,\r\n };\r\n }\r\n }\r\n }\r\n\r\n return styles;\r\n});\r\n\r\n/**\r\n * Material 12-column responsive layout grid.\r\n *\r\n * @example\r\n * <Grid container spacing={2}>\r\n * <Grid item xs={12} md={6}>Item 1</Grid>\r\n * <Grid item xs={12} md={6}>Item 2</Grid>\r\n * </Grid>\r\n */\r\nexport const Grid = React.forwardRef<HTMLElement, GridProps>(\r\n function Grid(props, ref) {\r\n const {\r\n asChild = false,\r\n component,\r\n as,\r\n container = false,\r\n item = false,\r\n columns = 12,\r\n spacing,\r\n rowSpacing,\r\n columnSpacing,\r\n direction = \"row\",\r\n wrap = \"wrap\",\r\n alignItems,\r\n justifyContent,\r\n xs,\r\n sm,\r\n md,\r\n lg,\r\n xl,\r\n className,\r\n style,\r\n sx,\r\n children,\r\n ...rest\r\n } = props;\r\n\r\n const ownerState: GridOwnerState = {\r\n container,\r\n item,\r\n columns,\r\n spacing,\r\n rowSpacing,\r\n columnSpacing,\r\n direction,\r\n wrap,\r\n alignItems,\r\n justifyContent,\r\n xs,\r\n sm,\r\n md,\r\n lg,\r\n xl,\r\n };\r\n\r\n const isSimpleDirection = typeof direction === \"string\";\r\n\r\n const gridClassName = classNames(\r\n \"cl-grid\",\r\n container && \"cl-grid--container\",\r\n item && \"cl-grid--item\",\r\n wrap && `cl-grid--${wrap}`,\r\n isSimpleDirection && `cl-grid--direction-${direction}`,\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n if (asChild) {\r\n return (\r\n <StyledGridRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={gridClassName}\r\n style={style}\r\n ownerState={ownerState}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledGridRoot>\r\n );\r\n }\r\n\r\n if (targetTag) {\r\n return (\r\n <StyledGridRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={gridClassName}\r\n style={style}\r\n ownerState={ownerState}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledGridRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledGridRoot\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={gridClassName}\r\n style={style}\r\n ownerState={ownerState}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledGridRoot>\r\n );\r\n }\r\n);\r\n\r\nGrid.displayName = \"Grid\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport type { SxProps } from \"../../system/types\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\n\r\nexport type DividerOrientation = \"horizontal\" | \"vertical\";\r\nexport type DividerVariant = \"fullWidth\" | \"inset\" | \"middle\";\r\nexport type DividerTextAlign = \"center\" | \"left\" | \"right\";\r\nexport type DividerLineStyle = \"solid\" | \"dashed\" | \"dotted\";\r\n\r\nexport interface DividerOwnerState {\r\n orientation?: DividerOrientation | undefined;\r\n variant?: DividerVariant | undefined;\r\n lineStyle?: DividerLineStyle | undefined;\r\n flexItem?: boolean | undefined;\r\n light?: boolean | undefined;\r\n textAlign?: DividerTextAlign | undefined;\r\n hasChildren?: boolean | undefined;\r\n}\r\n\r\nexport interface DividerProps\r\n extends React.HTMLAttributes<HTMLElement>,\r\n DividerOwnerState {\r\n /**\r\n * If true, delegate rendering to immediate child element using Slot\r\n */\r\n asChild?: boolean;\r\n /**\r\n * The underlying HTML element or component\r\n */\r\n component?: React.ElementType;\r\n /**\r\n * The underlying HTML element or component\r\n */\r\n as?: React.ElementType;\r\n /**\r\n * The system-aware sx prop\r\n */\r\n sx?: SxProps;\r\n children?: React.ReactNode;\r\n}\r\n\r\nconst StyledDividerRoot = styled(\"hr\", {\r\n name: \"ChellaaDivider\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"orientation\" &&\r\n prop !== \"variant\" &&\r\n prop !== \"lineStyle\" &&\r\n prop !== \"flexItem\" &&\r\n prop !== \"light\" &&\r\n prop !== \"textAlign\" &&\r\n prop !== \"hasChildren\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})({});\r\n\r\n/**\r\n * Divider visual separator for grouping, lists, toolbars, and labeled sections.\r\n *\r\n * @example\r\n * <Divider />\r\n * <Divider>OR</Divider>\r\n * <Divider orientation=\"vertical\" flexItem />\r\n */\r\nexport const Divider = React.forwardRef<HTMLElement, DividerProps>(\r\n function Divider(props, ref) {\r\n const {\r\n asChild = false,\r\n component,\r\n as,\r\n orientation = \"horizontal\",\r\n variant = \"fullWidth\",\r\n lineStyle = \"solid\",\r\n flexItem = false,\r\n light = false,\r\n textAlign = \"center\",\r\n className,\r\n style,\r\n sx,\r\n children,\r\n role: roleProp,\r\n ...rest\r\n } = props;\r\n\r\n const hasChildren = Boolean(children);\r\n\r\n const dividerClassName = classNames(\r\n \"cl-divider\",\r\n `cl-divider--${orientation}`,\r\n variant !== \"fullWidth\" && `cl-divider--${variant}`,\r\n lineStyle !== \"solid\" && `cl-divider--${lineStyle}`,\r\n flexItem && \"cl-divider--flex-item\",\r\n light && \"cl-divider--light\",\r\n hasChildren && \"cl-divider--with-children\",\r\n hasChildren && `cl-divider--align-${textAlign}`,\r\n className\r\n );\r\n\r\n // Determine default semantic tag\r\n let defaultTag: React.ElementType = \"hr\";\r\n if (orientation === \"vertical\" || hasChildren) {\r\n defaultTag = \"div\";\r\n }\r\n\r\n const targetTag = component || as || defaultTag;\r\n\r\n // Accessibility attributes\r\n const isNativeHr = targetTag === \"hr\";\r\n const role = roleProp || (isNativeHr ? undefined : \"separator\");\r\n const ariaOrientation =\r\n isNativeHr\r\n ? undefined\r\n : orientation === \"vertical\"\r\n ? \"vertical\"\r\n : undefined;\r\n\r\n if (asChild) {\r\n return (\r\n <StyledDividerRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLHRElement>}\r\n className={dividerClassName}\r\n style={style}\r\n sx={sx}\r\n role={role}\r\n aria-orientation={ariaOrientation}\r\n {...rest}\r\n >\r\n {hasChildren ? (\r\n <span className=\"cl-divider__wrapper ChellaaDivider-wrapper\">{children}</span>\r\n ) : (\r\n children\r\n )}\r\n </StyledDividerRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledDividerRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLHRElement>}\r\n className={dividerClassName}\r\n style={style}\r\n sx={sx}\r\n role={role}\r\n aria-orientation={ariaOrientation}\r\n {...rest}\r\n >\r\n {hasChildren ? (\r\n <span className=\"cl-divider__wrapper ChellaaDivider-wrapper\">{children}</span>\r\n ) : null}\r\n </StyledDividerRoot>\r\n );\r\n }\r\n);\r\n\r\nDivider.displayName = \"Divider\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport type { SxProps } from \"../../system/types\";\r\nimport type { TypographyVariant, ChellaaTheme } from \"../../theme/types\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\n\r\nexport type TypographyAlign = \"inherit\" | \"left\" | \"center\" | \"right\" | \"justify\";\r\n\r\nexport interface TypographyOwnerState {\r\n variant?: TypographyVariant | undefined;\r\n align?: TypographyAlign | undefined;\r\n color?: string | undefined;\r\n gutterBottom?: boolean | undefined;\r\n noWrap?: boolean | undefined;\r\n lineClamp?: number | undefined;\r\n}\r\n\r\nexport interface TypographyProps\r\n extends React.HTMLAttributes<HTMLElement>,\r\n TypographyOwnerState {\r\n /**\r\n * If true, delegate rendering to immediate child element using Slot\r\n */\r\n asChild?: boolean;\r\n /**\r\n * The underlying HTML element or component\r\n */\r\n component?: React.ElementType;\r\n /**\r\n * Alias for component\r\n */\r\n as?: React.ElementType;\r\n /**\r\n * The system-aware sx prop\r\n */\r\n sx?: SxProps;\r\n children?: React.ReactNode;\r\n}\r\n\r\nconst defaultVariantMapping: Record<TypographyVariant, React.ElementType> = {\r\n h1: \"h1\",\r\n h2: \"h2\",\r\n h3: \"h3\",\r\n h4: \"h4\",\r\n h5: \"h5\",\r\n h6: \"h6\",\r\n subtitle1: \"h6\",\r\n subtitle2: \"h6\",\r\n body1: \"p\",\r\n body2: \"p\",\r\n button: \"span\",\r\n caption: \"span\",\r\n overline: \"span\",\r\n};\r\n\r\ntype PaletteWithMain =\r\n | \"primary\"\r\n | \"secondary\"\r\n | \"error\"\r\n | \"warning\"\r\n | \"info\"\r\n | \"success\";\r\n\r\nfunction isPaletteWithMain(key: string): key is PaletteWithMain {\r\n return (\r\n key === \"primary\" ||\r\n key === \"secondary\" ||\r\n key === \"error\" ||\r\n key === \"warning\" ||\r\n key === \"info\" ||\r\n key === \"success\"\r\n );\r\n}\r\n\r\nconst paletteTokenFallbackMap: Record<string, string> = {\r\n primary: \"var(--cl-color-primary-base)\",\r\n secondary: \"var(--cl-color-secondary-base)\",\r\n error: \"var(--cl-color-danger-base)\",\r\n warning: \"var(--cl-color-warning-base)\",\r\n info: \"var(--cl-color-info-base)\",\r\n success: \"var(--cl-color-success-base)\",\r\n \"text.primary\": \"var(--cl-color-fg-primary)\",\r\n \"text.secondary\": \"var(--cl-color-fg-secondary)\",\r\n \"text.disabled\": \"var(--cl-color-fg-muted)\",\r\n \"background.default\": \"var(--cl-color-bg-canvas)\",\r\n \"background.paper\": \"var(--cl-color-bg-surface)\",\r\n};\r\n\r\nfunction getNestedPaletteValue(obj: unknown, path: string): string | undefined {\r\n if (obj === null || typeof obj !== \"object\") return undefined;\r\n const parts = path.split(\".\");\r\n let current: unknown = obj;\r\n for (const part of parts) {\r\n if (current !== null && typeof current === \"object\" && part in current) {\r\n current = (current as Record<string, unknown>)[part];\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n return typeof current === \"string\" ? current : undefined;\r\n}\r\n\r\nexport function resolveTypographyColor(\r\n theme: ChellaaTheme,\r\n color?: string\r\n): string | undefined {\r\n if (!color || color === \"inherit\" || color === \"currentColor\") {\r\n return color;\r\n }\r\n\r\n // Check direct palette main colors (primary, secondary, error, warning, info, success)\r\n if (theme?.palette && isPaletteWithMain(color)) {\r\n const paletteColor = theme.palette[color];\r\n if (paletteColor && typeof paletteColor.main === \"string\") {\r\n return paletteColor.main;\r\n }\r\n }\r\n\r\n // Check dotted paths (text.primary, text.secondary, background.paper, etc.)\r\n if (color.includes(\".\") && theme?.palette) {\r\n const resolved = getNestedPaletteValue(theme.palette, color);\r\n if (resolved) {\r\n return resolved;\r\n }\r\n }\r\n\r\n // Fallback to documented CSS token if defined for this palette key\r\n if (color in paletteTokenFallbackMap) {\r\n return paletteTokenFallbackMap[color];\r\n }\r\n\r\n return color;\r\n}\r\n\r\nconst StyledTypographyRoot = styled(\"span\", {\r\n name: \"ChellaaTypography\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"variant\" &&\r\n prop !== \"align\" &&\r\n prop !== \"color\" &&\r\n prop !== \"gutterBottom\" &&\r\n prop !== \"noWrap\" &&\r\n prop !== \"lineClamp\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})<{ color?: string }>(({ theme, color }) => {\r\n if (color) {\r\n return {\r\n color: resolveTypographyColor(theme, color),\r\n };\r\n }\r\n return {};\r\n});\r\n\r\n/**\r\n * Foundational Typography component supporting all Material Design 3 scale variants,\r\n * truncation, line clamping, and semantic element delegation.\r\n *\r\n * @example\r\n * <Typography variant=\"h1\">Display Header</Typography>\r\n * <Typography variant=\"body1\" color=\"text.secondary\">Body text</Typography>\r\n * <Typography noWrap>Single line truncated text</Typography>\r\n */\r\nexport const Typography = React.forwardRef<HTMLElement, TypographyProps>(\r\n function Typography(props, ref) {\r\n const {\r\n asChild = false,\r\n component,\r\n as,\r\n variant = \"body1\",\r\n align = \"inherit\",\r\n color,\r\n gutterBottom = false,\r\n noWrap = false,\r\n lineClamp,\r\n className,\r\n style,\r\n sx,\r\n children,\r\n ...rest\r\n } = props;\r\n\r\n const typographyClassName = classNames(\r\n \"cl-typography\",\r\n `cl-typography--${variant}`,\r\n align && align !== \"inherit\" && `cl-typography--align-${align}`,\r\n gutterBottom && \"cl-typography--gutter-bottom\",\r\n noWrap && \"cl-typography--no-wrap\",\r\n lineClamp !== undefined && lineClamp > 0 && \"cl-typography--line-clamp\",\r\n className\r\n );\r\n\r\n const inlineStyle: React.CSSProperties = {\r\n ...(lineClamp !== undefined && lineClamp > 0\r\n ? ({ WebkitLineClamp: lineClamp } as React.CSSProperties)\r\n : {}),\r\n ...style,\r\n };\r\n\r\n const targetTag =\r\n component || as || defaultVariantMapping[variant] || \"span\";\r\n\r\n if (asChild) {\r\n return (\r\n <StyledTypographyRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLSpanElement>}\r\n className={typographyClassName}\r\n style={inlineStyle}\r\n color={color}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledTypographyRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledTypographyRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLSpanElement>}\r\n className={typographyClassName}\r\n style={inlineStyle}\r\n color={color}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledTypographyRoot>\r\n );\r\n }\r\n);\r\n\r\nTypography.displayName = \"Typography\";\r\n","import * as React from \"react\";\r\nimport { Typography, type TypographyProps } from \"./Typography\";\r\nimport type { TypographyVariant } from \"../../theme/types\";\r\n\r\nexport type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\r\n\r\nexport interface HeadingProps extends Omit<TypographyProps, \"variant\"> {\r\n /**\r\n * Semantic heading level (1 to 6).\r\n * Determines both default HTML tag (h1..h6) and typography scale variant unless overridden.\r\n * @default 2\r\n */\r\n level?: HeadingLevel | undefined;\r\n /**\r\n * Optional visual scale variant to decouple styling from heading level.\r\n */\r\n variant?: TypographyVariant | undefined;\r\n}\r\n\r\n/**\r\n * Ergonomic semantic heading primitive.\r\n *\r\n * @example\r\n * <Heading level={1}>Page Title</Heading>\r\n * <Heading level={2} variant=\"h4\">Visually smaller Section Title</Heading>\r\n */\r\nexport const Heading = React.forwardRef<HTMLElement, HeadingProps>(\r\n function Heading(props, ref) {\r\n const { level = 2, variant, component, ...rest } = props;\r\n\r\n const levelTag = `h${level}` as \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\r\n const resolvedVariant = variant || levelTag;\r\n const resolvedComponent = component || levelTag;\r\n\r\n return (\r\n <Typography\r\n ref={ref}\r\n component={resolvedComponent}\r\n variant={resolvedVariant}\r\n {...rest}\r\n />\r\n );\r\n }\r\n);\r\n\r\nHeading.displayName = \"Heading\";\r\n","import * as React from \"react\";\r\nimport { Typography, type TypographyProps } from \"./Typography\";\r\nimport type { TypographyVariant } from \"../../theme/types\";\r\n\r\nexport type TextSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\r\n\r\nexport interface TextProps extends TypographyProps {\r\n /**\r\n * Shorthand text size mapping to theme typographic scale:\r\n * - \"xs\": caption (12px)\r\n * - \"sm\": body2 (14px)\r\n * - \"md\": body1 (16px)\r\n * - \"lg\": subtitle1 (16px/medium)\r\n * - \"xl\": h6 (20px)\r\n */\r\n size?: TextSize | undefined;\r\n /**\r\n * If true, renders as block element ('div' or 'p'). Otherwise renders as inline 'span'.\r\n * @default false\r\n */\r\n block?: boolean | undefined;\r\n}\r\n\r\nconst sizeToVariant: Record<TextSize, TypographyVariant> = {\r\n xs: \"caption\",\r\n sm: \"body2\",\r\n md: \"body1\",\r\n lg: \"subtitle1\",\r\n xl: \"h6\",\r\n};\r\n\r\n/**\r\n * Ergonomic inline or block textual primitive.\r\n *\r\n * @example\r\n * <Text size=\"sm\" color=\"text.secondary\">Secondary caption</Text>\r\n * <Text block noWrap>Single line block item</Text>\r\n */\r\nexport const Text = React.forwardRef<HTMLElement, TextProps>(\r\n function Text(props, ref) {\r\n const { size, variant, block = false, component, ...rest } = props;\r\n\r\n const resolvedVariant = variant || (size ? sizeToVariant[size] : \"body1\");\r\n const defaultTag = block ? \"p\" : \"span\";\r\n const resolvedComponent = component || defaultTag;\r\n\r\n return (\r\n <Typography\r\n ref={ref}\r\n component={resolvedComponent}\r\n variant={resolvedVariant}\r\n {...rest}\r\n />\r\n );\r\n }\r\n);\r\n\r\nText.displayName = \"Text\";\r\n","import * as React from \"react\";\r\nimport { Typography, type TypographyProps } from \"./Typography\";\r\n\r\nexport interface ParagraphProps extends TypographyProps {\r\n /**\r\n * Shorthand spacing multiplier for bottom margin (defaults to standard gutterBottom).\r\n */\r\n spacing?: number | string | undefined;\r\n}\r\n\r\n/**\r\n * Ergonomic paragraph block primitive with standard reading margins.\r\n *\r\n * @example\r\n * <Paragraph>\r\n * This is standard paragraph text with built-in reading spacing.\r\n * </Paragraph>\r\n */\r\nexport const Paragraph = React.forwardRef<HTMLElement, ParagraphProps>(\r\n function Paragraph(props, ref) {\r\n const { component = \"p\", variant = \"body1\", gutterBottom = true, ...rest } = props;\r\n\r\n return (\r\n <Typography\r\n ref={ref}\r\n component={component}\r\n variant={variant}\r\n gutterBottom={gutterBottom}\r\n {...rest}\r\n />\r\n );\r\n }\r\n);\r\n\r\nParagraph.displayName = \"Paragraph\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport type { SxProps } from \"../../system/types\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\n\r\nexport type CodeColorScheme = \"default\" | \"primary\" | \"secondary\";\r\n\r\nexport interface CodeOwnerState {\r\n colorScheme?: CodeColorScheme | undefined;\r\n}\r\n\r\nexport interface CodeProps\r\n extends React.HTMLAttributes<HTMLElement>,\r\n CodeOwnerState {\r\n asChild?: boolean | undefined;\r\n component?: React.ElementType | undefined;\r\n as?: React.ElementType | undefined;\r\n sx?: SxProps;\r\n children?: React.ReactNode;\r\n}\r\n\r\nconst StyledCodeRoot = styled(\"code\", {\r\n name: \"ChellaaCode\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"colorScheme\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})({});\r\n\r\n/**\r\n * Inline monospace code chip primitive for identifiers, filenames, and CLI snippets.\r\n *\r\n * @example\r\n * <Text>Run <Code>npm install</Code> to install dependencies.</Text>\r\n * <Code colorScheme=\"primary\">package.json</Code>\r\n */\r\nexport const Code = React.forwardRef<HTMLElement, CodeProps>(\r\n function Code(props, ref) {\r\n const {\r\n asChild = false,\r\n component = \"code\",\r\n as,\r\n colorScheme = \"default\",\r\n className,\r\n style,\r\n sx,\r\n children,\r\n ...rest\r\n } = props;\r\n\r\n const codeClassName = classNames(\r\n \"cl-code\",\r\n colorScheme !== \"default\" && `cl-code--${colorScheme}`,\r\n className\r\n );\r\n\r\n const targetTag = component || as || \"code\";\r\n\r\n if (asChild) {\r\n return (\r\n <StyledCodeRoot\r\n as={Slot}\r\n ref={ref as any}\r\n className={codeClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCodeRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledCodeRoot\r\n as={targetTag}\r\n ref={ref as any}\r\n className={codeClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCodeRoot>\r\n );\r\n }\r\n);\r\n\r\nCode.displayName = \"Code\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport type { SxProps } from \"../../system/types\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\n\r\nexport type KbdSize = \"sm\" | \"md\" | \"lg\";\r\nexport type KbdVariant = \"outline\" | \"subtle\" | \"solid\";\r\n\r\nexport type KbdModifier =\r\n | \"command\"\r\n | \"cmd\"\r\n | \"shift\"\r\n | \"option\"\r\n | \"alt\"\r\n | \"control\"\r\n | \"ctrl\"\r\n | \"enter\"\r\n | \"escape\"\r\n | \"esc\"\r\n | \"tab\"\r\n | \"backspace\"\r\n | \"delete\"\r\n | \"del\"\r\n | \"up\"\r\n | \"down\"\r\n | \"left\"\r\n | \"right\";\r\n\r\nexport const MODIFIER_SYMBOLS: Record<KbdModifier, string> = {\r\n command: \"⌘\",\r\n cmd: \"⌘\",\r\n shift: \"⇧\",\r\n option: \"⌥\",\r\n alt: \"⌥\",\r\n control: \"⌃\",\r\n ctrl: \"⌃\",\r\n enter: \"↵\",\r\n escape: \"Esc\",\r\n esc: \"Esc\",\r\n tab: \"⇥\",\r\n backspace: \"⌫\",\r\n delete: \"⌦\",\r\n del: \"⌦\",\r\n up: \"↑\",\r\n down: \"↓\",\r\n left: \"←\",\r\n right: \"→\",\r\n};\r\n\r\nexport interface KbdOwnerState {\r\n size?: KbdSize | undefined;\r\n variant?: KbdVariant | undefined;\r\n modifier?: KbdModifier | undefined;\r\n}\r\n\r\nexport interface KbdProps\r\n extends React.HTMLAttributes<HTMLElement>,\r\n KbdOwnerState {\r\n /**\r\n * If true, delegate rendering to immediate child element using Slot\r\n */\r\n asChild?: boolean;\r\n /**\r\n * The underlying HTML element or component\r\n */\r\n component?: React.ElementType;\r\n /**\r\n * Alias for component\r\n */\r\n as?: React.ElementType;\r\n /**\r\n * The system-aware sx prop\r\n */\r\n sx?: SxProps;\r\n children?: React.ReactNode;\r\n}\r\n\r\nconst StyledKbdRoot = styled(\"kbd\", {\r\n name: \"ChellaaKbd\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"size\" &&\r\n prop !== \"variant\" &&\r\n prop !== \"modifier\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})({});\r\n\r\n/**\r\n * Tactile keyboard shortcut keycap primitive representing user input keystrokes.\r\n *\r\n * @example\r\n * <Kbd>Ctrl</Kbd> + <Kbd>K</Kbd>\r\n * <Kbd modifier=\"command\" />\r\n * <Kbd size=\"sm\" variant=\"subtle\">Esc</Kbd>\r\n */\r\nexport const Kbd = React.forwardRef<HTMLElement, KbdProps>(\r\n function Kbd(props, ref) {\r\n const {\r\n asChild = false,\r\n component = \"kbd\",\r\n as,\r\n size = \"md\",\r\n variant = \"outline\",\r\n modifier,\r\n className,\r\n style,\r\n sx,\r\n children,\r\n ...rest\r\n } = props;\r\n\r\n const kbdClassName = classNames(\r\n \"cl-kbd\",\r\n `cl-kbd--${size}`,\r\n `cl-kbd--${variant}`,\r\n className\r\n );\r\n\r\n const targetTag = component || as || \"kbd\";\r\n\r\n // Resolve content: children takes precedence, then modifier symbol\r\n const content = children ?? (modifier ? MODIFIER_SYMBOLS[modifier] ?? modifier : null);\r\n\r\n if (asChild) {\r\n return (\r\n <StyledKbdRoot\r\n as={Slot}\r\n ref={ref as any}\r\n className={kbdClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {content}\r\n </StyledKbdRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledKbdRoot\r\n as={targetTag}\r\n ref={ref as any}\r\n className={kbdClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {content}\r\n </StyledKbdRoot>\r\n );\r\n }\r\n);\r\n\r\nKbd.displayName = \"Kbd\";\r\n","import * as React from \"react\";\r\n\r\nexport interface FormFieldContextValue {\r\n id: string;\r\n name?: string | undefined;\r\n required?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n readOnly?: boolean | undefined;\r\n error?: boolean | undefined;\r\n labelId: string;\r\n helperTextId: string;\r\n errorMessageId: string;\r\n hasHelperText: boolean;\r\n hasErrorMessage: boolean;\r\n setHasHelperText: (has: boolean) => void;\r\n setHasErrorMessage: (has: boolean) => void;\r\n}\r\n\r\nexport const FormFieldContext = React.createContext<\r\n FormFieldContextValue | undefined\r\n>(undefined);\r\n\r\n/**\r\n * Hook to consume form field state, IDs, and validation flags.\r\n * Returns undefined if used outside a <FormField>.\r\n */\r\nexport function useFormField(): FormFieldContextValue | undefined {\r\n return React.useContext(FormFieldContext);\r\n}\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport { setRef } from \"../../hooks/useMergeRefs\";\r\nimport { useFormField } from \"../FormField/FormFieldContext\";\r\nimport type {\r\n InputProps,\r\n InputOwnerState,\r\n InputVariant,\r\n InputSize,\r\n} from \"./Input.types\";\r\n\r\nexport type { InputProps, InputOwnerState, InputVariant, InputSize };\r\n\r\n/**\r\n * Headless raw input primitive for backward compatibility.\r\n */\r\nexport const InputBase = React.forwardRef<\r\n HTMLInputElement,\r\n React.InputHTMLAttributes<HTMLInputElement> & { ownerState?: InputOwnerState }\r\n>(function InputBase({ className, ownerState: _ownerState, ...props }, ref) {\r\n return (\r\n <input\r\n ref={ref}\r\n className={classNames(\"cl-input__input\", className)}\r\n {...props}\r\n />\r\n );\r\n});\r\n\r\nInputBase.displayName = \"InputBase\";\r\n\r\nconst StyledInputRoot = styled(\"div\", {\r\n name: \"ChellaaInput\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"variant\" &&\r\n prop !== \"size\" &&\r\n prop !== \"fullWidth\" &&\r\n prop !== \"error\" &&\r\n prop !== \"disabled\" &&\r\n prop !== \"readOnly\" &&\r\n prop !== \"hasStartAdornment\" &&\r\n prop !== \"hasEndAdornment\" &&\r\n prop !== \"focused\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\" &&\r\n prop !== \"ownerState\",\r\n})({});\r\n\r\n/**\r\n * Chellaa React Input component.\r\n *\r\n * Fundamental single-line text entry primitive with Material Design 3 surface variants,\r\n * precompiled CSS cascade layers (@layer cl-components), zero-runtime static styling,\r\n * dynamic sx override bridge, and accessible form integration.\r\n */\r\nexport const Input = React.forwardRef<HTMLDivElement, InputProps>(\r\n function Input(props, ref) {\r\n const formField = useFormField();\r\n\r\n const {\r\n asChild = false,\r\n component,\r\n as,\r\n variant = \"outlined\",\r\n size = \"md\",\r\n fullWidth = false,\r\n error: errorProp,\r\n disabled: disabledProp,\r\n readOnly: readOnlyProp,\r\n required: requiredProp,\r\n startAdornment,\r\n endAdornment,\r\n clearable = false,\r\n onClear,\r\n inputRef: inputRefProp,\r\n value: valueProp,\r\n defaultValue,\r\n onChange,\r\n type: typeProp,\r\n id: idProp,\r\n className,\r\n style,\r\n sx,\r\n inputProps,\r\n \"aria-describedby\": ariaDescribedByProp,\r\n children,\r\n ...restInputProps\r\n } = props;\r\n\r\n const id = idProp ?? (asChild ? undefined : formField?.id);\r\n const type = typeProp ?? (asChild ? undefined : \"text\");\r\n const error = errorProp ?? formField?.error ?? false;\r\n const disabled = disabledProp ?? formField?.disabled ?? false;\r\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\r\n const required = requiredProp ?? formField?.required ?? false;\r\n\r\n const ariaDescribedBy = [\r\n ariaDescribedByProp,\r\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\r\n formField?.hasHelperText ? formField.helperTextId : null,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \") || undefined;\r\n\r\n // Value tracking for clearable button\r\n const [internalValue, setInternalValue] = React.useState<string>(() => {\r\n if (valueProp !== undefined) return String(valueProp);\r\n if (defaultValue !== undefined) return String(defaultValue);\r\n return \"\";\r\n });\r\n\r\n const isControlled = valueProp !== undefined;\r\n const currentValue = isControlled ? String(valueProp ?? \"\") : internalValue;\r\n\r\n const innerInputRef = React.useRef<HTMLInputElement | null>(null);\r\n\r\n const handleInputRef = React.useCallback(\r\n (node: HTMLInputElement | null) => {\r\n innerInputRef.current = node;\r\n if (typeof inputRefProp === \"function\") {\r\n inputRefProp(node);\r\n } else if (inputRefProp && \"current\" in inputRefProp) {\r\n (inputRefProp as React.MutableRefObject<HTMLInputElement | null>).current = node;\r\n }\r\n },\r\n [inputRefProp]\r\n );\r\n\r\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n if (!isControlled) {\r\n setInternalValue(event.target.value);\r\n }\r\n onChange?.(event);\r\n };\r\n\r\n const handleClear = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n e.stopPropagation();\r\n if (!isControlled) {\r\n setInternalValue(\"\");\r\n }\r\n if (innerInputRef.current) {\r\n innerInputRef.current.value = \"\";\r\n const event = new Event(\"input\", { bubbles: true });\r\n innerInputRef.current.dispatchEvent(event);\r\n innerInputRef.current.focus();\r\n }\r\n onClear?.();\r\n };\r\n\r\n const handleWrapperClick = () => {\r\n if (innerInputRef.current && document.activeElement !== innerInputRef.current) {\r\n innerInputRef.current.focus();\r\n }\r\n };\r\n\r\n const showClear = clearable && !disabled && !readOnly && currentValue.length > 0;\r\n\r\n const clearButton = showClear ? (\r\n <button\r\n type=\"button\"\r\n className=\"cl-input__clear\"\r\n aria-label=\"Clear input\"\r\n onClick={handleClear}\r\n >\r\n <svg\r\n width=\"14\"\r\n height=\"14\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\r\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\r\n </svg>\r\n </button>\r\n ) : null;\r\n\r\n const inputWrapperClassName = classNames(\r\n \"cl-input\",\r\n `cl-input--${variant}`,\r\n `cl-input--${size}`,\r\n fullWidth && \"cl-input--full-width\",\r\n error && \"cl-input--error\",\r\n disabled && \"cl-input--disabled\",\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n const handleSlottedRef = React.useCallback(\r\n (node: HTMLElement | null) => {\r\n setRef(ref, node as HTMLDivElement | null);\r\n setRef(inputRefProp, node as HTMLInputElement | null);\r\n handleInputRef(node as HTMLInputElement | null);\r\n },\r\n [ref, inputRefProp, handleInputRef]\r\n );\r\n\r\n if (asChild) {\r\n return (\r\n <Slot\r\n ref={handleSlottedRef}\r\n className={inputWrapperClassName}\r\n style={style}\r\n id={id}\r\n type={type}\r\n disabled={disabled || undefined}\r\n readOnly={readOnly || undefined}\r\n required={required || undefined}\r\n aria-describedby={ariaDescribedBy}\r\n aria-invalid={error ? true : undefined}\r\n value={valueProp}\r\n defaultValue={defaultValue}\r\n onChange={handleChange}\r\n onClick={handleWrapperClick}\r\n {...inputProps}\r\n {...restInputProps}\r\n >\r\n {children}\r\n </Slot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledInputRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={inputWrapperClassName}\r\n style={style}\r\n sx={sx}\r\n onClick={handleWrapperClick}\r\n >\r\n {startAdornment}\r\n <input\r\n ref={handleInputRef}\r\n id={id}\r\n type={type}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n required={required}\r\n aria-describedby={ariaDescribedBy}\r\n value={valueProp}\r\n defaultValue={defaultValue}\r\n onChange={handleChange}\r\n aria-invalid={error ? true : undefined}\r\n className=\"cl-input__input\"\r\n {...inputProps}\r\n {...restInputProps}\r\n />\r\n {clearButton}\r\n {endAdornment}\r\n </StyledInputRoot>\r\n );\r\n }\r\n);\r\n\r\nInput.displayName = \"Input\";\r\n","import * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { Input, type InputProps } from \"./Input\";\r\n\r\nexport interface TextFieldProps extends InputProps {\r\n /**\r\n * The label text displayed above the input.\r\n */\r\n label?: React.ReactNode | undefined;\r\n /**\r\n * Explanatory helper text displayed below the input.\r\n */\r\n helperText?: React.ReactNode | undefined;\r\n /**\r\n * Error message displayed below the input when error is true.\r\n */\r\n errorMessage?: React.ReactNode | undefined;\r\n /**\r\n * If true, displays a required asterisk next to the label and marks input required.\r\n * @default false\r\n */\r\n required?: boolean | undefined;\r\n}\r\n\r\nconst StyledTextFieldRoot = styled(\"div\", {\r\n name: \"ChellaaTextField\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) => prop !== \"fullWidth\",\r\n})<{ fullWidth?: boolean }>(({ fullWidth }) => ({\r\n display: \"inline-flex\",\r\n flexDirection: \"column\",\r\n position: \"relative\",\r\n width: fullWidth ? \"100%\" : \"auto\",\r\n verticalAlign: \"top\",\r\n}));\r\n\r\nconst StyledLabel = styled(\"label\")<{ required?: boolean; error?: boolean }>(\r\n ({ theme, error }) => ({\r\n display: \"block\",\r\n fontSize: \"0.875rem\",\r\n fontWeight: 500,\r\n lineHeight: 1.4,\r\n marginBottom: theme.spacing(0.75),\r\n color: error ? theme.palette.error.main : theme.palette.text.primary,\r\n userSelect: \"none\",\r\n \"& .ChellaaTextField-requiredAsterisk\": {\r\n color: theme.palette.error.main,\r\n marginLeft: 4,\r\n },\r\n })\r\n);\r\n\r\nconst StyledHelperText = styled(\"p\")<{ error?: boolean }>(\r\n ({ theme, error }) => ({\r\n fontSize: \"0.75rem\",\r\n lineHeight: 1.4,\r\n margin: 0,\r\n marginTop: theme.spacing(0.5),\r\n color: error ? theme.palette.error.main : theme.palette.text.secondary,\r\n })\r\n);\r\n\r\n/**\r\n * Enterprise composite form control combining label, input, helper text, and validation messaging.\r\n *\r\n * @example\r\n * <TextField\r\n * label=\"Email Address\"\r\n * type=\"email\"\r\n * placeholder=\"user@example.com\"\r\n * helperText=\"We will never share your email.\"\r\n * required\r\n * />\r\n */\r\nexport const TextField = React.forwardRef<HTMLDivElement, TextFieldProps>(\r\n function TextField(props, ref) {\r\n const {\r\n id: idProp,\r\n label,\r\n helperText,\r\n errorMessage,\r\n error = false,\r\n required = false,\r\n fullWidth = false,\r\n className,\r\n style,\r\n sx,\r\n ...inputProps\r\n } = props;\r\n\r\n const generatedId = React.useId();\r\n const inputId = idProp || generatedId;\r\n const isError = Boolean(error);\r\n const activeHelperContent = isError && errorMessage ? errorMessage : helperText;\r\n const messageId = isError && errorMessage ? `${inputId}-error` : `${inputId}-helper`;\r\n\r\n return (\r\n <StyledTextFieldRoot\r\n ref={ref}\r\n fullWidth={fullWidth}\r\n className={className}\r\n style={style}\r\n sx={sx}\r\n >\r\n {label && (\r\n <StyledLabel htmlFor={inputId} error={error} required={required}>\r\n {label}\r\n {required && (\r\n <span className=\"ChellaaTextField-requiredAsterisk\" aria-hidden=\"true\">\r\n *\r\n </span>\r\n )}\r\n </StyledLabel>\r\n )}\r\n\r\n <Input\r\n id={inputId}\r\n error={error}\r\n required={required}\r\n fullWidth={fullWidth}\r\n aria-describedby={activeHelperContent ? messageId : undefined}\r\n {...inputProps}\r\n />\r\n\r\n {activeHelperContent && (\r\n <StyledHelperText\r\n id={messageId}\r\n error={error}\r\n role={isError && errorMessage ? \"alert\" : undefined}\r\n aria-live={isError && errorMessage ? \"polite\" : undefined}\r\n >\r\n {activeHelperContent}\r\n </StyledHelperText>\r\n )}\r\n </StyledTextFieldRoot>\r\n );\r\n }\r\n);\r\n\r\nTextField.displayName = \"TextField\";\r\n","import * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport type { SxProps } from \"../../system/types\";\r\n\r\nexport interface InputAdornmentProps\r\n extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\r\n * Position of the adornment within the input track.\r\n */\r\n position: \"start\" | \"end\";\r\n /**\r\n * If true, prevents pointer events on the adornment (e.g. for purely decorative icons).\r\n * @default false\r\n */\r\n disablePointerEvents?: boolean | undefined;\r\n /**\r\n * The system-aware sx prop\r\n */\r\n sx?: SxProps;\r\n children?: React.ReactNode;\r\n}\r\n\r\nconst StyledAdornmentRoot = styled(\"div\", {\r\n name: \"ChellaaInputAdornment\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"position\" && prop !== \"disablePointerEvents\",\r\n})<{ position: \"start\" | \"end\"; disablePointerEvents?: boolean }>(\r\n ({ theme, position, disablePointerEvents }) => ({\r\n display: \"flex\",\r\n height: \"100%\",\r\n maxHeight: \"2em\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n whiteSpace: \"nowrap\",\r\n color: theme.palette.text.secondary,\r\n marginLeft: position === \"end\" ? theme.spacing(1) : 0,\r\n marginRight: position === \"start\" ? theme.spacing(1) : 0,\r\n pointerEvents: disablePointerEvents ? \"none\" : \"auto\",\r\n userSelect: \"none\",\r\n })\r\n);\r\n\r\nexport const InputAdornment = React.forwardRef<\r\n HTMLDivElement,\r\n InputAdornmentProps\r\n>(function InputAdornment(props, ref) {\r\n const { position, disablePointerEvents = false, children, ...rest } = props;\r\n\r\n return (\r\n <StyledAdornmentRoot\r\n ref={ref}\r\n position={position}\r\n disablePointerEvents={disablePointerEvents}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledAdornmentRoot>\r\n );\r\n});\r\n\r\nInputAdornment.displayName = \"InputAdornment\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport { setRef } from \"../../hooks/useMergeRefs\";\r\nimport { useFormField } from \"../FormField/FormFieldContext\";\r\nimport type {\r\n TextareaProps,\r\n TextareaOwnerState,\r\n TextareaVariant,\r\n TextareaSize,\r\n TextareaResize,\r\n} from \"./Textarea.types\";\r\n\r\nexport type {\r\n TextareaProps,\r\n TextareaOwnerState,\r\n TextareaVariant,\r\n TextareaSize,\r\n TextareaResize,\r\n};\r\n\r\nconst StyledTextareaContainer = styled(\"div\", {\r\n name: \"ChellaaTextarea\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"variant\" &&\r\n prop !== \"size\" &&\r\n prop !== \"fullWidth\" &&\r\n prop !== \"error\" &&\r\n prop !== \"disabled\" &&\r\n prop !== \"readOnly\" &&\r\n prop !== \"autoResize\" &&\r\n prop !== \"resize\" &&\r\n prop !== \"hasCount\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\" &&\r\n prop !== \"ownerState\",\r\n})({});\r\n\r\n/**\r\n * Multi-line plain text editing control with Material Design surface variants,\r\n * auto-expansion support, and character counter capabilities.\r\n */\r\nexport const Textarea = React.forwardRef<HTMLDivElement, TextareaProps>(\r\n function Textarea(props, ref) {\r\n const formField = useFormField();\r\n\r\n const {\r\n asChild = false,\r\n component,\r\n as,\r\n variant = \"outlined\",\r\n size = \"md\",\r\n fullWidth = false,\r\n error: errorProp,\r\n disabled: disabledProp,\r\n readOnly: readOnlyProp,\r\n required: requiredProp,\r\n minRows = 3,\r\n maxRows,\r\n autoResize = false,\r\n resize = \"vertical\",\r\n showCount = false,\r\n maxLength,\r\n textareaRef: textareaRefProp,\r\n textareaProps = {},\r\n value: valueProp,\r\n defaultValue,\r\n onChange,\r\n id: idProp,\r\n className,\r\n style,\r\n sx,\r\n placeholder,\r\n name,\r\n rows,\r\n cols,\r\n autoFocus,\r\n onFocus,\r\n onBlur,\r\n onKeyDown,\r\n onKeyUp,\r\n \"aria-describedby\": ariaDescribedByProp,\r\n children,\r\n ...restContainerProps\r\n } = props;\r\n\r\n const id = idProp ?? (asChild ? undefined : formField?.id);\r\n const error = errorProp ?? formField?.error ?? false;\r\n const disabled = disabledProp ?? formField?.disabled ?? false;\r\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\r\n const required = requiredProp ?? formField?.required ?? false;\r\n\r\n const ariaDescribedBy = [\r\n ariaDescribedByProp,\r\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\r\n formField?.hasHelperText ? formField.helperTextId : null,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \") || undefined;\r\n\r\n const [internalValue, setInternalValue] = React.useState<string>(() => {\r\n if (valueProp !== undefined) return String(valueProp);\r\n if (defaultValue !== undefined) return String(defaultValue);\r\n return \"\";\r\n });\r\n\r\n const isControlled = valueProp !== undefined;\r\n const currentValue = isControlled ? String(valueProp ?? \"\") : internalValue;\r\n\r\n const innerTextareaRef = React.useRef<HTMLTextAreaElement | null>(null);\r\n\r\n const handleTextareaRef = React.useCallback(\r\n (node: HTMLTextAreaElement | null) => {\r\n innerTextareaRef.current = node;\r\n if (typeof textareaRefProp === \"function\") {\r\n textareaRefProp(node);\r\n } else if (textareaRefProp && \"current\" in textareaRefProp) {\r\n (textareaRefProp as React.MutableRefObject<HTMLTextAreaElement | null>).current = node;\r\n }\r\n },\r\n [textareaRefProp]\r\n );\r\n\r\n // Auto-resize calculation\r\n React.useLayoutEffect(() => {\r\n if (!autoResize || !innerTextareaRef.current) return;\r\n\r\n const textarea = innerTextareaRef.current;\r\n textarea.style.height = \"auto\";\r\n\r\n const lineHeight = parseFloat(getComputedStyle(textarea).lineHeight) || 20;\r\n const minHeight = minRows * lineHeight;\r\n const maxHeight = maxRows ? maxRows * lineHeight : Infinity;\r\n\r\n const calculatedHeight = Math.min(\r\n Math.max(textarea.scrollHeight, minHeight),\r\n maxHeight\r\n );\r\n\r\n textarea.style.height = `${calculatedHeight}px`;\r\n textarea.style.overflowY =\r\n maxRows && textarea.scrollHeight > maxHeight ? \"auto\" : \"hidden\";\r\n }, [currentValue, autoResize, minRows, maxRows]);\r\n\r\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n if (!isControlled) {\r\n setInternalValue(event.target.value);\r\n }\r\n onChange?.(event);\r\n };\r\n\r\n const handleWrapperClick = () => {\r\n if (innerTextareaRef.current && document.activeElement !== innerTextareaRef.current) {\r\n innerTextareaRef.current.focus();\r\n }\r\n };\r\n\r\n const containerClassName = classNames(\r\n \"cl-textarea\",\r\n `cl-textarea--${variant}`,\r\n `cl-textarea--${size}`,\r\n fullWidth && \"cl-textarea--full-width\",\r\n error && \"cl-textarea--error\",\r\n disabled && \"cl-textarea--disabled\",\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n const textareaStyle: React.CSSProperties = {\r\n resize: autoResize ? \"none\" : resize,\r\n };\r\n\r\n const countDisplay = showCount ? (\r\n <div className=\"cl-textarea__counter\" aria-live=\"polite\">\r\n {currentValue.length}\r\n {maxLength ? ` / ${maxLength}` : \"\"}\r\n </div>\r\n ) : null;\r\n\r\n const handleSlottedRef = React.useCallback(\r\n (node: HTMLElement | null) => {\r\n setRef(ref, node as HTMLDivElement | null);\r\n setRef(textareaRefProp, node as HTMLTextAreaElement | null);\r\n handleTextareaRef(node as HTMLTextAreaElement | null);\r\n },\r\n [ref, textareaRefProp, handleTextareaRef]\r\n );\r\n\r\n if (asChild) {\r\n return (\r\n <Slot\r\n ref={handleSlottedRef}\r\n className={containerClassName}\r\n style={style}\r\n id={id}\r\n name={name}\r\n placeholder={placeholder}\r\n disabled={disabled || undefined}\r\n readOnly={readOnly || undefined}\r\n required={required || undefined}\r\n aria-describedby={ariaDescribedBy}\r\n aria-invalid={error ? true : undefined}\r\n value={valueProp}\r\n defaultValue={defaultValue}\r\n onChange={handleChange}\r\n maxLength={maxLength}\r\n rows={rows ?? (asChild ? undefined : minRows)}\r\n cols={cols}\r\n autoFocus={autoFocus}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n onKeyDown={onKeyDown}\r\n onKeyUp={onKeyUp}\r\n onClick={handleWrapperClick}\r\n {...textareaProps}\r\n {...restContainerProps}\r\n >\r\n {children}\r\n </Slot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledTextareaContainer\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={containerClassName}\r\n style={style}\r\n sx={sx}\r\n onClick={handleWrapperClick}\r\n {...restContainerProps}\r\n >\r\n <textarea\r\n ref={handleTextareaRef}\r\n id={id}\r\n name={name}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n required={required}\r\n aria-describedby={ariaDescribedBy}\r\n aria-invalid={error ? true : undefined}\r\n value={valueProp}\r\n defaultValue={defaultValue}\r\n onChange={handleChange}\r\n maxLength={maxLength}\r\n rows={rows ?? minRows}\r\n cols={cols}\r\n autoFocus={autoFocus}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n onKeyDown={onKeyDown}\r\n onKeyUp={onKeyUp}\r\n style={textareaStyle}\r\n className=\"cl-textarea__input\"\r\n {...textareaProps}\r\n />\r\n {countDisplay}\r\n </StyledTextareaContainer>\r\n );\r\n }\r\n);\r\n\r\nTextarea.displayName = \"Textarea\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport type { SxProps } from \"../../system/types\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport { FormFieldContext, type FormFieldContextValue } from \"./FormFieldContext\";\r\n\r\nexport interface FormFieldProps extends React.HTMLAttributes<HTMLDivElement> {\r\n id?: string | undefined;\r\n name?: string | undefined;\r\n required?: boolean | undefined;\r\n isRequired?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n isDisabled?: boolean | undefined;\r\n readOnly?: boolean | undefined;\r\n isReadOnly?: boolean | undefined;\r\n error?: boolean | undefined;\r\n isInvalid?: boolean | undefined;\r\n fullWidth?: boolean | undefined;\r\n asChild?: boolean | undefined;\r\n component?: React.ElementType | undefined;\r\n as?: React.ElementType | undefined;\r\n sx?: SxProps;\r\n children?: React.ReactNode | undefined;\r\n}\r\n\r\nconst StyledFormFieldRoot = styled(\"div\", {\r\n name: \"ChellaaFormField\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"fullWidth\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\" &&\r\n prop !== \"error\" &&\r\n prop !== \"isInvalid\" &&\r\n prop !== \"disabled\" &&\r\n prop !== \"isDisabled\" &&\r\n prop !== \"readOnly\" &&\r\n prop !== \"isReadOnly\" &&\r\n prop !== \"required\" &&\r\n prop !== \"isRequired\",\r\n})({});\r\n\r\n/**\r\n * Root form control container and accessibility context provider.\r\n * Automatically generates IDs and cascades validation states to child controls.\r\n *\r\n * @example\r\n * <FormField required error={hasError}>\r\n * <FormLabel>Email Address</FormLabel>\r\n * <Input type=\"email\" placeholder=\"alex@company.com\" />\r\n * <FormHelperText>We will never share your email.</FormHelperText>\r\n * <FormErrorMessage>Invalid email address.</FormErrorMessage>\r\n * </FormField>\r\n */\r\nexport const FormField = React.forwardRef<HTMLDivElement, FormFieldProps>(\r\n function FormField(props, ref) {\r\n const {\r\n id: idProp,\r\n name,\r\n required: requiredProp = false,\r\n isRequired = false,\r\n disabled: disabledProp = false,\r\n isDisabled = false,\r\n readOnly: readOnlyProp = false,\r\n isReadOnly = false,\r\n error: errorProp = false,\r\n isInvalid = false,\r\n fullWidth = false,\r\n asChild = false,\r\n component,\r\n as,\r\n children,\r\n className,\r\n style,\r\n sx,\r\n ...rest\r\n } = props;\r\n\r\n const required = isRequired || requiredProp;\r\n const disabled = isDisabled || disabledProp;\r\n const readOnly = isReadOnly || readOnlyProp;\r\n const error = isInvalid || errorProp;\r\n\r\n const generatedId = React.useId();\r\n const id = idProp || generatedId;\r\n const labelId = `${id}-label`;\r\n const helperTextId = `${id}-helper`;\r\n const errorMessageId = `${id}-error`;\r\n\r\n const [hasHelperText, setHasHelperText] = React.useState(false);\r\n const [hasErrorMessage, setHasErrorMessage] = React.useState(false);\r\n\r\n const contextValue: FormFieldContextValue = React.useMemo(\r\n () => ({\r\n id,\r\n name,\r\n required,\r\n disabled,\r\n readOnly,\r\n error,\r\n labelId,\r\n helperTextId,\r\n errorMessageId,\r\n hasHelperText,\r\n hasErrorMessage,\r\n setHasHelperText,\r\n setHasErrorMessage,\r\n }),\r\n [\r\n id,\r\n name,\r\n required,\r\n disabled,\r\n readOnly,\r\n error,\r\n labelId,\r\n helperTextId,\r\n errorMessageId,\r\n hasHelperText,\r\n hasErrorMessage,\r\n ]\r\n );\r\n\r\n const fieldClassName = classNames(\r\n \"cl-form-field\",\r\n fullWidth && \"cl-form-field--full-width\",\r\n error && \"cl-form-field--error\",\r\n disabled && \"cl-form-field--disabled\",\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n if (asChild) {\r\n return (\r\n <FormFieldContext.Provider value={contextValue}>\r\n <StyledFormFieldRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={fieldClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledFormFieldRoot>\r\n </FormFieldContext.Provider>\r\n );\r\n }\r\n\r\n return (\r\n <FormFieldContext.Provider value={contextValue}>\r\n <StyledFormFieldRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={fieldClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledFormFieldRoot>\r\n </FormFieldContext.Provider>\r\n );\r\n }\r\n);\r\n\r\nFormField.displayName = \"FormField\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport type { SxProps } from \"../../system/types\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport { useFormField } from \"./FormFieldContext\";\r\n\r\nexport interface FormLabelProps\r\n extends React.LabelHTMLAttributes<HTMLLabelElement> {\r\n /**\r\n * If true, displays a required asterisk. Inherits from FormField context if omitted.\r\n */\r\n required?: boolean | undefined;\r\n /**\r\n * If true, highlights label in error palette color. Inherits from FormField context if omitted.\r\n */\r\n error?: boolean | undefined;\r\n /**\r\n * If true, styles label in disabled state. Inherits from FormField context if omitted.\r\n */\r\n disabled?: boolean | undefined;\r\n /**\r\n * If true, delegates rendering to immediate child using Slot.\r\n */\r\n asChild?: boolean | undefined;\r\n /**\r\n * The underlying HTML element or component\r\n */\r\n component?: React.ElementType | undefined;\r\n /**\r\n * Alias for component\r\n */\r\n as?: React.ElementType | undefined;\r\n /**\r\n * The system-aware sx prop\r\n */\r\n sx?: SxProps;\r\n children?: React.ReactNode | undefined;\r\n}\r\n\r\nconst StyledLabelRoot = styled(\"label\", {\r\n name: \"ChellaaFormLabel\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"required\" &&\r\n prop !== \"error\" &&\r\n prop !== \"disabled\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})({});\r\n\r\n/**\r\n * Accessible form label automatically linked to its associated input control.\r\n *\r\n * @example\r\n * <FormLabel>Email Address</FormLabel>\r\n */\r\nexport const FormLabel = React.forwardRef<HTMLLabelElement, FormLabelProps>(\r\n function FormLabel(props, ref) {\r\n const {\r\n htmlFor: htmlForProp,\r\n id: idProp,\r\n required: requiredProp,\r\n error: errorProp,\r\n disabled: disabledProp,\r\n asChild = false,\r\n component,\r\n as,\r\n children,\r\n className,\r\n style,\r\n sx,\r\n ...rest\r\n } = props;\r\n\r\n const formField = useFormField();\r\n\r\n const htmlFor = htmlForProp ?? formField?.id;\r\n const id = idProp ?? formField?.labelId;\r\n const required = requiredProp ?? formField?.required ?? false;\r\n const error = errorProp ?? formField?.error ?? false;\r\n const disabled = disabledProp ?? formField?.disabled ?? false;\r\n\r\n const labelClassName = classNames(\r\n \"cl-form-label\",\r\n error && \"cl-form-label--error\",\r\n disabled && \"cl-form-label--disabled\",\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n if (asChild) {\r\n return (\r\n <StyledLabelRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLLabelElement>}\r\n htmlFor={htmlFor}\r\n id={id}\r\n className={labelClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledLabelRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledLabelRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLLabelElement>}\r\n htmlFor={htmlFor}\r\n id={id}\r\n className={labelClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n {required && (\r\n <span className=\"cl-form-label__asterisk\" aria-hidden=\"true\">*</span>\r\n )}\r\n </StyledLabelRoot>\r\n );\r\n }\r\n);\r\n\r\nFormLabel.displayName = \"FormLabel\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport type { SxProps } from \"../../system/types\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport { useFormField } from \"./FormFieldContext\";\r\n\r\nexport interface FormHelperTextProps\r\n extends React.HTMLAttributes<HTMLParagraphElement> {\r\n /**\r\n * If true, styles helper text in disabled state.\r\n */\r\n disabled?: boolean | undefined;\r\n /**\r\n * If true, delegates rendering to immediate child using Slot.\r\n */\r\n asChild?: boolean | undefined;\r\n /**\r\n * The underlying HTML element or component\r\n */\r\n component?: React.ElementType | undefined;\r\n /**\r\n * Alias for component\r\n */\r\n as?: React.ElementType | undefined;\r\n /**\r\n * The system-aware sx prop\r\n */\r\n sx?: SxProps;\r\n children?: React.ReactNode | undefined;\r\n}\r\n\r\nconst StyledHelperTextRoot = styled(\"p\", {\r\n name: \"ChellaaFormHelperText\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"disabled\" && prop !== \"asChild\" && prop !== \"component\",\r\n})({});\r\n\r\n/**\r\n * Contextual explanation text rendered beneath an input control,\r\n * automatically linked via aria-describedby.\r\n *\r\n * @example\r\n * <FormHelperText>We will never share your personal email.</FormHelperText>\r\n */\r\nexport const FormHelperText = React.forwardRef<\r\n HTMLParagraphElement,\r\n FormHelperTextProps\r\n>(function FormHelperText(props, ref) {\r\n const {\r\n id: idProp,\r\n disabled: disabledProp,\r\n asChild = false,\r\n component = \"p\",\r\n as,\r\n children,\r\n className,\r\n style,\r\n sx,\r\n ...rest\r\n } = props;\r\n\r\n const formField = useFormField();\r\n const setHasHelperText = formField?.setHasHelperText;\r\n\r\n React.useEffect(() => {\r\n setHasHelperText?.(true);\r\n return () => setHasHelperText?.(false);\r\n }, [setHasHelperText]);\r\n\r\n const id = idProp ?? formField?.helperTextId;\r\n const disabled = disabledProp ?? formField?.disabled ?? false;\r\n const targetTag = component || as;\r\n\r\n const helperClassName = classNames(\r\n \"cl-form-helper-text\",\r\n disabled && \"cl-form-helper-text--disabled\",\r\n className\r\n );\r\n\r\n if (asChild) {\r\n return (\r\n <StyledHelperTextRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLParagraphElement>}\r\n id={id}\r\n className={helperClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledHelperTextRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledHelperTextRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLParagraphElement>}\r\n id={id}\r\n className={helperClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledHelperTextRoot>\r\n );\r\n});\r\n\r\nFormHelperText.displayName = \"FormHelperText\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport type { SxProps } from \"../../system/types\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport { useFormField } from \"./FormFieldContext\";\r\n\r\nexport interface FormErrorMessageProps\r\n extends React.HTMLAttributes<HTMLParagraphElement> {\r\n /**\r\n * If true, forces the error message to mount even if error is false.\r\n * @default false\r\n */\r\n forceMount?: boolean | undefined;\r\n /**\r\n * If true, delegates rendering to immediate child using Slot.\r\n */\r\n asChild?: boolean | undefined;\r\n /**\r\n * The underlying HTML element or component\r\n */\r\n component?: React.ElementType | undefined;\r\n /**\r\n * Alias for component\r\n */\r\n as?: React.ElementType | undefined;\r\n /**\r\n * The system-aware sx prop\r\n */\r\n sx?: SxProps;\r\n children?: React.ReactNode | undefined;\r\n}\r\n\r\nconst StyledErrorMessageRoot = styled(\"p\", {\r\n name: \"ChellaaFormErrorMessage\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"forceMount\" && prop !== \"asChild\" && prop !== \"component\",\r\n})({});\r\n\r\n/**\r\n * Accessible error message primitive rendered conditionally when error is true,\r\n * possessing role=\"alert\" for immediate screen reader announcement.\r\n *\r\n * @example\r\n * <FormErrorMessage>Please enter a valid email address.</FormErrorMessage>\r\n */\r\nexport const FormErrorMessage = React.forwardRef<\r\n HTMLParagraphElement,\r\n FormErrorMessageProps\r\n>(function FormErrorMessage(props, ref) {\r\n const {\r\n id: idProp,\r\n forceMount = false,\r\n asChild = false,\r\n component = \"p\",\r\n as,\r\n children,\r\n className,\r\n style,\r\n sx,\r\n ...rest\r\n } = props;\r\n\r\n const formField = useFormField();\r\n const isError = formField?.error ?? false;\r\n const setHasErrorMessage = formField?.setHasErrorMessage;\r\n\r\n React.useEffect(() => {\r\n if (isError || forceMount) {\r\n setHasErrorMessage?.(true);\r\n return () => setHasErrorMessage?.(false);\r\n }\r\n }, [setHasErrorMessage, isError, forceMount]);\r\n\r\n if (!isError && !forceMount) {\r\n return null;\r\n }\r\n\r\n const id = idProp ?? formField?.errorMessageId;\r\n const targetTag = component || as;\r\n\r\n const errorClassName = classNames(\"cl-form-error-message\", className);\r\n\r\n if (asChild) {\r\n return (\r\n <StyledErrorMessageRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLParagraphElement>}\r\n id={id}\r\n role=\"alert\"\r\n aria-live=\"polite\"\r\n className={errorClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledErrorMessageRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledErrorMessageRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLParagraphElement>}\r\n id={id}\r\n role=\"alert\"\r\n aria-live=\"polite\"\r\n className={errorClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledErrorMessageRoot>\r\n );\r\n});\r\n\r\nFormErrorMessage.displayName = \"FormErrorMessage\";\r\n","import * as React from \"react\";\r\nimport type { CheckboxContextValue } from \"./Checkbox.types\";\r\n\r\nexport const CheckboxContext = React.createContext<\r\n CheckboxContextValue | undefined\r\n>(undefined);\r\n\r\n/**\r\n * Hook to consume parent CheckboxGroup context.\r\n * Returns undefined if the checkbox is rendered standalone.\r\n */\r\nexport function useCheckboxGroup(): CheckboxContextValue | undefined {\r\n return React.useContext(CheckboxContext);\r\n}\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\r\nimport { useCheckboxGroup } from \"./CheckboxContext\";\r\nimport { useFormField } from \"../FormField/FormFieldContext\";\r\nimport type {\r\n CheckboxProps,\r\n CheckboxSize,\r\n CheckboxColorScheme,\r\n} from \"./Checkbox.types\";\r\n\r\nexport type { CheckboxProps, CheckboxSize, CheckboxColorScheme };\r\n\r\nconst StyledCheckboxRoot = styled(\"label\", {\r\n name: \"ChellaaCheckbox\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"size\" &&\r\n prop !== \"colorScheme\" &&\r\n prop !== \"disabled\" &&\r\n prop !== \"readOnly\" &&\r\n prop !== \"error\" &&\r\n prop !== \"checked\" &&\r\n prop !== \"indeterminate\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})({});\r\n\r\n/**\r\n * Checkbox primitive with tri-state selection, custom color palettes,\r\n * keyboard accessibility, and automatic CheckboxGroup / FormField binding.\r\n *\r\n * @example\r\n * <Checkbox defaultChecked>Subscribe to updates</Checkbox>\r\n * <Checkbox indeterminate>Select all items</Checkbox>\r\n */\r\nexport const Checkbox = React.forwardRef<HTMLLabelElement, CheckboxProps>(\r\n function Checkbox(props, ref) {\r\n const group = useCheckboxGroup();\r\n const formField = useFormField();\r\n\r\n const {\r\n checked: checkedProp,\r\n defaultChecked = false,\r\n indeterminate = false,\r\n onChange: onChangeProp,\r\n value: valueProp,\r\n name: nameProp,\r\n size: sizeProp,\r\n colorScheme: colorSchemeProp,\r\n disabled: disabledProp,\r\n readOnly: readOnlyProp,\r\n required: requiredProp,\r\n error: errorProp,\r\n inputRef: inputRefProp,\r\n inputProps = {},\r\n asChild = false,\r\n component,\r\n as,\r\n children,\r\n className,\r\n style,\r\n sx,\r\n id: idProp,\r\n ...rest\r\n } = props;\r\n\r\n // Cascade resolution: Props > Group > FormField > Defaults\r\n const isGroupControlled = group !== undefined && valueProp !== undefined;\r\n const isCheckedInGroup = isGroupControlled\r\n ? group.value.includes(valueProp)\r\n : undefined;\r\n\r\n const checked =\r\n checkedProp !== undefined ? checkedProp : isCheckedInGroup;\r\n\r\n const size = sizeProp ?? group?.size ?? \"md\";\r\n const colorScheme = colorSchemeProp ?? group?.colorScheme ?? \"primary\";\r\n const disabled =\r\n disabledProp ?? group?.disabled ?? formField?.disabled ?? false;\r\n const readOnly =\r\n readOnlyProp ?? group?.readOnly ?? formField?.readOnly ?? false;\r\n const error = errorProp ?? group?.error ?? formField?.error ?? false;\r\n const required = requiredProp ?? formField?.required ?? false;\r\n const name = nameProp ?? group?.name ?? formField?.name;\r\n const id = idProp ?? (formField ? `${formField.id}-checkbox` : undefined);\r\n\r\n const [uncontrolledChecked, setUncontrolledChecked] = React.useState<boolean>(\r\n defaultChecked\r\n );\r\n\r\n const isControlled = checked !== undefined;\r\n const effectiveChecked = isControlled ? checked : uncontrolledChecked;\r\n\r\n const nativeInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const mergedInputRef = useMergeRefs(nativeInputRef, inputRefProp);\r\n\r\n React.useEffect(() => {\r\n if (nativeInputRef.current) {\r\n nativeInputRef.current.indeterminate = Boolean(indeterminate);\r\n }\r\n }, [indeterminate]);\r\n\r\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n if (disabled || readOnly) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n if (isGroupControlled) {\r\n group.toggleValue(valueProp);\r\n } else if (!isControlled) {\r\n setUncontrolledChecked(event.target.checked);\r\n }\r\n\r\n onChangeProp?.(event);\r\n };\r\n\r\n const checkboxClassName = classNames(\r\n \"cl-checkbox\",\r\n `cl-checkbox--${size}`,\r\n `cl-checkbox--${colorScheme}`,\r\n effectiveChecked && \"cl-checkbox--checked\",\r\n indeterminate && \"cl-checkbox--indeterminate\",\r\n disabled && \"cl-checkbox--disabled\",\r\n error && \"cl-checkbox--error\",\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n const controlBox = (\r\n <span className=\"cl-checkbox__control ChellaaCheckbox-Control\" aria-hidden=\"true\">\r\n {indeterminate ? (\r\n <svg\r\n className=\"cl-checkbox__icon ChellaaCheckbox-Icon ChellaaCheckbox-Icon--indeterminate\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"3.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n aria-hidden=\"true\"\r\n width={size === \"lg\" ? 18 : size === \"sm\" ? 12 : 14}\r\n height={size === \"lg\" ? 18 : size === \"sm\" ? 12 : 14}\r\n >\r\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\r\n </svg>\r\n ) : effectiveChecked ? (\r\n <svg\r\n className=\"cl-checkbox__icon ChellaaCheckbox-Icon ChellaaCheckbox-Icon--checked\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"3.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n aria-hidden=\"true\"\r\n width={size === \"lg\" ? 18 : size === \"sm\" ? 12 : 14}\r\n height={size === \"lg\" ? 18 : size === \"sm\" ? 12 : 14}\r\n >\r\n <polyline points=\"20 6 9 17 4 12\" />\r\n </svg>\r\n ) : null}\r\n </span>\r\n );\r\n\r\n const ariaDescribedBy = [\r\n inputProps[\"aria-describedby\"],\r\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\r\n formField?.hasHelperText ? formField.helperTextId : null,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \") || undefined;\r\n\r\n if (asChild) {\r\n return (\r\n <StyledCheckboxRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLLabelElement>}\r\n className={checkboxClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCheckboxRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledCheckboxRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLLabelElement>}\r\n className={checkboxClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n <input\r\n type=\"checkbox\"\r\n id={id}\r\n name={name}\r\n value={valueProp}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n required={required}\r\n checked={isControlled ? effectiveChecked : undefined}\r\n defaultChecked={!isControlled ? defaultChecked : undefined}\r\n onChange={handleChange}\r\n ref={mergedInputRef}\r\n aria-checked={indeterminate ? \"mixed\" : effectiveChecked}\r\n aria-invalid={error ? true : undefined}\r\n aria-describedby={ariaDescribedBy}\r\n className=\"cl-checkbox__input\"\r\n {...inputProps}\r\n />\r\n {controlBox}\r\n {children && (\r\n <span className=\"cl-checkbox__label ChellaaCheckbox-Label\">\r\n {children}\r\n </span>\r\n )}\r\n </StyledCheckboxRoot>\r\n );\r\n }\r\n);\r\n\r\nCheckbox.displayName = \"Checkbox\";\r\n","import * as React from \"react\";\n\nexport interface UseControllableStateParams<T> {\n value?: T | undefined;\n defaultValue?: T | (() => T) | undefined;\n onChange?: ((value: T) => void) | undefined;\n}\n\n/**\n * Manages state that can be either controlled (via `value`) or uncontrolled (via `defaultValue`).\n * When controlled, updates trigger `onChange` without mutating internal state directly.\n * When uncontrolled, internal state updates and `onChange` is notified.\n */\nexport function useControllableState<T>({\n value: valueProp,\n defaultValue,\n onChange,\n}: UseControllableStateParams<T>): [\n T,\n (nextValue: T | ((prev: T) => T)) => void,\n] {\n const isControlled = valueProp !== undefined;\n\n const [uncontrolledValue, setUncontrolledValue] = React.useState<T>(() => {\n if (defaultValue !== undefined) {\n return typeof defaultValue === \"function\"\n ? (defaultValue as () => T)()\n : defaultValue;\n }\n return undefined as unknown as T;\n });\n\n const value = isControlled ? (valueProp as T) : uncontrolledValue;\n\n const onChangeRef = React.useRef(onChange);\n React.useEffect(() => {\n onChangeRef.current = onChange;\n });\n\n const setValue = React.useCallback(\n (next: T | ((prev: T) => T)) => {\n const resolvedNext =\n typeof next === \"function\" ? (next as (prev: T) => T)(value) : next;\n\n if (!Object.is(value, resolvedNext)) {\n if (!isControlled) {\n setUncontrolledValue(resolvedNext);\n }\n onChangeRef.current?.(resolvedNext);\n }\n },\n [isControlled, value],\n );\n\n return [value, setValue];\n}\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport { useControllableState } from \"../../hooks/useControllableState\";\r\nimport { useFormField } from \"../FormField/FormFieldContext\";\r\nimport { CheckboxContext } from \"./CheckboxContext\";\r\nimport type { CheckboxGroupProps, CheckboxContextValue } from \"./Checkbox.types\";\r\n\r\ninterface StyledCheckboxGroupRootProps {\r\n orientation?: \"vertical\" | \"horizontal\" | undefined;\r\n spacing?: number | string | undefined;\r\n}\r\n\r\nconst StyledCheckboxGroupRoot = styled(\"div\", {\r\n name: \"ChellaaCheckboxGroup\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"orientation\" &&\r\n prop !== \"spacing\" &&\r\n prop !== \"colorScheme\" &&\r\n prop !== \"error\" &&\r\n prop !== \"disabled\" &&\r\n prop !== \"readOnly\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})<StyledCheckboxGroupRootProps>(({ theme, spacing = 2 }) => {\r\n const gapValue =\r\n typeof spacing === \"number\" ? theme.spacing(spacing) : spacing;\r\n\r\n return {\r\n gap: gapValue,\r\n };\r\n});\r\n\r\n/**\r\n * CheckboxGroup manages selection state for a set of related checkboxes,\r\n * cascading shared properties and orchestrating multi-selection arrays.\r\n *\r\n * @example\r\n * <CheckboxGroup defaultValue={['react']} onChange={(val) => console.log(val)}>\r\n * <Checkbox value=\"react\">React</Checkbox>\r\n * <Checkbox value=\"vue\">Vue</Checkbox>\r\n * <Checkbox value=\"svelte\">Svelte</Checkbox>\r\n * </CheckboxGroup>\r\n */\r\nexport const CheckboxGroup = React.forwardRef<\r\n HTMLDivElement,\r\n CheckboxGroupProps\r\n>(function CheckboxGroup(props, ref) {\r\n const formField = useFormField();\r\n\r\n const {\r\n value: valueProp,\r\n defaultValue = [],\r\n onChange: onChangeProp,\r\n name: nameProp,\r\n size = \"md\",\r\n colorScheme = \"primary\",\r\n orientation = \"vertical\",\r\n spacing = 2,\r\n disabled: disabledProp,\r\n readOnly: readOnlyProp,\r\n error: errorProp,\r\n asChild = false,\r\n component,\r\n as,\r\n children,\r\n className,\r\n style,\r\n sx,\r\n ...rest\r\n } = props;\r\n\r\n const name = nameProp ?? formField?.name;\r\n const disabled = disabledProp ?? formField?.disabled ?? false;\r\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\r\n const error = errorProp ?? formField?.error ?? false;\r\n\r\n const [value, setValue] = useControllableState<string[]>({\r\n value: valueProp,\r\n defaultValue,\r\n onChange: onChangeProp,\r\n });\r\n\r\n const toggleValue = React.useCallback(\r\n (itemValue: string) => {\r\n if (readOnly || disabled) return;\r\n const current = value || [];\r\n const next = current.includes(itemValue)\r\n ? current.filter((v) => v !== itemValue)\r\n : [...current, itemValue];\r\n setValue(next);\r\n },\r\n [value, setValue, readOnly, disabled]\r\n );\r\n\r\n const contextValue: CheckboxContextValue = React.useMemo(\r\n () => ({\r\n value: value || [],\r\n name,\r\n size,\r\n colorScheme,\r\n disabled,\r\n readOnly,\r\n error,\r\n toggleValue,\r\n }),\r\n [value, name, size, colorScheme, disabled, readOnly, error, toggleValue]\r\n );\r\n\r\n const groupClassName = classNames(\r\n \"cl-checkbox-group\",\r\n `cl-checkbox-group--${orientation}`,\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n if (asChild) {\r\n return (\r\n <CheckboxContext.Provider value={contextValue}>\r\n <StyledCheckboxGroupRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n role=\"group\"\r\n orientation={orientation}\r\n spacing={spacing}\r\n className={groupClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCheckboxGroupRoot>\r\n </CheckboxContext.Provider>\r\n );\r\n }\r\n\r\n return (\r\n <CheckboxContext.Provider value={contextValue}>\r\n <StyledCheckboxGroupRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n role=\"group\"\r\n orientation={orientation}\r\n spacing={spacing}\r\n className={groupClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCheckboxGroupRoot>\r\n </CheckboxContext.Provider>\r\n );\r\n});\r\n\r\nCheckboxGroup.displayName = \"CheckboxGroup\";\r\n","import * as React from \"react\";\r\nimport type { RadioContextValue } from \"./Radio.types\";\r\n\r\nexport const RadioContext = React.createContext<\r\n RadioContextValue | undefined\r\n>(undefined);\r\n\r\n/**\r\n * Hook to consume parent RadioGroup context.\r\n * Returns undefined if the radio is rendered standalone.\r\n */\r\nexport function useRadioGroup(): RadioContextValue | undefined {\r\n return React.useContext(RadioContext);\r\n}\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\r\nimport { useRadioGroup } from \"./RadioContext\";\r\nimport { useFormField } from \"../FormField/FormFieldContext\";\r\nimport type {\r\n RadioProps,\r\n RadioSize,\r\n RadioColorScheme,\r\n} from \"./Radio.types\";\r\n\r\nexport type { RadioProps, RadioSize, RadioColorScheme };\r\n\r\nconst StyledRadioRoot = styled(\"label\", {\r\n name: \"ChellaaRadio\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"size\" &&\r\n prop !== \"colorScheme\" &&\r\n prop !== \"disabled\" &&\r\n prop !== \"readOnly\" &&\r\n prop !== \"error\" &&\r\n prop !== \"checked\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})({});\r\n\r\n/**\r\n * Radio primitive for single-choice selection with animated circular dot indicator,\r\n * accessible keyboard arrow navigation, and automatic RadioGroup / FormField binding.\r\n *\r\n * @example\r\n * <Radio value=\"express\">Express Delivery</Radio>\r\n */\r\nexport const Radio = React.forwardRef<HTMLLabelElement, RadioProps>(\r\n function Radio(props, ref) {\r\n const group = useRadioGroup();\r\n const formField = useFormField();\r\n\r\n const {\r\n checked: checkedProp,\r\n defaultChecked = false,\r\n onChange: onChangeProp,\r\n value: valueProp,\r\n name: nameProp,\r\n size: sizeProp,\r\n colorScheme: colorSchemeProp,\r\n disabled: disabledProp,\r\n readOnly: readOnlyProp,\r\n required: requiredProp,\r\n error: errorProp,\r\n inputRef: inputRefProp,\r\n inputProps = {},\r\n asChild = false,\r\n component,\r\n as,\r\n children,\r\n className,\r\n style,\r\n sx,\r\n id: idProp,\r\n ...rest\r\n } = props;\r\n\r\n const isGroupControlled = group !== undefined && valueProp !== undefined;\r\n const isCheckedInGroup = isGroupControlled\r\n ? group.value !== undefined && String(group.value) === String(valueProp)\r\n : undefined;\r\n\r\n const checked =\r\n checkedProp !== undefined ? checkedProp : isCheckedInGroup;\r\n\r\n const size = sizeProp ?? group?.size ?? \"md\";\r\n const colorScheme = colorSchemeProp ?? group?.colorScheme ?? \"primary\";\r\n const disabled =\r\n disabledProp ?? group?.disabled ?? formField?.disabled ?? false;\r\n const readOnly =\r\n readOnlyProp ?? group?.readOnly ?? formField?.readOnly ?? false;\r\n const error = errorProp ?? group?.error ?? formField?.error ?? false;\r\n const required = requiredProp ?? formField?.required ?? false;\r\n const name = nameProp ?? group?.name ?? formField?.name;\r\n const id = idProp ?? (formField ? `${formField.id}-radio-${valueProp ?? \"\"}` : undefined);\r\n\r\n const [uncontrolledChecked, setUncontrolledChecked] = React.useState<boolean>(\r\n defaultChecked\r\n );\r\n\r\n const isControlled = checked !== undefined;\r\n const effectiveChecked = isControlled ? checked : uncontrolledChecked;\r\n\r\n const nativeInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const mergedInputRef = useMergeRefs(nativeInputRef, inputRefProp);\r\n\r\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n if (disabled || readOnly) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n if (isGroupControlled && valueProp !== undefined) {\r\n group.onChange(valueProp);\r\n } else if (!isControlled) {\r\n setUncontrolledChecked(event.target.checked);\r\n }\r\n\r\n onChangeProp?.(event);\r\n };\r\n\r\n const radioClassName = classNames(\r\n \"cl-radio\",\r\n `cl-radio--${size}`,\r\n `cl-radio--${colorScheme}`,\r\n effectiveChecked && \"cl-radio--checked\",\r\n disabled && \"cl-radio--disabled\",\r\n error && \"cl-radio--error\",\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n const controlBox = (\r\n <span className=\"cl-radio__control ChellaaRadio-Control\" aria-hidden=\"true\">\r\n <span className=\"cl-radio__dot ChellaaRadio-Dot\" />\r\n </span>\r\n );\r\n\r\n const ariaDescribedBy = [\r\n inputProps[\"aria-describedby\"],\r\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\r\n formField?.hasHelperText ? formField.helperTextId : null,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \") || undefined;\r\n\r\n if (asChild) {\r\n return (\r\n <StyledRadioRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLLabelElement>}\r\n className={radioClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledRadioRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledRadioRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLLabelElement>}\r\n className={radioClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n <input\r\n type=\"radio\"\r\n id={id}\r\n name={name}\r\n value={valueProp}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n required={required}\r\n checked={isControlled ? effectiveChecked : undefined}\r\n defaultChecked={!isControlled ? defaultChecked : undefined}\r\n onChange={handleChange}\r\n ref={mergedInputRef}\r\n aria-invalid={error ? true : undefined}\r\n aria-describedby={ariaDescribedBy}\r\n className=\"cl-radio__input\"\r\n {...inputProps}\r\n />\r\n {controlBox}\r\n {children && (\r\n <span className=\"cl-radio__label ChellaaRadio-Label\">\r\n {children}\r\n </span>\r\n )}\r\n </StyledRadioRoot>\r\n );\r\n }\r\n);\r\n\r\nRadio.displayName = \"Radio\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport { useControllableState } from \"../../hooks/useControllableState\";\r\nimport { useFormField } from \"../FormField/FormFieldContext\";\r\nimport { RadioContext } from \"./RadioContext\";\r\nimport type { RadioGroupProps, RadioContextValue } from \"./Radio.types\";\r\n\r\nconst StyledRadioGroupRoot = styled(\"div\", {\r\n name: \"ChellaaRadioGroup\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"orientation\" &&\r\n prop !== \"spacing\" &&\r\n prop !== \"colorScheme\" &&\r\n prop !== \"error\" &&\r\n prop !== \"disabled\" &&\r\n prop !== \"readOnly\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})({});\r\n\r\n/**\r\n * RadioGroup manages single-selection state across a group of mutually exclusive Radios,\r\n * providing native roving keyboard navigation and shared property cascade.\r\n *\r\n * @example\r\n * <RadioGroup defaultValue=\"standard\" onChange={(val) => console.log(val)}>\r\n * <Radio value=\"standard\">Standard Shipping (3-5 days)</Radio>\r\n * <Radio value=\"express\">Express Shipping (1-2 days)</Radio>\r\n * <Radio value=\"overnight\">Overnight Delivery</Radio>\r\n * </RadioGroup>\r\n */\r\nexport const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\r\n function RadioGroup(props, ref) {\r\n const formField = useFormField();\r\n\r\n const {\r\n value: valueProp,\r\n defaultValue,\r\n onChange: onChangeProp,\r\n name: nameProp,\r\n size = \"md\",\r\n colorScheme = \"primary\",\r\n orientation = \"vertical\",\r\n spacing = 2,\r\n disabled: disabledProp,\r\n readOnly: readOnlyProp,\r\n error: errorProp,\r\n asChild = false,\r\n component,\r\n as,\r\n children,\r\n className,\r\n style,\r\n sx,\r\n ...rest\r\n } = props;\r\n\r\n const generatedName = React.useId();\r\n const name = nameProp || formField?.name || generatedName;\r\n const disabled = disabledProp ?? formField?.disabled ?? false;\r\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\r\n const error = errorProp ?? formField?.error ?? false;\r\n\r\n const [value, setValue] = useControllableState<string | number | undefined>({\r\n value: valueProp,\r\n defaultValue,\r\n onChange: (val) => {\r\n if (val !== undefined) {\r\n onChangeProp?.(val);\r\n }\r\n },\r\n });\r\n\r\n const handleChange = React.useCallback(\r\n (nextValue: string | number) => {\r\n if (readOnly || disabled) return;\r\n setValue(nextValue);\r\n },\r\n [readOnly, disabled, setValue]\r\n );\r\n\r\n const contextValue: RadioContextValue = React.useMemo(\r\n () => ({\r\n value,\r\n name,\r\n size,\r\n colorScheme,\r\n disabled,\r\n readOnly,\r\n error,\r\n onChange: handleChange,\r\n }),\r\n [value, name, size, colorScheme, disabled, readOnly, error, handleChange]\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n const groupClassName = classNames(\r\n \"cl-radio-group\",\r\n orientation === \"horizontal\"\r\n ? \"cl-radio-group--horizontal\"\r\n : \"cl-radio-group--vertical\",\r\n className\r\n );\r\n\r\n const gapStyle =\r\n spacing !== undefined\r\n ? {\r\n gap: typeof spacing === \"number\" ? `${spacing * 4}px` : spacing,\r\n ...style,\r\n }\r\n : style;\r\n\r\n if (asChild) {\r\n return (\r\n <RadioContext.Provider value={contextValue}>\r\n <StyledRadioGroupRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n role=\"radiogroup\"\r\n className={groupClassName}\r\n style={gapStyle}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledRadioGroupRoot>\r\n </RadioContext.Provider>\r\n );\r\n }\r\n\r\n return (\r\n <RadioContext.Provider value={contextValue}>\r\n <StyledRadioGroupRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n role=\"radiogroup\"\r\n className={groupClassName}\r\n style={gapStyle}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledRadioGroupRoot>\r\n </RadioContext.Provider>\r\n );\r\n }\r\n);\r\n\r\nRadioGroup.displayName = \"RadioGroup\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\r\nimport { useFormField } from \"../FormField/FormFieldContext\";\r\nimport type {\r\n SwitchProps,\r\n SwitchSize,\r\n SwitchColorScheme,\r\n SwitchLabelPlacement,\r\n} from \"./Switch.types\";\r\n\r\nexport type {\r\n SwitchProps,\r\n SwitchSize,\r\n SwitchColorScheme,\r\n SwitchLabelPlacement,\r\n};\r\n\r\nconst StyledSwitchRoot = styled(\"label\", {\r\n name: \"ChellaaSwitch\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"size\" &&\r\n prop !== \"labelPlacement\" &&\r\n prop !== \"disabled\" &&\r\n prop !== \"readOnly\" &&\r\n prop !== \"error\" &&\r\n prop !== \"loading\" &&\r\n prop !== \"checked\" &&\r\n prop !== \"colorScheme\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})({});\r\n\r\n/**\r\n * Switch primitive representing an immediate binary toggle setting.\r\n * Conforms to the W3C WAI-ARIA 1.2 Switch Pattern (`role=\"switch\"`).\r\n *\r\n * @example\r\n * <Switch defaultChecked>Enable Notifications</Switch>\r\n */\r\nexport const Switch = React.forwardRef<HTMLLabelElement, SwitchProps>(\r\n function Switch(props, ref) {\r\n const formField = useFormField();\r\n\r\n const {\r\n checked: checkedProp,\r\n defaultChecked = false,\r\n onChange: onChangeProp,\r\n value,\r\n name: nameProp,\r\n size = \"md\",\r\n colorScheme = \"primary\",\r\n disabled: disabledProp,\r\n readOnly: readOnlyProp,\r\n required: requiredProp,\r\n error: errorProp,\r\n loading = false,\r\n checkedIcon,\r\n uncheckedIcon,\r\n labelPlacement = \"end\",\r\n inputRef: inputRefProp,\r\n inputProps = {},\r\n asChild = false,\r\n component,\r\n as,\r\n children,\r\n className,\r\n style,\r\n sx,\r\n id: idProp,\r\n ...rest\r\n } = props;\r\n\r\n const disabled =\r\n disabledProp ?? formField?.disabled ?? loading ? true : false;\r\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\r\n const error = errorProp ?? formField?.error ?? false;\r\n const required = requiredProp ?? formField?.required ?? false;\r\n const name = nameProp ?? formField?.name;\r\n const id = idProp ?? (formField ? `${formField.id}-switch` : undefined);\r\n\r\n const [uncontrolledChecked, setUncontrolledChecked] = React.useState<boolean>(\r\n defaultChecked\r\n );\r\n\r\n const isControlled = checkedProp !== undefined;\r\n const effectiveChecked = isControlled ? checkedProp : uncontrolledChecked;\r\n\r\n const nativeInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const mergedInputRef = useMergeRefs(nativeInputRef, inputRefProp);\r\n\r\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n if (disabled || readOnly || loading) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n if (!isControlled) {\r\n setUncontrolledChecked(event.target.checked);\r\n }\r\n\r\n onChangeProp?.(event);\r\n };\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (event.key === \"Enter\") {\r\n event.preventDefault();\r\n if (!disabled && !readOnly && !loading) {\r\n nativeInputRef.current?.click();\r\n }\r\n } else if (event.key === \" \" && (readOnly || loading)) {\r\n event.preventDefault();\r\n }\r\n inputProps.onKeyDown?.(event);\r\n };\r\n\r\n const switchClassName = classNames(\r\n \"cl-switch\",\r\n `cl-switch--${size}`,\r\n `cl-switch--${colorScheme}`,\r\n `cl-switch--placement-${labelPlacement}`,\r\n effectiveChecked && \"cl-switch--checked\",\r\n disabled && \"cl-switch--disabled\",\r\n error && \"cl-switch--error\",\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n const thumbIcon = loading ? (\r\n <svg\r\n className=\"cl-switch__spinner\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <circle\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"9\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"3\"\r\n strokeDasharray=\"40 20\"\r\n strokeLinecap=\"round\"\r\n />\r\n </svg>\r\n ) : effectiveChecked ? (\r\n checkedIcon\r\n ) : (\r\n uncheckedIcon\r\n );\r\n\r\n const trackControl = (\r\n <span className=\"cl-switch__track ChellaaSwitch-Track\" aria-hidden=\"true\">\r\n <span className=\"cl-switch__thumb ChellaaSwitch-Thumb\">\r\n {thumbIcon}\r\n </span>\r\n </span>\r\n );\r\n\r\n const ariaDescribedBy = [\r\n inputProps[\"aria-describedby\"],\r\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\r\n formField?.hasHelperText ? formField.helperTextId : null,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \") || undefined;\r\n\r\n if (asChild) {\r\n return (\r\n <StyledSwitchRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLLabelElement>}\r\n className={switchClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledSwitchRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledSwitchRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLLabelElement>}\r\n className={switchClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n <input\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n id={id}\r\n name={name}\r\n value={value}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n required={required}\r\n checked={isControlled ? effectiveChecked : undefined}\r\n defaultChecked={!isControlled ? defaultChecked : undefined}\r\n onChange={handleChange}\r\n onKeyDown={handleKeyDown}\r\n ref={mergedInputRef}\r\n aria-checked={effectiveChecked}\r\n aria-invalid={error ? true : undefined}\r\n aria-describedby={ariaDescribedBy}\r\n className=\"cl-switch__input\"\r\n {...inputProps}\r\n />\r\n {trackControl}\r\n {children && (\r\n <span className=\"cl-switch__label ChellaaSwitch-Label\">\r\n {children}\r\n </span>\r\n )}\r\n </StyledSwitchRoot>\r\n );\r\n }\r\n);\r\n\r\nSwitch.displayName = \"Switch\";\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\n\r\nimport type {\r\n PaperVariant,\r\n PaperOwnerState,\r\n PaperProps,\r\n} from \"./Paper.types\";\r\n\r\nexport type { PaperVariant, PaperOwnerState, PaperProps };\r\n\r\nconst StyledPaperRoot = styled(\"div\", {\r\n name: \"ChellaaPaper\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"elevation\" &&\r\n prop !== \"variant\" &&\r\n prop !== \"square\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})({});\r\n\r\n/**\r\n * Material Paper elevation surface container with 24-level elevation shadows,\r\n * dark-mode surface elevation overlays, and outlined variants.\r\n *\r\n * @example\r\n * <Paper elevation={3} sx={{ p: 2 }}>\r\n * Elevated Content\r\n * </Paper>\r\n */\r\nexport const Paper = React.forwardRef<HTMLElement, PaperProps>(\r\n function Paper(props, ref) {\r\n const {\r\n asChild = false,\r\n component,\r\n as,\r\n elevation = 1,\r\n variant = \"elevation\",\r\n square = false,\r\n className,\r\n style,\r\n sx,\r\n children,\r\n ...rest\r\n } = props;\r\n\r\n const clampedElevation = Math.max(0, Math.min(24, elevation));\r\n\r\n const paperClassName = classNames(\r\n \"cl-paper\",\r\n square && \"cl-paper--square\",\r\n variant === \"outlined\" ? \"cl-paper--outlined\" : `cl-paper--elevation-${clampedElevation}`,\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n if (asChild) {\r\n return (\r\n <StyledPaperRoot\r\n as={Slot}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={paperClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledPaperRoot>\r\n );\r\n }\r\n\r\n if (targetTag) {\r\n return (\r\n <StyledPaperRoot\r\n as={targetTag}\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={paperClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledPaperRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledPaperRoot\r\n ref={ref as React.Ref<HTMLDivElement>}\r\n className={paperClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledPaperRoot>\r\n );\r\n }\r\n);\r\n\r\nPaper.displayName = \"Paper\";\r\n","import * as React from \"react\";\r\nimport type { CardSize } from \"./Card.types\";\r\n\r\n/**\r\n * Internal context propagating Card root's `size` prop to all sub-components\r\n * (CardHeader, CardBody, CardFooter, CardActions) so they produce consistent\r\n * padding without consumers having to pass `size` to every child.\r\n */\r\nexport interface CardContextValue {\r\n size: CardSize;\r\n}\r\n\r\nexport const CardContext = React.createContext<CardContextValue>({\r\n size: \"md\",\r\n});\r\n\r\nexport function useCardContext(): CardContextValue {\r\n return React.useContext(CardContext);\r\n}\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { styled } from \"../../system/styled\";\r\nimport { Slot } from \"../../primitives/Slot\";\r\nimport { classNames } from \"../../utils/classNames\";\r\nimport { CardContext } from \"./CardContext\";\r\nimport type {\r\n CardProps,\r\n CardHeaderProps,\r\n CardTitleProps,\r\n CardDescriptionProps,\r\n CardMediaProps,\r\n CardBodyProps,\r\n CardFooterProps,\r\n CardActionsProps,\r\n} from \"./Card.types\";\r\n\r\n// ─── Card Root Styled Component ──────────────────────────────────────────────\r\n\r\nconst StyledCardRoot = styled(\"div\", {\r\n name: \"ChellaaCard\",\r\n slot: \"Root\",\r\n shouldForwardProp: (prop) =>\r\n prop !== \"variant\" &&\r\n prop !== \"elevation\" &&\r\n prop !== \"hoverable\" &&\r\n prop !== \"square\" &&\r\n prop !== \"size\" &&\r\n prop !== \"asChild\" &&\r\n prop !== \"component\",\r\n})({});\r\n\r\n// ─── Card Component ──────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Material Design 3-aligned surface container with compound sub-components.\r\n * Supports 3 visual variants, numeric M3 elevation, dark-mode overlay tinting,\r\n * and an optional hoverable lift mode.\r\n *\r\n * @example\r\n * <Card hoverable>\r\n * <CardMedia image=\"/hero.jpg\" alt=\"Hero\" />\r\n * <CardHeader title=\"Title\" subheader=\"Subtitle\" />\r\n * <CardBody>Content here</CardBody>\r\n * <CardActions>\r\n * <Button>Action</Button>\r\n * </CardActions>\r\n * </Card>\r\n */\r\nexport const CardRoot = React.forwardRef<HTMLDivElement, CardProps>(\r\n function CardRoot(props, ref) {\r\n const {\r\n variant = \"elevated\",\r\n elevation = 1,\r\n size = \"md\",\r\n hoverable = false,\r\n isClickable = false,\r\n square = false,\r\n asChild = false,\r\n component,\r\n as,\r\n className,\r\n style,\r\n sx,\r\n children,\r\n ...rest\r\n } = props;\r\n\r\n const normalizedVariant = variant === \"outline\" ? \"outlined\" : variant;\r\n\r\n const cardClassName = classNames(\r\n \"cl-card\",\r\n `cl-card--${size}`,\r\n `cl-card--${normalizedVariant}`,\r\n variant === \"outline\" && \"cl-card--outline\",\r\n square && \"cl-card--square\",\r\n (hoverable || isClickable) && \"cl-card--hoverable\",\r\n isClickable && \"cl-card--clickable\",\r\n className\r\n );\r\n\r\n const targetTag = component || as;\r\n\r\n return (\r\n <CardContext.Provider value={{ size }}>\r\n {asChild ? (\r\n <StyledCardRoot\r\n as={Slot}\r\n ref={ref}\r\n className={cardClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCardRoot>\r\n ) : (\r\n <StyledCardRoot\r\n as={targetTag}\r\n ref={ref}\r\n className={cardClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCardRoot>\r\n )}\r\n </CardContext.Provider>\r\n );\r\n }\r\n);\r\n\r\nCardRoot.displayName = \"Card\";\r\n\r\n// ─── CardHeader Styled Components ────────────────────────────────────────────\r\n\r\nconst StyledCardHeaderRoot = styled(\"div\", {\r\n name: \"ChellaaCard\",\r\n slot: \"Header\",\r\n shouldForwardProp: (prop) => prop !== \"cardSize\" && prop !== \"asChild\",\r\n})({});\r\n\r\n// ─── CardHeader Component ────────────────────────────────────────────────────\r\n\r\n/**\r\n * Header zone of a Card. Supports avatar, title, subheader, and trailing action slots.\r\n * Automatically inherits `size` from the parent Card via CardContext.\r\n */\r\nexport const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(\r\n function CardHeader(props, ref) {\r\n const {\r\n avatar,\r\n action,\r\n title,\r\n subheader,\r\n titleTypographyProps,\r\n subheaderTypographyProps,\r\n asChild = false,\r\n className,\r\n style,\r\n sx,\r\n children,\r\n ...rest\r\n } = props;\r\n\r\n const headerClassName = classNames(\r\n \"cl-card__header\",\r\n \"ChellaaCard-header\",\r\n className\r\n );\r\n\r\n if (asChild) {\r\n return (\r\n <StyledCardHeaderRoot\r\n as={Slot}\r\n ref={ref}\r\n className={headerClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCardHeaderRoot>\r\n );\r\n }\r\n\r\n return (\r\n <StyledCardHeaderRoot\r\n ref={ref}\r\n className={headerClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {avatar && (\r\n <div className=\"cl-card__header-avatar ChellaaCard-headerAvatar\">\r\n {avatar}\r\n </div>\r\n )}\r\n <div className=\"cl-card__header-content ChellaaCard-headerContent\">\r\n {title != null && (\r\n <span\r\n className={classNames(\r\n \"cl-card__header-title\",\r\n \"ChellaaCard-headerTitle\",\r\n titleTypographyProps?.className\r\n )}\r\n {...titleTypographyProps}\r\n >\r\n {title}\r\n </span>\r\n )}\r\n {subheader != null && (\r\n <span\r\n className={classNames(\r\n \"cl-card__header-subheader\",\r\n \"ChellaaCard-headerSubheader\",\r\n subheaderTypographyProps?.className\r\n )}\r\n {...subheaderTypographyProps}\r\n >\r\n {subheader}\r\n </span>\r\n )}\r\n {children}\r\n </div>\r\n {action && (\r\n <div className=\"cl-card__header-action ChellaaCard-headerAction\">\r\n {action}\r\n </div>\r\n )}\r\n </StyledCardHeaderRoot>\r\n );\r\n }\r\n);\r\n\r\nCardHeader.displayName = \"CardHeader\";\r\n\r\n// ─── CardMedia Styled Component ──────────────────────────────────────────────\r\n\r\nconst StyledCardMediaRoot = styled(\"div\", {\r\n name: \"ChellaaCard\",\r\n slot: \"Media\",\r\n shouldForwardProp: (prop) => prop !== \"image\" && prop !== \"aspectRatio\",\r\n})({});\r\n\r\n// ─── CardMedia Component ─────────────────────────────────────────────────────\r\n\r\n/**\r\n * Aspect-ratio-locked media zone that bleeds edge-to-edge within the card.\r\n * Use the `image` prop for a CSS background shorthand, or place an `<img>`\r\n * child for semantic HTML (preferred for accessibility).\r\n */\r\nexport const CardMedia = React.forwardRef<HTMLDivElement, CardMediaProps>(\r\n function CardMedia(props, ref) {\r\n const {\r\n image,\r\n alt,\r\n aspectRatio = \"16/9\",\r\n component,\r\n className,\r\n style,\r\n sx,\r\n children,\r\n ...rest\r\n } = props;\r\n\r\n const mediaStyle: React.CSSProperties = {\r\n ...(aspectRatio ? { aspectRatio } : {}),\r\n ...(image ? { backgroundImage: `url(${image})` } : {}),\r\n ...style,\r\n };\r\n\r\n const mediaClassName = classNames(\r\n \"cl-card__media\",\r\n \"ChellaaCard-media\",\r\n className\r\n );\r\n\r\n return (\r\n <StyledCardMediaRoot\r\n as={component}\r\n ref={ref}\r\n className={mediaClassName}\r\n style={mediaStyle}\r\n sx={sx}\r\n role={image && !children ? \"img\" : undefined}\r\n aria-label={image && !children ? alt : undefined}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCardMediaRoot>\r\n );\r\n }\r\n);\r\n\r\nCardMedia.displayName = \"CardMedia\";\r\n\r\n// ─── CardBody Styled Component ───────────────────────────────────────────────\r\n\r\nconst StyledCardBodyRoot = styled(\"div\", {\r\n name: \"ChellaaCard\",\r\n slot: \"Body\",\r\n shouldForwardProp: (prop) => prop !== \"cardSize\",\r\n})({});\r\n\r\n// ─── CardBody Component ──────────────────────────────────────────────────────\r\n\r\n/**\r\n * Main flexible content zone of a Card.\r\n * Inherits `size` from parent Card for consistent padding.\r\n */\r\nexport const CardBody = React.forwardRef<HTMLDivElement, CardBodyProps>(\r\n function CardBody(props, ref) {\r\n const { children, className, style, sx, ...rest } = props;\r\n const bodyClassName = classNames(\"cl-card__body\", \"ChellaaCard-body\", className);\r\n\r\n return (\r\n <StyledCardBodyRoot\r\n ref={ref}\r\n className={bodyClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCardBodyRoot>\r\n );\r\n }\r\n);\r\n\r\nCardBody.displayName = \"CardBody\";\r\n\r\n// ─── CardFooter Styled Component ─────────────────────────────────────────────\r\n\r\nconst StyledCardFooterRoot = styled(\"div\", {\r\n name: \"ChellaaCard\",\r\n slot: \"Footer\",\r\n shouldForwardProp: (prop) => prop !== \"divider\" && prop !== \"cardSize\",\r\n})({});\r\n\r\n// ─── CardFooter Component ────────────────────────────────────────────────────\r\n\r\n/**\r\n * Semantic footer zone of a Card. Use for metadata, tags, timestamps.\r\n * Set `divider` to render a 1px separator between the body and footer.\r\n */\r\nexport const CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(\r\n function CardFooter(props, ref) {\r\n const { divider = false, children, className, style, sx, ...rest } = props;\r\n const footerClassName = classNames(\r\n \"cl-card__footer\",\r\n \"ChellaaCard-footer\",\r\n divider && \"cl-card__footer--divider\",\r\n className\r\n );\r\n\r\n return (\r\n <StyledCardFooterRoot\r\n ref={ref}\r\n className={footerClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCardFooterRoot>\r\n );\r\n }\r\n);\r\n\r\nCardFooter.displayName = \"CardFooter\";\r\n\r\n// ─── CardActions Styled Component ────────────────────────────────────────────\r\n\r\nconst StyledCardActionsRoot = styled(\"div\", {\r\n name: \"ChellaaCard\",\r\n slot: \"Actions\",\r\n shouldForwardProp: (prop) => prop !== \"disableSpacing\" && prop !== \"cardSize\",\r\n})({});\r\n\r\n// ─── CardActions Component ───────────────────────────────────────────────────\r\n\r\n/**\r\n * Flex action strip for Button / Link controls inside a Card.\r\n * By default applies a slight negative margin to align icon-buttons\r\n * flush to the card's padding box. Use `disableSpacing` to remove this.\r\n */\r\nexport const CardActions = React.forwardRef<HTMLDivElement, CardActionsProps>(\r\n function CardActions(props, ref) {\r\n const {\r\n disableSpacing = false,\r\n align = \"start\",\r\n children,\r\n className,\r\n style,\r\n sx,\r\n ...rest\r\n } = props;\r\n const actionsClassName = classNames(\r\n \"cl-card__actions\",\r\n \"ChellaaCard-actions\",\r\n `cl-card__actions--align-${align}`,\r\n disableSpacing && \"cl-card__actions--disable-spacing\",\r\n className\r\n );\r\n\r\n return (\r\n <StyledCardActionsRoot\r\n ref={ref}\r\n className={actionsClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCardActionsRoot>\r\n );\r\n }\r\n);\r\n\r\nCardActions.displayName = \"CardActions\";\r\n\r\n// ─── CardTitle Styled Component ──────────────────────────────────────────────\r\n\r\nconst StyledCardTitleRoot = styled(\"h3\", {\r\n name: \"ChellaaCard\",\r\n slot: \"Title\",\r\n shouldForwardProp: (prop) => prop !== \"asChild\",\r\n})({});\r\n\r\n// ─── CardTitle Component ─────────────────────────────────────────────────────\r\n\r\n/**\r\n * Semantic heading component for a Card, typically rendered inside CardHeader.\r\n * Supports `asChild` for slot delegation to custom heading levels.\r\n */\r\nexport const CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(\r\n function CardTitle({ asChild = false, className, children, style, sx, ...rest }, ref) {\r\n const titleClassName = classNames(\"cl-card__title\", className);\r\n if (asChild) {\r\n return (\r\n <StyledCardTitleRoot\r\n as={Slot}\r\n ref={ref}\r\n className={titleClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCardTitleRoot>\r\n );\r\n }\r\n return (\r\n <StyledCardTitleRoot\r\n ref={ref}\r\n className={titleClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCardTitleRoot>\r\n );\r\n }\r\n);\r\n\r\nCardTitle.displayName = \"CardTitle\";\r\n\r\n// ─── CardDescription Styled Component ────────────────────────────────────────\r\n\r\nconst StyledCardDescriptionRoot = styled(\"p\", {\r\n name: \"ChellaaCard\",\r\n slot: \"Description\",\r\n shouldForwardProp: (prop) => prop !== \"asChild\",\r\n})({});\r\n\r\n// ─── CardDescription Component ───────────────────────────────────────────────\r\n\r\n/**\r\n * Supporting subtext or subtitle paragraph for a Card.\r\n * Supports `asChild` for slot delegation.\r\n */\r\nexport const CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionProps>(\r\n function CardDescription({ asChild = false, className, children, style, sx, ...rest }, ref) {\r\n const descClassName = classNames(\"cl-card__description\", \"cl-card__desc\", className);\r\n if (asChild) {\r\n return (\r\n <StyledCardDescriptionRoot\r\n as={Slot}\r\n ref={ref}\r\n className={descClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCardDescriptionRoot>\r\n );\r\n }\r\n return (\r\n <StyledCardDescriptionRoot\r\n ref={ref}\r\n className={descClassName}\r\n style={style}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {children}\r\n </StyledCardDescriptionRoot>\r\n );\r\n }\r\n);\r\n\r\nCardDescription.displayName = \"CardDescription\";\r\n\r\n// ─── Compound Export ─────────────────────────────────────────────────────────\r\n\r\nexport const Card = Object.assign(CardRoot, {\r\n Root: CardRoot,\r\n Header: CardHeader,\r\n Title: CardTitle,\r\n Description: CardDescription,\r\n Body: CardBody,\r\n Footer: CardFooter,\r\n Media: CardMedia,\r\n Actions: CardActions,\r\n});\r\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\n\nexport interface PortalProps {\n children?: React.ReactNode;\n container?: HTMLElement | null;\n}\n\n/**\n * Renders child elements into a DOM container outside the parent component tree (default: document.body).\n * Preserves React Context across the portal boundary and is completely SSR/hydration safe.\n */\nexport function Portal({\n children,\n container,\n}: PortalProps): React.ReactPortal | null {\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n setMounted(true);\n return () => setMounted(false);\n }, []);\n\n if (!mounted) {\n return null;\n }\n\n const portalContainer =\n container ?? (typeof document !== \"undefined\" ? document.body : null);\n\n if (!portalContainer) {\n return null;\n }\n\n return ReactDOM.createPortal(children, portalContainer);\n}\n\nPortal.displayName = \"Portal\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n arrow,\n useHover,\n useFocus,\n useDismiss,\n useRole,\n useInteractions,\n safePolygon,\n} from \"@floating-ui/react\";\nimport { Portal } from \"../../primitives/Portal\";\nimport { Kbd } from \"../Kbd\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { classNames } from \"../../utils/classNames\";\nimport { getElementRef } from \"../../utils/getElementRef\";\nimport type { TooltipProps } from \"./Tooltip.types\";\n\n/**\n * Tooltip provides a lightweight, accessible floating text popup anchored to a target\n * trigger element, triggered via pointer hover or keyboard focus.\n *\n * Conforms to WCAG 2.2 AA (SC 1.4.13 Content on Hover or Focus) and WAI-ARIA APG Tooltip Pattern.\n */\nexport const Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>(\n function Tooltip(\n {\n content,\n children,\n placement = \"top\",\n openDelay = 200,\n closeDelay = 150,\n isOpen: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n hasArrow = true,\n isDisabled = false,\n offset: offsetProp = 8,\n shortcut,\n className,\n style,\n },\n forwardedRef,\n ) {\n const [isOpen, setIsOpen] = useControllableState<boolean>({\n value: controlledOpen,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n });\n\n const isEffectivelyOpen = Boolean(isOpen && !isDisabled && content);\n const arrowRef = React.useRef<HTMLDivElement>(null);\n\n const {\n refs,\n floatingStyles,\n placement: actualPlacement,\n middlewareData,\n context,\n } = useFloating({\n placement,\n open: isEffectivelyOpen,\n onOpenChange: (nextOpen) => {\n if (!isDisabled && content) {\n setIsOpen(nextOpen);\n } else if (!nextOpen) {\n setIsOpen(false);\n }\n },\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(offsetProp),\n flip({ fallbackAxisSideDirection: \"start\" }),\n shift({ padding: 8 }),\n hasArrow ? arrow({ element: arrowRef }) : undefined,\n ].filter(Boolean),\n });\n\n const hover = useHover(context, {\n delay: {\n open: openDelay,\n close: closeDelay,\n },\n handleClose: safePolygon(),\n enabled: !isDisabled && Boolean(content),\n });\n\n const focus = useFocus(context, {\n visibleOnly: false,\n enabled: !isDisabled && Boolean(content),\n });\n\n const dismiss = useDismiss(context, {\n escapeKey: true,\n enabled: !isDisabled && Boolean(content),\n });\n\n const role = useRole(context, {\n role: \"tooltip\",\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n hover,\n focus,\n dismiss,\n role,\n ]);\n\n const generatedId = React.useId();\n const tooltipId = `cl-tooltip-${(context.floatingId || generatedId).replace(/:/g, \"\")}`;\n const childRef = React.isValidElement(children)\n ? getElementRef(children)\n : undefined;\n const mergedReferenceRef = useMergeRefs(refs.setReference, childRef);\n const mergedFloatingRef = useMergeRefs(refs.setFloating, forwardedRef);\n\n if (!React.isValidElement(children)) {\n return null;\n }\n\n const childProps = children.props as Record<string, unknown>;\n const childAriaDescribedBy = childProps[\"aria-describedby\"] as string | undefined;\n const mergedAriaDescribedBy = isEffectivelyOpen\n ? [childAriaDescribedBy, tooltipId].filter(Boolean).join(\" \")\n : childAriaDescribedBy;\n\n const referenceProps = getReferenceProps({\n ...childProps,\n ref: mergedReferenceRef,\n \"aria-describedby\": mergedAriaDescribedBy,\n });\n\n const clonedTrigger = React.cloneElement(children, referenceProps);\n\n return (\n <>\n {clonedTrigger}\n {isEffectivelyOpen && (\n <Portal>\n <div\n {...getFloatingProps({\n id: tooltipId,\n ref: mergedFloatingRef,\n role: \"tooltip\",\n className: classNames(\"cl-tooltip\", className),\n style: {\n ...floatingStyles,\n ...style,\n },\n })}\n data-state=\"open\"\n data-placement={actualPlacement}\n >\n <span className=\"cl-tooltip__label\">{content}</span>\n {shortcut && (\n <span className=\"cl-tooltip__shortcut\">\n <Kbd size=\"sm\">{shortcut}</Kbd>\n </span>\n )}\n {hasArrow && (\n <div\n ref={arrowRef}\n className=\"cl-tooltip__arrow\"\n aria-hidden=\"true\"\n style={{\n left:\n middlewareData.arrow?.x != null\n ? `${middlewareData.arrow.x}px`\n : undefined,\n top:\n middlewareData.arrow?.y != null\n ? `${middlewareData.arrow.y}px`\n : undefined,\n }}\n />\n )}\n </div>\n </Portal>\n )}\n </>\n );\n },\n);\n\nTooltip.displayName = \"Tooltip\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n arrow,\n useClick,\n useDismiss,\n useRole,\n useInteractions,\n FloatingFocusManager,\n type FloatingContext,\n type ExtendedRefs,\n type MiddlewareData,\n} from \"@floating-ui/react\";\nimport { Portal } from \"../../primitives/Portal\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { composeEventHandlers } from \"../../utils/composeEventHandlers\";\nimport { classNames } from \"../../utils/classNames\";\nimport { getElementRef } from \"../../utils/getElementRef\";\nimport type {\n PopoverRootProps,\n PopoverTriggerProps,\n PopoverPortalProps,\n PopoverContentProps,\n PopoverCloseProps,\n PopoverArrowProps,\n PopoverHeaderProps,\n PopoverTitleProps,\n PopoverBodyProps,\n PopoverFooterProps,\n PopoverContextValue,\n} from \"./Popover.types\";\n\ninterface PopoverInternalContextValue extends PopoverContextValue {\n floatingContext: FloatingContext;\n getReferenceProps: (userProps?: React.HTMLProps<Element>) => Record<string, unknown>;\n getFloatingProps: (userProps?: React.HTMLProps<HTMLElement>) => Record<string, unknown>;\n refs: ExtendedRefs<Element>;\n floatingStyles: React.CSSProperties;\n middlewareData: MiddlewareData;\n arrowRef: React.RefObject<HTMLDivElement | null>;\n}\n\nconst PopoverContext = React.createContext<PopoverInternalContextValue | null>(null);\n\nexport function usePopoverContext(): PopoverInternalContextValue {\n const context = React.useContext(PopoverContext);\n if (!context) {\n throw new Error(\n \"Popover compound subcomponents must be rendered within a <Popover.Root> or <Popover>\",\n );\n }\n return context;\n}\n\n/**\n * Popover.Root (or <Popover>) manages the open state and floating positioning context\n * for anchored rich interactive popup overlays.\n */\nexport function PopoverRoot({\n children,\n isOpen: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n placement = \"bottom\",\n offset: offsetProp = 8,\n trapFocus = true,\n closeOnEsc = true,\n initialFocusRef,\n returnFocusRef,\n}: PopoverRootProps) {\n const [isOpen, setIsOpen] = useControllableState<boolean>({\n value: controlledOpen,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n });\n\n const arrowRef = React.useRef<HTMLDivElement | null>(null);\n const [hasTitle, setHasTitle] = React.useState(false);\n const [hasPortalParent, setHasPortalParent] = React.useState(false);\n\n const {\n refs,\n floatingStyles,\n placement: actualPlacement,\n middlewareData,\n context: floatingContext,\n } = useFloating({\n placement,\n open: isOpen,\n onOpenChange: setIsOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(offsetProp),\n flip({ fallbackAxisSideDirection: \"start\" }),\n shift({ padding: 8 }),\n arrow({ element: arrowRef }),\n ],\n });\n\n const click = useClick(floatingContext);\n const dismiss = useDismiss(floatingContext, {\n escapeKey: closeOnEsc,\n outsidePress: true,\n bubbles: false,\n });\n const role = useRole(floatingContext, {\n role: \"dialog\",\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n click,\n dismiss,\n role,\n ]);\n\n const generatedId = React.useId();\n const id = `cl-popover-${(floatingContext.floatingId || generatedId).replace(/:/g, \"\")}`;\n const titleId = `cl-popover-title-${(floatingContext.floatingId || generatedId).replace(/:/g, \"\")}`;\n\n const open = React.useCallback(() => setIsOpen(true), [setIsOpen]);\n const close = React.useCallback(() => setIsOpen(false), [setIsOpen]);\n const toggle = React.useCallback(() => setIsOpen((prev) => !prev), [setIsOpen]);\n\n const contextValue: PopoverInternalContextValue = {\n isOpen,\n open,\n close,\n toggle,\n placement,\n actualPlacement,\n trapFocus,\n id,\n titleId,\n hasTitle,\n setHasTitle,\n hasPortalParent,\n setHasPortalParent,\n initialFocusRef,\n returnFocusRef,\n floatingContext,\n getReferenceProps,\n getFloatingProps,\n refs,\n floatingStyles,\n middlewareData,\n arrowRef,\n };\n\n return (\n <PopoverContext.Provider value={contextValue}>\n {children}\n </PopoverContext.Provider>\n );\n}\n\nPopoverRoot.displayName = \"Popover.Root\";\n\n/**\n * Popover.Trigger wraps the anchor element, binding click and aria attributes.\n */\nexport const PopoverTrigger = React.forwardRef<HTMLElement, PopoverTriggerProps>(\n function PopoverTrigger({ children, asChild = false }, ref) {\n const { refs, getReferenceProps, isOpen, id } = usePopoverContext();\n\n const childRef = React.isValidElement(children)\n ? getElementRef(children)\n : undefined;\n const mergedRef = useMergeRefs(refs.setReference, childRef, ref);\n\n if (!React.isValidElement(children)) {\n return null;\n }\n\n const childProps = children.props as Record<string, unknown>;\n\n const referenceProps = getReferenceProps({\n ...childProps,\n ref: mergedRef,\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": isOpen,\n \"aria-controls\": isOpen ? id : undefined,\n });\n\n if (asChild) {\n return <Slot {...referenceProps}>{children}</Slot>;\n }\n\n return React.cloneElement(children, referenceProps);\n },\n);\n\nPopoverTrigger.displayName = \"Popover.Trigger\";\n\n/**\n * Popover.Portal mounts popover content into document.body or a custom container.\n */\nexport function PopoverPortal({ children, container }: PopoverPortalProps) {\n const { isOpen, setHasPortalParent } = usePopoverContext();\n\n React.useEffect(() => {\n setHasPortalParent(true);\n return () => setHasPortalParent(false);\n }, [setHasPortalParent]);\n\n if (!isOpen) {\n return null;\n }\n\n return <Portal container={container ?? null}>{children}</Portal>;\n}\n\nPopoverPortal.displayName = \"Popover.Portal\";\n\n/**\n * Popover.Content renders the floating dialog container with focus trapping and styling.\n */\nexport const PopoverContent = React.forwardRef<HTMLDivElement, PopoverContentProps>(\n function PopoverContent(\n {\n children,\n hasArrow = true,\n className,\n style,\n ...restProps\n },\n ref,\n ) {\n const {\n isOpen,\n id,\n titleId,\n hasTitle,\n trapFocus,\n initialFocusRef,\n returnFocusRef,\n floatingContext,\n getFloatingProps,\n refs,\n floatingStyles,\n actualPlacement,\n hasPortalParent,\n } = usePopoverContext();\n\n const mergedRef = useMergeRefs(refs.setFloating, ref);\n\n if (!isOpen) {\n return null;\n }\n\n const contentNode = (\n <FloatingFocusManager\n context={floatingContext}\n modal={trapFocus}\n disabled={!trapFocus}\n initialFocus={initialFocusRef || undefined}\n returnFocus={returnFocusRef || true}\n >\n <div\n {...getFloatingProps({\n id,\n ref: mergedRef,\n role: \"dialog\",\n \"aria-modal\": trapFocus ? \"true\" : undefined,\n \"aria-labelledby\": hasTitle ? titleId : undefined,\n className: classNames(\"cl-popover\", className),\n style: {\n ...floatingStyles,\n ...style,\n },\n tabIndex: -1,\n ...restProps,\n })}\n data-state={isOpen ? \"open\" : \"closed\"}\n data-placement={actualPlacement}\n >\n {hasArrow && <PopoverArrow />}\n {children}\n </div>\n </FloatingFocusManager>\n );\n\n if (hasPortalParent) {\n return contentNode;\n }\n\n return <Portal>{contentNode}</Portal>;\n },\n);\n\nPopoverContent.displayName = \"Popover.Content\";\n\n/**\n * Popover.Arrow renders the directional pointer diamond.\n */\nexport const PopoverArrow = React.forwardRef<HTMLDivElement, PopoverArrowProps>(\n function PopoverArrow({ className, style, ...restProps }, ref) {\n const { arrowRef, middlewareData } = usePopoverContext();\n const mergedRef = useMergeRefs(arrowRef, ref);\n\n return (\n <div\n ref={mergedRef}\n aria-hidden=\"true\"\n className={classNames(\"cl-popover__arrow\", className)}\n style={{\n left:\n middlewareData.arrow?.x != null\n ? `${middlewareData.arrow.x}px`\n : undefined,\n top:\n middlewareData.arrow?.y != null\n ? `${middlewareData.arrow.y}px`\n : undefined,\n ...style,\n }}\n {...restProps}\n />\n );\n },\n);\n\nPopoverArrow.displayName = \"Popover.Arrow\";\n\n/**\n * Popover.Close renders a dismiss button or decorates a child button via asChild.\n */\nexport const PopoverClose = React.forwardRef<HTMLButtonElement, PopoverCloseProps>(\n function PopoverClose(\n { children, asChild = false, onClick, className, ...restProps },\n ref,\n ) {\n const { close } = usePopoverContext();\n const handleClick = composeEventHandlers(onClick, () => close());\n\n if (asChild && React.isValidElement(children)) {\n return (\n <Slot ref={ref} onClick={handleClick} {...restProps}>\n {children}\n </Slot>\n );\n }\n\n return (\n <button\n type=\"button\"\n ref={ref}\n onClick={handleClick}\n aria-label=\"Close popover\"\n className={classNames(\"cl-popover__close\", className)}\n {...restProps}\n >\n {children || \"✕\"}\n </button>\n );\n },\n);\n\nPopoverClose.displayName = \"Popover.Close\";\n\n/**\n * Popover.Header provides the top bar of the popover.\n */\nexport const PopoverHeader = React.forwardRef<HTMLDivElement, PopoverHeaderProps>(\n function PopoverHeader({ children, className, ...restProps }, ref) {\n return (\n <div\n ref={ref}\n className={classNames(\"cl-popover__header\", className)}\n {...restProps}\n >\n {children}\n </div>\n );\n },\n);\n\nPopoverHeader.displayName = \"Popover.Header\";\n\n/**\n * Popover.Title provides the dialog title and links via aria-labelledby.\n */\nexport const PopoverTitle = React.forwardRef<HTMLHeadingElement, PopoverTitleProps>(\n function PopoverTitle({ children, className, ...restProps }, ref) {\n const { titleId, setHasTitle } = usePopoverContext();\n\n React.useEffect(() => {\n setHasTitle(true);\n return () => setHasTitle(false);\n }, [setHasTitle]);\n\n return (\n <h3\n ref={ref}\n id={titleId}\n className={classNames(\"cl-popover__title\", className)}\n {...restProps}\n >\n {children}\n </h3>\n );\n },\n);\n\nPopoverTitle.displayName = \"Popover.Title\";\n\n/**\n * Popover.Body provides the main interactive container inside the popover.\n */\nexport const PopoverBody = React.forwardRef<HTMLDivElement, PopoverBodyProps>(\n function PopoverBody({ children, className, ...restProps }, ref) {\n return (\n <div\n ref={ref}\n className={classNames(\"cl-popover__body\", className)}\n {...restProps}\n >\n {children}\n </div>\n );\n },\n);\n\nPopoverBody.displayName = \"Popover.Body\";\n\n/**\n * Popover.Footer provides the action footer of the popover.\n */\nexport const PopoverFooter = React.forwardRef<HTMLDivElement, PopoverFooterProps>(\n function PopoverFooter({ children, className, ...restProps }, ref) {\n return (\n <div\n ref={ref}\n className={classNames(\"cl-popover__footer\", className)}\n {...restProps}\n >\n {children}\n </div>\n );\n },\n);\n\nPopoverFooter.displayName = \"Popover.Footer\";\n\n/**\n * Popover compound component aggregation.\n */\nexport const Popover = Object.assign(PopoverRoot, {\n Root: PopoverRoot,\n Trigger: PopoverTrigger,\n Portal: PopoverPortal,\n Content: PopoverContent,\n Close: PopoverClose,\n Arrow: PopoverArrow,\n Header: PopoverHeader,\n Title: PopoverTitle,\n Body: PopoverBody,\n Footer: PopoverFooter,\n});\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport type {\n AlertProps,\n AlertIconProps,\n AlertTitleProps,\n AlertDescriptionProps,\n AlertBodyProps,\n AlertActionProps,\n AlertCloseButtonProps,\n AlertContextValue,\n AlertStatus,\n} from \"./Alert.types\";\n\nconst AlertContext = React.createContext<AlertContextValue | null>(null);\n\nexport function useAlertContext(): AlertContextValue {\n const context = React.useContext(AlertContext);\n if (!context) {\n throw new Error(\n \"Alert compound subcomponents must be rendered within an <Alert> or <Alert.Root>\",\n );\n }\n return context;\n}\n\n/**\n * Default status icons for built-in feedback indications.\n */\nconst InfoIcon = React.forwardRef<SVGSVGElement, React.SVGAttributes<SVGSVGElement>>(\n function InfoIcon(props, ref) {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n );\n },\n);\n\nconst SuccessIcon = React.forwardRef<SVGSVGElement, React.SVGAttributes<SVGSVGElement>>(\n function SuccessIcon(props, ref) {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m9 12 2 2 4-4\" />\n </svg>\n );\n },\n);\n\nconst WarningIcon = React.forwardRef<SVGSVGElement, React.SVGAttributes<SVGSVGElement>>(\n function WarningIcon(props, ref) {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n <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-3Z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n );\n },\n);\n\nconst DangerIcon = React.forwardRef<SVGSVGElement, React.SVGAttributes<SVGSVGElement>>(\n function DangerIcon(props, ref) {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\" />\n </svg>\n );\n },\n);\n\nfunction getStatusIcon(\n status: AlertStatus,\n): React.ForwardRefExoticComponent<\n React.SVGAttributes<SVGSVGElement> & React.RefAttributes<SVGSVGElement>\n> {\n switch (status) {\n case \"success\":\n return SuccessIcon;\n case \"warning\":\n return WarningIcon;\n case \"danger\":\n return DangerIcon;\n case \"neutral\":\n case \"info\":\n default:\n return InfoIcon;\n }\n}\n\n/**\n * Alert.Root (or <Alert>) provides in-flow contextual feedback with accessible live-region semantics.\n */\nexport const AlertRoot = React.forwardRef<HTMLDivElement, AlertProps>(\n function AlertRoot(\n {\n children,\n status = \"info\",\n variant = \"subtle\",\n isClosable = false,\n onClose,\n asChild = false,\n role: roleProp,\n \"aria-live\": ariaLiveProp,\n className,\n ...restProps\n },\n ref,\n ) {\n const [isClosed, setIsClosed] = React.useState(false);\n\n const handleClose = React.useCallback(() => {\n if (isClosed) return;\n setIsClosed(true);\n onClose?.();\n }, [isClosed, onClose]);\n\n const contextValue = React.useMemo<AlertContextValue>(\n () => ({\n status,\n variant,\n onClose,\n handleClose,\n isClosed,\n }),\n [status, variant, onClose, handleClose, isClosed],\n );\n\n const hasExplicitClose = React.useMemo(() => {\n let found = false;\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child)) {\n if (\n child.type === AlertCloseButton ||\n (child.type as { displayName?: string })?.displayName ===\n \"Alert.CloseButton\"\n ) {\n found = true;\n }\n }\n });\n return found;\n }, [children]);\n\n if (isClosed) {\n return null;\n }\n\n const defaultRole = status === \"danger\" ? \"alert\" : \"status\";\n const defaultAriaLive = status === \"danger\" ? \"assertive\" : \"polite\";\n const resolvedRole = roleProp ?? defaultRole;\n const resolvedAriaLive = ariaLiveProp ?? defaultAriaLive;\n\n const alertClasses = classNames(\n \"cl-alert\",\n `cl-alert--${status}`,\n `cl-alert--${variant}`,\n isClosable && \"cl-alert--closable\",\n className,\n );\n\n if (asChild) {\n return (\n <AlertContext.Provider value={contextValue}>\n <Slot\n ref={ref}\n role={resolvedRole}\n aria-live={resolvedAriaLive}\n className={alertClasses}\n {...restProps}\n >\n {children}\n </Slot>\n </AlertContext.Provider>\n );\n }\n\n return (\n <AlertContext.Provider value={contextValue}>\n <div\n ref={ref}\n role={resolvedRole}\n aria-live={resolvedAriaLive}\n className={alertClasses}\n {...restProps}\n >\n {children}\n {isClosable && !hasExplicitClose && <AlertCloseButton />}\n </div>\n </AlertContext.Provider>\n );\n },\n);\n\nAlertRoot.displayName = \"Alert.Root\";\n\n/**\n * Alert.Icon renders an accessible status indicator SVG or custom icon override.\n */\nexport const AlertIcon = React.forwardRef<SVGSVGElement, AlertIconProps>(\n function AlertIcon({ icon, children, className, ...restProps }, ref) {\n const { status } = useAlertContext();\n\n if (icon) {\n if (React.isValidElement(icon)) {\n return React.cloneElement(icon as React.ReactElement<Record<string, unknown>>, {\n ...restProps,\n ...(icon.props as Record<string, unknown>),\n ref,\n \"aria-hidden\": \"true\",\n className: classNames(\n \"cl-alert__icon\",\n className,\n (icon.props as { className?: string })?.className,\n ),\n });\n }\n return (\n <span className={classNames(\"cl-alert__icon\", className)} aria-hidden=\"true\">\n {icon}\n </span>\n );\n }\n\n if (children) {\n if (React.isValidElement(children)) {\n return React.cloneElement(children as React.ReactElement<Record<string, unknown>>, {\n ...restProps,\n ...(children.props as Record<string, unknown>),\n ref,\n \"aria-hidden\": \"true\",\n className: classNames(\n \"cl-alert__icon\",\n className,\n (children.props as { className?: string })?.className,\n ),\n });\n }\n return (\n <span className={classNames(\"cl-alert__icon\", className)} aria-hidden=\"true\">\n {children}\n </span>\n );\n }\n\n const IconComponent = getStatusIcon(status);\n return (\n <IconComponent\n ref={ref}\n className={classNames(\"cl-alert__icon\", className)}\n {...restProps}\n />\n );\n },\n);\n\nAlertIcon.displayName = \"Alert.Icon\";\n\n/**\n * Alert.Body wraps the title and description in a flex column layout.\n */\nexport const AlertBody = React.forwardRef<HTMLDivElement, AlertBodyProps>(\n function AlertBody({ children, className, ...restProps }, ref) {\n return (\n <div\n ref={ref}\n className={classNames(\"cl-alert__body\", className)}\n {...restProps}\n >\n {children}\n </div>\n );\n },\n);\n\nAlertBody.displayName = \"Alert.Body\";\n\n/**\n * Alert.Title renders the prominent heading for the alert notice.\n */\nexport const AlertTitle = React.forwardRef<HTMLHeadingElement, AlertTitleProps>(\n function AlertTitle({ children, className, ...restProps }, ref) {\n return (\n <h5\n ref={ref}\n className={classNames(\"cl-alert__title\", className)}\n {...restProps}\n >\n {children}\n </h5>\n );\n },\n);\n\nAlertTitle.displayName = \"Alert.Title\";\n\n/**\n * Alert.Description renders the accompanying body text for the alert notice.\n */\nexport const AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n AlertDescriptionProps\n>(function AlertDescription({ children, className, ...restProps }, ref) {\n return (\n <p\n ref={ref}\n className={classNames(\"cl-alert__description\", className)}\n {...restProps}\n >\n {children}\n </p>\n );\n});\n\nAlertDescription.displayName = \"Alert.Description\";\n\n/**\n * Alert.Action contains contextual action buttons (e.g. Retry, Learn More).\n */\nexport const AlertAction = React.forwardRef<HTMLDivElement, AlertActionProps>(\n function AlertAction({ children, className, ...restProps }, ref) {\n return (\n <div\n ref={ref}\n className={classNames(\"cl-alert__action\", className)}\n {...restProps}\n >\n {children}\n </div>\n );\n },\n);\n\nAlertAction.displayName = \"Alert.Action\";\n\n/**\n * Alert.CloseButton renders an accessible dismiss button for the alert.\n */\nexport const AlertCloseButton = React.forwardRef<\n HTMLButtonElement,\n AlertCloseButtonProps\n>(function AlertCloseButton(\n {\n onClick,\n className,\n \"aria-label\": ariaLabel = \"Close alert\",\n children,\n disabled,\n ...restProps\n },\n ref,\n) {\n const { handleClose, isClosed } = useAlertContext();\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n handleClose();\n }\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-label={ariaLabel}\n disabled={disabled || isClosed}\n onClick={handleClick}\n className={classNames(\"cl-alert__close\", className)}\n {...restProps}\n >\n {children ?? (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n )}\n </button>\n );\n});\n\nAlertCloseButton.displayName = \"Alert.CloseButton\";\n\n/**\n * Alert compound component aggregation.\n */\nexport const Alert = Object.assign(AlertRoot, {\n Root: AlertRoot,\n Icon: AlertIcon,\n Body: AlertBody,\n Title: AlertTitle,\n Description: AlertDescription,\n Action: AlertAction,\n CloseButton: AlertCloseButton,\n});\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Portal } from \"../../primitives/Portal\";\nimport { classNames } from \"../../utils/classNames\";\nimport type {\n ToastOptions,\n ToastRecord,\n ToastPosition,\n ToastStatus,\n ToastProviderProps,\n UseToastReturn,\n} from \"./Snackbar.types\";\n\nexport const ToastContext = React.createContext<UseToastReturn | null>(null);\n\nconst POSITIONS: ToastPosition[] = [\n \"top\",\n \"top-left\",\n \"top-right\",\n \"bottom\",\n \"bottom-left\",\n \"bottom-right\",\n];\n\nfunction InfoIcon() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n );\n}\n\nfunction SuccessIcon() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m9 12 2 2 4-4\" />\n </svg>\n );\n}\n\nfunction WarningIcon() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <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-3Z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n );\n}\n\nfunction DangerIcon() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\" />\n </svg>\n );\n}\n\nfunction renderStatusIcon(status: ToastStatus) {\n switch (status) {\n case \"success\":\n return <SuccessIcon />;\n case \"warning\":\n return <WarningIcon />;\n case \"danger\":\n return <DangerIcon />;\n case \"neutral\":\n case \"info\":\n default:\n return <InfoIcon />;\n }\n}\n\n/**\n * Individual Toast Item with pauseable timer and accessible live-region semantics.\n */\nexport const ToastItem = React.forwardRef<\n HTMLDivElement,\n {\n toast: ToastRecord;\n onClose: () => void;\n }\n>(function ToastItem({ toast, onClose }, ref) {\n const {\n title,\n description,\n status,\n duration,\n isClosable,\n action,\n } = toast;\n\n const remainingRef = React.useRef<number>(\n typeof duration === \"number\" ? duration : 0,\n );\n const startTimeRef = React.useRef<number>(Date.now());\n const timerRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n const isPausedRef = React.useRef<boolean>(false);\n\n React.useEffect(() => {\n if (typeof duration === \"number\") {\n remainingRef.current = duration;\n }\n }, [duration]);\n\n const startTimer = React.useCallback(() => {\n if (duration === null || duration === undefined) return;\n\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n\n if (remainingRef.current <= 0) {\n timerRef.current = setTimeout(() => {\n onClose();\n timerRef.current = null;\n }, 0);\n return;\n }\n\n startTimeRef.current = Date.now();\n timerRef.current = setTimeout(() => {\n onClose();\n timerRef.current = null;\n }, remainingRef.current);\n }, [duration, onClose]);\n\n const pauseTimer = React.useCallback(() => {\n if (duration === null || duration === undefined) return;\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n const elapsed = Date.now() - startTimeRef.current;\n remainingRef.current = Math.max(0, remainingRef.current - elapsed);\n isPausedRef.current = true;\n }, [duration]);\n\n const resumeTimer = React.useCallback(() => {\n if (duration === null || duration === undefined) return;\n if (isPausedRef.current) {\n isPausedRef.current = false;\n startTimer();\n }\n }, [duration, startTimer]);\n\n React.useEffect(() => {\n startTimer();\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n }, [startTimer]);\n\n const role = status === \"danger\" ? \"alert\" : \"status\";\n const ariaLive = status === \"danger\" ? \"assertive\" : \"polite\";\n\n return (\n <div\n ref={ref}\n role={role}\n aria-live={ariaLive}\n aria-atomic=\"true\"\n tabIndex={0}\n onMouseEnter={pauseTimer}\n onMouseLeave={resumeTimer}\n onPointerEnter={pauseTimer}\n onPointerLeave={resumeTimer}\n onFocus={pauseTimer}\n onBlur={resumeTimer}\n className={classNames(\n \"cl-toast\",\n `cl-toast--${status}`,\n )}\n >\n <span className=\"cl-toast__icon\" aria-hidden=\"true\">\n {renderStatusIcon(status)}\n </span>\n\n <div className=\"cl-toast__content\">\n {title && <h6 className=\"cl-toast__title\">{title}</h6>}\n {description && <p className=\"cl-toast__description\">{description}</p>}\n </div>\n\n {action && <div className=\"cl-toast__action\">{action}</div>}\n\n {isClosable && (\n <button\n type=\"button\"\n aria-label=\"Dismiss\"\n onClick={onClose}\n className=\"cl-toast__close\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n width=\"14\"\n height=\"14\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n )}\n </div>\n );\n});\n\nToastItem.displayName = \"ToastItem\";\n\nlet toastCounter = 0;\n\n/**\n * ToastProvider manages notification queue, automatic dismissals, and portal layout.\n */\nexport function ToastProvider({\n children,\n defaultDuration = 5000,\n defaultPosition = \"bottom-right\",\n maxVisibleToasts = 5,\n}: ToastProviderProps) {\n const [toasts, setToasts] = React.useState<ToastRecord[]>([]);\n\n const close = React.useCallback((id: string) => {\n setToasts((prev) => {\n const match = prev.find((t) => t.id === id);\n if (match?.onClose) {\n match.onClose();\n }\n return prev.filter((t) => t.id !== id);\n });\n }, []);\n\n const closeAll = React.useCallback(() => {\n setToasts((prev) => {\n prev.forEach((t) => t.onClose?.());\n return [];\n });\n }, []);\n\n const update = React.useCallback(\n (id: string, options: Partial<ToastOptions>) => {\n setToasts((prev) =>\n prev.map((t) => {\n if (t.id !== id) return t;\n return {\n ...t,\n ...options,\n id: t.id,\n duration: options.duration !== undefined ? options.duration : t.duration,\n position: options.position !== undefined ? options.position : t.position,\n status: options.status !== undefined ? options.status : t.status,\n isClosable:\n options.isClosable !== undefined ? options.isClosable : t.isClosable,\n };\n }),\n );\n },\n [],\n );\n\n const isActive = React.useCallback(\n (id: string) => toasts.some((t) => t.id === id),\n [toasts],\n );\n\n const toast = React.useCallback(\n (options: ToastOptions): string => {\n const id = options.id ?? `cl-toast-${++toastCounter}`;\n const position = options.position ?? defaultPosition;\n const duration =\n options.duration !== undefined ? options.duration : defaultDuration;\n const status = options.status ?? \"info\";\n const isClosable =\n options.isClosable !== undefined ? options.isClosable : true;\n\n const newRecord: ToastRecord = {\n ...options,\n id,\n position,\n duration,\n status,\n isClosable,\n createdAt: Date.now(),\n };\n\n setToasts((prev) => {\n // Enforce maxVisibleToasts limit per position by removing the oldest\n const inSamePosition = prev.filter((t) => t.position === position);\n let updated = prev.filter((t) => t.id !== id);\n\n if (inSamePosition.length >= maxVisibleToasts) {\n const oldest = inSamePosition[0];\n if (oldest) {\n oldest.onClose?.();\n updated = updated.filter((t) => t.id !== oldest.id);\n }\n }\n\n return [...updated, newRecord];\n });\n\n return id;\n },\n [defaultDuration, defaultPosition, maxVisibleToasts],\n );\n\n const contextValue = React.useMemo<UseToastReturn>(() => {\n const fn = (options: ToastOptions) => toast(options);\n fn.close = close;\n fn.closeAll = closeAll;\n fn.update = update;\n fn.isActive = isActive;\n return fn as UseToastReturn;\n }, [toast, close, closeAll, update, isActive]);\n\n return (\n <ToastContext.Provider value={contextValue}>\n {children}\n <Portal>\n {POSITIONS.map((pos) => {\n const inPos = toasts.filter((t) => t.position === pos);\n if (inPos.length === 0) return null;\n\n return (\n <div\n key={pos}\n className={classNames(\n \"cl-toast-container\",\n `cl-toast-container--${pos}`,\n )}\n role=\"region\"\n aria-label={`Notifications ${pos}`}\n >\n {inPos.map((t) => (\n <ToastItem key={t.id} toast={t} onClose={() => close(t.id)} />\n ))}\n </div>\n );\n })}\n </Portal>\n </ToastContext.Provider>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Portal } from \"../../primitives/Portal\";\nimport { classNames } from \"../../utils/classNames\";\nimport { ToastItem } from \"./ToastProvider\";\nimport type {\n SnackbarProps,\n ToastRecord,\n ToastPosition,\n ToastStatus,\n} from \"./Snackbar.types\";\n\n/**\n * Snackbar provides a declarative component API for viewport-anchored transient notifications.\n */\nexport const Snackbar = React.forwardRef<HTMLDivElement, SnackbarProps>(\n function Snackbar(\n {\n isOpen = false,\n message,\n description,\n status = \"info\",\n duration = 5000,\n position = \"bottom-right\",\n action,\n isClosable = true,\n onClose,\n children,\n className,\n ...restProps\n },\n ref,\n ) {\n const handleClose = React.useCallback(() => {\n onClose?.();\n }, [onClose]);\n\n if (!isOpen) {\n return null;\n }\n\n const toastRecord: ToastRecord = {\n id: \"declarative-snackbar\",\n title: message ?? children,\n description,\n status: status as ToastStatus,\n duration: duration ?? null,\n position: position as ToastPosition,\n isClosable: Boolean(isClosable),\n action,\n createdAt: Date.now(),\n onClose: handleClose,\n };\n\n return (\n <Portal>\n <div\n className={classNames(\n \"cl-toast-container\",\n `cl-toast-container--${position}`,\n className,\n )}\n role=\"region\"\n aria-label={`Notifications ${position}`}\n {...restProps}\n >\n <ToastItem ref={ref} toast={toastRecord} onClose={handleClose} />\n </div>\n </Portal>\n );\n },\n);\n\nSnackbar.displayName = \"Snackbar\";\n\n/**\n * Toast is the approved alias for Snackbar.\n */\nexport const Toast = Snackbar;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ToastContext } from \"./ToastProvider\";\nimport type { UseToastReturn } from \"./Snackbar.types\";\n\n/**\n * Hook to imperatively trigger, update, or dismiss toast notifications.\n */\nexport function useToast(): UseToastReturn {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\"useToast must be used within a <ToastProvider>\");\n }\n return context;\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { classNames } from \"../../utils/classNames\";\nimport type {\n AvatarGroupProps,\n AvatarGroupContextValue,\n} from \"./Avatar.types\";\n\nexport const AvatarGroupContext =\n React.createContext<AvatarGroupContextValue>({});\n\nexport const useAvatarGroupContext = (): AvatarGroupContextValue =>\n React.useContext(AvatarGroupContext);\n\n/**\n * AvatarGroup stacks multiple avatars with negative margin overlap and calculates +N excess items.\n */\nexport const AvatarGroup = React.forwardRef<HTMLDivElement, AvatarGroupProps>(\n function AvatarGroup(\n {\n max,\n size = \"md\",\n shape = \"circular\",\n spacing,\n className,\n style,\n children,\n ...restProps\n },\n ref,\n ) {\n const validChildren = React.Children.toArray(children).filter(\n React.isValidElement,\n );\n\n const hasExcess = max !== undefined && max > 0 && validChildren.length > max;\n const visibleChildren = hasExcess\n ? validChildren.slice(0, max)\n : validChildren;\n const excessCount = hasExcess ? validChildren.length - max : 0;\n\n const totalItems = visibleChildren.length + (excessCount > 0 ? 1 : 0);\n\n const contextValue = React.useMemo<AvatarGroupContextValue>(\n () => ({ size, shape }),\n [size, shape],\n );\n\n return (\n <div\n ref={ref}\n className={classNames(\"cl-avatar-group\", className)}\n role=\"group\"\n style={{\n ...(spacing !== undefined\n ? ({\n \"--cl-avatar-group-spacing\":\n typeof spacing === \"number\" ? `${spacing}px` : spacing,\n } as React.CSSProperties)\n : {}),\n ...style,\n }}\n {...restProps}\n >\n <AvatarGroupContext.Provider value={contextValue}>\n {visibleChildren.map((child, index) => {\n const element = child as React.ReactElement<{\n style?: React.CSSProperties;\n }>;\n const childStyle: React.CSSProperties = {\n zIndex: totalItems - index,\n ...(element.props?.style || {}),\n };\n return React.cloneElement(element, {\n key: element.key ?? index,\n style: childStyle,\n });\n })}\n {excessCount > 0 && (\n <div\n className={classNames(\n \"cl-avatar\",\n `cl-avatar--${size}`,\n `cl-avatar--${shape}`,\n \"cl-avatar-group__excess\",\n )}\n style={{ zIndex: 0 }}\n aria-label={`+${excessCount} others`}\n >\n +{excessCount}\n </div>\n )}\n </AvatarGroupContext.Provider>\n </div>\n );\n },\n);\n\nAvatarGroup.displayName = \"AvatarGroup\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { classNames } from \"../../utils/classNames\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { AvatarGroup, useAvatarGroupContext } from \"./AvatarGroup\";\nimport type {\n AvatarProps,\n AvatarImageProps,\n AvatarFallbackProps,\n AvatarBadgeProps,\n AvatarContextValue,\n AvatarSize,\n AvatarShape,\n ImageLoadingStatus,\n} from \"./Avatar.types\";\n\nexport const AvatarContext = React.createContext<AvatarContextValue | null>(null);\n\nexport const useAvatarContext = (): AvatarContextValue | null =>\n React.useContext(AvatarContext);\n\n/**\n * Extracts up to two uppercase initials from a given name string.\n * Handles single names, multi-word names, hyphens, and unicode characters.\n */\nexport function getInitials(name?: string): string {\n if (!name || typeof name !== \"string\") return \"\";\n const trimmed = name.trim();\n if (!trimmed) return \"\";\n\n const parts = trimmed.split(/[\\s-]+/).filter(Boolean);\n if (parts.length === 0) return \"\";\n\n const firstPart = parts[0];\n if (!firstPart) return \"\";\n\n if (parts.length === 1) {\n const chars = Array.from(firstPart);\n return chars[0] ? chars[0].toUpperCase() : \"\";\n }\n\n const lastPart = parts[parts.length - 1];\n if (!lastPart) return \"\";\n\n const firstChar = Array.from(firstPart)[0] ?? \"\";\n const lastChar = Array.from(lastPart)[0] ?? \"\";\n return (firstChar + lastChar).toUpperCase();\n}\n\n/**\n * Default generic silhouette icon SVG rendered when image and initials are absent.\n */\nfunction DefaultAvatarIcon() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n width=\"60%\"\n height=\"60%\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" />\n </svg>\n );\n}\n\n/**\n * Avatar.Image renders the image element with automatic error and load management.\n */\nexport const AvatarImage = React.forwardRef<HTMLImageElement, AvatarImageProps>(\n function AvatarImage(\n { src, srcSet, alt, className, style, asChild = false, onLoad, onError, ...restProps },\n ref,\n ) {\n const context = useAvatarContext();\n const imageStatus = context?.imageStatus ?? (src ? \"loading\" : \"error\");\n\n const handleLoad = React.useCallback(\n (event: React.SyntheticEvent<HTMLImageElement, Event>) => {\n context?.setImageStatus(\"loaded\");\n onLoad?.(event);\n },\n [context, onLoad],\n );\n\n const handleError = React.useCallback(\n (event: React.SyntheticEvent<HTMLImageElement, Event>) => {\n context?.setImageStatus(\"error\");\n onError?.(event);\n },\n [context, onError],\n );\n\n if (imageStatus === \"error\" || !src) {\n return null;\n }\n\n const imageClasses = classNames(\"cl-avatar__image\", className);\n const imageStyle: React.CSSProperties = {\n opacity: imageStatus === \"loaded\" ? 1 : 0,\n ...style,\n };\n\n if (asChild) {\n return (\n <Slot\n ref={ref as React.Ref<HTMLElement>}\n className={imageClasses}\n style={imageStyle}\n {...(restProps as Record<string, unknown>)}\n />\n );\n }\n\n return (\n <img\n ref={ref}\n src={src}\n srcSet={srcSet}\n alt={alt ?? \"\"}\n className={imageClasses}\n style={imageStyle}\n onLoad={handleLoad}\n onError={handleError}\n {...restProps}\n />\n );\n },\n);\n\nAvatarImage.displayName = \"Avatar.Image\";\n\n/**\n * Avatar.Fallback renders fallback initials, icons, or custom elements when image has not loaded.\n */\nexport const AvatarFallback = React.forwardRef<\n HTMLSpanElement,\n AvatarFallbackProps\n>(function AvatarFallback(\n { children, className, delayMs, asChild = false, ...restProps },\n ref,\n) {\n const context = useAvatarContext();\n const [canRender, setCanRender] = React.useState(delayMs === undefined);\n\n React.useEffect(() => {\n if (delayMs !== undefined && delayMs > 0) {\n const timer = setTimeout(() => setCanRender(true), delayMs);\n return () => clearTimeout(timer);\n }\n setCanRender(true);\n return undefined;\n }, [delayMs]);\n\n if (context && context.imageStatus === \"loaded\") {\n return null;\n }\n\n if (!canRender) {\n return null;\n }\n\n const fallbackClasses = classNames(\"cl-avatar__fallback\", className);\n\n if (asChild) {\n return (\n <Slot\n ref={ref as React.Ref<HTMLElement>}\n className={fallbackClasses}\n {...(restProps as Record<string, unknown>)}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <span ref={ref} className={fallbackClasses} {...restProps}>\n {children}\n </span>\n );\n});\n\nAvatarFallback.displayName = \"Avatar.Fallback\";\n\n/**\n * Avatar.Badge renders presence status indicator dot anchored to an avatar corner.\n */\nexport const AvatarBadge = React.forwardRef<HTMLSpanElement, AvatarBadgeProps>(\n function AvatarBadge(\n {\n status = \"online\",\n placement = \"bottom-end\",\n className,\n asChild = false,\n \"aria-label\": ariaLabel,\n ...restProps\n },\n ref,\n ) {\n const badgeClasses = classNames(\n \"cl-avatar__badge\",\n `cl-avatar__badge--${status}`,\n `cl-avatar__badge--${placement}`,\n className,\n );\n\n const accessibleLabel = ariaLabel ?? `Status: ${status}`;\n\n if (asChild) {\n return (\n <Slot\n ref={ref as React.Ref<HTMLElement>}\n className={badgeClasses}\n role=\"status\"\n aria-label={accessibleLabel}\n {...(restProps as Record<string, unknown>)}\n />\n );\n }\n\n return (\n <span\n ref={ref}\n className={badgeClasses}\n role=\"status\"\n aria-label={accessibleLabel}\n {...restProps}\n />\n );\n },\n);\n\nAvatarBadge.displayName = \"Avatar.Badge\";\n\n/**\n * Avatar represents a user, entity, or organization identity with automated fallbacks and presence indicators.\n */\nconst AvatarBase = React.forwardRef<HTMLDivElement, AvatarProps>(function Avatar(\n {\n src,\n srcSet,\n alt,\n name,\n size: sizeProp,\n shape: shapeProp,\n fallback,\n icon,\n asChild = false,\n className,\n children,\n onError,\n onLoad,\n \"aria-label\": ariaLabel,\n ...restProps\n },\n ref,\n) {\n const groupContext = useAvatarGroupContext();\n const size: AvatarSize = sizeProp ?? groupContext.size ?? \"md\";\n const shape: AvatarShape = shapeProp ?? groupContext.shape ?? \"circular\";\n\n const [imageStatus, setImageStatus] = React.useState<ImageLoadingStatus>(\n src ? \"loading\" : \"error\",\n );\n\n React.useEffect(() => {\n setImageStatus(src ? \"loading\" : \"error\");\n }, [src]);\n\n const contextValue = React.useMemo<AvatarContextValue>(\n () => ({\n size,\n shape,\n imageStatus,\n setImageStatus,\n }),\n [size, shape, imageStatus],\n );\n\n const initials = getInitials(name);\n const computedAriaLabel = ariaLabel ?? alt ?? name;\n\n const rootClasses = classNames(\n \"cl-avatar\",\n `cl-avatar--${size}`,\n `cl-avatar--${shape}`,\n className,\n );\n\n const accessibilityProps: React.HTMLAttributes<HTMLDivElement> = {};\n if (computedAriaLabel) {\n accessibilityProps.role = \"img\";\n accessibilityProps[\"aria-label\"] = computedAriaLabel;\n }\n\n // If children are supplied, render in compound mode\n if (children) {\n if (asChild) {\n return (\n <AvatarContext.Provider value={contextValue}>\n <Slot\n ref={ref as React.Ref<HTMLElement>}\n className={rootClasses}\n {...accessibilityProps}\n {...(restProps as Record<string, unknown>)}\n >\n {children}\n </Slot>\n </AvatarContext.Provider>\n );\n }\n\n return (\n <AvatarContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={rootClasses}\n {...accessibilityProps}\n {...restProps}\n >\n {children}\n </div>\n </AvatarContext.Provider>\n );\n }\n\n // Self-contained convenience rendering\n const fallbackContent =\n fallback ??\n (initials ? (\n initials\n ) : icon ? (\n icon\n ) : (\n <DefaultAvatarIcon />\n ));\n\n const content = (\n <>\n {src && imageStatus !== \"error\" && (\n <AvatarImage\n src={src}\n srcSet={srcSet}\n alt={alt ?? name ?? \"\"}\n onLoad={onLoad}\n onError={onError}\n />\n )}\n {imageStatus !== \"loaded\" && (\n <AvatarFallback>{fallbackContent}</AvatarFallback>\n )}\n </>\n );\n\n if (asChild) {\n return (\n <AvatarContext.Provider value={contextValue}>\n <Slot\n ref={ref as React.Ref<HTMLElement>}\n className={rootClasses}\n {...accessibilityProps}\n {...(restProps as Record<string, unknown>)}\n >\n {content}\n </Slot>\n </AvatarContext.Provider>\n );\n }\n\n return (\n <AvatarContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={rootClasses}\n {...accessibilityProps}\n {...restProps}\n >\n {content}\n </div>\n </AvatarContext.Provider>\n );\n});\n\nAvatarBase.displayName = \"Avatar\";\n\nexport interface AvatarComponent\n extends React.ForwardRefExoticComponent<\n AvatarProps & React.RefAttributes<HTMLDivElement>\n > {\n Root: typeof AvatarBase;\n Image: typeof AvatarImage;\n Fallback: typeof AvatarFallback;\n Badge: typeof AvatarBadge;\n Group: typeof AvatarGroup;\n}\n\nexport const Avatar = AvatarBase as AvatarComponent;\nAvatar.Root = AvatarBase;\nAvatar.Image = AvatarImage;\nAvatar.Fallback = AvatarFallback;\nAvatar.Badge = AvatarBadge;\nAvatar.Group = AvatarGroup;\n\nexport const AvatarRoot = AvatarBase;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { classNames } from \"../../utils/classNames\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport type {\n AccordionRootProps,\n AccordionContextValue,\n AccordionItemProps,\n AccordionItemContextValue,\n AccordionHeaderProps,\n AccordionTriggerProps,\n AccordionContentProps,\n AccordionIconProps,\n AccordionVariant,\n AccordionType,\n} from \"./Accordion.types\";\n\nexport const AccordionContext =\n React.createContext<AccordionContextValue | null>(null);\n\nexport const useAccordionContext = (): AccordionContextValue => {\n const context = React.useContext(AccordionContext);\n if (!context) {\n throw new Error(\n \"Accordion compound components must be rendered within an Accordion.Root.\",\n );\n }\n return context;\n};\n\nexport const AccordionItemContext =\n React.createContext<AccordionItemContextValue | null>(null);\n\nexport const useAccordionItemContext = (): AccordionItemContextValue => {\n const context = React.useContext(AccordionItemContext);\n if (!context) {\n throw new Error(\n \"Accordion.Header, Accordion.Trigger, and Accordion.Content must be rendered within an Accordion.Item.\",\n );\n }\n return context;\n};\n\n/**\n * Accordion.Root provides expansion state management and keyboard navigation for accordion items.\n */\nexport const AccordionRoot = React.forwardRef<HTMLDivElement, AccordionRootProps>(\n function AccordionRoot(props, ref) {\n const {\n type = \"single\",\n variant = \"outline\",\n isDisabled = false,\n className,\n children,\n value: _value,\n defaultValue: _defaultValue,\n onValueChange: _onValueChange,\n ...restProps\n } = props;\n\n const isMultiple = type === \"multiple\";\n const collapsible =\n !isMultiple && \"collapsible\" in props ? Boolean(props.collapsible) : false;\n\n const domProps = { ...restProps };\n delete (domProps as { collapsible?: unknown }).collapsible;\n\n // Multiple mode state\n const [multipleValues, setMultipleValues] = useControllableState<string[]>({\n value: isMultiple ? (props.value as string[] | undefined) : undefined,\n defaultValue: isMultiple\n ? (props.defaultValue as string[] | undefined) ?? []\n : [],\n onChange: isMultiple\n ? (props.onValueChange as ((val: string[]) => void) | undefined)\n : undefined,\n });\n\n const handleSingleChange = React.useCallback(\n (val: string | undefined) => {\n if (!isMultiple && \"onValueChange\" in props && typeof props.onValueChange === \"function\") {\n (props.onValueChange as (v: string) => void)(val ?? \"\");\n }\n },\n [isMultiple, props],\n );\n\n // Single mode state\n const [singleValue, setSingleValue] = useControllableState<\n string | undefined\n >({\n value: !isMultiple ? (props.value as string | undefined) : undefined,\n defaultValue: !isMultiple\n ? (props.defaultValue as string | undefined)\n : undefined,\n onChange: handleSingleChange,\n });\n\n const expandedValues = React.useMemo(() => {\n if (isMultiple) {\n return Array.isArray(multipleValues) ? multipleValues : [];\n }\n return singleValue ? [singleValue] : [];\n }, [isMultiple, multipleValues, singleValue]);\n\n const toggleItem = React.useCallback(\n (itemValue: string) => {\n if (isMultiple) {\n const current = Array.isArray(multipleValues) ? multipleValues : [];\n const next = current.includes(itemValue)\n ? current.filter((v) => v !== itemValue)\n : [...current, itemValue];\n setMultipleValues(next);\n } else {\n const isCurrentOpen = singleValue === itemValue;\n if (isCurrentOpen) {\n if (collapsible) {\n setSingleValue(\"\");\n }\n } else {\n setSingleValue(itemValue);\n }\n }\n },\n [\n isMultiple,\n multipleValues,\n setMultipleValues,\n singleValue,\n setSingleValue,\n collapsible,\n ],\n );\n\n const internalRootRef = React.useRef<HTMLDivElement | null>(null);\n const mergedRef = useMergeRefs(ref, internalRootRef);\n\n const contextValue = React.useMemo<AccordionContextValue>(\n () => ({\n type: type as AccordionType,\n variant: variant as AccordionVariant,\n collapsible,\n isDisabled,\n expandedValues,\n toggleItem,\n rootRef: internalRootRef,\n }),\n [type, variant, collapsible, isDisabled, expandedValues, toggleItem],\n );\n\n return (\n <AccordionContext.Provider value={contextValue}>\n <div\n ref={mergedRef}\n className={classNames(\n \"cl-accordion\",\n `cl-accordion--${variant}`,\n className,\n )}\n {...domProps}\n >\n {children}\n </div>\n </AccordionContext.Provider>\n );\n },\n);\n\nAccordionRoot.displayName = \"Accordion\";\n\n/**\n * Accordion.Item encapsulates a single collapsible panel and header.\n */\nexport const AccordionItem = React.forwardRef<HTMLDivElement, AccordionItemProps>(\n function AccordionItem(\n { value, isDisabled: itemDisabledProp = false, className, children, ...restProps },\n ref,\n ) {\n const { expandedValues, isDisabled: globalDisabled } = useAccordionContext();\n const isOpen = expandedValues.includes(value);\n const isDisabled = Boolean(itemDisabledProp || globalDisabled);\n\n const generatedId = React.useId();\n const triggerId = `cl-accordion-trigger-${value}-${generatedId}`;\n const panelId = `cl-accordion-panel-${value}-${generatedId}`;\n\n const contextValue = React.useMemo<AccordionItemContextValue>(\n () => ({\n value,\n isOpen,\n isDisabled,\n triggerId,\n panelId,\n }),\n [value, isOpen, isDisabled, triggerId, panelId],\n );\n\n return (\n <AccordionItemContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={classNames(\"cl-accordion__item\", className)}\n data-state={isOpen ? \"open\" : \"closed\"}\n data-disabled={isDisabled ? \"\" : undefined}\n {...restProps}\n >\n {children}\n </div>\n </AccordionItemContext.Provider>\n );\n },\n);\n\nAccordionItem.displayName = \"Accordion.Item\";\n\n/**\n * Accordion.Header renders a semantic heading wrapper (h2 - h6) around the trigger button.\n */\nexport const AccordionHeader = React.forwardRef<\n HTMLHeadingElement,\n AccordionHeaderProps\n>(function AccordionHeader(\n { level = 3, className, children, ...restProps },\n ref,\n) {\n const HeadingTag = `h${level}` as const;\n\n return (\n <HeadingTag\n ref={ref}\n className={classNames(\"cl-accordion__header\", className)}\n {...restProps}\n >\n {children}\n </HeadingTag>\n );\n});\n\nAccordionHeader.displayName = \"Accordion.Header\";\n\n/**\n * Accordion.Trigger renders the interactive button that toggles expansion.\n */\nexport const AccordionTrigger = React.forwardRef<\n HTMLButtonElement,\n AccordionTriggerProps\n>(function AccordionTrigger(\n { asChild = false, className, children, onClick, onKeyDown, ...restProps },\n ref,\n) {\n const { toggleItem, rootRef } = useAccordionContext();\n const { value, isOpen, isDisabled, triggerId, panelId } =\n useAccordionItemContext();\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n if (event.defaultPrevented || isDisabled) return;\n toggleItem(value);\n },\n [onClick, isDisabled, toggleItem, value],\n );\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented) return;\n\n const rootEl = rootRef.current;\n if (!rootEl) return;\n\n const triggers = Array.from(\n rootEl.querySelectorAll<HTMLButtonElement>(\n \".cl-accordion__trigger:not([disabled]):not([data-disabled])\",\n ),\n );\n const currentIndex = triggers.indexOf(event.currentTarget);\n if (currentIndex === -1 || triggers.length === 0) return;\n\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n const nextIndex = (currentIndex + 1) % triggers.length;\n triggers[nextIndex]?.focus();\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n const prevIndex = (currentIndex - 1 + triggers.length) % triggers.length;\n triggers[prevIndex]?.focus();\n } else if (event.key === \"Home\") {\n event.preventDefault();\n triggers[0]?.focus();\n } else if (event.key === \"End\") {\n event.preventDefault();\n triggers[triggers.length - 1]?.focus();\n }\n },\n [onKeyDown, rootRef],\n );\n\n const triggerClasses = classNames(\"cl-accordion__trigger\", className);\n\n if (asChild) {\n return (\n <Slot\n ref={ref as React.Ref<HTMLElement>}\n id={triggerId}\n role=\"button\"\n aria-expanded={isOpen}\n aria-controls={panelId}\n data-state={isOpen ? \"open\" : \"closed\"}\n data-disabled={isDisabled ? \"\" : undefined}\n className={triggerClasses}\n onClick={handleClick as unknown as React.MouseEventHandler<HTMLElement>}\n onKeyDown={handleKeyDown as unknown as React.KeyboardEventHandler<HTMLElement>}\n {...(restProps as Record<string, unknown>)}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <button\n ref={ref}\n id={triggerId}\n type=\"button\"\n aria-expanded={isOpen}\n aria-controls={panelId}\n disabled={isDisabled}\n data-state={isOpen ? \"open\" : \"closed\"}\n data-disabled={isDisabled ? \"\" : undefined}\n className={triggerClasses}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n {...restProps}\n >\n {children}\n </button>\n );\n});\n\nAccordionTrigger.displayName = \"Accordion.Trigger\";\n\n/**\n * Accordion.Content renders the collapsible body region with CSS grid height transition.\n */\nexport const AccordionContent = React.forwardRef<\n HTMLDivElement,\n AccordionContentProps\n>(function AccordionContent({ className, children, ...restProps }, ref) {\n const { isOpen, isDisabled, triggerId, panelId } = useAccordionItemContext();\n\n return (\n <div\n ref={ref}\n id={panelId}\n role=\"region\"\n aria-labelledby={triggerId}\n hidden={!isOpen}\n data-state={isOpen ? \"open\" : \"closed\"}\n data-disabled={isDisabled ? \"\" : undefined}\n className={classNames(\"cl-accordion__content\", className)}\n {...restProps}\n >\n <div className=\"cl-accordion__inner\">{children}</div>\n </div>\n );\n});\n\nAccordionContent.displayName = \"Accordion.Content\";\n\n/**\n * Accordion.Icon renders a 16x16 chevron SVG icon that rotates 180° when expanded.\n */\nexport const AccordionIcon = React.forwardRef<\n SVGSVGElement,\n AccordionIconProps\n>(function AccordionIcon({ className, ...restProps }, ref) {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={classNames(\"cl-accordion__icon\", className)}\n aria-hidden=\"true\"\n focusable=\"false\"\n {...restProps}\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n );\n});\n\nAccordionIcon.displayName = \"Accordion.Icon\";\n\nexport interface AccordionComponent\n extends React.ForwardRefExoticComponent<\n AccordionRootProps & React.RefAttributes<HTMLDivElement>\n > {\n Root: typeof AccordionRoot;\n Item: typeof AccordionItem;\n Header: typeof AccordionHeader;\n Trigger: typeof AccordionTrigger;\n Content: typeof AccordionContent;\n Icon: typeof AccordionIcon;\n}\n\nexport const Accordion = AccordionRoot as AccordionComponent;\nAccordion.Root = AccordionRoot;\nAccordion.Item = AccordionItem;\nAccordion.Header = AccordionHeader;\nAccordion.Trigger = AccordionTrigger;\nAccordion.Content = AccordionContent;\nAccordion.Icon = AccordionIcon;\n","import * as React from \"react\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { classNames } from \"../../utils/classNames\";\nimport { Slot } from \"../../primitives/Slot\";\nimport type {\n TabsRootProps,\n TabsListProps,\n TabsTriggerProps,\n TabsContentProps,\n TabsIndicatorProps,\n TabsContextValue,\n TabsOrientation,\n TabsVariant,\n TabsSize,\n TabsActivationMode,\n} from \"./Tabs.types\";\n\nexport const TabsContext = React.createContext<TabsContextValue | null>(null);\n\nexport function useTabsContext(): TabsContextValue {\n const context = React.useContext(TabsContext);\n if (!context) {\n throw new Error(\n \"Tabs compound components must be rendered inside <Tabs /> or <Tabs.Root />\",\n );\n }\n return context;\n}\n\nfunction findFirstTriggerValue(children: React.ReactNode): string | undefined {\n let found: string | undefined;\n React.Children.forEach(children, (child) => {\n if (found || !React.isValidElement(child)) return;\n const props = child.props as Record<string, unknown> | undefined;\n if (\n props &&\n typeof props.value === \"string\" &&\n !props.isDisabled &&\n !props.disabled\n ) {\n found = props.value;\n return;\n }\n if (props && props.children) {\n found = findFirstTriggerValue(props.children as React.ReactNode);\n }\n });\n return found;\n}\n\n/**\n * Tabs.Root (Tabs) provides context, state synchronization, and orientation management.\n */\nexport const TabsRoot = React.forwardRef<HTMLDivElement, TabsRootProps>(\n function TabsRoot(\n {\n value: valueProp,\n defaultValue,\n onValueChange,\n orientation = \"horizontal\",\n variant = \"line\",\n size = \"md\",\n activationMode = \"automatic\",\n isLazy = false,\n className,\n children,\n ...domProps\n },\n ref,\n ) {\n const initialDefault = React.useMemo(() => {\n if (defaultValue !== undefined) return defaultValue;\n return findFirstTriggerValue(children) ?? \"\";\n }, [defaultValue, children]);\n\n const [selectedValue, setSelectedValue] = useControllableState<string>({\n value: valueProp,\n defaultValue: initialDefault,\n onChange: onValueChange,\n });\n\n const generatedId = React.useId();\n const baseId = React.useMemo(\n () => generatedId.replace(/:/g, \"\"),\n [generatedId],\n );\n\n const listRef = React.useRef<HTMLDivElement | null>(null);\n\n const contextValue = React.useMemo<TabsContextValue>(\n () => ({\n selectedValue,\n setSelectedValue,\n orientation: orientation as TabsOrientation,\n variant: variant as TabsVariant,\n size: size as TabsSize,\n activationMode: activationMode as TabsActivationMode,\n isLazy,\n baseId,\n listRef,\n }),\n [\n selectedValue,\n setSelectedValue,\n orientation,\n variant,\n size,\n activationMode,\n isLazy,\n baseId,\n ],\n );\n\n return (\n <TabsContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={classNames(\n \"cl-tabs\",\n `cl-tabs--${orientation}`,\n `cl-tabs--${variant}`,\n `cl-tabs--${size}`,\n className,\n )}\n data-orientation={orientation}\n {...domProps}\n >\n {children}\n </div>\n </TabsContext.Provider>\n );\n },\n);\n\nTabsRoot.displayName = \"Tabs\";\n\n/**\n * Tabs.List renders the semantic role=\"tablist\" container with roving keyboard navigation.\n */\nexport const TabsList = React.forwardRef<HTMLDivElement, TabsListProps>(\n function TabsList(\n { \"aria-label\": ariaLabel, className, children, ...restProps },\n ref,\n ) {\n const { orientation, listRef } = useTabsContext();\n const mergedRef = useMergeRefs(ref, listRef);\n\n return (\n <div\n ref={mergedRef}\n role=\"tablist\"\n aria-orientation={orientation}\n aria-label={ariaLabel}\n data-orientation={orientation}\n className={classNames(\"cl-tabs__list\", className)}\n {...restProps}\n >\n {children}\n </div>\n );\n },\n);\n\nTabsList.displayName = \"Tabs.List\";\n\n/**\n * Tabs.Trigger renders the interactive tab button adhering to WAI-ARIA APG roving tabindex.\n */\nexport const TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n function TabsTrigger(\n {\n value,\n isDisabled = false,\n asChild = false,\n className,\n children,\n onClick,\n onKeyDown,\n ...restProps\n },\n ref,\n ) {\n const {\n selectedValue,\n setSelectedValue,\n orientation,\n activationMode,\n baseId,\n } = useTabsContext();\n\n const isSelected = selectedValue === value;\n const triggerId = `cl-tab-${baseId}-${value}`;\n const panelId = `cl-tabpanel-${baseId}-${value}`;\n\n // Auto-select first tab trigger if no value or defaultValue was passed\n React.useEffect(() => {\n if (!selectedValue && !isDisabled) {\n setSelectedValue(value);\n }\n }, [selectedValue, value, isDisabled, setSelectedValue]);\n\n const handleClick = React.useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n if (!e.defaultPrevented) {\n setSelectedValue(value);\n }\n },\n [isDisabled, onClick, setSelectedValue, value],\n );\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n const list = e.currentTarget.closest('[role=\"tablist\"]');\n if (!list) return;\n\n const triggers = Array.from(\n list.querySelectorAll<HTMLButtonElement>(\n '[role=\"tab\"]:not([disabled]):not([data-disabled])',\n ),\n );\n\n if (triggers.length === 0) return;\n\n const currentIndex = triggers.indexOf(e.currentTarget);\n if (currentIndex === -1) return;\n\n let nextIndex = currentIndex;\n let shouldMove = false;\n\n const isHorizontal = orientation === \"horizontal\";\n const isVertical = orientation === \"vertical\";\n\n switch (e.key) {\n case \"ArrowRight\":\n if (isHorizontal) {\n nextIndex = (currentIndex + 1) % triggers.length;\n shouldMove = true;\n }\n break;\n case \"ArrowLeft\":\n if (isHorizontal) {\n nextIndex = (currentIndex - 1 + triggers.length) % triggers.length;\n shouldMove = true;\n }\n break;\n case \"ArrowDown\":\n if (isVertical) {\n nextIndex = (currentIndex + 1) % triggers.length;\n shouldMove = true;\n }\n break;\n case \"ArrowUp\":\n if (isVertical) {\n nextIndex = (currentIndex - 1 + triggers.length) % triggers.length;\n shouldMove = true;\n }\n break;\n case \"Home\":\n nextIndex = 0;\n shouldMove = true;\n break;\n case \"End\":\n nextIndex = triggers.length - 1;\n shouldMove = true;\n break;\n case \"Enter\":\n case \" \":\n if (!isDisabled) {\n e.preventDefault();\n setSelectedValue(value);\n }\n return;\n default:\n return;\n }\n\n if (shouldMove) {\n e.preventDefault();\n const targetTrigger = triggers[nextIndex];\n if (targetTrigger) {\n targetTrigger.focus();\n if (activationMode === \"automatic\") {\n const targetValue = targetTrigger.getAttribute(\"data-value\");\n if (targetValue) {\n setSelectedValue(targetValue);\n }\n }\n }\n }\n },\n [\n onKeyDown,\n orientation,\n activationMode,\n isDisabled,\n setSelectedValue,\n value,\n ],\n );\n\n const triggerClasses = classNames(\"cl-tabs__trigger\", className);\n\n if (asChild) {\n return (\n <Slot\n ref={ref as React.Ref<HTMLElement>}\n id={triggerId}\n role=\"tab\"\n aria-selected={isSelected}\n aria-controls={panelId}\n tabIndex={isSelected ? 0 : -1}\n data-state={isSelected ? \"active\" : \"inactive\"}\n data-disabled={isDisabled ? \"\" : undefined}\n data-value={value}\n data-orientation={orientation}\n className={triggerClasses}\n onClick={handleClick as unknown as React.MouseEventHandler<HTMLElement>}\n onKeyDown={handleKeyDown as unknown as React.KeyboardEventHandler<HTMLElement>}\n {...(restProps as Record<string, unknown>)}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <button\n ref={ref}\n id={triggerId}\n type=\"button\"\n role=\"tab\"\n aria-selected={isSelected}\n aria-controls={panelId}\n tabIndex={isSelected ? 0 : -1}\n disabled={isDisabled}\n data-state={isSelected ? \"active\" : \"inactive\"}\n data-disabled={isDisabled ? \"\" : undefined}\n data-value={value}\n data-orientation={orientation}\n className={triggerClasses}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n {...restProps}\n >\n {children}\n </button>\n );\n },\n);\n\nTabsTrigger.displayName = \"Tabs.Trigger\";\n\n/**\n * Tabs.Content renders the role=\"tabpanel\" for a corresponding tab trigger.\n */\nexport const TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n function TabsContent({ value, className, children, ...restProps }, ref) {\n const { selectedValue, orientation, isLazy, baseId } = useTabsContext();\n\n const isSelected = selectedValue === value;\n const triggerId = `cl-tab-${baseId}-${value}`;\n const panelId = `cl-tabpanel-${baseId}-${value}`;\n\n if (isLazy && !isSelected) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n id={panelId}\n role=\"tabpanel\"\n aria-labelledby={triggerId}\n tabIndex={0}\n hidden={!isSelected}\n data-state={isSelected ? \"active\" : \"inactive\"}\n data-orientation={orientation}\n className={classNames(\"cl-tabs__content\", className)}\n {...restProps}\n >\n {children}\n </div>\n );\n },\n);\n\nTabsContent.displayName = \"Tabs.Content\";\n\n/**\n * Tabs.Indicator renders an optional visual indicator track.\n */\nexport const TabsIndicator = React.forwardRef<\n HTMLDivElement,\n TabsIndicatorProps\n>(function TabsIndicator({ className, ...restProps }, ref) {\n return (\n <div\n ref={ref}\n aria-hidden=\"true\"\n className={classNames(\"cl-tabs__indicator\", className)}\n {...restProps}\n />\n );\n});\n\nTabsIndicator.displayName = \"Tabs.Indicator\";\n\n/**\n * Compound export namespace adhering to Chellaa React standards.\n */\nexport const Tabs = Object.assign(TabsRoot, {\n Root: TabsRoot,\n List: TabsList,\n Trigger: TabsTrigger,\n Content: TabsContent,\n Indicator: TabsIndicator,\n});\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n size as floatingSize,\n useDismiss,\n useInteractions,\n} from \"@floating-ui/react\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport { Portal } from \"../../primitives/Portal\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport type {\n SelectRootProps,\n SelectTriggerProps,\n SelectValueProps,\n SelectIconProps,\n SelectPortalProps,\n SelectContentProps,\n SelectItemProps,\n SelectItemTextProps,\n SelectItemIndicatorProps,\n SelectGroupProps,\n SelectLabelProps,\n SelectSeparatorProps,\n SelectContextValue,\n} from \"./Select.types\";\n\n/* =========================================================================\n Internal Context\n ========================================================================= */\n\ninterface InternalSelectContext<TValue extends string = string> extends SelectContextValue<TValue> {\n itemLabels: Map<string, string>;\n itemsList: string[];\n registerItem: (value: string, label: string, disabled?: boolean) => () => void;\n disabledItems: Set<string>;\n ariaDescribedBy?: string | undefined;\n getReferenceProps?: (userProps?: React.HTMLProps<Element>) => Record<string, unknown>;\n getFloatingProps?: (userProps?: React.HTMLProps<HTMLElement>) => Record<string, unknown>;\n}\n\nfunction extractText(node: React.ReactNode): string {\n if (typeof node === \"string\") return node;\n if (typeof node === \"number\") return String(node);\n if (!node || typeof node !== \"object\") return \"\";\n if (Array.isArray(node)) return node.map(extractText).join(\"\");\n if (React.isValidElement(node) && (node.props as any)?.children) {\n return extractText((node.props as any).children);\n }\n return \"\";\n}\n\nfunction extractItemMapFromChildren(children: React.ReactNode): Map<string, string> {\n const map = new Map<string, string>();\n function walk(node: React.ReactNode) {\n React.Children.forEach(node, (child) => {\n if (!React.isValidElement(child)) return;\n const props = child.props as any;\n if (props && \"value\" in props && typeof props.value === \"string\") {\n const text = props.textValue ?? extractText(props.children);\n if (text) {\n map.set(props.value, text);\n }\n }\n if (props && props.children) {\n walk(props.children);\n }\n });\n }\n walk(children);\n return map;\n}\n\nconst SelectContext = React.createContext<InternalSelectContext | null>(null);\n\nexport function useSelectContext<TValue extends string = string>(): SelectContextValue<TValue> {\n const context = React.useContext(SelectContext);\n if (!context) {\n throw new Error(\n \"Select subcomponents must be used within a <Select> or <Select.Root> provider.\"\n );\n }\n return context as unknown as SelectContextValue<TValue>;\n}\n\n/* =========================================================================\n 1. SelectRoot / Select\n ========================================================================= */\n\nexport const SelectRoot = React.forwardRef<HTMLDivElement, SelectRootProps>(\n function SelectRoot(props, ref) {\n const formField = useFormField();\n\n const isDisabled = props.isDisabled ?? formField?.disabled ?? false;\n const isInvalid = props.isInvalid ?? formField?.error ?? false;\n const isRequired = props.isRequired ?? formField?.required ?? false;\n const name = props.name ?? formField?.name;\n const ariaDescribedBy = [\n props[\"aria-describedby\"],\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\n formField?.hasHelperText ? formField.helperTextId : null,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const {\n value: valueProp,\n defaultValue,\n onValueChange,\n isOpen: isOpenProp,\n defaultOpen = false,\n onOpenChange,\n size = \"md\",\n variant = \"outline\",\n placeholder,\n options,\n children,\n className,\n isDisabled: _discardDisabled,\n isInvalid: _discardInvalid,\n isRequired: _discardRequired,\n name: _discardName,\n \"aria-describedby\": _discardAria,\n ...rest\n } = props;\n\n // Controlled / Uncontrolled value\n const [value, setValueState] = useControllableState<string | undefined>({\n value: valueProp,\n defaultValue: defaultValue,\n onChange: (next) => {\n if (next !== undefined && onValueChange) {\n onValueChange(next);\n }\n },\n });\n\n // Controlled / Uncontrolled open state\n const [isOpen, setIsOpenState] = useControllableState<boolean>({\n value: isOpenProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n });\n\n const [highlightedValue, setHighlightedValue] = React.useState<string | null>(null);\n const [itemLabels, setItemLabels] = React.useState<Map<string, string>>(() => {\n if (children) {\n return extractItemMapFromChildren(children);\n }\n return new Map();\n });\n const [itemsList, setItemsList] = React.useState<string[]>(() => {\n if (children) {\n return Array.from(extractItemMapFromChildren(children).keys());\n }\n return [];\n });\n const [disabledItems, setDisabledItems] = React.useState<Set<string>>(() => new Set());\n\n const triggerId = React.useId();\n const contentId = React.useId();\n const triggerRef = React.useRef<HTMLButtonElement | null>(null);\n const contentRef = React.useRef<HTMLDivElement | null>(null);\n\n // Floating UI positioning\n const { refs, floatingStyles, context: floatingContext } = useFloating({\n open: isOpen,\n onOpenChange: (open) => {\n if (!open && !isOpen) return;\n setIsOpenState(open);\n },\n placement: \"bottom-start\",\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(4),\n flip({ padding: 8 }),\n shift({ padding: 8 }),\n floatingSize({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n minWidth: `${rects.reference.width}px`,\n });\n },\n }),\n ],\n });\n\n const dismiss = useDismiss(floatingContext, {\n enabled: isOpen,\n outsidePress: true,\n escapeKey: true,\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([dismiss]);\n\n // Item registration helper\n const registerItem = React.useCallback(\n (itemVal: string, itemLabel: string, itemDisabled?: boolean) => {\n setItemLabels((prev) => {\n if (prev.get(itemVal) === itemLabel) return prev;\n const next = new Map(prev);\n next.set(itemVal, itemLabel);\n return next;\n });\n setItemsList((prev) => (prev.includes(itemVal) ? prev : [...prev, itemVal]));\n if (itemDisabled) {\n setDisabledItems((prev) => {\n if (prev.has(itemVal)) return prev;\n const next = new Set(prev);\n next.add(itemVal);\n return next;\n });\n }\n return () => {\n // Retain itemLabels so closed SelectTrigger can display the label\n };\n },\n []\n );\n\n // Populate from flat options if provided\n React.useEffect(() => {\n if (options && options.length > 0) {\n const newMap = new Map<string, string>();\n const newList: string[] = [];\n const newDisabled = new Set<string>();\n for (const opt of options) {\n newMap.set(opt.value, opt.label);\n newList.push(opt.value);\n if (opt.disabled) newDisabled.add(opt.value);\n }\n setItemLabels(newMap);\n setItemsList(newList);\n setDisabledItems(newDisabled);\n }\n }, [options]);\n\n const selectedLabel = value ? itemLabels.get(value) ?? null : null;\n\n const setValue = React.useCallback(\n (nextVal: string) => {\n setValueState(nextVal);\n },\n [setValueState]\n );\n\n const setIsOpen = React.useCallback(\n (nextOpen: boolean) => {\n setIsOpenState(nextOpen);\n if (nextOpen && value) {\n setHighlightedValue(value);\n }\n },\n [setIsOpenState, value]\n );\n\n const contextValue = React.useMemo<InternalSelectContext>(\n () => ({\n value,\n setValue,\n isOpen: Boolean(isOpen),\n setIsOpen,\n highlightedValue,\n setHighlightedValue,\n size,\n variant,\n isDisabled,\n isInvalid,\n isRequired,\n name,\n triggerId,\n contentId,\n triggerRef,\n contentRef,\n selectedLabel,\n registerItem,\n itemLabels,\n itemsList,\n disabledItems,\n ariaDescribedBy,\n refs: {\n setReference: refs.setReference,\n setFloating: refs.setFloating,\n },\n floatingStyles,\n getReferenceProps,\n getFloatingProps,\n }),\n [\n value,\n setValue,\n isOpen,\n setIsOpen,\n highlightedValue,\n size,\n variant,\n isDisabled,\n isInvalid,\n isRequired,\n name,\n triggerId,\n contentId,\n selectedLabel,\n registerItem,\n itemLabels,\n itemsList,\n disabledItems,\n ariaDescribedBy,\n refs.setReference,\n refs.setFloating,\n floatingStyles,\n getReferenceProps,\n getFloatingProps,\n ]\n );\n\n // Auto-render layout if flat options are provided without compound children\n const renderContent = () => {\n if (children) {\n return children;\n }\n if (options && options.length > 0) {\n return (\n <>\n <SelectTrigger>\n <SelectValue placeholder={placeholder ?? undefined} />\n <SelectIcon />\n </SelectTrigger>\n <SelectPortal>\n <SelectContent>\n {options.map((opt) => (\n <SelectItem key={opt.value} value={opt.value} isDisabled={opt.disabled ?? undefined}>\n <SelectItemText>{opt.label}</SelectItemText>\n <SelectItemIndicator />\n </SelectItem>\n ))}\n </SelectContent>\n </SelectPortal>\n </>\n );\n }\n return null;\n };\n\n return (\n <SelectContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={classNames(\"cl-select\", className)}\n data-disabled={isDisabled ? \"true\" : undefined}\n data-invalid={isInvalid ? \"true\" : undefined}\n data-size={size}\n data-variant={variant}\n {...rest}\n >\n {renderContent()}\n {name && (\n <input\n type=\"hidden\"\n name={name}\n value={value ?? \"\"}\n disabled={isDisabled}\n required={isRequired}\n aria-hidden=\"true\"\n />\n )}\n </div>\n </SelectContext.Provider>\n );\n }\n);\n\n/* =========================================================================\n 2. SelectTrigger\n ========================================================================= */\n\nexport const SelectTrigger = React.forwardRef<HTMLButtonElement, SelectTriggerProps>(\n function SelectTrigger(props, forwardedRef) {\n const ctx = useSelectContext();\n const { asChild = false, className, children, onClick, onKeyDown, ...rest } = props;\n\n const mergedRef = useMergeRefs(ctx.triggerRef, (node: HTMLElement | null) => {\n ctx.refs.setReference(node);\n if (typeof forwardedRef === \"function\") {\n forwardedRef(node as HTMLButtonElement | null);\n } else if (forwardedRef) {\n (forwardedRef as React.MutableRefObject<HTMLButtonElement | null>).current = node as HTMLButtonElement | null;\n }\n });\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (ctx.isDisabled) return;\n ctx.setIsOpen(!ctx.isOpen);\n onClick?.(e);\n };\n\n // Type-ahead buffer for closed trigger\n const typeaheadBuffer = React.useRef(\"\");\n const typeaheadTimeout = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Cleanup pending typeahead timeout on unmount\n React.useEffect(() => {\n return () => {\n if (typeaheadTimeout.current) {\n clearTimeout(typeaheadTimeout.current);\n typeaheadTimeout.current = null;\n }\n };\n }, []);\n\n const internal = ctx as unknown as InternalSelectContext;\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (ctx.isDisabled) return;\n\n const enabledList = internal.itemsList.filter((v) => !internal.disabledItems.has(v));\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n if (!ctx.isOpen) {\n ctx.setIsOpen(true);\n } else if (enabledList.length > 0) {\n const currentIndex = ctx.highlightedValue ? enabledList.indexOf(ctx.highlightedValue) : -1;\n const nextIdx = currentIndex < enabledList.length - 1 ? currentIndex + 1 : 0;\n ctx.setHighlightedValue(enabledList[nextIdx] ?? null);\n }\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n if (!ctx.isOpen) {\n ctx.setIsOpen(true);\n } else if (enabledList.length > 0) {\n const currentIndex = ctx.highlightedValue ? enabledList.indexOf(ctx.highlightedValue) : -1;\n const prevIdx = currentIndex > 0 ? currentIndex - 1 : enabledList.length - 1;\n ctx.setHighlightedValue(enabledList[prevIdx] ?? null);\n }\n } else if (e.key === \"Home\" && ctx.isOpen) {\n e.preventDefault();\n if (enabledList.length > 0) {\n ctx.setHighlightedValue(enabledList[0] ?? null);\n }\n } else if (e.key === \"End\" && ctx.isOpen) {\n e.preventDefault();\n if (enabledList.length > 0) {\n ctx.setHighlightedValue(enabledList[enabledList.length - 1] ?? null);\n }\n } else if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n if (!ctx.isOpen) {\n ctx.setIsOpen(true);\n } else {\n if (ctx.highlightedValue && !internal.disabledItems.has(ctx.highlightedValue)) {\n ctx.setValue(ctx.highlightedValue);\n }\n ctx.setIsOpen(false);\n }\n } else if (e.key === \"Escape\" && ctx.isOpen) {\n e.preventDefault();\n ctx.setIsOpen(false);\n } else if (e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n // Printable character typeahead\n if (typeaheadTimeout.current) {\n clearTimeout(typeaheadTimeout.current);\n typeaheadTimeout.current = null;\n }\n typeaheadBuffer.current += e.key.toLowerCase();\n typeaheadTimeout.current = setTimeout(() => {\n typeaheadBuffer.current = \"\";\n typeaheadTimeout.current = null;\n }, 500);\n\n const match = enabledList.find((val) => {\n const label = internal.itemLabels.get(val)?.toLowerCase() ?? \"\";\n return label.startsWith(typeaheadBuffer.current);\n });\n\n if (match) {\n if (!ctx.isOpen) {\n ctx.setValue(match);\n }\n ctx.setHighlightedValue(match);\n }\n }\n\n onKeyDown?.(e);\n };\n\n const triggerClasses = classNames(\n \"cl-select__trigger\",\n `cl-select__trigger--${ctx.variant}`,\n `cl-select__trigger--${ctx.size}`,\n className\n );\n\n const activeDescendantId =\n ctx.isOpen && ctx.highlightedValue ? `${ctx.contentId}-item-${ctx.highlightedValue}` : undefined;\n\n const baseTriggerProps = {\n ref: mergedRef,\n id: ctx.triggerId,\n type: \"button\" as const,\n role: \"combobox\",\n \"aria-haspopup\": \"listbox\" as const,\n \"aria-expanded\": ctx.isOpen,\n \"aria-controls\": ctx.isOpen ? ctx.contentId : undefined,\n \"aria-activedescendant\": activeDescendantId,\n \"aria-invalid\": ctx.isInvalid ? true : undefined,\n \"aria-required\": ctx.isRequired ? true : undefined,\n \"aria-describedby\": (ctx as any).ariaDescribedBy ?? rest[\"aria-describedby\"],\n disabled: ctx.isDisabled,\n \"data-state\": ctx.isOpen ? \"open\" : \"closed\",\n \"data-invalid\": ctx.isInvalid ? \"true\" : undefined,\n \"data-disabled\": ctx.isDisabled ? \"true\" : undefined,\n className: triggerClasses,\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n ...rest,\n };\n\n const triggerProps = internal.getReferenceProps\n ? internal.getReferenceProps(baseTriggerProps as any)\n : baseTriggerProps;\n\n if (asChild) {\n return <Slot {...triggerProps}>{children}</Slot>;\n }\n\n return <button {...triggerProps}>{children}</button>;\n }\n);\n\n/* =========================================================================\n 3. SelectValue\n ========================================================================= */\n\nexport const SelectValue = React.forwardRef<HTMLSpanElement, SelectValueProps>(\n function SelectValue(props, ref) {\n const ctx = useSelectContext();\n const { placeholder = \"Select an option...\", children, className, ...rest } = props;\n\n const displayText = children ?? ctx.selectedLabel ?? (ctx.value ? String(ctx.value) : null);\n const isPlaceholder = !displayText;\n\n return (\n <span\n ref={ref}\n className={classNames(\n \"cl-select__value\",\n isPlaceholder && \"cl-select__value--placeholder\",\n className\n )}\n {...rest}\n >\n {displayText || placeholder}\n </span>\n );\n }\n);\n\n/* =========================================================================\n 4. SelectIcon\n ========================================================================= */\n\nexport const SelectIcon = React.forwardRef<HTMLSpanElement, SelectIconProps>(\n function SelectIcon(props, ref) {\n const { children, className, ...rest } = props;\n\n return (\n <span\n ref={ref}\n className={classNames(\"cl-select__icon\", className)}\n aria-hidden=\"true\"\n {...rest}\n >\n {children || (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n )}\n </span>\n );\n }\n);\n\n/* =========================================================================\n 5. SelectPortal\n ========================================================================= */\n\nexport function SelectPortal({ children, container }: SelectPortalProps) {\n const ctx = useSelectContext();\n if (!ctx.isOpen) return null;\n return <Portal container={container ?? null}>{children}</Portal>;\n}\n\n/* =========================================================================\n 6. SelectContent\n ========================================================================= */\n\nexport const SelectContent = React.forwardRef<HTMLDivElement, SelectContentProps>(\n function SelectContent(props, forwardedRef) {\n const ctx = useSelectContext();\n const { className, children, onKeyDown, ...rest } = props;\n\n const mergedRef = useMergeRefs(ctx.contentRef, (node: HTMLElement | null) => {\n ctx.refs.setFloating(node);\n if (typeof forwardedRef === \"function\") {\n forwardedRef(node as HTMLDivElement | null);\n } else if (forwardedRef) {\n (forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = node as HTMLDivElement | null;\n }\n });\n\n const internal = ctx as unknown as InternalSelectContext;\n\n // Auto-scroll highlighted item into view\n React.useLayoutEffect(() => {\n if (ctx.isOpen && ctx.highlightedValue && ctx.contentRef.current) {\n const itemEl = ctx.contentRef.current.querySelector<HTMLElement>(\n `[data-value=\"${CSS.escape(ctx.highlightedValue)}\"]`\n );\n if (itemEl && typeof itemEl.scrollIntoView === \"function\") {\n itemEl.scrollIntoView({ block: \"nearest\" });\n }\n }\n }, [ctx.isOpen, ctx.highlightedValue]);\n\n // Keyboard navigation inside listbox\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n const enabledList = internal.itemsList.filter((v) => !internal.disabledItems.has(v));\n if (enabledList.length === 0) return;\n\n const currentIndex = ctx.highlightedValue\n ? enabledList.indexOf(ctx.highlightedValue)\n : -1;\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const nextIdx = currentIndex < enabledList.length - 1 ? currentIndex + 1 : 0;\n ctx.setHighlightedValue(enabledList[nextIdx] ?? null);\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const prevIdx = currentIndex > 0 ? currentIndex - 1 : enabledList.length - 1;\n ctx.setHighlightedValue(enabledList[prevIdx] ?? null);\n } else if (e.key === \"Home\") {\n e.preventDefault();\n ctx.setHighlightedValue(enabledList[0] ?? null);\n } else if (e.key === \"End\") {\n e.preventDefault();\n ctx.setHighlightedValue(enabledList[enabledList.length - 1] ?? null);\n } else if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n if (ctx.highlightedValue && !internal.disabledItems.has(ctx.highlightedValue)) {\n ctx.setValue(ctx.highlightedValue);\n ctx.setIsOpen(false);\n ctx.triggerRef.current?.focus();\n }\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n ctx.setIsOpen(false);\n ctx.triggerRef.current?.focus();\n } else if (e.key === \"Tab\") {\n ctx.setIsOpen(false);\n }\n\n onKeyDown?.(e);\n };\n\n if (!ctx.isOpen) return null;\n\n const baseContentProps = {\n ref: mergedRef,\n id: ctx.contentId,\n role: \"listbox\",\n \"aria-labelledby\": ctx.triggerId,\n tabIndex: -1,\n style: ctx.floatingStyles,\n className: classNames(\"cl-select__content\", className),\n onKeyDown: handleKeyDown,\n ...rest,\n };\n\n const contentProps = internal.getFloatingProps\n ? internal.getFloatingProps(baseContentProps as any)\n : baseContentProps;\n\n return (\n <div {...contentProps}>\n {children}\n </div>\n );\n }\n);\n\n/* =========================================================================\n 7. SelectItem\n ========================================================================= */\n\ninterface InternalItemContextValue {\n isSelected: boolean;\n}\n\nconst ItemContext = React.createContext<InternalItemContextValue>({ isSelected: false });\n\nexport const SelectItem = React.forwardRef<HTMLDivElement, SelectItemProps>(\n function SelectItem(props, ref) {\n const ctx = useSelectContext();\n const {\n value,\n isDisabled = false,\n textValue,\n children,\n className,\n onClick,\n onMouseEnter,\n ...rest\n } = props;\n\n const isSelected = ctx.value === value;\n const isHighlighted = ctx.highlightedValue === value;\n\n // Register item text for SelectValue computation\n const itemRef = React.useRef<HTMLDivElement | null>(null);\n const mergedRef = useMergeRefs(itemRef, ref);\n\n const { registerItem } = ctx as unknown as InternalSelectContext;\n\n React.useEffect(() => {\n const label =\n textValue ??\n (typeof children === \"string\" ? children : itemRef.current?.textContent?.trim() ?? value);\n const unregister = registerItem(value, label, isDisabled);\n return unregister;\n }, [value, textValue, isDisabled, registerItem]);\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (isDisabled || ctx.isDisabled) return;\n ctx.setValue(value);\n ctx.setIsOpen(false);\n ctx.triggerRef.current?.focus();\n onClick?.(e);\n };\n\n const handleMouseEnter = (e: React.MouseEvent<HTMLDivElement>) => {\n if (!isDisabled && !ctx.isDisabled) {\n ctx.setHighlightedValue(value);\n }\n onMouseEnter?.(e);\n };\n\n const itemId = `${ctx.contentId}-item-${value}`;\n\n return (\n <ItemContext.Provider value={{ isSelected }}>\n <div\n ref={mergedRef}\n id={itemId}\n role=\"option\"\n data-value={value}\n aria-selected={isSelected}\n aria-disabled={isDisabled ? \"true\" : undefined}\n data-disabled={isDisabled ? \"true\" : undefined}\n data-highlighted={isHighlighted ? \"true\" : undefined}\n className={classNames(\"cl-select__item\", className)}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n {...rest}\n >\n {children}\n </div>\n </ItemContext.Provider>\n );\n }\n);\n\n/* =========================================================================\n 8. SelectItemText\n ========================================================================= */\n\nexport const SelectItemText = React.forwardRef<HTMLSpanElement, SelectItemTextProps>(\n function SelectItemText(props, ref) {\n const { children, className, ...rest } = props;\n\n return (\n <span ref={ref} className={classNames(\"cl-select__item-text\", className)} {...rest}>\n {children}\n </span>\n );\n }\n);\n\n/* =========================================================================\n 9. SelectItemIndicator\n ========================================================================= */\n\nexport const SelectItemIndicator = React.forwardRef<HTMLSpanElement, SelectItemIndicatorProps>(\n function SelectItemIndicator(props, ref) {\n const { isSelected } = React.useContext(ItemContext);\n const { children, className, ...rest } = props;\n\n if (!isSelected) return null;\n\n return (\n <span\n ref={ref}\n aria-hidden=\"true\"\n className={classNames(\"cl-select__item-indicator\", className)}\n {...rest}\n >\n {children || (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"2.5 7 5.5 10 11.5 3.5\" />\n </svg>\n )}\n </span>\n );\n }\n);\n\n/* =========================================================================\n 10. SelectGroup, SelectLabel, SelectSeparator\n ========================================================================= */\n\nexport const SelectGroup = React.forwardRef<HTMLDivElement, SelectGroupProps>(\n function SelectGroup(props, ref) {\n const { className, ...rest } = props;\n return <div ref={ref} role=\"group\" className={classNames(\"cl-select__group\", className)} {...rest} />;\n }\n);\n\nexport const SelectLabel = React.forwardRef<HTMLDivElement, SelectLabelProps>(\n function SelectLabel(props, ref) {\n const { className, ...rest } = props;\n return <div ref={ref} className={classNames(\"cl-select__label\", className)} {...rest} />;\n }\n);\n\nexport const SelectSeparator = React.forwardRef<HTMLDivElement, SelectSeparatorProps>(\n function SelectSeparator(props, ref) {\n const { className, ...rest } = props;\n return <div ref={ref} role=\"separator\" className={classNames(\"cl-select__separator\", className)} {...rest} />;\n }\n);\n\n/* =========================================================================\n Compound Component Object\n ========================================================================= */\n\nexport const Select = Object.assign(SelectRoot, {\n Root: SelectRoot,\n Trigger: SelectTrigger,\n Value: SelectValue,\n Icon: SelectIcon,\n Portal: SelectPortal,\n Content: SelectContent,\n Item: SelectItem,\n ItemText: SelectItemText,\n ItemIndicator: SelectItemIndicator,\n Group: SelectGroup,\n Label: SelectLabel,\n Separator: SelectSeparator,\n});\n","import * as React from \"react\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { classNames } from \"../../utils/classNames\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { Select } from \"../Select\";\nimport type {\n PaginationRootProps,\n PaginationListProps,\n PaginationItemProps,\n PaginationActionProps,\n PaginationEllipsisProps,\n PaginationSizeSelectProps,\n PaginationJumperProps,\n PaginationContextValue,\n PaginationSize,\n PaginationVariant,\n} from \"./Pagination.types\";\n\nexport const PaginationContext =\n React.createContext<PaginationContextValue | null>(null);\n\nexport function usePaginationContext(): PaginationContextValue {\n const context = React.useContext(PaginationContext);\n if (!context) {\n throw new Error(\n \"Pagination compound components must be rendered inside <Pagination /> or <Pagination.Root />\",\n );\n }\n return context;\n}\n\nexport type PaginationRangeItem = number | \"ellipsis-start\" | \"ellipsis-end\";\n\n/**\n * Calculates a windowed range of page items with ellipsis compression.\n */\nexport function getPaginationRange({\n totalPages,\n currentPage,\n siblingCount = 1,\n boundaryCount = 1,\n}: {\n totalPages: number;\n currentPage: number;\n siblingCount?: number;\n boundaryCount?: number;\n}): PaginationRangeItem[] {\n if (totalPages <= 1) return [1];\n\n const range = (start: number, end: number): number[] => {\n const length = end - start + 1;\n return Array.from({ length }, (_, i) => start + i);\n };\n\n // Max visible numbers if no ellipsis:\n // boundaries * 2 + siblings * 2 + current + 2 ellipses\n const totalNumbers = boundaryCount * 2 + siblingCount * 2 + 3;\n\n if (totalPages <= totalNumbers) {\n return range(1, totalPages);\n }\n\n const leftSiblingIndex = Math.max(currentPage - siblingCount, 1);\n const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages);\n\n const shouldShowLeftEllipsis =\n leftSiblingIndex > boundaryCount + 2;\n const shouldShowRightEllipsis =\n rightSiblingIndex < totalPages - (boundaryCount + 1);\n\n if (!shouldShowLeftEllipsis && shouldShowRightEllipsis) {\n const leftItemCount = boundaryCount + siblingCount * 2 + 2;\n const leftRange = range(1, leftItemCount);\n const rightBoundary = range(totalPages - boundaryCount + 1, totalPages);\n return [...leftRange, \"ellipsis-end\", ...rightBoundary];\n }\n\n if (shouldShowLeftEllipsis && !shouldShowRightEllipsis) {\n const leftBoundary = range(1, boundaryCount);\n const rightItemCount = boundaryCount + siblingCount * 2 + 2;\n const rightRange = range(totalPages - rightItemCount + 1, totalPages);\n return [...leftBoundary, \"ellipsis-start\", ...rightRange];\n }\n\n // Both ellipses visible\n const leftBoundary = range(1, boundaryCount);\n const middleRange = range(leftSiblingIndex, rightSiblingIndex);\n const rightBoundary = range(totalPages - boundaryCount + 1, totalPages);\n return [\n ...leftBoundary,\n \"ellipsis-start\",\n ...middleRange,\n \"ellipsis-end\",\n ...rightBoundary,\n ];\n}\n\n/**\n * Pagination.Root (Pagination) manages pagination state, page mathematics, and accessibility landmark.\n */\nexport const PaginationRoot = React.forwardRef<HTMLElement, PaginationRootProps>(\n function PaginationRoot(\n {\n total,\n pageSize: pageSizeProp = 10,\n page: pageProp,\n defaultPage = 1,\n onPageChange,\n onPageSizeChange,\n siblingCount = 1,\n boundaryCount = 1,\n size = \"md\",\n variant = \"outline\",\n isDisabled = false,\n showSizeChanger = false,\n pageSizeOptions = [10, 20, 50, 100],\n showQuickJumper = false,\n \"aria-label\": ariaLabel = \"Pagination\",\n className,\n children,\n ...domProps\n },\n ref,\n ) {\n const [pageSize, setPageSizeInternal] = React.useState<number>(pageSizeProp);\n\n React.useEffect(() => {\n setPageSizeInternal(pageSizeProp);\n }, [pageSizeProp]);\n\n const totalPages = Math.max(1, Math.ceil(total / pageSize));\n\n const [currentPage, setCurrentPage] = useControllableState<number>({\n value: pageProp,\n defaultValue: defaultPage,\n onChange: onPageChange,\n });\n\n const setPage = React.useCallback(\n (nextPage: number) => {\n if (isDisabled) return;\n const clamped = Math.min(Math.max(1, nextPage), totalPages);\n setCurrentPage(clamped);\n },\n [isDisabled, setCurrentPage, totalPages],\n );\n\n const handlePageSizeChange = React.useCallback(\n (newSize: number) => {\n if (isDisabled) return;\n setPageSizeInternal(newSize);\n onPageSizeChange?.(newSize);\n // Reset to page 1 if current page exceeds new total pages\n const newTotalPages = Math.max(1, Math.ceil(total / newSize));\n if (currentPage > newTotalPages) {\n setPage(newTotalPages);\n }\n },\n [currentPage, isDisabled, onPageSizeChange, setPage, total],\n );\n\n const contextValue = React.useMemo<PaginationContextValue>(\n () => ({\n currentPage,\n totalPages,\n pageSize,\n setPage,\n setPageSize: handlePageSizeChange,\n size: size as PaginationSize,\n variant: variant as PaginationVariant,\n isDisabled,\n siblingCount,\n boundaryCount,\n }),\n [\n currentPage,\n totalPages,\n pageSize,\n setPage,\n handlePageSizeChange,\n size,\n variant,\n isDisabled,\n siblingCount,\n boundaryCount,\n ],\n );\n\n const items = React.useMemo(\n () =>\n getPaginationRange({\n totalPages,\n currentPage,\n siblingCount,\n boundaryCount,\n }),\n [totalPages, currentPage, siblingCount, boundaryCount],\n );\n\n return (\n <PaginationContext.Provider value={contextValue}>\n <nav\n ref={ref}\n aria-label={ariaLabel}\n className={classNames(\n \"cl-pagination\",\n `cl-pagination--${size}`,\n `cl-pagination--${variant}`,\n className,\n )}\n {...domProps}\n >\n {children ? (\n children\n ) : (\n <>\n <PaginationList>\n <li className=\"cl-pagination__list-item\">\n <PaginationPrev />\n </li>\n {items.map((item, idx) => (\n <li\n key={\n typeof item === \"number\"\n ? `page-${item}`\n : `${item}-${idx}`\n }\n className=\"cl-pagination__list-item\"\n >\n {typeof item === \"number\" ? (\n <PaginationItem\n page={item}\n isCurrent={item === currentPage}\n >\n {item}\n </PaginationItem>\n ) : (\n <PaginationEllipsis />\n )}\n </li>\n ))}\n <li className=\"cl-pagination__list-item\">\n <PaginationNext />\n </li>\n </PaginationList>\n {showSizeChanger && (\n <PaginationSizeSelect options={pageSizeOptions} />\n )}\n {showQuickJumper && <PaginationJumper />}\n </>\n )}\n </nav>\n </PaginationContext.Provider>\n );\n },\n);\n\nPaginationRoot.displayName = \"Pagination\";\n\n/**\n * Pagination.List renders the semantic <ul role=\"list\"> wrapper for page controls.\n */\nexport const PaginationList = React.forwardRef<\n HTMLUListElement,\n PaginationListProps\n>(function PaginationList({ className, children, ...restProps }, ref) {\n return (\n <ul\n ref={ref}\n role=\"list\"\n className={classNames(\"cl-pagination__list\", className)}\n {...restProps}\n >\n {children}\n </ul>\n );\n});\n\nPaginationList.displayName = \"Pagination.List\";\n\n/**\n * Pagination.Item renders a numeric page button with aria-current marking.\n */\nexport const PaginationItem = React.forwardRef<\n HTMLButtonElement,\n PaginationItemProps\n>(function PaginationItem(\n {\n page,\n isCurrent,\n asChild = false,\n className,\n children,\n onClick,\n \"aria-label\": ariaLabel,\n ...restProps\n },\n ref,\n) {\n const { currentPage, setPage, isDisabled } = usePaginationContext();\n const active = isCurrent ?? currentPage === page;\n\n const handleClick = React.useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n if (isDisabled) return;\n onClick?.(e);\n if (!e.defaultPrevented) {\n setPage(page);\n }\n },\n [isDisabled, onClick, page, setPage],\n );\n\n const itemClasses = classNames(\"cl-pagination__item\", className);\n\n if (asChild) {\n return (\n <Slot\n ref={ref as React.Ref<HTMLElement>}\n aria-current={active ? \"page\" : undefined}\n aria-label={ariaLabel}\n className={itemClasses}\n onClick={handleClick as unknown as React.MouseEventHandler<HTMLElement>}\n {...(restProps as Record<string, unknown>)}\n >\n {children ?? page}\n </Slot>\n );\n }\n\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-current={active ? \"page\" : undefined}\n aria-label={ariaLabel ?? `Page ${page}`}\n disabled={isDisabled}\n className={itemClasses}\n onClick={handleClick}\n {...restProps}\n >\n {children ?? page}\n </button>\n );\n});\n\nPaginationItem.displayName = \"Pagination.Item\";\n\nconst ChevronLeftIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"cl-pagination__icon\"\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n);\n\nconst ChevronRightIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"cl-pagination__icon\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n);\n\nconst ChevronsLeftIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"cl-pagination__icon\"\n >\n <polyline points=\"11 17 6 12 11 7\" />\n <polyline points=\"18 17 13 12 18 7\" />\n </svg>\n);\n\nconst ChevronsRightIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"cl-pagination__icon\"\n >\n <polyline points=\"13 17 18 12 13 7\" />\n <polyline points=\"6 17 11 12 6 7\" />\n </svg>\n);\n\n/**\n * Pagination.Prev navigates to the preceding page.\n */\nexport const PaginationPrev = React.forwardRef<\n HTMLButtonElement,\n PaginationActionProps\n>(function PaginationPrev(\n { asChild = false, className, children, onClick, ...restProps },\n ref,\n) {\n const { currentPage, setPage, isDisabled } = usePaginationContext();\n const isBoundary = currentPage <= 1;\n const disabled = isDisabled || isBoundary;\n\n const handleClick = React.useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) return;\n onClick?.(e);\n if (!e.defaultPrevented) {\n setPage(currentPage - 1);\n }\n },\n [disabled, onClick, setPage, currentPage],\n );\n\n const prevClasses = classNames(\"cl-pagination__prev\", className);\n\n if (asChild) {\n return (\n <Slot\n ref={ref as React.Ref<HTMLElement>}\n aria-label=\"Go to previous page\"\n aria-disabled={disabled ? \"true\" : undefined}\n className={prevClasses}\n onClick={handleClick as unknown as React.MouseEventHandler<HTMLElement>}\n {...(restProps as Record<string, unknown>)}\n >\n {children ?? <ChevronLeftIcon />}\n </Slot>\n );\n }\n\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-label=\"Go to previous page\"\n disabled={disabled}\n className={prevClasses}\n onClick={handleClick}\n {...restProps}\n >\n {children ?? <ChevronLeftIcon />}\n </button>\n );\n});\n\nPaginationPrev.displayName = \"Pagination.Prev\";\n\n/**\n * Pagination.Next navigates to the succeeding page.\n */\nexport const PaginationNext = React.forwardRef<\n HTMLButtonElement,\n PaginationActionProps\n>(function PaginationNext(\n { asChild = false, className, children, onClick, ...restProps },\n ref,\n) {\n const { currentPage, totalPages, setPage, isDisabled } =\n usePaginationContext();\n const isBoundary = currentPage >= totalPages;\n const disabled = isDisabled || isBoundary;\n\n const handleClick = React.useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) return;\n onClick?.(e);\n if (!e.defaultPrevented) {\n setPage(currentPage + 1);\n }\n },\n [disabled, onClick, setPage, currentPage],\n );\n\n const nextClasses = classNames(\"cl-pagination__next\", className);\n\n if (asChild) {\n return (\n <Slot\n ref={ref as React.Ref<HTMLElement>}\n aria-label=\"Go to next page\"\n aria-disabled={disabled ? \"true\" : undefined}\n className={nextClasses}\n onClick={handleClick as unknown as React.MouseEventHandler<HTMLElement>}\n {...(restProps as Record<string, unknown>)}\n >\n {children ?? <ChevronRightIcon />}\n </Slot>\n );\n }\n\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-label=\"Go to next page\"\n disabled={disabled}\n className={nextClasses}\n onClick={handleClick}\n {...restProps}\n >\n {children ?? <ChevronRightIcon />}\n </button>\n );\n});\n\nPaginationNext.displayName = \"Pagination.Next\";\n\n/**\n * Pagination.First jumps directly to the first page (Page 1).\n */\nexport const PaginationFirst = React.forwardRef<\n HTMLButtonElement,\n PaginationActionProps\n>(function PaginationFirst(\n { asChild = false, className, children, onClick, ...restProps },\n ref,\n) {\n const { currentPage, setPage, isDisabled } = usePaginationContext();\n const disabled = isDisabled || currentPage <= 1;\n\n const handleClick = React.useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) return;\n onClick?.(e);\n if (!e.defaultPrevented) {\n setPage(1);\n }\n },\n [disabled, onClick, setPage],\n );\n\n const firstClasses = classNames(\"cl-pagination__first\", className);\n\n if (asChild) {\n return (\n <Slot\n ref={ref as React.Ref<HTMLElement>}\n aria-label=\"Go to first page\"\n aria-disabled={disabled ? \"true\" : undefined}\n className={firstClasses}\n onClick={handleClick as unknown as React.MouseEventHandler<HTMLElement>}\n {...(restProps as Record<string, unknown>)}\n >\n {children ?? <ChevronsLeftIcon />}\n </Slot>\n );\n }\n\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-label=\"Go to first page\"\n disabled={disabled}\n className={firstClasses}\n onClick={handleClick}\n {...restProps}\n >\n {children ?? <ChevronsLeftIcon />}\n </button>\n );\n});\n\nPaginationFirst.displayName = \"Pagination.First\";\n\n/**\n * Pagination.Last jumps directly to the final page.\n */\nexport const PaginationLast = React.forwardRef<\n HTMLButtonElement,\n PaginationActionProps\n>(function PaginationLast(\n { asChild = false, className, children, onClick, ...restProps },\n ref,\n) {\n const { currentPage, totalPages, setPage, isDisabled } =\n usePaginationContext();\n const disabled = isDisabled || currentPage >= totalPages;\n\n const handleClick = React.useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) return;\n onClick?.(e);\n if (!e.defaultPrevented) {\n setPage(totalPages);\n }\n },\n [disabled, onClick, setPage, totalPages],\n );\n\n const lastClasses = classNames(\"cl-pagination__last\", className);\n\n if (asChild) {\n return (\n <Slot\n ref={ref as React.Ref<HTMLElement>}\n aria-label=\"Go to last page\"\n aria-disabled={disabled ? \"true\" : undefined}\n className={lastClasses}\n onClick={handleClick as unknown as React.MouseEventHandler<HTMLElement>}\n {...(restProps as Record<string, unknown>)}\n >\n {children ?? <ChevronsRightIcon />}\n </Slot>\n );\n }\n\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-label=\"Go to last page\"\n disabled={disabled}\n className={lastClasses}\n onClick={handleClick}\n {...restProps}\n >\n {children ?? <ChevronsRightIcon />}\n </button>\n );\n});\n\nPaginationLast.displayName = \"Pagination.Last\";\n\n/**\n * Pagination.Ellipsis renders the non-interactive truncation indicator.\n */\nexport const PaginationEllipsis = React.forwardRef<\n HTMLSpanElement,\n PaginationEllipsisProps\n>(function PaginationEllipsis({ className, children, ...restProps }, ref) {\n return (\n <span\n ref={ref}\n aria-hidden=\"true\"\n className={classNames(\"cl-pagination__ellipsis\", className)}\n {...restProps}\n >\n {children ?? \"…\"}\n </span>\n );\n});\n\nPaginationEllipsis.displayName = \"Pagination.Ellipsis\";\n\n/**\n * Pagination.SizeSelect renders the page size dropdown reusing @chellaa/react's Select component.\n */\nexport const PaginationSizeSelect = React.forwardRef<\n HTMLButtonElement,\n PaginationSizeSelectProps\n>(function PaginationSizeSelect(\n {\n options = [10, 20, 50, 100],\n className,\n onChange,\n \"aria-label\": ariaLabel = \"Page size\",\n isDisabled: isDisabledProp,\n ...restProps\n },\n ref,\n) {\n const { pageSize, setPageSize, size, isDisabled: isContextDisabled } =\n usePaginationContext();\n const disabled = isDisabledProp ?? isContextDisabled;\n\n const handleValueChange = React.useCallback(\n (val: string) => {\n const num = parseInt(val, 10);\n if (!isNaN(num)) {\n setPageSize(num);\n onChange?.(num);\n }\n },\n [onChange, setPageSize],\n );\n\n return (\n <Select.Root\n value={String(pageSize)}\n onValueChange={handleValueChange}\n isDisabled={disabled}\n size={size}\n className={classNames(\"cl-pagination__size-select-root\", className)}\n >\n <Select.Trigger\n ref={ref}\n aria-label={ariaLabel}\n className=\"cl-pagination__size-select-trigger\"\n {...restProps}\n >\n <Select.Value>{`${pageSize} / page`}</Select.Value>\n <Select.Icon />\n </Select.Trigger>\n <Select.Portal>\n <Select.Content className=\"cl-pagination__size-select-content\">\n {options.map((opt) => (\n <Select.Item key={opt} value={String(opt)}>\n <Select.ItemText>{opt} / page</Select.ItemText>\n <Select.ItemIndicator />\n </Select.Item>\n ))}\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n );\n});\n\nPaginationSizeSelect.displayName = \"Pagination.SizeSelect\";\n\n/**\n * Pagination.Jumper renders a direct page jump number input.\n */\nexport const PaginationJumper = React.forwardRef<\n HTMLSpanElement,\n PaginationJumperProps\n>(function PaginationJumper({ className, children, ...restProps }, ref) {\n const { totalPages, setPage, isDisabled } = usePaginationContext();\n const [val, setVal] = React.useState<string>(\"\");\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n const num = parseInt(val, 10);\n if (!isNaN(num) && num >= 1 && num <= totalPages) {\n setPage(num);\n setVal(\"\");\n }\n }\n },\n [val, totalPages, setPage],\n );\n\n return (\n <span\n ref={ref}\n className={classNames(\"cl-pagination__jumper\", className)}\n {...restProps}\n >\n Go to\n <input\n type=\"number\"\n min={1}\n max={totalPages}\n aria-label=\"Jump to page\"\n disabled={isDisabled}\n value={val}\n onChange={(e) => setVal(e.target.value)}\n onKeyDown={handleKeyDown}\n className=\"cl-pagination__jumper-input\"\n />\n </span>\n );\n});\n\nPaginationJumper.displayName = \"Pagination.Jumper\";\n\n/**\n * Compound export object adhering to Chellaa React component architecture.\n */\nexport const Pagination = Object.assign(PaginationRoot, {\n Root: PaginationRoot,\n List: PaginationList,\n Item: PaginationItem,\n Prev: PaginationPrev,\n Next: PaginationNext,\n First: PaginationFirst,\n Last: PaginationLast,\n Ellipsis: PaginationEllipsis,\n SizeSelect: PaginationSizeSelect,\n Jumper: PaginationJumper,\n});\n","import * as React from \"react\";\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n size as floatingSize,\n useDismiss,\n useInteractions,\n} from \"@floating-ui/react\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport { Portal } from \"../../primitives/Portal\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport type {\n ComboboxProps,\n ComboboxRootProps,\n ComboboxControlProps,\n ComboboxInputProps,\n ComboboxTriggerProps,\n ComboboxPortalProps,\n ComboboxContentProps,\n ComboboxItemProps,\n ComboboxGroupProps,\n ComboboxGroupLabelProps,\n ComboboxEmptyProps,\n ComboboxTagProps,\n ComboboxClearProps,\n ComboboxContextValue,\n} from \"./Combobox.types\";\n\ninterface InternalComboboxContext extends ComboboxContextValue {\n contentElementRef: React.MutableRefObject<HTMLDivElement | null>;\n hasOptions: boolean;\n setHasOptions: (has: boolean) => void;\n}\n\nconst ComboboxContext = React.createContext<InternalComboboxContext | null>(null);\n\nexport function useComboboxContext(): ComboboxContextValue {\n const context = React.useContext(ComboboxContext);\n if (!context) {\n throw new Error(\n \"Combobox subcomponents must be used within a <Combobox> or <Combobox.Root> provider.\"\n );\n }\n return context;\n}\n\nexport const useCombobox = useComboboxContext;\n\n/* =========================================================================\n 1. ComboboxRoot / Combobox\n ========================================================================= */\n\nexport const ComboboxRoot = React.forwardRef<HTMLDivElement, ComboboxRootProps>(\n function ComboboxRoot(props, ref) {\n const formField = useFormField();\n\n const {\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange,\n searchValue: searchValueProp,\n defaultSearchValue = \"\",\n onSearchChange,\n isOpen: isOpenProp,\n defaultOpen = false,\n onOpenChange,\n isDisabled: disabledProp,\n isInvalid: isInvalidProp,\n isLoading: isLoadingProp = false,\n isMulti = false,\n size: sizeProp = \"md\",\n variant: variantProp = \"outline\",\n filter = (itemVal: string, itemText: string, search: string) => {\n if (!search) return true;\n const q = search.toLowerCase().trim();\n return (\n itemVal.toLowerCase().includes(q) ||\n itemText.toLowerCase().includes(q)\n );\n },\n options,\n placeholder,\n className,\n children,\n id: idProp,\n name: nameProp,\n isRequired: isRequiredProp,\n \"aria-describedby\": ariaDescribedByProp,\n ...rest\n } = props;\n\n const isDisabled = disabledProp ?? formField?.disabled ?? false;\n const isInvalid = isInvalidProp ?? formField?.error ?? false;\n const isRequired = isRequiredProp ?? (props as any).required ?? formField?.required ?? false;\n const name = nameProp ?? formField?.name;\n const ariaDescribedBy = [\n ariaDescribedByProp,\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\n formField?.hasHelperText ? formField.helperTextId : null,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const size = sizeProp ?? \"md\";\n const variant = variantProp;\n const isLoading = isLoadingProp;\n\n const baseId = React.useId().replace(/:/g, \"\");\n const generatedInputId = `cl-combobox-input-${baseId}`;\n const inputId = idProp ?? formField?.id ?? generatedInputId;\n const listboxId = `cl-combobox-listbox-${baseId}`;\n\n // Resolve initial search label for single-select when options are available\n const initialVal = valueProp !== undefined ? valueProp : defaultValueProp;\n const initialSelectedOption =\n !isMulti && options && initialVal !== undefined\n ? options.find((o) => o.value === initialVal)\n : undefined;\n\n const resolvedDefaultSearch =\n defaultSearchValue ||\n (typeof initialSelectedOption?.label === \"string\"\n ? initialSelectedOption.label\n : typeof initialSelectedOption?.value === \"string\"\n ? initialSelectedOption.value\n : \"\");\n\n // Controlled or uncontrolled value\n const [value, setValueState] = useControllableState<any>({\n value: valueProp,\n defaultValue: defaultValueProp !== undefined ? defaultValueProp : isMulti ? [] : \"\",\n onChange: onValueChange,\n });\n\n // Controlled or uncontrolled search text\n const [searchValue, setSearchValueState] = useControllableState<string>({\n value: searchValueProp,\n defaultValue: resolvedDefaultSearch,\n onChange: onSearchChange,\n });\n\n // Controlled or uncontrolled open state\n const [isOpen, setIsOpenState] = useControllableState<boolean>({\n value: isOpenProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n });\n\n const [isFiltering, setIsFiltering] = React.useState<boolean>(false);\n const [pendingHighlight, setPendingHighlight] = React.useState<\n \"first\" | \"last\" | \"selected\" | null\n >(null);\n\n const openWithHighlight = React.useCallback(\n (target: \"first\" | \"last\" | \"selected\") => {\n if (isDisabled) return;\n setIsFiltering(false);\n setPendingHighlight(target);\n setIsOpenState(true);\n },\n [isDisabled, setIsOpenState]\n );\n\n const [activeId, setActiveId] = React.useState<string | null>(null);\n const [hasOptions, setHasOptions] = React.useState<boolean>(true);\n const setHasOptionsCallback = React.useCallback((has: boolean) => {\n setHasOptions((prev) => (prev === has ? prev : has));\n }, []);\n\n const inputRef = React.useRef<HTMLInputElement | null>(null);\n const contentElementRef = React.useRef<HTMLDivElement | null>(null);\n\n // Floating UI positioning\n const {\n refs,\n floatingStyles,\n context: floatingContext,\n } = useFloating({\n open: isOpen,\n onOpenChange: (open) => {\n if (!isDisabled) {\n setIsOpenState(open);\n }\n },\n whileElementsMounted: autoUpdate,\n placement: \"bottom-start\",\n middleware: [\n offset(4),\n flip({ fallbackAxisSideDirection: \"start\" }),\n shift({ padding: 8 }),\n floatingSize({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n });\n },\n }),\n ],\n });\n\n const dismiss = useDismiss(floatingContext, {\n outsidePress: true,\n escapeKey: false, // Handled specifically by input keydown\n });\n\n useInteractions([dismiss]);\n\n // Selection handlers\n const selectItem = React.useCallback(\n (itemVal: string, itemText: string) => {\n if (isMulti) {\n const currentArr = Array.isArray(value) ? value : [];\n const exists = currentArr.includes(itemVal);\n const nextArr = exists\n ? currentArr.filter((v) => v !== itemVal)\n : [...currentArr, itemVal];\n setValueState(nextArr);\n setSearchValueState(\"\");\n setIsFiltering(false);\n if (inputRef.current) {\n inputRef.current.focus();\n }\n } else {\n setValueState(itemVal);\n setSearchValueState(itemText || itemVal);\n setIsFiltering(false);\n setIsOpenState(false);\n setActiveId(null);\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }\n },\n [isMulti, value, setValueState, setSearchValueState, setIsOpenState]\n );\n\n const removeItem = React.useCallback(\n (itemVal: string) => {\n if (isMulti && Array.isArray(value)) {\n setValueState(value.filter((v) => v !== itemVal));\n }\n },\n [isMulti, value, setValueState]\n );\n\n const clearSelection = React.useCallback(() => {\n setValueState(isMulti ? [] : \"\");\n setSearchValueState(\"\");\n setIsFiltering(false);\n setActiveId(null);\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }, [isMulti, setValueState, setSearchValueState]);\n\n const registerItem = React.useCallback(() => () => {}, []);\n const updateItemVisibility = React.useCallback(() => {}, []);\n\n const contextValue: InternalComboboxContext = React.useMemo(\n () => ({\n value,\n selectItem,\n removeItem,\n clearSelection,\n searchValue,\n setSearchValue: setSearchValueState,\n isOpen,\n setIsOpen: setIsOpenState,\n activeId,\n setActiveId,\n inputRef,\n controlRef: refs.setReference,\n contentRef: refs.setFloating,\n contentElementRef,\n hasOptions,\n setHasOptions: setHasOptionsCallback,\n floatingStyles,\n listboxId,\n inputId,\n isMulti,\n isDisabled,\n isInvalid,\n isLoading,\n size,\n variant,\n filter,\n isFiltering,\n setIsFiltering,\n pendingHighlight,\n setPendingHighlight,\n openWithHighlight,\n ariaDescribedBy,\n isRequired,\n name,\n registerItem,\n updateItemVisibility,\n visibleItems: [],\n filteredCount: hasOptions ? 1 : 0,\n }),\n [\n value,\n selectItem,\n removeItem,\n clearSelection,\n searchValue,\n setSearchValueState,\n isOpen,\n setIsOpenState,\n activeId,\n refs.setReference,\n refs.setFloating,\n hasOptions,\n setHasOptionsCallback,\n floatingStyles,\n listboxId,\n inputId,\n isMulti,\n isDisabled,\n isInvalid,\n isLoading,\n size,\n variant,\n filter,\n isFiltering,\n pendingHighlight,\n openWithHighlight,\n ariaDescribedBy,\n isRequired,\n name,\n registerItem,\n updateItemVisibility,\n ]\n );\n\n const rootClasses = classNames(\n \"cl-combobox\",\n `cl-combobox--${size}`,\n `cl-combobox--${variant}`,\n className\n );\n\n const mergedRootRef = useMergeRefs(ref, refs.setReference);\n\n return (\n <ComboboxContext.Provider value={contextValue}>\n <div ref={mergedRootRef} className={rootClasses} {...rest}>\n {children ?? (\n <>\n <ComboboxControl>\n {isMulti && Array.isArray(value) && value.length > 0 && (\n <div className=\"cl-combobox__tags\">\n {value.map((val) => {\n const opt = options?.find((o) => o.value === val);\n return (\n <ComboboxTag key={val} value={val}>\n {opt?.label ?? val}\n </ComboboxTag>\n );\n })}\n </div>\n )}\n <ComboboxInput placeholder={placeholder} />\n <ComboboxClear />\n <ComboboxTrigger />\n </ComboboxControl>\n <ComboboxContent>\n <ComboboxEmpty>No results found.</ComboboxEmpty>\n {options?.map((opt) => (\n <ComboboxItem\n key={opt.value}\n value={opt.value}\n isDisabled={opt.disabled}\n >\n {opt.label ?? opt.value}\n </ComboboxItem>\n ))}\n </ComboboxContent>\n </>\n )}\n </div>\n </ComboboxContext.Provider>\n );\n }\n);\n\n/* =========================================================================\n 2. ComboboxControl\n ========================================================================= */\n\nexport const ComboboxControl = React.forwardRef<HTMLDivElement, ComboboxControlProps>(\n function ComboboxControl(props, ref) {\n const ctx = useComboboxContext();\n const { asChild = false, className, children, ...rest } = props;\n const combinedRef = useMergeRefs(ref, ctx.controlRef);\n\n const controlClasses = classNames(\"cl-combobox__control\", className);\n\n if (asChild) {\n return (\n <Slot\n ref={combinedRef}\n data-disabled={ctx.isDisabled ? \"true\" : undefined}\n data-invalid={ctx.isInvalid ? \"true\" : undefined}\n className={controlClasses}\n {...rest}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <div\n ref={combinedRef}\n data-disabled={ctx.isDisabled ? \"true\" : undefined}\n data-invalid={ctx.isInvalid ? \"true\" : undefined}\n className={controlClasses}\n {...rest}\n >\n {children}\n </div>\n );\n }\n);\n\n/* =========================================================================\n 3. ComboboxInput\n ========================================================================= */\n\nexport const ComboboxInput = React.forwardRef<HTMLInputElement, ComboboxInputProps>(\n function ComboboxInput(props, ref) {\n const ctx = React.useContext(ComboboxContext);\n if (!ctx) throw new Error(\"ComboboxInput must be used within Combobox\");\n\n const {\n asChild = false,\n className,\n onChange,\n onKeyDown,\n onFocus,\n onBlur,\n onClick,\n disabled: disabledProp,\n placeholder,\n value: inputValProp,\n ...rest\n } = props;\n\n const isDisabled = disabledProp ?? ctx.isDisabled;\n\n const getVisibleOptions = () => {\n const container = ctx.contentElementRef.current;\n if (!container) return [];\n return Array.from(\n container.querySelectorAll<HTMLElement>(\n '[role=\"option\"]:not([aria-disabled=\"true\"])'\n )\n );\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (isDisabled) return;\n const nextQuery = e.target.value;\n ctx.setIsFiltering(true);\n ctx.setSearchValue(nextQuery);\n if (!ctx.isOpen) {\n ctx.setIsOpen(true);\n }\n onChange?.(e);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (isDisabled) return;\n\n const options = getVisibleOptions();\n\n switch (e.key) {\n case \"ArrowDown\": {\n e.preventDefault();\n if (!ctx.isOpen) {\n ctx.openWithHighlight(ctx.value && !ctx.isMulti ? \"selected\" : \"first\");\n break;\n }\n if (options.length > 0) {\n const currentIndex = options.findIndex((opt) => opt.id === ctx.activeId);\n const nextIndex =\n currentIndex === -1 || currentIndex === options.length - 1\n ? 0\n : currentIndex + 1;\n const target = options[nextIndex];\n if (target) {\n ctx.setActiveId(target.id);\n target.scrollIntoView?.({ block: \"nearest\" });\n }\n }\n break;\n }\n\n case \"ArrowUp\": {\n e.preventDefault();\n if (!ctx.isOpen) {\n ctx.openWithHighlight(ctx.value && !ctx.isMulti ? \"selected\" : \"last\");\n break;\n }\n if (options.length > 0) {\n const currentIndex = options.findIndex((opt) => opt.id === ctx.activeId);\n const prevIndex =\n currentIndex <= 0 ? options.length - 1 : currentIndex - 1;\n const target = options[prevIndex];\n if (target) {\n ctx.setActiveId(target.id);\n target.scrollIntoView?.({ block: \"nearest\" });\n }\n }\n break;\n }\n\n case \"Home\": {\n if (ctx.isOpen && options.length > 0) {\n e.preventDefault();\n const target = options[0];\n if (target) {\n ctx.setActiveId(target.id);\n target.scrollIntoView?.({ block: \"nearest\" });\n }\n }\n break;\n }\n\n case \"End\": {\n if (ctx.isOpen && options.length > 0) {\n e.preventDefault();\n const target = options[options.length - 1];\n if (target) {\n ctx.setActiveId(target.id);\n target.scrollIntoView?.({ block: \"nearest\" });\n }\n }\n break;\n }\n\n case \"Enter\": {\n if (ctx.isOpen && ctx.activeId) {\n e.preventDefault();\n const activeEl = document.getElementById(ctx.activeId);\n if (activeEl && activeEl.getAttribute(\"aria-disabled\") !== \"true\") {\n const val = activeEl.getAttribute(\"data-value\") || \"\";\n const text =\n activeEl.getAttribute(\"data-label\") ||\n activeEl.textContent ||\n val;\n ctx.selectItem(val, text);\n }\n }\n break;\n }\n\n case \"Escape\": {\n if (ctx.isOpen) {\n e.preventDefault();\n e.stopPropagation();\n ctx.setIsOpen(false);\n ctx.setActiveId(null);\n }\n break;\n }\n\n case \"Tab\": {\n if (ctx.isOpen) {\n ctx.setIsOpen(false);\n ctx.setActiveId(null);\n }\n break;\n }\n\n case \"Backspace\": {\n if (\n ctx.isMulti &&\n !ctx.searchValue &&\n Array.isArray(ctx.value) &&\n ctx.value.length > 0\n ) {\n const lastVal = ctx.value[ctx.value.length - 1];\n ctx.removeItem(lastVal);\n }\n break;\n }\n }\n\n onKeyDown?.(e);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n onFocus?.(e);\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n onBlur?.(e);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n if (isDisabled) return;\n if (!ctx.isOpen) {\n ctx.openWithHighlight(\"selected\");\n if (!ctx.isMulti && ctx.value) {\n ctx.inputRef.current?.select();\n }\n }\n onClick?.(e);\n };\n\n const combinedRef = (node: HTMLInputElement | null) => {\n ctx.inputRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n const inputValue =\n inputValProp !== undefined ? inputValProp : ctx.searchValue;\n\n const inputClasses = classNames(\"cl-combobox__input\", className);\n\n if (asChild) {\n return (\n <Slot\n {...({\n ref: combinedRef,\n role: \"combobox\",\n \"aria-autocomplete\": \"list\",\n \"aria-expanded\": ctx.isOpen,\n \"aria-controls\": ctx.listboxId,\n \"aria-activedescendant\": ctx.activeId ?? undefined,\n \"aria-haspopup\": \"listbox\",\n \"aria-invalid\": ctx.isInvalid || undefined,\n \"aria-disabled\": isDisabled || undefined,\n \"aria-busy\": ctx.isLoading || undefined,\n \"aria-describedby\": ctx.ariaDescribedBy,\n \"aria-required\": ctx.isRequired || undefined,\n name: ctx.name,\n required: ctx.isRequired || undefined,\n id: ctx.inputId,\n autoComplete: \"off\",\n spellCheck: \"false\",\n value: inputValue,\n onChange: handleChange,\n onKeyDown: handleKeyDown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onClick: handleClick,\n placeholder,\n className: inputClasses,\n ...rest,\n } as any)}\n />\n );\n }\n\n return (\n <input\n ref={combinedRef}\n type=\"text\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-expanded={ctx.isOpen}\n aria-controls={ctx.listboxId}\n aria-activedescendant={ctx.activeId ?? undefined}\n aria-haspopup=\"listbox\"\n aria-invalid={ctx.isInvalid || undefined}\n aria-disabled={isDisabled || undefined}\n aria-busy={ctx.isLoading || undefined}\n aria-describedby={ctx.ariaDescribedBy}\n aria-required={ctx.isRequired || undefined}\n name={ctx.name}\n required={ctx.isRequired || undefined}\n disabled={isDisabled}\n id={ctx.inputId}\n autoComplete=\"off\"\n spellCheck=\"false\"\n value={inputValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onClick={handleClick}\n placeholder={placeholder}\n className={inputClasses}\n {...rest}\n />\n );\n }\n);\n\n/* =========================================================================\n 3. ComboboxTrigger\n ========================================================================= */\n\nexport const ComboboxTrigger = React.forwardRef<HTMLButtonElement, ComboboxTriggerProps>(\n function ComboboxTrigger(props, ref) {\n const ctx = useComboboxContext();\n const {\n asChild = false,\n className,\n onClick,\n children,\n disabled: disabledProp,\n ...rest\n } = props;\n\n const isDisabled = disabledProp ?? ctx.isDisabled;\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (isDisabled) return;\n if (ctx.isOpen) {\n ctx.setIsOpen(false);\n } else {\n ctx.openWithHighlight(\"selected\");\n }\n if (ctx.inputRef.current) {\n ctx.inputRef.current.focus();\n }\n onClick?.(e);\n };\n\n const triggerClasses = classNames(\"cl-combobox__trigger\", className);\n\n if (asChild) {\n return (\n <Slot\n ref={ref}\n type=\"button\"\n tabIndex={-1}\n aria-label=\"Toggle options\"\n data-state={ctx.isOpen ? \"open\" : \"closed\"}\n aria-disabled={isDisabled || undefined}\n onClick={handleClick}\n className={triggerClasses}\n {...rest}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <button\n ref={ref}\n type=\"button\"\n tabIndex={-1}\n aria-label=\"Toggle options\"\n data-state={ctx.isOpen ? \"open\" : \"closed\"}\n disabled={isDisabled}\n onClick={handleClick}\n className={triggerClasses}\n {...rest}\n >\n {children ?? (\n <svg\n className=\"cl-combobox__trigger-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 9l6 6 6-6\" />\n </svg>\n )}\n </button>\n );\n }\n);\n\n/* =========================================================================\n 4. ComboboxPortal\n ========================================================================= */\n\nexport const ComboboxPortal: React.FC<ComboboxPortalProps> = ({\n children,\n container,\n}) => {\n return container !== undefined ? (\n <Portal container={container}>{children}</Portal>\n ) : (\n <Portal>{children}</Portal>\n );\n};\n\n/* =========================================================================\n 5. ComboboxContent\n ========================================================================= */\n\nexport const ComboboxContent = React.forwardRef<HTMLDivElement, ComboboxContentProps>(\n function ComboboxContent(props, ref) {\n const ctx = React.useContext(ComboboxContext);\n if (!ctx) throw new Error(\"ComboboxContent must be used within Combobox\");\n\n const { asChild = false, className, style, children, ...rest } = props;\n\n const combinedRef = (node: HTMLDivElement | null) => {\n ctx.contentRef(node);\n ctx.contentElementRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n // Keep track of visible option count and process pendingHighlight\n React.useLayoutEffect(() => {\n if (ctx.isOpen && ctx.contentElementRef.current) {\n const container = ctx.contentElementRef.current;\n const allOptions = Array.from(\n container.querySelectorAll<HTMLElement>('[role=\"option\"]')\n );\n const enabledOptions = allOptions.filter(\n (el) => el.getAttribute(\"aria-disabled\") !== \"true\"\n );\n\n ctx.setHasOptions(allOptions.length > 0);\n\n if (ctx.pendingHighlight) {\n let targetEl: HTMLElement | null = null;\n if (ctx.pendingHighlight === \"first\" && enabledOptions.length > 0) {\n targetEl = enabledOptions[0] ?? null;\n } else if (ctx.pendingHighlight === \"last\" && enabledOptions.length > 0) {\n targetEl = enabledOptions[enabledOptions.length - 1] ?? null;\n } else if (ctx.pendingHighlight === \"selected\") {\n const selectedEl = enabledOptions.find(\n (el) => el.getAttribute(\"aria-selected\") === \"true\"\n );\n targetEl = selectedEl ?? (enabledOptions.length > 0 ? enabledOptions[0] ?? null : null);\n }\n\n if (targetEl) {\n ctx.setActiveId(targetEl.id);\n targetEl.scrollIntoView?.({ block: \"nearest\" });\n }\n ctx.setPendingHighlight(null);\n }\n }\n });\n\n if (!ctx.isOpen) {\n return null;\n }\n\n const contentClasses = classNames(\"cl-combobox__content\", className);\n const mergedStyles: React.CSSProperties = {\n ...ctx.floatingStyles,\n ...style,\n };\n\n if (asChild) {\n return (\n <Slot\n ref={combinedRef}\n role=\"listbox\"\n id={ctx.listboxId}\n aria-labelledby={ctx.inputId}\n aria-multiselectable={ctx.isMulti ? true : undefined}\n aria-busy={ctx.isLoading ? true : undefined}\n tabIndex={-1}\n data-state=\"open\"\n style={mergedStyles}\n className={contentClasses}\n {...rest}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <div\n ref={combinedRef}\n role=\"listbox\"\n id={ctx.listboxId}\n aria-labelledby={ctx.inputId}\n aria-multiselectable={ctx.isMulti ? true : undefined}\n aria-busy={ctx.isLoading ? true : undefined}\n tabIndex={-1}\n data-state=\"open\"\n style={mergedStyles}\n className={contentClasses}\n {...rest}\n >\n {children}\n </div>\n );\n }\n);\n\n/* =========================================================================\n 6. ComboboxItem\n ========================================================================= */\n\nexport const ComboboxItem = React.forwardRef<HTMLDivElement, ComboboxItemProps>(\n function ComboboxItem(props, ref) {\n const ctx = React.useContext(ComboboxContext);\n if (!ctx) throw new Error(\"ComboboxItem must be used within Combobox\");\n\n const {\n value: itemVal,\n label,\n isDisabled: itemDisabled = false,\n asChild = false,\n className,\n children,\n onClick,\n onMouseEnter,\n ...rest\n } = props;\n\n const itemId = `${ctx.listboxId}-opt-${encodeURIComponent(itemVal)}`;\n const itemRef = React.useRef<HTMLDivElement | null>(null);\n\n // Determine string text for search filtering\n const itemText = React.useMemo(() => {\n if (label) return label;\n if (typeof children === \"string\") return children;\n if (typeof children === \"number\") return String(children);\n return itemVal;\n }, [label, children, itemVal]);\n\n // Check match against current search query\n const isVisible = React.useMemo(() => {\n if (ctx.filter === false) return true;\n if (!ctx.isFiltering && !ctx.isMulti) return true;\n return ctx.filter(itemVal, itemText, ctx.searchValue);\n }, [ctx.filter, ctx.isFiltering, ctx.isMulti, itemVal, itemText, ctx.searchValue]);\n\n // Check selection state\n const isSelected = React.useMemo(() => {\n if (ctx.isMulti && Array.isArray(ctx.value)) {\n return ctx.value.includes(itemVal);\n }\n return ctx.value === itemVal;\n }, [ctx.isMulti, ctx.value, itemVal]);\n\n const isHighlighted = ctx.activeId === itemId;\n\n if (!isVisible) {\n return null;\n }\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (itemDisabled || ctx.isDisabled) return;\n ctx.selectItem(itemVal, itemText);\n onClick?.(e);\n };\n\n const handleMouseEnter = (e: React.MouseEvent<HTMLDivElement>) => {\n if (!itemDisabled && !ctx.isDisabled) {\n ctx.setActiveId(itemId);\n }\n onMouseEnter?.(e);\n };\n\n const combinedRef = (node: HTMLDivElement | null) => {\n itemRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n const itemClasses = classNames(\"cl-combobox__item\", className);\n\n if (asChild) {\n return (\n <Slot\n ref={combinedRef}\n role=\"option\"\n id={itemId}\n data-value={itemVal}\n data-label={itemText}\n aria-selected={isSelected}\n aria-disabled={itemDisabled || undefined}\n data-highlighted={isHighlighted ? \"true\" : undefined}\n data-disabled={itemDisabled ? \"true\" : undefined}\n data-state={isSelected ? \"checked\" : \"unchecked\"}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n className={itemClasses}\n {...rest}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <div\n ref={combinedRef}\n role=\"option\"\n id={itemId}\n data-value={itemVal}\n data-label={itemText}\n aria-selected={isSelected}\n aria-disabled={itemDisabled || undefined}\n data-highlighted={isHighlighted ? \"true\" : undefined}\n data-disabled={itemDisabled ? \"true\" : undefined}\n data-state={isSelected ? \"checked\" : \"unchecked\"}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n className={itemClasses}\n {...rest}\n >\n <span>{children}</span>\n {isSelected && (\n <span className=\"cl-combobox__item-indicator\" aria-hidden=\"true\">\n <svg\n viewBox=\"0 0 24 24\"\n width=\"14\"\n height=\"14\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n </span>\n )}\n </div>\n );\n }\n);\n\n/* =========================================================================\n 7. ComboboxGroup & ComboboxGroupLabel\n ========================================================================= */\n\nexport const ComboboxGroupLabel = React.forwardRef<\n HTMLDivElement,\n ComboboxGroupLabelProps\n>(function ComboboxGroupLabel(props, ref) {\n const { className, children, ...rest } = props;\n return (\n <div\n ref={ref}\n className={classNames(\"cl-combobox__group-heading\", className)}\n {...rest}\n >\n {children}\n </div>\n );\n});\n\nexport const ComboboxGroup = React.forwardRef<HTMLDivElement, ComboboxGroupProps>(\n function ComboboxGroup(props, ref) {\n const { heading, className, children, ...rest } = props;\n const headingId = React.useId();\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-labelledby={heading ? headingId : undefined}\n className={classNames(\"cl-combobox__group\", className)}\n {...rest}\n >\n {heading && (\n <div id={headingId} className=\"cl-combobox__group-heading\">\n {heading}\n </div>\n )}\n {children}\n </div>\n );\n }\n);\n\n/* =========================================================================\n 8. ComboboxEmpty\n ========================================================================= */\n\nexport const ComboboxEmpty = React.forwardRef<HTMLDivElement, ComboboxEmptyProps>(\n function ComboboxEmpty(props, ref) {\n const ctx = React.useContext(ComboboxContext);\n if (!ctx) throw new Error(\"ComboboxEmpty must be used within Combobox\");\n const { className, children, ...rest } = props;\n\n // Show only when no items are visible and not in loading state\n if (ctx.hasOptions || ctx.isLoading) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n role=\"presentation\"\n className={classNames(\"cl-combobox__empty\", className)}\n {...rest}\n >\n {children}\n </div>\n );\n }\n);\n\n/* =========================================================================\n 9. ComboboxTag\n ========================================================================= */\n\nexport const ComboboxTag = React.forwardRef<HTMLSpanElement, ComboboxTagProps>(\n function ComboboxTag(props, ref) {\n const ctx = useComboboxContext();\n const {\n value: tagVal,\n onRemove,\n isDisabled: disabledProp,\n className,\n children,\n ...rest} = props;\n\n const isDisabled = disabledProp ?? ctx.isDisabled;\n\n const handleRemove = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n if (isDisabled) return;\n if (onRemove) {\n onRemove();\n } else {\n ctx.removeItem(tagVal);\n }\n };\n\n return (\n <span\n ref={ref}\n className={classNames(\"cl-combobox__tag\", className)}\n {...rest}\n >\n <span>{children}</span>\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label={`Remove ${typeof children === \"string\" ? children : tagVal}`}\n className=\"cl-combobox__tag-remove\"\n disabled={isDisabled}\n onClick={handleRemove}\n >\n ×\n </button>\n </span>\n );\n }\n);\n\n/* =========================================================================\n 10. ComboboxClear\n ========================================================================= */\n\nexport const ComboboxClear = React.forwardRef<HTMLButtonElement, ComboboxClearProps>(\n function ComboboxClear(props, ref) {\n const ctx = useComboboxContext();\n const { className, onClick, children, disabled: disabledProp, ...rest } = props;\n\n const isDisabled = disabledProp ?? ctx.isDisabled;\n\n const hasValue =\n ctx.isMulti\n ? Array.isArray(ctx.value) && ctx.value.length > 0\n : Boolean(ctx.value || ctx.searchValue);\n\n if (!hasValue) {\n return null;\n }\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n if (isDisabled) return;\n ctx.clearSelection();\n onClick?.(e);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n tabIndex={-1}\n aria-label=\"Clear selection\"\n className={classNames(\"cl-combobox__clear\", className)}\n disabled={isDisabled}\n onClick={handleClick}\n {...rest}\n >\n {children ?? (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"14\"\n height=\"14\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n )}\n </button>\n );\n }\n);\n\n/* =========================================================================\n Compound Object & Aliases\n ========================================================================= */\n\nexport interface ComboboxComponent\n extends React.ForwardRefExoticComponent<\n ComboboxProps & React.RefAttributes<HTMLDivElement>\n > {\n Root: typeof ComboboxRoot;\n Control: typeof ComboboxControl;\n Input: typeof ComboboxInput;\n Trigger: typeof ComboboxTrigger;\n Portal: typeof ComboboxPortal;\n Content: typeof ComboboxContent;\n Item: typeof ComboboxItem;\n Group: typeof ComboboxGroup;\n GroupLabel: typeof ComboboxGroupLabel;\n Empty: typeof ComboboxEmpty;\n Tag: typeof ComboboxTag;\n Clear: typeof ComboboxClear;\n}\n\nexport const Combobox = ComboboxRoot as ComboboxComponent;\nCombobox.Root = ComboboxRoot;\nCombobox.Control = ComboboxControl;\nCombobox.Input = ComboboxInput;\nCombobox.Trigger = ComboboxTrigger;\nCombobox.Portal = ComboboxPortal;\nCombobox.Content = ComboboxContent;\nCombobox.Item = ComboboxItem;\nCombobox.Group = ComboboxGroup;\nCombobox.GroupLabel = ComboboxGroupLabel;\nCombobox.Empty = ComboboxEmpty;\nCombobox.Tag = ComboboxTag;\nCombobox.Clear = ComboboxClear;\n\nexport const Autocomplete = Combobox;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { Portal } from \"../../primitives/Portal\";\nimport { Slot } from \"../../primitives/Slot\";\nimport type {\n DialogBodyProps,\n DialogCloseProps,\n DialogContentProps,\n DialogDescriptionProps,\n DialogFooterProps,\n DialogHeaderProps,\n DialogOverlayProps,\n DialogPortalProps,\n DialogRootProps,\n DialogSize,\n DialogTitleProps,\n DialogTriggerProps,\n} from \"./Dialog.types\";\n\ninterface DialogContextValue {\n isOpen: boolean;\n onOpen: () => void;\n onClose: () => void;\n closeOnEsc: boolean;\n closeOnOverlayClick: boolean;\n initialFocusRef?: React.RefObject<HTMLElement | null> | undefined;\n finalFocusRef?: React.RefObject<HTMLElement | null> | undefined;\n size: DialogSize;\n isCentered: boolean;\n titleId: string;\n setTitleId: (id: string) => void;\n descriptionId: string;\n setDescriptionId: (id: string) => void;\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n}\n\nconst DialogContext = React.createContext<DialogContextValue | null>(null);\n\nfunction useDialogContext(componentName: string): DialogContextValue {\n const context = React.useContext(DialogContext);\n if (!context) {\n throw new Error(\n `<Dialog.${componentName}> must be used within a <Dialog.Root> or <Dialog> component.`\n );\n }\n return context;\n}\n\nconst FOCUSABLE_SELECTOR =\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\n/**\n * DialogRoot component - manages controlled/uncontrolled visibility and dialog context.\n */\nexport const DialogRoot: React.FC<DialogRootProps> = ({\n isOpen: isOpenProp,\n defaultOpen = false,\n onClose: onCloseProp,\n closeOnEsc = true,\n closeOnOverlayClick = true,\n initialFocusRef,\n finalFocusRef,\n size = \"md\",\n isCentered = true,\n children,\n}) => {\n const [isOpen, setIsOpen] = useControllableState<boolean>({\n value: isOpenProp,\n defaultValue: defaultOpen,\n });\n\n const [titleId, setTitleId] = React.useState<string>(\"\");\n const [descriptionId, setDescriptionId] = React.useState<string>(\"\");\n const triggerRef = React.useRef<HTMLElement | null>(null);\n\n const handleOpen = React.useCallback(() => {\n setIsOpen(true);\n }, [setIsOpen]);\n\n const handleClose = React.useCallback(() => {\n setIsOpen(false);\n onCloseProp?.();\n }, [setIsOpen, onCloseProp]);\n\n const contextValue = React.useMemo<DialogContextValue>(\n () => ({\n isOpen: !!isOpen,\n onOpen: handleOpen,\n onClose: handleClose,\n closeOnEsc,\n closeOnOverlayClick,\n initialFocusRef,\n finalFocusRef,\n size,\n isCentered,\n titleId,\n setTitleId,\n descriptionId,\n setDescriptionId,\n triggerRef,\n }),\n [\n isOpen,\n handleOpen,\n handleClose,\n closeOnEsc,\n closeOnOverlayClick,\n initialFocusRef,\n finalFocusRef,\n size,\n isCentered,\n titleId,\n descriptionId,\n ]\n );\n\n return (\n <DialogContext.Provider value={contextValue}>\n {children}\n </DialogContext.Provider>\n );\n};\nDialogRoot.displayName = \"Dialog.Root\";\n\n/**\n * DialogTrigger component - wraps or renders a button that opens the dialog.\n */\nexport const DialogTrigger = React.forwardRef<\n HTMLElement,\n DialogTriggerProps\n>(({ asChild = false, onClick, children, ...props }, forwardedRef) => {\n const { onOpen, triggerRef } = useDialogContext(\"Trigger\");\n const mergedRef = useMergeRefs(triggerRef, forwardedRef);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (!e.defaultPrevented) {\n onOpen();\n }\n };\n\n if (asChild) {\n return (\n <Slot\n ref={mergedRef}\n aria-haspopup=\"dialog\"\n onClick={handleClick}\n {...props}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <button\n ref={mergedRef as React.Ref<HTMLButtonElement>}\n type=\"button\"\n aria-haspopup=\"dialog\"\n onClick={handleClick}\n {...props}\n >\n {children}\n </button>\n );\n});\nDialogTrigger.displayName = \"Dialog.Trigger\";\n\n/**\n * DialogPortal component - mounts dialog children into document.body or container.\n */\nexport const DialogPortal: React.FC<DialogPortalProps> = ({\n container,\n children,\n}) => {\n const { isOpen } = useDialogContext(\"Portal\");\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <Portal {...(container !== undefined ? { container } : {})}>\n {children}\n </Portal>\n );\n};\nDialogPortal.displayName = \"Dialog.Portal\";\n\n/**\n * DialogOverlay component - background backdrop with static CSS centering.\n */\nexport const DialogOverlay = React.forwardRef<\n HTMLDivElement,\n DialogOverlayProps\n>(({ asChild = false, className, onClick, children, ...props }, forwardedRef) => {\n const { onClose, closeOnOverlayClick, isCentered } =\n useDialogContext(\"Overlay\");\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n onClick?.(e);\n if (!e.defaultPrevented && closeOnOverlayClick && e.target === e.currentTarget) {\n onClose();\n }\n };\n\n const classNames = [\n \"cl-dialog__overlay\",\n !isCentered && \"cl-dialog__overlay--top\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n if (asChild) {\n return (\n <Slot\n ref={forwardedRef}\n className={classNames}\n onClick={handleClick}\n {...props}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <div\n ref={forwardedRef}\n className={classNames}\n onClick={handleClick}\n {...props}\n >\n {children}\n </div>\n );\n});\nDialogOverlay.displayName = \"Dialog.Overlay\";\n\n/**\n * DialogContent component - main dialog window with focus trap and scroll locking.\n */\nexport const DialogContent = React.forwardRef<\n HTMLDivElement,\n DialogContentProps\n>(({ asChild = false, className, children, onKeyDown, ...props }, forwardedRef) => {\n const {\n isOpen,\n onClose,\n closeOnEsc,\n size,\n isCentered,\n titleId,\n descriptionId,\n initialFocusRef,\n finalFocusRef,\n triggerRef,\n } = useDialogContext(\"Content\");\n\n const internalRef = React.useRef<HTMLDivElement | null>(null);\n const mergedRef = useMergeRefs(internalRef, forwardedRef);\n const prevFocusedRef = React.useRef<HTMLElement | null>(null);\n\n // Focus management and body scroll locking\n React.useEffect(() => {\n if (!isOpen) return;\n\n // Store previous focused element before opening\n if (typeof document !== \"undefined\") {\n prevFocusedRef.current = document.activeElement as HTMLElement | null;\n }\n\n // Scroll lock on body\n const originalOverflow =\n typeof document !== \"undefined\" ? document.body.style.overflow : \"\";\n if (typeof document !== \"undefined\") {\n document.body.style.overflow = \"hidden\";\n }\n\n // Initial focus\n const frameId = requestAnimationFrame(() => {\n if (initialFocusRef?.current) {\n initialFocusRef.current.focus();\n } else if (internalRef.current) {\n const focusables = internalRef.current.querySelectorAll<HTMLElement>(\n FOCUSABLE_SELECTOR\n );\n if (focusables.length > 0) {\n focusables[0]?.focus();\n } else {\n internalRef.current.focus();\n }\n }\n });\n\n return () => {\n cancelAnimationFrame(frameId);\n // Restore scroll lock\n if (typeof document !== \"undefined\") {\n document.body.style.overflow = originalOverflow;\n }\n // Restore focus to trigger or finalFocusRef\n const elementToFocus =\n finalFocusRef?.current ?? triggerRef.current ?? prevFocusedRef.current;\n if (elementToFocus && typeof elementToFocus.focus === \"function\") {\n elementToFocus.focus();\n }\n };\n }, [isOpen, initialFocusRef, finalFocusRef, triggerRef]);\n\n // Keyboard trap and Escape listener\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n if (e.key === \"Escape\" && closeOnEsc) {\n e.stopPropagation();\n onClose();\n return;\n }\n\n if (e.key === \"Tab\" && internalRef.current) {\n const focusables = Array.from(\n internalRef.current.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR)\n ).filter((el) => !el.hasAttribute(\"disabled\") && el.getAttribute(\"aria-hidden\") !== \"true\");\n\n if (focusables.length === 0) {\n e.preventDefault();\n return;\n }\n\n const firstFocusable = focusables[0];\n const lastFocusable = focusables[focusables.length - 1];\n\n if (e.shiftKey) {\n if (\n document.activeElement === firstFocusable ||\n document.activeElement === internalRef.current\n ) {\n e.preventDefault();\n lastFocusable?.focus();\n }\n } else {\n if (document.activeElement === lastFocusable) {\n e.preventDefault();\n firstFocusable?.focus();\n }\n }\n }\n };\n\n const classNames = [\n \"cl-dialog__content\",\n `cl-dialog__content--${size}`,\n !isCentered && \"cl-dialog__content--top\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n const ariaAttributes = {\n role: \"dialog\",\n \"aria-modal\": true,\n ...(titleId ? { \"aria-labelledby\": titleId } : {}),\n ...(descriptionId ? { \"aria-describedby\": descriptionId } : {}),\n tabIndex: -1,\n };\n\n if (asChild) {\n return (\n <Slot\n ref={mergedRef}\n className={classNames}\n onKeyDown={handleKeyDown}\n {...ariaAttributes}\n {...props}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <div\n ref={mergedRef}\n className={classNames}\n onKeyDown={handleKeyDown}\n {...ariaAttributes}\n {...props}\n >\n {children}\n </div>\n );\n});\nDialogContent.displayName = \"Dialog.Content\";\n\n/**\n * DialogHeader component - header slot containing title, description, or close button.\n */\nexport const DialogHeader = React.forwardRef<HTMLDivElement, DialogHeaderProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={[\"cl-dialog__header\", className].filter(Boolean).join(\" \")}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\nDialogHeader.displayName = \"Dialog.Header\";\n\n/**\n * DialogTitle component - accessible title that binds aria-labelledby.\n */\nexport const DialogTitle = React.forwardRef<\n HTMLHeadingElement,\n DialogTitleProps\n>(({ asChild = false, id: idProp, className, children, ...props }, ref) => {\n const { setTitleId } = useDialogContext(\"Title\");\n const autoId = React.useId();\n const id = idProp ?? autoId;\n\n React.useEffect(() => {\n setTitleId(id);\n return () => setTitleId(\"\");\n }, [id, setTitleId]);\n\n const classNames = [\"cl-dialog__title\", className].filter(Boolean).join(\" \");\n\n if (asChild) {\n return (\n <Slot ref={ref} id={id} className={classNames} {...props}>\n {children}\n </Slot>\n );\n }\n\n return (\n <h2 ref={ref} id={id} className={classNames} {...props}>\n {children}\n </h2>\n );\n});\nDialogTitle.displayName = \"Dialog.Title\";\n\n/**\n * DialogDescription component - accessible description that binds aria-describedby.\n */\nexport const DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n DialogDescriptionProps\n>(({ asChild = false, id: idProp, className, children, ...props }, ref) => {\n const { setDescriptionId } = useDialogContext(\"Description\");\n const autoId = React.useId();\n const id = idProp ?? autoId;\n\n React.useEffect(() => {\n setDescriptionId(id);\n return () => setDescriptionId(\"\");\n }, [id, setDescriptionId]);\n\n const classNames = [\"cl-dialog__desc\", className].filter(Boolean).join(\" \");\n\n if (asChild) {\n return (\n <Slot ref={ref} id={id} className={classNames} {...props}>\n {children}\n </Slot>\n );\n }\n\n return (\n <p ref={ref} id={id} className={classNames} {...props}>\n {children}\n </p>\n );\n});\nDialogDescription.displayName = \"Dialog.Description\";\n\n/**\n * DialogBody component - scrollable content body.\n */\nexport const DialogBody = React.forwardRef<HTMLDivElement, DialogBodyProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={[\"cl-dialog__body\", className].filter(Boolean).join(\" \")}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\nDialogBody.displayName = \"Dialog.Body\";\n\n/**\n * DialogFooter component - footer slot containing actions.\n */\nexport const DialogFooter = React.forwardRef<HTMLDivElement, DialogFooterProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={[\"cl-dialog__footer\", className].filter(Boolean).join(\" \")}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\nDialogFooter.displayName = \"Dialog.Footer\";\n\n/**\n * DialogClose component - button that dismisses the dialog when clicked.\n */\nexport const DialogClose = React.forwardRef<HTMLButtonElement, DialogCloseProps>(\n ({ asChild = false, className, onClick, children, ...props }, ref) => {\n const { onClose } = useDialogContext(\"Close\");\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (!e.defaultPrevented) {\n onClose();\n }\n };\n\n const classNames = [\"cl-dialog__close-button\", className]\n .filter(Boolean)\n .join(\" \");\n\n if (asChild) {\n return (\n <Slot ref={ref} className={classNames} onClick={handleClick} {...props}>\n {children}\n </Slot>\n );\n }\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={classNames}\n onClick={handleClick}\n aria-label={props[\"aria-label\"] ?? \"Close dialog\"}\n {...props}\n >\n {children ?? \"×\"}\n </button>\n );\n }\n);\nDialogClose.displayName = \"Dialog.Close\";\n\n/**\n * Compound Dialog export\n */\nexport const Dialog = Object.assign(DialogRoot, {\n Root: DialogRoot,\n Trigger: DialogTrigger,\n Portal: DialogPortal,\n Overlay: DialogOverlay,\n Content: DialogContent,\n Header: DialogHeader,\n Title: DialogTitle,\n Description: DialogDescription,\n Body: DialogBody,\n Footer: DialogFooter,\n Close: DialogClose,\n});\n\n/**\n * Exact compatibility alias for Modal\n */\nexport const Modal = Dialog;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport type { BadgeProps } from \"./Badge.types\";\n\nconst StyledBadgeRoot = styled(\"span\", {\n name: \"ChellaaBadge\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"variant\" &&\n prop !== \"size\" &&\n prop !== \"colorScheme\" &&\n prop !== \"isPill\" &&\n prop !== \"hasDot\" &&\n prop !== \"asChild\",\n})({});\n\n/**\n * Badge component - A compact visual indicator communicating status, counts, or categorization.\n */\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n (\n {\n variant = \"subtle\",\n size = \"md\",\n colorScheme = \"neutral\",\n isPill = false,\n hasDot = false,\n asChild = false,\n className,\n style,\n sx,\n children,\n ...props\n },\n ref\n ) => {\n const badgeClassName = classNames(\n \"cl-badge\",\n `cl-badge--${variant}`,\n `cl-badge--${size}`,\n `cl-badge--${colorScheme}`,\n isPill && \"cl-badge--pill\",\n className\n );\n\n if (asChild) {\n return (\n <StyledBadgeRoot\n as={Slot}\n ref={ref}\n className={badgeClassName}\n style={style}\n sx={sx}\n {...props}\n >\n {children}\n </StyledBadgeRoot>\n );\n }\n\n return (\n <StyledBadgeRoot\n ref={ref}\n className={badgeClassName}\n style={style}\n sx={sx}\n {...props}\n >\n {hasDot && <span className=\"cl-badge__dot\" aria-hidden=\"true\" />}\n {children}\n </StyledBadgeRoot>\n );\n }\n);\n\nBadge.displayName = \"Badge\";\n","import * as React from \"react\";\nimport type {\n TableCaptionProps,\n TableCellProps,\n TableContainerProps,\n TableContextValue,\n TableHeaderCellProps,\n TableRootProps,\n TableRowProps,\n TableTbodyProps,\n TableTfootProps,\n TableTheadProps,\n} from \"./Table.types\";\n\nconst TableContext = React.createContext<TableContextValue>({\n size: \"md\",\n variant: \"simple\",\n isHoverable: false,\n});\n\n/**\n * TableRoot component - Container for structured row and column data.\n */\nexport const TableRoot = React.forwardRef<HTMLTableElement, TableRootProps>(\n (\n {\n variant = \"simple\",\n size = \"md\",\n isHoverable = false,\n isStickyHeader = false,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const classNames = [\n \"cl-table\",\n `cl-table--${variant}`,\n `cl-table--${size}`,\n isHoverable && \"cl-table--hoverable\",\n isStickyHeader && \"cl-table--sticky-header\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n const contextValue = React.useMemo<TableContextValue>(\n () => ({\n size,\n variant,\n isHoverable,\n }),\n [size, variant, isHoverable]\n );\n\n return (\n <TableContext.Provider value={contextValue}>\n <table ref={ref} className={classNames} {...props}>\n {children}\n </table>\n </TableContext.Provider>\n );\n }\n);\nTableRoot.displayName = \"Table.Root\";\n\n/**\n * TableContainer component - Responsive touch scroll container.\n */\nexport const TableContainer = React.forwardRef<\n HTMLDivElement,\n TableContainerProps\n>(({ bordered = false, className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={[\n \"cl-table__container\",\n bordered && \"cl-table__container--bordered\",\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n {...props}\n >\n {children}\n </div>\n );\n});\nTableContainer.displayName = \"Table.Container\";\n\n/**\n * TableCaption component - Programmatic description of table data.\n */\nexport const TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n TableCaptionProps\n>(({ placement = \"bottom\", className, children, ...props }, ref) => {\n const classNames = [\n \"cl-table__caption\",\n placement === \"top\" && \"cl-table__caption--top\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <caption ref={ref} className={classNames} {...props}>\n {children}\n </caption>\n );\n});\nTableCaption.displayName = \"Table.Caption\";\n\n/**\n * TableThead component - Semantic table header section.\n */\nexport const TableThead = React.forwardRef<\n HTMLTableSectionElement,\n TableTheadProps\n>(({ className, children, ...props }, ref) => {\n return (\n <thead\n ref={ref}\n className={[\"cl-table__thead\", className].filter(Boolean).join(\" \")}\n {...props}\n >\n {children}\n </thead>\n );\n});\nTableThead.displayName = \"Table.Thead\";\n\n/**\n * TableTbody component - Semantic table body section.\n */\nexport const TableTbody = React.forwardRef<\n HTMLTableSectionElement,\n TableTbodyProps\n>(({ className, children, ...props }, ref) => {\n return (\n <tbody\n ref={ref}\n className={[\"cl-table__tbody\", className].filter(Boolean).join(\" \")}\n {...props}\n >\n {children}\n </tbody>\n );\n});\nTableTbody.displayName = \"Table.Tbody\";\n\n/**\n * TableTfoot component - Semantic table footer section.\n */\nexport const TableTfoot = React.forwardRef<\n HTMLTableSectionElement,\n TableTfootProps\n>(({ className, children, ...props }, ref) => {\n return (\n <tfoot\n ref={ref}\n className={[\"cl-table__tfoot\", className].filter(Boolean).join(\" \")}\n {...props}\n >\n {children}\n </tfoot>\n );\n});\nTableTfoot.displayName = \"Table.Tfoot\";\n\n/**\n * TableTr component - Semantic table row element.\n */\nexport const TableTr = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ isHoverable: isHoverableProp, isSelected = false, className, children, ...props }, ref) => {\n const tableContext = React.useContext(TableContext);\n const hoverable = isHoverableProp ?? tableContext.isHoverable;\n\n const classNames = [\n \"cl-table__tr\",\n hoverable && \"cl-table__tr--hoverable\",\n isSelected && \"cl-table__tr--selected\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <tr ref={ref} className={classNames} {...props}>\n {children}\n </tr>\n );\n }\n);\nTableTr.displayName = \"Table.Tr\";\n\n/**\n * TableTh component - Semantic table header cell with scope=\"col\" default.\n */\nexport const TableTh = React.forwardRef<\n HTMLTableCellElement,\n TableHeaderCellProps\n>(\n (\n {\n isNumeric = false,\n align,\n isSortable = false,\n sortDirection,\n scope = \"col\",\n className,\n children,\n ...props\n },\n ref\n ) => {\n const computedAriaSort = isSortable\n ? sortDirection === \"asc\"\n ? \"ascending\"\n : sortDirection === \"desc\"\n ? \"descending\"\n : \"none\"\n : props[\"aria-sort\"];\n\n const classNames = [\n \"cl-table__th\",\n isNumeric && \"cl-table__th--numeric\",\n align && `cl-table__th--align-${align}`,\n isSortable && \"cl-table__th--sortable\",\n sortDirection &&\n sortDirection !== \"none\" &&\n `cl-table__th--sorted-${sortDirection}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <th\n ref={ref}\n scope={scope}\n aria-sort={computedAriaSort}\n className={classNames}\n {...props}\n >\n {children}\n </th>\n );\n }\n);\nTableTh.displayName = \"Table.Th\";\n\n/**\n * TableTd component - Semantic table data cell with isNumeric and align support.\n */\nexport const TableTd = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ isNumeric = false, align, className, children, ...props }, ref) => {\n const classNames = [\n \"cl-table__td\",\n isNumeric && \"cl-table__td--numeric\",\n align && `cl-table__td--align-${align}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <td ref={ref} className={classNames} {...props}>\n {children}\n </td>\n );\n }\n);\nTableTd.displayName = \"Table.Td\";\n\n/**\n * Compound Table component export\n */\nexport const Table = Object.assign(TableRoot, {\n Root: TableRoot,\n Container: TableContainer,\n Caption: TableCaption,\n Thead: TableThead,\n Tbody: TableTbody,\n Tfoot: TableTfoot,\n Tr: TableTr,\n Th: TableTh,\n Td: TableTd,\n});\n"]}
|