@adminiumjs/manifest 0.3.16 → 0.3.18-rc.0
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/adjust.d.ts +322 -0
- package/dist/adjust.d.ts.map +1 -0
- package/dist/adjust.js +512 -0
- package/dist/adjust.js.map +1 -0
- package/dist/automations.d.ts +2309 -0
- package/dist/automations.d.ts.map +1 -0
- package/dist/automations.js +384 -0
- package/dist/automations.js.map +1 -0
- package/dist/compose.d.ts.map +1 -1
- package/dist/compose.js +1 -0
- package/dist/compose.js.map +1 -1
- package/dist/documents.d.ts +82 -1
- package/dist/documents.d.ts.map +1 -1
- package/dist/documents.js +36 -6
- package/dist/documents.js.map +1 -1
- package/dist/index.d.ts +15 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -6
- package/dist/index.js.map +1 -1
- package/dist/key-bytes.d.ts +27 -0
- package/dist/key-bytes.d.ts.map +1 -0
- package/dist/key-bytes.js +48 -0
- package/dist/key-bytes.js.map +1 -0
- package/dist/ledger-indexes.d.ts +19 -0
- package/dist/ledger-indexes.d.ts.map +1 -0
- package/dist/ledger-indexes.js +74 -0
- package/dist/ledger-indexes.js.map +1 -0
- package/dist/ledgers.d.ts +691 -0
- package/dist/ledgers.d.ts.map +1 -0
- package/dist/ledgers.js +778 -0
- package/dist/ledgers.js.map +1 -0
- package/dist/look-up.d.ts +73 -0
- package/dist/look-up.d.ts.map +1 -0
- package/dist/look-up.js +140 -0
- package/dist/look-up.js.map +1 -0
- package/dist/marketplace-wire.d.ts +2 -2
- package/dist/outbox.d.ts +29 -3
- package/dist/outbox.d.ts.map +1 -1
- package/dist/outbox.js +94 -15
- package/dist/outbox.js.map +1 -1
- package/dist/page-config.d.ts +99 -0
- package/dist/page-config.d.ts.map +1 -0
- package/dist/page-config.js +197 -0
- package/dist/page-config.js.map +1 -0
- package/dist/plan-context.d.ts +8 -18
- package/dist/plan-context.d.ts.map +1 -1
- package/dist/plan-context.js +53 -51
- package/dist/plan-context.js.map +1 -1
- package/dist/plan-model.d.ts +8 -1
- package/dist/plan-model.d.ts.map +1 -1
- package/dist/plan.d.ts +1 -1
- package/dist/plan.d.ts.map +1 -1
- package/dist/plan.js +6 -3
- package/dist/plan.js.map +1 -1
- package/dist/public-access.d.ts +33 -5
- package/dist/public-access.d.ts.map +1 -1
- package/dist/public-access.js +82 -4
- package/dist/public-access.js.map +1 -1
- package/dist/refs.d.ts +2 -0
- package/dist/refs.d.ts.map +1 -1
- package/dist/refs.js +5 -0
- package/dist/refs.js.map +1 -1
- package/dist/roles.d.ts +46 -0
- package/dist/roles.d.ts.map +1 -1
- package/dist/roles.js +50 -0
- package/dist/roles.js.map +1 -1
- package/dist/sample.d.ts +70 -1
- package/dist/sample.d.ts.map +1 -1
- package/dist/sample.js +208 -5
- package/dist/sample.js.map +1 -1
- package/dist/schema.d.ts +9657 -2440
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +751 -52
- package/dist/schema.js.map +1 -1
- package/dist/state-actions.d.ts +185 -0
- package/dist/state-actions.d.ts.map +1 -0
- package/dist/state-actions.js +223 -0
- package/dist/state-actions.js.map +1 -0
- package/dist/states.d.ts +66 -0
- package/dist/states.d.ts.map +1 -1
- package/dist/states.js +31 -0
- package/dist/states.js.map +1 -1
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +22 -6
- package/dist/validate.js.map +1 -1
- package/dist/words.d.ts +33 -0
- package/dist/words.d.ts.map +1 -0
- package/dist/words.js +208 -0
- package/dist/words.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledgers.js","sourceRoot":"","sources":["../src/ledgers.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAuB,MAAM,WAAW,CAAC;AAEzE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAC;AAC5E,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,EAAE,eAAe,CAAC,CAAC;AAC7E,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,CAAC;AAClF,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,CAAC;AACjF,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAE5C,gFAAgF;AAEhF,4CAA4C;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,sCAAsC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,2CAA2C;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,gFAAgF;AAEhF,yHAAyH;AACzH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC;AAGlK,sDAAsD;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAqB,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAEpF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAGtE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,KAAK,CACJ,sKAAsK,EACtK,+IAA+I,CAChJ,CAAC;AAEJ,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;KAC/G,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC,CAAC;AAEtH,gGAAgG;AAChG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,SAAS;IAChB,yFAAyF;IACzF,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpI,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;CAChE,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,oGAAoG;AACpG,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,CAAC;IACN,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACnB,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;CAClH,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACtD,yFAAyF;IACzF,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxG,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxD,qFAAqF;IACrF,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IACjC,sGAAsG;IACtG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9G,mFAAmF;IACnF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;CACpE,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;KAClH,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAG1I;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAA8C,EAAE,KAAa,EAAE,KAA4C;IACxI,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,GAAG,GAAG,CAAC,IAAgC,EAAW,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IACjI,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;AAC3H,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACvH,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC,CAAC;AAE/I,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,EAAE,EAAE,KAAK;IACT,wGAAwG;IACxG,QAAQ,EAAE,SAAS;IACnB,8EAA8E;IAC9E,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,iBAAiB,EAAE;QACnJ,OAAO,EAAE,wBAAwB,MAAM,CAAC,iBAAiB,CAAC,SAAS;KACpE,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,kBAAkB,EAAE;QACtJ,OAAO,EAAE,0BAA0B,MAAM,CAAC,kBAAkB,CAAC,UAAU;KACxE,CAAC;CACH,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,KAAK,CAAC,YAAY,CAAC;KACnB,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,WAAW,CAAC;KAChB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;AAEpI,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC;IACxC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC9C,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAChH,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1K,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;CAChG,CAAC,CAAC;AAGH,kJAAkJ;AAClJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC1C,SAAS;IACT,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3C,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACxC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACzC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CAC3C,CAAC,CAAC;AAGH,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAElE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1E,iGAAiG;IACjG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE;IAC5E,qEAAqE;IACrE,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE;IACzB,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE;IAC/B,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IACjE,6DAA6D;IAC7D,SAAS,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAC1C,sGAAsG;IACtG,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC7H,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;IACb,gFAAgF;IAChF,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC/B,wEAAwE;IACxE,IAAI,EAAE,CAAC;SACJ,KAAK,CAAC;QACL,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1D,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QAClF,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;KAC/D,CAAC;SACD,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,KAAK,CAAC,aAAa,CAAC;KACpB,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,kBAAkB,CAAC;KACvB,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC,CAAC;AAEvJ,iGAAiG;AACjG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AA4B7I,4CAA4C;AAC5C,SAAS,QAAQ,CAAC,KAAuB;IACvC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAC3C,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAE,IAAwB,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,SAAS,cAAc,CAAC,KAAuB;IAC7C,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/I,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAuB,EACvB,GAWC,EACD,EAAyD;IAEzD,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,KAAuB,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAC3G,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;QAC5C,MAAM,IAAI,GAAG,CAAC,GAAG,IAAyB,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAE1E,iBAAiB;QACjB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC;QAC3C,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,kEAAkE,EAAE,CAAC,CAAC;QACzJ,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,sFAAsF,EAAE,CAAC,CAAC;QACnK,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,OAAO,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,CAAC,KAAK,2CAA2C,EAAE,CAAC,CAAC;iBAC/H,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,gBAAgB,OAAO,CAAC,KAAK,oBAAoB,OAAO,CAAC,IAAI,CAAC,KAAK,qCAAqC,EAAE,CAAC,CAAC;QACvM,CAAC;QAED,uCAAuC;QACvC,IAAI,MAAoC,CAAC;QACzC,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC9E,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,2EAA2E,EAAE,CAAC,CAAC;YACpJ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACzC,IAAI,MAAM,KAAK,SAAS;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,UAAU,wCAAwC,EAAE,CAAC,CAAC;YAClI,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,6DAA6D,EAAE,CAAC,CAAC;QAEpK,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACjC,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/B,IAAI,QAAQ,IAAI,KAAK;gBAAE,SAAS;YAChC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,iEAAiE,EAAE,CAAC,CAAC;YACnH,CAAC;YACD,4EAA4E;YAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YACrG,IAAI,MAAM,KAAK,SAAS;gBAAE,SAAS;YACnC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;gBAClB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAChC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,GAAG,uGAAuG,EAAE,CAAC,CAAC;oBACpK,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAChC,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;oBACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;wBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,wBAAwB,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;gBACtG,CAAC;gBACD,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,GAAG,oBAAoB,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YACtG,CAAC;iBAAM,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC1B,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,0DAA0D,EAAE,CAAC,CAAC;gBACzK,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,IAAI,KAAK;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC;YAC9G,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,MAAM,MAAM,GAAG,CAAC,OAAuB,EAAE,IAAyB,EAAE,IAAY,EAAE,EAAE;YAClF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,GAAG,oBAAoB,OAAO,GAAG,EAAE,CAAC,CAAC;oBACzE,OAAO;gBACT,CAAC;gBACD,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC7E,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,GAAG,IAAI,OAAO,sDAAsD,IAAI,sBAAsB,EAAE,CAAC,CAAC;gBACxI,CAAC;qBAAM,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;oBACpD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,GAAG,IAAI,OAAO,6DAA6D,IAAI,sBAAsB,EAAE,CAAC,CAAC;gBAC/I,CAAC;gBACD,OAAO;YACT,CAAC;YACD,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC,CAAC;qBACpG,IAAI,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,SAAS;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,GAAG,oBAAoB,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YAC/J,CAAC;QACH,CAAC,CAAC;QACF,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,KAAK,GAAG,CAAC,CAAC;QACxH,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;YAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,mBAAmB,IAAI,GAAG,CAAC,CAAC;QAChJ,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,uBAAuB,CAAC,CAAC;YACtE,oHAAoH;YACpH,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,2GAA2G,EAAE,CAAC,CAAC;QAC7O,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,GAAG,oBAAoB,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;QACnL,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,GAAG,oBAAoB,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QACvL,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE,CAAC;gBAClE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,oHAAoH,EAAE,CAAC,CAAC;gBAClJ,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,CAAC,CAAC;gBACnH,OAAO;YACT,CAAC;YACD,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,yDAAyD,EAAE,CAAC,CAAC;YACtH,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,CAAC,GAAG,oBAAoB,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YACvJ,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACvC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzG,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,2CAA2C,EAAE,CAAC,CAAC;gBAC3H,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,gEAAgE;QAChE,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrF,IAAI,MAAM,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,mCAAmC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;;gBACpI,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9K,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iGAAiG;AACjG,SAAS,WAAW,CAAC,OAAgB,EAAE,KAAuB,EAAE,MAAoC;IAClG,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1D,OAAO,MAAM,EAAE,MAAM,EAAE,KAAK,KAAK,SAAS,CAAC;AAC7C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,MAAc,EAAE,KAAyB;IAC1F,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,eAAe,MAAM,CAAC,EAAE,oBAAoB,OAAO,CAAC,IAAI,CAAC,MAAM,aAAa,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACjM,OAAO,GAAG,CAAC;IACb,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QAC5E,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACzE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,eAAe,OAAO,CAAC,IAAI,CAAC,MAAM,YAAY,KAAK,MAAM,IAAI,qFAAqF,EAAE,CAAC,CAAC;QAC3L,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,eAAe,OAAO,CAAC,IAAI,CAAC,MAAM,qBAAqB,KAAK,GAAG,EAAE,CAAC,CAAC;IACvJ,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,eAAe,OAAO,CAAC,IAAI,CAAC,MAAM,aAAa,KAAK,SAAS,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,eAAe,OAAO,CAAC,IAAI,CAAC,MAAM,sDAAsD,EAAE,CAAC,CAAC;QACtK,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,eAAe,OAAO,CAAC,IAAI,CAAC,MAAM,uCAAuC,EAAE,CAAC,CAAC;IAC9L,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9G,IAAI,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,wFAAwF,EAAE,CAAC,CAAC;QAClL,IAAI,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,wIAAwI,EAAE,CAAC,CAAC;QACvL,CAAC;QACD,iEAAiE;QACjE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,uBAAuB,IAAI,CAAC,GAAG,CAAC,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,KAAK,2DAA2D,EAAE,CAAC,CAAC;YAChL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gFAAgF;AAEhF,qEAAqE;AACrE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC;AAE/G,8GAA8G;AAC9G,MAAM,CAAC,MAAM,eAAe,GAAsH;IAChJ,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChD,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;IAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;IAC/B,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;IAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;IAC1B,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;IAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;IACxB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE;IACzD,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;IACvB,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;IAClC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;IAC/D,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;IACtB,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE;IAC7B,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CACtD,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAuB,EAAE,EAAyD;IACnH,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7E,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,iCAAiC,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YACjH,SAAS;QACX,CAAC;QACD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvK,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAClK,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,mBAAmB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACrJ,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC;YAC5D,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,oDAAoD,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,kDAAkD,EAAE,CAAC,CAAC;QAC1O,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,0CAA0C,EAAE,CAAC,CAAC;QAC1L,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,uDAAuD,EAAE,CAAC,CAAC;IACtM,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,SAAS;QAChF,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,0EAA0E,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IACrK,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAwBD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,qBAAqB;IACrB,uBAAuB;IACvB,mBAAmB;IACnB,mBAAmB;IACnB,aAAa;IACb,sBAAsB;IACtB,qBAAqB;CACb,CAAC;AASX,mFAAmF;AACnF,SAAS,aAAa,CAAC,QAAiB;IACtC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAE,IAA2B,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,CAA0G;IACrI,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,CAAC,KAAmC,EAAE,GAAW,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAC/H,MAAM,QAAQ,GAAG,CAAC,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAEzF,+FAA+F;IAC/F,MAAM,aAAa,GAAG,CAAC,GAAW,EAAsB,EAAE,CACxD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;QACvC,IAAI,MAAM,EAAE,IAAI,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QACvC,wEAAwE;QACxE,OAAO,MAAM,CAAC,GAAG,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IACzK,CAAC,CAAC,CACH,CAAC;IAEJ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,EAAE,GAAG,CAAC,GAAG,IAAyB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,IAAyB,EAAE,IAAY,EAAE,EAAE;YACvE,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,KAAK,GAAG,kGAAkG,EAAE,CAAC,CAAC;YAC5K,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,uFAAuF;QACvF,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAC9D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC/B,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,CAAC;gBAAE,SAAS;YACtD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;YAC/B,IAAI,GAAG,KAAK,MAAM,CAAC,QAAQ;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,8EAA8E,EAAE,CAAC,CAAC;YAC7K,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,0DAA0D,EAAE,CAAC,CAAC;YAC9J,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC;YAClG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,eAAe,KAAK,CAAC,CAAC,CAAC,kEAAkE,EAAE,CAAC,CAAC;YAClL,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC;YAC/F,IAAI,OAAO,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,mCAAmC,GAAG,4BAA4B,EAAE,CAAC,CAAC;YAE/K,2HAA2H;YAC3H,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBACzC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACjD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,uEAAuE,MAAM,CAAC,QAAQ,qBAAqB,EAAE,CAAC,CAAC;gBACrM,CAAC;YACH,CAAC;YAED,mEAAmE;YACnE,MAAM,OAAO,GAAG,CAAC,IAAY,EAAiB,EAAE;gBAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAClC,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO,IAAI,GAAG,oBAAoB,IAAI,GAAG,CAAC;gBACnE,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;oBAAE,OAAO,IAAI,GAAG,IAAI,IAAI,sBAAsB,CAAC;gBACtE,IAAI,IAAI,KAAK,YAAY;oBAAE,OAAO,IAAI,GAAG,+DAA+D,CAAC;gBACzG,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1B,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAU;oBAAE,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,SAAS;wBAAE,OAAO,IAAI,GAAG,IAAI,IAAI,uBAAuB,IAAI,OAAO,CAAC;gBAClL,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;oBAAE,OAAO,IAAI,GAAG,IAAI,IAAI,+BAA+B,CAAC;gBACxI,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;YACF,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACvC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,GAAG,KAAK,IAAI;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,6BAA6B,EAAE,CAAC,CAAC;YAC5I,CAAC,CAAC,CAAC;YACH,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,GAAG,KAAK,IAAI;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,6BAA6B,EAAE,CAAC,CAAC;YACnJ,CAAC,CAAC,CAAC;YACH,sFAAsF;YACtF,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC3G,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1K,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;oBACjF,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,+BAA+B,GAAG,kBAAkB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,0CAA0C,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxO,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,GAAG,CAAC,GAAG,IAAyB,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5D,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,IAAI,aAAa,GAAG,8CAA8C,EAAE,CAAC,CAAC;YACvM,CAAC,CAAC,CAAC;YAEH,oEAAoE;YACpE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAwC,CAAC;YACnE,yFAAyF;YACzF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7G,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,qEAAqE,EAAE,CAAC,CAAC;gBAC7L,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;oBACxB,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS;wBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,oBAAoB,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;oBAC9L,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyC,CAAC;wBACpF,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;4BACrB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAClC,IAAI,IAAI,KAAK,SAAS;gCAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,kBAAkB,IAAI,qBAAqB,KAAK,GAAG,EAAE,CAAC,CAAC;iCACzJ,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;gCACtD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,8CAA8C,KAAK,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,uBAAuB,KAAK,GAAG,EAAE,CAAC,CAAC;4BACrP,CAAC;wBACH,CAAC;6BAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;4BAChD,uEAAuE;wBACzE,CAAC;6BAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;gCAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,2DAA2D,IAAI,0BAA0B,EAAE,CAAC,CAAC;wBAC9M,CAAC;6BAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC9B,IAAI,QAAQ,KAAK,SAAS;gCAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,iEAAiE,EAAE,CAAC,CAAC;iCAC3K,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,SAAS;gCAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,OAAO,QAAQ,CAAC,GAAG,oBAAoB,KAAK,GAAG,EAAE,CAAC,CAAC;wBACpL,CAAC;6BAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;4BACjC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,qBAAqB,IAAI,mBAAmB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;wBAC3I,CAAC;6BAAM,CAAC;4BACN,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;4BACrC,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,SAAS;gCAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,OAAO,OAAO,CAAC,GAAG,oBAAoB,KAAK,GAAG,EAAE,CAAC,CAAC;4BACpM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wBACpD,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,KAAK,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC1D,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,SAAS;wBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,oBAAoB,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;gBAC3N,CAAC;gBACD,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,yDAAyD,EAAE,CAAC,CAAC;gBAC3J,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC/B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC;YACxC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,eAAe,IAAI,kBAAkB,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;qBAC7K,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC;oBAChI,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,wFAAwF,EAAE,CAAC,CAAC;gBACvN,CAAC;YACH,CAAC;YAED,kFAAkF;YAClF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,eAAe,IAAI,kBAAkB,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;gBAC3I,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvC,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS;wBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,oBAAoB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;gBAC3L,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC;oBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3F,CAAC,CAAC,CAAC;YACH,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC/B,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxC,6FAA6F;oBAC7F,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,IAAI,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAoB,CAAC,CAAC,CAAC;oBACtN,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBAAE,SAAS;oBAChE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,eAAe,IAAI,aAAa,GAAG,oCAAoC,MAAM,CAAC,GAAG,oBAAoB,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxT,CAAC;YACH,CAAC;YAED,sFAAsF;YACtF,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACzC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBAChC,MAAM,OAAO,GAAG,CAAC,IAAiC,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,CAAC;gBAC/F,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,IAAI,qBAAqB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,QAAQ,IAAI,uDAAuD,EAAE,CAAC,CAAC;gBACjQ,IAAI,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBACxB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC1C,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;wBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,gBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,uDAAuD,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC1Q,CAAC;qBAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,eAAe,IAAI,kBAAkB,IAAI,CAAC,GAAG,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;gBACnK,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC9C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;wBAC5H,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,0CAA0C,EAAE,CAAC,CAAC;oBAClK,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,SAAS;IAChB,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpE,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,KAAK,CAAC,WAAW,CAAC;KAClB,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,CAAC,CAAC;KACN,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAEtH,mDAAmD;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEhC,mFAAmF;AACnF,MAAM,UAAU,WAAW,CAAC,CAAwI;IAClK,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,CAAC,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC;IACrH,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,CAAC,GAAG,IAAyB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,mCAAmC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YAC9F,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,eAAe,MAAM,CAAC,EAAE,oBAAoB,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YACvG,OAAO;QACT,CAAC;QACD,uGAAuG;QACvG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,wDAAwD,KAAK,CAAC,MAAM,uBAAuB,EAAE,CAAC,CAAC;QAC5K,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,2CAA2C,KAAK,CAAC,MAAM,6BAA6B,EAAE,CAAC,CAAC;QAC7K,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,eAAe,KAAK,CAAC,MAAM,qBAAqB,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;aAC7H,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,oGAAoG,KAAK,CAAC,KAAK,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1N,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,KAAK,CAAC,aAAc,CAAC,OAAO,CAAC,CAAC;YACrG,IAAI,QAAQ,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,oFAAoF,EAAE,CAAC,CAAC;iBACzK,IAAI,MAAM,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,QAAQ,CAAC,GAAG,oBAAoB,KAAK,CAAC,aAAa,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;iBAC1J,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,mEAAmE,EAAE,CAAC,CAAC;QAC/N,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LOOK-UP — what an add-on lets a typed code find: `addOn.lookUp`.
|
|
3
|
+
*
|
|
4
|
+
* A desk types or scans a code; Adminium, not the add-on's code, reads the
|
|
5
|
+
* row. The add-on says which of its tables hold codes (`kinds`, tried in
|
|
6
|
+
* order), which columns of the found row the answer may carry (`show`), one
|
|
7
|
+
* table of history per kind (`rows`), and, when a customer's address can stand
|
|
8
|
+
* in for a code, where addresses are kept (`address`).
|
|
9
|
+
*
|
|
10
|
+
* The answer never carries the code itself, a secret, or a code staff never
|
|
11
|
+
* see: the page shows what was typed.
|
|
12
|
+
*
|
|
13
|
+
* Typed loosely in the contracts package (it cannot see the manifest's
|
|
14
|
+
* tables); parsed and checked in full here.
|
|
15
|
+
*/
|
|
16
|
+
import { z } from 'zod';
|
|
17
|
+
import { type ColumnShape, type ReferenceIssue } from './refs.js';
|
|
18
|
+
export declare const lookUpKindSchema: z.ZodObject<{
|
|
19
|
+
id: z.ZodString;
|
|
20
|
+
table: z.ZodString;
|
|
21
|
+
code: z.ZodString;
|
|
22
|
+
prefix: z.ZodOptional<z.ZodString>;
|
|
23
|
+
where: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
24
|
+
column: z.ZodString;
|
|
25
|
+
eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
|
|
26
|
+
in: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
|
|
27
|
+
}, z.core.$strict>>>;
|
|
28
|
+
show: z.ZodArray<z.ZodString>;
|
|
29
|
+
rows: z.ZodOptional<z.ZodObject<{
|
|
30
|
+
table: z.ZodString;
|
|
31
|
+
via: z.ZodString;
|
|
32
|
+
columns: z.ZodArray<z.ZodString>;
|
|
33
|
+
}, z.core.$strict>>;
|
|
34
|
+
}, z.core.$strict>;
|
|
35
|
+
export type LookUpKind = z.infer<typeof lookUpKindSchema>;
|
|
36
|
+
export declare const lookUpSchema: z.ZodObject<{
|
|
37
|
+
kinds: z.ZodArray<z.ZodObject<{
|
|
38
|
+
id: z.ZodString;
|
|
39
|
+
table: z.ZodString;
|
|
40
|
+
code: z.ZodString;
|
|
41
|
+
prefix: z.ZodOptional<z.ZodString>;
|
|
42
|
+
where: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
43
|
+
column: z.ZodString;
|
|
44
|
+
eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
|
|
45
|
+
in: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
|
|
46
|
+
}, z.core.$strict>>>;
|
|
47
|
+
show: z.ZodArray<z.ZodString>;
|
|
48
|
+
rows: z.ZodOptional<z.ZodObject<{
|
|
49
|
+
table: z.ZodString;
|
|
50
|
+
via: z.ZodString;
|
|
51
|
+
columns: z.ZodArray<z.ZodString>;
|
|
52
|
+
}, z.core.$strict>>;
|
|
53
|
+
}, z.core.$strict>>;
|
|
54
|
+
address: z.ZodOptional<z.ZodObject<{
|
|
55
|
+
table: z.ZodString;
|
|
56
|
+
column: z.ZodString;
|
|
57
|
+
show: z.ZodArray<z.ZodString>;
|
|
58
|
+
}, z.core.$strict>>;
|
|
59
|
+
}, z.core.$strict>;
|
|
60
|
+
export type LookUp = z.infer<typeof lookUpSchema>;
|
|
61
|
+
interface LookUpColumn extends ColumnShape {
|
|
62
|
+
unique?: true | undefined;
|
|
63
|
+
secret?: boolean | undefined;
|
|
64
|
+
rules?: Readonly<Record<string, unknown>> | undefined;
|
|
65
|
+
}
|
|
66
|
+
export interface LookUpTable {
|
|
67
|
+
ref: string;
|
|
68
|
+
columns: readonly LookUpColumn[];
|
|
69
|
+
}
|
|
70
|
+
/** Everything wrong with a look-up, against the add-on's own tables. */
|
|
71
|
+
export declare function lookUpIssues(lookUp: LookUp, tables: readonly LookUpTable[]): ReferenceIssue[];
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=look-up.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"look-up.d.ts","sourceRoot":"","sources":["../src/look-up.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAsC,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAOtG,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;kBAalB,CAAC;AACZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;kBAKd,CAAC;AACZ,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,UAAU,YAAa,SAAQ,WAAW;IACxC,MAAM,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;CACvD;AACD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;CAClC;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,cAAc,EAAE,CAmF7F"}
|
package/dist/look-up.js
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
/**
|
|
3
|
+
* LOOK-UP — what an add-on lets a typed code find: `addOn.lookUp`.
|
|
4
|
+
*
|
|
5
|
+
* A desk types or scans a code; Adminium, not the add-on's code, reads the
|
|
6
|
+
* row. The add-on says which of its tables hold codes (`kinds`, tried in
|
|
7
|
+
* order), which columns of the found row the answer may carry (`show`), one
|
|
8
|
+
* table of history per kind (`rows`), and, when a customer's address can stand
|
|
9
|
+
* in for a code, where addresses are kept (`address`).
|
|
10
|
+
*
|
|
11
|
+
* The answer never carries the code itself, a secret, or a code staff never
|
|
12
|
+
* see: the page shows what was typed.
|
|
13
|
+
*
|
|
14
|
+
* Typed loosely in the contracts package (it cannot see the manifest's
|
|
15
|
+
* tables); parsed and checked in full here.
|
|
16
|
+
*/
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
import { keptFromStaff } from './page-config.js';
|
|
19
|
+
import { refSchema, scalarSchema, valueFits } from './refs.js';
|
|
20
|
+
const lookUpWhereSchema = z
|
|
21
|
+
.object({ column: refSchema, eq: scalarSchema.optional(), in: z.array(scalarSchema).min(1).max(16).optional() })
|
|
22
|
+
.strict()
|
|
23
|
+
.refine((where) => (where.eq === undefined) !== (where.in === undefined), { message: 'a condition compares with one value (eq) or a list (in)' });
|
|
24
|
+
export const lookUpKindSchema = z
|
|
25
|
+
.object({
|
|
26
|
+
id: z.string().regex(/^[a-z][a-z0-9-]{0,39}$/, 'a kind id is kebab-case'),
|
|
27
|
+
table: refSchema,
|
|
28
|
+
/** The column the typed value is compared with. */
|
|
29
|
+
code: refSchema,
|
|
30
|
+
/** A typed value starting so is this kind's and no other's. */
|
|
31
|
+
prefix: z.string().regex(/^[A-Z]{2}-$/, 'two capitals and a dash, as "GC-"').optional(),
|
|
32
|
+
where: z.array(lookUpWhereSchema).min(1).max(2).optional(),
|
|
33
|
+
show: z.array(refSchema).min(1).max(16),
|
|
34
|
+
/** One table of history, newest first. */
|
|
35
|
+
rows: z.object({ table: refSchema, via: refSchema, columns: z.array(refSchema).min(1).max(8) }).strict().optional(),
|
|
36
|
+
})
|
|
37
|
+
.strict();
|
|
38
|
+
export const lookUpSchema = z
|
|
39
|
+
.object({
|
|
40
|
+
kinds: z.array(lookUpKindSchema).min(1).max(6),
|
|
41
|
+
address: z.object({ table: refSchema, column: refSchema, show: z.array(refSchema).min(1).max(16) }).strict().optional(),
|
|
42
|
+
})
|
|
43
|
+
.strict();
|
|
44
|
+
/** Everything wrong with a look-up, against the add-on's own tables. */
|
|
45
|
+
export function lookUpIssues(lookUp, tables) {
|
|
46
|
+
const out = [];
|
|
47
|
+
const byRef = new Map(tables.map((table) => [table.ref, table]));
|
|
48
|
+
const column = (table, ref) => table.columns.find((candidate) => candidate.ref === ref);
|
|
49
|
+
/** The columns an answer carries: each exists, once, and none is kept from staff. */
|
|
50
|
+
const shown = (table, refs, path, codes) => {
|
|
51
|
+
const seen = new Set();
|
|
52
|
+
refs.forEach((ref, i) => {
|
|
53
|
+
if (column(table, ref) === undefined)
|
|
54
|
+
out.push({ path: [...path, i], message: `"${table.ref}" has no column "${ref}"` });
|
|
55
|
+
else if (codes.includes(ref))
|
|
56
|
+
out.push({ path: [...path, i], message: `"${table.ref}.${ref}" is the code itself: the answer never carries it (the page shows what was typed)` });
|
|
57
|
+
else {
|
|
58
|
+
const kept = keptFromStaff(table, ref);
|
|
59
|
+
if (kept !== null)
|
|
60
|
+
out.push({ path: [...path, i], message: `"${table.ref}.${ref}" is ${kept}: a look-up never answers it` });
|
|
61
|
+
}
|
|
62
|
+
if (seen.has(ref))
|
|
63
|
+
out.push({ path: [...path, i], message: `"${ref}" is listed twice` });
|
|
64
|
+
seen.add(ref);
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
const ids = new Set();
|
|
68
|
+
const prefixes = new Set();
|
|
69
|
+
/** The code columns the kinds name, per table: none of them is ever shown. */
|
|
70
|
+
const codesOf = (table) => lookUp.kinds.filter((kind) => kind.table === table).map((kind) => kind.code);
|
|
71
|
+
lookUp.kinds.forEach((kind, k) => {
|
|
72
|
+
const at = (...rest) => ['addOn', 'lookUp', 'kinds', k, ...rest];
|
|
73
|
+
if (ids.has(kind.id))
|
|
74
|
+
out.push({ path: at('id'), message: `two kinds are called "${kind.id}"` });
|
|
75
|
+
ids.add(kind.id);
|
|
76
|
+
if (kind.prefix !== undefined) {
|
|
77
|
+
if (prefixes.has(kind.prefix))
|
|
78
|
+
out.push({ path: at('prefix'), message: `two kinds claim the prefix "${kind.prefix}": a typed value is one kind's and no other's` });
|
|
79
|
+
prefixes.add(kind.prefix);
|
|
80
|
+
}
|
|
81
|
+
const table = byRef.get(kind.table);
|
|
82
|
+
if (table === undefined) {
|
|
83
|
+
out.push({ path: at('table'), message: `"${kind.table}" is not a table of this add-on` });
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const code = column(table, kind.code);
|
|
87
|
+
if (code === undefined)
|
|
88
|
+
out.push({ path: at('code'), message: `"${kind.table}" has no column "${kind.code}"` });
|
|
89
|
+
else if (code.rules?.['code']?.hiddenFromStaff === true)
|
|
90
|
+
out.push({ path: at('code'), message: `"${kind.table}.${kind.code}" is a code staff never see: no desk looks it up` });
|
|
91
|
+
else if (code.type !== 'text' || (code.rules?.['code'] === undefined && code.unique !== true))
|
|
92
|
+
out.push({ path: at('code'), message: `"${kind.table}.${kind.code}" is compared with what was typed: it is a text column with a code rule, or a unique one` });
|
|
93
|
+
(kind.where ?? []).forEach((where, w) => {
|
|
94
|
+
const found = column(table, where.column);
|
|
95
|
+
if (found === undefined) {
|
|
96
|
+
out.push({ path: at('where', w, 'column'), message: `"${kind.table}" has no column "${where.column}"` });
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
for (const value of where.in ?? [where.eq]) {
|
|
100
|
+
if (!valueFits(found, value))
|
|
101
|
+
out.push({ path: at('where', w), message: `${JSON.stringify(value)} is not a value "${kind.table}.${where.column}" takes` });
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
// Two kinds on one table are told apart by what they ask of the row.
|
|
105
|
+
lookUp.kinds.slice(0, k).forEach((other) => {
|
|
106
|
+
if (other.table === kind.table && JSON.stringify(other.where ?? null) === JSON.stringify(kind.where ?? null)) {
|
|
107
|
+
out.push({ path: at('where'), message: `"${kind.id}" and "${other.id}" both read "${kind.table}" and ask the same of its rows: give them a "where" that differs` });
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
shown(table, kind.show, at('show'), codesOf(kind.table));
|
|
111
|
+
if (kind.rows !== undefined) {
|
|
112
|
+
const history = byRef.get(kind.rows.table);
|
|
113
|
+
if (history === undefined) {
|
|
114
|
+
out.push({ path: at('rows', 'table'), message: `"${kind.rows.table}" is not a table of this add-on` });
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const via = column(history, kind.rows.via);
|
|
118
|
+
if (via === undefined || via.type !== 'fk' || via.references !== kind.table)
|
|
119
|
+
out.push({ path: at('rows', 'via'), message: `"${kind.rows.table}.${kind.rows.via}" is not a foreign key to "${kind.table}"` });
|
|
120
|
+
shown(history, kind.rows.columns, at('rows', 'columns'), codesOf(kind.rows.table));
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
if (lookUp.address !== undefined) {
|
|
124
|
+
const { address } = lookUp;
|
|
125
|
+
const at = (...rest) => ['addOn', 'lookUp', 'address', ...rest];
|
|
126
|
+
const table = byRef.get(address.table);
|
|
127
|
+
if (table === undefined) {
|
|
128
|
+
out.push({ path: at('table'), message: `"${address.table}" is not a table of this add-on` });
|
|
129
|
+
return out;
|
|
130
|
+
}
|
|
131
|
+
const found = column(table, address.column);
|
|
132
|
+
if (found === undefined)
|
|
133
|
+
out.push({ path: at('column'), message: `"${address.table}" has no column "${address.column}"` });
|
|
134
|
+
else if (found.rules?.['normalize'] !== 'email')
|
|
135
|
+
out.push({ path: at('column'), message: `"${address.table}.${address.column}" is compared as an address: give it normalize "email"` });
|
|
136
|
+
shown(table, address.show, at('show'), codesOf(address.table));
|
|
137
|
+
}
|
|
138
|
+
return out;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=look-up.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"look-up.js","sourceRoot":"","sources":["../src/look-up.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,8 +69,8 @@ export declare const appReleaseWireSchema: z.ZodObject<{
|
|
|
69
69
|
capabilities: z.ZodArray<z.ZodString>;
|
|
70
70
|
publisher: z.ZodString;
|
|
71
71
|
sides: z.ZodArray<z.ZodEnum<{
|
|
72
|
-
customer: "customer";
|
|
73
72
|
staff: "staff";
|
|
73
|
+
customer: "customer";
|
|
74
74
|
}>>;
|
|
75
75
|
minAdminiumVersion: z.ZodString;
|
|
76
76
|
addOns: z.ZodObject<{
|
|
@@ -155,8 +155,8 @@ export declare const appItemWireSchema: z.ZodObject<{
|
|
|
155
155
|
capabilities: z.ZodArray<z.ZodString>;
|
|
156
156
|
publisher: z.ZodString;
|
|
157
157
|
sides: z.ZodArray<z.ZodEnum<{
|
|
158
|
-
customer: "customer";
|
|
159
158
|
staff: "staff";
|
|
159
|
+
customer: "customer";
|
|
160
160
|
}>>;
|
|
161
161
|
minAdminiumVersion: z.ZodString;
|
|
162
162
|
addOns: z.ZodObject<{
|
package/dist/outbox.d.ts
CHANGED
|
@@ -357,6 +357,7 @@ export declare const outboxSchema: z.ZodObject<{
|
|
|
357
357
|
pages: z.ZodOptional<z.ZodObject<{
|
|
358
358
|
manage: z.ZodOptional<z.ZodString>;
|
|
359
359
|
booking: z.ZodOptional<z.ZodString>;
|
|
360
|
+
app: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
360
361
|
}, z.core.$strict>>;
|
|
361
362
|
kinds: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
362
363
|
producers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
@@ -666,6 +667,9 @@ export declare const REPEAT_KEY_LENGTH = 43;
|
|
|
666
667
|
export declare const WAS_MIN_LENGTH = 1000;
|
|
667
668
|
/** The mark on a template's block that is sent only with the document the template carries (`attach.optional`). */
|
|
668
669
|
export declare const WITH_ATTACHMENT = "withAttachment";
|
|
670
|
+
/** The marks on a block that is sent only when a variable is filled (`onlyWith`), or only when it is empty (`onlyWithout`). */
|
|
671
|
+
export declare const ONLY_WITH = "onlyWith";
|
|
672
|
+
export declare const ONLY_WITHOUT = "onlyWithout";
|
|
669
673
|
/** What the outbox writes, and which rules each refuses: everything, but a check of the address a person types. */
|
|
670
674
|
export declare const OUTBOX_WRITTEN: {
|
|
671
675
|
readonly status: readonly ["copy", "default", "sequence", "format", "code", "rollup", "formula", "stamp", "perNight", "options", "validation", "required", "requiredWhen", "notAfter", "notBefore"];
|
|
@@ -698,6 +702,8 @@ export declare function outboxIssues(m: {
|
|
|
698
702
|
outbox?: Outbox | undefined;
|
|
699
703
|
emailTemplates?: readonly EmailTemplate[] | undefined;
|
|
700
704
|
addOns?: AddOnNeeds | undefined;
|
|
705
|
+
/** `add-on` when the outbox is an add-on's own: it links into its apps' pages, and has no guest side of its own. */
|
|
706
|
+
kind?: string | undefined;
|
|
701
707
|
} & Parameters<typeof unlistedColumn>[0], index: TableIndex): ReferenceIssue[];
|
|
702
708
|
/**
|
|
703
709
|
* `email.rows`: the rows of a child table that link to the row an outbox link
|
|
@@ -712,7 +718,7 @@ export declare function outboxIssues(m: {
|
|
|
712
718
|
* is left out.
|
|
713
719
|
*/
|
|
714
720
|
export declare const emailRowsDataSchema: z.ZodObject<{
|
|
715
|
-
from: z.ZodObject<{
|
|
721
|
+
from: z.ZodUnion<readonly [z.ZodObject<{
|
|
716
722
|
link: z.ZodString;
|
|
717
723
|
table: z.ZodString;
|
|
718
724
|
via: z.ZodString;
|
|
@@ -723,7 +729,22 @@ export declare const emailRowsDataSchema: z.ZodObject<{
|
|
|
723
729
|
}, z.core.$strict>>;
|
|
724
730
|
unless: z.ZodOptional<z.ZodString>;
|
|
725
731
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
726
|
-
}, z.core.$strict
|
|
732
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
733
|
+
link: z.ZodString;
|
|
734
|
+
addOn: z.ZodString;
|
|
735
|
+
table: z.ZodString;
|
|
736
|
+
match: z.ZodObject<{
|
|
737
|
+
table: z.ZodString;
|
|
738
|
+
row: z.ZodString;
|
|
739
|
+
}, z.core.$strict>;
|
|
740
|
+
orderBy: z.ZodOptional<z.ZodString>;
|
|
741
|
+
where: z.ZodOptional<z.ZodObject<{
|
|
742
|
+
column: z.ZodString;
|
|
743
|
+
in: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
|
|
744
|
+
}, z.core.$strict>>;
|
|
745
|
+
unless: z.ZodOptional<z.ZodString>;
|
|
746
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
747
|
+
}, z.core.$strict>]>;
|
|
727
748
|
joins: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
728
749
|
table: z.ZodString;
|
|
729
750
|
via: z.ZodString;
|
|
@@ -764,8 +785,13 @@ export declare const GROUPED_FORM = "grouped";
|
|
|
764
785
|
* A code in groups of four joined by `-` (`K7QXM2PD` → `K7QX-M2PD`), the way
|
|
765
786
|
* a person reads it out; separators already in it are dropped first. Empty
|
|
766
787
|
* stays empty.
|
|
788
|
+
*
|
|
789
|
+
* A code kept with a prefix keeps it whole (`GC-7K2M9QXA41TR` with `GC-` →
|
|
790
|
+
* `GC-7K2M-9QXA-41TR`): the prefix is what tells a card from a voucher, and
|
|
791
|
+
* cut into the first group of four it reads as part of the code. A value
|
|
792
|
+
* that does not start with the prefix is grouped as any other.
|
|
767
793
|
*/
|
|
768
|
-
export declare function groupedCode(value: unknown): string;
|
|
794
|
+
export declare function groupedCode(value: unknown, prefix?: string): string;
|
|
769
795
|
/** Whether a column holds a code Adminium makes: a text column with a `code` rule. */
|
|
770
796
|
export declare function isCodeColumn(column: {
|
|
771
797
|
type: string;
|
package/dist/outbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../src/outbox.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAkB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAQL,KAAK,cAAc,EAEnB,KAAK,UAAU,EAChB,MAAM,WAAW,CAAC;AAEnB,+DAA+D;AAC/D,eAAO,MAAM,eAAe,kDAAmD,CAAC;AAEhF,mEAAmE;AACnE,eAAO,MAAM,WAAW,SAAS,CAAC;AAElC,kGAAkG;AAClG,eAAO,MAAM,mBAAmB,uEAAwE,CAAC;AA0IzG,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAgE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AA4BlE,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../src/outbox.ts"],"names":[],"mappings":"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"}
|
package/dist/outbox.js
CHANGED
|
@@ -315,6 +315,16 @@ export const outboxSchema = z
|
|
|
315
315
|
.object({
|
|
316
316
|
manage: z.string().regex(/^\/[A-Za-z0-9/_-]{0,119}$/, 'a path on the guest side, e.g. /my-visits').optional(),
|
|
317
317
|
booking: z.string().regex(/^\/[A-Za-z0-9/_-]{0,119}$/, 'a path on the guest side, e.g. /').optional(),
|
|
318
|
+
/**
|
|
319
|
+
* An add-on's links into the customer side of whichever app it serves:
|
|
320
|
+
* a name of its own → the key of a route that app declares. A template
|
|
321
|
+
* reads it as `{{app_url.<name>}}`; it is empty when no app of the
|
|
322
|
+
* add-on's has that route.
|
|
323
|
+
*/
|
|
324
|
+
app: z
|
|
325
|
+
.record(z.string().regex(/^[a-z][a-z0-9-]{0,39}$/, 'a kebab-case name'), z.string().regex(/^[A-Za-z][A-Za-z0-9]{0,39}$/, 'a route key'))
|
|
326
|
+
.refine((names) => Object.keys(names).length >= 1 && Object.keys(names).length <= 6, { message: 'one to six links into an app' })
|
|
327
|
+
.optional(),
|
|
318
328
|
})
|
|
319
329
|
.strict()
|
|
320
330
|
.optional(),
|
|
@@ -400,6 +410,9 @@ export const REPEAT_KEY_LENGTH = 43;
|
|
|
400
410
|
export const WAS_MIN_LENGTH = 1000;
|
|
401
411
|
/** The mark on a template's block that is sent only with the document the template carries (`attach.optional`). */
|
|
402
412
|
export const WITH_ATTACHMENT = 'withAttachment';
|
|
413
|
+
/** The marks on a block that is sent only when a variable is filled (`onlyWith`), or only when it is empty (`onlyWithout`). */
|
|
414
|
+
export const ONLY_WITH = 'onlyWith';
|
|
415
|
+
export const ONLY_WITHOUT = 'onlyWithout';
|
|
403
416
|
/** What the outbox writes, and which rules each refuses: everything, but a check of the address a person types. */
|
|
404
417
|
export const OUTBOX_WRITTEN = {
|
|
405
418
|
status: [...DECIDING_RULES, ...REFUSING_RULES],
|
|
@@ -452,6 +465,23 @@ export function outboxIssues(m, index) {
|
|
|
452
465
|
// A block sent only with the document: marked `true`, and only where the document may be left out.
|
|
453
466
|
for (const [locale, content] of Object.entries(template.locales)) {
|
|
454
467
|
content.blocks.forEach((block, b) => {
|
|
468
|
+
// A block sent only when a variable is filled, or only when it is empty: one name, without braces.
|
|
469
|
+
const marks = [ONLY_WITH, ONLY_WITHOUT].filter((name) => block.data?.[name] !== undefined);
|
|
470
|
+
if (marks.length === 2)
|
|
471
|
+
out.push({ path: ['emailTemplates', i, 'locales', locale, 'blocks', b, 'data'], message: `a block is sent ${ONLY_WITH} a variable or ${ONLY_WITHOUT} one, not both` });
|
|
472
|
+
for (const name of marks) {
|
|
473
|
+
const variable = block.data?.[name];
|
|
474
|
+
const path = ['emailTemplates', i, 'locales', locale, 'blocks', b, 'data', name];
|
|
475
|
+
if (typeof variable !== 'string' || !/^[A-Za-z_][A-Za-z0-9_.-]{0,119}$/.test(variable)) {
|
|
476
|
+
out.push({ path, message: `${name} names one variable, without braces (card.sender_name)` });
|
|
477
|
+
}
|
|
478
|
+
else if (variable.startsWith('app_url.') && m.outbox?.pages?.app?.[variable.slice('app_url.'.length)] === undefined) {
|
|
479
|
+
out.push({ path, message: `"${variable}" is not a link the outbox declares (outbox.pages.app)` });
|
|
480
|
+
}
|
|
481
|
+
else if (variable.startsWith('row.')) {
|
|
482
|
+
out.push({ path, message: 'a row\'s own value is read inside an email.rows block, which is sent with its rows or not at all' });
|
|
483
|
+
}
|
|
484
|
+
}
|
|
455
485
|
const mark = block.data?.[WITH_ATTACHMENT];
|
|
456
486
|
if (mark === undefined)
|
|
457
487
|
return;
|
|
@@ -476,6 +506,16 @@ export function outboxIssues(m, index) {
|
|
|
476
506
|
return out;
|
|
477
507
|
}
|
|
478
508
|
const at = (...rest) => ['outbox', ...rest];
|
|
509
|
+
// Whose pages a link leads to: an app's own guest side, or — for an add-on — a page of the app it serves.
|
|
510
|
+
if (m.kind === 'add-on') {
|
|
511
|
+
for (const own of ['manage', 'booking']) {
|
|
512
|
+
if (box.pages?.[own] !== undefined)
|
|
513
|
+
out.push({ path: at('pages', own), message: `an add-on has no guest side of its own: link into its app's pages by name (outbox.pages.app)` });
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
else if (box.pages?.app !== undefined) {
|
|
517
|
+
out.push({ path: at('pages', 'app'), message: 'an app links to its own guest side (pages.manage, pages.booking): "app" is how an add-on links into an app' });
|
|
518
|
+
}
|
|
479
519
|
if (index.table(box.table) === undefined) {
|
|
480
520
|
out.push({ path: at('table'), message: `"${box.table}" is not a table of this app` });
|
|
481
521
|
return out;
|
|
@@ -870,7 +910,8 @@ export function outboxIssues(m, index) {
|
|
|
870
910
|
}
|
|
871
911
|
}
|
|
872
912
|
});
|
|
873
|
-
|
|
913
|
+
const named = new Set([...(m.kind === 'add-on' ? [m.key] : []), ...(m.addOns?.requires ?? []), ...(m.addOns?.suggests ?? [])].map((need) => (typeof need === 'string' ? need : need.key)));
|
|
914
|
+
out.push(...emailBlockIssues(m.emailTemplates ?? [], box, index, (table, column) => unlistedColumn(m, table, column), named));
|
|
874
915
|
return out;
|
|
875
916
|
}
|
|
876
917
|
// ── blocks that list rows, and QR codes ──────────────────────────────────────
|
|
@@ -888,17 +929,36 @@ export function outboxIssues(m, index) {
|
|
|
888
929
|
*/
|
|
889
930
|
export const emailRowsDataSchema = z
|
|
890
931
|
.object({
|
|
891
|
-
from: z
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
932
|
+
from: z.union([
|
|
933
|
+
z
|
|
934
|
+
.object({
|
|
935
|
+
link: z.string().regex(/^[a-z][a-z_]*$/, 'a link name is snake_case'),
|
|
936
|
+
table: refSchema,
|
|
937
|
+
via: refSchema,
|
|
938
|
+
orderBy: refSchema.optional(),
|
|
939
|
+
where: z.object({ column: refSchema, in: z.array(scalarSchema).min(1).max(32) }).strict().optional(),
|
|
940
|
+
unless: refSchema.optional(),
|
|
941
|
+
limit: z.number().int().min(1).max(50).optional(),
|
|
942
|
+
})
|
|
943
|
+
.strict(),
|
|
944
|
+
/**
|
|
945
|
+
* Rows of an add-on's table that belong to the row a link names, found
|
|
946
|
+
* by the table-and-row pair the add-on keeps (what was applied to an
|
|
947
|
+
* order). `table` and `match` are the add-on's own short names.
|
|
948
|
+
*/
|
|
949
|
+
z
|
|
950
|
+
.object({
|
|
951
|
+
link: z.string().regex(/^[a-z][a-z_]*$/, 'a link name is snake_case'),
|
|
952
|
+
addOn: z.string().regex(/^[a-z][a-z0-9-]{1,79}$/, 'an add-on key'),
|
|
953
|
+
table: refSchema,
|
|
954
|
+
match: z.object({ table: refSchema, row: refSchema }).strict(),
|
|
955
|
+
orderBy: refSchema.optional(),
|
|
956
|
+
where: z.object({ column: refSchema, in: z.array(scalarSchema).min(1).max(32) }).strict().optional(),
|
|
957
|
+
unless: refSchema.optional(),
|
|
958
|
+
limit: z.number().int().min(1).max(50).optional(),
|
|
959
|
+
})
|
|
960
|
+
.strict(),
|
|
961
|
+
]),
|
|
902
962
|
joins: z
|
|
903
963
|
.record(refSchema, z
|
|
904
964
|
.object({ table: refSchema, via: refSchema, column: refSchema, orderBy: refSchema.optional(), separator: z.string().min(1).max(8).optional() })
|
|
@@ -937,7 +997,9 @@ function stringsIn(value, path, out = []) {
|
|
|
937
997
|
* can fill; the same rows in every language; and a QR code only as a whole
|
|
938
998
|
* image value, of a code column.
|
|
939
999
|
*/
|
|
940
|
-
function emailBlockIssues(templates, box, index, unlisted
|
|
1000
|
+
function emailBlockIssues(templates, box, index, unlisted,
|
|
1001
|
+
/** The add-ons whose rows a block may list: the ones the manifest names, and itself when it is one. */
|
|
1002
|
+
named = new Set()) {
|
|
941
1003
|
const out = [];
|
|
942
1004
|
const links = box.links ?? {};
|
|
943
1005
|
/** The table a link names. */
|
|
@@ -1023,6 +1085,14 @@ function emailBlockIssues(templates, box, index, unlisted) {
|
|
|
1023
1085
|
const parent = linkTable(from.link);
|
|
1024
1086
|
if (links[from.link] === undefined)
|
|
1025
1087
|
out.push({ path: at('data', 'from', 'link'), message: `"${from.link}" is not one of the outbox's links` });
|
|
1088
|
+
if ('addOn' in from) {
|
|
1089
|
+
// An add-on's rows: its table and columns are checked where its manifest is at hand, at install.
|
|
1090
|
+
if (!named.has(from.addOn))
|
|
1091
|
+
out.push({ path: at('data', 'from', 'addOn'), message: `"${from.addOn}" is not an add-on this manifest names: add it to addOns.requires or addOns.suggests` });
|
|
1092
|
+
if (data.joins !== undefined)
|
|
1093
|
+
out.push({ path: at('data', 'joins'), message: 'rows of an add-on\'s table join no list of this manifest\'s' });
|
|
1094
|
+
return;
|
|
1095
|
+
}
|
|
1026
1096
|
if (index.table(from.table) === undefined) {
|
|
1027
1097
|
out.push({ path: at('data', 'from', 'table'), message: `"${from.table}" is not a table of this app` });
|
|
1028
1098
|
return;
|
|
@@ -1164,12 +1234,21 @@ export const GROUPED_FORM = 'grouped';
|
|
|
1164
1234
|
* A code in groups of four joined by `-` (`K7QXM2PD` → `K7QX-M2PD`), the way
|
|
1165
1235
|
* a person reads it out; separators already in it are dropped first. Empty
|
|
1166
1236
|
* stays empty.
|
|
1237
|
+
*
|
|
1238
|
+
* A code kept with a prefix keeps it whole (`GC-7K2M9QXA41TR` with `GC-` →
|
|
1239
|
+
* `GC-7K2M-9QXA-41TR`): the prefix is what tells a card from a voucher, and
|
|
1240
|
+
* cut into the first group of four it reads as part of the code. A value
|
|
1241
|
+
* that does not start with the prefix is grouped as any other.
|
|
1167
1242
|
*/
|
|
1168
|
-
export function groupedCode(value) {
|
|
1243
|
+
export function groupedCode(value, prefix = '') {
|
|
1169
1244
|
if (value === null || value === undefined)
|
|
1170
1245
|
return '';
|
|
1246
|
+
const fours = (text) => (text.match(/.{1,4}/g) ?? []).join('-');
|
|
1171
1247
|
const bare = String(value).replace(/[\s-]+/g, '');
|
|
1172
|
-
|
|
1248
|
+
const head = prefix.replace(/[^0-9A-Za-z]/g, '');
|
|
1249
|
+
if (head !== '' && bare.length > head.length && bare.toUpperCase().startsWith(head.toUpperCase()))
|
|
1250
|
+
return prefix + fours(bare.slice(head.length));
|
|
1251
|
+
return fours(bare);
|
|
1173
1252
|
}
|
|
1174
1253
|
/** Whether a column holds a code Adminium makes: a text column with a `code` rule. */
|
|
1175
1254
|
export function isCodeColumn(column) {
|