diff --git a/dist/LineUpJS.js b/dist/LineUpJS.js index b55ae47bf..0bf1b7285 100644 --- a/dist/LineUpJS.js +++ b/dist/LineUpJS.js @@ -1570,14 +1570,20 @@ return /******/ (function(modules) { // webpackBootstrap var cats = [], cols = this.colors.range(), labels = d3.map(); desc.categories.forEach(function (cat, i) { if (typeof cat === 'string') { + //just the category value cats.push(cat); } else { - cats.push(cat.name); + //the name or value of the category + cats.push(cat.name || cat.value); + //optional label mapping if (cat.label) { labels.set(cat.name, cat.label); } - cols[i] = cat.color; + //optional color + if (cat.color) { + cols[i] = cat.color; + } } }); this.catLabels = labels; @@ -1667,14 +1673,22 @@ return /******/ (function(modules) { // webpackBootstrap range: this.colors.range(), separator: this.separator }; + if (this.catLabels !== null && !this.catLabels.empty()) { + r.labels = this.catLabels.entries(); + } return r; }; CategoricalColumn.prototype.restore = function (dump, factory) { + var _this = this; _super.prototype.restore.call(this, dump, factory); this.currentFilter = dump.filter || null; if (dump.colors) { this.colors.domain(dump.colors.domain).range(dump.colors.range); } + if (dump.labels) { + this.catLabels = d3.map(); + dump.labels.forEach(function (e) { return _this.catLabels.set(e.key, e.value); }); + } this.separator = dump.separator || this.separator; }; CategoricalColumn.prototype.isFiltered = function () { diff --git a/dist/LineUpJS.js.map b/dist/LineUpJS.js.map index b49776ab3..649f638dc 100644 --- a/dist/LineUpJS.js.map +++ b/dist/LineUpJS.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 496fae7ea234bec7beb3","webpack:///./src/bundle.js","webpack:///./src/style.scss","webpack:///./src/main.ts","webpack:///./src/model.ts","webpack:///external \"d3\"","webpack:///./src/utils.ts","webpack:///./src/provider.ts","webpack:///./src/renderer.ts","webpack:///./src/ui.ts","webpack:///./src/ui_dialogs.ts","webpack:///./src/mappingeditor.ts"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;;;;;;;ACJA,0C;;;;;;;ACAA;;;IAGG;;;;;;;AAEH,4CAA2C;AAC3C,KAAO,MAAM,uBAAW,CAAS,CAAC,CAAC;AACnC,KAAO,SAAS,uBAAW,CAAY,CAAC,CAAC;AACzC,KAAO,SAAS,uBAAW,CAAY,CAAC,CAAC;AACzC,KAAO,GAAG,uBAAW,CAAM,CAAC,CAAC;AAC7B,KAAO,MAAM,uBAAW,CAAS,CAAC,CAAC;AACnC,KAAO,WAAW,uBAAW,EAAc,CAAC,CAAC;AAC7C,KAAO,EAAE,uBAAW,CAAI,CAAC,CAAC;AAE1B;;;IAGG;AACQ,cAAK,GAAG,MAAM,CAAC;AAC1B;;;IAGG;AACQ,iBAAQ,GAAG,SAAS,CAAC;AAChC;;;IAGG;AACQ,iBAAQ,GAAG,SAAS,CAAC;AAChC;;;IAGG;AACQ,WAAE,GAAG,GAAG,CAAC;AACpB;;;IAGG;AACQ,cAAK,GAAG,MAAM,CAAC;AAC1B;;;IAGG;AACQ,mBAAU,GAAG,WAAW,CAAC;AAGpC;;IAEG;AACH;KAA4B,0BAAuB;KAoJjD,gBAAY,SAAqC,EAAS,IAA2B,EAAE,MAAe;SApJxG,iBAmVC;SA/LwF,sBAAe,GAAf,WAAe;SACpG,iBAAO,CAAC;SADgD,SAAI,GAAJ,IAAI,CAAuB;SAvHrF;;YAEG;SACH,WAAM,GAAG;aACP;;gBAEG;aACH,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;aAE3D;;gBAEG;aACH,MAAM,EAAE;iBACN;;oBAEG;iBACH,YAAY,EAAE,EAAE;iBAChB;;oBAEG;iBACH,qBAAqB,EAAE,EAAE;iBACzB;;oBAEG;iBACH,gBAAgB,EAAE,KAAK;iBACvB;;oBAEG;iBACH,cAAc,EAAE,EAAE;iBAClB;;oBAEG;iBACH,cAAc,EAAE,CAAC,EAAE;iBACnB;;oBAEG;iBACH,cAAc,EAAoB,GAAG,CAAC,sBAAsB;iBAE5D;;oBAEG;iBACH,aAAa,EAAE,EAAE;cAClB;aACD;;gBAEG;aACH,UAAU,EAAE,EAAE;aACd;;gBAEG;aACH,gBAAgB,EAAE;iBAChB;;oBAEG;iBACH,OAAO,EAAE,IAAI;iBACb;;oBAEG;iBACH,SAAS,EAAE,IAAI;iBACf;;oBAEG;iBACH,UAAU,EAAE,KAAK;iBACjB;;oBAEG;iBACH,QAAQ,EAAE,KAAK;cAChB;aACD;;gBAEG;aACH,IAAI,EAAE;iBACJ,QAAQ,EAAE,KAAK;iBACf,SAAS,EAAE,EAAE;iBACb,UAAU,EAAE,GAAG;iBACf,aAAa,EAAE,CAAC;iBAEhB;;oBAEG;iBACH,eAAe,EAAE,IAAI;iBAErB;;oBAEG;iBACH,gBAAgB,EAAE,CAAC;iBACnB,iBAAiB,EAAE,IAAI;iBAEvB,uDAAuD;iBACvD,UAAU,EAAE,CAAC;iBAEb,UAAU,EAAE,EAAE;cACf;aACD;;gBAEG;aACH,SAAS,EAAE,EAAE;aACb;;gBAEG;aACH,YAAY,EAAE,IAAI;aAClB;;gBAEG;aACH,IAAI,EAAE,KAAK;aAEX;;gBAEG;aACH,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE;UACjC,CAAC;SAIM,SAAI,GAAqB,IAAI,CAAC;SAC9B,WAAM,GAAsB,IAAI,CAAC;SACjC,UAAK,GAAsB,EAAE,CAAC;SAC9B,oBAAe,GAA0B,IAAI,CAAC;SA8JtD;;;YAGG;SACK,wBAAmB,GAAG,KAAK,CAAC;SA9JlC,IAAI,CAAC,UAAU,GAAG,SAAS,YAAY,EAAE,CAAC,SAAS,GAAsB,SAAS,GAAG,EAAE,CAAC,MAAM,CAAU,SAAS,CAAC,CAAC;SACnH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACpE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SACzC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;SAE5C,aAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAGjC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,uBAAuB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAExE,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;aACpD,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;aACtC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY;aAC7C,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB;aAC/D,UAAU,EAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU;aAEpD,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB;aACrD,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc;aACjD,cAAc,EAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc;aAElD,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU;aAEvC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc;aACjD,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa;UAChD,CAAC,CAAC;SACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,GAAG,GAAG,CAAC,YAAY,GAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACvI,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;aACrC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU;aACvC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa;aAC7C,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB;aACrD,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ;aAC/C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS;aACjD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO;aAC7C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU;aACpC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;aAE9B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU;aACvC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;UACjC,CAAC,CAAC;SACH,mBAAmB;SACnB,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;SAElD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;SACpD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;aACjD,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACnE,CAAC;SAED,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;aACrC,IAAI,CAAC,eAAe,GAAG,IAAI,MAAM,CAAC,eAAe,CAAU,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;iBACjG,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB;iBAC7C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;iBACrC,QAAQ,EAAE,cAAM,YAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAA3B,CAA2B;cAC5C,CAAC,CAAC;aACH,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;iBAC1C,4CAA4C;iBAC5C,8BAA8B;iBAC9B,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;iBAC7E,EAAE,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;qBACrC,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;qBAC/B,KAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;iBAC9B,CAAC;aACH,CAAC,CAAC,CAAC;aACH,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACtE,CAAC;KACH,CAAC;KAED,gCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,4BAA4B,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;KACpM,CAAC;KASD,wBAAO,GAAP,UAAQ,SAAkC,EAAE,MAAoB;SAApB,sBAAoB,GAApB,SAAS,IAAI,CAAC,MAAM;SAC9D,EAAE,CAAC,CAAC,SAAS,YAAY,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;aAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,SAAS,CAAC,CAAC;SAC/C,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAW,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;SAC/E,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC3C,CAAC;KAMD,sBAAI,wBAAI;SAJR;;;YAGG;cACH;aACE,MAAM,CAAU,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SACzC,CAAC;;;QAAA;KAEO,sBAAK,GAAb,UAAc,KAAY,EAAE,MAAa,EAAE,KAA0B;SACnE,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;aACzB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;SAC3D,CAAC;SACD,MAAM,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAC,CAAC;KACnC,CAAC;KAED;;QAEG;KACH,wBAAO,GAAP;SACE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,MAAM,EAAE,EAAV,CAAU,CAAC,CAAC;SACtC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;SACzB,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;aACzB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;SACjC,CAAC;KACH,CAAC;KAED;;;;;QAKG;KACH,uBAAM,GAAN,UAAO,MAA8C,EAAE,SAAiB;SAAjB,yBAAiB,GAAjB,iBAAiB;SACtE,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACjC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACR,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAC1B,CAAC;SACD,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC;KACtB,CAAC;KAED,qBAAI,GAAJ;SACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KAC1B,CAAC;KAED,kCAAiB,GAAjB,UAAkB,IAA2B,EAAE,IAAS;SACtD,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;SAC9C,CAAC;SACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACT,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC1B,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,uBAAuB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACxE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SACpC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAzB,CAAyB,CAAC,CAAC;SACrD,IAAI,CAAC,MAAM,EAAE,CAAC;KAChB,CAAC;KAEO,iCAAgB,GAAxB,UAAyB,YAAqB;SAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC1F,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC;KAC/D,CAAC;KAED,wBAAO,GAAP,UAAQ,IAAQ;SACd,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC1C,CAAC;KAQD,uBAAM,GAAN;SAAA,iBAoBC;SAnBC,gEAAgE;SAChE,oEAAoE;SACpE,6DAA6D;SAC7D,iEAAiE;SACjE,mCAAmC;SACnC,IAAI,mBAAmB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC7D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SAEhC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;SACrC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;SACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,MAAM,EAAE,EAAV,CAAU,CAAC,CAAC;SAEtC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE;aAC7B,mBAAmB,IAAI,CAAC,CAAC;aACzB,EAAE,EAAC,mBAAmB,KAAK,CAAC,CAAC,CAAG,CAAC;iBAC/B,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;aAC1C,CAAC;SACH,CAAC,CAAC,CAAC;KACL,CAAC;KAED,sCAAqB,GAArB,UAAsB,MAAa,EAAE,KAAa;SAChD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;SAC7C,EAAE,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;aACnD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aACnC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;SACrB,CAAC;KACH,CAAC;KAjVD;;;QAGG;KACI,0BAAmB,GAAG,cAAc,CAAC;KAE5C;;;QAGG;KACI,8BAAuB,GAAG,kBAAkB,CAAC;KAEpD;;;QAGG;KACI,mCAA4B,GAAG,uBAAuB,CAAC;KAE9D;;QAEG;KACI,yBAAkB,GAAG,aAAa,CAAC;KAE1C;;QAEG;KACI,4BAAqB,GAAG,gBAAgB,CAAC;KAwTlD,aAAC;AAAD,EAAC,CAnV2B,MAAM,CAAC,gBAAgB,GAmVlD;AAnVY,eAAM,SAmVlB;AAED;;;;IAIG;AACH,uBAA6B,OAA4B;KACvD,IAAI,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;KACnD,OAAO,CAAC,OAAO,CAAC,UAAC,GAAO;SACtB,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;aACjB,KAAK,QAAQ;iBACX,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;iBAC3B,KAAK,CAAC;SACV,CAAC;KACH,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,OAAO,CAAC;AACjB,EAAC;AAVe,qBAAY,eAU3B;AAED;;;;;;IAMG;AACH,6BAAmC,IAAU,EAAE,OAA4B,EAAE,OAAY;KAAZ,uBAAY,GAAZ,YAAY;KACvF,MAAM,CAAC,IAAI,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjE,EAAC;AAFe,2BAAkB,qBAEjC;AAED,iBAAuB,IAA2B,EAAE,SAAqC,EAAE,MAAe;KAAf,sBAAe,GAAf,WAAe;KACxG,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7C,EAAC;AAFe,eAAM,SAErB;;;;;;;ACpaD;;IAEG;AACH,4CAA2C;;;;;;;AAE3C,KAAO,EAAE,uBAAW,CAAI,CAAC,CAAC;AAC1B,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC;;;;IAIG;AACH,iBAAgB,EAAE;KAChB,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAC,CAAC,4BAA4B;AACzG,EAAC;AAED;;;;;IAKG;AACH,wBAAuB,CAAQ,EAAE,CAAQ;KACvC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACtC,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KACD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,EAAC;AA8DD;;IAEG;AACH;KAA4B,0BAAsB;KA2ChD,gBAAY,EAAS,EAAS,IAAgB;SAC5C,iBAAO,CAAC;SADoB,SAAI,GAAJ,IAAI,CAAY;SAxB9C;;;;YAIG;SACK,UAAK,GAAU,GAAG,CAAC;SAE3B,WAAM,GAAiB,IAAI,CAAC;SAU5B;;;;YAIG;SACK,eAAU,GAAG,KAAK,CAAC;SAIzB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;SACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;SACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;SAC/C,IAAI,CAAC,QAAQ,GAAS,IAAI,CAAC,IAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;SAChD,IAAI,CAAC,KAAK,GAAS,IAAI,CAAC,IAAK,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;KAC9F,CAAC;KAED,sBAAI,kCAAc;cAAlB;aACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,CAAC;;;QAAA;KAED,4BAAW,GAAX,UAAY,WAAwB;SAClC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;KAClC,CAAC;KAED,qBAAI,GAAJ,UAAK,QAAmD;SACtD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC/B,CAAC;KAMD,sBAAI,wBAAI;SAJR;;;YAGG;cACH;aACE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;SAClE,CAAC;;;QAAA;KAED,sBAAI,0BAAM;cAAV;aACE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SACjF,CAAC;;;QAAA;KAED;;;;;;;;;;QAUG;KACH,gCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;KACrM,CAAC;KAED,yBAAQ,GAAR;SACE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;KACpB,CAAC;KAED,yBAAQ,GAAR;SACE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;KACzB,CAAC;KAED,8BAAa,GAAb,UAAc,KAAa;SACzB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC;aAC9B,MAAM,CAAC;SACT,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;KAClH,CAAC;KAED,8BAAa,GAAb;SACE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;KACzB,CAAC;KAED;;;;;;;QAOG;KACH,wBAAO,GAAP,UAAQ,CAAe,EAAE,MAAa,EAAE,UAAc,EAAE,OAAW;SAA3B,0BAAc,GAAd,cAAc;SAAE,uBAAW,GAAX,WAAW;SACjE,IAAM,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACtE,CAAC,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;SAC9C,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,yBAAQ,GAAR,UAAS,KAAY;SACnB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;aACzB,MAAM,CAAC;SACT,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;KACrG,CAAC;KAED,6BAAY,GAAZ,UAAa,KAAY;SACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACrB,CAAC;KAED,4BAAW,GAAX,UAAY,KAAsB;SAChC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;aACvG,MAAM,CAAC;SACT,CAAC;SACD,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,cAAc,EAAE,iBAAiB,EAAC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,iBAAiB,EAAC,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;SACjL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE;aACpC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;aAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;aAC/B,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;UAClD,CAAC,CAAC;KACL,CAAC;KAED,4BAAW,GAAX;SACE,MAAM,CAAC;aACL,KAAK,EAAE,IAAI,CAAC,KAAK;aACjB,KAAK,EAAE,IAAI,CAAC,KAAK;aACjB,WAAW,EAAE,IAAI,CAAC,WAAW;UAC9B,CAAC;KACJ,CAAC;KAED;;;;QAIG;KACH,yBAAQ,GAAR,UAAS,SAAiB;SAAjB,yBAAiB,GAAjB,iBAAiB;SACxB,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SAC5B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACN,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SACnC,CAAC;SACD,MAAM,CAAC,KAAK,CAAC;KACf,CAAC;KAED;;;QAGG;KACH,gCAAe,GAAf;SACE,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SAC5B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACN,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAC/B,CAAC;SACD,MAAM,CAAC,KAAK,CAAC;KACf,CAAC;KAED;;;QAGG;KACH,yBAAQ,GAAR;SACE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAClC,CAAC;SACD,MAAM,CAAC,KAAK,CAAC;KACf,CAAC;KAED;;;;QAIG;KACH,8BAAa,GAAb,UAAc,GAAU;SACtB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;SACpD,CAAC;SACD,MAAM,CAAC,KAAK,CAAC;KACf,CAAC;KAED;;;QAGG;KACH,6BAAY,GAAZ;SACE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;SACpC,CAAC;SACD,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;;;QAIG;KACH,qBAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAI,CAAC,GAAO;aACV,EAAE,EAAE,IAAI,CAAC,EAAE;aACX,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;aACjB,UAAU,EAAE,IAAI,CAAC,UAAU;UAC5B,CAAC;SACF,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAChD,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SACvB,CAAC;SACD,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAO,IAAI,CAAC,IAAK,CAAC,KAAK,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAClF,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SACvB,CAAC;SACD,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED;;;;QAIG;KACH,wBAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;SACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;SACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;SACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;KAC7C,CAAC;KAED;;;;QAIG;KACH,yBAAQ,GAAR,UAAS,GAAO;SACd,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KACjC,CAAC;KAED;;;;QAIG;KACH,yBAAQ,GAAR,UAAS,GAAO;SACd,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU;KACvB,CAAC;KAED;;;;;QAKG;KACH,wBAAO,GAAP,UAAQ,CAAK,EAAE,CAAK;SAClB,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe;KAC3B,CAAC;KAED;;;QAGG;KACH,2BAAU,GAAV;SACE,MAAM,CAAC,KAAK,CAAC;KACf,CAAC;KAED;;;;QAIG;KACH,uBAAM,GAAN,UAAO,GAAO;SACZ,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC;KACtB,CAAC;KAjSD;;;QAGG;KACI,oBAAa,GAAG,SAAS,CAAC;KACjC;;;QAGG;KACI,uBAAgB,GAAG,CAAC,CAAC,CAAC;KAC7B;;;QAGG;KACI,uBAAgB,GAAG,EAAE,CAAC;KAoR/B,aAAC;AAAD,EAAC,CAnS2B,KAAK,CAAC,gBAAgB,GAmSjD;AAnSY,eAAM,SAmSlB;AACD;;IAEG;AACH;KAAoC,+BAAM;KAGxC,qBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SAChB,eAAe;SACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAM,WAAI,EAAJ,CAAI,CAAC,CAAC;KAChD,CAAC;KAED,8BAAQ,GAAR,UAAS,GAAO;SACd,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KACjC,CAAC;KAED,8BAAQ,GAAR,UAAS,GAAO;SACd,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;KACrE,CAAC;KAED,6BAAO,GAAP,UAAQ,CAAK,EAAE,CAAK;SAClB,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe;KAC3B,CAAC;KACH,kBAAC;AAAD,EAAC,CApBmC,MAAM,GAoBzC;AApBY,oBAAW,cAoBvB;AAED;;IAEG;AACH;KAAiC,+BAAM;KAErC,qBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;KAClB,CAAC;KAED,8BAAQ,GAAR,UAAS,GAAO;SACd,MAAM,CAAC,EAAE,CAAC;KACZ,CAAC;KAED,8BAAQ,GAAR,UAAS,GAAO;SACd,MAAM,CAAC,EAAE,CAAC;KACZ,CAAC;KAED,6BAAO,GAAP,UAAQ,CAAK,EAAE,CAAK;SAClB,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe;KAC3B,CAAC;KACH,kBAAC;AAAD,EAAC,CAjBgC,MAAM,GAiBtC;AAjBY,oBAAW,cAiBvB;AAaD;;;;IAIG;AACH,yBAA+B,GAAsB;KACnD,MAAM,CAAC,CAAC,GAAG,YAAY,MAAM,IAAI,OAAa,GAAI,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,MAAM,CAAC,IAAkB,GAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAChL,EAAC;AAFe,uBAAc,iBAE7B;AAED;;;;IAIG;AACH,8BAAoC,GAAsB;KACxD,MAAM,CAAC,CAAC,GAAG,YAAY,MAAM,IAAI,OAAa,GAAI,CAAC,aAAa,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,MAAM,CAAC,IAAkB,GAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnL,EAAC;AAFe,4BAAmB,sBAElC;AAoCD,kBAAiB,IAAe;KAAf,oBAAe,GAAf,eAAe;KAC9B,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SACb,KAAK,KAAK;aACR,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACpC,KAAK,MAAM;aACT,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACrC,KAAK,QAAQ;aACX,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAClD,KAAK,MAAM;aACT,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAChD,KAAK,MAAM;aACT,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAChD;aACE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACzC,CAAC;AACH,EAAC;AAED,iBAAgB,CAAW,EAAE,CAAW;KACtC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;SAC1B,MAAM,CAAC,KAAK,CAAC;KACf,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,EAAE,EAAE,CAAC,IAAK,SAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAX,CAAW,CAAC,CAAC;AACzC,EAAC;AAGD,oBAAmB,MAAgB,EAAE,IAAY;KAC/C,EAAE,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACtC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,UAAU;KACnC,CAAC;KACD,MAAM,CAAC,MAAM,CAAC;AAChB,EAAC;AACD;;IAEG;AACH;KAGE,8BAAY,MAAuB,EAAU,IAAe,EAAE,KAAwB;SAA1E,sBAAuB,GAAvB,UAAmB,CAAC,EAAC,CAAC,CAAC;SAAE,oBAAuB,GAAvB,eAAuB;SAAE,qBAAwB,GAAxB,SAAoB,CAAC,EAAC,CAAC,CAAC;SAAzC,SAAI,GAAJ,IAAI,CAAW;SAC1D,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC1E,CAAC;KAED,sBAAI,wCAAM;cAAV;aACE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACzB,CAAC;cAED,UAAW,MAAgB;aACzB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC7C,CAAC;;;QAJA;KAMD,sBAAI,uCAAK;cAAT;aACE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;SACxB,CAAC;cAED,UAAU,KAAe;aACvB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACtB,CAAC;;;QAJA;KAMD,oCAAK,GAAL,UAAM,CAAQ;SACZ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB,CAAC;KAED,sBAAI,2CAAS;cAAb;aACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SACnB,CAAC;;;QAAA;KAED,mCAAI,GAAJ;SACE,MAAM,CAAC;aACL,IAAI,EAAE,IAAI,CAAC,IAAI;aACf,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,KAAK,EAAE,IAAI,CAAC,KAAK;UAClB,CAAC;KACJ,CAAC;KAED,iCAAE,GAAF,UAAG,KAAuB;SACxB,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,oBAAoB,CAAC,CAAC,CAAC,CAAC;aAC7C,MAAM,CAAC,KAAK,CAAC;SACf,CAAC;SACD,IAAM,IAAI,GAAyB,KAAK,CAAC;SACzC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KACvG,CAAC;KAED,sCAAO,GAAP,UAAQ,IAAQ;SACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACtB,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpE,CAAC;KAED,oCAAK,GAAL;SACE,MAAM,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KACtE,CAAC;KACH,2BAAC;AAAD,EAAC;AAvDY,6BAAoB,uBAuDhC;AAED;;IAEG;AACH;KAGE,+BAAoB,OAAwB,EAAU,KAAyE;SAAnH,uBAAgC,GAAhC,WAA4B,CAAC,EAAC,CAAC,CAAC;SAAE,qBAAiF,GAAjF,kEAAiF;SAA3G,YAAO,GAAP,OAAO,CAAiB;SAAU,UAAK,GAAL,KAAK,CAAoE;SAC7H,IAAI,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KACxC,CAAC;KAED,sBAAI,yCAAM;cAAV;aACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SACtB,CAAC;cAED,UAAW,MAAgB;aACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;SACxB,CAAC;;;QAJA;KAMD,sBAAI,uCAAI;cAAR;aACE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACpB,CAAC;cAED,UAAS,IAAY;aACnB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;iBACxB,MAAM,CAAC;aACT,CAAC;aACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aAClB,IAAI,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SACvC,CAAC;;;QARA;KAUD,qCAAK,GAAL,UAAM,CAAQ;SACZ,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EACzB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;SAC5C,IAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;aACpB,SAAS,EAAE,GAAG;aACd,SAAS,EAAE,GAAG;aACd,WAAW,EAAE,GAAG,GAAG,GAAG;aACtB,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;aAClC,MAAM,EAAG,UAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAK,QAAC,CAAC,GAAC,EAAE,CAAC,GAAC,CAAC,EAAE,GAAC,EAAE,CAAC,EAAd,CAAc;UACvC,EAAE,CAAC,CAAC,CAAC;SAEN,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;aAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACrC,CAAC;SACD,MAAM,CAAC,GAAG,CAAC;KACb,CAAC;KAED,oCAAI,GAAJ;SACE,MAAM,CAAC;aACL,IAAI,EAAE,QAAQ;aACd,IAAI,EAAE,IAAI,CAAC,IAAI;UAChB,CAAC;KACJ,CAAC;KAED,kCAAE,GAAF,UAAG,KAAuB;SACxB,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,qBAAqB,CAAC,CAAC,CAAC,CAAC;aAC9C,MAAM,CAAC,KAAK,CAAC;SACf,CAAC;SACD,IAAM,IAAI,GAA0B,KAAK,CAAC;SAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;KACjC,CAAC;KAED,uCAAO,GAAP,UAAQ,IAAQ;SACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;KACxB,CAAC;KAED,qCAAK,GAAL;SACE,MAAM,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3D,CAAC;KACH,4BAAC;AAAD,EAAC;AAlEY,8BAAqB,wBAkEjC;AAED,gCAAsC,IAAS;KAC7C,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;SAC3B,IAAI,CAAC,GAAG,IAAI,qBAAqB,EAAE,CAAC;SACpC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChB,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAAC,IAAI,CAAC,CAAC;SACN,IAAI,CAAC,GAAG,IAAI,oBAAoB,EAAE,CAAC;SACnC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChB,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;AACH,EAAC;AAVe,8BAAqB,wBAUpC;AAED;;IAEG;AACH;KAAkC,gCAAmB;KAgBnD,sBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SAhBlB,iBAAY,GAAG,CAAC,CAAC;SAMjB;;;;YAIG;SACK,kBAAa,GAAmB,EAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAC,CAAC;SAEhE,iBAAY,GAA2B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAK9D,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACb,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACjD,CAAC;SAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aACvB,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;SACtF,CAAC;SACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SAErC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;aACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACnD,CAAC;KACH,CAAC;KAED,2BAAI,GAAJ,UAAK,QAAmD;SAAxD,iBAYC;SAVC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SAC5B,sEAAsE;SACtE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,KAAK;iBACpC,KAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;iBAC7C,KAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;iBAC9C,MAAM,CAAC,IAAI,CAAC;aACd,CAAC,CAAC,CAAC;SACL,CAAC;SACD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC/B,CAAC;KAED,2BAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAI,CAAC,GAAG,gBAAK,CAAC,IAAI,YAAC,SAAS,CAAC,CAAC;SAC9B,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAC5B,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;SAC9B,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;SACnC,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,8BAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAC5C,gBAAK,CAAC,OAAO,YAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC7B,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACb,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACjD,CAAC;SAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aACvB,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;SACtF,CAAC;SACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;aACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;SAC1C,CAAC;SACD,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;aACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;SACxC,CAAC;SACD,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;aACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACnD,CAAC;KACH,CAAC;KAED,sCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC5D,CAAC;KAED,+BAAQ,GAAR,UAAS,GAAO;SACd,kEAAkE;SAClE,EAAE,CAAC,CAAO,IAAI,CAAC,IAAK,CAAC,YAAY,CAAC,CAAC,CAAC;aAClC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;SAClD,CAAC;SACD,IAAM,CAAC,GAAG,gBAAK,CAAC,QAAQ,YAAC,GAAG,CAAC,CAAC;SAC9B,oEAAoE;SACpE,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAClE,CAAC;KAED,kCAAW,GAAX,UAAY,GAAO;SACjB,IAAI,CAAC,GAAO,gBAAK,CAAC,QAAQ,YAAC,GAAG,CAAC,CAAC;SAChC,EAAE,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3I,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;SAC3B,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,CAAC;KACZ,CAAC;KAED,+BAAQ,GAAR,UAAS,GAAO;SACd,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SAC9B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACb,MAAM,CAAC,CAAC,CAAC;SACX,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC/B,CAAC;KAED,gCAAS,GAAT,UAAU,GAAO;SACf,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KAC5B,CAAC;KAED,8BAAO,GAAP,UAAQ,CAAK,EAAE,CAAK;SAClB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3D,CAAC;KAED,yCAAkB,GAAlB;SACE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;KAC/B,CAAC;KAED,iCAAU,GAAV;SACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KAC9B,CAAC;KAED,iCAAU,GAAV,UAAW,OAAyB;SAClC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAC7B,MAAM,CAAC;SACT,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;KACtG,CAAC;KAED,iCAAU,GAAV;SACE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;KAC9E,CAAC;KAED,sBAAI,mCAAS;cAAb;aACE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;SAChC,CAAC;cAaD,UAAc,GAAU;aACtB,IAAI,GAAG,GAAG,EAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAC,CAAC;aACrE,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;aACtD,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SAChF,CAAC;;;QAjBA;KAED,sBAAI,mCAAS;cAAb;aACE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;SAChC,CAAC;cAeD,UAAc,GAAU;aACtB,IAAI,GAAG,GAAG,EAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAC,CAAC;aACrE,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC;aACrD,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SAChF,CAAC;;;QAnBA;KAED,gCAAS,GAAT;SACE,MAAM,CAAC;aACL,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;aAC3B,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;UAC5B,CAAC;KACJ,CAAC;KAcD,gCAAS,GAAT,UAAU,KAAuD;SAAvD,qBAAuD,GAAvD,UAAwB,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAC;SAC/D,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;aACjF,MAAM,CAAC;SACT,CAAC;SACD,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;SAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAE,KAAK,CAAE,GAAG,CAAC;SAClE,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC;SACjE,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;KAChF,CAAC;KAED;;;;QAIG;KACH,6BAAM,GAAN,UAAO,GAAO;SACZ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aACvB,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SAC9B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACb,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;KACjJ,CAAC;KACH,mBAAC;AAAD,EAAC,CApLiC,WAAW,GAoL5C;AApLY,qBAAY,eAoLxB;AAED;;IAEG;AACH;KAAkC,gCAAmB;KAOnD,sBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SALV,kBAAa,GAAiB,IAAI,CAAC;SAEnC,eAAU,GAAU,MAAM,CAAC;SAIjC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB;SACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;KAC7C,CAAC;KAGD,sBAAI,mCAAS;SADb,UAAU;cACV;aACE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SACzB,CAAC;;;QAAA;KAED,+BAAQ,GAAR,UAAS,GAAO;SACd,IAAI,CAAC,GAAO,gBAAK,CAAC,QAAQ,YAAC,GAAG,CAAC,CAAC;SAChC,EAAE,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;aAC3C,MAAM,CAAC,EAAE,CAAC;SACZ,CAAC;SACD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KACnB,CAAC;KAED,2BAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAI,CAAC,GAAG,gBAAK,CAAC,IAAI,YAAC,SAAS,CAAC,CAAC;SAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,YAAY,MAAM,CAAC,CAAC,CAAC;aACzC,CAAC,CAAC,MAAM,GAAG,QAAQ,GAAY,IAAI,CAAC,aAAc,CAAC,MAAM,CAAC;SAC5D,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;SAChC,CAAC;SACD,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SAC7B,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,8BAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAC5C,gBAAK,CAAC,OAAO,YAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC7B,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;aACxD,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACxD,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;SAC3C,CAAC;SACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC;KACtD,CAAC;KAED,iCAAU,GAAV;SACE,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;KACpC,CAAC;KAED,6BAAM,GAAN,UAAO,GAAO;SACZ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aACvB,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EACxB,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;SAE9B,EAAE,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;aAC3C,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;SACtC,CAAC;SACD,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;aACpD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;SACjE,CAAC;SACD,EAAE,CAAC,CAAC,MAAM,YAAY,MAAM,CAAC,CAAC,CAAC;aAC7B,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC7B,CAAC;SACD,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED,gCAAS,GAAT;SACE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;KAC5B,CAAC;KAED,gCAAS,GAAT,UAAU,MAAoB;SAC5B,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC;aAClB,MAAM,GAAG,IAAI,CAAC;SAChB,CAAC;SACD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC;aAClC,MAAM,CAAC;SACT,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;KACxG,CAAC;KAED,8BAAO,GAAP,UAAQ,CAAK,EAAE,CAAK;SAClB,IAAI,KAAa,EAAE,KAAa,CAAC;SACjC,EAAE,EAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU;SACrD,CAAC;SAAC,IAAI,CAAC,EAAE,EAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAC5C,MAAM,CAAC,CAAC,CAAC,CAAC;SACZ,CAAC;SACD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KACpC,CAAC;KA3FD,sCAAsC;KAC/B,2BAAc,GAAG,kBAAkB,CAAC;KA2F7C,mBAAC;AAAD,EAAC,CA7FiC,WAAW,GA6F5C;AA7FY,qBAAY,eA6FxB;AAED;;IAEG;AACH;KAAgC,8BAAY;KAO1C,oBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SAPlB;;;YAGG;SACK,SAAI,GAAG,IAAI,CAAC;SAIlB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;KACxB,CAAC;KAED,sBAAI,sCAAc;cAAlB;aACE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,MAAM,GAAG,mBAAmB,CAAC;SAC1D,CAAC;;;QAAA;KAED,oCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;KACzD,CAAC;KAED,4BAAO,GAAP,UAAQ,IAAY;SAClB,oBAAoB;SACpB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACtB,MAAM,CAAC;SACT,CAAC;SACD,mBAAmB;SACnB,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;KACjG,CAAC;KAED,4BAAO,GAAP;SACE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;KACzB,CAAC;KAED,yBAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAI,CAAC,GAAG,gBAAK,CAAC,IAAI,YAAC,SAAS,CAAC,CAAC;SAC9B,oBAAoB;SACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAU,IAAI,CAAC,IAAK,CAAC,IAAI,CAAC,CAAC,CAAC;aACvC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACrB,CAAC;SACD,mBAAmB;SACnB,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,4BAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAC5C,gBAAK,CAAC,OAAO,YAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC7B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACxB,CAAC;KACH,CAAC;KAED,6BAAQ,GAAR,UAAS,GAAO;SACd,IAAI,CAAC,GAAO,gBAAK,CAAC,QAAQ,YAAC,GAAG,CAAC,CAAC;SAChC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACV,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;SACf,CAAC;SACD,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;KAChB,CAAC;KAED,2BAAM,GAAN,UAAO,GAAQ;SACb,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACd,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,oBAAoB;SACpB,IAAI,CAAC,GAAO,gBAAK,CAAC,QAAQ,YAAC,GAAG,CAAC,CAAC;SAChC,iBAAiB;SACjB,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;KACxB,CAAC;KAED,6BAAQ,GAAR,UAAS,GAAO;SACd,oBAAoB;SACpB,IAAI,CAAC,GAAO,gBAAK,CAAC,QAAQ,YAAC,GAAG,CAAC,CAAC;SAChC,iBAAiB;SACjB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;SAChB,CAAC;SAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACtC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KACH,iBAAC;AAAD,EAAC,CA/E+B,YAAY,GA+E3C;AA/EY,mBAAU,aA+EtB;AAED;;IAEG;AACH;KAAoC,kCAAY;KAG9C,wBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SAHV,gBAAW,GAAG,EAAE,CAAC,GAAG,EAAU,CAAC;KAIvC,CAAC;KAED,wCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;KAC1D,CAAC;KAED,iCAAQ,GAAR,UAAS,GAAO;SACd,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAC/B,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAChC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACrC,CAAC;SACD,MAAM,CAAC,gBAAK,CAAC,QAAQ,YAAC,GAAG,CAAC,CAAC;KAC7B,CAAC;KAED,6BAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAI,CAAC,GAAG,gBAAK,CAAC,IAAI,YAAC,SAAS,CAAC,CAAC;SAC9B,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC;SACnB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACvB,CAAC,CAAC,CAAC;SACH,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,gCAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAA9C,iBAOC;SANC,gBAAK,CAAC,OAAO,YAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC7B,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;aACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC;iBACtC,KAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/C,CAAC,CAAC,CAAC;SACL,CAAC;KACH,CAAC;KAED,iCAAQ,GAAR,UAAS,GAAO,EAAE,KAAY;SAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC7B,EAAE,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC;aAClB,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;aAClC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;SAC9C,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;SAClD,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;SAC5E,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KACH,qBAAC;AAAD,EAAC,CAlDmC,YAAY,GAkD/C;AAlDY,uBAAc,iBAkD1B;AAED,sBAAwB,CAAM,EAAE,CAAM;KACpC,IAAM,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;KACpC,IAAM,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;KACpC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SACd,MAAM,CAAC,KAAK,CAAC;KACf,CAAC;KACD,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;SACb,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,EAAE,EAAC,CAAC,IAAK,SAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAX,CAAW,CAAC,CAAC;AACxC,EAAC;AAED;;IAEG;AACH;KAAqC,mCAAoB;KAWvD,yBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC3B,CAAC;KAbD;;;;QAIG;KACI,oBAAI,GAAX,UAAY,KAAkB;SAAlB,qBAAkB,GAAlB,WAAkB;SAC5B,MAAM,CAAC,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;KAC3C,CAAC;KAQD,yCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;KACpD,CAAC;KAED,kCAAQ,GAAR,UAAS,GAAO,EAAE,KAAa;SAC7B,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC/B,EAAE,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC;aAClB,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KAClC,CAAC;KAEO,iCAAO,GAAf,UAAgB,GAAQ,EAAE,KAAc;SACtC,EAAE,CAAC,CAAO,IAAI,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aACtB,IAAI,CAAC,IAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACtC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;SAChC,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED,qCAAW,GAAX,UAAY,GAAO;SACjB,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;SACxB,MAAM,CAAC,CAAC,GAAG,CAAC;KACd,CAAC;KAED,iCAAO,GAAP,UAAQ,CAAK,EAAE,CAAK;SAClB,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1D,CAAC;KACH,sBAAC;AAAD,EAAC,CA7CoC,WAAW,GA6C/C;AA7CY,wBAAe,kBA6C3B;AAGD;;IAEG;AACH;KAAmC,iCAAoB;KAKrD,uBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SALV,kBAAa,GAAW,IAAI,CAAC;SAC7B,eAAU,GAAG,GAAG,CAAC;SACjB,gBAAW,GAAG,EAAE,CAAC;SAIvB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;SACrD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC;KAC1D,CAAC;KAED,gCAAQ,GAAR,UAAS,GAAO;SACd,IAAI,CAAC,GAAO,gBAAK,CAAC,QAAQ,YAAC,GAAG,CAAC,CAAC;SAChC,EAAE,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;aAC3C,MAAM,CAAC,KAAK,CAAC;SACf,CAAC;SACD,MAAM,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC;KAChE,CAAC;KAED,gCAAQ,GAAR,UAAS,GAAQ;SACf,IAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC7B,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;KAChD,CAAC;KAED,4BAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAI,CAAC,GAAG,gBAAK,CAAC,IAAI,YAAC,SAAS,CAAC,CAAC;SAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC;aAChC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;SAChC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,+BAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAC5C,gBAAK,CAAC,OAAO,YAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC7B,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;aACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;SACnC,CAAC;KACH,CAAC;KAED,kCAAU,GAAV;SACE,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC;KACrC,CAAC;KAED,8BAAM,GAAN,UAAO,GAAO;SACZ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aACvB,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC3B,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC;KAClC,CAAC;KAED,iCAAS,GAAT;SACE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;KAC5B,CAAC;KAED,iCAAS,GAAT,UAAU,MAAc;SACtB,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC;aAClC,MAAM,CAAC;SACT,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;KACxG,CAAC;KAED,+BAAO,GAAP,UAAQ,CAAO,EAAE,CAAO;SACtB,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1D,CAAC;KACH,oBAAC;AAAD,EAAC,CAlEkC,WAAW,GAkE7C;AAlEY,sBAAa,gBAkEzB;AAED;;IAEG;AACH;KAAuC,qCAAmB;KA0BxD,2BAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SA1BlB;;;YAGG;SACK,WAAM,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SAEvC;;;YAGG;SACK,cAAS,GAAG,EAAE,CAAC,GAAG,EAAU,CAAC;SAErC;;;;YAIG;SACK,kBAAa,GAAY,IAAI,CAAC;SAEtC;;;YAGG;SACK,cAAS,GAAG,GAAG,CAAC;SAItB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;SAClD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC1B,iCAAiC;KACnC,CAAC;KAED,0CAAc,GAAd,UAAe,IAAQ;SACrB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;aACpB,IAAI,IAAI,GAAG,EAAE,EACX,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAC1B,MAAM,GAAG,EAAE,CAAC,GAAG,EAAU,CAAC;aAC5B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,GAAG,EAAE,CAAC;iBAC7B,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC;qBAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACjB,CAAC;iBAAC,IAAI,CAAC,CAAC;qBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBACpB,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;yBACd,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;qBAClC,CAAC;qBACD,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;iBACtB,CAAC;aACH,CAAC,CAAC,CAAC;aACH,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;aACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACvC,CAAC;KACH,CAAC;KAED,sBAAI,yCAAU;cAAd;aACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SAC9B,CAAC;;;QAAA;KAED,sBAAI,6CAAc;cAAlB;aACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;SAC7B,CAAC;;;QAAA;KAED,sBAAI,6CAAc;cAAlB;aAAA,iBAOC;aANC,YAAY;aACZ,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACtD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;aACzB,CAAC;aACD,2BAA2B;aAC3B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAjD,CAAiD,CAAC,CAAC;SACvF,CAAC;;;QAAA;KAED,mCAAO,GAAP,UAAQ,GAAW;SACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC1B,CAAC;KAED,oCAAQ,GAAR,UAAS,GAAO;SACd,YAAY;SACZ,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACtD,MAAM,CAAC,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC9D,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAClD,CAAC;KAED,yCAAa,GAAb,UAAc,GAAO;SACnB,IAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC9B,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KACpC,CAAC;KAGD,qCAAS,GAAT,UAAU,GAAO;SAAjB,iBAWC;SAVC,IAAI,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACxD,IAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAE,EAAE,CAAC;SAE1C,IAAM,UAAU,GAAG,UAAC,MAAgB;aAClC,EAAE,CAAC,CAAC,KAAI,CAAC,SAAS,KAAK,IAAI,IAAI,KAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACtD,MAAM,CAAC,MAAM,CAAC;aAChB,CAAC;aACD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAjD,CAAiD,CAAC,CAAC;SAC9E,CAAC,CAAC;SACF,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACvB,CAAC;KAED,oCAAQ,GAAR,UAAS,GAAO;SACd,IAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC9B,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KACpC,CAAC;KAED,qCAAS,GAAT,UAAU,GAAO;SACf,IAAI,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACxD,IAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAE,EAAE,CAAC;SAC1C,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,yCAAa,GAAb,UAAc,GAAQ;SACpB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KAC7B,CAAC;KAED,oCAAQ,GAAR,UAAS,GAAO;SACd,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC7B,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;aAC/B,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC1B,CAAC;KAED,qCAAS,GAAT,UAAU,GAAO;SACf,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClD,CAAC;KAED,gCAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAI,CAAC,GAAG,gBAAK,CAAC,IAAI,YAAC,SAAS,CAAC,CAAC;SAC9B,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;SAC9B,CAAC,CAAC,MAAM,GAAG;aACT,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;aAC5B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;aAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;UAC1B,CAAC;SACF,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,mCAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAC5C,gBAAK,CAAC,OAAO,YAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;SACzC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAClE,CAAC;SACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;KACpD,CAAC;KAED,sCAAU,GAAV;SACE,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;KACpC,CAAC;KAED,kCAAM,GAAN,UAAO,GAAO;SACZ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aACvB,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAC9B,MAAM,GAAO,IAAI,CAAC,aAAa,CAAC;SAClC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,UAAC,CAAC;aAChB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC/C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAChC,CAAC;aAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC3D,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;aACjE,CAAC;aAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,YAAY,MAAM,CAAC,CAAC,CAAC;iBACpC,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aACjD,CAAC;aACD,MAAM,CAAC,IAAI,CAAC;SACd,CAAC,CAAC,CAAC;KACL,CAAC;KAED,qCAAS,GAAT;SACE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;KAC5B,CAAC;KAED,qCAAS,GAAT,UAAU,MAAe;SACvB,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC3C,MAAM,CAAC;SACT,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;KACxG,CAAC;KAED,mCAAO,GAAP,UAAQ,CAAK,EAAE,CAAK;SAClB,IAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC7B,IAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC7B,sBAAsB;SACtB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;aACxD,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aACpC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;iBACb,MAAM,CAAC,EAAE,CAAC;aACZ,CAAC;SACH,CAAC;SACD,qBAAqB;SACrB,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;KAC/B,CAAC;KACH,wBAAC;AAAD,EAAC,CAnMsC,WAAW,GAmMjD;AAnMY,0BAAiB,oBAmM7B;AAED;;IAEG;AACH;KAA6C,2CAAmB;KAmB9D,iCAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SAnBV,WAAM,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SAEvC;;;YAGG;SACK,cAAS,GAAG,EAAE,CAAC,GAAG,EAAU,CAAC;SAE7B,UAAK,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAEpD,kBAAa,GAAY,IAAI,CAAC;SACtC;;;YAGG;SACK,cAAS,GAAG,GAAG,CAAC;SAChB,aAAQ,GAAG,EAAE,CAAC,GAAG,CAAC;SAIxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;SAClD,iBAAiB,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAE5D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;SACxC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;aACpB,gCAAgC;aAChC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,EAA1E,CAA0E,CAAC,CAAC;aACpH,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC3B,CAAC;KACH,CAAC;KAED,iDAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC5D,CAAC;KAED,sBAAI,+CAAU;cAAd;aACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;SACtC,CAAC;;;QAAA;KAED,sBAAI,mDAAc;cAAlB;aACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;SACrC,CAAC;;;QAAA;KAED,sBAAI,mDAAc;cAAlB;aAAA,iBAOC;aANC,YAAY;aACZ,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACtD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;aACzB,CAAC;aACD,2BAA2B;aAC3B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAjD,CAAiD,CAAC,CAAC;SACvF,CAAC;;;QAAA;KAED,yCAAO,GAAP,UAAQ,GAAW;SACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC1B,CAAC;KAED,0CAAQ,GAAR,UAAS,GAAO;SACd,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC9D,CAAC;KAED,+CAAa,GAAb,UAAc,GAAO;SACnB,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACnE,CAAC;KAED,2CAAS,GAAT,UAAU,GAAO;SACf,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC/D,CAAC;KAED,0CAAQ,GAAR,UAAS,GAAO;SACd,IAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC9B,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KAC7C,CAAC;KAED,2CAAS,GAAT,UAAU,GAAO;SACf,IAAM,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAChE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B,CAAC;KAED,+CAAa,GAAb,UAAc,GAAQ;SACpB,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC/D,CAAC;KAED,2CAAS,GAAT,UAAU,GAAO;SACf,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KAC5B,CAAC;KAED,0CAAQ,GAAR,UAAS,GAAO;SACd,IAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC/B,IAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC/B,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7B,mBAAmB;aACnB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAK,SAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,IAAI,EAAlD,CAAkD,EAAE;iBAC9F,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;iBACR,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;cACT,CAAC,CAAC,CAAC,CAAC;SACP,CAAC;SAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;aACpC,mBAAmB;aACnB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAK,SAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,IAAI,EAAlD,CAAkD,EAAE;iBAC9F,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;iBACR,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;cACT,CAAC,CAAC,CAAC,CAAC;SACP,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,eAAe;aACf,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;SACvB,CAAC;KACH,CAAC;KAED,2CAAS,GAAT,UAAU,GAAG;SACX,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC/D,CAAC;KAED,sCAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAI,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SAC/D,CAAC,CAAC,KAAK,GAAG;aACR,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;aAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;aACzB,SAAS,EAAE,IAAI,CAAC,SAAS;UAC1B,CAAC;SACF,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,yCAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAC5C,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;SAC9D,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aACf,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC/D,CAAC;SACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;KACpD,CAAC;KAED,0CAAQ,GAAR;SACE,MAAM,CAAC;aACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;aAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;UAC1B,CAAC;KACJ,CAAC;KAED,4CAAU,GAAV;SACE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;KACpC,CAAC;KAED,4CAAU,GAAV,UAAW,KAAc;SACvB,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SAC1B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACxB,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC9E,CAAC;KAED,4CAAU,GAAV;SACE,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;KACpC,CAAC;KAED,wCAAM,GAAN,UAAO,GAAO;SACZ,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC5D,CAAC;KAED,2CAAS,GAAT;SACE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;KAC5B,CAAC;KAED,2CAAS,GAAT,UAAU,MAAe;SACvB,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC;aAClC,MAAM,CAAC;SACT,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;KACxG,CAAC;KAED,yCAAO,GAAP,UAAQ,CAAK,EAAE,CAAK;SAClB,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACzD,CAAC;KACH,8BAAC;AAAD,EAAC,CAzK4C,WAAW,GAyKvD;AAzKY,gCAAuB,0BAyKnC;AAGD;;IAEG;AACH;KAAqC,mCAAM;KAGzC,yBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SAHR,cAAS,GAAY,EAAE,CAAC;KAIlC,CAAC;KAED,qCAAW,GAAX,UAAY,WAAwB;SAClC,gBAAK,CAAC,WAAW,YAAC,WAAW,CAAC,CAAC;SAC/B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAA1B,CAA0B,CAAC,CAAC;KAC5D,CAAC;KAED,sBAAI,qCAAQ;cAAZ;aACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;SAChC,CAAC;;;QAAA;KAED,sBAAI,mCAAM;cAAV;aACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC/B,CAAC;;;QAAA;KAED,iCAAO,GAAP,UAAQ,CAAe,EAAE,MAAa,EAAE,UAAc,EAAE,OAAW;SAA3B,0BAAc,GAAd,cAAc;SAAE,uBAAW,GAAX,WAAW;SACjE,IAAI,IAAI,GAAG,IAAI,CAAC;SAChB,iCAAiC;SACjC,EAAE,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,UAAU,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;aAC9D,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;aACzE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,EAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;aACrD,EAAE,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC;iBACrB,MAAM,CAAC,CAAC,CAAC;aACX,CAAC;SACH,CAAC;SACD,eAAe;SACf,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,CAAC;aACvB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,UAAU,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;iBAC3D,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;aAChD,CAAC;SACH,CAAC,CAAC,CAAC;SACH,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,8BAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAI,CAAC,GAAG,gBAAK,CAAC,IAAI,YAAC,SAAS,CAAC,CAAC;SAC9B,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAjB,CAAiB,CAAC,CAAC;SAC1D,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,iCAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAA9C,iBAQC;SAPC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAK;aACtB,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;aACvB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACN,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACf,CAAC;SACH,CAAC,CAAC,CAAC;SACH,gBAAK,CAAC,OAAO,YAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC/B,CAAC;KAED;;;;;;QAMG;KACH,gCAAM,GAAN,UAAO,GAAU,EAAE,KAAY;SAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;SACrC,6BAA6B;SAC7B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KACrC,CAAC;KAES,oCAAU,GAApB,UAAqB,GAAW,EAAE,KAAa;SAC7C,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;SAClB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC;SAC1G,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;SAC5E,MAAM,CAAC,GAAG,CAAC;KACb,CAAC;KAED,8BAAI,GAAJ,UAAK,GAAU;SACb,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KACjD,CAAC;KAED,4BAAE,GAAF,UAAG,KAAa;SACd,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAC/B,CAAC;KAED,iCAAO,GAAP,UAAQ,GAAU;SAChB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KACrC,CAAC;KAED,qCAAW,GAAX,UAAY,GAAU,EAAE,GAAU;SAChC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC1B,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACV,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACjC,CAAC;KACD,gCAAM,GAAN,UAAO,KAAY;SACjB,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACtC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACV,MAAM,CAAC,KAAK,CAAC;SACf,CAAC;SACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iCAAiC;SAC9D,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KAChC,CAAC;KAES,oCAAU,GAApB,UAAqB,KAAa;SAChC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC;SAC9G,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;SAC1E,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED,kCAAQ,GAAR,UAAS,GAAQ;SACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;KACpB,CAAC;KAED,oCAAU,GAAV;SACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,UAAU,EAAE,EAAd,CAAc,CAAC,CAAC;KACpD,CAAC;KAED,gCAAM,GAAN,UAAO,GAAO;SACZ,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAb,CAAa,CAAC,CAAC;KACpD,CAAC;KACH,sBAAC;AAAD,EAAC,CAzHoC,MAAM,GAyH1C;AAzHY,wBAAe,kBAyH3B;AAED;;IAEG;AACH;KAA2C,yCAAe;KAKxD,+BAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SALX,iBAAY,GAAG,CAAC,CAAC;SAEhB,iBAAY,GAA2B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAK9D,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;aACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACnD,CAAC;KACH,CAAC;KAGD,oCAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAI,CAAC,GAAG,gBAAK,CAAC,IAAI,YAAC,SAAS,CAAC,CAAC;SAC9B,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;SACnC,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,uCAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAC5C,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;aACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;SACxC,CAAC;SACD,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;aACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACnD,CAAC;SACD,gBAAK,CAAC,OAAO,YAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC/B,CAAC;KAED;;;;;;QAMG;KACH,sCAAM,GAAN,UAAO,GAAU,EAAE,KAAY;SAC7B,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACzB,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,MAAM,CAAC,gBAAK,CAAC,MAAM,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KAClC,CAAC;KAED,wCAAQ,GAAR,UAAS,GAAQ;SACf,IAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC7B,oEAAoE;SACpE,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KACjE,CAAC;KAED,wCAAQ,GAAR,UAAS,GAAO;SACd,cAAc;SACd,IAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC5B,EAAE,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACvD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;SAC3B,CAAC;SACD,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAES,uCAAO,GAAjB,UAAkB,GAAQ;SACxB,MAAM,CAAC,GAAG,CAAC;KACb,CAAC;KAED,yCAAS,GAAT,UAAU,GAAO;SACf,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KAC5B,CAAC;KAED,uCAAO,GAAP,UAAQ,CAAK,EAAE,CAAK;SAClB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3D,CAAC;KACH,4BAAC;AAAD,EAAC,CAtE0C,eAAe,GAsEzD;AAtEY,8BAAqB,wBAsEjC;AAOD,6BAAmC,GAAW;KAC5C,MAAM,CAAC,OAAO,CAAO,GAAI,CAAC,YAAY,CAAC,KAAK,UAAU,CAAC;AACzD,EAAC;AAFe,2BAAkB,qBAEjC;AAED;;IAEG;AACH;KAAiC,+BAAqB;KAmBpD,qBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SARlB;;;;YAIG;SACK,cAAS,GAAG,KAAK,CAAC;SAKxB,IAAM,IAAI,GAAG,IAAI,CAAC;SAClB,IAAI,CAAC,WAAW,GAAG,UAAU,GAAG,EAAE,IAAI;aACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SAChD,CAAC,CAAC;KACJ,CAAC;KAzBD;;;;QAIG;KACI,gBAAI,GAAX,UAAY,KAAyB;SAAzB,qBAAyB,GAAzB,kBAAyB;SACnC,MAAM,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;KACvC,CAAC;KAoBD,qCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAC;KAC/E,CAAC;KAED,kCAAY,GAAZ,UAAa,KAAa;SACxB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC;aAC7B,MAAM,CAAC;SACT,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;KAChH,CAAC;KAED,kCAAY,GAAZ;SACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;KACxB,CAAC;KAED,6BAAO,GAAP,UAAQ,CAAe,EAAE,MAAa,EAAE,UAAc,EAAE,OAAW;SAA3B,0BAAc,GAAd,cAAc;SAAE,uBAAW,GAAX,WAAW;SACjE,IAAI,IAAI,GAAG,IAAI,CAAC;SAChB,IAAM,QAAQ,GAAI,UAAU,IAAI,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,QAAQ,EAAE,EAAb,CAAa,CAAC,CAAC;SACvH,iCAAiC;SACjC,EAAE,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,UAAU,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;aAC9D,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;aACzE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;iBAC7C,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;aACvC,CAAC;aACD,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,EAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;aACrD,EAAE,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC;iBACrB,MAAM,CAAC,CAAC,CAAC;aACX,CAAC;SACH,CAAC;SACD,eAAe;SACf,IAAI,GAAG,GAAG,MAAM,CAAC;SACjB,QAAQ,CAAC,OAAO,CAAC,UAAC,CAAC;aACjB,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;SAC9D,CAAC,CAAC,CAAC;SACH,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACT,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC;SACtC,CAAC;SACD,MAAM,CAAC,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC;KAChC,CAAC;KAED,0BAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAM,CAAC,GAAG,gBAAK,CAAC,IAAI,YAAC,SAAS,CAAC,CAAC;SAChC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SAC7B,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,6BAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;SACzC,gBAAK,CAAC,OAAO,YAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC/B,CAAC;KAED;;;;;;QAMG;KACH,4BAAM,GAAN,UAAO,GAAU,EAAE,KAAY,EAAE,MAAY;SAAZ,sBAAY,GAAZ,YAAY;SAC3C,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACnB,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SAC1D,CAAC;SACD,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAC/C,mBAAmB;SACnB,gBAAK,CAAC,QAAQ,YAAC,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SAExF,MAAM,CAAC,gBAAK,CAAC,MAAM,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KAClC,CAAC;KAED,0BAAI,GAAJ,UAAK,GAAU,EAAE,MAAY;SAAZ,sBAAY,GAAZ,YAAY;SAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/C,CAAC;KAED,iCAAW,GAAX,UAAY,GAAU,EAAE,GAAU,EAAE,MAAY;SAAZ,sBAAY,GAAZ,YAAY;SAC9C,IAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC5B,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACV,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;KACzC,CAAC;KAED;;;;;QAKG;KACK,sCAAgB,GAAxB,UAAyB,GAAU,EAAE,GAAW,EAAE,IAAY;SAC5D,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;aACjB,MAAM,CAAC;SACT,CAAC;SACD,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;SAC9B,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,EAC1B,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;SAC/B,IAAM,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;SAC7B,IAAM,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;SAC1D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,CAAC;aACvB,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;aAEhB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;aACxC,CAAC;SACH,CAAC,CAAC,CAAC;SACH,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;KAC/F,CAAC;KAED,gCAAU,GAAV;SACE,IAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SAC1B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAhB,CAAgB,CAAC,CAAC;KACrD,CAAC;KAED,gCAAU,GAAV,UAAW,OAAgB;SACzB,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;SAC9B,IAAI,CAAC,EACH,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;SACvC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;aACd,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;aACpB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;qBAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;iBACvC,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;iBACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;qBAChC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;iBACzC,CAAC;aACH,CAAC;SACH,CAAC;SACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACxC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,GAAG,CAAC,EAAL,CAAK,CAAC,CAAC;SAElC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAC1B,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;KAErF,CAAC;KAED,gCAAU,GAAV,UAAW,KAAY;SACrB,KAAK,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;SACrC,gBAAK,CAAC,QAAQ,YAAC,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC7E,MAAM,CAAC,gBAAK,CAAC,UAAU,YAAC,KAAK,CAAC,CAAC;KACjC,CAAC;KAED,8BAAQ,GAAR,UAAS,KAAY;SACnB,IAAM,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACvC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,KAAK;aAC3B,4BAA4B;aAC5B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;SAChD,CAAC,CAAC,CAAC;SACH,gBAAK,CAAC,QAAQ,YAAC,KAAK,CAAC,CAAC;KACxB,CAAC;KAES,6BAAO,GAAjB,UAAkB,GAAQ;SACxB,IAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SAC1B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,UAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAA1C,CAA0C,EAAE,CAAC,CAAC,CAAC;KAC1F,CAAC;KACH,kBAAC;AAAD,EAAC,CAzLgC,qBAAqB,GAyLrD;AAzLY,oBAAW,cAyLvB;AAED;;IAEG;AACH;KAA+B,6BAAqB;KAUlD,mBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;KAClB,CAAC;KAXD;;;;QAIG;KACI,cAAI,GAAX,UAAY,KAAoB;SAApB,qBAAoB,GAApB,aAAoB;SAC9B,MAAM,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;KACrC,CAAC;KAMD,4BAAQ,GAAR,UAAS,GAAQ;SACf,sCAAsC;SACtC,IAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;SACzB,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;aACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACpB,CAAC;SACD,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC1C,GAAG,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;aACjC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;aAC3B,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;iBACd,KAAK,GAAG,CAAC,CAAC;iBACV,KAAK,GAAG,CAAC,CAAC;aACZ,CAAC;SACH,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;KACxB,CAAC;KAES,2BAAO,GAAjB,UAAkB,GAAQ;SACxB,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAf,CAAe,CAAC,CAAC;KACxD,CAAC;KACH,gBAAC;AAAD,EAAC,CAlC8B,qBAAqB,GAkCnD;AAlCY,kBAAS,YAkCrB;AAED;KAA+B,6BAAqB;KAUlD,mBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;KAClB,CAAC;KAXD;;;;QAIG;KACI,cAAI,GAAX,UAAY,KAAoB;SAApB,qBAAoB,GAApB,aAAoB;SAC9B,MAAM,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;KACrC,CAAC;KAMD,4BAAQ,GAAR,UAAS,GAAQ;SACf,sCAAsC;SACtC,IAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;SACzB,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;aACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACpB,CAAC;SACD,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC1C,GAAG,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;aACjC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;aAC3B,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;iBACd,KAAK,GAAG,CAAC,CAAC;iBACV,KAAK,GAAG,CAAC,CAAC;aACZ,CAAC;SACH,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;KACxB,CAAC;KAES,2BAAO,GAAjB,UAAkB,GAAQ;SACxB,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAf,CAAe,CAAC,CAAC;KACxD,CAAC;KACH,gBAAC;AAAD,EAAC,CAlC8B,qBAAqB,GAkCnD;AAlCY,kBAAS,YAkCrB;AAED;KAAgC,8BAAqB;KAUnD,oBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;KAClB,CAAC;KAXD;;;;QAIG;KACI,eAAI,GAAX,UAAY,KAAqB;SAArB,qBAAqB,GAArB,cAAqB;SAC/B,MAAM,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;KACtC,CAAC;KAMS,4BAAO,GAAjB,UAAkB,GAAQ;SACxB,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAf,CAAe,CAAC,CAAC;KACzD,CAAC;KACH,iBAAC;AAAD,EAAC,CAjB+B,qBAAqB,GAiBpD;AAjBY,mBAAU,aAiBtB;AAED;KAA+C,6CAAe;KAU5D,mCAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SARlB;;;;YAIG;SACK,cAAS,GAAG,KAAK,CAAC;SAIxB,IAAM,IAAI,GAAG,IAAI,CAAC;SAClB,IAAI,CAAC,WAAW,GAAG,UAAU,GAAG,EAAE,IAAI;aACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SAChD,CAAC,CAAC;KACJ,CAAC;KAED,mDAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;KAC7D,CAAC;KAED,gDAAY,GAAZ,UAAa,KAAa;SACxB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC;aAC7B,MAAM,CAAC;SACT,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;KAChH,CAAC;KAED,gDAAY,GAAZ;SACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;KACxB,CAAC;KAED,wCAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAM,CAAC,GAAG,gBAAK,CAAC,IAAI,YAAC,SAAS,CAAC,CAAC;SAChC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SAC7B,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,2CAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;SACzC,gBAAK,CAAC,OAAO,YAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC/B,CAAC;KAED,2CAAO,GAAP,UAAQ,CAAe,EAAE,MAAa,EAAE,UAAc,EAAE,OAAW;SAA3B,0BAAc,GAAd,cAAc;SAAE,uBAAW,GAAX,WAAW;SACjE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;KAClF,CAAC;KAED;;;;;;QAMG;KACH,0CAAM,GAAN,UAAO,GAAU,EAAE,KAAY;SAC7B,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAC/C,mBAAmB;SACnB,gBAAK,CAAC,QAAQ,YAAC,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SAExF,MAAM,CAAC,gBAAK,CAAC,MAAM,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KAClC,CAAC;KAED;;;;;QAKG;KACK,oDAAgB,GAAxB,UAAyB,GAAU,EAAE,GAAW,EAAE,IAAY;SAC5D,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;aACjB,MAAM,CAAC;SACT,CAAC;SACD,gBAAK,CAAC,QAAQ,YAAC,IAAI,CAAC,QAAQ,EAAE,GAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;KAC/C,CAAC;KAED,8CAAU,GAAV,UAAW,KAAY;SACrB,KAAK,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;SACrC,gBAAK,CAAC,QAAQ,YAAC,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC7E,MAAM,CAAC,gBAAK,CAAC,UAAU,YAAC,KAAK,CAAC,CAAC;KACjC,CAAC;KAED,4CAAQ,GAAR,UAAS,KAAY;SACnB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SAC7C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,KAAK;aAC3B,4BAA4B;aAC5B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;SAChD,CAAC,CAAC,CAAC;SACH,gBAAK,CAAC,QAAQ,YAAC,KAAK,CAAC,CAAC;KACxB,CAAC;KACH,gCAAC;AAAD,EAAC,CA1F8C,eAAe,GA0F7D;AA1FY,kCAAyB,4BA0FrC;AACD;;;IAGG;AACH;KAAkC,gCAAyB;KAUzD,sBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;KAClB,CAAC;KAXD;;;;QAIG;KACI,iBAAI,GAAX,UAAY,KAAuB;SAAvB,qBAAuB,GAAvB,gBAAuB;SACjC,MAAM,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;KACxC,CAAC;KAMD,8BAAO,GAAP,UAAQ,CAAK,EAAE,CAAK;SAClB,IAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;SACxB,GAAG,CAAC,CAAW,UAAC,EAAD,OAAC,EAAD,eAAC,EAAD,IAAC,CAAC;aAAZ,IAAI,EAAE;aACT,IAAI,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACjC,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC;iBACpB,MAAM,CAAC,SAAS,CAAC;aACnB,CAAC;UACF;SACD,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,+BAAQ,GAAR,UAAS,GAAQ;SACf,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAf,CAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC7D,CAAC;KAED,+BAAQ,GAAR,UAAS,GAAO;SACd,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAf,CAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC7D,CAAC;KACH,mBAAC;AAAD,EAAC,CAhCiC,yBAAyB,GAgC1D;AAhCY,qBAAY,eAgCxB;AAED;KAAkC,gCAAe;KAe/C,sBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SAJV,WAAM,GAAG,YAAY,CAAC,cAAc,CAAC;SACrC,MAAC,GAAc,IAAI,CAAC;SAI1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;KAC3C,CAAC;KAjBD;;;;QAIG;KACI,iBAAI,GAAX,UAAY,KAAuB;SAAvB,qBAAuB,GAAvB,gBAAuB;SACjC,MAAM,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,cAAc,EAAC,CAAC;KAC7E,CAAC;KAYD,sCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;KAC3D,CAAC;KAED,gCAAS,GAAT,UAAU,MAAc;SACtB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC;aAC3B,MAAM,CAAC;SACT,CAAC;SACD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;SACd,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;KAC1F,CAAC;KAED,gCAAS,GAAT;SACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;KACrB,CAAC;KAED,2BAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAM,CAAC,GAAG,gBAAK,CAAC,IAAI,YAAC,SAAS,CAAC,CAAC;SAChC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;SACvB,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,8BAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;SACzC,gBAAK,CAAC,OAAO,YAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC/B,CAAC;KAES,8BAAO,GAAjB,UAAkB,GAAQ;SACxB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;aACnB,IAAI,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1D,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAf,CAAe,CAAC,CAAC,CAAC;KACvF,CAAC;KA1CM,2BAAc,GAAG,uBAAuB,CAAC;KA2ClD,mBAAC;AAAD,EAAC,CArDiC,eAAe,GAqDhD;AArDY,qBAAY,eAqDxB;AAED;;IAEG;AACH;KAAgC,8BAAmB;KAUjD,oBAAY,EAAS,EAAE,IAAQ;SAC7B,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SAChB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;KACxB,CAAC;KAZD;;;;QAIG;KACI,eAAI,GAAX,UAAY,KAAqB;SAArB,qBAAqB,GAArB,cAAqB;SAC/B,MAAM,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;KACtC,CAAC;KAMH,iBAAC;AAAD,EAAC,CAd+B,WAAW,GAc1C;AAdY,mBAAU,aActB;AAOD;;IAEG;AACH;KAA6B,2BAAsB;KAuCjD,iBAAmB,EAAW;SAvChC,iBAsSC;SA9PG,iBAAO,CAAC;SADS,OAAE,GAAF,EAAE,CAAS;SArC9B;;;;YAIG;SACK,eAAU,GAAU,IAAI,CAAC;SACjC;;;YAGG;SACK,cAAS,GAAG,KAAK,CAAC;SAE1B;;;;YAIG;SACK,YAAO,GAAY,EAAE,CAAC;SAE9B,eAAU,GAAG,UAAC,CAAK,EAAE,CAAK;aACxB,EAAE,CAAC,CAAC,KAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC;iBAC7B,MAAM,CAAC,CAAC,CAAC;aACX,CAAC;aACD,IAAI,CAAC,GAAG,KAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACtC,MAAM,CAAC,KAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SACjC,CAAC,CAAC;SAEF,eAAU,GAAG;aACX,KAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,KAAI,CAAC,eAAe,EAAE,CAAC,CAAC;SAC5E,CAAC,CAAC;SAEF;;;YAGG;SACK,UAAK,GAAY,EAAE,CAAC;SAI1B,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;KACvB,CAAC;KAED,iCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;KACvO,CAAC;KAED,6BAAW,GAAX,UAAY,WAAwB;SAClC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;SAChC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAA1B,CAA0B,CAAC,CAAC;KAC1D,CAAC;KAED,0BAAQ,GAAR,UAAS,KAAc;SACrB,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;KACtF,CAAC;KAED,0BAAQ,GAAR;SACE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;KACpB,CAAC;KAED,sBAAI,GAAJ,UAAK,SAA2B;SAC9B,IAAI,CAAC,GAAS,EAAE,CAAC;SACjB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAjB,CAAiB,CAAC,CAAC;SACvD,CAAC,CAAC,UAAU,GAAG;aACb,GAAG,EAAE,IAAI,CAAC,SAAS;UACpB,CAAC;SACF,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;aACpB,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,gCAAgC;SAC5E,CAAC;SACD,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,yBAAO,GAAP,UAAQ,IAAQ,EAAE,OAA4B;SAA9C,iBAeC;SAdC,IAAI,CAAC,KAAK,EAAE,CAAC;SACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,KAAK;aACrB,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;aACvB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACN,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACf,CAAC;SACH,CAAC,CAAC,CAAC;SACH,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;aACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;aACrC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;iBAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAA/B,CAA+B,CAAC,CAAC;iBACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACvE,CAAC;SACH,CAAC;KACH,CAAC;KAED,yBAAO,GAAP,UAAQ,CAAe,EAAE,MAAa,EAAE,UAAc,EAAE,OAAW;SAA3B,0BAAc,GAAd,cAAc;SAAE,uBAAW,GAAX,WAAW;SACjE,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,+BAA+B;SACjD,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,UAAU,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;aAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,CAAC;iBACrB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,UAAU,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;qBAC3D,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;iBAC9D,CAAC;aACH,CAAC,CAAC,CAAC;SACL,CAAC;SACD,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;KACtB,CAAC;KAED,iCAAe,GAAf;SACE,MAAM,CAAC;aACL,GAAG,EAAE,IAAI,CAAC,UAAU;aACpB,GAAG,EAAE,IAAI,CAAC,SAAS;UACpB,CAAC;KACJ,CAAC;KAED,+BAAa,GAAb,UAAc,GAAU;SACtB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC;aAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC3C,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC1B,CAAC;KAED,iCAAe,GAAf,UAAgB,KAAoB;SAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;KAC3C,CAAC;KAED,wBAAM,GAAN,UAAO,GAAU,EAAE,SAAiB;SAAjB,yBAAiB,GAAjB,iBAAiB;SAClC,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;aAChD,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB;SACjC,CAAC;SACD,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;aAC5D,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAuB;SACtC,CAAC;SACD,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;aACpB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;SAChD,CAAC;SACD,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;SACjC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;SACtB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;aACpB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SAC3D,CAAC;SACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,qBAAqB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;SACrH,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED,sBAAI,6BAAQ;cAAZ;aACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SAC9B,CAAC;;;QAAA;KAED,sBAAI,2BAAM;cAAV;aACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SAC7B,CAAC;;;QAAA;KAED,wBAAM,GAAN,UAAO,GAAU,EAAE,KAAkC;SAAlC,qBAAkC,GAAlC,QAAe,IAAI,CAAC,OAAO,CAAC,MAAM;SACnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;SACnC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;SAClB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC;SAC1G,GAAG,CAAC,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SAG/C,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;SAE5E,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,UAAU,IAAI,GAAG,YAAY,eAAe,IAAI,GAAG,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC;aAC7H,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,YAAY,YAAY,CAAC,CAAC;SAChD,CAAC;SACD,MAAM,CAAC,GAAG,CAAC;KACb,CAAC;KAED,sBAAI,2BAAM;cAAV;aACE,MAAM,CAAC,EAAE,CAAC;SACZ,CAAC;;;QAAA;KAED,4BAAU,GAAV,UAAW,MAAc;SACvB,IAAI,CAAC,GAA+B,IAAI,CAAC;SACzC,IAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;SAC1F,OAAM,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;aACzB,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;aACxB,CAAC,GAAmB,CAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC/B,CAAC;SACD,MAAM,CAAS,CAAC,CAAC;KACnB,CAAC;KAED,yBAAO,GAAP,UAAQ,GAAW;SACjB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KACnC,CAAC;KAED,oBAAE,GAAF,UAAG,KAAa;SACd,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC7B,CAAC;KAED,6BAAW,GAAX,UAAY,GAAU,EAAE,GAAU;SAChC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAClC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACV,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACjC,CAAC;KAED,sBAAI,GAAJ,UAAK,GAAU;SACb,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC1B,CAAC;KAED,wBAAM,GAAN,UAAO,GAAU;SACf,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAClC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACV,MAAM,CAAC,KAAK,CAAC;SACf,CAAC;SAED,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC;SAE5G,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC;aAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,UAAU,CAAC,EAA1E,CAA0E,CAAC,CAAC,CAAC,CAAC,CAAC;aACrH,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;SAClC,CAAC;SAED,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;SAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAE1B,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;SAC3E,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED,uBAAK,GAAL;SAAA,iBAWC;SAVC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;aAC9B,MAAM,CAAC;SACT,CAAC;SACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,GAAG;aACvB,KAAI,CAAC,SAAS,CAAC,GAAG,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC;aAC5G,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB,CAAC,CAAC,CAAC;SACH,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;SACxB,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;KAC3E,CAAC;KAED,sBAAI,gCAAW;cAAf;aACE,IAAI,CAAC,GAAiB,EAAE,CAAC;aACzB,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;aAC5C,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC;SAC7B,CAAC;;;QAAA;KAED,sBAAI,GAAJ,UAAK,YAA6C;SAChD,IAAI,MAAM,GAAG,OAAM,CAAC,YAAY,CAAC,KAAK,QAAQ,GAAG,UAAC,GAAG,IAAK,UAAG,CAAC,EAAE,KAAK,YAAY,EAAvB,CAAuB,GAAG,YAAY,CAAC;SACjG,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;SACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;aAClC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACjB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACd,CAAC;SACH,CAAC;SACD,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;;;QAIG;KACH,+BAAa,GAAb,UAAc,IAAyB;SACrC,4CAA4C;SAC5C,IAAI,OAAO,GAAG,UAAC,CAAQ;aACrB,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;iBACf,MAAM,CAAC,IAAI,CAAC;aACd,CAAC;aACD,EAAE,CAAC,CAAC,CAAC,YAAY,WAAW,CAAC,CAAC,CAAC;iBAC7B,IAAI,CAAC,GAAiB,CAAE,CAAC,UAAU,EAAE,CAAC;iBACtC,MAAM,CAAe,CAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,CAAC;qBAC5C,MAAM,CAAC;yBACL,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;yBACZ,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC;sBACnB,CAAC;iBACJ,CAAC,CAAC,CAAC;aACL,CAAC;aACD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACtB,CAAC,CAAC;SACF,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAClC,EAAE,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,MAAM,CAAC;aACL,EAAE,EAAE,EAAE;aACN,GAAG,EAAE,IAAI,CAAC,SAAS;UACpB,CAAC;KACJ,CAAC;KAED,4BAAU,GAAV;SACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,UAAU,EAAE,EAAd,CAAc,CAAC,CAAC;KAClD,CAAC;KAED,wBAAM,GAAN,UAAO,GAAO;SACZ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAb,CAAa,CAAC,CAAC;KAClD,CAAC;KAED,8BAAY,GAAZ;SACE,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED,sBAAI,yBAAI;cAAR;aACE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;SACjB,CAAC;;;QAAA;KACH,cAAC;AAAD,EAAC,CAtS4B,KAAK,CAAC,gBAAgB,GAsSlD;AAtSY,gBAAO,UAsSnB;AAED;;;;;IAKG;AACH,uBAAgC,IAAY,EAAE,SAAmB;KAAnB,yBAAmB,GAAnB,cAAmB;KAC/D;SAA2B,gCAAc;SACvC,sBAAY,EAAS,EAAE,IAAgB;aACrC,kBAAM,EAAE,EAAE,IAAI,CAAC,CAAC;aAChB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC;iBACtC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;aACnD,CAAC;SACH,CAAC;SACH,mBAAC;KAAD,CAAC,CAP0B,WAAW,GAOrC;KACD,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,cAAM,WAAI,EAAJ,CAAI,CAAC;KAC7C,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;KAExE,MAAM,CAAC,YAAY,CAAC;AACtB,EAAC;AAbe,qBAAY,eAa3B;AAED;;;IAGG;AACU,wBAAe,GAAG,WAAW,CAAC,IAAI,CAAC;AACnC,uBAAc,GAAG,UAAU,CAAC,IAAI,CAAC;AACjC,4BAAmB,GAAG,eAAe,CAAC,IAAI,CAAC;AAC3C,sBAAa,GAAG,SAAS,CAAC,IAAI,CAAC;AAC/B,sBAAa,GAAG,SAAS,CAAC,IAAI,CAAC;AAC/B,uBAAc,GAAG,UAAU,CAAC,IAAI,CAAC;AACjC,yBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC;AACrC,yBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC;AAClD;;;;IAIG;AACH,2BAAiC,KAAiB;KAAjB,qBAAiB,GAAjB,iBAAiB;KAChD,MAAM,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;AACzC,EAAC;AAFe,yBAAgB,mBAE/B;AAED;;IAEG;AACH;KACE,MAAM,CAAC;SACL,MAAM,EAAE,YAAY;SACpB,MAAM,EAAE,YAAY;SACpB,IAAI,EAAE,UAAU;SAChB,KAAK,EAAE,WAAW;SAClB,IAAI,EAAE,UAAU;SAChB,OAAO,EAAE,aAAa;SACtB,WAAW,EAAE,iBAAiB;SAC9B,OAAO,EAAE,uBAAuB;SAChC,OAAO,EAAE,WAAW;SACpB,QAAQ,EAAE,cAAc;SACxB,SAAS,EAAE,eAAe;SAE1B,GAAG,EAAE,SAAS;SACd,GAAG,EAAE,SAAS;SACd,IAAI,EAAE,SAAS;SACf,MAAM,EAAE,YAAY;SACpB,MAAM,EAAE,YAAY;MACrB,CAAC;AACJ,EAAC;AApBe,eAAM,SAoBrB;;;;;;;ACzmFD,gD;;;;;;ACAA;;IAEG;;;;;;;AAEH,4CAA2C;AAC3C,KAAO,EAAE,uBAAW,CAAI,CAAC,CAAC;AAE1B;;;;;;IAMG;AACH,sBAA4B,QAAgC,EAAE,WAAiB,EAAE,YAAmB;KAAtC,2BAAiB,GAAjB,iBAAiB;KAAE,4BAAmB,GAAnB,mBAAmB;KAClG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;KACZ,MAAM,CAAC;SAAU,cAAa;cAAb,WAAa,CAAb,sBAAa,CAAb,IAAa;aAAb,6BAAa;;SAC5B,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;aACZ,YAAY,CAAC,EAAE,CAAC,CAAC;aACjB,EAAE,GAAG,CAAC,CAAC,CAAC;SACV,CAAC;SACD,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC,CAAC;SAC1D,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;KACpE,CAAC,CAAC;AACJ,EAAC;AAVe,oBAAW,cAU1B;AAED;;;;;IAKG;AACH,uBAA6B,EAAmB,EAAE,KAAa;KAC7D,MAAM,CAAC;SAAU,cAAa;cAAb,WAAa,CAAb,sBAAa,CAAb,IAAa;aAAb,6BAAa;;SAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;SACjC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KAC1B,CAAC,CAAC;AACJ,EAAC;AALe,qBAAY,eAK3B;AAED;;IAEG;AACH;KAIE;SAFQ,cAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;SAGrC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;KACjE,CAAC;KAID,6BAAE,GAAF,UAAG,IAAoB,EAAE,QAAgC;SAAzD,iBAUC;SATC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;aACzB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACb,IAAK,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,EAA9B,CAA8B,CAAC,CAAC;aAClE,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,CAAC,SAAS,CAAC,EAAE,CAAS,IAAI,EAAE,QAAQ,CAAC,CAAC;aAC5C,CAAC;aACD,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAS,IAAI,CAAC,CAAC;KACzC,CAAC;KAED;;;QAGG;KACH,0CAAe,GAAf;SACE,MAAM,CAAC,EAAE,CAAC;KACZ,CAAC;KAED,+BAAI,GAAJ,UAAK,IAAoB;SAAzB,iBAeC;SAf0B,cAAa;cAAb,WAAa,CAAb,sBAAa,CAAb,IAAa;aAAb,6BAAa;;SACtC,IAAI,QAAQ,GAAG,UAAC,CAAC;aACf,8CAA8C;aAC9C,IAAI,OAAO,GAAG;iBACZ,MAAM,EAAE,KAAI;iBACZ,IAAI,EAAE,CAAC;iBACP,IAAI,EAAE,IAAI,CAAC,+BAA+B;cAC3C,CAAC;aACF,KAAI,CAAC,SAAS,CAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SACjD,CAAC,CAAC;SACF,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,IAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAChD,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,QAAQ,CAAS,IAAI,CAAC,CAAC;SACzB,CAAC;KACH,CAAC;KAED;;;;;QAKG;KACH,kCAAO,GAAP,UAAQ,IAAqB;SAAE,eAAiB;cAAjB,WAAiB,CAAjB,sBAAiB,CAAjB,IAAiB;aAAjB,8BAAiB;;SAC9C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KACjC,CAAC;KAED;;;;QAIG;KACH,oCAAS,GAAT,UAAU,IAAqB;SAAE,eAAiB;cAAjB,WAAiB,CAAjB,sBAAiB,CAAjB,IAAiB;aAAjB,8BAAiB;;SAChD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KACvB,CAAC;KACH,uBAAC;AAAD,EAAC;AAjEY,yBAAgB,mBAiE5B;AAED,KAAM,WAAW,GAAG,iBAAiB,CAAC;AACtC,KAAM,UAAU,GAAG,gBAAgB,CAAC;AAEpC,8EAA6E;AAC7E;KAAsB,cAAa;UAAb,WAAa,CAAb,sBAAa,CAAb,IAAa;SAAb,6BAAa;;KACjC,IAAI,MAAM,GAAG,IAAI,CAAC;KAElB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;SACrC,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EACnB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAE9B,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC;aACpB,MAAM,GAAG,OAAO,CAAC;aACjB,QAAQ,CAAC;SACX,CAAC;SAED,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;aACrC,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aACtB,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;aAE7B,kBAAkB;aAClB,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBACjH,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;qBAClC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;iBACvB,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;aAClD,CAAC;aAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC;iBAChE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;qBAClC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;iBACvB,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;aAClD,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;aAC1B,CAAC;SACH,CAAC;KACH,CAAC;KAED,MAAM,CAAC,MAAM,CAAC;AAChB,EAAC;AAlCe,cAAK,QAkCpB;AAED;;;;IAIG;AACH,iBAAuB,OAAO;KAC5B,IAAI,GAAG,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;KAC1C,MAAM,CAAC;SACL,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW;SACnC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,WAAW;SACjC,KAAK,EAAE,GAAG,CAAC,KAAK;SAChB,MAAM,EAAE,GAAG,CAAC,MAAM;MACnB,CAAC;AACJ,EAAC;AARe,eAAM,SAQrB;AAED;;;;IAIG;AACH;KAAqC,mCAAgB;KAmBnD;;;;;QAKG;KACH,yBAAoB,SAAiB,EAAU,OAAe,EAAE,OAAgB;SAzBlF,iBAoIC;SA3GiE,uBAAgB,GAAhB,YAAgB;SAC9E,iBAAO,CAAC;SADU,cAAS,GAAT,SAAS,CAAQ;SAAU,YAAO,GAAP,OAAO,CAAQ;SAxBtD,YAAO,GAAG;aAChB;;gBAEG;aACH,QAAQ,EAAE,cAAM,QAAC,EAAD,CAAC;aACjB;;gBAEG;aACH,UAAU,EAAE,CAAC;aACb;;gBAEG;aACH,SAAS,EAAE,EAAE;UACd,CAAC;SAEM,kBAAa,GAAG,CAAC,CAAC;SAClB,UAAK,GAAG,CAAC,CAAC;SAUhB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7B,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,cAAM,YAAI,CAAC,QAAQ,EAAE,EAAf,CAAe,CAAC,CAAC;SAElE,8DAA8D;SAC9D,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC;SACzC,wBAAwB;SACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;KAC3D,CAAC;KAED;;;;;;;QAOG;KACH,yCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;KAC9D,CAAC;KAED,wCAAc,GAAd,UAAe,KAAa,EAAE,MAAc,EAAE,KAAa,EAAE,KAA0B;SACrF,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;SAChD,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;aAC7C,MAAM,CAAC,CAAC,iBAAiB;SAC3B,CAAC;SAED,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EACvE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAC1C,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACX,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;aACZ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAC7C,oDAAoD;aACpD,OAAO,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;iBACxC,CAAC,EAAE,CAAC;aACN,CAAC;aACD,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,sCAAsC;SACtE,CAAC;SACD,CAAC;aACC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAChD,sDAAsD;aACtD,OAAO,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;iBAC5C,CAAC,EAAE,CAAC;aACN,CAAC;aACD,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,sCAAsC;SACtE,CAAC;KACH,CAAC;KAED;;;;;;QAMG;KACH,gCAAM,GAAN,UAAO,KAAY,EAAE,MAAa,EAAE,KAA0B;SAC5D,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EACvE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAC1C,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACX;;;;aAII;SACJ,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;aACZ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAC7C,oDAAoD;aACpD,OAAO,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;iBACxC,CAAC,EAAE,CAAC;aACN,CAAC;aACD,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,sCAAsC;SACtE,CAAC;SACD,CAAC;aACC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAChD,sDAAsD;aACtD,OAAO,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;iBAC5C,CAAC,EAAE,CAAC;aACN,CAAC;aACD,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,sCAAsC;SACtE,CAAC;SACD,MAAM,CAAC;aACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;aACxB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC;UACxB,CAAC;KACJ,CAAC;KAEO,kCAAQ,GAAhB;SACE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;SACnC,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;SACrC,0BAA0B;SAC1B,yBAAyB;SACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SAC/B,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;aAC3F,sEAAsE;aACtE,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;aACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACtB,CAAC;KACH,CAAC;KAED;;QAEG;KACH,iCAAO,GAAP;SACE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;KACxD,CAAC;KACH,sBAAC;AAAD,EAAC,CApIoC,gBAAgB,GAoIpD;AApIY,wBAAe,kBAoI3B;AAED;;IAEG;AACH,qBAA2B,CAAW,EAAE,YAAqB;KAC3D,IAAI,KAAK,GAAO,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC;KACrC,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC;SACxC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,YAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAxB,CAAwB,CAAC,CAAC;KAC/D,CAAC;KACD,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC;SACzC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,YAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAApB,CAAoB,CAAC,CAAC;KAC3D,CAAC;KACD,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC;SACzC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,YAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAApB,CAAoB,CAAC,CAAC;KAC3D,CAAC;KACD,MAAM,CAAC,KAAK,CAAC;AACf,EAAC;AAZe,mBAAU,aAYzB;AAED;;IAEG;AACH,kBAAwB,CAAW;KACjC,IAAI,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;KACxB,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;AAC/G,EAAC;AAHe,gBAAO,UAGtB;AAED;;;IAGG;AACH,2BAAiC,CAAW;KAC1C,IAAI,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;KACxB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACf,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC;KACzB,CAAC;KAAC,IAAI,CAAC,CAAC;SACN,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC;KACzB,CAAC;AACH,EAAC;AAPe,yBAAgB,mBAO/B;AAED;;;;IAIG;AACH,mBAA4B,SAAkB,EAAE,MAA+C;KAC7F,MAAM,CAAC,UAAC,KAAK;SACX,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE;aACpB,IAAI,CAAC,GAAoB,EAAE,CAAC,KAAM,CAAC;aACnC,kCAAkC;aAClC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC7B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;iBAC3C,aAAa;iBACb,MAAM,CAAC,KAAK,CAAC;aACf,CAAC;aACD,uBAAuB;aACvB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;SAC9C,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE;aAChB,IAAI,CAAC,GAAoB,EAAE,CAAC,KAAM,CAAC;aACnC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC7B,CAAC,CAAC,cAAc,EAAE,CAAC;iBACnB,gBAAgB,CAAC,CAAC,CAAC,CAAC;iBACpB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;iBAC3C,MAAM,CAAC,KAAK,CAAC;aACf,CAAC;SACH,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE;aACjB,EAAE;aACF,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;SAC9C,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAG;aACzB,IAAI,CAAC,GAAoB,EAAE,CAAC,KAAM,CAAC;aACnC,CAAC,CAAC,cAAc,EAAE,CAAC;aACnB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aAC5C,kCAAkC;aAClC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC7B,IAAI,IAAI,GAAO,EAAE,CAAC;iBAClB,iDAAiD;iBACjD,SAAS,CAAC,OAAO,CAAC,UAAC,IAAI;qBACrB,IAAI,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;qBACzC,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;yBACjB,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;qBACrB,CAAC;iBACH,CAAC,CAAC,CAAC;iBACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aACrC,CAAC;SACH,CAAC,CAAC,CAAC;KACL,CAAC,CAAC;AACJ,EAAC;AAzCe,iBAAQ,WAyCvB;;;;;;;ACnYD;;IAEG;;;;;;;AAEH,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,EAAE,uBAAW,CAAI,CAAC,CAAC;AAE1B;;;;;;IAMG;AACH,uBAAsB,GAAS,EAAE,GAAmB,EAAE,KAAuB;KAC3E,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;SACrB,MAAM,CAAC;aACL,GAAG,EAAE,GAAG;aACR,GAAG,EAAE,GAAG;aACR,IAAI,EAAE,GAAG;aACT,KAAK,EAAE,CAAC;aACR,MAAM,EAAE,CAAC;aACT,IAAI,EAAE,EAAE;UACT,CAAC;KACJ,CAAC;KACD,IAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC9C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;SACV,IAAI,CAAC,KAAK,CAAC,cAAM,YAAK,EAAL,CAAK,CAAC,CAAC;KAC1B,CAAC;KACD,IAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KAC/B,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5B,MAAM,CAAC;SACL,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;SACV,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;SACV,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;SACvB,KAAK,EAAE,GAAG,CAAC,MAAM;SACjB,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,EAAH,CAAG,CAAC;SACrC,IAAI,EAAE,SAAS;MAChB,CAAC;AACJ,EAAC;AAED;;;;;;IAMG;AACH,sBAAqB,GAAS,EAAE,GAAqB,EAAE,UAAoB;KACzE,IAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAU,CAAC;KAC3B,UAAU,CAAC,OAAO,CAAC,UAAC,GAAG,IAAK,QAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAb,CAAa,CAAC,CAAC;KAE3C,GAAG,CAAC,OAAO,CAAC,UAAC,CAAC;SACZ,IAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;SAClB,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;aACf,MAAM,CAAC;SACT,CAAC;SACD,EAAE,CAAC,OAAO,CAAC,UAAC,CAAC;aACX,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAChC,CAAC,CAAC,CAAC;KACL,CAAC,CAAC,CAAC;KACH,MAAM,CAAC;SACL,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC1B,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,QAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAG,KAAK,CAAC,KAAK,EAAC,CAAC,EAApC,CAAoC,CAAC;MACvE,CAAC;AACJ,EAAC;AAGD,wBAAuB,GAAsB;KAC3C,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjE,EAAC;AA8BD;;IAEG;AACH;KAAkC,gCAAsB;KAqBtD,sBAAY,OAAkB;SArBhC,iBA0nBC;SArmBa,uBAAkB,GAAlB,YAAkB;SAC5B,iBAAO,CAAC;SArBV;;;;YAIG;SACK,cAAS,GAAmB,EAAE,CAAC;SACvC;;;YAGG;SACK,cAAS,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;SAErB,QAAG,GAAG,CAAC,CAAC;SAEhB;;YAEG;SACH,gBAAW,GAAO,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;SAuR1C,iBAAY,GAAG,UAAC,CAAK;aAC3B,uCAAuC;aACvC,IAAM,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACtC,IAAI,CAAC,GAAG,IAAI,CAAC;aACb,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;iBACtB,KAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACrB,IAAI,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACvC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;iBACzB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI,CAAC,YAAY,CAAC,CAAC;aAClC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC;SACX,CAAC,CAAC;SA7RA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;KAC5E,CAAC;KAED;;;;;;;QAOG;KACH,sCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC;KACjL,CAAC;KAED;;;QAGG;KACH,iCAAU,GAAV;SACE,MAAM,CAAC,EAAE,CAAC;KACZ,CAAC;KAED;;;;QAIG;KACH,kCAAW,GAAX,UAAY,QAAuB;SACjC,IAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACtC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACtB,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,mCAAY,GAAZ,UAAa,GAAiB;SAC5B,IAAM,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;SACxB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACtB,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,oCAAa,GAAb,UAAc,CAAe,EAAE,KAA6B;SAA7B,qBAA6B,GAA7B,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;SAC1D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACnC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,sBAAsB,CAAC,CAAC;SAC1J,IAAM,IAAI,GAAG,IAAI,CAAC;SAClB,gCAAgC;SAChC,CAAC,CAAC,EAAE,CAAC,qBAAqB,EAAE,KAAK,CAAC,WAAW,CAAC;aAC1C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACnC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;SACjB,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;SAC3E,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;KACzB,CAAC;KAES,qCAAc,GAAxB,UAAyB,OAAsB;SAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,cAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC;KAC9D,CAAC;KAED;;;;QAIG;KACH,oCAAa,GAAb,UAAc,OAAqB;SACjC,IAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC1C,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACV,MAAM,CAAC,KAAK,CAAC;SACf,CAAC;SACD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;SACzL,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC5B,OAAO,CAAC,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;SACxC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAC7B,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;SAChF,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;QAEG;KACH,oCAAa,GAAb;SAAA,iBAQC;SAPC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,OAAO;aAC7B,KAAI,CAAC,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;aAChK,OAAO,CAAC,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;aACxC,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAC/B,CAAC,CAAC,CAAC;SACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACpB,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;KAC5E,CAAC;KAED;;;QAGG;KACH,kCAAW,GAAX;SACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAChC,CAAC;KAED;;;QAGG;KACH,qCAAc,GAAd;SACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACnD,CAAC;KAED;;;QAGG;KACH,qCAAc,GAAd,UAAe,OAAqB;SAClC,eAAe;KACjB,CAAC;KAED;;;;QAIG;KACH,mCAAY,GAAZ,UAAa,QAAuB;SAClC,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc;KAC7B,CAAC;KAED;;;;;QAKG;KACH,2BAAI,GAAJ,UAAK,OAAqB,EAAE,IAAsB;SAChD,IAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC5B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,CAAC,CAAC;SACX,CAAC;SACD,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;;;;;QAMG;KACH,6BAAM,GAAN,UAAO,OAAqB,EAAE,KAAY,EAAE,IAAsB;SAChE,IAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC5B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC;SACX,CAAC;SACD,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;;QAGG;KACK,6BAAM,GAAd;SACE,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;KAC9B,CAAC;KAES,mCAAY,GAAtB,UAAuB,GAAQ,EAAE,EAAU,EAAE,IAAuB,EAAE,OAAsB;SAC1F,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAEO,8BAAO,GAAf,UAAgB,IAAuB;SAAvC,iBAQC;SAPC,0CAA0C;SAC1C,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;aACnB,IAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtD,CAAC;SAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC;aAC/B,IAAK,CAAC,QAAQ,GAAG,UAAC,GAAQ,IAAK,YAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAA3B,CAA2B,CAAC;aAC3D,IAAK,CAAC,MAAM,GAAG,UAAC,GAAQ,EAAE,KAAc,IAAK,YAAK,GAAG,KAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAA3D,CAA2D,CAAC;SACjH,CAAC;KACH,CAAC;KACD;;;;QAIG;KACH,6BAAM,GAAN,UAAO,IAAsB;SAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACnB,8BAA8B;SAC9B,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACT,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SACvC,CAAC;SACD,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;;;QAIG;KACH,4BAAK,GAAL,UAAM,GAAgB;SACpB,IAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAClC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAClC,CAAC;KAED;;;;QAIG;KACH,oCAAa,GAAb,UAAc,IAAQ;SAAtB,iBAWC;SAVC,IAAM,MAAM,GAAG,UAAC,CAAK;aACnB,IAAM,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACtC,IAAI,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACnB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;aAC3B,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;aACrB,CAAC,CAAC,WAAW,CAAC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC,CAAC;aACtC,MAAM,CAAC,CAAC,CAAC;SACX,CAAC,CAAC;SACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACtB,CAAC;KAED;;;;QAIG;KACH,2BAAI,GAAJ,UAAK,YAAmD;SACtD,qBAAqB;SACrB,IAAM,MAAM,GAAG,OAAM,CAAC,YAAY,CAAC,KAAK,QAAQ,GAAG,UAAC,GAAG,IAAK,UAAG,CAAC,EAAE,KAAK,YAAY,EAAvB,CAAuB,GAAG,YAAY,CAAC;SAEnG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;aAC/C,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACvC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACN,MAAM,CAAC,CAAC,CAAC;aACX,CAAC;SACH,CAAC;SACD,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAGD;;;QAGG;KACH,2BAAI,GAAJ;SAAA,iBAMC;SALC,MAAM,CAAC;aACL,GAAG,EAAE,IAAI,CAAC,GAAG;aACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;aAC9C,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,EAAtB,CAAsB,CAAC;UAC5D,CAAC;KACJ,CAAC;KAED;;;;QAIG;KACH,iCAAU,GAAV,UAAW,GAAgB;SACzB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAClC,CAAC;KAED;;;;QAIG;KACH,gCAAS,GAAT,UAAU,IAAQ;SAChB,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;;;QAIG;KACH,kCAAW,GAAX,UAAY,OAAW;SACrB,MAAM,CAAC,OAAO,CAAC;KACjB,CAAC;KAeD,qCAAc,GAAd,UAAe,IAAS;SACtB,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SACpC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SACzC,2BAA2B;SAC3B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,UAAU,EAA7B,CAA6B,CAAC,CAAC,CAAC,CAAC;aACjE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC1D,CAAC;SACD,IAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAA1B,CAA0B,CAAC,CAAC;SAE5D,MAAM,CAAC,OAAO,CAAC;KACjB,CAAC;KAED,8BAAO,GAAP,UAAQ,IAAQ;SAAhB,iBAmCC;SAhCC,WAAW;SACX,IAAI,CAAC,aAAa,EAAE,CAAC;SAErB,mBAAmB;SACnB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;SACzB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;aACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAA7B,CAA6B,CAAC,CAAC;SAC/D,CAAC;SAGD,kBAAkB;SAClB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;aAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,CAAC;iBACtB,IAAI,OAAO,GAAG,KAAI,CAAC,YAAY,EAAE,CAAC;iBAClC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI,CAAC,YAAY,CAAC,CAAC;iBACtC,2BAA2B;iBAC3B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,UAAU,EAA7B,CAA6B,CAAC,CAAC,CAAC,CAAC;qBACjE,OAAO,CAAC,MAAM,CAAC,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC1D,CAAC;iBACD,KAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;aAC9B,CAAC,CAAC,CAAC;SACL,CAAC;SACD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;iBACnC,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;aACvC,CAAC,CAAC,CAAC;SACL,CAAC;SACD,gBAAgB;SAChB,IAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,CAAC;aACvB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAA1B,CAA0B,CAAC,CAAC;SACxD,CAAC,CAAC,CAAC;KACL,CAAC;KAED,+BAAQ,GAAR,UAAS,GAAU;SACjB,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;QAEG;KACH,oCAAa,GAAb;SAAA,iBAWC;SAVC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;aAC9B,iCAAiC;aACjC,MAAM,CAAC;SACT,CAAC;SACD,IAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;SAC7B,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,UAAC,GAAG;aAC5B,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBACxB,KAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACpB,CAAC;SACH,CAAC,CAAC,CAAC;KACL,CAAC;KAED;;;QAGG;KACK,oCAAa,GAArB,UAAsB,MAAY;SAAlC,iBAgDC;SA/CC,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SACpC,OAAO,CAAC,KAAK,EAAE,CAAC;SAChB,IAAM,KAAK,GAAG,UAAC,MAAM;aACnB,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;iBAC3B,MAAM,CAAC,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;aAC7C,CAAC;aACD,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC;iBAChC,MAAM,CAAC,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;aAClD,CAAC;aACD,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;iBAC9B,IAAI,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;iBACvE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;iBACxB,MAAM,CAAC,CAAC,CAAC;aACX,CAAC;aACD,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;iBAC9B,sBAAsB;iBACtB,IAAI,GAAC,GAAsB,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC;iBAC1F,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;qBAClC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;qBACnB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yBACN,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACZ,CAAC;iBACH,CAAC,CAAC,CAAC;iBACH,MAAM,CAAC,GAAC,CAAC;aACX,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,IAAI,GAAG,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;iBACxC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACT,IAAI,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;qBAC1B,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;qBACzD,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;qBACxB,MAAM,CAAC,CAAC,CAAC;iBACX,CAAC;aACH,CAAC;aACD,MAAM,CAAC,IAAI,CAAC;SACd,CAAC,CAAC;SACF,MAAM,CAAC,OAAO,CAAC,UAAC,MAAM;aACpB,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;aAC1B,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iBACR,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACpB,CAAC;SACH,CAAC,CAAC,CAAC;SACH,2BAA2B;SAC3B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,UAAU,EAA7B,CAA6B,CAAC,CAAC,CAAC,CAAC;aACjE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACzD,CAAC;SACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC5B,MAAM,CAAC,OAAO,CAAC;KACjB,CAAC;KAED;;;;QAIG;KACH,2BAAI,GAAJ,UAAK,OAAqB;SACxB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC3C,CAAC;KAED;;;;QAIG;KACH,2BAAI,GAAJ,UAAK,OAAgB;SACnB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC3C,CAAC;KAED;;;;QAIG;KACH,oCAAa,GAAb,UAAc,GAAgB;SAC5B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC3C,CAAC;KAED;;;;QAIG;KACH,4BAAK,GAAL,UAAM,OAAgB;SACpB,MAAM,CAAC;aACL,KAAK,EAAE,UAAC,GAAuB,IAAK,cAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAjC,CAAiC;aACrE,IAAI,EAAE,UAAC,GAA4B,IAAK,cAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAjC,CAAiC;UAC1E,CAAC;KACJ,CAAC;KAED;;;;;QAKG;KACH,6BAAM,GAAN,UAAO,GAAO,EAAE,CAAQ;SACtB,MAAM,CAAC,OAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACrE,CAAC;KAGD;;;;QAIG;KACH,iCAAU,GAAV,UAAW,KAAY;SACrB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3C,CAAC;KAED;;;QAGG;KACH,6BAAM,GAAN,UAAO,KAAY;SACjB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SAClC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;KACrE,CAAC;KAED;;;;QAIG;KACH,mCAAY,GAAZ,UAAa,MAAoB,EAAE,GAAgB;SACjD,gCAAgC;KAClC,CAAC;KAED;;;;QAIG;KACH,gCAAS,GAAT,UAAU,OAAgB,EAAE,eAAuB;SAAnD,iBAKC;SAL2B,+BAAuB,GAAvB,uBAAuB;SACjD,OAAO,CAAC,OAAO,CAAC,UAAC,KAAK;aACpB,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACpC,CAAC,CAAC,CAAC;SACH,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC;KACtF,CAAC;KAED;;;;QAIG;KACH,mCAAY,GAAZ,UAAa,OAAgB,EAAE,eAAuB;SAAtD,iBAMC;SAN8B,+BAAuB,GAAvB,uBAAuB;SACpD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAA7B,CAA6B,CAAC,CAAC,CAAC,CAAC;aACpG,MAAM,CAAC,CAAC,WAAW;SACrB,CAAC;SACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;SAC1B,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;KAC3C,CAAC;KAED;;;;;QAKG;KACH,sCAAe,GAAf,UAAgB,KAAY,EAAE,UAAkB;SAAlB,0BAAkB,GAAlB,kBAAkB;SAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;iBACf,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACvB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,CAAC,cAAc,EAAE,CAAC;aACxB,CAAC;aACD,MAAM,CAAC,KAAK,CAAC;SACf,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;iBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACrB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7B,CAAC;aACD,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;KACH,CAAC;KACD;;;QAGG;KACH,+BAAQ,GAAR,UAAS,KAAY;SACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACrC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;KACrE,CAAC;KAED;;;QAGG;KACH,mCAAY,GAAZ;SACE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC7B,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;KACxC,CAAC;KAED;;;QAGG;KACH,mCAAY,GAAZ;SACE,IAAI,OAAO,GAAG,EAAE,CAAC;SACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,cAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,CAAC;SAChD,OAAO,CAAC,IAAI,EAAE,CAAC;SACf,MAAM,CAAC,OAAO,CAAC;KACjB,CAAC;KAED;;QAEG;KACH,qCAAc,GAAd;SACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;KAC3C,CAAC;KAED;;;;;QAKG;KACH,kCAAW,GAAX,UAAY,OAAsB,EAAE,OAA6B;SAA7B,uBAA6B,GAA7B,YAA6B;SAC/D,IAAM,EAAE,GAAmB;aACzB,SAAS,EAAG,IAAI;aAChB,OAAO,EAAE,IAAI;aACb,MAAM,EAAE,IAAI;aACZ,KAAK,EAAE,KAAK;aACZ,SAAS,EAAE,GAAG;aACd,MAAM,EAAE,UAAC,CAAC,IAAK,QAAC,aAAa,CAAC,CAAC,CAAC,EAAjB,CAAiB;UACjC,CAAC;SACF,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;SACnC,8BAA8B;SAC9B,eAAe,CAAS,EAAE,CAAgB;aACxC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACjD,MAAM,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;aACzC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC;SACX,CAAC;SACD,IAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,SAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAjB,CAAiB,CAAC,CAAC;SACrE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;aAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;aACX,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;iBACd,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,YAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAd,CAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;aAChE,CAAC;aACD,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG;iBACf,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,YAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAxB,CAAwB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;aAC1E,CAAC,CAAC,CAAC;aACH,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;SAC5B,CAAC,CAAC,CAAC;KACL,CAAC;KAEH,mBAAC;AAAD,EAAC,CA1nBiC,KAAK,CAAC,gBAAgB,GA0nBvD;AA1nBY,qBAAY,eA0nBxB;AAED;;IAEG;AACH;KAAwC,sCAAY;KAKlD,4BAAoB,OAAgC,EAAE,OAAiB;SALzE,iBA8DC;SAzDa,uBAAwC,GAAxC,YAAwC;SAAE,uBAAiB,GAAjB,YAAiB;SACrE,kBAAM,OAAO,CAAC,CAAC;SADG,YAAO,GAAP,OAAO,CAAyB;SAJ5C,iBAAY,GAAG,CAAC,CAAC;SACzB,mCAAmC;SAC3B,cAAS,GAAG,UAAC,GAAO,EAAE,EAAS,EAAE,IAAQ,IAAK,UAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAhB,CAAgB,CAAC;SAIrE,uBAAuB;SACvB,OAAO,CAAC,OAAO,CAAC,UAAC,CAAK;aACpB,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,KAAI,CAAC,SAAS,CAAC;aAC1C,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;SAChC,CAAC,CAAC,CAAC;KACL,CAAC;KAED,4CAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;KACrD,CAAC;KAED;;;QAGG;KACH,qCAAQ,GAAR,UAAS,MAAwB;SAC/B,IAAI,CAAC,GAAO,MAAM,CAAC;SACnB,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;SAC1C,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;SACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;KAC1B,CAAC;KAED,uCAAU,GAAV;SACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KAC9B,CAAC;KAED,qCAAQ,GAAR,UAAS,GAAU;SACjB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAM,CAAE,CAAC,MAAM,KAAK,GAAG,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;KAChE,CAAC;KAED;;;;QAIG;KACH,sCAAS,GAAT,UAAU,IAAQ;SAChB,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;KAC5D,CAAC;KAED,wCAAW,GAAX,UAAY,OAAW;SACrB,EAAE,CAAC,CAAC,OAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;aACjC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAC,CAAK,IAAK,QAAC,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,OAAO,EAAnC,CAAmC,CAAC,CAAE,CAAC,CAAC,CAAC;SACjF,CAAC;SACD,MAAM,CAAC,OAAO,CAAC;KACjB,CAAC;KAED,oCAAO,GAAP,UAAQ,IAAQ;SACd,gBAAK,CAAC,OAAO,YAAC,IAAI,CAAC,CAAC;SACpB,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAlB,CAAkB,CAAC,CAAC;KAChF,CAAC;KAED,0CAAa,GAAb;SACE,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;KACxC,CAAC;KACH,yBAAC;AAAD,EAAC,CA9DuC,YAAY,GA8DnD;AA9DY,2BAAkB,qBA8D9B;AACD;;IAEG;AACH;KAAuC,qCAAkB;KAevD,2BAAmB,IAAU,EAAE,OAAgC,EAAE,OAAY;SAA9C,uBAAgC,GAAhC,YAAgC;SAAE,uBAAY,GAAZ,YAAY;SAC3E,kBAAM,OAAO,EAAE,OAAO,CAAC,CAAC;SADP,SAAI,GAAJ,IAAI,CAAM;SAdrB,YAAO,GAAG;aAChB;;gBAEG;aACH,cAAc,EAAE,KAAK;aAErB;;gBAEG;aACH,kBAAkB,EAAE,IAAI;UACzB,CAAC;SAMA,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACnC,4DAA4D;SAC5D,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;aACjB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SACf,CAAC,CAAC,CAAC;SAEH,IAAM,IAAI,GAAG,IAAI,CAAC;SAClB,IAAI,CAAC,UAAU,GAAG;aAChB,sDAAsD;aACtD,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;aAC1B,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAC,CAAC;iBAC3B,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;qBAClB,CAAC,CAAC,UAAU,EAAE,CAAC;iBACjB,CAAC;aACH,CAAC,CAAC,CAAC;SACL,CAAC,CAAC;KACJ,CAAC;KAED;;;QAGG;KACH,mCAAO,GAAP,UAAQ,IAAW;SACjB,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;aACjB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SACf,CAAC,CAAC,CAAC;SAEH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB,IAAI,CAAC,UAAU,EAAE,CAAC;KACpB,CAAC;KAED,qCAAS,GAAT;SACE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KACnB,CAAC;KAED;;;QAGG;KACH,sCAAU,GAAV,UAAW,IAAW;SACpB,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;aACjB,CAAC,CAAC,MAAM,GAAG,CAAC,GAAC,CAAC,CAAC;SACjB,CAAC,CAAC,CAAC;SACH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACtC,IAAI,CAAC,UAAU,EAAE,CAAC;KACpB,CAAC;KAES,wCAAY,GAAtB,UAAuB,GAAQ,EAAE,EAAU,EAAE,IAAuB,EAAE,OAAsB;SAC1F,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;KAC9C,CAAC;KAED,wCAAY,GAAZ,UAAa,QAAuB;SAApC,iBAuBC;SAtBC,IAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;SAEhC,IAAM,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAEnC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;aACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG;iBACpB,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC;iBACtB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACzB,CAAC,CAAC,CAAC;aACH,qBAAqB;aACrB,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK;iBAC9B,KAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;aAC9B,CAAC,CAAC,CAAC;SACL,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;SACjD,CAAC;SAED,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;aAChC,IAAI,CAAC,EAAE,CAAC,0BAA0B,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SACvD,CAAC;SAED,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED,0CAAc,GAAd,UAAe,OAAqB;SAClC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;aAChC,OAAO,CAAC,EAAE,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;SAC/C,CAAC;SACD,+BAA+B;SAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,cAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAA9B,CAA8B,CAAC,CAAC;KAC3D,CAAC;KAED,gCAAI,GAAJ,UAAK,OAAqB;SACxB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC7B,CAAC;SACD,8CAA8C;SAC9C,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,CAAC,EAApD,CAAoD,CAAC,CAAC;SAE3F,gCAAgC;SAChC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;aAChC,IAAI,UAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,UAAU,EAAE,EAAd,CAAc,CAAC,CAAC;aAChE,EAAE,CAAC,CAAC,UAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;iBACxB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,iBAAQ,CAAC,KAAK,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAf,CAAe,CAAC,EAAtC,CAAsC,CAAC,CAAC;aACxE,CAAC;SACH,CAAC;SAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aAChC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,cAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC;SACvD,CAAC;SAED,4BAA4B;SAC5B,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAhC,CAAgC,CAAC,CAAC;SAExD,+EAA+E;SAC/E,IAAI,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACb,CAAC,CAAC,CAAC;SAEH,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KAClC,CAAC;KAED,gCAAI,GAAJ,UAAK,OAAgB;SAArB,iBASC;SARC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC7B,CAAC;SACD,wBAAwB;SACxB,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,IAAE,CAAC,IAAI,CAAC,GAAC,CAAC,EAAX,CAAW,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,YAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAhB,CAAgB,CAAC,CAAC;SAEhF,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAChC,CAAC;KAED;;;;QAIG;KACH,iCAAK,GAAL,UAAM,OAAgB;SAAtB,iBAQC;SAPC,IAAI,CAAC,GAAkB,IAAI,CAAC;SAC5B,IAAM,IAAI,GAAE,cAAM,QAAC,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAzC,CAAyC,CAAC;SAE5D,MAAM,CAAC;aACL,KAAK,EAAE,UAAC,GAAuB,IAAK,WAAI,EAAE,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,mBAAY,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAnD,CAAmD,CAAC,EAA1E,CAA0E;aAC9G,IAAI,EAAE,UAAC,GAA4B,IAAK,WAAI,EAAE,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,kBAAW,CAAC,IAAI,EAAE,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,EAA9D,CAA8D,CAAC,EAArF,CAAqF;UAC9H,CAAC;KACJ,CAAC;KAGD,yCAAa,GAAb,UAAc,GAAsB;SAApC,iBAgBC;SAfC,IAAM,UAAU,GAAG,GAAG,CAAC,CAAC,0BAA0B;SAClD,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACnE,CAAC;SACD,8BAA8B;SAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;SACjB,GAAG,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;aACnC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;aACxC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;iBAC/B,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;aACtC,CAAC;aACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAClB,CAAC;SACD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,WAAW,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAA7B,CAA6B,CAAC,CAAC,CAAC;KAC5E,CAAC;KAED,wCAAY,GAAZ,UAAa,MAAoB,EAAE,GAAgB;SACjD,yBAAyB;SACzB,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC;SACpE,IAAM,CAAC,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,UAAC,CAAQ,IAAK,QAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAU,MAAO,CAAC,IAAI,CAAC,EAA9C,CAA8C,GAAY,MAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACzI,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAC,GAAG;aACnC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;SAC9B,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,UAAG,CAAC,MAAM,EAAV,CAAU,CAAC,CAAC;SAC5B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;KAC9D,CAAC;KAEH,wBAAC;AAAD,EAAC,CA7LsC,kBAAkB,GA6LxD;AA7LY,0BAAiB,oBA6L7B;AA6BD;;IAEG;AACH;KAAwC,sCAAkB;KAQxD,4BAAoB,MAAkB,EAAE,OAAgC,EAAE,OAAiB;SAAnD,uBAAgC,GAAhC,YAAgC;SAAE,uBAAiB,GAAjB,YAAiB;SACzF,kBAAM,OAAO,EAAE,OAAO,CAAC,CAAC;SADN,WAAM,GAAN,MAAM,CAAY;SANtC;;;YAGG;SACK,UAAK,GAAO,EAAE,CAAC;KAIvB,CAAC;KAES,yCAAY,GAAtB,UAAuB,GAAQ,EAAE,EAAU,EAAE,IAAuB,EAAE,OAAsB;SAC1F,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACjD,CAAC;KAED,yCAAY,GAAZ,UAAa,QAAuB;SAClC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;SAC9B,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;aACb,kBAAkB;aAClB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC3C,CAAC;SACD,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;SAE5C,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,2CAAc,GAAd,UAAe,OAAqB;SAClC,+BAA+B;SAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KAChC,CAAC;KAED,iCAAI,GAAJ,UAAK,OAAqB;SAA1B,iBASC;SARC,wCAAwC;SACxC,IAAI,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,UAAC,IAAI,IAAK,WAAI,CAAC,MAAM,EAAX,CAAW,CAAC,CAAC;SACxD,6BAA6B;SAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,OAAO;aACzC,kBAAkB;aAClB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;aACjC,MAAM,CAAC,OAAO,CAAC;SACjB,CAAC,CAAC,CAAC;KACL,CAAC;KAED,iCAAI,GAAJ,UAAK,OAAgB;SACnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;aACzC,6BAA6B;aAC7B,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAArB,CAAqB,CAAC,CAAC;aAC9C,MAAM,CAAC,IAAI,CAAC;SACd,CAAC,CAAC,CAAC;KACL,CAAC;KAED,0CAAa,GAAb,UAAc,GAAgB;SAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAO,GAAG,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC;KAC3D,CAAC;KAED,yCAAY,GAAZ,UAAa,MAAoB,EAAE,GAAgB;SAAnD,iBAIC;SAHC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAQ,GAAG,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,OAAO;aAC9D,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;SAC7B,CAAC,CAAC,CAAC;KACL,CAAC;KACH,yBAAC;AAAD,EAAC,CA7DuC,kBAAkB,GA6DzD;AA7DY,2BAAkB,qBA6D9B;;;;;;;ACnkCD;;IAEG;;;;;;;AAEH,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAgHlC;;IAEG;AACH;KAAA;SACE;;;YAGG;SACH,cAAS,GAAG,MAAM,CAAC;SACnB;;;YAGG;SACH,UAAK,GAAU,MAAM,CAAC;KA+ExB,CAAC;KA7EC,oCAAM,GAAN,UAAO,IAAsB,EAAE,GAAgB,EAAE,IAAU,EAAE,OAAsB;SACjF,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAE3F,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAChC,OAAO,EAAE,IAAI,CAAC,SAAS;aACvB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG;aAClE,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAApB,CAAoB;UAClC,CAAC,CAAC;SAEH,IAAI,cAAc,GAAG,CAAC,CAAC;SACvB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC;aAC3B,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;SACtC,CAAC;SAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;aACnC,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC;SACxC,CAAC;SAED,KAAK,CAAC,IAAI,CAAC;aACT,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,EAAjC,CAAiC;aAC9C,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;UAC1B,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;SAEhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aAC3B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;UAC9B,CAAC,CAAC;SAEH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KACxB,CAAC;KAED;;;;;QAKG;KACH,qCAAO,GAAP,UAAQ,IAAsB,EAAE,KAAY;SAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,eAAe,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;KACnF,CAAC;KAED,wCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SACxH,IAAI,OAAO,GAAS,IAAI,CAAC,IAAI,EAAE,CAAC;SAChC,wBAAwB;SACxB,IAAI,CAAC,GAAS,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;SAC/C,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SACzB,CAAC;KACH,CAAC;KAED,wCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SACxH,IAAI,OAAO,GAAS,IAAI,CAAC,IAAI,EAAE,CAAC;SAChC,IAAI,OAAO,GAAS,IAAI,CAAC,IAAI,EAAE,CAAC;SAChC,WAAW;SACX,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,IAAG,OAAO,CAAC,CAAC,CAAC;aACtC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SAC1C,CAAC;SACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;KAC/B,CAAC;KAED,0CAAY,GAAZ,UAAa,GAA4B,EAAE,GAAgB,EAAE,IAAU,EAAE,OAAsB;SAA/F,iBAeC;SAdC,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;SAC3B,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG,EAAE,CAAC;aAClB,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,IAAI,cAAc,GAAG,CAAC,CAAC;aACvB,EAAE,CAAC,CAAC,KAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC;iBAC3B,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;aACtC,CAAC;aAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;iBACnC,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC;aACxC,CAAC;aACD,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;aAC5C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxD,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KAED,8CAAgB,GAAhB,UAAiB,GAA4B,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAC5G,MAAM;KACR,CAAC;KACH,0BAAC;AAAD,EAAC;AAzFY,4BAAmB,sBAyF/B;AAED;;IAEG;AACH;KAAkC,uCAAmB;KACnD,6BAAY,UAAc;SAD5B,iBAQC;SANG,iBAAO,CAAC;SACR,mCAAmC;SACnC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;aAClC,KAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9B,CAAC,CAAC,CAAC;KACL,CAAC;KACH,0BAAC;AAAD,EAAC,CARiC,mBAAmB,GAQpD;AAED;;IAEG;AACH;KAAqC,mCAAmB;KAAxD;SAAqC,8BAAmB;SACtD;;;YAGG;SACO,gBAAW,GAAG,KAAK,CAAC;KAqHhC,CAAC;KAnHC,gCAAM,GAAN,UAAO,IAAsB,EAAE,GAAsB,EAAE,IAAU,EAAE,OAAsB;SAAzF,iBAoDC;SAnDC,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;SAChF,aAAa;SACb,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAEzE,IAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;SAChD,IAAM,UAAU,GAAG,UAAC,MAA+B,EAAE,KAAa,EAAE,OAAiC;aAClG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;iBAC1B,OAAO,EAAE,KAAK;iBACd,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;iBAC7B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,EAA9B,CAA8B;iBAC3C,KAAK,EAAE,UAAC,CAAC;qBACP,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;qBACzC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAC1B,CAAC;cACF,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;aAE5B,OAAO,CAAC,IAAI,CAAC;iBACX,MAAM,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAA1D,CAA0D;cAC7E,CAAC,CAAC;aAEH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;iBAC7B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;iBAC7B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,EAAlD,CAAkD;iBAC/D,KAAK,EAAE,UAAC,CAAC;qBACP,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;qBACzC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAC1B,CAAC;cACF,CAAC,CAAC,KAAK,CAAC;iBACP,IAAI,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,YAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAvB,CAAuB;cACxC,CAAC,CAAC;SACL,CAAC,CAAC;SAEF,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;aAChB,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACjF,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;aAC5D,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;iBAC9B,OAAO,EAAE,QAAQ;iBACjB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG;cACnE,CAAC,CAAC;aAEH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;kBAC9D,IAAI,CAAC,WAAW,EAAE,UAAC,CAAC,EAAC,CAAC,IAAK,mBAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAA9D,CAA8D,CAAC,CAAC;SAClG,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC1D,CAAC;SAED,KAAK,CAAC,IAAI,CAAC;aACT,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;UAC1B,CAAC,CAAC;SAEH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KACxB,CAAC;KAED;;;;;;QAMG;KACH,iCAAO,GAAP,UAAQ,CAAK,EAAE,CAAQ,EAAE,GAAgB;SACvC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;KACnB,CAAC;KAED,iCAAO,GAAP,UAAQ,IAAsB,EAAE,KAAY;SAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;KAC5D,CAAC;KAED,oCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SACxH,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;SAChF,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,gBAAK,CAAC,UAAU,YAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;SAChE,CAAC;SACD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACxC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACrB,8BAA8B;aACvB,IAAI,CAAC,IAAI,EAAG,CAAC,WAAW,CAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACxD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;iBAC9C,OAAO,EAAE,QAAQ;iBACjB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG;iBAClE,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG;cAClF,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;SAClC,CAAC;KACH,CAAC;KAED,sCAAY,GAAZ,UAAa,GAA4B,EAAE,GAAsB,EAAE,IAAU,EAAE,OAAsB;SAArG,iBAkBC;SAjBC,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;SAChF,IAAM,OAAO,GAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;SAC/C,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;aACrC,IAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC3C,IAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAC3B,IAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;aAC7C,GAAG,CAAC,SAAS,GAAG,KAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;aACnF,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aAEzB,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;iBAChB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;aAChE,CAAC;SACH,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KAED,0CAAgB,GAAhB,UAAiB,GAA4B,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAC5G,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;SAChF,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC;SACT,CAAC;SACD,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5F,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KACH,sBAAC;AAAD,EAAC,CA1HoC,mBAAmB,GA0HvD;AA1HY,wBAAe,kBA0H3B;AAED;;IAEG;AACH;KAAyC,uCAAmB;KAA5D;SAAyC,8BAAmB;KA+E5D,CAAC;KA7EC,oCAAM,GAAN,UAAO,IAAsB,EAAE,GAAsB,EAAE,IAAU,EAAE,OAAsB;SAAzF,iBAuBC;SAtBC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAEjF,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAChC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,QAAQ;aAC9B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;aAC7B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,EAAtD,CAAsD;aACnE,KAAK,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAA1D,CAA0D;UAC5E,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;SAE5B,KAAK,CAAC,IAAI,CAAC;aACT,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;aACzB,KAAK,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAA1D,CAA0D;aAC3E,MAAM,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAA1D,CAA0D;UAC7E,CAAC,CAAC;SAEH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aAC3B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;aAC7B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,EAAlD,CAAkD;UAChE,CAAC,CAAC,KAAK,CAAC;aACP,IAAI,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,YAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAvB,CAAuB;UACxC,CAAC,CAAC;SACH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KACxB,CAAC;KAED;;;;;;QAMG;KACH,qCAAO,GAAP,UAAQ,CAAK,EAAE,CAAQ,EAAE,GAAgB;SACvC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACxB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACb,CAAC,GAAG,CAAC,CAAC;SACR,CAAC;SACD,yCAAyC;SACzC,IAAI,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SAC5D,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;SACZ,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;KAC1B,CAAC;KAED,qCAAO,GAAP,UAAQ,IAAsB,EAAE,KAAY;SAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;KACpE,CAAC;KAED,wCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SACxH,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACxC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACrB,8BAA8B;aACvB,IAAI,CAAC,IAAI,EAAG,CAAC,WAAW,CAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACxD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;iBAC9C,OAAO,EAAE,QAAQ;iBACjB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG;iBAClE,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG;cAClF,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;SAClC,CAAC;KACH,CAAC;KAED,0CAAY,GAAZ,UAAa,GAA4B,EAAE,GAAsB,EAAE,IAAU,EAAE,OAAsB;SAArG,iBAUC;SATC,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;aAC7D,IAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;aACrE,GAAG,CAAC,SAAS,GAAG,KAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;aACxC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC3B,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KAED,8CAAgB,GAAhB,UAAiB,GAA4B,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAC5G,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5F,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KACH,0BAAC;AAAD,EAAC,CA/EwC,mBAAmB,GA+E3D;AA/EY,4BAAmB,sBA+E/B;AAED;;IAEG;AACH;KAAqC,0CAAe;KAClD,gCAAY,UAAc;SAD5B,iBAOC;SALG,iBAAO,CAAC;SACR,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;aAClC,KAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9B,CAAC,CAAC,CAAC;KACL,CAAC;KACH,6BAAC;AAAD,EAAC,CAPoC,eAAe,GAOnD;AAED;;IAEG;AACH;KAAA;KA4BA,CAAC;KA3BC,mCAAM,GAAN,UAAO,IAAsB,EAAE,GAAgB,EAAE,IAAU,EAAE,OAAsB;SACjF,kCAAkC;KACpC,CAAC;KAED,uCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SACxH,8BAA8B;SAC9B,IAAI,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAC5C,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aACtC,OAAO,EAAE,YAAY;aACrB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;aACvB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;aAC3B,YAAY,EAAE,KAAK;UACpB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;cAC7B,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC;cACnB,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC;cAC5B,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;aACb,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;aAC1B,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;aAC3B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAChB,CAAC,CAAC,CAAC;KACP,CAAC;KAED,uCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SACxH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;KAC/B,CAAC;KAEH,yBAAC;AAAD,EAAC;AA5BY,2BAAkB,qBA4B9B;AAED;KAA2C,yCAAmB;KAE5D;SACE,iBAAO,CAAC;SACR,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;KAC/B,CAAC;KAED,sCAAM,GAAN,UAAO,IAAsB,EAAE,GAAyB,EAAE,IAAU,EAAE,OAAsB;SAC1F,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAE3F,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAChC,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK;aAC/B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAApB,CAAoB;UAClC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aACxB,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;aAC1B,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;aAC3B,IAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aAChC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;SAC5D,CAAC,CAAC,CAAC;SAEH,KAAK,CAAC,IAAI,CAAC;aACT,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;aAC7B,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;UAC1B,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,QAAQ,GAAG,QAAQ,EAA9C,CAA8C,CAAC,CAAC;SAE/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aAC3B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;UAC9B,CAAC,CAAC;SAEH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KACxB,CAAC;KAED,4CAAY,GAAZ,UAAa,GAA4B,EAAE,GAAyB,EAAE,IAAU,EAAE,OAAsB;SACtG,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC;SACzB,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACrE,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KACH,4BAAC;AAAD,EAAC,CA1C0C,mBAAmB,GA0C7D;AA1CY,8BAAqB,wBA0CjC;AAED;;IAEG;AACH;KAAmC,wCAAmB;KAAtD;SAAmC,8BAAmB;KA+BtD,CAAC;KA9BC,yCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAwB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAChI,mCAAmC;SACnC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;SAClD,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;aAChC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;aAC3B,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;aAC/B,YAAY,EAAE,KAAK;aACnB,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE;aACrB,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;UACjC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;aAC5B,IAAI,EAAE,MAAM;aACZ,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;UACzB,CAAC,CAAC,KAAK,CAAC;aACP,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI;UAC7B,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE;aACd,kBAAkB;aAClB,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;aACtB,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAC1B,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,cAAM,SAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAA1B,CAA0B,CAAC,CAAC;KACnD,CAAC;KAED,yCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAwB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAChI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SAChD,IAAI,IAAI,GAAqB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;SACzD,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACT,2EAA2E;aAC3E,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC,CAAC;SACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;KAC/B,CAAC;KACH,2BAAC;AAAD,EAAC,CA/BkC,mBAAmB,GA+BrD;AAED,KAAI,uBAAuB,GAAG,IAAI,mBAAmB,EAAE,CAAC;AACxD,KAAI,mBAAmB,GAAG,IAAI,eAAe,EAAE,CAAC;AAEhD;;;;IAIG;AACH,0BAAgC,UAAe;KAC7C,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;SAChB,MAAM,CAAC,uBAAuB,CAAC;KACjC,CAAC;KACD,MAAM,CAAC,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAC7C,EAAC;AALe,wBAAe,kBAK9B;AAED;;;;IAIG;AACH,sBAA4B,UAAe;KACzC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;SAChB,MAAM,CAAC,mBAAmB,CAAC;KAC7B,CAAC;KACD,MAAM,CAAC,IAAI,sBAAsB,CAAC,UAAU,CAAC,CAAC;AAChD,EAAC;AALe,oBAAW,cAK1B;AAED;;IAEG;AACH;KAA+B,oCAAmB;KAAlD;SAA+B,8BAAmB;KAyBlD,CAAC;KAxBC,iCAAM,GAAN,UAAO,IAAsB,EAAE,GAAoB,EAAE,IAAU,EAAE,OAAsB;SACrF,0CAA0C;SAC1C,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAC9E,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAChC,OAAO,EAAE,WAAW;aACpB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG;aAClE,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAApB,CAAoB;UAClC,CAAC,CAAC;SAEH,KAAK,CAAC,IAAI,CAAC;aACT,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;aAC7B,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;UAC1B,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,oCAA+B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,6BAAqB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAA1H,CAA0H,CAAC,CAAC;SAE3I,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aAC3B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;UAC9B,CAAC,CAAC;SAEH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KACxB,CAAC;KAED,kCAAO,GAAP,UAAQ,IAAsB,EAAE,KAAY;SAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;KACjE,CAAC;KACH,uBAAC;AAAD,EAAC,CAzB8B,mBAAmB,GAyBjD;AAGD;;IAEG;AACH;KAAiC,sCAAmB;KAApD;SAAiC,8BAAmB;KAMpD,CAAC;KALC,mCAAM,GAAN,UAAO,IAAsB,EAAE,GAAsB,EAAE,IAAU,EAAE,OAAsB;SACvF,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC;SAC3B,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;SAChF,MAAM,CAAC,gBAAK,CAAC,MAAM,YAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;KAChD,CAAC;KACH,yBAAC;AAAD,EAAC,CANgC,mBAAmB,GAMnD;AAED;;IAEG;AACH;KAAkC,uCAAmB;KAArD;SAAkC,8BAAmB;SACnD,cAAS,GAAG,KAAK,CAAC;KAsDpB,CAAC;KApDC,oCAAM,GAAN,UAAO,IAAsB,EAAE,GAA2B,EAAE,IAAU,EAAE,OAAsB;SAC5F,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAExF,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;aAC/C,OAAO,EAAE,IAAI,CAAC,SAAS;aACvB,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;aACzB,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,EAAlE,CAAkE;UACxF,CAAC,CAAC;SACH,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAC9B,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG;aAClE,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAApB,CAAoB;UAClC,CAAC,CAAC;SACH,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAC9B,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;UACnC,CAAC,CAAC;SACH,KAAK,CAAC,IAAI,CAAC;aACT,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;aACzB,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAA9D,CAA8D;UACpF,CAAC,CAAC;SACH,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aACxB,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAApB,CAAoB;UAClC,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;SAChC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;aACzB,IAAI,EAAE,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe;UAC7B,CAAC,CAAC,IAAI,CAAC;aACN,MAAM,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,WAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAvE,CAAuE;aACzF,KAAK,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,WAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAvE,CAAuE;UACzF,CAAC,CAAC;SAEH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aAC3B,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAA9D,CAA8D;UACpF,CAAC,CAAC;SAGH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KACxB,CAAC;KAED,qCAAO,GAAP,UAAQ,IAAsB,EAAE,KAAY;SAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,eAAe,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;KAChF,CAAC;KAED,0CAAY,GAAZ,UAAa,GAA4B,EAAE,GAA2B,EAAE,IAAU,EAAE,OAAsB;SACxG,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;aACxB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC3D,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAChC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACvM,CAAC,CAAC,CAAC;KACL,CAAC;KACH,0BAAC;AAAD,EAAC,CAvDiC,mBAAmB,GAuDpD;AAED;;IAEG;AACH;KAAgC,qCAAmB;KACjD,2BAAoB,eAAsB;SAA9B,+BAA8B,GAA9B,sBAA8B;SACxC,iBAAO,CAAC;SADU,oBAAe,GAAf,eAAe,CAAO;KAE1C,CAAC;KAED,sCAAU,GAAV,UAAW,KAAuB,EAAE,GAAqB,EAAE,OAAsB,EAAE,QAAwG,EAAE,SAA+B,EAAE,QAAe;SAAf,wBAAe,GAAf,eAAe;SAC3O,IAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAC7B,QAAQ,GAAG,GAAG,CAAC,QAAQ,EACvB,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SAC7D,IAAI,MAAM,GAAG,CAAC,EACZ,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC;aACtB,IAAI,CAAC,GAAG,MAAM,CAAC;aACf,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;aACvB,MAAM,IAAI,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aAC9D,MAAM,CAAC,CAAC,CAAC;SACX,CAAC,CAAC,CAAC;SACL,IAAM,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;SAEjE,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;SAC5B,IAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;SACnC,OAAO,CAAC,MAAM,GAAG,UAAC,MAAM,EAAE,QAAQ;aAChC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aACtC,MAAM,CAAC,MAAM,KAAK,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;SAC/C,CAAC,CAAC;SAEF,gCAAgC;SAChC,IAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;SACjF,6BAA6B;SAC7B,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;aACjC,OAAO,EAAE,SAAS;aAClB,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,EAAhC,CAAgC;UACtD,CAAC,CAAC;SACH,qCAAqC;SACrC,SAAS,CAAC,IAAI,CAAC;aACb,OAAO,EAAE,UAAC,CAAC,IAAK,gBAAS,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAA7B,CAA6B;aAC7C,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;UAC1B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;aACpB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBACZ,IAAM,aAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACzC,6FAA6F;iBAC7F,OAAO,CAAC,KAAK,GAAG,UAAC,KAAK;qBACpB,6DAA6D;qBAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,aAAW,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,WAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhE,CAAgE,EAAE,CAAC,CAAC,CAAC;iBACjI,CAAC,CAAC;aACJ,CAAC;aACD,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;SAC3C,CAAC,CAAC,CAAC;SACH,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC;aACxD,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,EAAhC,CAAgC;UACtD,CAAC,CAAC;SACH,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SAE1B,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;KAC/B,CAAC;KAED,kCAAM,GAAN,UAAO,IAAsB,EAAE,KAAuB,EAAE,IAAU,EAAE,OAAsB;SACxF,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,UAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ;aAC7D,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;SAC/C,CAAC,EAAE,UAAC,KAAK,IAAK,WAAI,CAAC,KAAK,CAAC,EAAX,CAAW,CAAC,CAAC;KAC7B,CAAC;KAED,sCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,KAAuB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAC/H,IAAI,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;SAC/D,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,UAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ;aAC7D,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,GAAG,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;aACxE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACpB,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC/E,CAAC;SACH,CAAC,EAAE,UAAC,KAAK,IAAK,UAAG,EAAH,CAAG,EAAE,KAAK,CAAC,CAAC;KAC5B,CAAC;KAED,sCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,KAAuB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAC/H,IAAI,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;SAC/D,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,UAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ;aAC7D,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,GAAG,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;aACxE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACpB,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC/E,CAAC;SACH,CAAC,EAAE,UAAC,KAAK,IAAK,UAAG,EAAH,CAAG,EAAE,KAAK,CAAC,CAAC;SAC1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;KAC/B,CAAC;KAED,wCAAY,GAAZ,UAAa,GAA6B,EAAE,KAAuB,EAAE,IAAU,EAAE,OAAsB;SACrG,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAC7B,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC/D,IAAI,MAAM,GAAG,CAAC,EACZ,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC;aACtB,IAAI,CAAC,GAAG,MAAM,CAAC;aACf,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;aACvB,MAAM,IAAI,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aAC9D,MAAM,CAAC,CAAC,CAAC;SACX,CAAC,CAAC,CAAC;SACL,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;SAC5B,IAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;SACnC,OAAO,CAAC,MAAM,GAAG,UAAC,MAAM,EAAE,QAAQ;aAChC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aACtC,MAAM,CAAC,MAAM,KAAK,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;SAC/C,CAAC,CAAC;SACF,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC;aACxB,GAAG,CAAC,IAAI,EAAE,CAAC;aACX,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAE5B,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBACZ,IAAM,aAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACzC,6FAA6F;iBAC7F,OAAO,CAAC,KAAK,GAAG,UAAC,KAAK;qBACpB,6DAA6D;qBAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,aAAW,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,WAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAA3D,CAA2D,EAAE,CAAC,CAAC,CAAC;iBAC5H,CAAC,CAAC;aACJ,CAAC;aACD,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aAEhD,GAAG,CAAC,OAAO,EAAE,CAAC;SAChB,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;SACd,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;KAC/B,CAAC;KACH,wBAAC;AAAD,EAAC,CAxH+B,mBAAmB,GAwHlD;AAMD;;;;;;IAMG;AACH,yBAA+B,QAAgB,EAAE,MAAuB,EAAE,MAAiB;KAA3F,iBAOC;KAPyE,sBAAiB,GAAjB,WAAiB;KACzF,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC3B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;KACvB,MAAM,CAAC,OAAO,GAAG,UAAC,IAAsB,EAAE,KAAY,IAAK,WAAI,CAAC,SAAS,CAAC,KAAI,CAAC,QAAQ,GAAG,eAAe,GAAG,KAAK,GAAG,IAAI,CAAC,EAA9D,CAA8D,CAAC;KAE1H,IAAM,CAAC,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;KAC1C,MAAM,CAAC,CAAC,CAAC;AACX,EAAC;AAPe,uBAAc,iBAO7B;AAED,KAAM,eAAe,GAAG,WAAW,CAAC;KAClC,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe;EACxC,CAAC,CAAC;AAEH;;;IAGG;AACH;KACE,MAAM,CAAC;SACL,MAAM,EAAE,IAAI,kBAAkB,EAAE;SAChC,IAAI,EAAE,IAAI,gBAAgB,EAAE;SAC5B,MAAM,EAAE,WAAW,EAAE;SACrB,IAAI,EAAE,eAAe,CAAC;aACpB,SAAS,EAAE,MAAM;aACjB,KAAK,EAAE,OAAO;UACf,CAAC;SACF,OAAO,EAAE,eAAe,CAAC;aACvB,SAAS,EAAE,SAAS;aACpB,KAAK,EAAE,QAAQ;UAChB,CAAC;SACF,OAAO,EAAE,IAAI,mBAAmB,EAAE;SAClC,KAAK,EAAE,IAAI,iBAAiB,EAAE;SAC9B,WAAW,EAAE,IAAI,mBAAmB,EAAE;SACtC,OAAO,EAAE,WAAW,CAAC;aACnB,WAAW,EAAE,IAAI;aACjB,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe;UACxC,CAAC;SACF,GAAG,EAAE,eAAe;SACpB,GAAG,EAAE,eAAe;SACpB,IAAI,EAAE,eAAe;SACrB,MAAM,EAAE,eAAe;SACvB,OAAO,EAAE,IAAI,kBAAkB,EAAE;SACjC,QAAQ,EAAE,IAAI,oBAAoB,EAAE;SACpC,SAAS,EAAE,IAAI,qBAAqB,EAAE;SACtC,MAAM,EAAE,IAAI,iBAAiB,CAAC,KAAK,CAAC;MACrC,CAAC;AACJ,EAAC;AA7Be,kBAAS,YA6BxB;;;;;;;ACt2BD;;IAEG;;;;;;;AAGH,4CAA2C;AAC3C,KAAO,EAAE,uBAAW,CAAI,CAAC,CAAC;AAC1B,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,QAAQ,uBAAW,CAAY,CAAC,CAAC;AAExC,KAAO,OAAO,uBAAW,EAAc,CAAC,CAAC;AAEzC;KAGE,mBAAmB,IAAsB;SAAtB,SAAI,GAAJ,IAAI,CAAkB;SAFzC,SAAI,GAAU,CAAC,CAAC;KAIhB,CAAC;KACH,gBAAC;AAAD,EAAC;AAED;;;IAGG;AACH,wBAAuB,GAA2C;KAChE,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;KACrB,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC;SACtD,IAAI,IAAI,IAAI,GAAC,GAAG,CAAC,WAAW,CAAC;KAC/B,CAAC;KACD,MAAM,CAAC,IAAI,CAAC;AACd,EAAC;AAED;KAeE,sBAAoB,IAA0B,EAAE,MAAc,EAAE,OAAgB;SAAhB,uBAAgB,GAAhB,YAAgB;SAA5D,SAAI,GAAJ,IAAI,CAAsB;SAdtC,YAAO,GAAG;aAChB,MAAM,EAAE,UAAU;aAClB,SAAS,EAAE,GAAG;aACd,UAAU,EAAE,EAAE;aACd,KAAK,EAAE,GAAG;aACV,MAAM,EAAE,GAAG;aACX,cAAc,EAAE,EAAE;aAClB,QAAQ,EAAE,IAAI;aACd,eAAe,EAAE,KAAK;UACvB,CAAC;SAMA,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAEnC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SAEtE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC/B,CAAC;KAED,wCAAiB,GAAjB,UAAkB,IAA0B;SAA5C,iBA4CC;SA3CC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;SACvH,CAAC;SACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,WAAI,SAAS,CAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,CAAC;SAClG,IAAI,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,UAAC,IAAI;aAC7B,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;aACvC,KAAI,CAAC,MAAM,EAAE,CAAC;SAChB,CAAC,CAAC,CAAC;SACH,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC1B,IAAI,IAAI,GAAG,IAAI,CAAC;aAChB,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,UAAU,GAAG;iBAC5D,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;iBACjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,KAAK;qBACtB,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;yBACxB,MAAM,CAAC,KAAK,CAAC;qBACf,CAAC;qBACD,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC;qBACrB,MAAM,CAAC,IAAI,CAAC;iBACd,CAAC,CAAC,CAAC;iBACH,IAAI,CAAC,MAAM,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC;aACH,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,EAAE,UAAU,OAAO;iBAClE,IAAI,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;iBACjG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,KAAK;qBACtB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;yBAClC,MAAM,CAAC,KAAK,CAAC;qBACf,CAAC;qBACD,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC;qBACrB,MAAM,CAAC,IAAI,CAAC;iBACd,CAAC,CAAC,CAAC;iBACH,IAAI,CAAC,MAAM,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC;aACH,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAC,OAAO;iBACjC,IAAI,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;iBAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,KAAK;qBACtB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;yBAClC,MAAM,CAAC,KAAK,CAAC;qBACf,CAAC;qBACD,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC;iBACvB,CAAC,CAAC,CAAC;aACL,CAAC,CAAC,CAAC;SACL,CAAC;KACH,CAAC;KAED,6BAAM,GAAN;SACE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;SACvH,CAAC;KACH,CAAC;KAED,6BAAM,GAAN;SAAA,iBAiEC;SAhEC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACrB,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,KAAK,CAAC,EAAZ,CAAY,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;SAC7E,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACnE,IAAI,cAAc,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aACvD,OAAO,EAAE,QAAQ;aACjB,WAAW,EAAE,IAAI;UAClB,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,UAAC,CAAC;aACnB,IAAI,CAAC,GAAoB,EAAE,CAAC,KAAM,CAAC;aACnC,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,2DAA2D;aACtG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;aAC9C,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,mCAAmC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/F,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5B,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,0CAA0C,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACxG,CAAC;SACH,CAAC,CAAC,CAAC,KAAK,CAAC;aACP,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI;aACpC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI;UACvC,CAAC,CAAC;SACH,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;aACjC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;iBAC3B,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;aAChD,CAAC,CAAC,CAAC;SACL,CAAC;SACD,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;SAC1E,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,oBAAU,CAAO,CAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,SAAI,CAAC,CAAC,IAAI,CAAE,EAA/C,CAA+C,CAAC,CAAC;SAC/E,QAAQ,CAAC,KAAK,CAAC;aACb,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC;iBAChB,IAAI,GAAG,GAAG,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBACzB,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;aACtD,CAAC;aACD,kBAAkB,EAAE,UAAC,CAAC;iBACpB,IAAM,CAAC,GAAS,CAAE,CAAC;iBACnB,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;aACnE,CAAC;UACF,CAAC,CAAC;SACH,QAAQ,CAAC,IAAI,CAAC;aACZ,KAAK,EAAE,UAAC,CAAC,IAAK,oBAAa,CAAC,CAAC,CAAC,EAAhB,CAAgB;UAC/B,CAAC,CAAC;SACH,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;SAC7C,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SAEzB,+BAA+B;SAC/B,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;aAC5B,KAAK,YAAY;iBACf,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;qBACf,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI;qBAC1D,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI;kBAC7C,CAAC,CAAC;iBACH,KAAK,CAAC;aACR,KAAK,MAAM;iBACT,IAAI,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;iBACtE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;qBACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI;qBAC7C,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI;kBAC/E,CAAC,CAAC;iBACH,KAAK,CAAC;aACR,kBAAkB;aAClB;iBACE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;qBACf,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI;qBAC1C,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI;kBAC7D,CAAC,CAAC;iBACH,KAAK,CAAC;SACV,CAAC;KACH,CAAC;KAEO,6BAAM,GAAd,UAAe,CAAQ;SACrB,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;aAC5B,KAAK,YAAY;iBACf,MAAM,CAAC,EAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;aAC/C,KAAK,MAAM;iBACT,IAAI,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;iBACtE,MAAM,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAC,CAAC;aACzG,kBAAkB;aAClB;iBACE,MAAM,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAC,CAAC;SAClD,CAAC;KACH,CAAC;KACH,mBAAC;AAAD,EAAC;AA3JY,qBAAY,eA2JxB;AAMD;KACE,MAAM,CAAC,IAAI,CAAC;AACd,EAAC;AAFe,+BAAsB,yBAErC;AAED;KAuEE,wBAAoB,IAA0B,EAAE,MAAc,EAAE,OAAgB;SAvElF,iBA+dC;SAxZiE,uBAAgB,GAAhB,YAAgB;SAA5D,SAAI,GAAJ,IAAI,CAAsB;SAtEtC,YAAO,GAAG;aAChB,UAAU,EAAE,GAAG;aACf,aAAa,EAAE,CAAC;aAChB,qBAAqB,EAAE,EAAE;aACzB,YAAY,EAAE,EAAE;aAChB,YAAY,EAAE,IAAI;aAClB,UAAU,EAAE,KAAK;aAEjB,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE;aACtC,aAAa,EAAE,EAAE;aACjB,UAAU,EAAE,UAAC,GAAgB,IAAK,UAAG,YAAY,KAAK,CAAC,YAAY,EAAjC,CAAiC;aACnE,WAAW,EAAE,IAAI;aAEjB,gBAAgB,EAAE,KAAK;aACvB,cAAc,EAAE,EAAE;aAClB,cAAc,EAAE,CAAC,EAAE;aAEnB,UAAU,EAAE,CAAC;aAEb,cAAc,EAAgB,sBAAsB;UACrD,CAAC;SAIM,cAAS,GAAG,EAAE,CAAC,GAAG,EAAgB,CAAC;SAEnC,gBAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAgB;cAEnD,EAAE,CAAC,WAAW,EAAE;aACf,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;aACpC,EAAE,CAAC,KAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;aACxC,EAAE,CAAC,KAAM,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;SAC/C,CAAC,CAAC;cACD,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;aACrB,eAAe;aACf,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACzD,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aACf,EAAE,CAAC,KAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;aACxC,EAAE,CAAC,KAAM,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;SAC/C,CAAC,CAAC;cACD,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;aACxB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;aACrC,EAAE,CAAC,KAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;aAExC,EAAE,CAAC,KAAM,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;SAC/C,CAAC,CAAC,CAAC;SAEG,gBAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,uCAAuC,EAAE,mCAAmC,CAAC,EAAE,UAAC,IAAI,EAAE,CAAc,EAAE,IAAI;aAC9I,IAAI,GAAG,GAAgB,IAAI,CAAC;aAC5B,EAAE,CAAC,CAAC,uCAAuC,IAAI,IAAI,CAAC,CAAC,CAAC;iBACpD,IAAI,EAAE,GAAG,IAAI,CAAC,uCAAuC,CAAC,CAAC;iBACvD,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACT,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBAC7B,CAAC;iBAAC,IAAI,CAAC,CAAC;qBACN,GAAG,CAAC,QAAQ,EAAE,CAAC;iBACjB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;iBACjE,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;aACtD,CAAC;aACD,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;iBAC9B,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;aACtC,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,CAAC,GAAG,KAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;iBACnC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;aAC9B,CAAC;SACH,CAAC,CAAC,CAAC;SAID,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAEnC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SACxE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAEtE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC/B,CAAC;KAED,0CAAiB,GAAjB,UAAkB,IAA0B;SAA5C,iBAcC;SAbC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,4BAA4B,EAAE,6BAA6B,EAAE,iCAAiC,CAAC,EAAE,IAAI,CAAC,CAAC;SACvH,CAAC;SACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB,IAAI,CAAC,EAAE,CAAC,4BAA4B,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACpF,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;aAC5B,IAAI,CAAC,EAAE,CAAC,6BAA6B,EAAE;iBACrC,KAAI,CAAC,UAAU,EAAE,CAAC;iBAClB,KAAI,CAAC,MAAM,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC;aACH,IAAI,CAAC,EAAE,CAAC,iCAAiC,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAElG,CAAC;KACH,CAAC;KAED,sBAAI,2CAAe;cAAnB;aACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SACxB,CAAC;;;QAAA;KAED;;;QAGG;KACH,sCAAa,GAAb;SACE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAC,EAAE,CAAC,CAAC;KACjD,CAAC;KAEO,mCAAU,GAAlB;SAAA,iBAaC;SAZC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACvC,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;aACvB,IAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;aACjC,IAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;aACjC,IAAM,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC5D,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAhD,CAAgD,CAAC,CAAC,OAAO,CAAC,UAAC,GAAO;iBACnF,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAC,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;aACtE,CAAC,CAAC,CAAC;aACH,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,YAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAA7C,CAA6C,CAAC,CAAC,OAAO,CAAC,UAAC,GAAO;iBAChF,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAC,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACrE,CAAC,CAAC,CAAC;SACL,CAAC,CAAC,CAAC;KACL,CAAC;KAED;;QAEG;KACH,sCAAa,GAAb;SAAA,iBAgDC;SA/CC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;aAC7B,MAAM,CAAC;SACT,CAAC;SACD,sCAAsC;SACtC,IAAM,IAAI,GAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAE5C,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAA9B,CAA8B,CAAC,CAAC;SAC/F,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;SACvC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;aACxB,MAAM,CAAC;SACT,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;aAChC,cAAc;aAEd,IAAI,QAAQ,GAAG,KAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;aAEvC,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;iBACvB,IAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;iBACjC,4BAA4B;iBAC5B,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAhD,CAAgD,CAAC,CAAC,OAAO,CAAC,UAAC,GAAsB;qBAClG,IAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,0BAAuB,GAAG,CAAC,EAAE,gBAAY,CAAC,CAAC,CAAC;qBAC7F,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC;yBACb,IAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;yBAC1B,sBAAsB;yBACtB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;6BACtC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;6BAClB,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iCACtB,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;iCACpC,KAAK,CAAC;6BACR,CAAC;6BAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;iCACjC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;iCAC9B,KAAK,CAAC;6BACR,CAAC;yBACH,CAAC;qBACH,CAAC,CAAC,CAAC;iBACL,CAAC,CAAC,CAAC;iBACH,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,YAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAA7C,CAA6C,CAAC,CAAC,OAAO,CAAC,UAAC,GAA2B;qBACpG,IAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,0BAAuB,GAAG,CAAC,EAAE,QAAI,CAAC,CAAC;qBACrE,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC;yBACb,IAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;yBAClC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;6BACvB,MAAM,CAAC,aAAa,CAAC,wBAAqB,GAAG,QAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;yBAC/E,CAAC,CAAC,CAAC;qBACL,CAAC,CAAC,CAAC;iBACL,CAAC,CAAC,CAAC;aACL,CAAC,CAAC,CAAC;SACL,CAAC,CAAC,CAAC;KACL,CAAC;KAEO,6CAAoB,GAA5B,UAA6B,QAAyB,EAAE,eAAyB;SAC/E,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAClF,eAAe,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;cAClC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;cAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SACrC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,UAAC,CAAC,EAAC,CAAC,IAAK,sBAAe,CAAC,CAAC,CAAC,GAAC,IAAI,EAAvB,CAAuB,CAAC,CAAC;SAChE,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KAClC,CAAC;KAED,+BAAM,GAAN;SAAA,iBAqDC;SApDC,IAAM,IAAI,GAAG,IAAI,CAAC;SAClB,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SAEzC,IAAI,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,cAAc,GAAG,EAAE,CAAC;SACjD,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;aACvB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC;aACnG,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACxD,CAAC,CAAC,CAAC;SACH,YAAY;SACZ,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;SAElC,IAAI,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC;SAEvC,sBAAsB;SACtB,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;aAC7E,IAAI,CAAC,UAAU,EAAE,CAAC;SACpB,CAAC;SAED,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAEpC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,sBAAsB,CAAC,CAAC,CAAC;aAC3D,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;SACtD,CAAC;SAED,yBAAyB,CAAc;aACrC,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAA2B,CAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;iBACtG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAA4B,CAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;aAC9F,CAAC;aACD,MAAM,CAAC,CAAC,CAAC;SACX,CAAC;SAED,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;SAClE,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,GAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;SAE/I,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;aAClC,4BAA4B;aAC5B,IAAI,UAAU,GAAG,KAAK,CAAC;aACvB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC;kBAC/B,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;iBACvE,IAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC;iBAC1D,IAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;iBAC9B,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC;qBACtB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAC,YAAU,IAAI,CAAC,OAAO,CAAC,cAAc,SAAM,CAAC,CAAC;qBAC/E,UAAU,GAAG,IAAI,CAAC;iBACpB,CAAC;iBAAC,IAAI,CAAC,CAAC;qBACN,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAC,IAAI,CAAC,CAAC;iBAC1C,CAAC;aACH,CAAC,CAAC,CAAC;aACH,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;aAC/G,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;SACzD,CAAC;SACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;KAC5C,CAAC;KAEO,sCAAa,GAArB,UAAsB,KAAgC;SAAtD,iBAiFC;SAhFC,IAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAC9C,QAAQ,GAAG,IAAI,CAAC,IAAI,EACpB,IAAI,GAAG,IAAI,CAAC;SACd,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,WAAC,IAAG,QAAC,CAAC,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,EAA7B,CAA6B,CAAC,EAC5D,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,WAAC,IAAG,QAAC,YAAY,KAAK,CAAC,WAAW,EAA9B,CAA8B,CAAC,EAC3D,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAC,IAAG,YAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAA3B,CAA2B,CAAC,CAAC;SAE9D,cAAc;SACd,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aACrG,OAAO,CAAC,qBAAqB,CAAoB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;aAC3F,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,QAAQ;SACR,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aACzG,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;aACnE,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,OAAO;SACP,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aAC9G,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aACzB,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,WAAW;SACX,KAAK,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,UAAU,EAA7B,CAA6B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aAC5J,OAAO,CAAC,kBAAkB,CAAmB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,MAAM,CAAO,CAAC,CAAC,IAAK,CAAC,SAAS,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;aAC7J,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,aAAa;SACb,KAAK,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,YAAY,EAA/B,CAA+B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aACxJ,OAAO,CAAC,oBAAoB,CAAqB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;aAC3F,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,QAAQ;SACR,KAAK,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,oBAAa,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAzC,CAAyC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aACtJ,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC/E,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,QAAQ;SACR,KAAK,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAA1B,CAA0B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aACvI,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC7E,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,UAAU;SACV,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;cACjB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;cACnB,OAAO,CAAC,gBAAgB,EAAE,UAAC,CAAc,IAAK,QAAC,CAAC,CAAC,aAAa,EAAE,EAAlB,CAAkB,CAAC;cACjE,OAAO,CAAC,iBAAiB,EAAE,UAAC,CAAc,IAAK,QAAC,CAAC,aAAa,EAAE,EAAjB,CAAiB,CAAC;cACjE,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;cAC7B,EAAE,CAAC,OAAO,EAAE,UAAU,CAAc;aACnC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;aACpC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;kBACZ,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;kBAC7C,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;aACjD,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACL,UAAU;SACV,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;cACpB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;cACnB,OAAO,CAAC,aAAa,EAAE,UAAC,CAAyB,IAAK,QAAC,CAAC,CAAC,YAAY,EAAE,EAAjB,CAAiB,CAAC;cACxE,OAAO,CAAC,WAAW,EAAE,UAAC,CAAyB,IAAK,QAAC,CAAC,YAAY,EAAE,EAAhB,CAAgB,CAAC;cACrE,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;cAChC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAyB;aAC9C,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;aAClC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;kBACZ,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;kBACzC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;aAC1C,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACL,QAAQ;SACR,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;aACjF,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;iBAClC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;iBACzC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;qBACxC,QAAQ,CAAC,WAAW,EAAE,CAAC;iBACzB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,CAAC,CAAC,QAAQ,EAAE,CAAC;aACf,CAAC;aACD,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;KACL,CAAC;KAED,qCAAY,GAAZ,UAAa,IAAW;SACtB,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;SAC3C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC;cAC/B,KAAK,CAAC,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,UAAU,GAAG,CAAC,GAAG,IAAI,EAAzB,CAAyB,CAAC;cACrD,KAAK,CAAC,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,UAAU,GAAG,eAAa,IAAI,UAAO,GAAG,IAAI,EAAhD,CAAgD,CAAC,CAAC;KACpF,CAAC;KAEO,sCAAa,GAArB,UAAsB,OAAsB,EAAE,MAAM,EAAE,KAAoC,EAAE,KAAuB;SAAnH,iBAoJC;SApJqD,qBAAoC,GAApC,QAA0B,IAAI,CAAC,KAAK;SAAE,qBAAuB,GAAvB,gBAAuB;SACjH,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;SAC1E,IAAI,cAAc,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aACvD,OAAO,EAAE,KAAK;UACf,CAAC;cACD,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;aACb,EAAE,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;iBAC1G,CAAC,CAAC,eAAe,EAAE,CAAC;aACtB,CAAC;SACH,CAAC,CAAC,CAAC;SACH,IAAI,iBAAiB,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;cAC3E,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;aACb,EAAE,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;iBAC5D,CAAC,CAAC,eAAe,EAAE,CAAC;aACtB,CAAC;SACH,CAAC,CAAC;cACD,EAAE,CAAC,WAAW,EAAE,UAAC,CAAC;aACjB,IAAI,CAAC,GAAoB,EAAE,CAAC,KAAM,CAAC;aACnC,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,2DAA2D;aACtG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;aAC9C,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,uCAAuC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aACtE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACtD,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;aACjE,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5B,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;iBACxE,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,8CAA8C,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aAC/E,CAAC;SACH,CAAC,CAAC,CAAC;SACL,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;SACpE,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;aAC9D,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;UACvC,CAAC,CAAC;SAEH,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;aAC9B,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;kBACjD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;kBACtB,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;kBACjD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC1B,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5F,CAAC;SAED,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;aAC5B,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAC1D,CAAC;SAED,QAAQ,CAAC,KAAK,CAAC;aACb,KAAK,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,EAArD,CAAqD;aACtE,IAAI,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,aAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,EAAvB,CAAuB;aACvC,kBAAkB,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO;UACnC,CAAC,CAAC;SACH,QAAQ,CAAC,IAAI,CAAC;aACZ,OAAO,EAAE,UAAC,CAAC,IAAK,QAAG,KAAK,UAAI,CAAC,CAAC,QAAQ,IAAE,EAAE,UAAI,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,YAAY,GAAG,EAAE,CAAC,SAAI,CAAC,CAAC,cAAc,UAAI,KAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,YAAY,GAAE,EAAE,WAAI,CAAC,CAAC,UAAU,EAAE,GAAG,UAAU,GAAG,EAAE,EAAE,EAAnL,CAAmL;aACnM,KAAK,EAAE,UAAC,CAAC,IAAK,oBAAa,CAAC,CAAC,CAAC,EAAhB,CAAgB;aAC9B,SAAS,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI;UACvB,CAAC,CAAC;SACH,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC;aAClD,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;aACzB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;iBACvC,MAAM,CAAC,4BAA4B,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC;aACnF,CAAC;aACD,MAAM,CAAC,mBAAmB,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;SAEtD,IAAI,IAAI,GAAG,IAAI,CAAC;SAChB,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,YAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAA3B,CAA2B,CAAC,CAAC,IAAI,CAAC,UAAU,GAA2B;aAC5F,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;iBAC9C,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;aAC5D,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,QAAQ,GAAG,EAAE,CAAC;iBAClB,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;iBAExD,IAAI,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC;iBAC3C,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;aAC1H,CAAC;SACH,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,8CAA8C,EAAE,0CAA0C,CAAC,EAAE,UAAC,IAAI,EAAE,CAAyB,EAAE,IAAI;aAChL,IAAI,GAAG,GAAgB,IAAI,CAAC;aAC5B,EAAE,CAAC,CAAC,8CAA8C,IAAI,IAAI,CAAC,CAAC,CAAC;iBAC3D,IAAI,EAAE,GAAG,IAAI,CAAC,8CAA8C,CAAC,CAAC;iBAC9D,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACT,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBAC7B,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;qBACf,GAAG,CAAC,QAAQ,EAAE,CAAC;iBACjB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;iBACxE,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;aACtD,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;SAC7B,CAAC,CAAC,CAAC,CAAC;SAEJ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;aAE5B,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,YAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAA5B,CAA4B,CAAC,CAAC,IAAI,CAAC,UAAU,GAA2B;iBAC7F,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;iBACpD,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACtC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACT,IAAI,CAAC,IAAI,CAAC,UAAC,KAAkC;yBAC3C,IAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;yBAC1D,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;yBACjD,IAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;yBAC/E,IAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;yBACvE,KAAK,CAAC,KAAK,CAAC;6BACV,IAAI,EAAE,UAAC,CAAC,IAAK,SAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,EAAf,CAAe;6BAC5B,KAAK,EAAE,UAAC,CAAC,IAAK,SAAE,CAAC,SAAS,EAAE,GAAG,GAAG,EAApB,CAAoB;6BAClC,GAAG,EAAE,UAAC,CAAC,IAAK,QAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAArB,CAAqB;6BACjC,MAAM,EAAE,UAAC,CAAC,IAAK,SAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAb,CAAa;6BAC5B,kBAAkB,EAAE,UAAC,CAAC,IAAK,UAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAlB,CAAkB;0BAC9C,CAAC,CAAC,IAAI,CAAC;6BACN,KAAK,EAAE,UAAC,CAAC,IAAK,QAAG,CAAC,CAAC,GAAG,UAAK,CAAC,CAAC,CAAC,CAAE,EAAlB,CAAkB;6BAChC,UAAU,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,EAAL,CAAK;0BACzB,CAAC,CAAC;yBACH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;qBACxB,CAAC,CAAC,CAAC;iBACL,CAAC;aACH,CAAC,CAAC,CAAC;aACH,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,YAAY,EAA/B,CAA+B,CAAC,CAAC,IAAI,CAAC,UAAU,GAAgB;iBACrF,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;iBACpD,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACtC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACT,IAAI,CAAC,IAAI,CAAC,UAAC,KAAuB;yBAChC,IAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;yBAC1D,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;yBACjD,IAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;yBACxG,IAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;yBACvE,KAAK,CAAC,KAAK,CAAC;6BACV,IAAI,EAAE,UAAC,CAAC,EAAC,CAAC,IAAK,SAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAnB,CAAmB;6BAClC,KAAK,EAAE,UAAC,CAAC,EAAC,CAAC,IAAK,SAAE,CAAC,SAAS,EAAE,GAAG,GAAG,EAApB,CAAoB;6BACpC,GAAG,EAAE,UAAC,CAAC,IAAK,QAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAArB,CAAqB;6BACjC,MAAM,EAAE,UAAC,CAAC,IAAK,SAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAb,CAAa;0BAC7B,CAAC,CAAC,IAAI,CAAC;6BACN,KAAK,EAAE,UAAC,CAAC,EAAC,CAAC,IAAK,iBAAO,CAAC,UAAK,CAAC,CAAC,CAAC,CAAE,EAAlB,CAAkB;6BAClC,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,EAAH,CAAG;0BACrB,CAAC,CAAC;yBACH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;yBAEtB,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;yBACrC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;6BAClB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAC,IAAI,CAAC,CAAC;yBACnD,CAAC;yBACD,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;qBAChD,CAAC,CAAC,CAAC;iBACL,CAAC;aACH,CAAC,CAAC,CAAC;SACL,CAAC;SAED,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KAC3B,CAAC;KACH,qBAAC;AAAD,EAAC;AA/dY,uBAAc,iBA+d1B;AAuBD;KAAkC,gCAAsB;KA4BtD,sBAAoB,IAA0B,EAAE,MAAc,EAAU,MAAc,EAAE,OAAY;SAAZ,uBAAY,GAAZ,YAAY;SAClG,iBAAO,CAAC;SADU,SAAI,GAAJ,IAAI,CAAsB;SAA0B,WAAM,GAAN,MAAM,CAAQ;SA1B9E,YAAO,GAAG;aAChB,SAAS,EAAE,EAAE;aACb,UAAU,EAAE,CAAC;aACb,aAAa,EAAE,CAAC;aAChB,QAAQ,EAAE,EAAE;aACZ,UAAU,EAAE,GAAG;aACf,aAAa,EAAE,CAAC;aAChB,OAAO,EAAE,IAAI;aACb,SAAS,EAAE,KAAK;aAChB,iBAAiB,EAAE,IAAI;aAEvB,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE;aAE/B,QAAQ,EAAE,KAAK;aAEf,OAAO,EAAE,EAAE;aAEX,UAAU,EAAE,CAAC;UACd,CAAC;SAIM,sBAAiB,GAAG,CAAC,CAAC;SAE9B,cAAS,GAAG,EAAE,CAAC,GAAG,EAA8B,CAAC;SAI/C,eAAe;SACf,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAEnC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SAEtE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC/B,CAAC;KAED,sCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;KAC5E,CAAC;KAED,sBAAI,8BAAI;cAAR;aACE,MAAM,CAAU,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACpC,CAAC;;;QAAA;KAED,gCAAS,GAAT,UAAU,GAAU,EAAE,KAAS;SAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KAC5B,CAAC;KAED,wCAAiB,GAAjB,UAAkB,IAA0B;SAA5C,iBAYC;SAXC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,0BAA0B,EAAE,+BAA+B,CAAC,EAAE,IAAI,CAAC,CAAC;SACpF,CAAC;SACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB,IAAI,CAAC,EAAE,CAAC,0BAA0B,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAClF,IAAI,CAAC,EAAE,CAAC,+BAA+B,EAAE,KAAK,CAAC,WAAW,CAAC,UAAC,SAAS,EAAE,WAAW;aAChF,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;iBACxC,KAAI,CAAC,eAAe,EAAE,CAAC;aACzB,CAAC;aACD,KAAI,CAAC,aAAa,EAAE,CAAC;SACvB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACT,CAAC;KAED,oCAAa,GAAb,UAAc,WAAkB;SAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;SAC3B,MAAM,CAAC;aACL,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS;aAC7D,KAAK,YAAC,KAAY;iBAChB,MAAM,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACrD,CAAC;aACD,SAAS,YAAC,KAAY;iBACpB,MAAM,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACrD,CAAC;aACD,KAAK,YAAC,KAAY;iBAChB,MAAM,CAAC,CAAC,CAAC;aACX,CAAC;aACD,SAAS,YAAC,KAAY;iBACpB,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;aACtD,CAAC;aACD,QAAQ,YAAC,GAAgB;iBACvB,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACrD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;iBACnC,CAAC;iBACD,EAAE,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;qBAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;iBAClC,CAAC;iBACD,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAA8B,GAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;qBACnF,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;iBAClC,CAAC;iBACD,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACzC,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;aACzC,CAAC;aACD,MAAM,YAAC,GAAgB,EAAE,KAAgC,EAAE,IAAU,EAAE,OAAsC;iBAAtC,uBAAsC,GAAtC,cAAsC;iBAC3G,sCAAsC;iBACtC,IAAM,KAAK,GAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;iBAClC,IAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;iBACxC,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;iBACxC,EAAE,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC,CAAC;qBAClC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;qBAC9B,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;iBACpC,CAAC;iBACD,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aACjD,CAAC;aACD,YAAY,YAAC,GAAgB,EAAE,GAA4B,EAAE,IAAU,EAAE,OAAsC;iBAAtC,uBAAsC,GAAtC,cAAsC;iBAC7G,YAAY;aACd,CAAC;aACD,WAAW,YAAC,GAAgB;iBAC1B,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;aAC7D,CAAC;aACD,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAE1B,QAAQ,EAAE,UAAC,IAAsB,IAAK,cAAO,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,EAAhF,CAAgF;aAEtH,mDAAmD;aACnD,YAAY,EAAE,UAAC,GAAiB,IAAK,cAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,GAAG,CAAC,MAAM,YAAY,KAAK,CAAC,OAAO,EAA5G,CAA4G;aAEjJ,MAAM,EAAE,UAAC,GAAU,EAAE,QAAY,IAAK,QAAC,GAAG,IAAI,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,EAA1C,CAA0C;UACjF,CAAC;KACJ,CAAC;KAED,0CAAmB,GAAnB,UAAoB,CAAgB,EAAE,OAA+B,EAAE,MAAa;SAClF,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAClB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SAC1D,CAAC;SAED,iEAAiE;SACjE,8FAA8F;SAC9F,4DAA4D;SAC5D,IAAI,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC;aACjC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;SAC/C,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;SACxB,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;cACpC,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,cAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,EAAE,EAAnC,CAAmC,CAAC;cACtD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aACrB,CAAC,EAAE,CAAC;UACL,CAAC,CAAC;SACH,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SAC7B,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;cACxB,IAAI,CAAC;aACJ,CAAC,EAAE,CAAC;aACJ,KAAK,EAAE,UAAC,CAAC,IAAK,WAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAA7B,CAA6B;aAC3C,MAAM,EAAE,MAAM;UACf,CAAC,CAAC;KACP,CAAC;KAED,sCAAe,GAAf,UAAgB,QAAwB,EAAE,OAA+B,EAAE,MAAa;SAAxF,iBAmBC;SAlBC,IAAI,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC;SAC5B,QAAQ,CAAC,OAAO,CAAC,UAAC,CAAC;aACjB,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;aACjE,MAAM,IAAI,CAAC,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC;SACxC,CAAC,CAAC,CAAC;SACH,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SAElE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;SAC1E,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAClB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;iBACtG,CAAC,EAAE,CAAC;iBACJ,KAAK,EAAE,KAAK;iBACZ,MAAM,EAAE,MAAM;cACf,CAAC,CAAC;SACL,CAAC;SACD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aACxB,MAAM,EAAE,MAAM;UACf,CAAC,CAAC;KACL,CAAC;KAED,qCAAc,GAAd,UAAe,KAAuB,EAAE,QAAwB,EAAE,MAAiB,EAAE,MAAY,EAAE,OAA+B,EAAE,MAAc;SAAlJ,iBAwIC;SAvIC,IAAM,IAAI,GAAG,IAAI,CAAC;SAClB,IAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;SAE1D,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;SACzE,IAAI,eAAe,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;aACvD,OAAO,EAAE,SAAS;aAClB,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,EAAtC,CAAsC;UAC5D,CAAC,CAAC;SACH,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAClD,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAElD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;aAC/B,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,EAAtC,CAAsC;UAC5D,CAAC,CAAC;SAEH,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,QAAQ,EAAE,EAAb,CAAa,CAAC,EAAvC,CAAuC,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;SAC/H,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;cAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;aAClB,OAAO,EAAE,OAAO;aAChB,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,CAAE,IAAK,mBAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,EAA1C,CAA0C;UACpE,CAAC,CAAC;SACH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SACtB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAChC,KAAK,CAAC,IAAI,CAAC;aACT,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;UAC1B,CAAC,CAAC;SACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aAC3B,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,CAAE;iBAClB,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aACpD,CAAC;UACF,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAE;aACxB,IAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC7B,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;iBACxB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aACzC,CAAC,CAAC,CAAC;aAEH,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5B,IAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACnC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACN,CAAC,CAAC,IAAI,CAAC,UAAC,KAAuB;yBAC7B,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;yBACjE,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;yBACvD,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;yBACtB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;8BACxC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;8BACrC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;qBACxB,CAAC,CAAC,CAAC;iBACL,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC;aAC3C,CAAC;SACH,CAAC,CAAC,CAAC;SAEH,wDAAwD;SACxD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;aAClC,KAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC9B,CAAC,CAAC,CAAC;SAEH,sBAAsB,IAAyB,EAAE,KAAiC,EAAE,KAAY,EAAE,OAAqB,EAAE,YAAmB;aAC1I,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aAC5B,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,QAAQ,EAAE,EAAb,CAAa,CAAC,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;aACjI,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;iBACnC,OAAO,EAAE,QAAQ;cAClB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aAEtC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;iBACjC,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC;qBACd,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;iBAC/D,CAAC;cACF,CAAC,CAAC,IAAI,CAAC,UAAU,CAAc,EAAE,CAAC;iBAA3B,iBAMP;iBALC,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;qBACnC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,sBAAsB,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;iBAGtI,CAAC,CAAC,CAAC;aACL,CAAC,CAAC,CAAC;aACH,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;aAC5B,uBAAuB;SACzB,CAAC;SAED,uBAAuB,IAAyB,EAAE,KAAiC,EAAE,KAAY,EAAE,OAAqB,EAAE,YAAmB;aAC3I,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAc,EAAE,CAAC;iBAA3B,iBAIlD;iBAHC,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;qBACnC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,sBAAsB,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;iBACxJ,CAAC,CAAC,CAAC;aACL,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACZ,wBAAwB;SAC1B,CAAC;SAED,IAAI,CAAC,aAAa,GAAG,UAAU,UAAiB,EAAE,KAAY;aAAZ,qBAAY,GAAZ,YAAY;aAC5D,SAAS,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,YAAY;iBAC5C,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAC/B,IAAI,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;iBACxE,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBACtC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;qBAClB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;qBAC3B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;yBACV,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;qBAC1D,CAAC;qBAAC,IAAI,CAAC,CAAC;yBACN,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;qBAC3D,CAAC;iBACH,CAAC;aACH,CAAC,CAAC,CAAC;aAEH,kCAAkC;aAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC1B,CAAC,CAAC;SACF,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,aAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,EAAd,CAAc,CAAC,EAAvC,CAAuC,CAAC,CAAC;SAClH,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;aAC/C,OAAO,EAAE,KAAK;UACf,CAAC,CAAC;SACH,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAC9B,OAAO,EAAE,IAAI;UACd,CAAC,CAAC;SACH,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAC,CAAC,CAAC;SAClD,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,UAAC,UAAU;aACtC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;SACrC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,UAAC,UAAU;aAC7B,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SACtC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,UAAU;aACxB,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC9C,CAAC,CAAC,CAAC;SACH,KAAK,CAAC,IAAI,CAAC;aACT,YAAY,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,EAAH,CAAG;UACzB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,UAAC,CAAC,IAAK,YAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAzB,CAAyB,CAAC,CAAC;SACzD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aACxB,CAAC,EAAE,UAAC,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAlB,CAAkB;aAC5B,MAAM,EAAE,UAAC,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAtB,CAAsB;aACrC,KAAK,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,CAAE,IAAK,aAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAf,CAAe;aACpC,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,YAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,EAAtC,CAAsC;UAC1D,CAAC,CAAC;SACH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SAEtB,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KAC5B,CAAC;KAEO,sCAAe,GAAvB;SAAA,iBAeC;SAdC,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;SACzC,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACzC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;aAChD,MAAM,CAAC;SACT,CAAC;SACD,IAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SACrC,IAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,UAAC,CAAC,IAAK,QAAC,GAAG,KAAI,CAAC,OAAO,CAAC,SAAS,EAA1B,CAA0B,CAAC,CAAC;SACrF,IAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;SACrE,+DAA+D;SAC/D,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,mBAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAA5B,CAA4B,CAAC,CAAC,CAAC,CAAC;aACtD,MAAM,CAAC;SACT,CAAC;SACD,sDAAsD;SACtD,EAAE;KACJ,CAAC;KAED,6BAAM,GAAN,UAAO,SAAgB,EAAE,UAAkB;SAAlB,0BAAkB,GAAlB,kBAAkB;SACzC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;SAChE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,GAAG,SAAS,GAAG,6BAA6B,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;KAC1I,CAAC;KAEO,4CAAqB,GAA7B;SACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAnD,CAAmD,CAAC,EAA3E,CAA2E,CAAC,CAAC;KAC1H,CAAC;KAED,oCAAa,GAAb;SACE,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;aACjC,IAAI,CAAC,MAAM,EAAE,CAAC;SAChB,CAAC;SACD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;SACvC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;aACzB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;SACzF,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;aACxB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAlB,CAAkB,CAAC,CAAC;aAC7E,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAA3B,CAA2B,CAAC,CAAC;SAC7F,CAAC;KACH,CAAC;KAED,gCAAS,GAAT,UAAU,SAAgB,EAAE,KAAY;SAAZ,qBAAY,GAAZ,YAAY;SACtC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;SAClD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;SACrC,wBAAwB;SACxB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,yBAAyB,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KAC7F,CAAC;KAED,wCAAiB,GAAjB,UAAkB,KAAuB,EAAE,QAAwB,EAAE,MAAiB,EAAE,MAAY,EAAE,OAA+B;SAArI,iBA0CC;SAzCC,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAC,CAAC,EAAxD,CAAwD,CAAC,CAAC;SACrG,IAAI,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3D,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;aAC/B,OAAO,EAAE,YAAY;UACtB,CAAC,CAAC;SACH,OAAO,CAAC,IAAI,CAAC;aACX,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,EAAtE,CAAsE;UAC5F,CAAC,CAAC;SACH,IAAI,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;aACrD,IAAI,KAAK,GAAG,EAAE,CAAC;aACf,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,UAAU,EAAE,GAAG;iBAC9B,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;aAC1B,CAAC,CAAC,CAAC;aACH,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,UAAU,EAAE,GAAG,IAAK,QAAC;iBACtC,UAAU,EAAE,UAAU;iBACtB,IAAI,EAAE,GAAG;iBACT,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC;cACxB,CAAC,EAJqC,CAIrC,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,IAAI,IAAI,EAAd,CAAc,CAAC,CAAC;SACpC,CAAC,CAAC,CAAC;SACH,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aACjC,OAAO,EAAE,OAAO;aAChB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;UAC5B,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,UAAC,CAAC;aACpB,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SACrC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,UAAC,CAAC;aACpB,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;SACtC,CAAC,CAAC,CAAC;SACH,MAAM,CAAC,IAAI,CAAC;aACV,YAAY,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,UAAU,EAAZ,CAAY;UAClC,CAAC,CAAC;SACH,MAAM,CAAC,IAAI,CAAC;aACV,EAAE,EAAE,UAAC,CAAK;iBACR,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjE,CAAC;aACD,EAAE,EAAE,UAAC,CAAK;iBACR,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjE,CAAC;UACF,CAAC,CAAC;SACH,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SAEvB,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KAC1B,CAAC;KAED,mCAAY,GAAZ,UAAa,IAAW;SAAxB,iBAoBC;SAnBC,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;SAC3C,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAC1C,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACrF,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,0BAAuB,UAAU,QAAI,CAAC,CAAC;SAC/D,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACjB,kBAAkB;aAClB,IAAI,GAAI,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;SAC/C,CAAC;SACD,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAChE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;SACvB,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;aAC/B,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,UAAU,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,SAAS,EAApE,CAAoE;aAC3F,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,UAAU,GAAG,YAAY,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,EAAnD,CAAmD;UAC3E,CAAC,CAAC;SAGH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAC9B,mDAAmD;SACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC1B,CAAC;KAEO,uCAAgB,GAAxB;SAAA,iBAYC;SAXC,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;SAC3C,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;aACpB,MAAM,CAAC;SACT,CAAC;SACD,IAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;SACpC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAE1C,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;aAC9D,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,UAAU,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,SAAS,EAApE,CAAoE;aAC3F,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,UAAU,GAAG,YAAY,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,EAAnD,CAAmD;UAC3E,CAAC,CAAC;KACL,CAAC;KAED;;QAEG;KACH,6BAAM,GAAN;SAAA,iBAqDC;SApDC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACvC,IAAI,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAnB,CAAmB,CAAC,IAAI,CAAC,CAAC;SACjE,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;SAC/C,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,GAAG,KAAI,CAAC,OAAO,CAAC,SAAS,EAA1B,CAA0B,CAAC,CAAC;SAC/E,IAAI,WAAW,GAAG,UAAC,KAAc;aAC/B,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC/D,MAAM,CAAC,KAAK,CAAC;aACf,CAAC;aACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;SACjF,CAAC,CAAC;SACF,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,kBAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAzB,CAAyB,CAAC,CAAC;SAC5D,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAGpD,oFAAoF;SACpF,IAAI,MAAM,GAAG,CAAC,EACZ,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;aACzB,IAAI,CAAC,GAAG,MAAM,CAAC;aACf,MAAM,IAAI,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC;aAClC,IAAI,EAAE,GAAG,CAAC,EACR,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,QAAQ,EAAE,EAAb,CAAa,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC;iBACrD,IAAI,CAAC,GAAG,EAAE,CAAC;iBACX,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC;iBACtG,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAA2B,CAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;qBACtG,EAAE,IAAI,KAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAA2B,CAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBAC/E,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC;aACX,CAAC,CAAC,CAAC;aACL,MAAM,IAAI,EAAE,CAAC;aACb,MAAM,CAAC;iBACL,KAAK,EAAE,CAAC;iBACR,MAAM,EAAE,MAAM;iBACd,KAAK,EAAE,EAAE;cACV,CAAC;SACJ,CAAC,CAAC,CAAC;SAEL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aACd,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;aACpD,MAAM,EAAE,MAAM;UACf,CAAC,CAAC;SACH,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SAIhD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACxC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAClB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACvD,CAAC;SAGD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SACtE,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;KACnE,CAAC;KACH,mBAAC;AAAD,EAAC,CA1eiC,KAAK,CAAC,gBAAgB,GA0evD;AA1eY,qBAAY,eA0exB;AAGD;KAAwC,sCAAsB;KAqB5D,4BAAoB,IAA0B,EAAE,MAAc,EAAU,MAAc,EAAE,OAAY;SAAZ,uBAAY,GAAZ,YAAY;SAClG,iBAAO,CAAC;SADU,SAAI,GAAJ,IAAI,CAAsB;SAA0B,WAAM,GAAN,MAAM,CAAQ;SApB9E,YAAO,GAAG;aAChB,SAAS,EAAE,EAAE;aACb,UAAU,EAAE,CAAC;aACb,aAAa,EAAE,CAAC;aAChB,QAAQ,EAAE,EAAE;aACZ,UAAU,EAAE,GAAG;aACf,aAAa,EAAE,CAAC;aAChB,OAAO,EAAE,IAAI;aAEb,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE;aAE/B,QAAQ,EAAE,KAAK;aAEf,UAAU,EAAE,CAAC;UACd,CAAC;SAIF,cAAS,GAAG,EAAE,CAAC,GAAG,EAA8B,CAAC;SAI/C,eAAe;SACf,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAEnC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SAEhF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC/B,CAAC;KAED,4CAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;KAC1D,CAAC;KAED,sBAAI,oCAAI;cAAR;aACE,MAAM,CAAU,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACpC,CAAC;;;QAAA;KAED,sCAAS,GAAT,UAAU,GAAU,EAAE,KAAS;SAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KAC5B,CAAC;KAED,yCAAY,GAAZ,UAAa,IAAY;SACvB,YAAY;KACd,CAAC;KAED,mCAAM,GAAN,UAAO,SAAgB,EAAE,UAAkB;SAAlB,0BAAkB,GAAlB,kBAAkB;SACzC,YAAY;KACd,CAAC;KAED,8CAAiB,GAAjB,UAAkB,IAA0B;SAC1C,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,0BAA0B,EAAE,+BAA+B,CAAC,EAAE,IAAI,CAAC,CAAC;SACpF,CAAC;SACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB,IAAI,CAAC,EAAE,CAAC,0BAA0B,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAClF,gGAAgG;KAClG,CAAC;KAED,0CAAa,GAAb,UAAc,WAAkB;SAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;SAC3B,MAAM,CAAC;aACL,MAAM,EAAE,SAAS;aACjB,KAAK,YAAC,KAAY;iBAChB,MAAM,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACrD,CAAC;aACD,SAAS,YAAC,KAAY;iBACpB,MAAM,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACrD,CAAC;aACD,KAAK,YAAC,KAAY;iBAChB,MAAM,CAAC,CAAC,CAAC;aACX,CAAC;aACD,SAAS,YAAC,KAAY;iBACpB,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;aACtD,CAAC;aACD,QAAQ,YAAC,GAAgB;iBACvB,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACrD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;iBACnC,CAAC;iBACD,EAAE,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;qBAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;iBAClC,CAAC;iBACD,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAA8B,GAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;qBACnF,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;iBAClC,CAAC;iBACD,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACzC,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;aACzC,CAAC;aACD,MAAM,YAAC,GAAgB,EAAE,KAAgC,EAAE,IAAU,EAAE,OAAsC;iBAAtC,uBAAsC,GAAtC,cAAsC;iBAC3G,YAAY;aACd,CAAC;aACD,YAAY,YAAC,GAAgB,EAAE,GAA4B,EAAE,IAAU,EAAE,OAAsC;iBAAtC,uBAAsC,GAAtC,cAAsC;iBAC7G,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;iBACxC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aACrD,CAAC;aACD,WAAW,YAAC,GAAgB;iBAC1B,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;aAC7D,CAAC;aACD,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAE1B,QAAQ,EAAE,UAAC,IAAsB,IAAK,WAAI,EAAJ,CAAI;aAE1C,mDAAmD;aACnD,YAAY,EAAE,UAAC,GAAiB,IAAK,cAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,GAAG,CAAC,MAAM,YAAY,KAAK,CAAC,OAAO,EAA5G,CAA4G;aAEjJ,MAAM,EAAE,UAAC,GAAU,EAAE,QAAY,IAAK,QAAC,GAAG,IAAI,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,EAA1C,CAA0C;UACjF,CAAC;KACJ,CAAC;KAGD,2CAAc,GAAd,UAAe,GAA6B,EAAE,QAAwB,EAAE,MAAiB,EAAE,MAAY,EAAE,OAA+B,EAAE,MAAc;SAAxJ,iBA8BC;SA7BC,IAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;SAC1D,GAAG,CAAC,IAAI,EAAE,CAAC;SAGX,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO,EAAE,CAAC;aAE1B,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;iBACxB,GAAG,CAAC,IAAI,EAAE,CAAC;iBACX,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBAElC,GAAG,CAAC,IAAI,EAAE,CAAC;iBACX,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;iBAC1B,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAC,KAAK,EAAC,CAAC;qBACxB,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;yBACd,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC3E,CAAC;iBACH,CAAC,CAAC,CAAC;iBACH,GAAG,CAAC,OAAO,EAAE,CAAC;iBAEd,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC;qBAChC,GAAG,CAAC,IAAI,EAAE,CAAC;qBACX,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACtC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;qBAChD,GAAG,CAAC,OAAO,EAAE,CAAC;iBAChB,CAAC,CAAC,CAAC;iBACH,GAAG,CAAC,OAAO,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC;SACL,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KAED,8CAAiB,GAAjB,UAAkB,GAA6B,EAAE,QAAwB,EAAE,MAAiB,EAAE,MAAY,EAAE,OAA+B;SAA3I,iBA4BC;SA3BC,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAC,CAAC,EAAxD,CAAwD,CAAC,CAAC;SACrG,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC;SAC3B,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC;aACtB,GAAG,CAAC,IAAI,EAAE,CAAC;aACX,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aAEhE,IAAI,KAAK,GAAG,EAAE,CAAC;aACf,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,UAAU,EAAE,GAAG;iBAClC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;aAC1B,CAAC,CAAC,CAAC;aACH,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,UAAU,EAAE,GAAG,IAAK,QAAC;iBACjD,UAAU,EAAE,UAAU;iBACtB,IAAI,EAAE,GAAG;iBACT,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC;cACxB,CAAC,EAJgD,CAIhD,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,IAAI,IAAI,EAAd,CAAc,CAAC,CAAC;aAElC,GAAG,CAAC,SAAS,EAAE,CAAC;aAChB,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;iBACjB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;iBAC7E,GAAG,CAAC,MAAM,CAAC,KAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACrG,CAAC,CAAC,CAAC;aACH,GAAG,CAAC,MAAM,EAAE,CAAC;aAEb,GAAG,CAAC,OAAO,EAAE,CAAC;SAChB,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KAED;;QAEG;KACH,mCAAM,GAAN;SAAA,iBAiDC;SAhDC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACvC,IAAI,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAnB,CAAmB,CAAC,IAAI,CAAC,CAAC;SACjE,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;SAC/C,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,GAAG,KAAI,CAAC,OAAO,CAAC,SAAS,EAA1B,CAA0B,CAAC,CAAC;SAC/E,IAAI,WAAW,GAAG,UAAC,KAAc;aAC/B,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC/D,MAAM,CAAC,KAAK,CAAC;aACf,CAAC;aACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;SACjF,CAAC,CAAC;SACF,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,kBAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAzB,CAAyB,CAAC,CAAC;SAC5D,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAGpD,oFAAoF;SACpF,IAAI,MAAM,GAAG,CAAC,EACZ,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;aACzB,IAAI,CAAC,GAAG,MAAM,CAAC;aACf,MAAM,IAAI,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC;aAClC,IAAI,EAAE,GAAG,CAAC,EACR,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,QAAQ,EAAE,EAAb,CAAa,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC;iBACrD,IAAI,CAAC,GAAG,EAAE,CAAC;iBACX,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC;iBACtG,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;qBAC9E,EAAE,IAAI,KAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBACpD,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC;aACX,CAAC,CAAC,CAAC;aACL,MAAM,IAAI,EAAE,CAAC;aACb,MAAM,CAAC;iBACL,KAAK,EAAE,CAAC;iBACR,MAAM,EAAE,MAAM;iBACd,KAAK,EAAE,EAAE;cACV,CAAC;SACJ,CAAC,CAAC,CAAC;SAEL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aACd,KAAK,EAAE,MAAM;aACb,MAAM,EAAE,MAAM;UACf,CAAC,CAAC;SAEH,IAAM,GAAG,GAAuB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACpE,GAAG,CAAC,IAAI,GAAG,sBAAsB,CAAC;SAClC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;SACzB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,EAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAEvD,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SACpE,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;KACjE,CAAC;KACH,yBAAC;AAAD,EAAC,CAlOuC,KAAK,CAAC,gBAAgB,GAkO7D;AAlOY,2BAAkB,qBAkO9B;;;;;;;AC34CD;;;;IAIG;;AAEH,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,aAAa,uBAAW,EAAiB,CAAC,CAAC;AAGlD,qBAA2B,KAAK,EAAE,IAAI,EAAE,gBAAwB;KAAxB,gCAAwB,GAAxB,wBAAwB;KAC9D,MAAM,CAAC,yDAAyD,GAAG,KAAK,GAAG,SAAS;SAClF,gCAAgC;SAChC,IAAI,GAAG,qEAAqE;SAC5E,4EAA4E;SAC5E,iFAAiF,CAAC;AACtF,EAAC;AANe,mBAAU,aAMzB;AAED;;;;;;IAMG;AACH,oBAA0B,WAA6B,EAAE,KAAY,EAAE,IAAW;KAChF,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAU,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;KACpD,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;UACzC,IAAI,CAAC;SACJ,OAAO,EAAE,WAAW;MACrB,CAAC,CAAC,KAAK,CAAC;SACP,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI;SACrB,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI;MACpB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;KACnC;SACE,6EAA6E;SAC7E,qEAAqE;SACrE,6CAA6C;SAC7C,MAAM,CAAC,KAAK,CAAC;aACX,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,GAAS,EAAE,CAAC,KAAM,CAAC,EAAE,CAAC,GAAG,IAAI;aACjE,GAAG,EAAG,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAS,EAAE,CAAC,KAAM,CAAC,EAAE,CAAC,GAAG,IAAI;UACjE,CAAC,CAAC;KACL,CAAC;KACD,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;KACpF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE;SACnB,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;aAC1B,MAAM,CAAC,MAAM,EAAE,CAAC;SAClB,CAAC;KACH,CAAC,CAAC,CAAC;KACH,IAAI,IAAI,GAAqB,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;KACtE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SACT,IAAI,CAAC,KAAK,EAAE,CAAC;KACf,CAAC;KACD,MAAM,CAAC,MAAM,CAAC;AAEhB,EAAC;AA9Be,kBAAS,YA8BxB;AAED;;;;IAIG;AACH,2BAAiC,MAAmB,EAAE,OAAkC;KACtF,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,oDACR,MAAM,CAAC,KAAK,6GACX,MAAM,CAAC,KAAK,gEAC9B,MAAM,CAAC,WAAW,oBAAiB,CAAC,CAAC;KAE5D,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACpE,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACrE,IAAI,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SAChE,MAAM,CAAC,WAAW,CAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAC,CAAC,CAAC;SACtF,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;KAEH,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;AACL,EAAC;AAjBe,yBAAgB,mBAiB/B;AAGD;;;;IAIG;AACH,6BAAmC,MAAuB,EAAE,OAAkC,EAAE,SAAwB;KAAxB,yBAAwB,GAAxB,cAAwB;KACtH,IAAI,CAAC,GAAG,8CAAuC,MAAM,CAAC,OAAO,EAAE,0DAA+C,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,0BAA0B,GAAG,EAAE,WAAO,CAAC;KAC5K,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;SACzB,CAAC,IAAI,mCAAmC,GAAC,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,6BAAkB,CAAC,SAAI,EAAvB,CAAuB,CAAC,GAAC,aAAa,CAAC;KACvG,CAAC;KAED,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAAC;KAElE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACpE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAEzB,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;KAEH,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;AACL,EAAC;AAlBe,2BAAkB,qBAkBjC;AAED;;;;;IAKG;AACH,2BAAiC,MAAmB,EAAE,OAAkC,EAAE,QAA8B;KACtH,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,sIAAsI,CAAC,CAAC;KAEjL,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC7C,IAAI,MAAM,GAA0B,EAAE,CAAC,KAAK,CAAC,MAAO,CAAC,KAAK,CAAC;SAC3D,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;aACvB,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aACzE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBACZ,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;aAC9B,CAAC;aACD,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACxC,CAAC;KACH,CAAC,CAAC,CAAC;KAEH;SACE,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SAClE,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACrE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;aACtB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBACZ,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;aAC9B,CAAC;aACD,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACxC,CAAC;SACD,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC;KAED,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KAChE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;KAE5C,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;AACL,EAAC;AAhCe,yBAAgB,mBAgC/B;AAED;;;;IAIG;AACH,gCAAsC,MAAwB,EAAE,OAAkC;KAChG,IAAI,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,EAC/B,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAAC,CAAE,EAArC,CAAqC,CAAC,CAAC;KAElF,uBAAuB;KACvB,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;KAE/D,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;KAEnE,sCAAsC;KACtC,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAClE,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC7C,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;UACrB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;SACtB,IAAI,EAAE,QAAQ;SACd,KAAK,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,MAAM,EAAR,CAAQ;SACtB,GAAG,EAAE,CAAC;SACN,GAAG,EAAE,GAAG;SACR,IAAI,EAAE,CAAC;MACR,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;SACxB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;SACvB,MAAM,EAAE,CAAC;KACX,CAAC,CAAC,CAAC;KAEH,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;UACnC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,aAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAvB,CAAuB,CAAC;UAC7C,KAAK,CAAC,kBAAkB,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,CAAC,KAAK,EAAX,CAAW,CAAC,CAAC;KAEjD,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,CAAC,KAAK,EAAX,CAAW,CAAC,CAAC;KAElD;SACE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,YAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,EAAtB,CAAsB,CAAC,CAAC;KAClF,CAAC;KAED,MAAM,EAAE,CAAC;KAET,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACnC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAC3B,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,QAAQ,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAA3B,CAA2B,CAAC,CAAC;SACxD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,MAAM,EAAR,CAAQ,CAAC,CAAC;SACzD,MAAM,EAAE,CAAC;KACV,CAAC,CAAC,CAAC;KACJ,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC/B,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,MAAM,EAAR,CAAQ,CAAC,CAAC,CAAC;SACjD,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;AACL,EAAC;AAjDe,8BAAqB,wBAiDpC;AAED;;;;IAIG;AACH,uBAAsB,OAAmC,EAAE,QAAgB;KAAhB,wBAAgB,GAAhB,gBAAgB;KACzE,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACxC,EAAC;AAED,qBAAoB,IAAY;KAC9B,MAAM,CAAC,UAAS,CAAC,EAAE,CAAC;SAClB,IAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAChB,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;SACf,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,CAAC;SACZ,CAAC;SACD,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC;SACX,CAAC;SACD,MAAM,CAAC,CAAC,CAAC;KACX,CAAC,CAAC;AACJ,EAAC;AAED;;;;IAIG;AACH,gCAA+B,MAA8B,EAAE,OAAkC;KAC/F,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;KACnC,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,6HAA6H,CAAC,CAAC;KAE7K,uBAAuB;KACvB,IAAM,MAAM,GAAG,MAAM,CAAC,cAAc,EAClC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;KACjC,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;SAC/C,MAAM,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC;KAC1G,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;KAE7B,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACjE,IAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC/C,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;KACpD,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;KACzE,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;SACtB,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3B,MAAM,EAAE,CAAC;KACb,CAAC,CAAC,CAAC;KAEH;SACE,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,yBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,GAAG,gBAAgB,EAAvE,CAAuE,CAAC,CAAC;SAChH,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,EAA1B,CAA0B,CAAC,CAAC;KACjF,CAAC;KAED,MAAM,EAAE,CAAC;KAET,IAAI,YAAY,GAAG,IAAI,CAAC;KAExB;SACE,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,yBAAkB,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,GAAG,gBAAgB,EAAxE,CAAwE,CAAC,CAAC;SACjH,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;aAClC,YAAY,GAAG,CAAC,YAAY,CAAC;aAC7B,MAAM,CAAC,OAAO,CAAC,UAAC,GAAG,IAAK,UAAG,CAAC,SAAS,GAAG,YAAY,EAA5B,CAA4B,CAAC,CAAC;aACtD,MAAM,EAAE,CAAC;aACT,eAAe,EAAE,CAAC;SACpB,CAAC,CAAC,CAAC;KACL,CAAC;KAED,eAAe,EAAE,CAAC;KAElB,oBAAoB,MAAM;SACxB,YAAY,CAAC,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;SACpF,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC3B,CAAC;KAED,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,UAAU,CAAC,GAAG,CAAC,CAAC;SAChB,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;KACH,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACjC,MAAM,CAAC,OAAO,CAAC,WAAC,IAAI,QAAC,CAAC,SAAS,GAAG,IAAI,EAAlB,CAAkB,CAAC,CAAC;SACxC,MAAM,EAAE,CAAC;SACT,UAAU,CAAC,IAAI,CAAC,CAAC;KACnB,CAAC,CAAC,CAAC;KACH,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC9B,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,SAAS,EAAX,CAAW,CAAC,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC;SAC1D,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;aAC/B,CAAC,GAAG,EAAE,CAAC;SACT,CAAC;SACD,UAAU,CAAC,CAAC,CAAC,CAAC;SACd,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;AACL,EAAC;AAED;;;;IAIG;AACH,2BAA0B,MAAyB,EAAE,OAAkC;KACrF,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,UAAU,GAAG,GAAG,KAAK,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;KAC3F,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;SACf,GAAG,GAAG,EAAE,CAAC;KACX,CAAC;KAED,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,EACtC,gGAAoF,CAAC,GAAG,YAAY,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,+EAC1F,CAAC,GAAG,YAAY,MAAM,CAAC,GAAG,mBAAmB,GAAG,EAAE,yFAA8E,UAAU,GAAG,mBAAmB,GAAG,EAAE,uCACpM,CAAC,CAAC;KAET,oBAAoB,MAAM;SACxB,YAAY,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC;SACjD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC3B,CAAC;KAED,oBAAoB,KAAK;SACvB,WAAW;SACX,IAAI,MAAM,GAAO,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACvE,IAAI,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAClG,EAAE,CAAC,CAAC,aAAa,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC;aACnC,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;SAC7C,CAAC;SACD,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC;aAClB,UAAU,CAAC,MAAM,CAAC,CAAC;aACnB,MAAM,CAAC;SACT,CAAC;SACD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;aAChC,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aACxF,EAAE,CAAC,CAAC,OAAO,IAAI,MAAM,KAAK,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;iBAC5D,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;aAC9B,CAAC;aACD,UAAU,CAAC,MAAM,CAAC,CAAC;SACrB,CAAC;KAEH,CAAC;KAED,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KACpE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;KAE5D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACnC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;SACjE,MAAM,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,YAAY,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;SACpH,MAAM,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;SAC7G,UAAU,CAAC,GAAG,CAAC,CAAC;SAChB,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SAC1D,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SACrE,UAAU,CAAC,IAAI,CAAC,CAAC;KACnB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC/B,UAAU,CAAC,IAAI,CAAC,CAAC;SACjB,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;AACL,EAAC;AAGD;;;;IAIG;AACH,4BAA2B,MAA0B,EAAE,OAAkC;KACvF,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;KAE7B,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,EACtC,yEAAgE,GAAG,KAAK,IAAI,GAAG,mBAAmB,GAAE,EAAE,0GACtC,GAAG,KAAK,IAAI,GAAG,mBAAmB,GAAE,EAAE,sGACrC,GAAG,KAAK,KAAK,GAAG,mBAAmB,GAAE,EAAE,8BACnG,CAAC,CAAC;KAET,oBAAoB,MAAM;SACxB,YAAY,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC;SACzC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC3B,CAAC;KAED,oBAAoB,KAAK;SACvB,WAAW;SACX,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACtF,IAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACxF,UAAU,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,GAAG,KAAK,GAAE,IAAI,CAAC,CAAC,CAAC;KACtD,CAAC;KAED,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KAEjE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACnC,UAAU,CAAC,GAAG,CAAC,CAAC;SAChB,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,IAAM,CAAC,GAAG,GAAG,KAAK,IAAI,GAAG,MAAM,GAAE,MAAM,CAAC,GAAG,CAAC,CAAC;SAC7C,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE;aAC1D,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;SAC1B,CAAC,CAAC,CAAC;SACH,UAAU,CAAC,IAAI,CAAC,CAAC;KACnB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC/B,UAAU,CAAC,IAAI,CAAC,CAAC;SACjB,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;AACL,EAAC;AAGD;;;;IAIG;AACH,+BAAqC,MAAyB,EAAE,OAAkC;KAChG,IAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;KAC/B,IAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,aAAa,EAC7C,oKACkF,MAAM,CAAC,SAAS,EAAE,oBAAiB,CAAC,CAAC;KAEzH,oBAAoB,MAAM;SACxB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC3B,CAAC;KAED;SACE,WAAW;SACX,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACzD,UAAU,CAAC,MAAM,CAAC,CAAC;KACrB,CAAC;KAED,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACnC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;SACjD,UAAU,CAAC,GAAG,CAAC,CAAC;SAChB,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;SAC/E,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;KAChD,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC/B,UAAU,EAAE,CAAC;SACb,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;AACL,EAAC;AA7Be,6BAAoB,uBA6BnC;AAED;;;;;IAKG;AACH,4BAA2B,MAAyB,EAAE,OAAyB,EAAE,IAA0B;KACzG,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EACpC,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,EACzB,QAAQ,GAAG,MAAM,CAAC,kBAAkB,EAAE,EACtC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAC9B,GAAG,GAA2B,GAAG,CAAC,KAAK,EAAE,EACzC,SAAS,GAAG,SAAS,CAAC;KAExB,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;UACxC,IAAI,CAAC;SACJ,OAAO,EAAE,UAAU;MACpB,CAAC,CAAC,KAAK,CAAC;SACP,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI;SACrB,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI;MACpB,CAAC;UACD,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,iCAAiC,CAAC,CAAC,CAAC;KAEzE,sBAAsB,QAAgC,EAAE,MAAmC;SACzF,GAAG,GAAG,QAAQ,CAAC;SACf,SAAS,GAAG,MAAM,CAAC;SACnB,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SAEhH,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC5B,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC3B,CAAC;KAED,IAAI,aAAa,GAAG;SAClB,QAAQ,EAAE,YAAY;SACtB,eAAe,EAAE,SAAS;MAC3B,CAAC;KACF,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;KAC7C,IAAI,MAAM,GAAG,aAAa,CAAC,MAAM,CAAc,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;KAG1I,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC9B,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SAC1C,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;KACH,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACvB,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;SACzC,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;KACH,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACjC,GAAG,GAAG,QAAQ,CAAC;SACf,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;SAClB,SAAS,GAAG,EAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAC,CAAC;SAC7C,SAAS,GAAG,SAAS,CAAC;SACtB,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SAC7B,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC;SAC3C,MAAM,GAAG,aAAa,CAAC,MAAM,CAAc,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;KACxI,CAAC,CAAC,CAAC;AACL,EAAC;AAGD;;;;IAIG;AACH,uCAAsC,MAAoC,EAAE,OAAyB;KACnG,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;KAEnC,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;KAE/D,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,0BAA0B,EAAE,uJAAuJ,CAAC,CAAC;KAErN,IAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EACnC,MAAM,GAAG,MAAM,CAAC,cAAc,EAC9B,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;KAEjC,IAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;SACxC,MAAM,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC;KACjI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;KAE7B,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAChE,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC7C,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;SAChE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3B,MAAM,EAAE,CAAC;KACX,CAAC,CAAC,CAAC;KACH,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;UACrB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;SACtB,IAAI,EAAE,QAAQ;SACd,KAAK,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO;SACrB,GAAG,EAAE,CAAC;SACN,GAAG,EAAE,GAAG;SACR,IAAI,EAAE,CAAC;MACR,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;SACxB,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;SACtB,MAAM,EAAE,CAAC;KACX,CAAC,CAAC,CAAC;KACH,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;KACtG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;KAEzE;SACE,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,yBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,GAAG,gBAAgB,EAAvE,CAAuE,CAAC,CAAC;SAChH,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,YAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,EAArB,CAAqB,CAAC,CAAC;SAC/E,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,EAA1B,CAA0B,CAAC,CAAC;KACjF,CAAC;KAED,MAAM,EAAE,CAAC;KAET,IAAI,YAAY,GAAG,IAAI,CAAC;KAExB;SACE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,yBAAkB,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,GAAG,gBAAgB,EAAxE,CAAwE,CAAC,CAAC;SAClH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;aACnC,YAAY,GAAG,CAAC,YAAY,CAAC;aAC7B,MAAM,CAAC,OAAO,CAAC,UAAC,GAAG,IAAK,UAAG,CAAC,SAAS,GAAG,YAAY,EAA5B,CAA4B,CAAC,CAAC;aACtD,MAAM,EAAE,CAAC;aACT,eAAe,EAAE,CAAC;SACpB,CAAC,CAAC,CAAC;KACL,CAAC;KAED,eAAe,EAAE,CAAC;KAElB,oBAAoB,MAAM;SACxB,YAAY,CAAC,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;SACpF,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC3B,CAAC;KAED,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACnC,UAAU,CAAC,GAAG,CAAC,CAAC;SAChB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACzB,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,MAAM,CAAC,OAAO,CAAC,WAAC;aACd,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;aACnB,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;SACf,CAAC,CAAC,CAAC;SACH,MAAM,EAAE,CAAC;SACT,UAAU,CAAC,IAAI,CAAC,CAAC;SACjB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,cAAM,QAAC,EAAD,CAAC,CAAC,CAAC,CAAC;KACzC,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC/B,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,SAAS,EAAX,CAAW,CAAC,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC;SAC1D,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;aAC/B,CAAC,GAAG,EAAE,CAAC;SACT,CAAC;SACD,UAAU,CAAC,CAAC,CAAC,CAAC;SACd,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,GAAG,GAAG,EAAb,CAAa,CAAC,CAAC,CAAC;SACpD,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;AACL,EAAC;AAED;;;IAGG;AACH;KACE,MAAM,CAAC;SACL,MAAM,EAAE,gBAAgB;SACxB,WAAW,EAAE,qBAAqB;SAClC,MAAM,EAAE,iBAAiB;SACzB,OAAO,EAAE,4BAA4B;SACrC,OAAO,EAAE,iBAAiB;MAC3B,CAAC;AACJ,EAAC;AARe,sBAAa,gBAQ5B;;;;;;;AChmBD;;IAEG;;AAEH,4CAA2C;AAC3C,KAAO,EAAE,uBAAW,CAAI,CAAC,CAAC;AAC1B,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAGlC,gBAAe,CAAS,EAAE,GAAW,EAAE,GAAW;KAChD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACzC,EAAC;AAED;KAeE,uBAAoB,MAAmB,EAAU,MAA8B,EAAU,QAAgC,EAAU,UAA+B,EAAU,WAA8B,EAAE,OAAiB;SAAjB,uBAAiB,GAAjB,YAAiB;SAAzM,WAAM,GAAN,MAAM,CAAa;SAAU,WAAM,GAAN,MAAM,CAAwB;SAAU,aAAQ,GAAR,QAAQ,CAAwB;SAAU,eAAU,GAAV,UAAU,CAAqB;SAAU,gBAAW,GAAX,WAAW,CAAmB;SAdlM,YAAO,GAAG;aAChB,KAAK,EAAE,GAAG;aACV,MAAM,EAAE,GAAG;aACX,WAAW,EAAE,CAAC;aACd,WAAW,EAAE,CAAC;aACd,aAAa,EAAE,EAAE;aACjB,MAAM,EAAE,CAAC;aACT,QAAQ,EAAE,UAAC,CAAC,IAAG,QAAC,EAAD,CAAC;aAChB,eAAe,EAAE,IAAI;aACrB,eAAe,EAAE,QAAQ,CAAC,iBAAiB;UAC5C,CAAC;SAKA,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACnC,sBAAsB;SACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;SAE7B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KAChC,CAAC;KAED,sBAAI,gCAAK;cAAT;aACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACrB,CAAC;;;QAAA;KAED,sBAAI,iCAAM;cAAV;aACE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;SAC9B,CAAC;;;QAAA;KAEO,6BAAK,GAAb,UAAc,KAAwB;SACpC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAC1B,IAAI,GAAG,IAAI,CAAC;SACd,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SAGtD,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;SACtD,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;SAElE,KAAK,CAAC,IAAI,EAAG,CAAC,SAAS,GAAG,u2BAkBtB,OAAO,CAAC,KAAK,oBAAa,OAAO,CAAC,MAAM,kCACxC,OAAO,CAAC,WAAW,gBAAS,OAAO,CAAC,WAAW,gBAAS,OAAO,CAAC,WAAW,iBAAS,KAAK,GAAC,OAAO,CAAC,WAAW,0EAChG,OAAO,CAAC,WAAW,mBAAY,KAAK,wDACjD,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,CAAC,kBAAS,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,CAAC,iBAAS,OAAO,CAAC,WAAW,iBAAS,KAAK,GAAC,OAAO,CAAC,WAAW,0EAC9I,OAAO,CAAC,WAAW,mBAAY,KAAK,8BAAoB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,EAAE,wDAClG,OAAO,CAAC,WAAW,SAAI,OAAO,CAAC,WAAW,kMAOvB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,EAAE,2YAMrC,KAAK,8sBAkBtD,CAAC;SAGT,IAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;cACpN,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;SACrB,IAAM,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;cAClD,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;SAErB,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;cAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;cACxC,EAAE,CAAC,MAAM,EAAE;aACV,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;aAC3B,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC9B,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACpB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;aAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;aACzB,SAAS,EAAE,CAAC;aACZ,aAAa,EAAE,CAAC;SAClB,CAAC,CAAC,CAAC;SACL,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;cAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;cACxC,EAAE,CAAC,MAAM,EAAE;aACV,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;aAC3B,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC9B,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACpB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;aAC7B,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;aACzB,SAAS,EAAE,CAAC;aACZ,aAAa,EAAE,CAAC;SAClB,CAAC,CAAC,CAAC;SAEL,kDAAkD;SAClD,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACrE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAC,IAAI;aACzB,kBAAkB;aAClB,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aAEzD,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjC,SAAS,CAAC,KAAK,EAAE;kBACd,MAAM,CAAC,MAAM,CAAC;kBACd,IAAI,CAAC;iBACJ,EAAE,EAAE,UAAC,CAAC,IAAK,mBAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAjC,CAAiC;iBAC5C,EAAE,EAAE,CAAC;iBACL,EAAE,EAAE,SAAS;iBACb,EAAE,EAAE,MAAM;cACX,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC;iBAClC,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;iBACjC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;aAC5E,CAAC,CAAC,CAAC;SACL,CAAC,CAAC,CAAC;SAEH;aACE,SAAS,CAAC,IAAI,CAAC;iBACb,EAAE,EAAE,UAAC,CAAC,IAAK,mBAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAjC,CAAiC;iBAC5C,EAAE,EAAE,SAAS;cACd,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC;iBAChC,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;iBACjC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;aAC5E,CAAC,CAAC,CAAC;SACL,CAAC;SAED,oBAAoB,IAAI;aACtB,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE;kBACtB,EAAE,CAAC,WAAW,EAAE;iBACf,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;sBACZ,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;sBACzB,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;aACrC,CAAC,CAAC;kBACD,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;kBAChB,EAAE,CAAC,SAAS,EAAE;iBACb,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;sBACZ,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;sBAC1B,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;iBAC7B,aAAa,CAAC,IAAI,CAAC,CAAC;aACtB,CAAC,CAAC,CAAC;SACP,CAAC;SAED,IAAI,aAAa,GAAG,EAAE,CAAC;SAEvB;aACE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;iBACxD,MAAM,CAAC;aACT,CAAC;aAED,CAAC;iBACC,IAAI,MAAM,GAA+B,IAAI,CAAC,KAAK,CAAC;iBACpD,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;iBAC3B,IAAI,OAAK,GAAG,MAAM,CAAC,KAAK,CAAC;iBAEzB,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAK,CAAC,CAAC,CAAC,EAAC,CAAC,EAArB,CAAqB,CAAC,CAAC;aAC9D,CAAC;aAED;iBACE,mBAAmB;iBACnB,aAAa,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAT,CAAS,CAAC,CAAC;iBACxC,kBAAkB;iBAClB,IAAI,KAAK,GAA+B,IAAI,CAAC,KAAK,CAAC;iBACnD,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC;iBAC7C,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC;iBAE5C,2CAA2C;iBAC3C,eAAe,EAAE,CAAC;aACpB,CAAC;aAED,qBAAqB,CAAC;iBACpB,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;qBAC9B,MAAM,CAAC,CAAC,wCAAwC;iBAClD,CAAC;iBACD,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC3B,WAAW,EAAE,CAAC;iBACd,kBAAkB,EAAE,CAAC;aACvB,CAAC;aAED,kBAAkB,CAAC;iBACjB,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBACvB,aAAa,CAAC,IAAI,CAAC;qBACjB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;qBACzB,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;kBACvB,CAAC,CAAC;iBACH,WAAW,EAAE,CAAC;iBACd,kBAAkB,EAAE,CAAC;aACvB,CAAC;aAED,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;iBACxC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACxD,CAAC,CAAC,CAAC;aAEH,IAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACvF,IAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,UAAC,CAAC,EAAE,CAAC;iBAClG,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;iBAC1B,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;iBAC3B,WAAW,CAAC,CAAC,CAAC,CAAC;aACjB,CAAC,CAAC,CAAC;aACH,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;iBACjC,EAAE,EAAE,CAAC;iBACL,EAAE,EAAE,MAAM;cACX,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;iBAC5B,6CAA6C;iBAC7C,IAAM,EAAE,GAAS,EAAE,CAAC,KAAM,CAAC,EAAE,CAAC;iBAC9B,IAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBACnD,IAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBAChD,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;iBAC9B,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;iBAC3B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;iBAC9C,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;iBACzE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;iBAElE,WAAW,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC,CAAC;aACJ,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;iBAC/G,iBAAiB;iBACjB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBACtC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC7B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAC9B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAE3D,WAAW,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC,CAAC;aACJ,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;iBAC3H,UAAU;iBACV,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBACtC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC1B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAC9B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAE3D,WAAW,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC,CAAC;aAEJ,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;iBAC3B,EAAE,EAAE,UAAC,CAAC,IAAK,mBAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAjB,CAAiB;iBAC5B,EAAE,EAAE,UAAC,CAAC,IAAK,gBAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAd,CAAc;cAC1B,CAAC,CAAC;aACH,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,mBAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;aAC1E,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,gBAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAd,CAAc,CAAC,CAAC;aAChE,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SAC3B,CAAC;SAED;aACE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;iBACzD,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;iBACpD,MAAM,CAAC;aACT,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;aAElD,IAAI,MAAM,GAAgC,IAAI,CAAC,KAAK,CAAC;aACrD,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAEzD,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;iBACtD,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBACtC,eAAe,EAAE,CAAC;iBAClB,aAAa,EAAE,CAAC;aAClB,CAAC,CAAC,CAAC;SACL,CAAC;SAED,kBAAkB,EAAE,CAAC;SACrB,YAAY,EAAE,CAAC;SAEf,uBAAuB,SAAiB;aAAjB,yBAAiB,GAAjB,iBAAiB;aACtC,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;iBACzD,MAAM,CAAC;aACT,CAAC;aACD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAClF,CAAC;SAED,CAAC;aACC,IAAI,YAAU,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aACtF,IAAI,YAAU,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;aAC1F,IAAI,gBAAc,GAAG,UAAC,CAAS,EAAE,CAAS,IAAK,eAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAG,CAAC,GAAC,GAAG,GAAC,GAAG,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAApD,CAAoD,CAAC;aACpG,KAAK,CAAC,SAAS,CAAC,+BAA+B,CAAC;kBAC7C,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;kBAChD,IAAI,CAAC,WAAW,EAAE,UAAC,CAAC,EAAC,CAAC,IAAK,wBAAa,CAAC,KAAG,CAAC,GAAC,YAAU,GAAC,YAAU,UAAK,EAA7C,CAA6C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAC,CAAC;iBAEtG,iBAAiB;iBACjB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBACtC,IAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC9B,IAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAE,KAAK,IAAI,CAAC,KAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;iBACpF,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;sBAC1B,IAAI,CAAC,WAAW,EAAC,eAAa,CAAC,QAAK,CAAC;sBACrC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAc,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC,CAAC;aACnD,CAAC,CAAC,CAAC;kBACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAc,CAAC,CAAC;SACzC,CAAC;SAED,IAAI,CAAC,aAAa,GAAG;aACnB,MAAM,CAAC;iBACL,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;iBACtD,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;cACxD,CAAC;SACJ,CAAC,CAAC;SAEF;aACE,IAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;aAC7B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACtD,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAEtD,eAAe,EAAE,CAAC;aAClB,kBAAkB,EAAE,CAAC;SACvB,CAAC;SAED,SAAS,EAAE,CAAC;SAEZ,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE;aAClC,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;aACrB,EAAE,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC;iBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACrF,CAAC;aAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC;iBAC9B,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;iBAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACrG,CAAC;aAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;iBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;aACpE,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;aACtE,CAAC;aACD,eAAe,EAAE,CAAC;aAClB,kBAAkB,EAAE,CAAC;aACrB,YAAY,EAAE,CAAC;aACf,aAAa,EAAE,CAAC;SAClB,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE;aAC3B,IAAI,IAAI,GAAG,QAAQ,CAAC;aACpB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,YAAY,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;iBACtD,IAAI,GAAgC,IAAI,CAAC,KAAM,CAAC,SAAS,CAAC;aAC5D,CAAC;aACD,IAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;aAC3G,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC7B,CAAC,CAAC,CAAC;KACL,CAAC;KACH,oBAAC;AAAD,EAAC;AA1WY,sBAAa,gBA0WzB;AAED,iBAAuB,MAAmB,EAAE,KAA6B,EAAE,QAAgC,EAAE,MAA2B,EAAE,WAA8B,EAAE,OAAiB;KAAjB,uBAAiB,GAAjB,YAAiB;KACzL,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAClF,EAAC;AAFe,eAAM,SAErB","file":"LineUpJS.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"d3\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"d3\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"LineUpJS\"] = factory(require(\"d3\"));\n\telse\n\t\troot[\"LineUpJS\"] = factory(root[\"d3\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_5__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 496fae7ea234bec7beb3\n **/","/**\r\n * Created by Samuel Gratzl on 26.09.2016.\r\n */\r\nrequire('./style.scss');\r\nmodule.exports = require('./main.ts');\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/bundle.js\n ** module id = 0\n ** module chunks = 0\n **/","// removed by extract-text-webpack-plugin\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/style.scss\n ** module id = 1\n ** module chunks = 0\n **/","/**\r\n * main module of LineUp.js containing the main class and exposes all other modules\r\n * Created by Samuel Gratzl on 14.08.2015.\r\n */\r\n\r\n///\r\nimport model_ = require('./model');\r\nimport provider_ = require('./provider');\r\nimport renderer_ = require('./renderer');\r\nimport ui_ = require('./ui');\r\nimport utils_ = require('./utils');\r\nimport ui_dialogs_ = require('./ui_dialogs');\r\nimport d3 = require('d3');\r\n\r\n/**\r\n * access to the model module\r\n * @type {--global-type--}\r\n */\r\nexport var model = model_;\r\n/**\r\n * access to the provider module\r\n * @type {--global-type--}\r\n */\r\nexport var provider = provider_;\r\n/**\r\n * access to the renderer module\r\n * @type {--global-type--}\r\n */\r\nexport var renderer = renderer_;\r\n/**\r\n * access to the ui module\r\n * @type {--global-type--}\r\n */\r\nexport var ui = ui_;\r\n/**\r\n * access to the utils module\r\n * @type {--global-type--}\r\n */\r\nexport var utils = utils_;\r\n/**\r\n * access to the ui_dialogs module\r\n * @type {--global-type--}\r\n */\r\nexport var ui_dialogs = ui_dialogs_;\r\n\r\n\r\n/**\r\n * main LineUp class managing data and rendering\r\n */\r\nexport class LineUp extends utils_.AEventDispatcher {\r\n /**\r\n * triggered when the mouse is over a specific row\r\n * @argument data_index:number the selected data index or <0 if no row\r\n */\r\n static EVENT_HOVER_CHANGED = 'hoverChanged';\r\n\r\n /**\r\n * triggered when the user click on a row\r\n * @argument data_index:number the selected data index or <0 if no row\r\n */\r\n static EVENT_SELECTION_CHANGED = 'selectionChanged';\r\n\r\n /**\r\n * triggered when the user selects one or more rows\r\n * @argument data_indices:number[] the selected data indices\r\n */\r\n static EVENT_MULTISELECTION_CHANGED = 'multiSelectionChanged';\r\n\r\n /**\r\n * triggered when LineUpJS.update() was called\r\n */\r\n static EVENT_UPDATE_START = 'updateStart';\r\n\r\n /**\r\n * triggered when LineUpJS.update() was called and the rendering the body has finished\r\n */\r\n static EVENT_UPDATE_FINISHED = 'updateFinished';\r\n\r\n /**\r\n * default config of LineUp with all available options\r\n */\r\n config = {\r\n /**\r\n * a prefix used for all generated html ids\r\n */\r\n idPrefix: Math.random().toString(36).slice(-8).substr(0, 3), //generate a random string with length3\r\n\r\n /**\r\n * options related to the header html layout\r\n */\r\n header: {\r\n /**\r\n * standard height of the header\r\n */\r\n headerHeight: 20,\r\n /**\r\n * height of the header including histogram\r\n */\r\n headerHistogramHeight: 40,\r\n /**\r\n * should labels be automatically rotated if they doesn't fit?\r\n */\r\n autoRotateLabels: false,\r\n /**\r\n * space reserved if a label is rotated\r\n */\r\n rotationHeight: 50, //in px\r\n /**\r\n * the degrees to rotate a label\r\n */\r\n rotationDegree: -20, //in deg\r\n /**\r\n * hook for adding buttons to rankings in the header\r\n */\r\n rankingButtons: ui_.dummyRankingButtonHook,\r\n\r\n /**\r\n * templates for link patterns\r\n */\r\n linkTemplates: []\r\n },\r\n /**\r\n * old name for header\r\n */\r\n htmlLayout: {},\r\n /**\r\n * visual representation options\r\n */\r\n renderingOptions: {\r\n /**\r\n * show combined bars as stacked bars\r\n */\r\n stacked: true,\r\n /**\r\n * use animation for reordering\r\n */\r\n animation: true,\r\n /**\r\n * show histograms of the headers (just settable at the beginning)\r\n */\r\n histograms: false,\r\n /**\r\n * show a mean line for single numberial columns\r\n */\r\n meanLine: false,\r\n },\r\n /**\r\n * options related to the rendering of the body\r\n */\r\n body: {\r\n renderer: 'svg', //svg, canvas\r\n rowHeight: 17,\r\n rowPadding: 0.2, //padding for scale.rangeBands\r\n rowBarPadding: 1,\r\n\r\n /**\r\n * whether just the visible rows or all rows should be rendered - rendering performance (default: true)\r\n */\r\n visibleRowsOnly: true,\r\n\r\n /**\r\n * number of backup rows to keep to avoid updating on every small scroll thing\r\n */\r\n backupScrollRows: 4,\r\n animationDuration: 1000,\r\n\r\n //number of cols that should be frozen on the left side\r\n freezeCols: 0,\r\n\r\n rowActions: []\r\n },\r\n /**\r\n * old name for body\r\n */\r\n svgLayout: {},\r\n /**\r\n * enables manipulation features, remove column, reorder,...\r\n */\r\n manipulative: true,\r\n /**\r\n * automatically add a column pool at the end\r\n */\r\n pool: false,\r\n\r\n /**\r\n * the renderers to use for rendering the columns\r\n */\r\n renderers: renderer_.renderers()\r\n };\r\n\r\n private $container:d3.Selection;\r\n\r\n private body:ui_.IBodyRenderer = null;\r\n private header:ui_.HeaderRenderer = null;\r\n private pools:ui_.PoolRenderer[] = [];\r\n private contentScroller:utils_.ContentScroller = null;\r\n\r\n constructor(container:d3.Selection | Element, public data:provider_.DataProvider, config:any = {}) {\r\n super();\r\n this.$container = container instanceof d3.selection ? >container : d3.select(container);\r\n this.$container = this.$container.append('div').classed('lu', true);\r\n this.config.svgLayout = this.config.body;\r\n this.config.htmlLayout = this.config.header;\r\n\r\n utils.merge(this.config, config);\r\n\r\n\r\n this.data.on('selectionChanged.main', this.triggerSelection.bind(this));\r\n\r\n this.header = new ui_.HeaderRenderer(data, this.node, {\r\n manipulative: this.config.manipulative,\r\n headerHeight: this.config.header.headerHeight,\r\n headerHistogramHeight: this.config.header.headerHistogramHeight,\r\n histograms : this.config.renderingOptions.histograms,\r\n\r\n autoRotateLabels: this.config.header.autoRotateLabels,\r\n rotationHeight: this.config.header.rotationHeight, //in px\r\n rotationDegree: this.config.header.rotationDegree, //in deg\r\n\r\n freezeCols: this.config.body.freezeCols,\r\n\r\n rankingButtons: this.config.header.rankingButtons,\r\n linkTemplates: this.config.header.linkTemplates\r\n });\r\n this.body = new (this.config.body.renderer === 'svg' ? ui_.BodyRenderer: ui_.BodyCanvasRenderer)(data, this.node, this.slice.bind(this), {\r\n rowHeight: this.config.body.rowHeight,\r\n rowPadding: this.config.body.rowPadding,\r\n rowBarPadding: this.config.body.rowBarPadding,\r\n animationDuration: this.config.body.animationDuration,\r\n meanLine: this.config.renderingOptions.meanLine,\r\n animation: this.config.renderingOptions.animation,\r\n stacked: this.config.renderingOptions.stacked,\r\n actions: this.config.body.rowActions,\r\n idPrefix: this.config.idPrefix,\r\n\r\n freezeCols: this.config.body.freezeCols,\r\n renderers: this.config.renderers\r\n });\r\n //share hist caches\r\n this.body.histCache = this.header.sharedHistCache;\r\n\r\n this.forward(this.body, LineUp.EVENT_HOVER_CHANGED);\r\n if (this.config.pool && this.config.manipulative) {\r\n this.addPool(new ui_.PoolRenderer(data, this.node, this.config));\r\n }\r\n\r\n if (this.config.body.visibleRowsOnly) {\r\n this.contentScroller = new utils_.ContentScroller(this.$container.node(), this.body.node, {\r\n backupRows: this.config.body.backupScrollRows,\r\n rowHeight: this.config.body.rowHeight,\r\n topShift: () => this.header.currentHeight()\r\n });\r\n this.contentScroller.on('scroll', (top, left) => {\r\n //in two svg mode propagate horizontal shift\r\n //console.log(top, left,'ss');\r\n this.header.$node.style('transform', 'translate(' + 0 + 'px,' + top + 'px)');\r\n if (this.config.body.freezeCols > 0) {\r\n this.header.updateFreeze(left);\r\n this.body.updateFreeze(left);\r\n }\r\n });\r\n this.contentScroller.on('redraw', this.body.update.bind(this.body));\r\n }\r\n }\r\n\r\n createEventList() {\r\n return super.createEventList().concat([LineUp.EVENT_HOVER_CHANGED, LineUp.EVENT_SELECTION_CHANGED, LineUp.EVENT_MULTISELECTION_CHANGED, LineUp.EVENT_UPDATE_START, LineUp.EVENT_UPDATE_FINISHED]);\r\n }\r\n\r\n /**\r\n * add and column pool at the given element position, with custom configuration\r\n * @param node the node element to attach\r\n * @param config\r\n */\r\n addPool(node:Element, config?:any):ui_.PoolRenderer;\r\n addPool(pool:ui_.PoolRenderer):ui_.PoolRenderer;\r\n addPool(pool_node:Element|ui_.PoolRenderer, config = this.config) {\r\n if (pool_node instanceof ui_.PoolRenderer) {\r\n this.pools.push(pool_node);\r\n } else {\r\n this.pools.push(new ui_.PoolRenderer(this.data, pool_node, config));\r\n }\r\n return this.pools[this.pools.length - 1];\r\n }\r\n\r\n /**\r\n * returns the main lineup DOM element\r\n * @returns {Element}\r\n */\r\n get node() {\r\n return this.$container.node();\r\n }\r\n\r\n private slice(start:number, length:number, row2y:(i:number) => number) {\r\n if (this.contentScroller) {\r\n return this.contentScroller.select(start, length, row2y);\r\n }\r\n return {from: start, to: length};\r\n }\r\n\r\n /**\r\n * destroys the DOM elements created by this lineup instance, this should be the last call to this lineup instance\r\n */\r\n destroy() {\r\n this.pools.forEach((p) => p.remove());\r\n this.$container.remove();\r\n if (this.contentScroller) {\r\n this.contentScroller.destroy();\r\n }\r\n }\r\n\r\n /**\r\n * sorts LineUp by he given column\r\n * @param column callback function finding the column to sort\r\n * @param ascending\r\n * @returns {boolean}\r\n */\r\n sortBy(column:(col:model_.Column) => boolean | string, ascending = false) {\r\n var col = this.data.find(column);\r\n if (col) {\r\n col.sortByMe(ascending);\r\n }\r\n return col !== null;\r\n }\r\n\r\n dump() {\r\n return this.data.dump();\r\n }\r\n\r\n changeDataStorage(data:provider_.DataProvider, dump?:any) {\r\n if (this.data) {\r\n this.data.on('selectionChanged.main', null);\r\n }\r\n this.data = data;\r\n if (dump) {\r\n this.data.restore(dump);\r\n }\r\n this.data.on('selectionChanged.main', this.triggerSelection.bind(this));\r\n this.header.changeDataStorage(data);\r\n this.body.changeDataStorage(data);\r\n this.pools.forEach((p) => p.changeDataStorage(data));\r\n this.update();\r\n }\r\n\r\n private triggerSelection(data_indices:number[]) {\r\n this.fire(LineUp.EVENT_SELECTION_CHANGED, data_indices.length > 0 ? data_indices[0] : -1);\r\n this.fire(LineUp.EVENT_MULTISELECTION_CHANGED, data_indices);\r\n }\r\n\r\n restore(dump:any) {\r\n this.changeDataStorage(this.data, dump);\r\n }\r\n\r\n /**\r\n * local variable that is used by update()\r\n * @type {boolean}\r\n */\r\n private isUpdateInitialized = false;\r\n\r\n update() {\r\n // HACK: when calling update for the first time the BodyRenderer\r\n // fires 3x the `renderFinished` event. However, we want to wait for\r\n // the last event before firing LineUp.EVENT_UPDATE_FINISHED.\r\n // For any further call of update() the body render will fire the\r\n // `renderFinished` event only once\r\n var waitForBodyRenderer = (this.isUpdateInitialized) ? 1 : 3;\r\n this.isUpdateInitialized = true;\r\n\r\n this.fire(LineUp.EVENT_UPDATE_START);\r\n this.header.update();\r\n this.body.update();\r\n this.pools.forEach((p) => p.update());\r\n\r\n this.body.on('renderFinished', () => {\r\n waitForBodyRenderer -= 1;\r\n if(waitForBodyRenderer === 0) {\r\n this.fire(LineUp.EVENT_UPDATE_FINISHED);\r\n }\r\n });\r\n }\r\n\r\n changeRenderingOption(option:string, value:boolean) {\r\n this.config.renderingOptions[option] = value;\r\n if (option === 'animation' || option === 'stacked') {\r\n this.body.setOption(option, value);\r\n this.body.update();\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * assigns colors to colmns if they are numbers and not yet defined\r\n * @param columns\r\n * @returns {model_.IColumnDesc[]}\r\n */\r\nexport function deriveColors(columns:model_.IColumnDesc[]) {\r\n var colors = d3.scale.category10().range().slice();\r\n columns.forEach((col:any) => {\r\n switch (col.type) {\r\n case 'number':\r\n col.color = colors.shift();\r\n break;\r\n }\r\n });\r\n return columns;\r\n}\r\n\r\n/**\r\n * creates a local storage provider\r\n * @param data\r\n * @param columns\r\n * @param options\r\n * @returns {LocalDataProvider}\r\n */\r\nexport function createLocalStorage(data:any[], columns:model_.IColumnDesc[], options = {}) {\r\n return new provider_.LocalDataProvider(data, columns, options);\r\n}\r\n\r\nexport function create(data:provider_.DataProvider, container:d3.Selection | Element, config:any = {}) {\r\n return new LineUp(container, data, config);\r\n}\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main.ts\n **/","/**\n * Created by Samuel Gratzl on 06.08.2015.\n */\n///\n\nimport d3 = require('d3');\nimport utils = require('./utils');\n/**\n * converts a given id to css compatible one\n * @param id\n * @return {string|void}\n */\nfunction fixCSS(id) {\n return id.replace(/[\\s!#$%&'\\(\\)\\*\\+,\\.\\/:;<=>\\?@\\[\\\\\\]\\^`\\{\\|}~]/g, '_'); //replace non css stuff to _\n}\n\n/**\n * save number comparison\n * @param a\n * @param b\n * @return {number}\n */\nfunction numberCompare(a:number, b:number) {\n if (a === b || (isNaN(a) && isNaN(b))) {\n return 0;\n }\n return a - b;\n}\n\ninterface IFlatColumn {\n col: Column;\n offset: number;\n width: number;\n}\n\nexport interface IColumnParent {\n remove(col:Column): boolean;\n insert(col: Column, index?:number): Column;\n insertAfter(col:Column, reference:Column): Column;\n findMyRanker() : Ranking;\n fqid: string;\n\n indexOf(col: Column): number;\n at(index: number): Column;\n fqpath: string;\n}\n\nexport interface IColumnDesc {\n label:string;\n /**\n * the column type\n */\n type:string;\n\n /**\n * column description\n */\n description?: string;\n\n /**\n * color of this column\n */\n color?: string;\n /**\n * css class to append to elements of this column\n */\n cssClass?: string;\n}\n\nexport interface IStatistics {\n min: number;\n max: number;\n mean: number;\n count: number;\n maxBin: number;\n hist: { x : number; dx : number; y : number;}[];\n}\n\nexport interface ICategoricalStatistics {\n maxBin: number;\n hist: { cat: string; y : number }[];\n}\n\nexport interface IColumnMetaData {\n label: string;\n description: string;\n color: string;\n}\n\n/**\n * a column in LineUp\n */\nexport class Column extends utils.AEventDispatcher {\n /**\n * default color that should be used\n * @type {string}\n */\n static DEFAULT_COLOR = '#C1C1C1';\n /**\n * magic variable for showing all columns\n * @type {number}\n */\n static FLAT_ALL_COLUMNS = -1;\n /**\n * width of a compressed column\n * @type {number}\n */\n static COMPRESSED_WIDTH = 16;\n\n id:string;\n\n /**\n * width of the column\n * @type {number}\n * @private\n */\n private width:number = 100;\n\n parent:IColumnParent = null;\n\n label:string;\n description: string;\n color:string;\n /**\n * alternative to specifying a color is defining a css class that should be used\n */\n cssClass:string;\n\n /**\n * whether this column is compressed i.e. just shown in a minimal version\n * @type {boolean}\n * @private\n */\n private compressed = false;\n\n constructor(id:string, public desc:IColumnDesc) {\n super();\n this.id = fixCSS(id);\n this.label = this.desc.label || this.id;\n this.description = this.desc.description || '';\n this.cssClass = (this.desc).cssClass || '';\n this.color = (this.desc).color || (this.cssClass !== '' ? null : Column.DEFAULT_COLOR);\n }\n\n get headerCssClass() {\n return this.desc.type;\n }\n\n assignNewId(idGenerator:() => string) {\n this.id = fixCSS(idGenerator());\n }\n\n init(callback:(desc:IColumnDesc) => Promise):Promise {\n return Promise.resolve(true);\n }\n\n /**\n * returns the fully qualified id i.e. path the parent\n * @returns {string}\n */\n get fqid() {\n return this.parent ? this.parent.fqid + '_' + this.id : this.id;\n }\n\n get fqpath() {\n return this.parent ? this.parent.fqpath + '@' + this.parent.indexOf(this) : '';\n }\n\n /**\n * fires:\n * * widthChanged\n * * filterChanged\n * * labelChanged\n * * metaDataChanged\n * * compressChanged\n * * addColumn, removeColumn ... for composite pattern\n * * dirty, dirtyHeader, dirtyValues\n * @returns {string[]}\n */\n createEventList() {\n return super.createEventList().concat(['widthChanged', 'filterChanged', 'labelChanged', 'metaDataChanged', 'compressChanged', 'addColumn', 'removeColumn', 'dirty', 'dirtyHeader', 'dirtyValues']);\n }\n\n getWidth() {\n return this.width;\n }\n\n isHidden() {\n return this.width <= 0;\n }\n\n setCompressed(value:boolean) {\n if (this.compressed === value) {\n return;\n }\n this.fire(['compressChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], this.compressed, this.compressed = value);\n }\n\n getCompressed() {\n return this.compressed;\n }\n\n /**\n * visitor pattern for flattening the columns\n * @param r the result array\n * @param offset left offeset\n * @param levelsToGo how many levels down\n * @param padding padding between columns\n * @returns {number} the used width by this column\n */\n flatten(r:IFlatColumn[], offset:number, levelsToGo = 0, padding = 0):number {\n const w = this.compressed ? Column.COMPRESSED_WIDTH : this.getWidth();\n r.push({col: this, offset: offset, width: w});\n return w;\n }\n\n setWidth(value:number) {\n if (this.width === value) {\n return;\n }\n this.fire(['widthChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], this.width, this.width = value);\n }\n\n setWidthImpl(value:number) {\n this.width = value;\n }\n\n setMetaData(value: IColumnMetaData) {\n if (value.label === this.label && this.color === value.color && this.description === value.description) {\n return;\n }\n var events = this.color === value.color ? ['labelChanged', 'metaDataChanged','dirtyHeader', 'dirty'] : ['labelChanged', 'metaDataChanged','dirtyHeader', 'dirtyValues', 'dirty'];\n this.fire(events, this.getMetaData(), {\n label: this.label = value.label,\n color: this.color = value.color,\n description: this.description = value.description\n });\n }\n\n getMetaData() : IColumnMetaData {\n return {\n label: this.label,\n color: this.color,\n description: this.description\n };\n }\n\n /**\n * triggers that the ranking is sorted by this column\n * @param ascending\n * @returns {any}\n */\n sortByMe(ascending = false) {\n var r = this.findMyRanker();\n if (r) {\n return r.sortBy(this, ascending);\n }\n return false;\n }\n\n /**\n * toggles the sorting order of this column in the ranking\n * @returns {any}\n */\n toggleMySorting() {\n var r = this.findMyRanker();\n if (r) {\n return r.toggleSorting(this);\n }\n return false;\n }\n\n /**\n * removes the column from the ranking\n * @returns {boolean}\n */\n removeMe() {\n if (this.parent) {\n return this.parent.remove(this);\n }\n return false;\n }\n\n /**\n * inserts the given column after itself\n * @param col\n * @returns {boolean}\n */\n insertAfterMe(col:Column) {\n if (this.parent) {\n return this.parent.insertAfter(col, this) != null;\n }\n return false;\n }\n\n /**\n * finds the underlying ranking column\n * @returns {Ranking}\n */\n findMyRanker():Ranking {\n if (this.parent) {\n return this.parent.findMyRanker();\n }\n return null;\n }\n\n /**\n * dumps this column to JSON compatible format\n * @param toDescRef\n * @returns {any}\n */\n dump(toDescRef:(desc:any) => any):any {\n var r:any = {\n id: this.id,\n desc: toDescRef(this.desc),\n width: this.width,\n compressed: this.compressed\n };\n if (this.label !== (this.desc.label || this.id)) {\n r.label = this.label;\n }\n if (this.color !== ((this.desc).color || Column.DEFAULT_COLOR) && this.color) {\n r.color = this.color;\n }\n return r;\n }\n\n /**\n * restore the column content from a dump\n * @param dump\n * @param factory\n */\n restore(dump:any, factory:(dump:any) => Column) {\n this.width = dump.width || this.width;\n this.label = dump.label || this.label;\n this.color = dump.color || this.color;\n this.compressed = dump.compressed === true;\n }\n\n /**\n * return the label of a given row for the current column\n * @param row\n * @return {string}\n */\n getLabel(row:any):string {\n return '' + this.getValue(row);\n }\n\n /**\n * return the value of a given row for the current column\n * @param row\n * @return\n */\n getValue(row:any):any {\n return ''; //no value\n }\n\n /**\n * compare function used to determine the order according to the values of the current column\n * @param a\n * @param b\n * @return {number}\n */\n compare(a:any, b:any) {\n return 0; //can't compare\n }\n\n /**\n * flag whether any filter is applied\n * @return {boolean}\n */\n isFiltered() {\n return false;\n }\n\n /**\n * predicate whether the current row should be included\n * @param row\n * @return {boolean}\n */\n filter(row:any) {\n return row !== null;\n }\n}\n/**\n * a column having an accessor to get the cell value\n */\nexport class ValueColumn extends Column {\n protected accessor:(row:any, id:string, desc:any, ranking: Ranking) => T;\n\n constructor(id:string, desc:any) {\n super(id, desc);\n //find accessor\n this.accessor = desc.accessor || (() => null);\n }\n\n getLabel(row:any) {\n return '' + this.getValue(row);\n }\n\n getValue(row:any) {\n return this.accessor(row, this.id, this.desc, this.findMyRanker());\n }\n\n compare(a:any, b:any) {\n return 0; //can't compare\n }\n}\n\n/**\n * a default column with no values\n */\nexport class DummyColumn extends Column {\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n getLabel(row:any) {\n return '';\n }\n\n getValue(row:any) {\n return '';\n }\n\n compare(a:any, b:any) {\n return 0; //can't compare\n }\n}\n\nexport interface INumberColumn {\n getNumber(row:any): number;\n}\n\nexport interface ICategoricalColumn {\n categories: string[];\n categoryLabels: string[];\n\n getCategories(row: any): string[];\n}\n\n/**\n * checks whether the given column or description is a number column, i.e. the value is a number\n * @param col\n * @returns {boolean}\n */\nexport function isNumberColumn(col:Column|IColumnDesc) {\n return (col instanceof Column && typeof (col).getNumber === 'function' || (!(col instanceof Column) && (col).type.match(/(number|stack|ordinal)/) != null));\n}\n\n/**\n * checks whether the given column or description is a categorical column, i.e. the value is a list of categories\n * @param col\n * @returns {boolean}\n */\nexport function isCategoricalColumn(col:Column|IColumnDesc) {\n return (col instanceof Column && typeof (col).getCategories === 'function' || (!(col instanceof Column) && (col).type.match(/(categorical|ordinal)/) != null));\n}\n\n/**\n * interface of a d3 scale\n */\nexport interface IScale {\n (v:number): number;\n\n domain():number[];\n domain(domain:number[]);\n\n range():number[];\n range(range:number[]);\n}\n\nexport interface IMappingFunction {\n //new(domain: number[]);\n\n apply(v: number): number;\n\n dump(): any;\n restore(dump: any);\n\n domain: number[];\n\n clone(): IMappingFunction;\n\n eq(other: IMappingFunction): boolean;\n\n}\n\nexport interface INumberFilter {\n min: number;\n max: number;\n}\n\nfunction toScale(type = 'linear'):IScale {\n switch (type) {\n case 'log':\n return d3.scale.log().clamp(true);\n case 'sqrt':\n return d3.scale.sqrt().clamp(true);\n case 'pow1.1':\n return d3.scale.pow().exponent(1.1).clamp(true);\n case 'pow2':\n return d3.scale.pow().exponent(2).clamp(true);\n case 'pow3':\n return d3.scale.pow().exponent(3).clamp(true);\n default:\n return d3.scale.linear().clamp(true);\n }\n}\n\nfunction isSame(a: number[], b: number[]) {\n if (a.length !== b.length) {\n return false;\n }\n return a.every((ai, i) => ai === b[i]);\n}\n\n\nfunction fixDomain(domain: number[], type: string) {\n if (type === 'log' && domain[0] === 0) {\n domain[0] = 0.0000001; //0 is bad\n }\n return domain;\n}\n/**\n * a mapping function based on a d3 scale (linear, sqrt, log)\n */\nexport class ScaleMappingFunction implements IMappingFunction {\n private s:IScale;\n\n constructor(domain:number[] = [0,1], private type = 'linear', range : number[] = [0,1]) {\n this.s = toScale(type).domain(fixDomain(domain,this.type)).range(range);\n }\n\n get domain() {\n return this.s.domain();\n }\n\n set domain(domain: number[]) {\n this.s.domain(fixDomain(domain,this.type));\n }\n\n get range() {\n return this.s.range();\n }\n\n set range(range: number[]) {\n this.s.range(range);\n }\n\n apply(v:number):number {\n return this.s(v);\n }\n\n get scaleType() {\n return this.type;\n }\n\n dump():any {\n return {\n type: this.type,\n domain: this.domain,\n range: this.range\n };\n }\n\n eq(other: IMappingFunction) {\n if (!(other instanceof ScaleMappingFunction)) {\n return false;\n }\n const that = other;\n return that.type === this.type && isSame(this.domain, that.domain) && isSame(this.range, that.range);\n }\n\n restore(dump:any) {\n this.type = dump.type;\n this.s = toScale(dump.type).domain(dump.domain).range(dump.range);\n }\n\n clone() {\n return new ScaleMappingFunction(this.domain, this.type, this.range);\n }\n}\n\n/**\n * a mapping function based on a custom user function using 'value' as the current value\n */\nexport class ScriptMappingFunction implements IMappingFunction {\n private f:Function;\n\n constructor(private domain_:number[] = [0,1], private code_:string = 'return this.linear(value,this.value_min,this.value_max);') {\n this.f = new Function('value', code_);\n }\n\n get domain() {\n return this.domain_;\n }\n\n set domain(domain: number[]) {\n this.domain_ = domain;\n }\n\n get code() {\n return this.code_;\n }\n\n set code(code: string) {\n if (this.code_ === code) {\n return;\n }\n this.code_ = code;\n this.f = new Function('value', code);\n }\n\n apply(v:number):number {\n const min = this.domain_[0],\n max = this.domain_[this.domain_.length-1];\n const r = this.f.call({\n value_min: min,\n value_max: max,\n value_range: max - min,\n value_domain: this.domain_.slice(),\n linear : (v, mi, ma) => (v-mi)/(ma-mi)\n }, v);\n\n if (typeof r === 'number') {\n return Math.max(Math.min(r, 1), 0);\n }\n return NaN;\n }\n\n dump():any {\n return {\n type: 'script',\n code: this.code\n };\n }\n\n eq(other: IMappingFunction) {\n if (!(other instanceof ScriptMappingFunction)) {\n return false;\n }\n const that = other;\n return that.code === this.code;\n }\n\n restore(dump:any) {\n this.code = dump.code;\n }\n\n clone() {\n return new ScriptMappingFunction(this.domain, this.code);\n }\n}\n\nexport function createMappingFunction(dump: any): IMappingFunction {\n if (dump.type === 'script') {\n let s = new ScriptMappingFunction();\n s.restore(dump);\n return s;\n } else {\n let l = new ScaleMappingFunction();\n l.restore(dump);\n return l;\n }\n}\n\n/**\n * a number column mapped from an original input scale to an output range\n */\nexport class NumberColumn extends ValueColumn implements INumberColumn {\n missingValue = 0;\n\n private mapping : IMappingFunction;\n\n private original : IMappingFunction;\n\n /**\n * currently active filter\n * @type {{min: number, max: number}}\n * @private\n */\n private currentFilter : INumberFilter = {min: -Infinity, max: Infinity};\n\n private numberFormat : (n: number) => string = d3.format('.3n');\n\n constructor(id:string, desc:any) {\n super(id, desc);\n\n if (desc.map) {\n this.mapping = createMappingFunction(desc.map);\n } else if (desc.domain) {\n this.mapping = new ScaleMappingFunction(desc.domain, 'linear', desc.range || [0,1]);\n }\n this.original = this.mapping.clone();\n\n if (desc.numberFormat) {\n this.numberFormat = d3.format(desc.numberFormat);\n }\n }\n\n init(callback:(desc:IColumnDesc) => Promise):Promise {\n\n var d = this.mapping.domain;\n //if any of the values is not given use the statistics to compute them\n if (isNaN(d[0]) || isNaN(d[1])) {\n return callback(this.desc).then((stats) => {\n this.mapping.domain = [stats.min, stats.max];\n this.original.domain = [stats.min, stats.max];\n return true;\n });\n }\n return Promise.resolve(true);\n }\n\n dump(toDescRef:(desc:any) => any) {\n var r = super.dump(toDescRef);\n r.map = this.mapping.dump();\n r.filter = this.currentFilter;\n r.missingValue = this.missingValue;\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n super.restore(dump, factory);\n if (dump.map) {\n this.mapping = createMappingFunction(dump.map);\n } else if (dump.domain) {\n this.mapping = new ScaleMappingFunction(dump.domain, 'linear', dump.range || [0,1]);\n }\n if (dump.currentFilter) {\n this.currentFilter = dump.currentFilter;\n }\n if (dump.missingValue) {\n this.missingValue = dump.missingValue;\n }\n if (dump.numberFormat) {\n this.numberFormat = d3.format(dump.numberFormat);\n }\n }\n\n createEventList() {\n return super.createEventList().concat(['mappingChanged']);\n }\n\n getLabel(row:any) {\n //if a dedicated format and a number use the formatter in any case\n if ((this.desc).numberFormat) {\n return this.numberFormat(this.getRawValue(row));\n }\n const v = super.getValue(row);\n //keep non number if it is not a number else convert using formatter\n return '' + (typeof v === 'number' ? this.numberFormat(+v) : v);\n }\n\n getRawValue(row:any) {\n var v:any = super.getValue(row);\n if (typeof(v) === 'undefined' || v == null || isNaN(v) || v === '' || v === 'NA' || (typeof(v) === 'string' && (v.toLowerCase() === 'na'))) {\n return this.missingValue;\n }\n return +v;\n }\n\n getValue(row:any) {\n var v = this.getRawValue(row);\n if (isNaN(v)) {\n return v;\n }\n return this.mapping.apply(v);\n }\n\n getNumber(row:any) {\n return this.getValue(row);\n }\n\n compare(a:any, b:any) {\n return numberCompare(this.getValue(a), this.getValue(b));\n }\n\n getOriginalMapping() {\n return this.original.clone();\n }\n\n getMapping() {\n return this.mapping.clone();\n }\n\n setMapping(mapping: IMappingFunction) {\n if (this.mapping.eq(mapping)) {\n return;\n }\n this.fire(['mappingChanged', 'dirtyValues', 'dirty'], this.mapping.clone(), this.mapping = mapping);\n }\n\n isFiltered() {\n return isFinite(this.currentFilter.min) || isFinite(this.currentFilter.max);\n }\n\n get filterMin() {\n return this.currentFilter.min;\n }\n\n get filterMax() {\n return this.currentFilter.max;\n }\n\n getFilter(): INumberFilter {\n return {\n min: this.currentFilter.min,\n max: this.currentFilter.max\n };\n }\n\n set filterMin(min:number) {\n var bak = {min: this.currentFilter.min, max: this.currentFilter.max};\n this.currentFilter.min = isNaN(min) ? -Infinity : min;\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], bak, this.currentFilter);\n }\n\n set filterMax(max:number) {\n var bak = {min: this.currentFilter.min, max: this.currentFilter.max};\n this.currentFilter.max = isNaN(max) ? Infinity : max;\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], bak, this.currentFilter);\n }\n\n setFilter(value: INumberFilter = {min: -Infinity, max: +Infinity}) {\n if (this.currentFilter.min === value.min && this.currentFilter.max === value.max) {\n return;\n }\n const bak = this.getFilter();\n this.currentFilter.min = isNaN(value.min) ? -Infinity :value. min;\n this.currentFilter.max = isNaN(value.max) ? Infinity : value.max;\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], bak, this.currentFilter);\n }\n\n /**\n * filter the current row if any filter is set\n * @param row\n * @returns {boolean}\n */\n filter(row:any) {\n if (!this.isFiltered()) {\n return true;\n }\n var v = this.getRawValue(row);\n if (isNaN(v)) {\n return true;\n }\n return !((isFinite(this.currentFilter.min) && v < this.currentFilter.min) || (isFinite(this.currentFilter.max) && v > this.currentFilter.max));\n }\n}\n\n/**\n * a string column with optional alignment\n */\nexport class StringColumn extends ValueColumn {\n //magic key for filtering missing ones\n static FILTER_MISSING = '__FILTER_MISSING';\n private currentFilter:string|RegExp = null;\n\n private _alignment:string = 'left';\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.setWidthImpl(200); //by default 200\n this._alignment = desc.alignment || 'left';\n }\n\n //readonly\n get alignment() {\n return this._alignment;\n }\n\n getValue(row:any) {\n var v:any = super.getValue(row);\n if (typeof(v) === 'undefined' || v == null) {\n return '';\n }\n return String(v);\n }\n\n dump(toDescRef:(desc:any) => any):any {\n var r = super.dump(toDescRef);\n if (this.currentFilter instanceof RegExp) {\n r.filter = 'REGEX:' + (this.currentFilter).source;\n } else {\n r.filter = this.currentFilter;\n }\n r.alignment = this.alignment;\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n super.restore(dump, factory);\n if (dump.filter && dump.filter.slice(0, 6) === 'REGEX:') {\n this.currentFilter = new RegExp(dump.filter.slice(6));\n } else {\n this.currentFilter = dump.filter || null;\n }\n this._alignment = dump.alignment || this._alignment;\n }\n\n isFiltered() {\n return this.currentFilter != null;\n }\n\n filter(row:any) {\n if (!this.isFiltered()) {\n return true;\n }\n var r = this.getLabel(row),\n filter = this.currentFilter;\n\n if (filter === StringColumn.FILTER_MISSING) { //filter empty\n return r != null && r.trim() !== '';\n }\n if (typeof filter === 'string' && filter.length > 0) {\n return r && r.toLowerCase().indexOf(filter.toLowerCase()) >= 0;\n }\n if (filter instanceof RegExp) {\n return r && filter.test(r);\n }\n return true;\n }\n\n getFilter() {\n return this.currentFilter;\n }\n\n setFilter(filter:string|RegExp) {\n if (filter === '') {\n filter = null;\n }\n if (this.currentFilter === filter) {\n return;\n }\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], this.currentFilter, this.currentFilter = filter);\n }\n\n compare(a:any, b:any) {\n var a_val: string, b_val: string;\n if((a_val = this.getValue(a)) === '') {\n return this.getValue(b) === '' ? 0 : +1; //same = 0\n } else if((b_val = this.getValue(b)) === '') {\n return -1;\n }\n return a_val.localeCompare(b_val);\n }\n}\n\n/**\n * a string column in which the label is a text but the value a link\n */\nexport class LinkColumn extends StringColumn {\n /**\n * a pattern used for generating the link, $1 is replaced with the actual value\n * @type {null}\n */\n private link = null;\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.link = desc.link;\n }\n\n get headerCssClass() {\n return this.link == null ? 'link' : 'link link_pattern';\n }\n\n createEventList() {\n return super.createEventList().concat(['linkChanged']);\n }\n\n setLink(link: string) {\n /* tslint:disable */\n if (link == this.link) { /*== on purpose*/\n return;\n }\n /* tslint:enable */\n this.fire(['linkChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], this.link, this.link = link);\n }\n\n getLink() {\n return this.link || '';\n }\n\n dump(toDescRef:(desc:any) => any):any {\n var r = super.dump(toDescRef);\n /* tslint:disable */\n if (this.link != (this.desc).link) {\n r.link = this.link;\n }\n /* tslint:enable */\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n super.restore(dump, factory);\n if (dump.link) {\n this.link = dump.link;\n }\n }\n\n getLabel(row:any) {\n var v:any = super.getValue(row);\n if (v.alt) {\n return v.alt;\n }\n return '' + v;\n }\n\n isLink(row: any) {\n if (this.link) {\n return true;\n }\n //get original value\n var v:any = super.getValue(row);\n //convert to link\n return v.href != null;\n }\n\n getValue(row:any) {\n //get original value\n var v:any = super.getValue(row);\n //convert to link\n if (v.href) {\n return v.href;\n } else if (this.link) {\n return this.link.replace(/\\$1/g, v);\n }\n return v;\n }\n}\n\n/**\n * a string column in which the values can be edited locally\n */\nexport class AnnotateColumn extends StringColumn {\n private annotations = d3.map();\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n createEventList() {\n return super.createEventList().concat(['valueChanged']);\n }\n\n getValue(row:any) {\n var index = String(row._index);\n if (this.annotations.has(index)) {\n return this.annotations.get(index);\n }\n return super.getValue(row);\n }\n\n dump(toDescRef:(desc:any) => any):any {\n var r = super.dump(toDescRef);\n r.annotations = {};\n this.annotations.forEach((k, v) => {\n r.annotations[k] = v;\n });\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n super.restore(dump, factory);\n if (dump.annotations) {\n Object.keys(dump.annotations).forEach((k) => {\n this.annotations.set(k, dump.annotations[k]);\n });\n }\n }\n\n setValue(row:any, value:string) {\n var old = this.getValue(row);\n if (old === value) {\n return true;\n }\n if (value === '' || value == null) {\n this.annotations.remove(String(row._index));\n } else {\n this.annotations.set(String(row._index), value);\n }\n this.fire(['valueChanged', 'dirtyValues', 'dirty'], row._index, old, value);\n return true;\n }\n}\n\nfunction arrayEquals(a: T[], b: T[]) {\n const al = a != null ? a.length : 0;\n const bl = b != null ? b.length : 0;\n if (al !== bl) {\n return false;\n }\n if (al === 0) {\n return true;\n }\n return a.every((ai,i) => ai === b[i]);\n}\n\n/**\n * a checkbox column for selections\n */\nexport class SelectionColumn extends ValueColumn {\n /**\n * factory for creating a description creating a rank column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'S') {\n return {type: 'selection', label: label};\n }\n\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.setCompressed(true);\n }\n\n createEventList() {\n return super.createEventList().concat(['select']);\n }\n\n setValue(row:any, value:boolean) {\n const old = this.getValue(row);\n if (old === value) {\n return true;\n }\n return this.setImpl(row, value);\n }\n\n private setImpl(row: any, value: boolean) {\n if ((this.desc).setter) {\n (this.desc).setter(row, value);\n }\n this.fire('select', row, value);\n return true;\n }\n\n toggleValue(row:any) {\n const old = this.getValue(row);\n this.setImpl(row, !old);\n return !old;\n }\n\n compare(a:any, b:any) {\n return d3.ascending(this.getValue(a), this.getValue(b));\n }\n}\n\n\n/**\n * a string column with optional alignment\n */\nexport class BooleanColumn extends ValueColumn {\n private currentFilter:boolean = null;\n private trueMarker = 'X';\n private falseMarker = '';\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.setWidthImpl(30);\n this.trueMarker = desc.trueMarker || this.trueMarker;\n this.falseMarker = desc.falseMarker || this.falseMarker;\n }\n\n getValue(row:any) {\n var v:any = super.getValue(row);\n if (typeof(v) === 'undefined' || v == null) {\n return false;\n }\n return v === true || v === 'true' || v === 'yes' || v === 'x';\n }\n\n getLabel(row: any) {\n const v = this.getValue(row);\n return v ? this.trueMarker : this.falseMarker;\n }\n\n dump(toDescRef:(desc:any) => any):any {\n var r = super.dump(toDescRef);\n if (this.currentFilter !== null) {\n r.filter = this.currentFilter;\n }\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n super.restore(dump, factory);\n if (typeof dump.filter !== 'undefined') {\n this.currentFilter = dump.filter;\n }\n }\n\n isFiltered() {\n return this.currentFilter !== null;\n }\n\n filter(row:any) {\n if (!this.isFiltered()) {\n return true;\n }\n var r = this.getValue(row);\n return r === this.currentFilter;\n }\n\n getFilter() {\n return this.currentFilter;\n }\n\n setFilter(filter:boolean) {\n if (this.currentFilter === filter) {\n return;\n }\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], this.currentFilter, this.currentFilter = filter);\n }\n\n compare(a:any[], b:any[]) {\n return d3.ascending(this.getValue(a), this.getValue(b));\n }\n}\n\n/**\n * column for categorical values\n */\nexport class CategoricalColumn extends ValueColumn implements ICategoricalColumn {\n /**\n * colors for each category\n * @type {Ordinal}\n */\n private colors = d3.scale.category10();\n\n /**\n * category labels by default the category name itself\n * @type {Array}\n */\n private catLabels = d3.map();\n\n /**\n * set of categories to show\n * @type {null}\n * @private\n */\n private currentFilter:string[] = null;\n\n /**\n * split multiple categories\n * @type {string}\n */\n private separator = ';';\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.separator = desc.separator || this.separator;\n this.initCategories(desc);\n //TODO infer categories from data\n }\n\n initCategories(desc:any) {\n if (desc.categories) {\n var cats = [],\n cols = this.colors.range(),\n labels = d3.map();\n desc.categories.forEach((cat, i) => {\n if (typeof cat === 'string') {\n cats.push(cat);\n } else {\n cats.push(cat.name);\n if (cat.label) {\n labels.set(cat.name, cat.label);\n }\n cols[i] = cat.color;\n }\n });\n this.catLabels = labels;\n this.colors.domain(cats).range(cols);\n }\n }\n\n get categories() {\n return this.colors.domain();\n }\n\n get categoryColors() {\n return this.colors.range();\n }\n\n get categoryLabels() {\n //no mapping\n if (this.catLabels === null || this.catLabels.empty()) {\n return this.categories;\n }\n //label or identity mapping\n return this.categories.map((c) => this.catLabels.has(c) ? this.catLabels.get(c) : c);\n }\n\n colorOf(cat: string) {\n return this.colors(cat);\n }\n\n getLabel(row:any) {\n //no mapping\n if (this.catLabels === null || this.catLabels.empty()) {\n return '' + StringColumn.prototype.getValue.call(this, row);\n }\n return this.getLabels(row).join(this.separator);\n }\n\n getFirstLabel(row:any) {\n const l = this.getLabels(row);\n return l.length > 0 ? l[0] : null;\n }\n\n\n getLabels(row:any) {\n var v = StringColumn.prototype.getValue.call(this, row);\n const r = v ? v.split(this.separator): [];\n\n const mapToLabel = (values: string[]) => {\n if (this.catLabels === null || this.catLabels.empty()) {\n return values;\n }\n return values.map((v) => this.catLabels.has(v) ? this.catLabels.get(v) : v);\n };\n return mapToLabel(r);\n }\n\n getValue(row:any) {\n const r = this.getValues(row);\n return r.length > 0 ? r[0] : null;\n }\n\n getValues(row:any) {\n var v = StringColumn.prototype.getValue.call(this, row);\n const r = v ? v.split(this.separator): [];\n return r;\n }\n\n getCategories(row: any) {\n return this.getValues(row);\n }\n\n getColor(row:any) {\n var cat = this.getValue(row);\n if (cat === null || cat === '') {\n return null;\n }\n return this.colors(cat);\n }\n\n getColors(row:any) {\n return this.getCategories(row).map(this.colors);\n }\n\n dump(toDescRef:(desc:any) => any):any {\n var r = super.dump(toDescRef);\n r.filter = this.currentFilter;\n r.colors = {\n domain: this.colors.domain(),\n range: this.colors.range(),\n separator: this.separator\n };\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n super.restore(dump, factory);\n this.currentFilter = dump.filter || null;\n if (dump.colors) {\n this.colors.domain(dump.colors.domain).range(dump.colors.range);\n }\n this.separator = dump.separator || this.separator;\n }\n\n isFiltered() {\n return this.currentFilter != null;\n }\n\n filter(row:any):boolean {\n if (!this.isFiltered()) {\n return true;\n }\n var vs = this.getCategories(row),\n filter:any = this.currentFilter;\n return vs.every((v) => {\n if (Array.isArray(filter) && filter.length > 0) { //array mode\n return filter.indexOf(v) >= 0;\n } else if (typeof filter === 'string' && filter.length > 0) { //search mode\n return v && v.toLowerCase().indexOf(filter.toLowerCase()) >= 0;\n } else if (filter instanceof RegExp) { //regex match mode\n return v != null && v.match(filter).length > 0;\n }\n return true;\n });\n }\n\n getFilter() {\n return this.currentFilter;\n }\n\n setFilter(filter:string[]) {\n if (arrayEquals(this.currentFilter,filter)) {\n return;\n }\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], this.currentFilter, this.currentFilter = filter);\n }\n\n compare(a:any, b:any) {\n const va = this.getValues(a);\n const vb = this.getValues(b);\n //check all categories\n for (let i = 0; i < Math.min(va.length, vb.length); ++i) {\n let ci = d3.ascending(va[i], vb[i]);\n if (ci !== 0) {\n return ci;\n }\n }\n //smaller length wins\n return va.length - vb.length;\n }\n}\n\n/**\n * similar to a categorical column but the categories are mapped to numbers\n */\nexport class CategoricalNumberColumn extends ValueColumn implements INumberColumn, ICategoricalColumn {\n private colors = d3.scale.category10();\n\n /**\n * category labels by default the category name itself\n * @type {Array}\n */\n private catLabels = d3.map();\n\n private scale = d3.scale.ordinal().rangeRoundPoints([0, 1]);\n\n private currentFilter:string[] = null;\n /**\n * separator for multi handling\n * @type {string}\n */\n private separator = ';';\n private combiner = d3.max;\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.separator = desc.separator || this.separator;\n CategoricalColumn.prototype.initCategories.call(this, desc);\n\n this.scale.domain(this.colors.domain());\n if (desc.categories) {\n //lookup value or 0.5 by default\n let values = desc.categories.map((d) => ((typeof d !== 'string' && typeof (d.value) === 'number')) ? d.value : 0.5);\n this.scale.range(values);\n }\n }\n\n createEventList() {\n return super.createEventList().concat(['mappingChanged']);\n }\n\n get categories() {\n return this.colors.domain().slice();\n }\n\n get categoryColors() {\n return this.colors.range().slice();\n }\n\n get categoryLabels() {\n //no mapping\n if (this.catLabels === null || this.catLabels.empty()) {\n return this.categories;\n }\n //label or identity mapping\n return this.categories.map((c) => this.catLabels.has(c) ? this.catLabels.get(c) : c);\n }\n\n colorOf(cat: string) {\n return this.colors(cat);\n }\n\n getLabel(row:any) {\n return CategoricalColumn.prototype.getLabel.call(this, row);\n }\n\n getFirstLabel(row:any) {\n return CategoricalColumn.prototype.getFirstLabel.call(this, row);\n }\n\n getLabels(row:any) {\n return CategoricalColumn.prototype.getLabels.call(this, row);\n }\n\n getValue(row:any) {\n const r = this.getValues(row);\n return r.length > 0 ? this.combiner(r) : 0;\n }\n\n getValues(row:any) {\n const r = CategoricalColumn.prototype.getValues.call(this, row);\n return r.map(this.scale);\n }\n\n getCategories(row: any) {\n return CategoricalColumn.prototype.getValues.call(this, row);\n }\n\n getNumber(row:any) {\n return this.getValue(row);\n }\n\n getColor(row:any) {\n const vs = this.getValues(row);\n const cs = this.getColors(row);\n if (this.combiner === d3.max) {\n //use the max color\n return cs.slice(1).reduce((prev, act, i) => vs[i + 1] > prev.v ? {c: act, v: vs[i + 1]} : prev, {\n c: cs[0],\n v: vs[0]\n }).c;\n } else if (this.combiner === d3.min) {\n //use the max color\n return cs.slice(1).reduce((prev, act, i) => vs[i + 1] < prev.v ? {c: act, v: vs[i + 1]} : prev, {\n c: cs[0],\n v: vs[0]\n }).c;\n } else {\n //use the first\n return cs[0] || null;\n }\n }\n\n getColors(row) {\n return CategoricalColumn.prototype.getColors.call(this, row);\n }\n\n dump(toDescRef:(desc:any) => any):any {\n var r = CategoricalColumn.prototype.dump.call(this, toDescRef);\n r.scale = {\n domain: this.scale.domain(),\n range: this.scale.range(),\n separator: this.separator\n };\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n CategoricalColumn.prototype.restore.call(this, dump, factory);\n if (dump.scale) {\n this.scale.domain(dump.scale.domain).range(dump.scale.range);\n }\n this.separator = dump.separator || this.separator;\n }\n\n getScale() {\n return {\n domain: this.scale.domain(),\n range: this.scale.range()\n };\n }\n\n getMapping() {\n return this.scale.range().slice();\n }\n\n setMapping(range:number[]) {\n var bak = this.getScale();\n this.scale.range(range);\n this.fire(['mappingChanged', 'dirtyValues', 'dirty'], bak, this.getScale());\n }\n\n isFiltered() {\n return this.currentFilter != null;\n }\n\n filter(row:any):boolean {\n return CategoricalColumn.prototype.filter.call(this, row);\n }\n\n getFilter() {\n return this.currentFilter;\n }\n\n setFilter(filter:string[]) {\n if (this.currentFilter === filter) {\n return;\n }\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], this.currentFilter, this.currentFilter = filter);\n }\n\n compare(a:any, b:any) {\n return NumberColumn.prototype.compare.call(this, a, b);\n }\n}\n\n\n/**\n * implementation of a combine column, standard operations how to select\n */\nexport class CompositeColumn extends Column implements IColumnParent {\n protected _children:Column[] = [];\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n assignNewId(idGenerator:() => string) {\n super.assignNewId(idGenerator);\n this._children.forEach((c) => c.assignNewId(idGenerator));\n }\n\n get children() {\n return this._children.slice();\n }\n\n get length() {\n return this._children.length;\n }\n\n flatten(r:IFlatColumn[], offset:number, levelsToGo = 0, padding = 0) {\n var self = null;\n //no more levels or just this one\n if (levelsToGo === 0 || levelsToGo <= Column.FLAT_ALL_COLUMNS) {\n var w = this.getCompressed() ? Column.COMPRESSED_WIDTH : this.getWidth();\n r.push(self = {col: this, offset: offset, width: w});\n if (levelsToGo === 0) {\n return w;\n }\n }\n //push children\n this._children.forEach((c) => {\n if (!c.isHidden() || levelsToGo <= Column.FLAT_ALL_COLUMNS) {\n c.flatten(r, offset, levelsToGo - 1, padding);\n }\n });\n return w;\n }\n\n dump(toDescRef:(desc:any) => any) {\n var r = super.dump(toDescRef);\n r.children = this._children.map((d) => d.dump(toDescRef));\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n dump.children.map((child) => {\n var c = factory(child);\n if (c) {\n this.push(c);\n }\n });\n super.restore(dump, factory);\n }\n\n /**\n * inserts a column at a the given position\n * @param col\n * @param index\n * @param weight\n * @returns {any}\n */\n insert(col:Column, index:number) {\n this._children.splice(index, 0, col);\n //listen and propagate events\n return this.insertImpl(col, index);\n }\n\n protected insertImpl(col: Column, index: number) {\n col.parent = this;\n this.forward(col, 'dirtyHeader.combine', 'dirtyValues.combine', 'dirty.combine', 'filterChanged.combine');\n this.fire(['addColumn', 'dirtyHeader', 'dirtyValues', 'dirty'], col, index);\n return col;\n }\n\n push(col:Column) {\n return this.insert(col, this._children.length);\n }\n\n at(index: number) {\n return this._children[index];\n }\n\n indexOf(col:Column) {\n return this._children.indexOf(col);\n }\n\n insertAfter(col:Column, ref:Column) {\n var i = this.indexOf(ref);\n if (i < 0) {\n return null;\n }\n return this.insert(col, i + 1);\n }\n remove(child:Column) {\n var i = this._children.indexOf(child);\n if (i < 0) {\n return false;\n }\n this._children.splice(i, 1); //remove and deregister listeners\n return this.removeImpl(child);\n }\n\n protected removeImpl(child: Column) {\n child.parent = null;\n this.unforward(child, 'dirtyHeader.combine', 'dirtyValues.combine', 'dirty.combine', 'filterChanged.combine');\n this.fire(['removeColumn', 'dirtyHeader', 'dirtyValues', 'dirty'], child);\n return true;\n }\n\n getColor(row: any) {\n return this.color;\n }\n\n isFiltered() {\n return this._children.some((d) => d.isFiltered());\n }\n\n filter(row:any) {\n return this._children.every((d) => d.filter(row));\n }\n}\n\n/**\n * implementation of a combine column, standard operations how to select\n */\nexport class CompositeNumberColumn extends CompositeColumn implements INumberColumn {\n public missingValue = 0;\n\n private numberFormat : (n: number) => string = d3.format('.3n');\n\n constructor(id:string, desc:any) {\n super(id, desc);\n\n if (desc.numberFormat) {\n this.numberFormat = d3.format(desc.numberFormat);\n }\n }\n\n\n dump(toDescRef:(desc:any) => any) {\n var r = super.dump(toDescRef);\n r.missingValue = this.missingValue;\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n if (dump.missingValue) {\n this.missingValue = dump.missingValue;\n }\n if (dump.numberFormat) {\n this.numberFormat = d3.format(dump.numberFormat);\n }\n super.restore(dump, factory);\n }\n\n /**\n * inserts a column at a the given position\n * @param col\n * @param index\n * @param weight\n * @returns {any}\n */\n insert(col:Column, index:number) {\n if (!isNumberColumn(col)) { //indicator it is a number type\n return null;\n }\n return super.insert(col, index);\n }\n\n getLabel(row: any) {\n const v = this.getValue(row);\n //keep non number if it is not a number else convert using formatter\n return '' + (typeof v === 'number' ? this.numberFormat(v) : v);\n }\n\n getValue(row:any) {\n //weighted sum\n const v = this.compute(row);\n if (typeof(v) === 'undefined' || v == null || isNaN(v)) {\n return this.missingValue;\n }\n return v;\n }\n\n protected compute(row: any) {\n return NaN;\n }\n\n getNumber(row:any) {\n return this.getValue(row);\n }\n\n compare(a:any, b:any) {\n return numberCompare(this.getValue(a), this.getValue(b));\n }\n}\n\nexport interface IMultiLevelColumn extends CompositeColumn {\n getCollapsed(): boolean;\n setCollapsed(value: boolean);\n}\n\nexport function isMultiLevelColumn(col: Column) {\n return typeof ((col).getCollapsed) === 'function';\n}\n\n/**\n * implementation of the stacked column\n */\nexport class StackColumn extends CompositeNumberColumn implements IMultiLevelColumn {\n /**\n * factory for creating a description creating a stacked column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'Combined') {\n return {type: 'stack', label: label};\n }\n\n private adaptChange;\n\n /**\n * whether this stack column is collapsed i.e. just looks like an ordinary number column\n * @type {boolean}\n * @private\n */\n private collapsed = false;\n\n constructor(id:string, desc:any) {\n super(id, desc);\n\n const that = this;\n this.adaptChange = function (old, new_) {\n that.adaptWidthChange(this.source, old, new_);\n };\n }\n\n createEventList() {\n return super.createEventList().concat(['collapseChanged', 'weightsChanged']);\n }\n\n setCollapsed(value:boolean) {\n if (this.collapsed === value) {\n return;\n }\n this.fire(['collapseChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], this.collapsed, this.collapsed = value);\n }\n\n getCollapsed() {\n return this.collapsed;\n }\n\n flatten(r:IFlatColumn[], offset:number, levelsToGo = 0, padding = 0) {\n var self = null;\n const children = levelsToGo <= Column.FLAT_ALL_COLUMNS ? this._children : this._children.filter((c) => !c.isHidden());\n //no more levels or just this one\n if (levelsToGo === 0 || levelsToGo <= Column.FLAT_ALL_COLUMNS) {\n var w = this.getCompressed() ? Column.COMPRESSED_WIDTH : this.getWidth();\n if (!this.collapsed && !this.getCompressed()) {\n w += (children.length - 1) * padding;\n }\n r.push(self = {col: this, offset: offset, width: w});\n if (levelsToGo === 0) {\n return w;\n }\n }\n //push children\n var acc = offset;\n children.forEach((c) => {\n acc += c.flatten(r, acc, levelsToGo - 1, padding) + padding;\n });\n if (self) { //nesting my even increase my width\n self.width = acc - offset - padding;\n }\n return acc - offset - padding;\n }\n\n dump(toDescRef:(desc:any) => any) {\n const r = super.dump(toDescRef);\n r.collapsed = this.collapsed;\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n this.collapsed = dump.collapsed === true;\n super.restore(dump, factory);\n }\n\n /**\n * inserts a column at a the given position\n * @param col\n * @param index\n * @param weight\n * @returns {any}\n */\n insert(col:Column, index:number, weight = NaN) {\n if (!isNaN(weight)) {\n col.setWidth((weight / (1 - weight) * this.getWidth()));\n }\n col.on('widthChanged.stack', this.adaptChange);\n //increase my width\n super.setWidth(this.length === 0 ? col.getWidth() : (this.getWidth() + col.getWidth()));\n\n return super.insert(col, index);\n }\n\n push(col:Column, weight = NaN) {\n return this.insert(col, this.length, weight);\n }\n\n insertAfter(col:Column, ref:Column, weight = NaN) {\n const i = this.indexOf(ref);\n if (i < 0) {\n return null;\n }\n return this.insert(col, i + 1, weight);\n }\n\n /**\n * adapts weights according to an own width change\n * @param col\n * @param old\n * @param new_\n */\n private adaptWidthChange(col:Column, old: number, new_: number) {\n if (old === new_) {\n return;\n }\n const bak = this.getWeights();\n const full = this.getWidth(),\n change = (new_ - old) / full;\n const oldWeight = old / full;\n const factor = (1 - oldWeight - change) / (1 - oldWeight);\n this._children.forEach((c) => {\n if (c === col) {\n //c.weight += change;\n } else {\n c.setWidthImpl(c.getWidth() * factor);\n }\n });\n this.fire(['weightsChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], bak, this.getWeights());\n }\n\n getWeights() {\n const w = this.getWidth();\n return this._children.map((d) => d.getWidth() / w);\n }\n\n setWeights(weights:number[]) {\n const bak = this.getWeights();\n var s,\n delta = weights.length - this.length;\n if (delta < 0) {\n s = d3.sum(weights);\n if (s <= 1) {\n for (var i = 0; i < -delta; ++i) {\n weights.push((1 - s) * (1 / -delta));\n }\n } else if (s <= 100) {\n for (var i = 0; i < -delta; ++i) {\n weights.push((100 - s) * (1 / -delta));\n }\n }\n }\n weights = weights.slice(0, this.length);\n s = d3.sum(weights) / this.getWidth();\n weights = weights.map(d => d / s);\n\n this._children.forEach((c, i) => {\n c.setWidthImpl(weights[i]);\n });\n this.fire(['weightsChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], bak, weights);\n\n }\n\n removeImpl(child:Column) {\n child.on('widthChanged.stack', null);\n super.setWidth(this.length === 1 ? 100 : this.getWidth() - child.getWidth());\n return super.removeImpl(child);\n }\n\n setWidth(value:number) {\n const factor = value / this.getWidth();\n this._children.forEach((child) => {\n //disable since we change it\n child.setWidthImpl(child.getWidth() * factor);\n });\n super.setWidth(value);\n }\n\n protected compute(row: any) {\n const w = this.getWidth();\n return this._children.reduce((acc, d) => acc + d.getValue(row) * (d.getWidth() / w), 0);\n }\n}\n\n/**\n * combines multiple columns by using the maximal value\n */\nexport class MaxColumn extends CompositeNumberColumn {\n /**\n * factory for creating a description creating a max column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'Max') {\n return {type: 'max', label: label};\n }\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n getColor(row: any) {\n //compute the index of the maximal one\n const c = this._children;\n if (c.length === 0) {\n return this.color;\n }\n var max_i = 0, max_v = c[0].getValue(row);\n for(let i = 1; i < c.length; ++i) {\n let v = c[i].getValue(row);\n if (v > max_v) {\n max_i = i;\n max_v = v;\n }\n }\n return c[max_i].color;\n }\n\n protected compute(row: any) {\n return d3.max(this._children, (d) => d.getValue(row));\n }\n}\n\nexport class MinColumn extends CompositeNumberColumn {\n /**\n * factory for creating a description creating a min column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'Min') {\n return {type: 'min', label: label};\n }\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n getColor(row: any) {\n //compute the index of the maximal one\n const c = this._children;\n if (c.length === 0) {\n return this.color;\n }\n var min_i = 0, min_v = c[0].getValue(row);\n for(let i = 1; i < c.length; ++i) {\n let v = c[i].getValue(row);\n if (v < min_v) {\n min_i = i;\n min_v = v;\n }\n }\n return c[min_i].color;\n }\n\n protected compute(row: any) {\n return d3.min(this._children, (d) => d.getValue(row));\n }\n}\n\nexport class MeanColumn extends CompositeNumberColumn {\n /**\n * factory for creating a description creating a mean column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'Mean') {\n return {type: 'mean', label: label};\n }\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n protected compute(row: any) {\n return d3.mean(this._children, (d) => d.getValue(row));\n }\n}\n\nexport class MultiLevelCompositeColumn extends CompositeColumn implements IMultiLevelColumn {\n private adaptChange;\n\n /**\n * whether this stack column is collapsed i.e. just looks like an ordinary number column\n * @type {boolean}\n * @private\n */\n private collapsed = false;\n\n constructor(id:string, desc:any) {\n super(id, desc);\n const that = this;\n this.adaptChange = function (old, new_) {\n that.adaptWidthChange(this.source, old, new_);\n };\n }\n\n createEventList() {\n return super.createEventList().concat(['collapseChanged']);\n }\n\n setCollapsed(value:boolean) {\n if (this.collapsed === value) {\n return;\n }\n this.fire(['collapseChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], this.collapsed, this.collapsed = value);\n }\n\n getCollapsed() {\n return this.collapsed;\n }\n\n dump(toDescRef:(desc:any) => any) {\n const r = super.dump(toDescRef);\n r.collapsed = this.collapsed;\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n this.collapsed = dump.collapsed === true;\n super.restore(dump, factory);\n }\n\n flatten(r:IFlatColumn[], offset:number, levelsToGo = 0, padding = 0) {\n return StackColumn.prototype.flatten.call(this, r, offset, levelsToGo, padding);\n }\n\n /**\n * inserts a column at a the given position\n * @param col\n * @param index\n * @param weight\n * @returns {any}\n */\n insert(col:Column, index:number) {\n col.on('widthChanged.stack', this.adaptChange);\n //increase my width\n super.setWidth(this.length === 0 ? col.getWidth() : (this.getWidth() + col.getWidth()));\n\n return super.insert(col, index);\n }\n\n /**\n * adapts weights according to an own width change\n * @param col\n * @param old\n * @param new_\n */\n private adaptWidthChange(col:Column, old: number, new_: number) {\n if (old === new_) {\n return;\n }\n super.setWidth(this.getWidth()+(new_ - old));\n }\n\n removeImpl(child:Column) {\n child.on('widthChanged.stack', null);\n super.setWidth(this.length === 1 ? 100 : this.getWidth() - child.getWidth());\n return super.removeImpl(child);\n }\n\n setWidth(value:number) {\n const factor = this.length / this.getWidth();\n this._children.forEach((child) => {\n //disable since we change it\n child.setWidthImpl(child.getWidth() * factor);\n });\n super.setWidth(value);\n }\n}\n/**\n * a nested column is a composite column where the sorting order is determined by the nested ordering of the children\n * i.e., sort by the first child if equal sort by the second child,...\n */\nexport class NestedColumn extends MultiLevelCompositeColumn {\n /**\n * factory for creating a description creating a mean column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'Nested') {\n return {type: 'nested', label: label};\n }\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n compare(a:any, b:any) {\n const c = this.children;\n for (let ci of c) {\n let ci_result = ci.compare(a, b);\n if (ci_result !== 0) {\n return ci_result;\n }\n }\n return 0;\n }\n\n getLabel(row: any) {\n return this.children.map((d) => d.getLabel(row)).join(';');\n }\n\n getValue(row:any) {\n return this.children.map((d) => d.getValue(row)).join(';');\n }\n}\n\nexport class ScriptColumn extends CompositeColumn {\n /**\n * factory for creating a description creating a mean column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'script') {\n return {type: 'script', label: label, script: ScriptColumn.DEFAULT_SCRIPT};\n }\n\n static DEFAULT_SCRIPT = 'return d3.max(values)';\n\n private script = ScriptColumn.DEFAULT_SCRIPT;\n private f : Function = null;\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.script = desc.script || this.script;\n }\n\n createEventList() {\n return super.createEventList().concat(['scriptChanged']);\n }\n\n setScript(script: string) {\n if (this.script === script) {\n return;\n }\n this.f = null;\n this.fire(['scriptChanged', 'dirtyValues', 'dirty'], this.script, this.script = script);\n }\n\n getScript() {\n return this.script;\n }\n\n dump(toDescRef:(desc:any) => any) {\n const r = super.dump(toDescRef);\n r.script = this.script;\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n this.script = dump.script || this.script;\n super.restore(dump, factory);\n }\n\n protected compute(row: any) {\n if (this.f == null) {\n this.f = new Function('children','values', this.script);\n }\n return this.f.call(this, this._children, this._children.map((d) => d.getValue(row)));\n }\n}\n\n/**\n * a rank column\n */\nexport class RankColumn extends ValueColumn {\n /**\n * factory for creating a description creating a rank column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'Rank') {\n return {type: 'rank', label: label};\n }\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.setWidthImpl(50);\n }\n}\n\nexport interface ISortCriteria {\n col:Column;\n asc:boolean;\n}\n\n/**\n * a ranking\n */\nexport class Ranking extends utils.AEventDispatcher implements IColumnParent {\n\n /**\n * the current sort criteria\n * @type {null}\n * @private\n */\n private sortColumn:Column = null;\n /**\n * ascending or descending order\n * @type {boolean}\n */\n private ascending = false;\n\n /**\n * columns of this ranking\n * @type {Array}\n * @private\n */\n private columns:Column[] = [];\n\n comparator = (a:any, b:any) => {\n if (this.sortColumn === null) {\n return 0;\n }\n var r = this.sortColumn.compare(a, b);\n return this.ascending ? r : -r;\n };\n\n dirtyOrder = () => {\n this.fire(['dirtyOrder', 'dirtyValues', 'dirty'], this.getSortCriteria());\n };\n\n /**\n * the current ordering as an sorted array of indices\n * @type {Array}\n */\n private order:number[] = [];\n\n constructor(public id : string) {\n super();\n this.id = fixCSS(id);\n }\n\n createEventList() {\n return super.createEventList().concat(['widthChanged', 'filterChanged', 'labelChanged', 'compressChanged', 'addColumn', 'removeColumn', 'dirty', 'dirtyHeader', 'dirtyValues', 'sortCriteriaChanged', 'dirtyOrder', 'orderChanged']);\n }\n\n assignNewId(idGenerator:() => string) {\n this.id = fixCSS(idGenerator());\n this.columns.forEach((c) => c.assignNewId(idGenerator));\n }\n\n setOrder(order:number[]) {\n this.fire(['orderChanged', 'dirtyValues', 'dirty'], this.order, this.order = order);\n }\n\n getOrder() {\n return this.order;\n }\n\n dump(toDescRef:(desc:any) => any) {\n var r : any = {};\n r.columns = this.columns.map((d) => d.dump(toDescRef));\n r.sortColumn = {\n asc: this.ascending\n };\n if (this.sortColumn) {\n r.sortColumn.sortBy = this.sortColumn.id; //store the index not the object\n }\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n this.clear();\n dump.columns.map((child) => {\n var c = factory(child);\n if (c) {\n this.push(c);\n }\n });\n if (dump.sortColumn) {\n this.ascending = dump.sortColumn.asc;\n if (dump.sortColumn.sortBy) {\n let help = this.columns.filter((d) => d.id === dump.sortColumn.sortBy);\n this.sortBy(help.length === 0 ? null : help[0], dump.sortColumn.asc);\n }\n }\n }\n\n flatten(r:IFlatColumn[], offset:number, levelsToGo = 0, padding = 0) {\n var acc = offset; // + this.getWidth() + padding;\n if (levelsToGo > 0 || levelsToGo <= Column.FLAT_ALL_COLUMNS) {\n this.columns.forEach((c) => {\n if (!c.isHidden() || levelsToGo <= Column.FLAT_ALL_COLUMNS) {\n acc += c.flatten(r, acc, levelsToGo - 1, padding) + padding;\n }\n });\n }\n return acc - offset;\n }\n\n getSortCriteria(): ISortCriteria {\n return {\n col: this.sortColumn,\n asc: this.ascending\n };\n }\n\n toggleSorting(col:Column) {\n if (this.sortColumn === col) {\n return this.sortBy(col, !this.ascending);\n }\n return this.sortBy(col);\n }\n\n setSortCriteria(value: ISortCriteria) {\n return this.sortBy(value.col, value.asc);\n }\n\n sortBy(col:Column, ascending = false) {\n if (col !== null && col.findMyRanker() !== this) {\n return false; //not one of mine\n }\n if (this.sortColumn === col && this.ascending === ascending) {\n return true; //already in this order\n }\n if (this.sortColumn) { //disable dirty listening\n this.sortColumn.on('dirtyValues.order', null);\n }\n var bak = this.getSortCriteria();\n this.sortColumn = col;\n if (this.sortColumn) { //enable dirty listening\n this.sortColumn.on('dirtyValues.order', this.dirtyOrder);\n }\n this.ascending = ascending;\n this.fire(['sortCriteriaChanged', 'dirtyOrder', 'dirtyHeader', 'dirtyValues', 'dirty'], bak, this.getSortCriteria());\n return true;\n }\n\n get children() {\n return this.columns.slice();\n }\n\n get length() {\n return this.columns.length;\n }\n\n insert(col:Column, index:number = this.columns.length) {\n this.columns.splice(index, 0, col);\n col.parent = this;\n this.forward(col, 'dirtyValues.ranking', 'dirtyHeader.ranking', 'dirty.ranking', 'filterChanged.ranking');\n col.on('filterChanged.order', this.dirtyOrder);\n\n\n this.fire(['addColumn', 'dirtyHeader', 'dirtyValues', 'dirty'], col, index);\n\n if (this.sortColumn === null && !(col instanceof RankColumn || col instanceof SelectionColumn || col instanceof DummyColumn)) {\n this.sortBy(col, col instanceof StringColumn);\n }\n return col;\n }\n\n get fqpath() {\n return '';\n }\n\n findByPath(fqpath: string): Column {\n var p : IColumnParent|Column = this;\n const indices = fqpath.split('@').map(Number).slice(1); //ignore the first entry = ranking\n while(indices.length > 0) {\n let i = indices.shift();\n p = (p).at(i);\n }\n return p;\n }\n\n indexOf(col: Column) {\n return this.columns.indexOf(col);\n }\n\n at(index: number) {\n return this.columns[index];\n }\n\n insertAfter(col:Column, ref:Column) {\n var i = this.columns.indexOf(ref);\n if (i < 0) {\n return null;\n }\n return this.insert(col, i + 1);\n }\n\n push(col:Column) {\n return this.insert(col);\n }\n\n remove(col:Column) {\n var i = this.columns.indexOf(col);\n if (i < 0) {\n return false;\n }\n\n this.unforward(col, 'dirtyValues.ranking', 'dirtyHeader.ranking', 'dirty.ranking', 'filterChanged.ranking');\n\n if (this.sortColumn === col) { //was my sorting one\n let next = this.columns.filter((d) => d !== col && !(d instanceof SelectionColumn) && !(d instanceof RankColumn))[0];\n this.sortBy(next ? next : null);\n }\n\n col.parent = null;\n this.columns.splice(i, 1);\n\n this.fire(['removeColumn', 'dirtyHeader', 'dirtyValues', 'dirty'], col, i);\n return true;\n }\n\n clear() {\n if (this.columns.length === 0) {\n return;\n }\n this.sortColumn = null;\n this.columns.forEach((col) => {\n this.unforward(col, 'dirtyValues.ranking', 'dirtyHeader.ranking', 'dirty.ranking', 'filterChanged.ranking');\n col.parent = null;\n });\n this.columns.length = 0;\n this.fire(['removeColumn', 'dirtyHeader', 'dirtyValues', 'dirty'], null);\n }\n\n get flatColumns() {\n var r:IFlatColumn[] = [];\n this.flatten(r, 0, Column.FLAT_ALL_COLUMNS);\n return r.map((d) => d.col);\n }\n\n find(id_or_filter:(col:Column) => boolean | string) {\n var filter = typeof(id_or_filter) === 'string' ? (col) => col.id === id_or_filter : id_or_filter;\n var r = this.flatColumns;\n for (var i = 0; i < r.length; ++i) {\n if (filter(r[i])) {\n return r[i];\n }\n }\n return null;\n }\n\n /**\n * converts the sorting criteria to a json compatible notation for transferring it to the server\n * @param toId\n * @return {any}\n */\n toSortingDesc(toId:(desc:any) => string) {\n //TODO describe also all the filter settings\n var resolve = (s:Column):any => {\n if (s === null) {\n return null;\n }\n if (s instanceof StackColumn) {\n var w = (s).getWeights();\n return (s).children.map((child, i) => {\n return {\n weight: w[i],\n id: resolve(child)\n };\n });\n }\n return toId(s.desc);\n };\n var id = resolve(this.sortColumn);\n if (id === null) {\n return null;\n }\n return {\n id: id,\n asc: this.ascending\n };\n }\n\n isFiltered() {\n return this.columns.some((d) => d.isFiltered());\n }\n\n filter(row:any) {\n return this.columns.every((d) => d.filter(row));\n }\n\n findMyRanker() {\n return this;\n }\n\n get fqid() {\n return this.id;\n }\n}\n\n/**\n * defines a new column type\n * @param name\n * @param functions\n * @returns {CustomColumn}\n */\nexport function defineColumn(name: string, functions: any = {}) {\n class CustomColumn extends ValueColumn {\n constructor(id:string, desc:IColumnDesc) {\n super(id, desc);\n if (typeof (this.init) === 'function') {\n this.init.apply(this, [].slice.apply(arguments));\n }\n }\n }\n CustomColumn.prototype.toString = () => name;\n CustomColumn.prototype = utils.merge(CustomColumn.prototype, functions);\n\n return CustomColumn;\n}\n\n/**\n * utility for creating a stacked column description\n * @type {function(string=): {type: string, label: string}}\n */\nexport const createStackDesc = StackColumn.desc;\nexport const createRankDesc = RankColumn.desc;\nexport const createSelectionDesc = SelectionColumn.desc;\nexport const createMinDesc = MinColumn.desc;\nexport const createMaxDesc = MaxColumn.desc;\nexport const createMeanDesc = MeanColumn.desc;\nexport const createNestedDesc = NestedColumn.desc;\nexport const createScriptDesc = ScriptColumn.desc;\n/**\n * utility for creating an action description with optional label\n * @param label\n * @returns {{type: string, label: string}}\n */\nexport function createActionDesc(label = 'actions') {\n return {type: 'actions', label: label};\n}\n\n/**\n * a map of all known column types\n */\nexport function models() {\n return {\n number: NumberColumn,\n string: StringColumn,\n link: LinkColumn,\n stack: StackColumn,\n rank: RankColumn,\n boolean: BooleanColumn,\n categorical: CategoricalColumn,\n ordinal: CategoricalNumberColumn,\n actions: DummyColumn,\n annotate: AnnotateColumn,\n selection: SelectionColumn,\n\n max: MaxColumn,\n min: MinColumn,\n mean: MinColumn,\n script: ScriptColumn,\n nested: NestedColumn\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/model.ts\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_5__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"d3\"\n ** module id = 5\n ** module chunks = 0\n **/","/**\r\n * Created by Samuel Gratzl on 14.08.2015.\r\n */\r\n\r\n///\r\nimport d3 = require('d3');\r\n\r\n/**\r\n * create a delayed call, can be called multiple times but only the last one at most delayed by timeToDelay will be executed\r\n * @param callback the callback to call\r\n * @param timeToDelay delay the call in milliseconds\r\n * @param thisCallback this argument of the callback\r\n * @return {function(...[any]): undefined} a function that can be called with the same interface as the callback but delayed\r\n */\r\nexport function delayedCall(callback:(...args:any[]) => void, timeToDelay = 100, thisCallback = this) {\r\n var tm = -1;\r\n return function (...args:any[]) {\r\n if (tm >= 0) {\r\n clearTimeout(tm);\r\n tm = -1;\r\n }\r\n args.unshift(thisCallback === null ? this : thisCallback);\r\n tm = setTimeout(callback.bind.apply(callback, args), timeToDelay);\r\n };\r\n}\r\n\r\n/**\r\n * utility for AEventDispatcher to forward an event\r\n * @param to\r\n * @param event\r\n * @return {function(...[any]): undefined}\r\n */\r\nexport function forwardEvent(to:AEventDispatcher, event?:string) {\r\n return function (...args:any[]) {\r\n args.unshift(event || this.type);\r\n to.fire.apply(to, args);\r\n };\r\n}\r\n\r\n/**\r\n * base class for event dispatching using d3 event mechanism\r\n */\r\nexport class AEventDispatcher {\r\n private listeners:d3.Dispatch;\r\n private forwarder = forwardEvent(this);\r\n\r\n constructor() {\r\n this.listeners = d3.dispatch.apply(d3, this.createEventList());\r\n }\r\n\r\n on(type:string):(...args:any[]) => void;\r\n on(type:string|string[], listener:(...args:any[]) => any):AEventDispatcher;\r\n on(type:string|string[], listener?:(...args:any[]) => any):any {\r\n if (arguments.length > 1) {\r\n if (Array.isArray(type)) {\r\n (type).forEach((d) => this.listeners.on(d, listener));\r\n } else {\r\n this.listeners.on(type, listener);\r\n }\r\n return this;\r\n }\r\n return this.listeners.on(type);\r\n }\r\n\r\n /**\r\n * return the list of events to be able to dispatch\r\n * @return {Array}\r\n */\r\n createEventList():string[] {\r\n return [];\r\n }\r\n\r\n fire(type:string|string[], ...args:any[]) {\r\n var fireImpl = (t) => {\r\n //local context per event, set a this argument\r\n var context = {\r\n source: this, //who is sending this event\r\n type: t, //the event type\r\n args: args //the arguments to the listener\r\n };\r\n this.listeners[t].apply(context, args);\r\n };\r\n if (Array.isArray(type)) {\r\n (type).forEach(fireImpl.bind(this));\r\n } else {\r\n fireImpl(type);\r\n }\r\n }\r\n\r\n /**\r\n * forwards one or more events from a given dispatcher to the current one\r\n * i.e. when one of the given events is fired in 'from' it will be forwared to all my listeners\r\n * @param from the event dispatcher to forward from\r\n * @param types the event types to forward\r\n */\r\n forward(from:AEventDispatcher, ...types:string[]) {\r\n from.on(types, this.forwarder);\r\n }\r\n\r\n /**\r\n * removes the forwarding declarations\r\n * @param from\r\n * @param types\r\n */\r\n unforward(from:AEventDispatcher, ...types:string[]) {\r\n from.on(types, null);\r\n }\r\n}\r\n\r\nconst TYPE_OBJECT = '[object Object]';\r\nconst TYPE_ARRAY = '[object Array]';\r\n\r\n//credits to https://github.com/vladmiller/dextend/blob/master/lib/dextend.js\r\nexport function merge(...args:any[]) {\r\n var result = null;\r\n\r\n for (var i = 0; i < args.length; i++) {\r\n var toMerge = args[i],\r\n keys = Object.keys(toMerge);\r\n\r\n if (result === null) {\r\n result = toMerge;\r\n continue;\r\n }\r\n\r\n for (var j = 0; j < keys.length; j++) {\r\n var keyName = keys[j];\r\n var value = toMerge[keyName];\r\n\r\n //merge just POJOs\r\n if (Object.prototype.toString.call(value) === TYPE_OBJECT && (Object.getPrototypeOf(value) === Object.prototype)) { //pojo\r\n if (result[keyName] === undefined) {\r\n result[keyName] = {};\r\n }\r\n result[keyName] = merge(result[keyName], value);\r\n } else if (Object.prototype.toString.call(value) === TYPE_ARRAY) {\r\n if (result[keyName] === undefined) {\r\n result[keyName] = [];\r\n }\r\n result[keyName] = value.concat(result[keyName]);\r\n } else {\r\n result[keyName] = value;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * computes the absolute offset of the given element\r\n * @param element\r\n * @return {{left: number, top: number, width: number, height: number}}\r\n */\r\nexport function offset(element) {\r\n var obj = element.getBoundingClientRect();\r\n return {\r\n left: obj.left + window.pageXOffset,\r\n top: obj.top + window.pageYOffset,\r\n width: obj.width,\r\n height: obj.height\r\n };\r\n}\r\n\r\n/**\r\n * content scroller utility\r\n *\r\n * a class for efficiently selecting a range of data items that are currently visible according to the scrolled position\r\n */\r\nexport class ContentScroller extends AEventDispatcher {\r\n private options = {\r\n /**\r\n * shift that should be used for calculating the top position\r\n */\r\n topShift: () => 0,\r\n /**\r\n * backup rows, i.e .the number of rows that should also be shown for avoiding to frequent updates\r\n */\r\n backupRows: 5,\r\n /**\r\n * the height of one row in pixel\r\n */\r\n rowHeight: 10\r\n };\r\n\r\n private prevScrollTop = 0;\r\n private shift = 0;\r\n\r\n /**\r\n *\r\n * @param container the container element wrapping the content with a fixed height for enforcing scrolling\r\n * @param content the content element to scroll\r\n * @param options options see attribute\r\n */\r\n constructor(private container:Element, private content:Element, options:any = {}) {\r\n super();\r\n merge(this.options, options);\r\n d3.select(container).on('scroll.scroller', () => this.onScroll());\r\n\r\n //keep the previous state computing whether a redraw is needed\r\n this.prevScrollTop = container.scrollTop;\r\n //total shift to the top\r\n this.shift = offset(content).top - offset(container).top;\r\n }\r\n\r\n /**\r\n * two events are fired:\r\n * * scroll when the user scrolls the container\r\n * * redraw when a redraw of the content must be performed due to scrolling changes. Note due to backup rows\r\n * a scrolling operation might not include a redraw\r\n *\r\n * @returns {string[]}\r\n */\r\n createEventList() {\r\n return super.createEventList().concat(['scroll', 'redraw']);\r\n }\r\n\r\n scrollIntoView(start: number, length: number, index: number, row2y:(i:number) => number) {\r\n const range = this.select(start, length, row2y);\r\n if (range.from <= index && index <= range.to) {\r\n return; //already visible\r\n }\r\n\r\n var top = this.container.scrollTop - this.shift - this.options.topShift(),\r\n bottom = top + this.container.clientHeight,\r\n i = 0, j;\r\n if (top > 0) {\r\n i = Math.round(top / this.options.rowHeight);\r\n //count up till really even partial rows are visible\r\n while (i >= start && row2y(i + 1) > top) {\r\n i--;\r\n }\r\n i -= this.options.backupRows; //one more row as backup for scrolling\r\n }\r\n { //some parts from the bottom aren't visible\r\n j = Math.round(bottom / this.options.rowHeight);\r\n //count down till really even partial rows are visible\r\n while (j <= length && row2y(j - 1) < bottom) {\r\n j++;\r\n }\r\n j += this.options.backupRows; //one more row as backup for scrolling\r\n }\r\n }\r\n\r\n /**\r\n * selects a range identified by start and length and the row2y position callback returning the slice to show according to the current user scrolling position\r\n * @param start start of the range\r\n * @param length length of the range\r\n * @param row2y lookup for computing the y position of a given row\r\n * @returns {{from: number, to: number}} the slide to show\r\n */\r\n select(start:number, length:number, row2y:(i:number) => number) {\r\n var top = this.container.scrollTop - this.shift - this.options.topShift(),\r\n bottom = top + this.container.clientHeight,\r\n i = 0, j;\r\n /*console.log(window.matchMedia('print').matches, window.matchMedia('screen').matches, top, bottom);\r\n if (typeof window.matchMedia === 'function' && window.matchMedia('print').matches) {\r\n console.log('show all');\r\n return [0, data.length];\r\n }*/\r\n if (top > 0) {\r\n i = Math.round(top / this.options.rowHeight);\r\n //count up till really even partial rows are visible\r\n while (i >= start && row2y(i + 1) > top) {\r\n i--;\r\n }\r\n i -= this.options.backupRows; //one more row as backup for scrolling\r\n }\r\n { //some parts from the bottom aren't visible\r\n j = Math.round(bottom / this.options.rowHeight);\r\n //count down till really even partial rows are visible\r\n while (j <= length && row2y(j - 1) < bottom) {\r\n j++;\r\n }\r\n j += this.options.backupRows; //one more row as backup for scrolling\r\n }\r\n return {\r\n from: Math.max(i, start),\r\n to: Math.min(j, length)\r\n };\r\n }\r\n\r\n private onScroll() {\r\n var top = this.container.scrollTop;\r\n var left = this.container.scrollLeft;\r\n //at least one row changed\r\n //console.log(top, left);\r\n this.fire('scroll', top, left);\r\n if (Math.abs(this.prevScrollTop - top) >= this.options.rowHeight * this.options.backupRows) {\r\n //we scrolled out of our backup rows, so we have to redraw the content\r\n this.prevScrollTop = top;\r\n this.fire('redraw');\r\n }\r\n }\r\n\r\n /**\r\n * removes the listeners\r\n */\r\n destroy() {\r\n d3.select(this.container).on('scroll.scroller', null);\r\n }\r\n}\r\n\r\n/**\r\n * checks whether the given DragEvent has one of the given types\r\n */\r\nexport function hasDnDType(e:DragEvent, typesToCheck:string[]) {\r\n var types:any = e.dataTransfer.types;\r\n if (typeof types.indexOf === 'function') {\r\n return typesToCheck.some((type) => types.indexOf(type) >= 0);\r\n }\r\n if (typeof types.includes === 'function') {\r\n return typesToCheck.some((type) => types.includes(type));\r\n }\r\n if (typeof types.contains === 'function') {\r\n return typesToCheck.some((type) => types.contains(type));\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * should it be a copy dnd operation?\r\n */\r\nexport function copyDnD(e:DragEvent) {\r\n var dT = e.dataTransfer;\r\n return (e.ctrlKey && dT.effectAllowed.match(/copy/gi) != null) || (dT.effectAllowed.match(/move/gi) == null);\r\n}\r\n\r\n/**\r\n * updates the drop effect according to the currently selected meta keys\r\n * @param e\r\n */\r\nexport function updateDropEffect(e:DragEvent) {\r\n var dT = e.dataTransfer;\r\n if (copyDnD(e)) {\r\n dT.dropEffect = 'copy';\r\n } else {\r\n dT.dropEffect = 'move';\r\n }\r\n}\r\n\r\n/**\r\n * returns a d3 callable function to make an element dropable, managed the class css 'drag_over' for hovering effects\r\n * @param mimeTypes the mime types to be dropable\r\n * @param onDrop: handler when an element is dropped\r\n */\r\nexport function dropAble(mimeTypes:string[], onDrop:(data:any, d:T, copy:boolean) => boolean) {\r\n return ($node) => {\r\n $node.on('dragenter', function () {\r\n var e = (d3.event);\r\n //var xy = d3.mouse($node.node());\r\n if (hasDnDType(e, mimeTypes)) {\r\n d3.select(this).classed('drag_over', true);\r\n //sounds good\r\n return false;\r\n }\r\n //not a valid mime type\r\n d3.select(this).classed('drag_over', false);\r\n }).on('dragover', function () {\r\n var e = (d3.event);\r\n if (hasDnDType(e, mimeTypes)) {\r\n e.preventDefault();\r\n updateDropEffect(e);\r\n d3.select(this).classed('drag_over', true);\r\n return false;\r\n }\r\n }).on('dragleave', function () {\r\n //\r\n d3.select(this).classed('drag_over', false);\r\n }).on('drop', function (d:T) {\r\n var e = (d3.event);\r\n e.preventDefault();\r\n d3.select(this).classed('drag_over', false);\r\n //var xy = d3.mouse($node.node());\r\n if (hasDnDType(e, mimeTypes)) {\r\n var data:any = {};\r\n //selects the data contained in the data transfer\r\n mimeTypes.forEach((mime) => {\r\n var value = e.dataTransfer.getData(mime);\r\n if (value !== '') {\r\n data[mime] = value;\r\n }\r\n });\r\n return onDrop(data, d, copyDnD(e));\r\n }\r\n });\r\n };\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils.ts\n **/","/**\n * Created by Samuel Gratzl on 14.08.2015.\n */\n\nimport model = require('./model');\nimport utils = require('./utils');\nimport d3 = require('d3');\n\n/**\n * computes the simple statistics of an array using d3 histogram\n * @param arr the data array\n * @param acc accessor function\n * @param range the total value range\n * @returns {{min: number, max: number, count: number, hist: histogram.Bin[]}}\n */\nfunction computeStats(arr:any[], acc:(any) => number, range?:[number, number]):model.IStatistics {\n if (arr.length === 0) {\n return {\n min: NaN,\n max: NaN,\n mean: NaN,\n count: 0,\n maxBin: 0,\n hist: []\n };\n }\n const hist = d3.layout.histogram().value(acc);\n if (range) {\n hist.range(() => range);\n }\n const ex = d3.extent(arr, acc);\n const hist_data = hist(arr);\n return {\n min: ex[0],\n max: ex[1],\n mean: d3.mean(arr, acc),\n count: arr.length,\n maxBin: d3.max(hist_data, (d) => d.y),\n hist: hist_data\n };\n}\n\n/**\n * computes a categorical histogram\n * @param arr the data array\n * @param acc the accessor\n * @param categories the list of known categories\n * @returns {{hist: {cat: string, y: number}[]}}\n */\nfunction computeHist(arr:any[], acc:(any) => string[], categories: string[]):model.ICategoricalStatistics {\n const m = d3.map();\n categories.forEach((cat) => m.set(cat, 0));\n\n arr.forEach((a) => {\n const vs = acc(a);\n if (vs == null) {\n return;\n }\n vs.forEach((v) => {\n m.set(v, (m.get(v) || 0) + 1);\n });\n });\n return {\n maxBin: d3.max(m.values()),\n hist: m.entries().map((entry) => ({ cat: entry.key, y : entry.value}))\n };\n}\n\n\nfunction isSupportType(col: model.IColumnDesc) {\n return ['rank', 'selection', 'actions'].indexOf(col.type) >= 0;\n}\n\nexport interface IExportOptions {\n /**\n * export separator, default: '\\t'\n */\n separator?: string;\n /**\n * new line character, default: '\\n'\n */\n newline?: string;\n /**\n * should a header be generated, default: true\n */\n header?: boolean;\n /**\n * quote strings, default: false\n */\n quote?: boolean;\n /**\n * quote string to use, default: '\"'\n */\n quoteChar?: string;\n /**\n * filter specific column types, default: exclude all support types (selection, action, rank)\n * @param col the column description to filter\n */\n filter?: (col: model.IColumnDesc)=>boolean; //!isSupportType\n}\n\n/**\n * a basic data provider holding the data and rankings\n */\nexport class DataProvider extends utils.AEventDispatcher {\n /**\n * all rankings\n * @type {Array}\n * @private\n */\n private rankings_:model.Ranking[] = [];\n /**\n * the current selected indices\n * @type {Set}\n */\n private selection = d3.set();\n\n private uid = 0;\n\n /**\n * lookup map of a column type to its column implementation\n */\n columnTypes:any = utils.merge({}, model.models());\n\n\n constructor(options : any = {}) {\n super();\n this.columnTypes = utils.merge(model.models(), options.columnTypes || {});\n }\n\n /**\n * events:\n * * column changes: addColumn, removeColumn\n * * ranking changes: addRanking, removeRanking\n * * dirty: dirty, dirtyHeder, dirtyValues\n * * selectionChanged\n * @returns {string[]}\n */\n createEventList() {\n return super.createEventList().concat(['addColumn', 'removeColumn', 'addRanking', 'removeRanking', 'dirty', 'dirtyHeader', 'dirtyValues', 'orderChanged', 'selectionChanged']);\n }\n\n /**\n * returns a list of all known column descriptions\n * @returns {Array}\n */\n getColumns():model.IColumnDesc[] {\n return [];\n }\n\n /**\n * adds a new ranking\n * @param existing an optional existing ranking to clone\n * @return the new ranking\n */\n pushRanking(existing?:model.Ranking) : model.Ranking {\n const r = this.cloneRanking(existing);\n this.insertRanking(r);\n return r;\n }\n\n takeSnapshot(col: model.Column): model.Ranking {\n const r = this.cloneRanking();\n r.push(this.clone(col));\n this.insertRanking(r);\n return r;\n }\n\n insertRanking(r:model.Ranking, index = this.rankings_.length) {\n this.rankings_.splice(index, 0, r);\n this.forward(r, 'addColumn.provider', 'removeColumn.provider', 'dirty.provider', 'dirtyHeader.provider', 'orderChanged.provider', 'dirtyValues.provider');\n const that = this;\n //delayed reordering per ranking\n r.on('dirtyOrder.provider', utils.delayedCall(function () {\n that.triggerReorder(this.source);\n }, 100, null));\n this.fire(['addRanking', 'dirtyHeader', 'dirtyValues', 'dirty'], r, index);\n this.triggerReorder(r);\n }\n\n protected triggerReorder(ranking: model.Ranking) {\n this.sort(ranking).then((order) => ranking.setOrder(order));\n }\n\n /**\n * removes a ranking from this data provider\n * @param ranking\n * @returns {boolean}\n */\n removeRanking(ranking:model.Ranking) {\n const i = this.rankings_.indexOf(ranking);\n if (i < 0) {\n return false;\n }\n this.unforward(ranking, 'addColumn.provider', 'removeColumn.provider', 'dirty.provider', 'dirtyHeader.provider', 'orderChanged.provider', 'dirtyOrder.provider', 'dirtyValues.provider');\n this.rankings_.splice(i, 1);\n ranking.on('dirtyOrder.provider', null);\n this.cleanUpRanking(ranking);\n this.fire(['removeRanking', 'dirtyHeader', 'dirtyValues', 'dirty'], ranking, i);\n return true;\n }\n\n /**\n * removes all rankings\n */\n clearRankings() {\n this.rankings_.forEach((ranking) => {\n this.unforward(ranking, 'addColumn.provider', 'removeColumn.provider', 'dirty.provider', 'dirtyHeader.provider', 'dirtyOrder.provider', 'dirtyValues.provider');\n ranking.on('dirtyOrder.provider', null);\n this.cleanUpRanking(ranking);\n });\n this.rankings_ = [];\n this.fire(['removeRanking', 'dirtyHeader', 'dirtyValues', 'dirty'], null);\n }\n\n /**\n * returns a list of all current rankings\n * @returns {model.Ranking[]}\n */\n getRankings() {\n return this.rankings_.slice();\n }\n\n /**\n * returns the last ranking for quicker access\n * @returns {model.Ranking}\n */\n getLastRanking() {\n return this.rankings_[this.rankings_.length - 1];\n }\n\n /**\n * hook method for cleaning up a ranking\n * @param ranking\n */\n cleanUpRanking(ranking:model.Ranking) {\n //nothing to do\n }\n\n /**\n * abstract method for cloning a ranking\n * @param existing\n * @returns {null}\n */\n cloneRanking(existing?:model.Ranking): model.Ranking {\n return null; //implement me\n }\n\n /**\n * adds a column to a ranking described by its column description\n * @param ranking the ranking to add the column to\n * @param desc the description of the column\n * @return {model.Column} the newly created column or null\n */\n push(ranking:model.Ranking, desc:model.IColumnDesc):model.Column {\n const r = this.create(desc);\n if (r) {\n ranking.push(r);\n return r;\n }\n return null;\n }\n\n /**\n * adds a column to a ranking described by its column description\n * @param ranking the ranking to add the column to\n * @param index the position to insert the column\n * @param desc the description of the column\n * @return {model.Column} the newly created column or null\n */\n insert(ranking:model.Ranking, index:number, desc:model.IColumnDesc) {\n const r = this.create(desc);\n if (r) {\n ranking.insert(r, index);\n return r;\n }\n return null;\n }\n\n /**\n * creates a new unique id for a column\n * @returns {string}\n */\n private nextId() {\n return 'col' + (this.uid++);\n }\n\n protected rankAccessor(row: any, id: string, desc: model.IColumnDesc, ranking: model.Ranking) {\n return 0;\n }\n\n private fixDesc(desc: model.IColumnDesc) {\n //hacks for provider dependent descriptors\n if (desc.type === 'rank') {\n (desc).accessor = this.rankAccessor.bind(this);\n } else if (desc.type === 'selection') {\n (desc).accessor = (row: any) => this.isSelected(row._index);\n (desc).setter = (row: any, value: boolean) => value ? this.select(row._index) : this.deselect(row._index);\n }\n }\n /**\n * creates an internal column model out of the given column description\n * @param desc\n * @returns {model.Column] the new column or null if it can't be created\n */\n create(desc:model.IColumnDesc):model.Column {\n this.fixDesc(desc);\n //find by type and instantiate\n const type = this.columnTypes[desc.type];\n if (type) {\n return new type(this.nextId(), desc);\n }\n return null;\n }\n\n /**\n * clones a column by dumping and restoring\n * @param col\n * @returns {model.Column}\n */\n clone(col:model.Column) {\n const dump = this.dumpColumn(col);\n return this.restoreColumn(dump);\n }\n\n /**\n * restores a column from a dump\n * @param dump\n * @returns {model.Column}\n */\n restoreColumn(dump:any):model.Column {\n const create = (d:any) => {\n const desc = this.fromDescRef(d.desc);\n var type = this.columnTypes[desc.type];\n this.fixDesc(desc);\n var c = new type('', desc);\n c.restore(d, create);\n c.assignNewId(this.nextId.bind(this));\n return c;\n };\n return create(dump);\n }\n\n /**\n * finds a column in all rankings returning the first match\n * @param id_or_filter by id or by a filter function\n * @returns {model.Column}\n */\n find(id_or_filter:(col:model.Column) => boolean | string):model.Column {\n //convert to function\n const filter = typeof(id_or_filter) === 'string' ? (col) => col.id === id_or_filter : id_or_filter;\n\n for (let i = 0; i < this.rankings_.length; ++i) {\n let r = this.rankings_[i].find(filter);\n if (r) {\n return r;\n }\n }\n return null;\n }\n\n\n /**\n * dumps this whole provider including selection and the rankings\n * @returns {{uid: number, selection: number[], rankings: *[]}}\n */\n dump():any {\n return {\n uid: this.uid,\n selection: this.selection.values().map(Number),\n rankings: this.rankings_.map((r) => r.dump(this.toDescRef))\n };\n }\n\n /**\n * dumps a specific column\n * @param col\n * @returns {any}\n */\n dumpColumn(col:model.Column) {\n return col.dump(this.toDescRef);\n }\n\n /**\n * for better dumping describe reference, by default just return the description\n * @param desc\n * @returns {any}\n */\n toDescRef(desc:any):any {\n return desc;\n }\n\n /**\n * inverse operation of toDescRef\n * @param descRef\n * @returns {any}\n */\n fromDescRef(descRef:any):any {\n return descRef;\n }\n\n private createHelper = (d:any) => {\n //factory method for restoring a column\n const desc = this.fromDescRef(d.desc);\n var c = null;\n if (desc && desc.type) {\n this.fixDesc(d.desc);\n let type = this.columnTypes[desc.type];\n c = new type(d.id, desc);\n c.restore(d, this.createHelper);\n }\n return c;\n };\n\n restoreRanking(dump: any) {\n const ranking = this.cloneRanking();\n ranking.restore(dump, this.createHelper);\n //if no rank column add one\n if (!ranking.children.some((d) => d instanceof model.RankColumn)) {\n ranking.insert(this.create(model.RankColumn.desc()), 0);\n }\n const idGenerator = this.nextId.bind(this);\n ranking.children.forEach((c) => c.assignNewId(idGenerator));\n\n return ranking;\n }\n\n restore(dump:any) {\n\n\n //clean old\n this.clearRankings();\n\n //restore selection\n this.uid = dump.uid || 0;\n if (dump.selection) {\n dump.selection.forEach((s) => this.selection.add(String(s)));\n }\n\n\n //restore rankings\n if (dump.rankings) {\n dump.rankings.forEach((r) => {\n var ranking = this.cloneRanking();\n ranking.restore(r, this.createHelper);\n //if no rank column add one\n if (!ranking.children.some((d) => d instanceof model.RankColumn)) {\n ranking.insert(this.create(model.RankColumn.desc()), 0);\n }\n this.insertRanking(ranking);\n });\n }\n if (dump.layout) { //we have the old format try to create it\n Object.keys(dump.layout).forEach((key) => {\n this.deriveRanking(dump.layout[key]);\n });\n }\n //assign new ids\n const idGenerator = this.nextId.bind(this);\n this.rankings_.forEach((r) => {\n r.children.forEach((c) => c.assignNewId(idGenerator));\n });\n }\n\n findDesc(ref:string) {\n return null;\n }\n\n /**\n * generates a default ranking by using all column descriptions ones\n */\n deriveDefault() {\n if (this.rankings_.length > 0) {\n //no default if we have a ranking\n return;\n }\n const r = this.pushRanking();\n this.getColumns().forEach((col) => {\n if (!isSupportType(col)) {\n this.push(r, col);\n }\n });\n }\n\n /**\n * derives a ranking from an old layout bundle format\n * @param bundle\n */\n private deriveRanking(bundle:any[]) {\n const ranking = this.cloneRanking();\n ranking.clear();\n const toCol = (column) => {\n if (column.type === 'rank') {\n return this.create(model.createRankDesc());\n }\n if (column.type === 'selection') {\n return this.create(model.createSelectionDesc());\n }\n if (column.type === 'actions') {\n let r = this.create(model.createActionDesc(column.label || 'actions'));\n r.restore(column, null);\n return r;\n }\n if (column.type === 'stacked') {\n //create a stacked one\n let r = this.create(model.createStackDesc(column.label || 'Combined'));\n (column.children || []).forEach((col) => {\n let c = toCol(col);\n if (c) {\n r.push(c);\n }\n });\n return r;\n } else {\n let desc = this.findDesc(column.column);\n if (desc) {\n let r = this.create(desc);\n column.label = column.label || desc.label || desc.column;\n r.restore(column, null);\n return r;\n }\n }\n return null;\n };\n bundle.forEach((column) => {\n const col = toCol(column);\n if (col) {\n ranking.push(col);\n }\n });\n //if no rank column add one\n if (!ranking.children.some((d) => d instanceof model.RankColumn)) {\n ranking.insert(this.create(model.createRankDesc()), 0);\n }\n this.insertRanking(ranking);\n return ranking;\n }\n\n /**\n * sorts the given ranking and eventually return a ordering of the data items\n * @param ranking\n * @return {Promise}\n */\n sort(ranking:model.Ranking):Promise {\n return Promise.reject('not implemented');\n }\n\n /**\n * returns a view in the order of the given indices\n * @param indices\n * @return {Promise}\n */\n view(indices:number[]):Promise {\n return Promise.reject('not implemented');\n }\n\n /**\n * returns a data sample used for the mapping editor\n * @param col\n * @return {Promise}\n */\n mappingSample(col:model.Column):Promise {\n return Promise.reject('not implemented');\n }\n\n /**\n * helper for computing statistics\n * @param indices\n * @returns {{stats: (function(model.INumberColumn): *), hist: (function(model.ICategoricalColumn): *)}}\n */\n stats(indices:number[]) {\n return {\n stats: (col:model.INumberColumn) => Promise.reject('not implemented'),\n hist: (col:model.ICategoricalColumn) => Promise.reject('not implemented')\n };\n }\n\n /**\n * method for computing the unique key of a row\n * @param row\n * @param i\n * @return {string}\n */\n rowKey(row:any, i:number) {\n return typeof(row) === 'number' ? String(row) : String(row._index);\n }\n\n\n /**\n * is the given row selected\n * @param index\n * @return {boolean}\n */\n isSelected(index:number) {\n return this.selection.has(String(index));\n }\n\n /**\n * also select the given row\n * @param index\n */\n select(index:number) {\n this.selection.add(String(index));\n this.fire('selectionChanged', this.selection.values().map(Number));\n }\n\n /**\n * hook for selecting elements matching the given arguments\n * @param search\n * @param col\n */\n searchSelect(search:string|RegExp, col:model.Column) {\n //implemented by custom provider\n }\n\n /**\n * also select all the given rows\n * @param indices\n * @param jumpToSelection whether the first selected row should be visible\n */\n selectAll(indices:number[], jumpToSelection = false) {\n indices.forEach((index) => {\n this.selection.add(String(index));\n });\n this.fire('selectionChanged', this.selection.values().map(Number), jumpToSelection);\n }\n\n /**\n * set the selection to the given rows\n * @param indices\n * @param jumpToSelection whether the first selected row should be visible\n */\n setSelection(indices:number[], jumpToSelection = false) {\n if (this.selection.size() === indices.length && indices.every((i) => this.selection.has(String(i)))) {\n return; //no change\n }\n this.selection = d3.set();\n this.selectAll(indices, jumpToSelection);\n }\n\n /**\n * toggles the selection of the given data index\n * @param index\n * @param additional just this element or all\n * @returns {boolean} whether the index is currently selected\n */\n toggleSelection(index:number, additional = false) {\n if (this.isSelected(index)) {\n if (additional) {\n this.deselect(index);\n } else {\n this.clearSelection();\n }\n return false;\n } else {\n if (additional) {\n this.select(index);\n } else {\n this.setSelection([index]);\n }\n return true;\n }\n }\n /**\n * deselect the given row\n * @param index\n */\n deselect(index:number) {\n this.selection.remove(String(index));\n this.fire('selectionChanged', this.selection.values().map(Number));\n }\n\n /**\n * returns a promise containing the selected rows\n * @return {Promise}\n */\n selectedRows() {\n if (this.selection.empty()) {\n return Promise.resolve([]);\n }\n return this.view(this.getSelection());\n }\n\n /**\n * returns the currently selected indices\n * @returns {Array}\n */\n getSelection() {\n var indices = [];\n this.selection.forEach((s) => indices.push(+s));\n indices.sort();\n return indices;\n }\n\n /**\n * clears the selection\n */\n clearSelection() {\n this.selection = d3.set();\n this.fire('selectionChanged', [], false);\n }\n\n /**\n * utility to export a ranking to a table with the given separator\n * @param ranking\n * @param options\n * @returns {Promise}\n */\n exportTable(ranking: model.Ranking, options : IExportOptions = {}) {\n const op: IExportOptions = {\n separator : '\\t',\n newline: '\\n',\n header: true,\n quote: false,\n quoteChar: '\"',\n filter: (c) => !isSupportType(c)\n };\n options = utils.merge(op, options);\n //optionally quote not numbers\n function quote(l: string, c?: model.Column) {\n if (op.quote && (!c || !model.isNumberColumn(c))) {\n return op.quoteChar + l + op.quoteChar;\n }\n return l;\n }\n const columns = ranking.flatColumns.filter((c) => op.filter(c.desc));\n return this.view(ranking.getOrder()).then((data) => {\n var r = [];\n if (op.header) {\n r.push(columns.map((d) => quote(d.label)).join(op.separator));\n }\n data.forEach((row) => {\n r.push(columns.map((c) => quote(c.getLabel(row),c)).join(op.separator));\n });\n return r.join(op.newline);\n });\n }\n\n}\n\n/**\n * common base implementation of a DataProvider with a fixed list of column descriptions\n */\nexport class CommonDataProvider extends DataProvider {\n private rankingIndex = 0;\n //generic accessor of the data item\n private rowGetter = (row:any, id:string, desc:any) => row[desc.column];\n\n constructor(private columns:model.IColumnDesc[] = [], options :any = {}) {\n super(options);\n //generate the accessor\n columns.forEach((d:any) => {\n d.accessor = d.accessor || this.rowGetter;\n d.label = d.label || d.column;\n });\n }\n\n createEventList() {\n return super.createEventList().concat(['addDesc']);\n }\n\n /**\n * adds another column description to this data provider\n * @param column\n */\n pushDesc(column:model.IColumnDesc) {\n var d:any = column;\n d.accessor = d.accessor || this.rowGetter;\n d.label = column.label || d.column;\n this.columns.push(column);\n this.fire('addDesc', d);\n }\n\n getColumns():model.IColumnDesc[] {\n return this.columns.slice();\n }\n\n findDesc(ref:string) {\n return this.columns.filter((c) => (c).column === ref)[0];\n }\n\n /**\n * identify by the tuple type@columnname\n * @param desc\n * @returns {string}\n */\n toDescRef(desc:any):any {\n return desc.column ? desc.type + '@' + desc.column : desc;\n }\n\n fromDescRef(descRef:any):any {\n if (typeof(descRef) === 'string') {\n return this.columns.filter((d:any) => d.type + '@' + d.column === descRef) [0];\n }\n return descRef;\n }\n\n restore(dump:any) {\n super.restore(dump);\n this.rankingIndex = 1 + d3.max(this.getRankings(), (r) => +r.id.substring(4));\n }\n\n nextRankingId() {\n return 'rank' + (this.rankingIndex++);\n }\n}\n/**\n * a data provider based on an local array\n */\nexport class LocalDataProvider extends CommonDataProvider {\n private options = {\n /**\n * whether the filter should be applied to all rankings regardless where they are\n */\n filterGlobally: false,\n\n /**\n * jump to search results such that they are visible\n */\n jumpToSearchResult: true\n };\n\n private reorderall;\n\n constructor(public data:any[], columns:model.IColumnDesc[] = [], options = {}) {\n super(columns, options);\n utils.merge(this.options, options);\n //enhance with a magic attribute storing ranking information\n data.forEach((d, i) => {\n d._rankings = {};\n d._index = i;\n });\n\n const that = this;\n this.reorderall = function() {\n //fire for all other rankings a dirty order event, too\n var ranking = this.source;\n that.getRankings().forEach((r) => {\n if (r !== ranking) {\n r.dirtyOrder();\n }\n });\n };\n }\n\n /**\n * replaces the dataset rows with a new one\n * @param data\n */\n setData(data: any[]) {\n data.forEach((d, i) => {\n d._rankings = {};\n d._index = i;\n });\n\n this.data = data;\n this.reorderall();\n }\n\n clearData() {\n this.setData([]);\n }\n\n /**\n * append rows to the dataset\n * @param data\n */\n appendData(data: any[]) {\n const l = this.data.length;\n data.forEach((d, i) => {\n d._rankings = {};\n d._index = l+i;\n });\n this.data.push.apply(this.data, data);\n this.reorderall();\n }\n\n protected rankAccessor(row: any, id: string, desc: model.IColumnDesc, ranking: model.Ranking) {\n return (row._rankings[ranking.id] + 1) || 1;\n }\n\n cloneRanking(existing?:model.Ranking) {\n const id = this.nextRankingId();\n\n const new_ = new model.Ranking(id);\n\n if (existing) { //copy the ranking of the other one\n this.data.forEach((row) => {\n let r = row._rankings;\n r[id] = r[existing.id];\n });\n //TODO better cloning\n existing.children.forEach((child) => {\n this.push(new_, child.desc);\n });\n } else {\n new_.push(this.create(model.createRankDesc()));\n }\n\n if (this.options.filterGlobally) {\n new_.on('filterChanged.reorderall', this.reorderall);\n }\n\n return new_;\n }\n\n cleanUpRanking(ranking:model.Ranking) {\n if (this.options.filterGlobally) {\n ranking.on('filterChanged.reorderall', null);\n }\n //delete all stored information\n this.data.forEach((d) => delete d._rankings[ranking.id]);\n }\n\n sort(ranking:model.Ranking):Promise {\n if (this.data.length === 0) {\n return Promise.resolve([]);\n }\n //wrap in a helper and store the initial index\n var helper = this.data.map((r, i) => ({row: r, i: i, prev: r._rankings[ranking.id] || 0}));\n\n //do the optional filtering step\n if (this.options.filterGlobally) {\n let filtered = this.getRankings().filter((d) => d.isFiltered());\n if (filtered.length > 0) {\n helper = helper.filter((d) => filtered.every((f) => f.filter(d.row)));\n }\n } else if (ranking.isFiltered()) {\n helper = helper.filter((d) => ranking.filter(d.row));\n }\n\n //sort by the ranking column\n helper.sort((a, b) => ranking.comparator(a.row, b.row));\n\n //store the ranking index and create an argsort version, i.e. rank 0 -> index i\n var argsort = helper.map((r, i) => {\n r.row._rankings[ranking.id] = i;\n return r.i;\n });\n\n return Promise.resolve(argsort);\n }\n\n view(indices:number[]) {\n if (this.data.length === 0) {\n return Promise.resolve([]);\n }\n //filter invalid indices\n const l = this.data.length;\n var slice = indices.filter((i) => i>=0 && i this.data[index]);\n\n return Promise.resolve(slice);\n }\n\n /**\n * helper for computing statistics\n * @param indices\n * @returns {{stats: (function(model.INumberColumn): *), hist: (function(model.ICategoricalColumn): *)}}\n */\n stats(indices:number[]) {\n var d:Promise = null;\n const getD= () => d === null ? (d = this.view(indices)) : d;\n\n return {\n stats: (col:model.INumberColumn) => getD().then((data) => computeStats(data, col.getNumber.bind(col), [0, 1])),\n hist: (col:model.ICategoricalColumn) => getD().then((data) => computeHist(data, col.getCategories.bind(col), col.categories))\n };\n }\n\n\n mappingSample(col:model.NumberColumn):Promise {\n const MAX_SAMPLE = 500; //at most 500 sample lines\n const l = this.data.length;\n if (l <= MAX_SAMPLE) {\n return Promise.resolve(this.data.map(col.getRawValue.bind(col)));\n }\n //randomly select 500 elements\n var indices = [];\n for(let i = 0; i < MAX_SAMPLE; ++i) {\n let j = Math.floor(Math.random()*(l-1));\n while (indices.indexOf(j) >= 0) {\n j = Math.floor(Math.random()*(l-1));\n }\n indices.push(j);\n }\n return Promise.resolve(indices.map((i) => col.getRawValue(this.data[i])));\n }\n\n searchSelect(search:string|RegExp, col:model.Column) {\n //case insensitive search\n search = typeof search === 'string' ? search.toLowerCase() : search;\n const f = typeof search === 'string' ? (v:string) => v.toLowerCase().indexOf((search)) >= 0 : (search).test.bind(search);\n const indices = this.data.filter((row) => {\n return f(col.getLabel(row));\n }).map((row) => row._index);\n this.setSelection(indices, this.options.jumpToSearchResult);\n }\n\n}\n\n/**\n * interface what the server side has to provide\n */\nexport interface IServerData {\n /**\n * sort the dataset by the given description\n * @param desc\n */\n sort(desc:any) : Promise;\n /**\n * returns a slice of the data array identified by a list of indices\n * @param indices\n */\n view(indices:number[]): Promise;\n /**\n * returns a sample of the values for a given column\n * @param column\n */\n mappingSample(column:any) : Promise;\n /**\n * return the matching indices matching the given arguments\n * @param search\n * @param column\n */\n search(search:string|RegExp, column:any): Promise;\n}\n\n/**\n * a remote implementation of the data provider\n */\nexport class RemoteDataProvider extends CommonDataProvider {\n\n /**\n * the local ranking orders\n * @type {{}}\n */\n private ranks:any = {};\n\n constructor(private server:IServerData, columns:model.IColumnDesc[] = [], options :any = {}) {\n super(columns, options);\n }\n\n protected rankAccessor(row: any, id: string, desc: model.IColumnDesc, ranking: model.Ranking) {\n return this.ranks[ranking.id][row._index] || 0;\n }\n\n cloneRanking(existing?:model.Ranking) {\n var id = this.nextRankingId();\n if (existing) { //copy the ranking of the other one\n //copy the ranking\n this.ranks[id] = this.ranks[existing.id];\n }\n var r = new model.Ranking(id);\n r.push(this.create(model.createRankDesc()));\n\n return r;\n }\n\n cleanUpRanking(ranking:model.Ranking) {\n //delete all stored information\n delete this.ranks[ranking.id];\n }\n\n sort(ranking:model.Ranking):Promise {\n //generate a description of what to sort\n var desc = ranking.toSortingDesc((desc) => desc.column);\n //use the server side to sort\n return this.server.sort(desc).then((argsort) => {\n //store the result\n this.ranks[ranking.id] = argsort;\n return argsort;\n });\n }\n\n view(argsort:number[]) {\n return this.server.view(argsort).then((view) => {\n //enhance with the data index\n view.forEach((d, i) => d._index = argsort[i]);\n return view;\n });\n }\n\n mappingSample(col:model.Column):Promise {\n return this.server.mappingSample((col.desc).column);\n }\n\n searchSelect(search:string|RegExp, col:model.Column) {\n this.server.search(search, (col.desc).column).then((indices) => {\n this.setSelection(indices);\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/provider.ts\n **/","/**\n * Created by Samuel Gratzl on 14.08.2015.\n */\n\nimport model = require('./model');\n\n/**\n * context for rendering, wrapped as an object for easy extensibility\n */\nexport interface IRenderContext {\n /**\n * the y position of the cell\n * @param index\n */\n cellY(index:number):number;\n\n /**\n * the previous y position of the cell\n * @param index\n */\n cellPrevY(index:number):number;\n /**\n * the x position of the cell\n * @param index\n */\n cellX(index:number):number;\n /**\n * the height of a row\n * @param index\n */\n rowHeight(index:number):number;\n /**\n * a key function for uniquely identifying a data row\n * @param d\n * @param i\n */\n rowKey(d:any, i:number):string;\n\n /**\n * factory function for resolving the renderer for a given column\n * @param col\n */\n renderer(col:model.Column):ICellRenderer;\n\n /**\n * render a column\n * @param col\n */\n render(col:model.Column, $this:d3.Selection, data:any[], context?:IRenderContext);\n renderCanvas(col:model.Column, ctx: CanvasRenderingContext2D, data:any[], context?:IRenderContext);\n\n /**\n * internal option flags\n * @param col\n */\n showStacked(col:model.Column):boolean;\n\n /**\n * prefix used for all generated id names\n */\n idPrefix:string;\n\n /**\n * wrapper for a d3 selection making it (optinally) to an animated transition\n * @param $sel\n */\n animated($sel:d3.Selection):any;\n\n /**\n * lookup custom options by key\n * @param key key to lookup\n * @param default_ default value\n */\n option(key:string, default_:T):T;\n\n /**\n * whether to show the mean line for a given column\n * @param col\n */\n showMeanLine(col:model.Column):boolean;\n}\n\n/**\n * a cell renderer for rendering a cell of specific column\n */\nexport interface ICellRenderer {\n /**\n * render a whole column at once\n * @param $col the column container\n * @param col the column to render\n * @param rows the data rows\n * @param context render context\n */\n render($col:d3.Selection, col:model.Column, rows:any[], context:IRenderContext);\n /**\n * show the values and other information for the selected row\n * @param $col the column\n * @param $row the corresponding row container in which tooltips should be stored\n * @param col the column to render\n * @param row the row to show\n * @param index the index of the row in the column\n * @param context render context\n */\n mouseEnter($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext);\n /**\n * hide the values and other information for the selected row\n * @param $col the column\n * @param $row the corresponding row container in which tooltips should be stored\n * @param col the column to render\n * @param row the row to show\n * @param index the index of the row in the column\n * @param context render context\n */\n mouseLeave($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext);\n}\n\n/**\n * default renderer instance rendering the value as a text\n */\nexport class DefaultCellRenderer implements ICellRenderer {\n /**\n * class to append to the text elements\n * @type {string}\n */\n textClass = 'text';\n /**\n * the text alignment: left, center, right\n * @type {string}\n */\n align:string = 'left';\n\n render($col:d3.Selection, col:model.Column, rows:any[], context:IRenderContext) {\n var $rows = $col.datum(col).selectAll('text.' + this.textClass).data(rows, context.rowKey);\n\n $rows.enter().append('text').attr({\n 'class': this.textClass,\n 'clip-path': 'url(#' + context.idPrefix + 'clipCol' + col.id + ')',\n y: (d, i) => context.cellPrevY(i)\n });\n\n var alignmentShift = 2;\n if (this.align === 'right') {\n alignmentShift = col.getWidth() - 5;\n } else if (this.align === 'center') {\n alignmentShift = col.getWidth() * 0.5;\n }\n\n $rows.attr({\n x: (d, i) => context.cellX(i) + alignmentShift,\n 'data-index': (d, i) => i\n }).text((d) => col.getLabel(d));\n\n context.animated($rows).attr({\n y: (d, i) => context.cellY(i)\n });\n\n $rows.exit().remove();\n }\n\n /**\n * resolves the cell in the column for a given row\n * @param $col\n * @param index\n * @return {Selection}\n */\n findRow($col:d3.Selection, index:number) {\n return $col.selectAll('text.' + this.textClass + '[data-index=\"' + index + '\"]');\n }\n\n mouseEnter($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext) {\n var rowNode = $row.node();\n //find the right one and\n var n = this.findRow($col, index).node();\n if (n) { //idea since it is just a text move the dom element from the column to the row\n rowNode.appendChild(n);\n }\n }\n\n mouseLeave($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext) {\n var colNode = $col.node();\n var rowNode = $row.node();\n //move back\n if (rowNode.hasChildNodes()&& colNode) {\n colNode.appendChild(rowNode.firstChild);\n }\n $row.selectAll('*').remove();\n }\n\n renderCanvas(ctx:CanvasRenderingContext2D, col:model.Column, rows:any[], context:IRenderContext) {\n ctx.save();\n ctx.textAlign = this.align;\n rows.forEach((row, i) => {\n const y = context.cellY(i);\n var alignmentShift = 2;\n if (this.align === 'right') {\n alignmentShift = col.getWidth() - 5;\n } else if (this.align === 'center') {\n alignmentShift = col.getWidth() * 0.5;\n }\n const x = context.cellX(i) + alignmentShift;\n ctx.fillText(col.getLabel(row), x, y, col.getWidth());\n });\n ctx.restore();\n }\n\n mouseEnterCanvas(ctx:CanvasRenderingContext2D, col:model.Column, row:any, index:number, context:IRenderContext) {\n //TODO\n }\n}\n\n/**\n * simple derived one where individual elements can be overridden\n */\nclass DerivedCellRenderer extends DefaultCellRenderer {\n constructor(extraFuncs:any) {\n super();\n //integrate all the extra functions\n Object.keys(extraFuncs).forEach((key) => {\n this[key] = extraFuncs[key];\n });\n }\n}\n\n/**\n * a renderer rendering a bar for numerical columns\n */\nexport class BarCellRenderer extends DefaultCellRenderer {\n /**\n * flag to always render the value\n * @type {boolean}\n */\n protected renderValue = false;\n\n render($col:d3.Selection, col:model.NumberColumn, rows:any[], context:IRenderContext) {\n const renderValue = this.renderValue || context.option('renderBarValue', false);\n //map to bars\n var $rows = $col.datum(col).selectAll('.bar').data(rows, context.rowKey);\n\n const padding = context.option('rowPadding', 1);\n const renderBars = ($enter: d3.selection.Enter, clazz: string, $update: d3.selection.Update) => {\n $enter.append('rect').attr({\n 'class': clazz,\n x: (d, i) => context.cellX(i),\n y: (d, i) => context.cellPrevY(i) + padding,\n width: (d) => {\n var n = col.getWidth() * col.getValue(d);\n return isNaN(n) ? 0 : n;\n }\n }).style('fill', col.color);\n\n $update.attr({\n height: (d, i) => context.rowHeight(i) - context.option('rowPadding', 1) * 2\n });\n\n context.animated($update).attr({\n x: (d, i) => context.cellX(i),\n y: (d, i) => context.cellY(i) + context.option('rowPadding', 1),\n width: (d) => {\n var n = col.getWidth() * col.getValue(d);\n return isNaN(n) ? 0 : n;\n }\n }).style({\n fill: (d, i) => this.colorOf(d, i, col)\n });\n };\n\n if (renderValue) {\n let $rows_enter = $rows.enter().append('g').attr('class', 'bar '+this.textClass);\n renderBars($rows_enter, col.cssClass, $rows.select('rect'));\n $rows_enter.append('text').attr({\n 'class': 'number',\n 'clip-path': 'url(#' + context.idPrefix + 'clipCol' + col.id + ')'\n });\n\n context.animated($rows.select('text').text((d) => col.getLabel(d)))\n .attr('transform', (d,i) => 'translate(' + context.cellX(i) + ',' + context.cellY(i) + ')');\n } else {\n renderBars($rows.enter(), 'bar ' + col.cssClass, $rows);\n }\n\n $rows.attr({\n 'data-index': (d, i) => i,\n });\n\n $rows.exit().remove();\n }\n\n /**\n * computes the color for a given row\n * @param d the current row\n * @param i the row index\n * @param col the model column\n * @returns {string}\n */\n colorOf(d:any, i:number, col:model.Column) {\n return col.color;\n }\n\n findRow($col:d3.Selection, index:number) {\n return $col.selectAll('.bar[data-index=\"' + index + '\"]');\n }\n\n mouseEnter($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext) {\n const renderValue = this.renderValue || context.option('renderBarValue', false);\n if (renderValue) { //default behavior move everything\n return super.mouseEnter($col, $row, col, row, index, context);\n }\n var rowNode = this.findRow($col, index);\n if (!rowNode.empty()) {\n //create a text element on top\n ($row.node()).appendChild((rowNode.node()));\n $row.append('text').datum(rowNode.datum()).attr({\n 'class': 'number',\n 'clip-path': 'url(#' + context.idPrefix + 'clipCol' + col.id + ')',\n transform: 'translate(' + context.cellX(index) + ',' + context.cellY(index) + ')'\n }).text((d) => col.getLabel(d));\n }\n }\n\n renderCanvas(ctx:CanvasRenderingContext2D, col:model.NumberColumn, rows:any[], context:IRenderContext) {\n const renderValue = this.renderValue || context.option('renderBarValue', false);\n const padding =context.option('rowPadding', 1);\n ctx.save();\n rows.forEach((d, i) => {\n const x = context.cellX(i);\n const y = context.cellY(i) + padding;\n const n = col.getWidth() * col.getValue(d);\n const w = isNaN(n) ? 0 : n;\n const h = context.rowHeight(i) - padding * 2;\n ctx.fillStyle = this.colorOf(d, i, col) || col.color || model.Column.DEFAULT_COLOR;\n ctx.fillRect(x, y, w, h);\n\n if (renderValue) {\n ctx.fillText(col.getLabel(d), x, y - padding, col.getWidth());\n }\n });\n ctx.restore();\n }\n\n mouseEnterCanvas(ctx:CanvasRenderingContext2D, col:model.Column, row:any, index:number, context:IRenderContext) {\n const renderValue = this.renderValue || context.option('renderBarValue', false);\n if (renderValue) { //everything already rendered\n return;\n }\n ctx.save();\n ctx.fillText(col.getLabel(row), context.cellX(index), context.cellY(index), col.getWidth());\n ctx.restore();\n }\n}\n\n/**\n * render as a heatmap cell, e.g., encode the value in color\n */\nexport class HeatMapCellRenderer extends DefaultCellRenderer {\n\n render($col:d3.Selection, col:model.NumberColumn, rows:any[], context:IRenderContext) {\n var $rows = $col.datum(col).selectAll('rect.heatmap').data(rows, context.rowKey);\n\n $rows.enter().append('rect').attr({\n 'class': 'bar ' + col.cssClass,\n x: (d, i) => context.cellX(i),\n y: (d, i) => context.cellPrevY(i) + context.option('rowPadding', 1),\n width: (d, i) => context.rowHeight(i) - context.option('rowPadding', 1) * 2\n }).style('fill', col.color);\n\n $rows.attr({\n 'data-index': (d, i) => i,\n width: (d, i) => context.rowHeight(i) - context.option('rowPadding', 1) * 2,\n height: (d, i) => context.rowHeight(i) - context.option('rowPadding', 1) * 2\n });\n\n context.animated($rows).attr({\n x: (d, i) => context.cellX(i),\n y: (d, i) => context.cellY(i) + context.option('rowPadding', 1)\n }).style({\n fill: (d, i) => this.colorOf(d, i, col)\n });\n $rows.exit().remove();\n }\n\n /**\n * computes the color of the cell\n * @param d the row\n * @param i the data index\n * @param col the column\n * @returns {string} the computed color\n */\n colorOf(d:any, i:number, col:model.Column) {\n var v = col.getValue(d);\n if (isNaN(v)) {\n v = 0;\n }\n //hsl space encoding, encode in lightness\n var color = d3.hsl(col.color || model.Column.DEFAULT_COLOR);\n color.l = v;\n return color.toString();\n }\n\n findRow($col:d3.Selection, index:number) {\n return $col.selectAll('rect.heatmap[data-index=\"' + index + '\"]');\n }\n\n mouseEnter($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext) {\n var rowNode = this.findRow($col, index);\n if (!rowNode.empty()) {\n //append a text element on top\n ($row.node()).appendChild((rowNode.node()));\n $row.append('text').datum(rowNode.datum()).attr({\n 'class': 'number',\n 'clip-path': 'url(#' + context.idPrefix + 'clipCol' + col.id + ')',\n transform: 'translate(' + context.cellX(index) + ',' + context.cellY(index) + ')'\n }).text((d) => col.getLabel(d));\n }\n }\n\n renderCanvas(ctx:CanvasRenderingContext2D, col:model.NumberColumn, rows:any[], context:IRenderContext) {\n ctx.save();\n rows.forEach((d, i) => {\n const x = context.cellX(i);\n const y = context.cellY(i) + context.option('rowPadding', 1);\n const h = context.rowHeight(i) - context.option('rowPadding', 1) * 2;\n ctx.fillStyle = this.colorOf(d, i, col);\n ctx.fillRect(x, y, h, h);\n });\n ctx.restore();\n }\n\n mouseEnterCanvas(ctx:CanvasRenderingContext2D, col:model.Column, row:any, index:number, context:IRenderContext) {\n ctx.save();\n ctx.fillText(col.getLabel(row), context.cellX(index), context.cellY(index), col.getWidth());\n ctx.restore();\n }\n}\n\n/**\n * a bar cell renderer where individual function can be overwritten\n */\nclass DerivedBarCellRenderer extends BarCellRenderer {\n constructor(extraFuncs:any) {\n super();\n Object.keys(extraFuncs).forEach((key) => {\n this[key] = extraFuncs[key];\n });\n }\n}\n\n/**\n * an rendering for action columns, i.e., clickable column actions\n */\nexport class ActionCellRenderer implements ICellRenderer {\n render($col:d3.Selection, col:model.Column, rows:any[], context:IRenderContext) {\n //nothing to render in normal mode\n }\n\n mouseEnter($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext) {\n //render all actions at tspans\n var actions = context.option('actions', []);\n var $actions = $row.append('text').attr({\n 'class': 'actions fa',\n x: context.cellX(index),\n y: context.cellPrevY(index),\n 'data-index': index\n }).selectAll('tspan').data(actions);\n $actions.enter().append('tspan')\n .text((d) => d.icon)\n .attr('title', (d) => d.name)\n .on('click', (d) => {\n d3.event.preventDefault();\n d3.event.stopPropagation();\n d.action(row);\n });\n }\n\n mouseLeave($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext) {\n $row.selectAll('*').remove();\n }\n\n}\n\nexport class SelectionCellRenderer extends DefaultCellRenderer {\n\n constructor() {\n super();\n this.textClass = 'selection';\n }\n\n render($col:d3.Selection, col:model.SelectionColumn, rows:any[], context:IRenderContext) {\n var $rows = $col.datum(col).selectAll('text.' + this.textClass).data(rows, context.rowKey);\n\n $rows.enter().append('text').attr({\n 'class': this.textClass + ' fa',\n y: (d, i) => context.cellPrevY(i)\n }).on('click', function (d) {\n d3.event.preventDefault();\n d3.event.stopPropagation();\n const new_ = col.toggleValue(d);\n d3.select(this).text(new_ === true ? '\\uf046' : '\\uf096');\n });\n\n $rows.attr({\n x: (d, i) => context.cellX(i),\n 'data-index': (d, i) => i\n }).text((d) => col.getValue(d) === true ? '\\uf046' : '\\uf096');\n\n context.animated($rows).attr({\n y: (d, i) => context.cellY(i)\n });\n\n $rows.exit().remove();\n }\n\n renderCanvas(ctx:CanvasRenderingContext2D, col:model.SelectionColumn, rows:any[], context:IRenderContext) {\n ctx.save();\n ctx.font = 'FontAwesome';\n rows.forEach((d, i) => {\n const x = context.cellX(i);\n const y = context.cellY(i);\n ctx.fillText(col.getValue(d) === true ? '\\uf046' : '\\uf096', x, y);\n });\n ctx.restore();\n }\n}\n\n/**\n * a renderer for annotate columns\n */\nclass AnnotateCellRenderer extends DefaultCellRenderer {\n mouseEnter($col:d3.Selection, $row:d3.Selection, col:model.AnnotateColumn, row:any, index:number, context:IRenderContext) {\n //render an input field for editing\n this.findRow($col, index).attr('display', 'none');\n $row.append('foreignObject').attr({\n x: context.cellX(index) - 2,\n y: context.cellPrevY(index) - 2,\n 'data-index': index,\n width: col.getWidth(),\n height: context.rowHeight(index)\n }).append('xhtml:input').attr({\n type: 'text',\n value: col.getValue(row)\n }).style({\n width: col.getWidth() + 'px'\n }).on('change', function () {\n //update the value\n var text = this.value;\n col.setValue(row, text);\n }).on('click', () => d3.event.stopPropagation());\n }\n\n mouseLeave($col:d3.Selection, $row:d3.Selection, col:model.AnnotateColumn, row:any, index:number, context:IRenderContext) {\n this.findRow($col, index).attr('display', null);\n var node = $row.select('input').node();\n if (node) {\n //update the value before removal, the change event may not have been fired\n col.setValue(row, node.value);\n }\n $row.selectAll('*').remove();\n }\n}\n\nvar defaultRendererInstance = new DefaultCellRenderer();\nvar barRendererInstance = new BarCellRenderer();\n\n/**\n * creates a new instance with optional overridden methods\n * @param extraFuncs\n * @return {DefaultCellRenderer}\n */\nexport function defaultRenderer(extraFuncs?:any) {\n if (!extraFuncs) {\n return defaultRendererInstance;\n }\n return new DerivedCellRenderer(extraFuncs);\n}\n\n/**\n * creates a new instance with optional overridden methods\n * @param extraFuncs\n * @return {BarCellRenderer}\n */\nexport function barRenderer(extraFuncs?:any) {\n if (!extraFuncs) {\n return barRendererInstance;\n }\n return new DerivedBarCellRenderer(extraFuncs);\n}\n\n/**\n * renderer of a link column, i.e. render an intermediate *a* element\n */\nclass LinkCellRenderer extends DefaultCellRenderer {\n render($col:d3.Selection, col:model.LinkColumn, rows:any[], context:IRenderContext) {\n //wrap the text elements with an a element\n var $rows = $col.datum(col).selectAll('text.link').data(rows, context.rowKey);\n $rows.enter().append('text').attr({\n 'class': 'text link',\n 'clip-path': 'url(#' + context.idPrefix + 'clipCol' + col.id + ')',\n y: (d, i) => context.cellPrevY(i)\n });\n\n $rows.attr({\n x: (d, i) => context.cellX(i),\n 'data-index': (d, i) => i\n }).html((d) => col.isLink(d) ? `${col.getLabel(d)}` : col.getLabel(d));\n\n context.animated($rows).attr({\n y: (d, i) => context.cellY(i)\n });\n\n $rows.exit().remove();\n }\n\n findRow($col:d3.Selection, index:number) {\n return $col.selectAll('text.link[data-index=\"' + index + '\"]');\n }\n}\n\n\n/**\n * renders a string with additional alignment behavior\n */\nclass StringCellRenderer extends DefaultCellRenderer {\n render($col:d3.Selection, col:model.StringColumn, rows:any[], context:IRenderContext) {\n this.align = col.alignment;\n this.textClass = 'text' + (col.alignment === 'left' ? '' : '_' + col.alignment);\n return super.render($col, col, rows, context);\n }\n}\n\n/**\n * renders categorical columns as a colored rect with label\n */\nclass CategoricalRenderer extends DefaultCellRenderer {\n textClass = 'cat';\n\n render($col:d3.Selection, col:model.CategoricalColumn, rows:any[], context:IRenderContext) {\n var $rows = $col.datum(col).selectAll('g.' + this.textClass).data(rows, context.rowKey);\n\n var $rows_enter = $rows.enter().append('g').attr({\n 'class': this.textClass,\n 'data-index': (d, i) => i,\n transform: (d, i) => 'translate(' + context.cellX(i) + ',' + context.cellPrevY(i) + ')'\n });\n $rows_enter.append('text').attr({\n 'clip-path': 'url(#' + context.idPrefix + 'clipCol' + col.id + ')',\n x: (d, i) => context.rowHeight(i)\n });\n $rows_enter.append('rect').attr({\n y: context.option('rowPadding', 1)\n });\n $rows.attr({\n 'data-index': (d, i) => i,\n transform: (d, i) => 'translate(' + context.cellX(i) + ',' + context.cellY(i) + ')'\n });\n $rows.select('text').attr({\n x: (d, i) => context.rowHeight(i)\n }).text((d) => col.getLabel(d));\n $rows.select('rect').style({\n fill: (d) => col.getColor(d)\n }).attr({\n height: (d, i) => Math.max(context.rowHeight(i) - context.option('rowPadding', 1) * 2, 0),\n width: (d, i) => Math.max(context.rowHeight(i) - context.option('rowPadding', 1) * 2, 0)\n });\n\n context.animated($rows).attr({\n transform: (d, i) => 'translate(' + context.cellX(i) + ',' + context.cellY(i) + ')'\n });\n\n\n $rows.exit().remove();\n }\n\n findRow($col:d3.Selection, index:number) {\n return $col.selectAll('g.' + this.textClass + '[data-index=\"' + index + '\"]');\n }\n\n renderCanvas(ctx:CanvasRenderingContext2D, col:model.CategoricalColumn, rows:any[], context:IRenderContext) {\n ctx.save();\n rows.forEach((d, i) => {\n const x = context.cellX(i);\n const y = context.cellY(i);\n ctx.fillStyle = 'black';\n ctx.fillText(col.getLabel(d), x + context.rowHeight(i), y);\n ctx.fillStyle = col.getColor(d);\n ctx.fillRect(x, y+context.option('rowPadding', 1), Math.max(context.rowHeight(i) - context.option('rowPadding', 1) * 2, 0), Math.max(context.rowHeight(i) - context.option('rowPadding', 1) * 2, 0));\n });\n }\n}\n\n/**\n * renders a stacked column using composite pattern\n */\nclass StackCellRenderer extends DefaultCellRenderer {\n constructor(private nestingPossible = true) {\n super();\n }\n\n renderImpl($base:d3.Selection, col:model.StackColumn, context:IRenderContext, perChild:($child:d3.Selection, col:model.Column, i:number, context:IRenderContext) => void, rowGetter:(index:number) => any, animated = true) {\n const $group = $base.datum(col),\n children = col.children,\n stacked = this.nestingPossible && context.showStacked(col);\n var offset = 0,\n shifts = children.map((d) => {\n var r = offset;\n offset += d.getWidth();\n offset += (!stacked ? context.option('columnPadding', 0) : 0);\n return r;\n });\n const baseclass = 'component' + context.option('stackLevel', '');\n\n const ueber = context.cellX;\n const ueberOption = context.option;\n context.option = (option, default_) => {\n var r = ueberOption(option, default_);\n return option === 'stackLevel' ? r + 'N' : r;\n };\n\n //map all children to g elements\n const $children = $group.selectAll('g.' + baseclass).data(children, (d) => d.id);\n //shift children horizontally\n $children.enter().append('g').attr({\n 'class': baseclass,\n transform: (d, i) => 'translate(' + shifts[i] + ',0)'\n });\n //for each children render the column\n $children.attr({\n 'class': (d) => baseclass + ' ' + d.desc.type,\n 'data-stack': (d, i) => i\n }).each(function (d, i) {\n if (stacked) {\n const preChildren = children.slice(0, i);\n //if shown as stacked bar shift individual cells of a column to the left where they belong to\n context.cellX = (index) => {\n //shift by all the empty space left from the previous columns\n return ueber(index) - preChildren.reduce((prev, child) => prev + child.getWidth() * (1 - child.getValue(rowGetter(index))), 0);\n };\n }\n perChild(d3.select(this), d, i, context);\n });\n (animated ? context.animated($children) : $children).attr({\n transform: (d, i) => 'translate(' + shifts[i] + ',0)'\n });\n $children.exit().remove();\n\n context.cellX = ueber;\n context.option = ueberOption;\n }\n\n render($col:d3.Selection, stack:model.StackColumn, rows:any[], context:IRenderContext) {\n this.renderImpl($col, stack, context, ($child, col, i, ccontext) => {\n ccontext.render(col, $child, rows, ccontext);\n }, (index) => rows[index]);\n }\n\n mouseEnter($col:d3.Selection, $row:d3.Selection, stack:model.StackColumn, row:any, index:number, context:IRenderContext) {\n var baseclass = 'component' + context.option('stackLevel', '');\n this.renderImpl($row, stack, context, ($row_i, col, i, ccontext) => {\n var $col_i = $col.select('g.' + baseclass + '[data-stack=\"' + i + '\"]');\n if (!$col_i.empty()) {\n ccontext.renderer(col).mouseEnter($col_i, $row_i, col, row, index, ccontext);\n }\n }, (index) => row, false);\n }\n\n mouseLeave($col:d3.Selection, $row:d3.Selection, satck:model.StackColumn, row:any, index:number, context:IRenderContext) {\n var baseclass = 'component' + context.option('stackLevel', '');\n this.renderImpl($row, satck, context, ($row_i, col, i, ccontext) => {\n var $col_i = $col.select('g.' + baseclass + '[data-stack=\"' + i + '\"]');\n if (!$col_i.empty()) {\n ccontext.renderer(col).mouseLeave($col_i, $row_i, col, row, index, ccontext);\n }\n }, (index) => row, false);\n $row.selectAll('*').remove();\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D, stack:model.StackColumn, rows:any[], context:IRenderContext) {\n const children = stack.children,\n stacked = this.nestingPossible && context.showStacked(stack);\n var offset = 0,\n shifts = children.map((d) => {\n var r = offset;\n offset += d.getWidth();\n offset += (!stacked ? context.option('columnPadding', 0) : 0);\n return r;\n });\n const ueber = context.cellX;\n const ueberOption = context.option;\n context.option = (option, default_) => {\n var r = ueberOption(option, default_);\n return option === 'stackLevel' ? r + 'N' : r;\n };\n ctx.save();\n children.forEach((child, i) => {\n ctx.save();\n ctx.translate(shifts[i], 0);\n\n if (stacked) {\n const preChildren = children.slice(0, i);\n //if shown as stacked bar shift individual cells of a column to the left where they belong to\n context.cellX = (index) => {\n //shift by all the empty space left from the previous columns\n return ueber(index) - preChildren.reduce((prev, child) => prev + child.getWidth() * (1 - child.getValue(rows[index])), 0);\n };\n }\n context.renderCanvas(child, ctx, rows, context);\n\n ctx.restore();\n });\n ctx.restore();\n context.cellX = ueber;\n context.option = ueberOption;\n }\n}\n\nexport interface IRenderFunction {\n render($col:d3.Selection, col:model.Column, rows:any[], context:IRenderContext): void;\n}\n\n/**\n * defines a custom renderer object\n * @param selector d3 selector, e.g. text.my\n * @param render render function\n * @param extras additional functions\n * @returns {DerivedCellRenderer}\n */\nexport function createRenderer(selector: string, render: IRenderFunction, extras : any = {}) {\n extras.selector = selector;\n extras.render = render;\n extras.findRow = ($col:d3.Selection, index:number) => $col.selectAll(this.selector + '[data-index=\"' + index + '\"]');\n\n const r = new DerivedCellRenderer(extras);\n return r;\n}\n\nconst combineRenderer = barRenderer({\n colorOf: (d, i, col) => col.getColor(d)\n});\n\n/**\n * returns a map of all known renderers by type\n * @return\n */\nexport function renderers() {\n return {\n string: new StringCellRenderer(),\n link: new LinkCellRenderer(),\n number: barRenderer(),\n rank: defaultRenderer({\n textClass: 'rank',\n align: 'right'\n }),\n boolean: defaultRenderer({\n textClass: 'boolean',\n align: 'center'\n }),\n heatmap: new HeatMapCellRenderer(),\n stack: new StackCellRenderer(),\n categorical: new CategoricalRenderer(),\n ordinal: barRenderer({\n renderValue: true,\n colorOf: (d, i, col) => col.getColor(d)\n }),\n max: combineRenderer,\n min: combineRenderer,\n mean: combineRenderer,\n script: combineRenderer,\n actions: new ActionCellRenderer(),\n annotate: new AnnotateCellRenderer(),\n selection: new SelectionCellRenderer(),\n nested: new StackCellRenderer(false)\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/renderer.ts\n **/","/**\r\n * Created by Samuel Gratzl on 14.08.2015.\r\n */\r\n\r\n\r\n///\r\nimport d3 = require('d3');\r\nimport utils = require('./utils');\r\nimport model = require('./model');\r\nimport renderer = require('./renderer');\r\nimport provider = require('./provider');\r\nimport dialogs = require('./ui_dialogs');\r\n\r\nclass PoolEntry {\r\n used:number = 0;\r\n\r\n constructor(public desc:model.IColumnDesc) {\r\n\r\n }\r\n}\r\n\r\n/**\r\n * utility function to generate the tooltip text with description\r\n * @param col the column\r\n */\r\nfunction toFullTooltip(col: { label: string, description?: string}) {\r\n var base = col.label;\r\n if (col.description != null && col.description !== '') {\r\n base += '\\n'+col.description;\r\n }\r\n return base;\r\n}\r\n\r\nexport class PoolRenderer {\r\n private options = {\r\n layout: 'vertical',\r\n elemWidth: 100,\r\n elemHeight: 40,\r\n width: 100,\r\n height: 500,\r\n additionalDesc: [],\r\n hideUsed: true,\r\n addAtEndOnClick: false\r\n };\r\n\r\n private $node:d3.Selection;\r\n private entries:PoolEntry[];\r\n\r\n constructor(private data:provider.DataProvider, parent:Element, options:any = {}) {\r\n utils.merge(this.options, options);\r\n\r\n this.$node = d3.select(parent).append('div').classed('lu-pool', true);\r\n\r\n this.changeDataStorage(data);\r\n }\r\n\r\n changeDataStorage(data:provider.DataProvider) {\r\n if (this.data) {\r\n this.data.on(['addColumn.pool', 'removeColumn.pool', 'addRanking.pool', 'removeRanking.pool', 'addDesc.pool'], null);\r\n }\r\n this.data = data;\r\n this.entries = data.getColumns().concat(this.options.additionalDesc).map((d) => new PoolEntry(d));\r\n data.on(['addDesc.pool'], (desc) => {\r\n this.entries.push(new PoolEntry(desc));\r\n this.update();\r\n });\r\n if (this.options.hideUsed) {\r\n var that = this;\r\n data.on(['addColumn.pool', 'removeColumn.pool'], function (col) {\r\n var desc = col.desc, change = this.type === 'addColumn' ? 1 : -1;\r\n that.entries.some((entry) => {\r\n if (entry.desc !== desc) {\r\n return false;\r\n }\r\n entry.used += change;\r\n return true;\r\n });\r\n that.update();\r\n });\r\n data.on(['addRanking.pool', 'removeRanking.pool'], function (ranking) {\r\n var descs = ranking.flatColumns.map((d) => d.desc), change = this.type === 'addRanking' ? 1 : -1;\r\n that.entries.some((entry) => {\r\n if (descs.indexOf(entry.desc) < 0) {\r\n return false;\r\n }\r\n entry.used += change;\r\n return true;\r\n });\r\n that.update();\r\n });\r\n data.getRankings().forEach((ranking) => {\r\n var descs = ranking.flatColumns.map((d) => d.desc), change = +1;\r\n that.entries.some((entry) => {\r\n if (descs.indexOf(entry.desc) < 0) {\r\n return false;\r\n }\r\n entry.used += change;\r\n });\r\n });\r\n }\r\n }\r\n\r\n remove() {\r\n this.$node.remove();\r\n if (this.data) {\r\n this.data.on(['addColumn.pool', 'removeColumn.pool', 'addRanking.pool', 'removeRanking.pool', 'addDesc.pool'], null);\r\n }\r\n }\r\n\r\n update() {\r\n var data = this.data;\r\n var descToShow = this.entries.filter((e) => e.used === 0).map((d) => d.desc);\r\n var $headers = this.$node.selectAll('div.header').data(descToShow);\r\n var $headers_enter = $headers.enter().append('div').attr({\r\n 'class': 'header',\r\n 'draggable': true\r\n }).on('dragstart', (d) => {\r\n var e = (d3.event);\r\n e.dataTransfer.effectAllowed = 'copyMove'; //none, copy, copyLink, copyMove, link, linkMove, move, all\r\n e.dataTransfer.setData('text/plain', d.label);\r\n e.dataTransfer.setData('application/caleydo-lineup-column', JSON.stringify(data.toDescRef(d)));\r\n if (model.isNumberColumn(d)) {\r\n e.dataTransfer.setData('application/caleydo-lineup-column-number', JSON.stringify(data.toDescRef(d)));\r\n }\r\n }).style({\r\n width: this.options.elemWidth + 'px',\r\n height: this.options.elemHeight + 'px'\r\n });\r\n if (this.options.addAtEndOnClick) {\r\n $headers_enter.on('click', (d) => {\r\n this.data.push(this.data.getLastRanking(), d);\r\n });\r\n }\r\n $headers_enter.append('span').classed('label', true).text((d) => d.label);\r\n $headers.attr('class', (d) => `header ${((d).cssClass || '')} ${d.type}`);\r\n $headers.style({\r\n 'transform': (d, i) => {\r\n var pos = this.layout(i);\r\n return 'translate(' + pos.x + 'px,' + pos.y + 'px)';\r\n },\r\n 'background-color': (d) => {\r\n const s = (d);\r\n return s.cssClass ? null : s.color || model.Column.DEFAULT_COLOR;\r\n }\r\n });\r\n $headers.attr({\r\n title: (d) => toFullTooltip(d)\r\n });\r\n $headers.select('span').text((d) => d.label);\r\n $headers.exit().remove();\r\n\r\n //compute the size of this node\r\n switch (this.options.layout) {\r\n case 'horizontal':\r\n this.$node.style({\r\n width: (this.options.elemWidth * descToShow.length) + 'px',\r\n height: (this.options.elemHeight * 1) + 'px'\r\n });\r\n break;\r\n case 'grid':\r\n var perRow = d3.round(this.options.width / this.options.elemWidth, 0);\r\n this.$node.style({\r\n width: perRow * this.options.elemWidth + 'px',\r\n height: Math.ceil(descToShow.length / perRow) * this.options.elemHeight + 'px'\r\n });\r\n break;\r\n //case 'vertical':\r\n default:\r\n this.$node.style({\r\n width: (this.options.elemWidth * 1) + 'px',\r\n height: (this.options.elemHeight * descToShow.length) + 'px'\r\n });\r\n break;\r\n }\r\n }\r\n\r\n private layout(i:number) {\r\n switch (this.options.layout) {\r\n case 'horizontal':\r\n return {x: i * this.options.elemWidth, y: 0};\r\n case 'grid':\r\n var perRow = d3.round(this.options.width / this.options.elemWidth, 0);\r\n return {x: (i % perRow) * this.options.elemWidth, y: Math.floor(i / perRow) * this.options.elemHeight};\r\n //case 'vertical':\r\n default:\r\n return {x: 0, y: i * this.options.elemHeight};\r\n }\r\n }\r\n}\r\n\r\nexport interface IRankingHook {\r\n ($node: d3.Selection):void;\r\n}\r\n\r\nexport function dummyRankingButtonHook() {\r\n return null;\r\n}\r\n\r\nexport class HeaderRenderer {\r\n private options = {\r\n slopeWidth: 150,\r\n columnPadding: 5,\r\n headerHistogramHeight: 40,\r\n headerHeight: 20,\r\n manipulative: true,\r\n histograms: false,\r\n\r\n filterDialogs: dialogs.filterDialogs(),\r\n linkTemplates: [],\r\n searchAble: (col:model.Column) => col instanceof model.StringColumn,\r\n sortOnLabel: true,\r\n\r\n autoRotateLabels: false,\r\n rotationHeight: 50, //in px\r\n rotationDegree: -20, //in deg\r\n\r\n freezeCols: 0,\r\n\r\n rankingButtons: dummyRankingButtonHook\r\n };\r\n\r\n $node:d3.Selection;\r\n\r\n private histCache = d3.map>();\r\n\r\n private dragHandler = d3.behavior.drag()\r\n //.origin((d) => d)\r\n .on('dragstart', function () {\r\n d3.select(this).classed('dragging', true);\r\n (d3.event).sourceEvent.stopPropagation();\r\n (d3.event).sourceEvent.preventDefault();\r\n })\r\n .on('drag', function (d) {\r\n //the new width\r\n var newValue = Math.max(d3.mouse(this.parentNode)[0], 2);\r\n d.setWidth(newValue);\r\n (d3.event).sourceEvent.stopPropagation();\r\n (d3.event).sourceEvent.preventDefault();\r\n })\r\n .on('dragend', function (d) {\r\n d3.select(this).classed('dragging', false);\r\n (d3.event).sourceEvent.stopPropagation();\r\n\r\n (d3.event).sourceEvent.preventDefault();\r\n });\r\n\r\n private dropHandler = utils.dropAble(['application/caleydo-lineup-column-ref', 'application/caleydo-lineup-column'], (data, d:model.Column, copy) => {\r\n var col:model.Column = null;\r\n if ('application/caleydo-lineup-column-ref' in data) {\r\n var id = data['application/caleydo-lineup-column-ref'];\r\n col = this.data.find(id);\r\n if (copy) {\r\n col = this.data.clone(col);\r\n } else {\r\n col.removeMe();\r\n }\r\n } else {\r\n var desc = JSON.parse(data['application/caleydo-lineup-column']);\r\n col = this.data.create(this.data.fromDescRef(desc));\r\n }\r\n if (d instanceof model.Column) {\r\n return d.insertAfterMe(col) != null;\r\n } else {\r\n var r = this.data.getLastRanking();\r\n return r.push(col) !== null;\r\n }\r\n });\r\n\r\n\r\n constructor(private data:provider.DataProvider, parent:Element, options:any = {}) {\r\n utils.merge(this.options, options);\r\n\r\n this.$node = d3.select(parent).append('div').classed('lu-header', true);\r\n this.$node.append('div').classed('drop', true).call(this.dropHandler);\r\n\r\n this.changeDataStorage(data);\r\n }\r\n\r\n changeDataStorage(data:provider.DataProvider) {\r\n if (this.data) {\r\n this.data.on(['dirtyHeader.headerRenderer', 'orderChanged.headerRenderer', 'selectionChanged.headerRenderer'], null);\r\n }\r\n this.data = data;\r\n data.on('dirtyHeader.headerRenderer', utils.delayedCall(this.update.bind(this), 1));\r\n if (this.options.histograms) {\r\n data.on('orderChanged.headerRenderer', () => {\r\n this.updateHist();\r\n this.update();\r\n });\r\n data.on('selectionChanged.headerRenderer', utils.delayedCall(this.drawSelection.bind(this), 1));\r\n\r\n }\r\n }\r\n\r\n get sharedHistCache() {\r\n return this.histCache;\r\n }\r\n\r\n /**\r\n * defines the current header height in pixel\r\n * @returns {number}\r\n */\r\n currentHeight() {\r\n return parseInt(this.$node.style('height'),10);\r\n }\r\n\r\n private updateHist() {\r\n var rankings = this.data.getRankings();\r\n rankings.forEach((ranking) => {\r\n const order = ranking.getOrder();\r\n const cols = ranking.flatColumns;\r\n const histo = order == null ? null : this.data.stats(order);\r\n cols.filter((d) => d instanceof model.NumberColumn && !d.isHidden()).forEach((col:any) => {\r\n this.histCache.set(col.id,histo === null ? null : histo.stats(col));\r\n });\r\n cols.filter((d) => model.isCategoricalColumn(d) && !d.isHidden()).forEach((col:any) => {\r\n this.histCache.set(col.id,histo === null ? null : histo.hist(col));\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * update the selection in the histograms\r\n */\r\n drawSelection() {\r\n if (!this.options.histograms) {\r\n return;\r\n }\r\n //highlight the bins in the histograms\r\n const node = this.$node.node();\r\n\r\n [].slice.call(node.querySelectorAll('div.bar')).forEach((d) => d.classList.remove('selected'));\r\n var indices = this.data.getSelection();\r\n if (indices.length <= 0) {\r\n return;\r\n }\r\n this.data.view(indices).then((data) => {\r\n //get the data\r\n\r\n var rankings = this.data.getRankings();\r\n\r\n rankings.forEach((ranking) => {\r\n const cols = ranking.flatColumns;\r\n //find all number histograms\r\n cols.filter((d) => d instanceof model.NumberColumn && !d.isHidden()).forEach((col:model.NumberColumn) => {\r\n const bars = [].slice.call(node.querySelectorAll(`div.header[data-id=\"${col.id}\"] div.bar`));\r\n data.forEach((d) => {\r\n const v = col.getValue(d);\r\n //choose the right bin\r\n for (let i = 1 ; i < bars.length; ++i) {\r\n let bar = bars[i];\r\n if (bar.dataset.x > v) { //previous bin\r\n bars[i-1].classList.add('selected');\r\n break;\r\n } else if (i === bars.length - 1) { //last bin\r\n bar.classList.add('selected');\r\n break;\r\n }\r\n }\r\n });\r\n });\r\n cols.filter((d) => model.isCategoricalColumn(d) && !d.isHidden()).forEach((col:model.CategoricalColumn) => {\r\n const header = node.querySelector(`div.header[data-id=\"${col.id}\"]`);\r\n data.forEach((d) => {\r\n const cats = col.getCategories(d);\r\n (cats || []).forEach((cat) => {\r\n header.querySelector(`div.bar[data-cat=\"${cat}\"]`).classList.add('selected');\r\n });\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n private renderRankingButtons(rankings: model.Ranking[], rankingsOffsets: number[]) {\r\n const $rankingbuttons = this.$node.selectAll('div.rankingbuttons').data(rankings);\r\n $rankingbuttons.enter().append('div')\r\n .classed('rankingbuttons', true)\r\n .call(this.options.rankingButtons);\r\n $rankingbuttons.style('left', (d,i) => rankingsOffsets[i]+'px');\r\n $rankingbuttons.exit().remove();\r\n }\r\n\r\n update() {\r\n const that = this;\r\n const rankings = this.data.getRankings();\r\n\r\n var shifts = [], offset = 0, rankingOffsets = [];\r\n rankings.forEach((ranking) => {\r\n offset += ranking.flatten(shifts, offset, 1, this.options.columnPadding) + this.options.slopeWidth;\r\n rankingOffsets.push(offset - this.options.slopeWidth);\r\n });\r\n //real width\r\n offset -= this.options.slopeWidth;\r\n\r\n var columns = shifts.map((d) => d.col);\r\n\r\n //update all if needed\r\n if (this.options.histograms && this.histCache.empty() && rankings.length > 0) {\r\n this.updateHist();\r\n }\r\n\r\n this.renderColumns(columns, shifts);\r\n\r\n if (this.options.rankingButtons !== dummyRankingButtonHook) {\r\n this.renderRankingButtons(rankings, rankingOffsets);\r\n }\r\n\r\n function countMultiLevel(c:model.Column):number {\r\n if (model.isMultiLevelColumn(c) && !(c).getCollapsed() && !c.getCompressed()) {\r\n return 1 + Math.max.apply(Math, (c).children.map(countMultiLevel));\r\n }\r\n return 1;\r\n }\r\n\r\n const levels = Math.max.apply(Math, columns.map(countMultiLevel));\r\n var height = (this.options.histograms ? this.options.headerHistogramHeight : this.options.headerHeight) + (levels-1)*this.options.headerHeight;\r\n\r\n if (this.options.autoRotateLabels) {\r\n //check if we have overflows\r\n var rotatedAny = false;\r\n this.$node.selectAll('div.header')\r\n .style('height', height + 'px').select('div.lu-label').each(function (d) {\r\n const w = this.querySelector('span.lu-label').offsetWidth;\r\n const actWidth = d.getWidth();\r\n if (w > (actWidth+30)) { //rotate\r\n d3.select(this).style('transform',`rotate(${that.options.rotationDegree}deg)`);\r\n rotatedAny = true;\r\n } else {\r\n d3.select(this).style('transform',null);\r\n }\r\n });\r\n this.$node.selectAll('div.header').style('margin-top', rotatedAny ? this.options.rotationHeight + 'px' : null);\r\n height += rotatedAny ? this.options.rotationHeight : 0;\r\n }\r\n this.$node.style('height', height + 'px');\r\n }\r\n\r\n private createToolbar($node:d3.Selection) {\r\n const filterDialogs = this.options.filterDialogs,\r\n provider = this.data,\r\n that = this;\r\n var $regular = $node.filter(d=> !(d instanceof model.Ranking)),\r\n $stacked = $node.filter(d=> d instanceof model.StackColumn),\r\n $multilevel = $node.filter(d=> model.isMultiLevelColumn(d));\r\n\r\n //edit weights\r\n $stacked.append('i').attr('class', 'fa fa-tasks').attr('title', 'Edit Weights').on('click', function (d) {\r\n dialogs.openEditWeightsDialog(d, d3.select(this.parentNode.parentNode));\r\n d3.event.stopPropagation();\r\n });\r\n //rename\r\n $regular.append('i').attr('class', 'fa fa-pencil-square-o').attr('title', 'Rename').on('click', function (d) {\r\n dialogs.openRenameDialog(d, d3.select(this.parentNode.parentNode));\r\n d3.event.stopPropagation();\r\n });\r\n //clone\r\n $regular.append('i').attr('class', 'fa fa-code-fork').attr('title', 'Generate Snapshot').on('click', function (d) {\r\n provider.takeSnapshot(d);\r\n d3.event.stopPropagation();\r\n });\r\n //edit link\r\n $node.filter((d) => d instanceof model.LinkColumn).append('i').attr('class', 'fa fa-external-link').attr('title', 'Edit Link Pattern').on('click', function (d) {\r\n dialogs.openEditLinkDialog(d, d3.select(this.parentNode.parentNode), [].concat((d.desc).templates || [], that.options.linkTemplates));\r\n d3.event.stopPropagation();\r\n });\r\n //edit script\r\n $node.filter((d) => d instanceof model.ScriptColumn).append('i').attr('class', 'fa fa-gears').attr('title', 'Edit Combine Script').on('click', function (d) {\r\n dialogs.openEditScriptDialog(d, d3.select(this.parentNode.parentNode));\r\n d3.event.stopPropagation();\r\n });\r\n //filter\r\n $node.filter((d) => filterDialogs.hasOwnProperty(d.desc.type)).append('i').attr('class', 'fa fa-filter').attr('title', 'Filter').on('click', function (d) {\r\n filterDialogs[d.desc.type](d, d3.select(this.parentNode.parentNode), provider);\r\n d3.event.stopPropagation();\r\n });\r\n //search\r\n $node.filter((d) => this.options.searchAble(d)).append('i').attr('class', 'fa fa-search').attr('title', 'Search').on('click', function (d) {\r\n dialogs.openSearchDialog(d, d3.select(this.parentNode.parentNode), provider);\r\n d3.event.stopPropagation();\r\n });\r\n //collapse\r\n $regular.append('i')\r\n .attr('class', 'fa')\r\n .classed('fa-toggle-left', (d:model.Column) => !d.getCompressed())\r\n .classed('fa-toggle-right', (d:model.Column) => d.getCompressed())\r\n .attr('title', '(Un)Collapse')\r\n .on('click', function (d:model.Column) {\r\n d.setCompressed(!d.getCompressed());\r\n d3.select(this)\r\n .classed('fa-toggle-left', !d.getCompressed())\r\n .classed('fa-toggle-right', d.getCompressed());\r\n d3.event.stopPropagation();\r\n });\r\n //compress\r\n $multilevel.append('i')\r\n .attr('class', 'fa')\r\n .classed('fa-compress', (d:model.IMultiLevelColumn) => !d.getCollapsed())\r\n .classed('fa-expand', (d:model.IMultiLevelColumn) => d.getCollapsed())\r\n .attr('title', 'Compress/Expand')\r\n .on('click', function (d:model.IMultiLevelColumn) {\r\n d.setCollapsed(!d.getCollapsed());\r\n d3.select(this)\r\n .classed('fa-compress', !d.getCollapsed())\r\n .classed('fa-expand', d.getCollapsed());\r\n d3.event.stopPropagation();\r\n });\r\n //remove\r\n $node.append('i').attr('class', 'fa fa-times').attr('title', 'Hide').on('click', (d) => {\r\n if (d instanceof model.RankColumn) {\r\n provider.removeRanking(d.findMyRanker());\r\n if (provider.getRankings().length === 0) { //create at least one\r\n provider.pushRanking();\r\n }\r\n } else {\r\n d.removeMe();\r\n }\r\n d3.event.stopPropagation();\r\n });\r\n }\r\n\r\n updateFreeze(left:number) {\r\n const numColumns = this.options.freezeCols;\r\n this.$node.selectAll('div.header')\r\n .style('z-index', (d, i) => i < numColumns ? 1 : null)\r\n .style('transform', (d, i) => i < numColumns ? `translate(${left}px,0)` : null);\r\n }\r\n\r\n private renderColumns(columns:model.Column[], shifts, $base:d3.Selection = this.$node, clazz:string = 'header') {\r\n var $headers = $base.selectAll('div.' + clazz).data(columns, (d) => d.id);\r\n var $headers_enter = $headers.enter().append('div').attr({\r\n 'class': clazz\r\n })\r\n .on('click', (d) => {\r\n if (this.options.manipulative && !d3.event.defaultPrevented && d3.event.currentTarget === d3.event.target) {\r\n d.toggleMySorting();\r\n }\r\n });\r\n var $header_enter_div = $headers_enter.append('div').classed('lu-label', true)\r\n .on('click', (d) => {\r\n if (this.options.manipulative && !d3.event.defaultPrevented) {\r\n d.toggleMySorting();\r\n }\r\n })\r\n .on('dragstart', (d) => {\r\n var e = (d3.event);\r\n e.dataTransfer.effectAllowed = 'copyMove'; //none, copy, copyLink, copyMove, link, linkMove, move, all\r\n e.dataTransfer.setData('text/plain', d.label);\r\n e.dataTransfer.setData('application/caleydo-lineup-column-ref', d.id);\r\n var ref = JSON.stringify(this.data.toDescRef(d.desc));\r\n e.dataTransfer.setData('application/caleydo-lineup-column', ref);\r\n if (model.isNumberColumn(d)) {\r\n e.dataTransfer.setData('application/caleydo-lineup-column-number', ref);\r\n e.dataTransfer.setData('application/caleydo-lineup-column-number-ref', d.id);\r\n }\r\n });\r\n $header_enter_div.append('i').attr('class', 'fa fa sort_indicator');\r\n $header_enter_div.append('span').classed('lu-label', true).attr({\r\n 'draggable': this.options.manipulative\r\n });\r\n\r\n if (this.options.manipulative) {\r\n $headers_enter.append('div').classed('handle', true)\r\n .call(this.dragHandler)\r\n .style('width', this.options.columnPadding + 'px')\r\n .call(this.dropHandler);\r\n $headers_enter.append('div').classed('toolbar', true).call(this.createToolbar.bind(this));\r\n }\r\n\r\n if (this.options.histograms) {\r\n $headers_enter.append('div').classed('histogram', true);\r\n }\r\n\r\n $headers.style({\r\n width: (d, i) => (shifts[i].width + this.options.columnPadding) + 'px',\r\n left: (d, i) => shifts[i].offset + 'px',\r\n 'background-color': (d) => d.color\r\n });\r\n $headers.attr({\r\n 'class': (d) => `${clazz} ${d.cssClass||''} ${(d.getCompressed() ? 'compressed' : '')} ${d.headerCssClass} ${this.options.autoRotateLabels ? 'rotateable': ''} ${d.isFiltered() ? 'filtered' : ''}`,\r\n title: (d) => toFullTooltip(d),\r\n 'data-id': (d) => d.id,\r\n });\r\n $headers.select('i.sort_indicator').attr('class', (d) => {\r\n var r = d.findMyRanker();\r\n if (r && r.getSortCriteria().col === d) {\r\n return 'sort_indicator fa fa-sort-' + (r.getSortCriteria().asc ? 'asc' : 'desc');\r\n }\r\n return 'sort_indicator fa';\r\n });\r\n $headers.select('span.lu-label').text((d) => d.label);\r\n\r\n var that = this;\r\n $headers.filter((d) => model.isMultiLevelColumn(d)).each(function (col:model.IMultiLevelColumn) {\r\n if (col.getCollapsed() || col.getCompressed()) {\r\n d3.select(this).selectAll('div.' + clazz + '_i').remove();\r\n } else {\r\n let s_shifts = [];\r\n col.flatten(s_shifts, 0, 1, that.options.columnPadding);\r\n\r\n let s_columns = s_shifts.map((d) => d.col);\r\n that.renderColumns(s_columns, s_shifts, d3.select(this), clazz + (clazz.substr(clazz.length - 2) !== '_i' ? '_i' : ''));\r\n }\r\n }).select('div.lu-label').call(utils.dropAble(['application/caleydo-lineup-column-number-ref', 'application/caleydo-lineup-column-number'], (data, d:model.IMultiLevelColumn, copy) => {\r\n var col:model.Column = null;\r\n if ('application/caleydo-lineup-column-number-ref' in data) {\r\n var id = data['application/caleydo-lineup-column-number-ref'];\r\n col = this.data.find(id);\r\n if (copy) {\r\n col = this.data.clone(col);\r\n } else if (col) {\r\n col.removeMe();\r\n }\r\n } else {\r\n var desc = JSON.parse(data['application/caleydo-lineup-column-number']);\r\n col = this.data.create(this.data.fromDescRef(desc));\r\n }\r\n return d.push(col) != null;\r\n }));\r\n\r\n if (this.options.histograms) {\r\n\r\n $headers.filter((d) => model.isCategoricalColumn(d)).each(function (col:model.CategoricalColumn) {\r\n var $this = d3.select(this).select('div.histogram');\r\n var hist = that.histCache.get(col.id);\r\n if (hist) {\r\n hist.then((stats:model.ICategoricalStatistics) => {\r\n const $bars = $this.selectAll('div.bar').data(stats.hist);\r\n $bars.enter().append('div').classed('bar', true);\r\n const sx = d3.scale.ordinal().domain(col.categories).rangeBands([0, 100], 0.1);\r\n const sy = d3.scale.linear().domain([0, stats.maxBin]).range([0, 100]);\r\n $bars.style({\r\n left: (d) => sx(d.cat) + '%',\r\n width: (d) => sx.rangeBand() + '%',\r\n top: (d) => (100 - sy(d.y)) + '%',\r\n height: (d) => sy(d.y) + '%',\r\n 'background-color': (d) => col.colorOf(d.cat)\r\n }).attr({\r\n title: (d) => `${d.cat}: ${d.y}`,\r\n 'data-cat': (d) => d.cat\r\n });\r\n $bars.exit().remove();\r\n });\r\n }\r\n });\r\n $headers.filter((d) => d instanceof model.NumberColumn).each(function (col:model.Column) {\r\n var $this = d3.select(this).select('div.histogram');\r\n var hist = that.histCache.get(col.id);\r\n if (hist) {\r\n hist.then((stats:model.IStatistics) => {\r\n const $bars = $this.selectAll('div.bar').data(stats.hist);\r\n $bars.enter().append('div').classed('bar', true);\r\n const sx = d3.scale.ordinal().domain(d3.range(stats.hist.length).map(String)).rangeBands([0, 100], 0.1);\r\n const sy = d3.scale.linear().domain([0, stats.maxBin]).range([0, 100]);\r\n $bars.style({\r\n left: (d,i) => sx(String(i)) + '%',\r\n width: (d,i) => sx.rangeBand() + '%',\r\n top: (d) => (100 - sy(d.y)) + '%',\r\n height: (d) => sy(d.y) + '%'\r\n }).attr({\r\n title: (d,i) => `Bin ${i}: ${d.y}`,\r\n 'data-x': (d) => d.x\r\n });\r\n $bars.exit().remove();\r\n\r\n var $mean = $this.select('div.mean');\r\n if ($mean.empty()) {\r\n $mean = $this.append('div').classed('mean',true);\r\n }\r\n $mean.style('left', (stats.mean * 100) + '%');\r\n });\r\n }\r\n });\r\n }\r\n\r\n $headers.exit().remove();\r\n }\r\n}\r\n\r\n\r\nexport interface ISlicer {\r\n (start:number, length:number, row2y:(i:number) => number) : { from: number; to: number };\r\n}\r\n\r\nexport interface IBodyRenderer extends utils.AEventDispatcher {\r\n histCache : d3.Map>;\r\n\r\n node: Element;\r\n\r\n setOption(key: string, value: any);\r\n\r\n changeDataStorage(data:provider.DataProvider);\r\n\r\n select(dataIndex:number, additional?: boolean);\r\n\r\n updateFreeze(left:number);\r\n\r\n update();\r\n}\r\n\r\nexport class BodyRenderer extends utils.AEventDispatcher implements IBodyRenderer {\r\n private mouseOverItem:(dataIndex:number, hover:boolean) => void;\r\n private options = {\r\n rowHeight: 20,\r\n rowPadding: 1,\r\n rowBarPadding: 1,\r\n idPrefix: '',\r\n slopeWidth: 150,\r\n columnPadding: 5,\r\n stacked: true,\r\n animation: false, //200\r\n animationDuration: 1000,\r\n\r\n renderers: renderer.renderers(),\r\n\r\n meanLine: false,\r\n\r\n actions: [],\r\n\r\n freezeCols: 0\r\n };\r\n\r\n private $node:d3.Selection;\r\n\r\n private currentFreezeLeft = 0;\r\n\r\n histCache = d3.map>();\r\n\r\n constructor(private data:provider.DataProvider, parent:Element, private slicer:ISlicer, options = {}) {\r\n super();\r\n //merge options\r\n utils.merge(this.options, options);\r\n\r\n this.$node = d3.select(parent).append('svg').classed('lu-body', true);\r\n\r\n this.changeDataStorage(data);\r\n }\r\n\r\n createEventList() {\r\n return super.createEventList().concat(['hoverChanged', 'renderFinished']);\r\n }\r\n\r\n get node() {\r\n return this.$node.node();\r\n }\r\n\r\n setOption(key:string, value:any) {\r\n this.options[key] = value;\r\n }\r\n\r\n changeDataStorage(data:provider.DataProvider) {\r\n if (this.data) {\r\n this.data.on(['dirtyValues.bodyRenderer', 'selectionChanged.bodyRenderer'], null);\r\n }\r\n this.data = data;\r\n data.on('dirtyValues.bodyRenderer', utils.delayedCall(this.update.bind(this), 1));\r\n data.on('selectionChanged.bodyRenderer', utils.delayedCall((selection, jumpToFirst) => {\r\n if (jumpToFirst && selection.length > 0) {\r\n this.jumpToSelection();\r\n }\r\n this.drawSelection();\r\n }, 1));\r\n }\r\n\r\n createContext(index_shift:number):renderer.IRenderContext {\r\n var options = this.options;\r\n return {\r\n rowKey: this.options.animation ? this.data.rowKey : undefined,\r\n cellY(index:number) {\r\n return (index + index_shift) * (options.rowHeight);\r\n },\r\n cellPrevY(index:number) {\r\n return (index + index_shift) * (options.rowHeight);\r\n },\r\n cellX(index:number) {\r\n return 0;\r\n },\r\n rowHeight(index:number) {\r\n return options.rowHeight * (1 - options.rowPadding);\r\n },\r\n renderer(col:model.Column) {\r\n if (col.getCompressed() && model.isNumberColumn(col)) {\r\n return options.renderers.heatmap;\r\n }\r\n if (col instanceof model.StackColumn && col.getCollapsed()) {\r\n return options.renderers.number;\r\n }\r\n if (model.isMultiLevelColumn(col) && (col).getCollapsed()) {\r\n return options.renderers.string;\r\n }\r\n var l = options.renderers[col.desc.type];\r\n return l || renderer.defaultRenderer();\r\n },\r\n render(col:model.Column, $this:d3.Selection, data:any[], context:renderer.IRenderContext = this) {\r\n //if renderers change delete old stuff\r\n const tthis = ($this.node());\r\n const old_renderer = tthis.__renderer__;\r\n const act_renderer = this.renderer(col);\r\n if (old_renderer !== act_renderer) {\r\n $this.selectAll('*').remove();\r\n tthis.__renderer__ = act_renderer;\r\n }\r\n act_renderer.render($this, col, data, context);\r\n },\r\n renderCanvas(col:model.Column, ctx:CanvasRenderingContext2D, data:any[], context:renderer.IRenderContext = this) {\r\n //dummy impl\r\n },\r\n showStacked(col:model.Column) {\r\n return col instanceof model.StackColumn && options.stacked;\r\n },\r\n idPrefix: options.idPrefix,\r\n\r\n animated: ($sel:d3.Selection) => options.animation ? $sel.transition().duration(options.animationDuration) : $sel,\r\n\r\n //show mean line if option is enabled and top level\r\n showMeanLine: (col: model.Column) => options.meanLine && model.isNumberColumn(col) && !col.getCompressed() && col.parent instanceof model.Ranking,\r\n\r\n option: (key:string, default_:any) => (key in options) ? options[key] : default_\r\n };\r\n }\r\n\r\n updateClipPathsImpl(r:model.Column[], context:renderer.IRenderContext, height:number) {\r\n var $base = this.$node.select('defs.body');\r\n if ($base.empty()) {\r\n $base = this.$node.append('defs').classed('body', true);\r\n }\r\n\r\n //generate clip paths for the text columns to avoid text overflow\r\n //see http://stackoverflow.com/questions/L742812/cannot-select-svg-foreignobject-element-in-d3\r\n //there is a bug in webkit which present camelCase selectors\r\n var textClipPath = $base.selectAll(function () {\r\n return this.getElementsByTagName('clipPath');\r\n }).data(r, (d) => d.id);\r\n textClipPath.enter().append('clipPath')\r\n .attr('id', (d) => context.idPrefix + 'clipCol' + d.id)\r\n .append('rect').attr({\r\n y: 0\r\n });\r\n textClipPath.exit().remove();\r\n textClipPath.select('rect')\r\n .attr({\r\n x: 0, //(d,i) => offsets[i],\r\n width: (d) => Math.max(d.getWidth() - 5, 0),\r\n height: height\r\n });\r\n }\r\n\r\n updateClipPaths(rankings:model.Ranking[], context:renderer.IRenderContext, height:number) {\r\n var shifts = [], offset = 0;\r\n rankings.forEach((r) => {\r\n var w = r.flatten(shifts, offset, 2, this.options.columnPadding);\r\n offset += w + this.options.slopeWidth;\r\n });\r\n this.updateClipPathsImpl(shifts.map(s => s.col), context, height);\r\n\r\n var $elem = this.$node.select('clipPath#c' + context.idPrefix + 'Freeze');\r\n if ($elem.empty()) {\r\n $elem = this.$node.append('clipPath').attr('id', 'c' + context.idPrefix + 'Freeze').append('rect').attr({\r\n y: 0,\r\n width: 20000,\r\n height: height\r\n });\r\n }\r\n $elem.select('rect').attr({\r\n height: height\r\n });\r\n }\r\n\r\n renderRankings($body:d3.Selection, rankings:model.Ranking[], orders:number[][], shifts:any[], context:renderer.IRenderContext, height: number) {\r\n const that = this;\r\n const dataPromises = orders.map((r) => this.data.view(r));\r\n\r\n var $rankings = $body.selectAll('g.ranking').data(rankings, (d) => d.id);\r\n var $rankings_enter = $rankings.enter().append('g').attr({\r\n 'class': 'ranking',\r\n transform: (d, i) => 'translate(' + shifts[i].shift + ',0)'\r\n });\r\n $rankings_enter.append('g').attr('class', 'rows');\r\n $rankings_enter.append('g').attr('class', 'cols');\r\n\r\n context.animated($rankings).attr({\r\n transform: (d, i) => 'translate(' + shifts[i].shift + ',0)'\r\n });\r\n\r\n var $cols = $rankings.select('g.cols').selectAll('g.uchild').data((d) => d.children.filter((d) => !d.isHidden()), (d) => d.id);\r\n $cols.enter().append('g').attr('class', 'uchild')\r\n .append('g').attr({\r\n 'class': 'child',\r\n transform: (d, i, j?) => 'translate(' + shifts[j].shifts[i] + ',0)'\r\n });\r\n $cols.exit().remove();\r\n $cols = $cols.select('g.child');\r\n $cols.attr({\r\n 'data-index': (d, i) => i\r\n });\r\n context.animated($cols).attr({\r\n transform: (d, i, j?) => {\r\n return 'translate(' + shifts[j].shifts[i] + ',0)';\r\n }\r\n }).each(function (d, i, j?) {\r\n const $col = d3.select(this);\r\n dataPromises[j].then((data) => {\r\n context.render(d, $col, data, context);\r\n });\r\n\r\n if (context.showMeanLine(d)) {\r\n const h = that.histCache.get(d.id);\r\n if (h) {\r\n h.then((stats:model.IStatistics) => {\r\n const $mean = $col.selectAll('line.meanline').data([stats.mean]);\r\n $mean.enter().append('line').attr('class', 'meanline');\r\n $mean.exit().remove();\r\n $mean.attr('x1', d.getWidth() * stats.mean)\r\n .attr('x2', d.getWidth() * stats.mean)\r\n .attr('y2', height);\r\n });\r\n }\r\n } else {\r\n $col.selectAll('line.meanline').remove();\r\n }\r\n });\r\n\r\n // wait until all `context.render()` calls have finished\r\n Promise.all(dataPromises).then((args) => {\r\n this.fire('renderFinished');\r\n });\r\n\r\n function mouseOverRow($row:d3.Selection, $cols:d3.Selection, index:number, ranking:model.Ranking, rankingIndex:number) {\r\n $row.classed('hover', true);\r\n var $value_cols = $row.select('g.values').selectAll('g.uchild').data(ranking.children.filter((d) => !d.isHidden()), (d) => d.id);\r\n $value_cols.enter().append('g').attr({\r\n 'class': 'uchild'\r\n }).append('g').classed('child', true);\r\n\r\n $value_cols.select('g.child').attr({\r\n transform: (d, i) => {\r\n return 'translate(' + shifts[rankingIndex].shifts[i] + ',0)';\r\n }\r\n }).each(function (d:model.Column, i) {\r\n dataPromises[rankingIndex].then((data) => {\r\n context.renderer(d).mouseEnter($cols.selectAll('g.child[data-index=\"' + i + '\"]'), d3.select(this), d, data[index], index, context);\r\n\r\n\r\n });\r\n });\r\n $value_cols.exit().remove();\r\n //data.mouseOver(d, i);\r\n }\r\n\r\n function mouseLeaveRow($row:d3.Selection, $cols:d3.Selection, index:number, ranking:model.Ranking, rankingIndex:number) {\r\n $row.classed('hover', false);\r\n $row.select('g.values').selectAll('g.uchild').each(function (d:model.Column, i) {\r\n dataPromises[rankingIndex].then((data) => {\r\n context.renderer(d).mouseLeave($cols.selectAll('g.child[data-index=\"' + i + '\"]'), d3.select(this).select('g.child'), d, data[index], index, context);\r\n });\r\n }).remove();\r\n //data.mouseLeave(d, i);\r\n }\r\n\r\n this.mouseOverItem = function (data_index:number, hover = true) {\r\n $rankings.each(function (ranking, rankingIndex) {\r\n var $ranking = d3.select(this);\r\n var $row = $ranking.selectAll('g.row[data-index=\"' + data_index + '\"]');\r\n var $cols = $ranking.select('g.cols');\r\n if (!$row.empty()) {\r\n var index = $row.datum().i;\r\n if (hover) {\r\n mouseOverRow($row, $cols, index, ranking, rankingIndex);\r\n } else {\r\n mouseLeaveRow($row, $cols, index, ranking, rankingIndex);\r\n }\r\n }\r\n });\r\n\r\n //set clip path for frozen columns\r\n that.updateFrozenRows();\r\n };\r\n var $rows = $rankings.select('g.rows').selectAll('g.row').data((d, i) => orders[i].map((d, i) => ({d: d, i: i})));\r\n var $rows_enter = $rows.enter().append('g').attr({\r\n 'class': 'row'\r\n });\r\n $rows_enter.append('rect').attr({\r\n 'class': 'bg'\r\n });\r\n $rows_enter.append('g').attr({'class': 'values'});\r\n $rows_enter.on('mouseenter', (data_index) => {\r\n this.mouseOver(data_index.d, true);\r\n }).on('mouseleave', (data_index) => {\r\n this.mouseOver(data_index.d, false);\r\n }).on('click', (data_index) => {\r\n this.select(data_index.d, d3.event.ctrlKey);\r\n });\r\n $rows.attr({\r\n 'data-index': (d) => d.d\r\n }).classed('selected', (d) => this.data.isSelected(d.d));\r\n $rows.select('rect').attr({\r\n y: (d) => context.cellY(d.i),\r\n height: (d) => context.rowHeight(d.i),\r\n width: (d, i, j?) => shifts[j].width,\r\n 'class': (d, i) => 'bg ' + (i % 2 === 0 ? 'even' : 'odd')\r\n });\r\n $rows.exit().remove();\r\n\r\n $rankings.exit().remove();\r\n }\r\n\r\n private jumpToSelection() {\r\n const indices = this.data.getSelection();\r\n const rankings = this.data.getRankings();\r\n if (indices.length <= 0 || rankings.length <= 0) {\r\n return;\r\n }\r\n const order = rankings[0].getOrder();\r\n const visibleRange = this.slicer(0, order.length, (i) => i * this.options.rowHeight);\r\n const visibleOrder = order.slice(visibleRange.from, visibleRange.to);\r\n //if any of the selected indices is in the visible range - done\r\n if (indices.some((d) => visibleOrder.indexOf(d) >= 0)) {\r\n return;\r\n }\r\n //find the closest not visible one in the indices list\r\n //\r\n }\r\n\r\n select(dataIndex:number, additional = false) {\r\n var selected = this.data.toggleSelection(dataIndex, additional);\r\n this.$node.selectAll('g.row[data-index=\"' + dataIndex + '\"], line.slope[data-index=\"' + dataIndex + '\"]').classed('selected', selected);\r\n }\r\n\r\n private hasAnySelectionColumn() {\r\n return this.data.getRankings().some((r) => r.children.some((c) => c instanceof model.SelectionColumn && !c.isHidden()));\r\n }\r\n\r\n drawSelection() {\r\n if (this.hasAnySelectionColumn()) {\r\n this.update();\r\n }\r\n var indices = this.data.getSelection();\r\n if (indices.length === 0) {\r\n this.$node.selectAll('g.row.selected, line.slope.selected').classed('selected', false);\r\n } else {\r\n var s = d3.set(indices);\r\n this.$node.selectAll('g.row').classed('selected', (d) => s.has(String(d.d)));\r\n this.$node.selectAll('line.slope').classed('selected', (d) => s.has(String(d.data_index)));\r\n }\r\n }\r\n\r\n mouseOver(dataIndex:number, hover = true) {\r\n this.fire('hoverChanged', hover ? dataIndex : -1);\r\n this.mouseOverItem(dataIndex, hover);\r\n //update the slope graph\r\n this.$node.selectAll('line.slope[data-index=\"' + dataIndex + '\"]').classed('hover', hover);\r\n }\r\n\r\n renderSlopeGraphs($body:d3.Selection, rankings:model.Ranking[], orders:number[][], shifts:any[], context:renderer.IRenderContext) {\r\n var slopes = orders.slice(1).map((d, i) => ({left: orders[i], left_i: i, right: d, right_i: i + 1}));\r\n var $slopes = $body.selectAll('g.slopegraph').data(slopes);\r\n $slopes.enter().append('g').attr({\r\n 'class': 'slopegraph'\r\n });\r\n $slopes.attr({\r\n transform: (d, i) => 'translate(' + (shifts[i + 1].shift - this.options.slopeWidth) + ',0)'\r\n });\r\n var $lines = $slopes.selectAll('line.slope').data((d, i) => {\r\n var cache = {};\r\n d.right.forEach((data_index, pos) => {\r\n cache[data_index] = pos;\r\n });\r\n return d.left.map((data_index, pos) => ({\r\n data_index: data_index,\r\n lpos: pos,\r\n rpos: cache[data_index]\r\n })).filter((d) => d.rpos != null);\r\n });\r\n $lines.enter().append('line').attr({\r\n 'class': 'slope',\r\n x2: this.options.slopeWidth\r\n }).on('mouseenter', (d) => {\r\n this.mouseOver(d.data_index, true);\r\n }).on('mouseleave', (d) => {\r\n this.mouseOver(d.data_index, false);\r\n });\r\n $lines.attr({\r\n 'data-index': (d) => d.data_index\r\n });\r\n $lines.attr({\r\n y1: (d:any) => {\r\n return context.rowHeight(d.lpos) * 0.5 + context.cellY(d.lpos);\r\n },\r\n y2: (d:any) => {\r\n return context.rowHeight(d.rpos) * 0.5 + context.cellY(d.rpos);\r\n }\r\n });\r\n $lines.exit().remove();\r\n\r\n $slopes.exit().remove();\r\n }\r\n\r\n updateFreeze(left:number) {\r\n const numColumns = this.options.freezeCols;\r\n const $cols = this.$node.select('g.cols');\r\n const $n = this.$node.select('#c' + this.options.idPrefix + 'Freeze').select('rect');\r\n var $col = $cols.select(`g.child[data-index=\"${numColumns}\"]`);\r\n if ($col.empty()) {\r\n //use the last one\r\n $col = $cols.select('g.child:last-of-type');\r\n }\r\n var x = d3.transform($col.attr('transform') || '').translate[0];\r\n $n.attr('x', left + x);\r\n $cols.selectAll('g.uchild').attr({\r\n 'clip-path': (d, i) => i < numColumns ? null : 'url(#c' + this.options.idPrefix + 'Freeze)',\r\n 'transform': (d, i) => i < numColumns ? 'translate(' + left + ',0)' : null\r\n });\r\n\r\n\r\n this.currentFreezeLeft = left;\r\n //update all mouse over rows and selected rows with\r\n this.updateFrozenRows();\r\n }\r\n\r\n private updateFrozenRows() {\r\n const numColumns = this.options.freezeCols;\r\n if (numColumns <= 0) {\r\n return;\r\n }\r\n const left = this.currentFreezeLeft;\r\n const $rows = this.$node.select('g.rows');\r\n\r\n $rows.select('g.row.hover g.values').selectAll('g.uchild').attr({\r\n 'clip-path': (d, i) => i < numColumns ? null : 'url(#c' + this.options.idPrefix + 'Freeze)',\r\n 'transform': (d, i) => i < numColumns ? 'translate(' + left + ',0)' : null\r\n });\r\n }\r\n\r\n /**\r\n * render the body\r\n */\r\n update() {\r\n var rankings = this.data.getRankings();\r\n var maxElems = d3.max(rankings, (d) => d.getOrder().length) || 0;\r\n var height = this.options.rowHeight * maxElems;\r\n var visibleRange = this.slicer(0, maxElems, (i) => i * this.options.rowHeight);\r\n var orderSlicer = (order:number[]) => {\r\n if (visibleRange.from === 0 && order.length <= visibleRange.to) {\r\n return order;\r\n }\r\n return order.slice(visibleRange.from, Math.min(order.length, visibleRange.to));\r\n };\r\n var orders = rankings.map((r) => orderSlicer(r.getOrder()));\r\n var context = this.createContext(visibleRange.from);\r\n\r\n\r\n //compute offsets and shifts for individual rankings and columns inside the rankings\r\n var offset = 0,\r\n shifts = rankings.map((d, i) => {\r\n var r = offset;\r\n offset += this.options.slopeWidth;\r\n var o2 = 0,\r\n shift2 = d.children.filter((d) => !d.isHidden()).map((o) => {\r\n var r = o2;\r\n o2 += (o.getCompressed() ? model.Column.COMPRESSED_WIDTH : o.getWidth()) + this.options.columnPadding;\r\n if (model.isMultiLevelColumn(o) && !(o).getCollapsed() && !o.getCompressed()) {\r\n o2 += this.options.columnPadding * ((o).length - 1);\r\n }\r\n return r;\r\n });\r\n offset += o2;\r\n return {\r\n shift: r,\r\n shifts: shift2,\r\n width: o2\r\n };\r\n });\r\n\r\n this.$node.attr({\r\n width: Math.max(0, offset - this.options.slopeWidth), //added one to often\r\n height: height\r\n });\r\n this.updateClipPaths(rankings, context, height);\r\n\r\n\r\n\r\n var $body = this.$node.select('g.body');\r\n if ($body.empty()) {\r\n $body = this.$node.append('g').classed('body', true);\r\n }\r\n\r\n\r\n this.renderRankings($body, rankings, orders, shifts, context, height);\r\n this.renderSlopeGraphs($body, rankings, orders, shifts, context);\r\n }\r\n}\r\n\r\n\r\nexport class BodyCanvasRenderer extends utils.AEventDispatcher implements IBodyRenderer {\r\n private options = {\r\n rowHeight: 20,\r\n rowPadding: 1,\r\n rowBarPadding: 1,\r\n idPrefix: '',\r\n slopeWidth: 150,\r\n columnPadding: 5,\r\n stacked: true,\r\n\r\n renderers: renderer.renderers(),\r\n\r\n meanLine: false,\r\n\r\n freezeCols: 0\r\n };\r\n\r\n private $node:d3.Selection;\r\n\r\n histCache = d3.map>();\r\n\r\n constructor(private data:provider.DataProvider, parent:Element, private slicer:ISlicer, options = {}) {\r\n super();\r\n //merge options\r\n utils.merge(this.options, options);\r\n\r\n this.$node = d3.select(parent).append('canvas').classed('lu-canvas.body', true);\r\n\r\n this.changeDataStorage(data);\r\n }\r\n\r\n createEventList() {\r\n return super.createEventList().concat(['hoverChanged']);\r\n }\r\n\r\n get node() {\r\n return this.$node.node();\r\n }\r\n\r\n setOption(key:string, value:any) {\r\n this.options[key] = value;\r\n }\r\n\r\n updateFreeze(left: number) {\r\n //dummy impl\r\n }\r\n\r\n select(dataIndex:number, additional = false) {\r\n //dummy impl\r\n }\r\n\r\n changeDataStorage(data:provider.DataProvider) {\r\n if (this.data) {\r\n this.data.on(['dirtyValues.bodyRenderer', 'selectionChanged.bodyRenderer'], null);\r\n }\r\n this.data = data;\r\n data.on('dirtyValues.bodyRenderer', utils.delayedCall(this.update.bind(this), 1));\r\n //data.on('selectionChanged.bodyRenderer', utils.delayedCall(this.drawSelection.bind(this), 1));\r\n }\r\n\r\n createContext(index_shift:number):renderer.IRenderContext {\r\n var options = this.options;\r\n return {\r\n rowKey: undefined,\r\n cellY(index:number) {\r\n return (index + index_shift) * (options.rowHeight);\r\n },\r\n cellPrevY(index:number) {\r\n return (index + index_shift) * (options.rowHeight);\r\n },\r\n cellX(index:number) {\r\n return 0;\r\n },\r\n rowHeight(index:number) {\r\n return options.rowHeight * (1 - options.rowPadding);\r\n },\r\n renderer(col:model.Column) {\r\n if (col.getCompressed() && model.isNumberColumn(col)) {\r\n return options.renderers.heatmap;\r\n }\r\n if (col instanceof model.StackColumn && col.getCollapsed()) {\r\n return options.renderers.number;\r\n }\r\n if (model.isMultiLevelColumn(col) && (col).getCollapsed()) {\r\n return options.renderers.string;\r\n }\r\n var l = options.renderers[col.desc.type];\r\n return l || renderer.defaultRenderer();\r\n },\r\n render(col:model.Column, $this:d3.Selection, data:any[], context:renderer.IRenderContext = this) {\r\n //dummy impl\r\n },\r\n renderCanvas(col:model.Column, ctx:CanvasRenderingContext2D, data:any[], context:renderer.IRenderContext = this) {\r\n const act_renderer = this.renderer(col);\r\n act_renderer.renderCanvas(ctx, col, data, context);\r\n },\r\n showStacked(col:model.Column) {\r\n return col instanceof model.StackColumn && options.stacked;\r\n },\r\n idPrefix: options.idPrefix,\r\n\r\n animated: ($sel:d3.Selection) => $sel,\r\n\r\n //show mean line if option is enabled and top level\r\n showMeanLine: (col: model.Column) => options.meanLine && model.isNumberColumn(col) && !col.getCompressed() && col.parent instanceof model.Ranking,\r\n\r\n option: (key:string, default_:any) => (key in options) ? options[key] : default_\r\n };\r\n }\r\n\r\n\r\n renderRankings(ctx: CanvasRenderingContext2D, rankings:model.Ranking[], orders:number[][], shifts:any[], context:renderer.IRenderContext, height: number) {\r\n const dataPromises = orders.map((r) => this.data.view(r));\r\n ctx.save();\r\n\r\n\r\n rankings.forEach((ranking, j) => {\r\n\r\n dataPromises[j].then((data) => {\r\n ctx.save();\r\n ctx.translate(shifts[j].shift, 0);\r\n\r\n ctx.save();\r\n ctx.fillStyle = '#f7f7f7';\r\n orders[j].forEach((order,i) => {\r\n if (i%2 === 0) {\r\n ctx.fillRect(0, context.cellY(i), shifts[j].width, context.rowHeight(i));\r\n }\r\n });\r\n ctx.restore();\r\n\r\n ranking.children.forEach((child, i) => {\r\n ctx.save();\r\n ctx.translate(shifts[j].shifts[i], 0);\r\n context.renderCanvas(child, ctx, data, context);\r\n ctx.restore();\r\n });\r\n ctx.restore();\r\n });\r\n });\r\n ctx.restore();\r\n }\r\n\r\n renderSlopeGraphs(ctx: CanvasRenderingContext2D, rankings:model.Ranking[], orders:number[][], shifts:any[], context:renderer.IRenderContext) {\r\n var slopes = orders.slice(1).map((d, i) => ({left: orders[i], left_i: i, right: d, right_i: i + 1}));\r\n ctx.save();\r\n ctx.fillStyle = 'darkgray';\r\n slopes.forEach((slope, i) => {\r\n ctx.save();\r\n ctx.translate(shifts[i + 1].shift - this.options.slopeWidth, 0);\r\n\r\n var cache = {};\r\n slope.right.forEach((data_index, pos) => {\r\n cache[data_index] = pos;\r\n });\r\n const lines = slope.left.map((data_index, pos) => ({\r\n data_index: data_index,\r\n lpos: pos,\r\n rpos: cache[data_index]\r\n })).filter((d) => d.rpos != null);\r\n\r\n ctx.beginPath();\r\n lines.forEach((line) => {\r\n ctx.moveTo(0, context.rowHeight(line.lpos) * 0.5 + context.cellY(line.lpos));\r\n ctx.lineTo(this.options.slopeWidth, context.rowHeight(line.rpos) * 0.5 + context.cellY(line.rpos));\r\n });\r\n ctx.stroke();\r\n\r\n ctx.restore();\r\n });\r\n ctx.restore();\r\n }\r\n\r\n /**\r\n * render the body\r\n */\r\n update() {\r\n var rankings = this.data.getRankings();\r\n var maxElems = d3.max(rankings, (d) => d.getOrder().length) || 0;\r\n var height = this.options.rowHeight * maxElems;\r\n var visibleRange = this.slicer(0, maxElems, (i) => i * this.options.rowHeight);\r\n var orderSlicer = (order:number[]) => {\r\n if (visibleRange.from === 0 && order.length <= visibleRange.to) {\r\n return order;\r\n }\r\n return order.slice(visibleRange.from, Math.min(order.length, visibleRange.to));\r\n };\r\n var orders = rankings.map((r) => orderSlicer(r.getOrder()));\r\n var context = this.createContext(visibleRange.from);\r\n\r\n\r\n //compute offsets and shifts for individual rankings and columns inside the rankings\r\n var offset = 0,\r\n shifts = rankings.map((d, i) => {\r\n var r = offset;\r\n offset += this.options.slopeWidth;\r\n var o2 = 0,\r\n shift2 = d.children.filter((d) => !d.isHidden()).map((o) => {\r\n var r = o2;\r\n o2 += (o.getCompressed() ? model.Column.COMPRESSED_WIDTH : o.getWidth()) + this.options.columnPadding;\r\n if (o instanceof model.StackColumn && !o.getCollapsed() && !o.getCompressed()) {\r\n o2 += this.options.columnPadding * (o.length - 1);\r\n }\r\n return r;\r\n });\r\n offset += o2;\r\n return {\r\n shift: r,\r\n shifts: shift2,\r\n width: o2\r\n };\r\n });\r\n\r\n this.$node.attr({\r\n width: offset,\r\n height: height\r\n });\r\n\r\n const ctx = (this.$node.node()).getContext('2d');\r\n ctx.font = '10pt Times New Roman';\r\n ctx.textBaseline = 'top';\r\n ctx.clearRect(0,0,ctx.canvas.width, ctx.canvas.height);\r\n\r\n this.renderRankings(ctx, rankings, orders, shifts, context, height);\r\n this.renderSlopeGraphs(ctx, rankings, orders, shifts, context);\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/ui.ts\n **/","/**\n * a set of simple dialogs for LineUp\n *\n * Created by Samuel Gratzl on 24.08.2015.\n */\n\nimport model = require('./model');\nimport utils = require('./utils');\nimport mappingeditor = require('./mappingeditor');\nimport provider = require('./provider');\n\nexport function dialogForm(title, body, buttonsWithLabel = false) {\n return '' + title + '' +\n '
' +\n body + '' +\n '' +\n '
';\n}\n\n/**\n * creates a simple popup dialog under the given attachment\n * @param attachment\n * @param title\n * @param body\n * @returns {Selection}\n */\nexport function makePopup(attachement:d3.Selection, title:string, body:string) {\n var pos = utils.offset(attachement.node());\n var $popup = d3.select('body').append('div')\n .attr({\n 'class': 'lu-popup2'\n }).style({\n left: pos.left + 'px',\n top: pos.top + 'px'\n }).html(dialogForm(title, body));\n function movePopup() {\n //.style(\"left\", (this.parentElement.offsetLeft + (d3.event).dx) + 'px')\n //.style(\"top\", (this.parentElement.offsetTop + d3.event.dy) + 'px');\n //const mouse = d3.mouse(this.parentElement);\n $popup.style({\n left: (this.parentElement.offsetLeft + (d3.event).dx) + 'px',\n top: (this.parentElement.offsetTop + (d3.event).dy) + 'px'\n });\n }\n $popup.select('span.lu-popup-title').call(d3.behavior.drag().on('drag', movePopup));\n $popup.on('keydown', () => {\n if (d3.event.which === 27) {\n $popup.remove();\n }\n });\n var auto = $popup.select('input[autofocus]').node();\n if (auto) {\n auto.focus();\n }\n return $popup;\n\n}\n\n/**\n * opens a rename dialog for the given column\n * @param column the column to rename\n * @param $header the visual header element of this column\n */\nexport function openRenameDialog(column:model.Column, $header:d3.Selection) {\n var popup = makePopup($header, 'Rename Column', `\n
\n
\n
`);\n\n popup.select('.ok').on('click', function () {\n var newValue = popup.select('input[type=\"text\"]').property('value');\n var newColor = popup.select('input[type=\"color\"]').property('value');\n var newDescription = popup.select('textarea').property('value');\n column.setMetaData( { label: newValue, color: newColor, description: newDescription});\n popup.remove();\n });\n\n popup.select('.cancel').on('click', function () {\n popup.remove();\n });\n}\n\n\n/**\n * opens a dialog for editing the link of a column\n * @param column the column to rename\n * @param $header the visual header element of this column\n */\nexport function openEditLinkDialog(column:model.LinkColumn, $header:d3.Selection, templates: string[] = []) {\n var t = ` 0 ? 'list=\"lineupPatternList\"' : ''}>
`;\n if (templates.length > 0) {\n t += ''+templates.map((t) => `';\n }\n\n var popup = makePopup($header, 'Edit Link ($ as Placeholder)', t);\n\n popup.select('.ok').on('click', function () {\n var newValue = popup.select('input[type=\"text\"]').property('value');\n column.setLink(newValue);\n\n popup.remove();\n });\n\n popup.select('.cancel').on('click', function () {\n popup.remove();\n });\n}\n\n/**\n * opens a search dialog for the given column\n * @param column the column to rename\n * @param $header the visual header element of this column\n * @param provider the data provider for the actual search\n */\nexport function openSearchDialog(column:model.Column, $header:d3.Selection, provider:provider.DataProvider) {\n var popup = makePopup($header, 'Search', '

');\n\n popup.select('input[type=\"text\"]').on('input', function () {\n var search:any = (d3.event.target).value;\n if (search.length >= 3) {\n var isRegex = popup.select('input[type=\"checkbox\"]').property('checked');\n if (isRegex) {\n search = new RegExp(search);\n }\n provider.searchSelect(search, column);\n }\n });\n\n function updateImpl() {\n var search = popup.select('input[type=\"text\"]').property('value');\n var isRegex = popup.select('input[type=\"text\"]').property('checked');\n if (search.length > 0) {\n if (isRegex) {\n search = new RegExp(search);\n }\n provider.searchSelect(search, column);\n }\n popup.remove();\n }\n\n popup.select('input[type=\"checkbox\"]').on('change', updateImpl);\n popup.select('.ok').on('click', updateImpl);\n\n popup.select('.cancel').on('click', function () {\n popup.remove();\n });\n}\n\n/**\n * opens a dialog for editing the weights of a stack column\n * @param column the column to filter\n * @param $header the visual header element of this column\n */\nexport function openEditWeightsDialog(column:model.StackColumn, $header:d3.Selection) {\n var weights = column.getWeights(),\n children = column.children.map((d, i) => ({col: d, weight: weights[i] * 100} ));\n\n //map weights to pixels\n var scale = d3.scale.linear().domain([0, 100]).range([0, 120]);\n\n var $popup = makePopup($header, 'Edit Weights', '
');\n\n //show as a table with inputs and bars\n var $rows = $popup.select('table').selectAll('tr').data(children);\n var $rows_enter = $rows.enter().append('tr');\n $rows_enter.append('td')\n .append('input').attr({\n type: 'number',\n value: (d) => d.weight,\n min: 0,\n max: 100,\n size: 5\n }).on('input', function (d) {\n d.weight = +this.value;\n redraw();\n });\n\n $rows_enter.append('td').append('div')\n .attr('class', (d) => 'bar ' + d.col.cssClass)\n .style('background-color', (d) => d.col.color);\n\n $rows_enter.append('td').text((d) => d.col.label);\n\n function redraw() {\n $rows.select('.bar').transition().style('width', (d) => scale(d.weight) + 'px');\n }\n\n redraw();\n\n $popup.select('.cancel').on('click', function () {\n column.setWeights(weights);\n $popup.remove();\n });\n $popup.select('.reset').on('click', function () {\n children.forEach((d, i) => d.weight = weights[i] * 100);\n $rows.select('input').property('value', (d) => d.weight);\n redraw();\n });\n $popup.select('.ok').on('click', function () {\n column.setWeights(children.map((d) => d.weight));\n $popup.remove();\n });\n}\n\n/**\n * flags the header to be filtered\n * @param $header\n * @param filtered\n */\nfunction markFiltered($header: d3.Selection, filtered = false) {\n $header.classed('filtered', filtered);\n}\n\nfunction sortbyName(prop: string) {\n return function(a, b) {\n const av = a[prop],\n bv = b[prop];\n if (av.toLowerCase() < bv.toLowerCase()) {\n return -1;\n }\n if (av.toLowerCase() > bv.toLowerCase()) {\n return 1;\n }\n return 0;\n };\n}\n\n/**\n * opens a dialog for filtering a categorical column\n * @param column the column to rename\n * @param $header the visual header element of this column\n */\nfunction openCategoricalFilter(column:model.CategoricalColumn, $header:d3.Selection) {\n var bak = column.getFilter() || [];\n var popup = makePopup($header, 'Edit Filter', '
Category
');\n\n // list all data rows !\n const colors = column.categoryColors,\n labels = column.categoryLabels;\n var trData = column.categories.map(function (d, i) {\n return {cat: d, label: labels[i], isChecked: bak.length === 0 || bak.indexOf(d) >= 0, color: colors[i]};\n }).sort(sortbyName('label'));\n\n const $rows = popup.select('tbody').selectAll('tr').data(trData);\n const $rows_enter = $rows.enter().append('tr');\n $rows_enter.append('td').attr('class', 'checkmark');\n $rows_enter.append('td').attr('class', 'datalabel').text((d) => d.label);\n $rows_enter.on('click', (d) => {\n d.isChecked = !d.isChecked;\n redraw();\n });\n\n function redraw() {\n $rows.select('.checkmark').html((d) => '');\n $rows.select('.datalabel').style('opacity', (d) => d.isChecked ? '1.0' : '.8');\n }\n\n redraw();\n\n var isCheckedAll = true;\n\n function redrawSelectAll() {\n popup.select('.selectAll').html((d) => '');\n popup.select('thead').on('click', (d) => {\n isCheckedAll = !isCheckedAll;\n trData.forEach((row) => row.isChecked = isCheckedAll);\n redraw();\n redrawSelectAll();\n });\n }\n\n redrawSelectAll();\n\n function updateData(filter) {\n markFiltered($header, filter && filter.length > 0 && filter.length < trData.length);\n column.setFilter(filter);\n }\n\n popup.select('.cancel').on('click', function () {\n updateData(bak);\n popup.remove();\n });\n popup.select('.reset').on('click', function () {\n trData.forEach(d => d.isChecked = true);\n redraw();\n updateData(null);\n });\n popup.select('.ok').on('click', function () {\n var f = trData.filter((d) => d.isChecked).map(d => d.cat);\n if (f.length === trData.length) {\n f = [];\n }\n updateData(f);\n popup.remove();\n });\n}\n\n/**\n * opens a dialog for filtering a string column\n * @param column the column to filter\n * @param $header the visual header element of this column\n */\nfunction openStringFilter(column:model.StringColumn, $header:d3.Selection) {\n var bak = column.getFilter() || '', bakMissing = bak === model.StringColumn.FILTER_MISSING;\n if (bakMissing) {\n bak = '';\n }\n\n var $popup = makePopup($header, 'Filter',\n `\n

\n
`);\n\n function updateData(filter) {\n markFiltered($header, (filter && filter !== ''));\n column.setFilter(filter);\n }\n\n function updateImpl(force) {\n //get value\n var search:any = $popup.select('input[type=\"text\"]').property('value');\n var filterMissing = $popup.select('input[type=\"checkbox\"].lu_filter_missing').property('checked');\n if (filterMissing && search === '') {\n search = model.StringColumn.FILTER_MISSING;\n }\n if (search === '') { //reset\n updateData(search);\n return;\n }\n if (search.length >= 3 || force) {\n var isRegex = $popup.select('input[type=\"checkbox\"]:first-of-type').property('checked');\n if (isRegex && search !== model.StringColumn.FILTER_MISSING) {\n search = new RegExp(search);\n }\n updateData(search);\n }\n\n }\n\n $popup.selectAll('input[type=\"checkbox\"]').on('change', updateImpl);\n $popup.select('input[type=\"text\"]').on('input', updateImpl);\n\n $popup.select('.cancel').on('click', function () {\n $popup.select('input[type=\"text\"]').property('value', bak || '');\n $popup.select('input[type=\"checkbox\"]:first-of-type').property('checked', bak instanceof RegExp ? 'checked' : null);\n $popup.select('input[type=\"checkbox\"].lu_filter_missing').property('checked', bakMissing ? 'checked' : null);\n updateData(bak);\n $popup.remove();\n });\n $popup.select('.reset').on('click', function () {\n $popup.select('input[type=\"text\"]').property('value', '');\n $popup.selectAll('input[type=\"checkbox\"]').property('checked', null);\n updateData(null);\n });\n $popup.select('.ok').on('click', function () {\n updateImpl(true);\n $popup.remove();\n });\n}\n\n\n/**\n * opens a dialog for filtering a boolean column\n * @param column the column to filter\n * @param $header the visual header element of this column\n */\nfunction openBooleanFilter(column:model.BooleanColumn, $header:d3.Selection) {\n var bak = column.getFilter();\n\n var $popup = makePopup($header, 'Filter',\n `
\n
\n \n
`);\n\n function updateData(filter) {\n markFiltered($header, (filter !== null));\n column.setFilter(filter);\n }\n\n function updateImpl(force) {\n //get value\n const isTrue = $popup.select('input[type=\"radio\"][value=\"true\"]').property('checked');\n const isFalse = $popup.select('input[type=\"radio\"][value=\"false\"]').property('checked');\n updateData(isTrue ? true : (isFalse ? false: null));\n }\n\n $popup.selectAll('input[type=\"radio\"]').on('change', updateImpl);\n\n $popup.select('.cancel').on('click', function () {\n updateData(bak);\n $popup.remove();\n });\n $popup.select('.reset').on('click', function () {\n const v = bak === null ? 'null': String(bak);\n $popup.selectAll('input[type=\"radio\"]').property('checked', function() {\n return this.value === v;\n });\n updateData(null);\n });\n $popup.select('.ok').on('click', function () {\n updateImpl(true);\n $popup.remove();\n });\n}\n\n\n/**\n * opens a dialog for editing the script code\n * @param column the column to edit\n * @param $header the visual header element of this column\n */\nexport function openEditScriptDialog(column:model.ScriptColumn, $header:d3.Selection) {\n const bak = column.getScript();\n const $popup = makePopup($header, 'Edit Script',\n `Parameters: values: number[], children: Column[]
\n
`);\n\n function updateData(script) {\n column.setScript(script);\n }\n\n function updateImpl() {\n //get value\n var script = $popup.select('textarea').property('value');\n updateData(script);\n }\n\n $popup.select('.cancel').on('click', function () {\n $popup.select('textarea').property('value', bak);\n updateData(bak);\n $popup.remove();\n });\n $popup.select('.reset').on('click', function () {\n $popup.select('textarea').property('value', model.ScriptColumn.DEFAULT_SCRIPT);\n updateData(model.ScriptColumn.DEFAULT_SCRIPT);\n });\n $popup.select('.ok').on('click', function () {\n updateImpl();\n $popup.remove();\n });\n}\n\n/**\n * opens the mapping editor for a given NumberColumn\n * @param column the column to rename\n * @param $header the visual header element of this column\n * @param data the data provider for illustrating the mapping by example\n */\nfunction openMappingEditor(column:model.NumberColumn, $header:d3.Selection, data:provider.DataProvider) {\n var pos = utils.offset($header.node()),\n bak = column.getMapping(),\n original = column.getOriginalMapping(),\n bakfilter = column.getFilter(),\n act: model.IMappingFunction = bak.clone(),\n actfilter = bakfilter;\n\n var popup = d3.select('body').append('div')\n .attr({\n 'class': 'lu-popup'\n }).style({\n left: pos.left + 'px',\n top: pos.top + 'px'\n })\n .html(dialogForm('Change Mapping', '
'));\n\n function applyMapping(newscale: model.IMappingFunction, filter: {min: number, max: number }) {\n act = newscale;\n actfilter = filter;\n markFiltered($header, !newscale.eq(original) || (bakfilter.min !== filter.min || bakfilter.max !== filter.min));\n\n column.setMapping(newscale);\n column.setFilter(filter);\n }\n\n var editorOptions = {\n callback: applyMapping,\n triggerCallback: 'dragend'\n };\n var data_sample = data.mappingSample(column);\n var editor = mappingeditor.create(popup.select('.mappingArea').node(), act, original, actfilter, data_sample, editorOptions);\n\n\n popup.select('.ok').on('click', function () {\n applyMapping(editor.scale, editor.filter);\n popup.remove();\n });\n popup.select('.cancel').on('click', function () {\n column.setMapping(bak);\n markFiltered($header, !bak.eq(original));\n popup.remove();\n });\n popup.select('.reset').on('click', function () {\n bak = original;\n act = bak.clone();\n bakfilter = {min: -Infinity, max: +Infinity};\n actfilter = bakfilter;\n applyMapping(act, actfilter);\n popup.selectAll('.mappingArea *').remove();\n editor = mappingeditor.create(popup.select('.mappingArea').node(), act, original, actfilter, data_sample, editorOptions);\n });\n}\n\n\n/**\n * opens the mapping editor for a given CategoricalNumberColumn, i.e. to map categories to numbers\n * @param column the column to rename\n * @param $header the visual header element of this column\n */\nfunction openCategoricalMappingEditor(column:model.CategoricalNumberColumn, $header:d3.Selection) {\n var bak = column.getFilter() || [];\n\n var scale = d3.scale.linear().domain([0, 100]).range([0, 120]);\n\n var $popup = makePopup($header, 'Edit Categorical Mapping', '
ScaleCategory
');\n\n const range = column.getScale().range,\n colors = column.categoryColors,\n labels = column.categoryLabels;\n\n const trData = column.categories.map((d, i) => {\n return {cat: d, label: labels[i], isChecked: bak.length === 0 || bak.indexOf(d) >= 0, range: range[i] * 100, color: colors[i]};\n }).sort(sortbyName('label'));\n\n var $rows = $popup.select('tbody').selectAll('tr').data(trData);\n var $rows_enter = $rows.enter().append('tr');\n $rows_enter.append('td').attr('class', 'checkmark').on('click', (d) => {\n d.isChecked = !d.isChecked;\n redraw();\n });\n $rows_enter.append('td')\n .append('input').attr({\n type: 'number',\n value: (d) => d.range,\n min: 0,\n max: 100,\n size: 5\n }).on('input', function (d) {\n d.range = +this.value;\n redraw();\n });\n $rows_enter.append('td').append('div').attr('class', 'bar').style('background-color', (d) => d.color);\n $rows_enter.append('td').attr('class', 'datalabel').text((d) => d.label);\n\n function redraw() {\n $rows.select('.checkmark').html((d) => '');\n $rows.select('.bar').transition().style('width', (d) => scale(d.range) + 'px');\n $rows.select('.datalabel').style('opacity', (d) => d.isChecked ? '1.0' : '.8');\n }\n\n redraw();\n\n var isCheckedAll = true;\n\n function redrawSelectAll() {\n $popup.select('.selectAll').html((d) => '');\n $popup.select('thead').on('click', (d) => {\n isCheckedAll = !isCheckedAll;\n trData.forEach((row) => row.isChecked = isCheckedAll);\n redraw();\n redrawSelectAll();\n });\n }\n\n redrawSelectAll();\n\n function updateData(filter) {\n markFiltered($header, filter && filter.length > 0 && filter.length < trData.length);\n column.setFilter(filter);\n }\n\n $popup.select('.cancel').on('click', function () {\n updateData(bak);\n column.setMapping(range);\n $popup.remove();\n });\n $popup.select('.reset').on('click', function () {\n trData.forEach(d => {\n d.isChecked = true;\n d.range = 50;\n });\n redraw();\n updateData(null);\n column.setMapping(trData.map(() => 1));\n });\n $popup.select('.ok').on('click', function () {\n var f = trData.filter((d) => d.isChecked).map(d => d.cat);\n if (f.length === trData.length) {\n f = [];\n }\n updateData(f);\n column.setMapping(trData.map((d) => d.range / 100));\n $popup.remove();\n });\n}\n\n/**\n * returns all known filter dialogs mappings by type\n * @return\n */\nexport function filterDialogs() {\n return {\n string: openStringFilter,\n categorical: openCategoricalFilter,\n number: openMappingEditor,\n ordinal: openCategoricalMappingEditor,\n boolean: openBooleanFilter\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/ui_dialogs.ts\n **/","/**\n * Created by Samuel Gratzl on 14.08.2015.\n */\n\n///\nimport d3 = require('d3');\nimport utils = require('./utils');\nimport model = require('./model');\n\n\nfunction clamp(v: number, min: number, max: number) {\n return Math.max(Math.min(v, max), min);\n}\n\nexport class MappingEditor {\n private options = {\n width: 370,\n height: 225,\n padding_hor: 7,\n padding_ver: 7,\n filter_height: 20,\n radius: 5,\n callback: (d)=>d,\n callbackThisArg: null,\n triggerCallback: 'change' //change, dragend\n };\n\n private computeFilter: ()=>model.INumberFilter;\n\n constructor(private parent: HTMLElement, private scale_: model.IMappingFunction, private original: model.IMappingFunction, private old_filter: model.INumberFilter, private dataPromise: Promise, options: any = {}) {\n utils.merge(this.options, options);\n //work on a local copy\n this.scale_ = scale_.clone();\n\n this.build(d3.select(parent));\n }\n\n get scale() {\n return this.scale_;\n }\n\n get filter(): model.INumberFilter {\n return this.computeFilter();\n }\n\n private build($root: d3.Selection) {\n const options = this.options,\n that = this;\n $root = $root.append('div').classed('lugui-me', true);\n\n\n const width = options.width - options.padding_hor * 2;\n const height = options.height - options.padding_ver * 2 - options.filter_height;\n\n ($root.node()).innerHTML = `
\n
\n
\n
\n 0\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n > 0\n \n \n \n \n < 1\n \n \n \n \n
\n 1\n \n
\n
\n
\n \n \n
\n
`;\n\n\n const raw2pixel = d3.scale.linear().domain([Math.min(this.scale.domain[0], this.original.domain[0]), Math.max(this.scale.domain[this.scale.domain.length - 1], this.original.domain[this.original.domain.length - 1])])\n .range([0, width]);\n const normal2pixel = d3.scale.linear().domain([0, 1])\n .range([0, width]);\n\n $root.select('input.raw_min')\n .property('value', raw2pixel.domain()[0])\n .on('blur', function () {\n var d = raw2pixel.domain();\n d[0] = parseFloat(this.value);\n raw2pixel.domain(d);\n var old = that.scale_.domain;\n old[0] = d[0];\n that.scale_.domain = old;\n updateRaw();\n triggerUpdate();\n });\n $root.select('input.raw_max')\n .property('value', raw2pixel.domain()[1])\n .on('blur', function () {\n var d = raw2pixel.domain();\n d[1] = parseFloat(this.value);\n raw2pixel.domain(d);\n var old = that.scale_.domain;\n old[old.length - 1] = d[1];\n that.scale_.domain = old;\n updateRaw();\n triggerUpdate();\n });\n\n //lines that show mapping of individual data items\n var datalines = $root.select('g.samples').selectAll('line').data([]);\n this.dataPromise.then((data) => {\n //to unique values\n data = d3.set(data.map(String)).values().map(parseFloat);\n\n datalines = datalines.data(data);\n datalines.enter()\n .append('line')\n .attr({\n x1: (d) => normal2pixel(that.scale.apply(d)),\n y1: 0,\n x2: raw2pixel,\n y2: height\n }).style('visibility', function (d) {\n const domain = that.scale.domain;\n return (d < domain[0] || d > domain[domain.length - 1]) ? 'hidden' : null;\n });\n });\n\n function updateDataLines() {\n datalines.attr({\n x1: (d) => normal2pixel(that.scale.apply(d)),\n x2: raw2pixel\n }).style('visibility', function (d) {\n const domain = that.scale.domain;\n return (d < domain[0] || d > domain[domain.length - 1]) ? 'hidden' : null;\n });\n }\n\n function createDrag(move) {\n return d3.behavior.drag()\n .on('dragstart', function () {\n d3.select(this)\n .classed('dragging', true)\n .attr('r', options.radius * 1.1);\n })\n .on('drag', move)\n .on('dragend', function () {\n d3.select(this)\n .classed('dragging', false)\n .attr('r', options.radius);\n triggerUpdate(true);\n });\n }\n\n var mapping_lines = [];\n\n function renderMappingLines() {\n if (!(that.scale instanceof model.ScaleMappingFunction)) {\n return;\n }\n\n {\n let sscale = that.scale;\n let domain = sscale.domain;\n let range = sscale.range;\n\n mapping_lines = domain.map((d, i) => ({r: d, n: range[i]}));\n }\n\n function updateScale() {\n //sort by raw value\n mapping_lines.sort((a, b) => a.r - b.r);\n //update the scale\n let scale = that.scale;\n scale.domain = mapping_lines.map((d) => d.r);\n scale.range = mapping_lines.map((d) => d.n);\n\n //console.log(sscale.domain, sscale.range);\n updateDataLines();\n }\n\n function removePoint(i) {\n if (mapping_lines.length <= 2) {\n return; //can't remove have to have at least two\n }\n mapping_lines.splice(i, 1);\n updateScale();\n renderMappingLines();\n }\n\n function addPoint(x) {\n x = clamp(x, 0, width);\n mapping_lines.push({\n n: normal2pixel.invert(x),\n r: raw2pixel.invert(x)\n });\n updateScale();\n renderMappingLines();\n }\n\n $root.selectAll('rect.adder').on('click', () => {\n addPoint(d3.mouse($root.select('svg > g').node())[0]);\n });\n\n const $mapping = $root.select('g.mappings').selectAll('g.mapping').data(mapping_lines);\n const $mapping_enter = $mapping.enter().append('g').classed('mapping', true).on('contextmenu', (d, i) => {\n d3.event.preventDefault();\n d3.event.stopPropagation();\n removePoint(i);\n });\n $mapping_enter.append('line').attr({\n y1: 0,\n y2: height\n }).call(createDrag(function (d) {\n //drag the line shifts both point in parallel\n const dx = (d3.event).dx;\n const nx = clamp(normal2pixel(d.n) + dx, 0, width);\n const rx = clamp(raw2pixel(d.r) + dx, 0, width);\n d.n = normal2pixel.invert(nx);\n d.r = raw2pixel.invert(rx);\n d3.select(this).attr('x1', nx).attr('x2', rx);\n d3.select(this.parentElement).select('circle.normalized').attr('cx', nx);\n d3.select(this.parentElement).select('circle.raw').attr('cx', rx);\n\n updateScale();\n }));\n $mapping_enter.append('circle').classed('normalized', true).attr('r', options.radius).call(createDrag(function (d) {\n //drag normalized\n const x = clamp(d3.event.x, 0, width);\n d.n = normal2pixel.invert(x);\n d3.select(this).attr('cx', x);\n d3.select(this.parentElement).select('line').attr('x1', x);\n\n updateScale();\n }));\n $mapping_enter.append('circle').classed('raw', true).attr('r', options.radius).attr('cy', height).call(createDrag(function (d) {\n //drag raw\n const x = clamp(d3.event.x, 0, width);\n d.r = raw2pixel.invert(x);\n d3.select(this).attr('cx', x);\n d3.select(this.parentElement).select('line').attr('x2', x);\n\n updateScale();\n }));\n\n $mapping.select('line').attr({\n x1: (d) => normal2pixel(d.n),\n x2: (d) => raw2pixel(d.r)\n });\n $mapping.select('circle.normalized').attr('cx', (d) => normal2pixel(d.n));\n $mapping.select('circle.raw').attr('cx', (d) => raw2pixel(d.r));\n $mapping.exit().remove();\n }\n\n function renderScript() {\n if (!(that.scale instanceof model.ScriptMappingFunction)) {\n $root.select('div.script').style('display', 'none');\n return;\n }\n $root.select('div.script').style('display', null);\n\n let sscale = that.scale;\n const $text = $root.select('textarea').text(sscale.code);\n\n $root.select('div.script').select('button').on('click', () => {\n sscale.code = $text.property('value');\n updateDataLines();\n triggerUpdate();\n });\n }\n\n renderMappingLines();\n renderScript();\n\n function triggerUpdate(isDragEnd = false) {\n if (isDragEnd && (options.triggerCallback !== 'dragend')) {\n return;\n }\n options.callback.call(options.callbackThisArg, that.scale.clone(), that.filter);\n }\n\n {\n let min_filter = (isFinite(this.old_filter.min) ? raw2pixel(this.old_filter.min) : 0);\n let max_filter = (isFinite(this.old_filter.max) ? raw2pixel(this.old_filter.max) : width);\n let toFilterString = (d: number, i: number) => isFinite(d) ? ((i===0?'>':'<')+d.toFixed(1)) : 'any';\n $root.selectAll('g.left_filter, g.right_filter')\n .data([this.old_filter.min, this.old_filter.max])\n .attr('transform', (d,i) => `translate(${i===0?min_filter:max_filter},0)`).call(createDrag(function (d,i) {\n\n //drag normalized\n const x = clamp(d3.event.x, 0, width);\n const v = raw2pixel.invert(x);\n const filter = (x <= 0 && i === 0 ? -Infinity : (x>=width && i===1 ? Infinity : v));\n d3.select(this).datum(filter)\n .attr('transform',`translate(${x},0)`)\n .select('text').text(toFilterString(filter,i));\n }))\n .select('text').text(toFilterString);\n }\n\n this.computeFilter = function () {\n return {\n min: parseFloat($root.select('g.left_filter').datum()),\n max: parseFloat($root.select('g.right_filter').datum())\n };\n };\n\n function updateRaw() {\n const d = raw2pixel.domain();\n $root.select('input.raw_min').property('value', d[0]);\n $root.select('input.raw_max').property('value', d[1]);\n\n updateDataLines();\n renderMappingLines();\n }\n\n updateRaw();\n\n $root.select('select').on('change', function () {\n const v = this.value;\n if (v === 'linear_invert') {\n that.scale_ = new model.ScaleMappingFunction(raw2pixel.domain(), 'linear', [1, 0]);\n } else if (v === 'linear_abs') {\n let d = raw2pixel.domain();\n that.scale_ = new model.ScaleMappingFunction([d[0], (d[1] - d[0]) / 2, d[1]], 'linear', [1, 0, 1]);\n } else if (v === 'script') {\n that.scale_ = new model.ScriptMappingFunction(raw2pixel.domain());\n } else {\n that.scale_ = new model.ScaleMappingFunction(raw2pixel.domain(), v);\n }\n updateDataLines();\n renderMappingLines();\n renderScript();\n triggerUpdate();\n }).property('selectedIndex', function () {\n var name = 'script';\n if (that.scale_ instanceof model.ScaleMappingFunction) {\n name = (that.scale).scaleType;\n }\n const types = ['linear', 'linear_invert', 'linear_abs', 'log', 'pow1.1', 'pow2', 'pow3', 'sqrt', 'script'];\n return types.indexOf(name);\n });\n }\n}\n\nexport function create(parent: HTMLElement, scale: model.IMappingFunction, original: model.IMappingFunction, filter: model.INumberFilter, dataPromise: Promise, options: any = {}) {\n return new MappingEditor(parent, scale, original, filter, dataPromise, options);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/mappingeditor.ts\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 1ead69239df983fdcf46","webpack:///./src/bundle.js","webpack:///./src/style.scss","webpack:///./src/main.ts","webpack:///./src/model.ts","webpack:///external \"d3\"","webpack:///./src/utils.ts","webpack:///./src/provider.ts","webpack:///./src/renderer.ts","webpack:///./src/ui.ts","webpack:///./src/ui_dialogs.ts","webpack:///./src/mappingeditor.ts"],"names":[],"mappings":"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","file":"LineUpJS.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"d3\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"d3\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"LineUpJS\"] = factory(require(\"d3\"));\n\telse\n\t\troot[\"LineUpJS\"] = factory(root[\"d3\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_5__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 1ead69239df983fdcf46\n **/","/**\r\n * Created by Samuel Gratzl on 26.09.2016.\r\n */\r\nrequire('./style.scss');\r\nmodule.exports = require('./main.ts');\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/bundle.js\n ** module id = 0\n ** module chunks = 0\n **/","// removed by extract-text-webpack-plugin\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/style.scss\n ** module id = 1\n ** module chunks = 0\n **/","/**\r\n * main module of LineUp.js containing the main class and exposes all other modules\r\n * Created by Samuel Gratzl on 14.08.2015.\r\n */\r\n\r\n///\r\nimport model_ = require('./model');\r\nimport provider_ = require('./provider');\r\nimport renderer_ = require('./renderer');\r\nimport ui_ = require('./ui');\r\nimport utils_ = require('./utils');\r\nimport ui_dialogs_ = require('./ui_dialogs');\r\nimport d3 = require('d3');\r\n\r\n/**\r\n * access to the model module\r\n * @type {--global-type--}\r\n */\r\nexport var model = model_;\r\n/**\r\n * access to the provider module\r\n * @type {--global-type--}\r\n */\r\nexport var provider = provider_;\r\n/**\r\n * access to the renderer module\r\n * @type {--global-type--}\r\n */\r\nexport var renderer = renderer_;\r\n/**\r\n * access to the ui module\r\n * @type {--global-type--}\r\n */\r\nexport var ui = ui_;\r\n/**\r\n * access to the utils module\r\n * @type {--global-type--}\r\n */\r\nexport var utils = utils_;\r\n/**\r\n * access to the ui_dialogs module\r\n * @type {--global-type--}\r\n */\r\nexport var ui_dialogs = ui_dialogs_;\r\n\r\n\r\n/**\r\n * main LineUp class managing data and rendering\r\n */\r\nexport class LineUp extends utils_.AEventDispatcher {\r\n /**\r\n * triggered when the mouse is over a specific row\r\n * @argument data_index:number the selected data index or <0 if no row\r\n */\r\n static EVENT_HOVER_CHANGED = 'hoverChanged';\r\n\r\n /**\r\n * triggered when the user click on a row\r\n * @argument data_index:number the selected data index or <0 if no row\r\n */\r\n static EVENT_SELECTION_CHANGED = 'selectionChanged';\r\n\r\n /**\r\n * triggered when the user selects one or more rows\r\n * @argument data_indices:number[] the selected data indices\r\n */\r\n static EVENT_MULTISELECTION_CHANGED = 'multiSelectionChanged';\r\n\r\n /**\r\n * triggered when LineUpJS.update() was called\r\n */\r\n static EVENT_UPDATE_START = 'updateStart';\r\n\r\n /**\r\n * triggered when LineUpJS.update() was called and the rendering the body has finished\r\n */\r\n static EVENT_UPDATE_FINISHED = 'updateFinished';\r\n\r\n /**\r\n * default config of LineUp with all available options\r\n */\r\n config = {\r\n /**\r\n * a prefix used for all generated html ids\r\n */\r\n idPrefix: Math.random().toString(36).slice(-8).substr(0, 3), //generate a random string with length3\r\n\r\n /**\r\n * options related to the header html layout\r\n */\r\n header: {\r\n /**\r\n * standard height of the header\r\n */\r\n headerHeight: 20,\r\n /**\r\n * height of the header including histogram\r\n */\r\n headerHistogramHeight: 40,\r\n /**\r\n * should labels be automatically rotated if they doesn't fit?\r\n */\r\n autoRotateLabels: false,\r\n /**\r\n * space reserved if a label is rotated\r\n */\r\n rotationHeight: 50, //in px\r\n /**\r\n * the degrees to rotate a label\r\n */\r\n rotationDegree: -20, //in deg\r\n /**\r\n * hook for adding buttons to rankings in the header\r\n */\r\n rankingButtons: ui_.dummyRankingButtonHook,\r\n\r\n /**\r\n * templates for link patterns\r\n */\r\n linkTemplates: []\r\n },\r\n /**\r\n * old name for header\r\n */\r\n htmlLayout: {},\r\n /**\r\n * visual representation options\r\n */\r\n renderingOptions: {\r\n /**\r\n * show combined bars as stacked bars\r\n */\r\n stacked: true,\r\n /**\r\n * use animation for reordering\r\n */\r\n animation: true,\r\n /**\r\n * show histograms of the headers (just settable at the beginning)\r\n */\r\n histograms: false,\r\n /**\r\n * show a mean line for single numberial columns\r\n */\r\n meanLine: false,\r\n },\r\n /**\r\n * options related to the rendering of the body\r\n */\r\n body: {\r\n renderer: 'svg', //svg, canvas\r\n rowHeight: 17,\r\n rowPadding: 0.2, //padding for scale.rangeBands\r\n rowBarPadding: 1,\r\n\r\n /**\r\n * whether just the visible rows or all rows should be rendered - rendering performance (default: true)\r\n */\r\n visibleRowsOnly: true,\r\n\r\n /**\r\n * number of backup rows to keep to avoid updating on every small scroll thing\r\n */\r\n backupScrollRows: 4,\r\n animationDuration: 1000,\r\n\r\n //number of cols that should be frozen on the left side\r\n freezeCols: 0,\r\n\r\n rowActions: []\r\n },\r\n /**\r\n * old name for body\r\n */\r\n svgLayout: {},\r\n /**\r\n * enables manipulation features, remove column, reorder,...\r\n */\r\n manipulative: true,\r\n /**\r\n * automatically add a column pool at the end\r\n */\r\n pool: false,\r\n\r\n /**\r\n * the renderers to use for rendering the columns\r\n */\r\n renderers: renderer_.renderers()\r\n };\r\n\r\n private $container:d3.Selection;\r\n\r\n private body:ui_.IBodyRenderer = null;\r\n private header:ui_.HeaderRenderer = null;\r\n private pools:ui_.PoolRenderer[] = [];\r\n private contentScroller:utils_.ContentScroller = null;\r\n\r\n constructor(container:d3.Selection | Element, public data:provider_.DataProvider, config:any = {}) {\r\n super();\r\n this.$container = container instanceof d3.selection ? >container : d3.select(container);\r\n this.$container = this.$container.append('div').classed('lu', true);\r\n this.config.svgLayout = this.config.body;\r\n this.config.htmlLayout = this.config.header;\r\n\r\n utils.merge(this.config, config);\r\n\r\n\r\n this.data.on('selectionChanged.main', this.triggerSelection.bind(this));\r\n\r\n this.header = new ui_.HeaderRenderer(data, this.node, {\r\n manipulative: this.config.manipulative,\r\n headerHeight: this.config.header.headerHeight,\r\n headerHistogramHeight: this.config.header.headerHistogramHeight,\r\n histograms : this.config.renderingOptions.histograms,\r\n\r\n autoRotateLabels: this.config.header.autoRotateLabels,\r\n rotationHeight: this.config.header.rotationHeight, //in px\r\n rotationDegree: this.config.header.rotationDegree, //in deg\r\n\r\n freezeCols: this.config.body.freezeCols,\r\n\r\n rankingButtons: this.config.header.rankingButtons,\r\n linkTemplates: this.config.header.linkTemplates\r\n });\r\n this.body = new (this.config.body.renderer === 'svg' ? ui_.BodyRenderer: ui_.BodyCanvasRenderer)(data, this.node, this.slice.bind(this), {\r\n rowHeight: this.config.body.rowHeight,\r\n rowPadding: this.config.body.rowPadding,\r\n rowBarPadding: this.config.body.rowBarPadding,\r\n animationDuration: this.config.body.animationDuration,\r\n meanLine: this.config.renderingOptions.meanLine,\r\n animation: this.config.renderingOptions.animation,\r\n stacked: this.config.renderingOptions.stacked,\r\n actions: this.config.body.rowActions,\r\n idPrefix: this.config.idPrefix,\r\n\r\n freezeCols: this.config.body.freezeCols,\r\n renderers: this.config.renderers\r\n });\r\n //share hist caches\r\n this.body.histCache = this.header.sharedHistCache;\r\n\r\n this.forward(this.body, LineUp.EVENT_HOVER_CHANGED);\r\n if (this.config.pool && this.config.manipulative) {\r\n this.addPool(new ui_.PoolRenderer(data, this.node, this.config));\r\n }\r\n\r\n if (this.config.body.visibleRowsOnly) {\r\n this.contentScroller = new utils_.ContentScroller(this.$container.node(), this.body.node, {\r\n backupRows: this.config.body.backupScrollRows,\r\n rowHeight: this.config.body.rowHeight,\r\n topShift: () => this.header.currentHeight()\r\n });\r\n this.contentScroller.on('scroll', (top, left) => {\r\n //in two svg mode propagate horizontal shift\r\n //console.log(top, left,'ss');\r\n this.header.$node.style('transform', 'translate(' + 0 + 'px,' + top + 'px)');\r\n if (this.config.body.freezeCols > 0) {\r\n this.header.updateFreeze(left);\r\n this.body.updateFreeze(left);\r\n }\r\n });\r\n this.contentScroller.on('redraw', this.body.update.bind(this.body));\r\n }\r\n }\r\n\r\n createEventList() {\r\n return super.createEventList().concat([LineUp.EVENT_HOVER_CHANGED, LineUp.EVENT_SELECTION_CHANGED, LineUp.EVENT_MULTISELECTION_CHANGED, LineUp.EVENT_UPDATE_START, LineUp.EVENT_UPDATE_FINISHED]);\r\n }\r\n\r\n /**\r\n * add and column pool at the given element position, with custom configuration\r\n * @param node the node element to attach\r\n * @param config\r\n */\r\n addPool(node:Element, config?:any):ui_.PoolRenderer;\r\n addPool(pool:ui_.PoolRenderer):ui_.PoolRenderer;\r\n addPool(pool_node:Element|ui_.PoolRenderer, config = this.config) {\r\n if (pool_node instanceof ui_.PoolRenderer) {\r\n this.pools.push(pool_node);\r\n } else {\r\n this.pools.push(new ui_.PoolRenderer(this.data, pool_node, config));\r\n }\r\n return this.pools[this.pools.length - 1];\r\n }\r\n\r\n /**\r\n * returns the main lineup DOM element\r\n * @returns {Element}\r\n */\r\n get node() {\r\n return this.$container.node();\r\n }\r\n\r\n private slice(start:number, length:number, row2y:(i:number) => number) {\r\n if (this.contentScroller) {\r\n return this.contentScroller.select(start, length, row2y);\r\n }\r\n return {from: start, to: length};\r\n }\r\n\r\n /**\r\n * destroys the DOM elements created by this lineup instance, this should be the last call to this lineup instance\r\n */\r\n destroy() {\r\n this.pools.forEach((p) => p.remove());\r\n this.$container.remove();\r\n if (this.contentScroller) {\r\n this.contentScroller.destroy();\r\n }\r\n }\r\n\r\n /**\r\n * sorts LineUp by he given column\r\n * @param column callback function finding the column to sort\r\n * @param ascending\r\n * @returns {boolean}\r\n */\r\n sortBy(column:(col:model_.Column) => boolean | string, ascending = false) {\r\n var col = this.data.find(column);\r\n if (col) {\r\n col.sortByMe(ascending);\r\n }\r\n return col !== null;\r\n }\r\n\r\n dump() {\r\n return this.data.dump();\r\n }\r\n\r\n changeDataStorage(data:provider_.DataProvider, dump?:any) {\r\n if (this.data) {\r\n this.data.on('selectionChanged.main', null);\r\n }\r\n this.data = data;\r\n if (dump) {\r\n this.data.restore(dump);\r\n }\r\n this.data.on('selectionChanged.main', this.triggerSelection.bind(this));\r\n this.header.changeDataStorage(data);\r\n this.body.changeDataStorage(data);\r\n this.pools.forEach((p) => p.changeDataStorage(data));\r\n this.update();\r\n }\r\n\r\n private triggerSelection(data_indices:number[]) {\r\n this.fire(LineUp.EVENT_SELECTION_CHANGED, data_indices.length > 0 ? data_indices[0] : -1);\r\n this.fire(LineUp.EVENT_MULTISELECTION_CHANGED, data_indices);\r\n }\r\n\r\n restore(dump:any) {\r\n this.changeDataStorage(this.data, dump);\r\n }\r\n\r\n /**\r\n * local variable that is used by update()\r\n * @type {boolean}\r\n */\r\n private isUpdateInitialized = false;\r\n\r\n update() {\r\n // HACK: when calling update for the first time the BodyRenderer\r\n // fires 3x the `renderFinished` event. However, we want to wait for\r\n // the last event before firing LineUp.EVENT_UPDATE_FINISHED.\r\n // For any further call of update() the body render will fire the\r\n // `renderFinished` event only once\r\n var waitForBodyRenderer = (this.isUpdateInitialized) ? 1 : 3;\r\n this.isUpdateInitialized = true;\r\n\r\n this.fire(LineUp.EVENT_UPDATE_START);\r\n this.header.update();\r\n this.body.update();\r\n this.pools.forEach((p) => p.update());\r\n\r\n this.body.on('renderFinished', () => {\r\n waitForBodyRenderer -= 1;\r\n if(waitForBodyRenderer === 0) {\r\n this.fire(LineUp.EVENT_UPDATE_FINISHED);\r\n }\r\n });\r\n }\r\n\r\n changeRenderingOption(option:string, value:boolean) {\r\n this.config.renderingOptions[option] = value;\r\n if (option === 'animation' || option === 'stacked') {\r\n this.body.setOption(option, value);\r\n this.body.update();\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * assigns colors to colmns if they are numbers and not yet defined\r\n * @param columns\r\n * @returns {model_.IColumnDesc[]}\r\n */\r\nexport function deriveColors(columns:model_.IColumnDesc[]) {\r\n var colors = d3.scale.category10().range().slice();\r\n columns.forEach((col:any) => {\r\n switch (col.type) {\r\n case 'number':\r\n col.color = colors.shift();\r\n break;\r\n }\r\n });\r\n return columns;\r\n}\r\n\r\n/**\r\n * creates a local storage provider\r\n * @param data\r\n * @param columns\r\n * @param options\r\n * @returns {LocalDataProvider}\r\n */\r\nexport function createLocalStorage(data:any[], columns:model_.IColumnDesc[], options = {}) {\r\n return new provider_.LocalDataProvider(data, columns, options);\r\n}\r\n\r\nexport function create(data:provider_.DataProvider, container:d3.Selection | Element, config:any = {}) {\r\n return new LineUp(container, data, config);\r\n}\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main.ts\n **/","/**\n * Created by Samuel Gratzl on 06.08.2015.\n */\n///\n\nimport d3 = require('d3');\nimport utils = require('./utils');\n/**\n * converts a given id to css compatible one\n * @param id\n * @return {string|void}\n */\nfunction fixCSS(id) {\n return id.replace(/[\\s!#$%&'\\(\\)\\*\\+,\\.\\/:;<=>\\?@\\[\\\\\\]\\^`\\{\\|}~]/g, '_'); //replace non css stuff to _\n}\n\n/**\n * save number comparison\n * @param a\n * @param b\n * @return {number}\n */\nfunction numberCompare(a:number, b:number) {\n if (a === b || (isNaN(a) && isNaN(b))) {\n return 0;\n }\n return a - b;\n}\n\ninterface IFlatColumn {\n col: Column;\n offset: number;\n width: number;\n}\n\nexport interface IColumnParent {\n remove(col:Column): boolean;\n insert(col: Column, index?:number): Column;\n insertAfter(col:Column, reference:Column): Column;\n findMyRanker() : Ranking;\n fqid: string;\n\n indexOf(col: Column): number;\n at(index: number): Column;\n fqpath: string;\n}\n\nexport interface IColumnDesc {\n label:string;\n /**\n * the column type\n */\n type:string;\n\n /**\n * column description\n */\n description?: string;\n\n /**\n * color of this column\n */\n color?: string;\n /**\n * css class to append to elements of this column\n */\n cssClass?: string;\n}\n\nexport interface IStatistics {\n min: number;\n max: number;\n mean: number;\n count: number;\n maxBin: number;\n hist: { x : number; dx : number; y : number;}[];\n}\n\nexport interface ICategoricalStatistics {\n maxBin: number;\n hist: { cat: string; y : number }[];\n}\n\nexport interface IColumnMetaData {\n label: string;\n description: string;\n color: string;\n}\n\n/**\n * a column in LineUp\n */\nexport class Column extends utils.AEventDispatcher {\n /**\n * default color that should be used\n * @type {string}\n */\n static DEFAULT_COLOR = '#C1C1C1';\n /**\n * magic variable for showing all columns\n * @type {number}\n */\n static FLAT_ALL_COLUMNS = -1;\n /**\n * width of a compressed column\n * @type {number}\n */\n static COMPRESSED_WIDTH = 16;\n\n id:string;\n\n /**\n * width of the column\n * @type {number}\n * @private\n */\n private width:number = 100;\n\n parent:IColumnParent = null;\n\n label:string;\n description: string;\n color:string;\n /**\n * alternative to specifying a color is defining a css class that should be used\n */\n cssClass:string;\n\n /**\n * whether this column is compressed i.e. just shown in a minimal version\n * @type {boolean}\n * @private\n */\n private compressed = false;\n\n constructor(id:string, public desc:IColumnDesc) {\n super();\n this.id = fixCSS(id);\n this.label = this.desc.label || this.id;\n this.description = this.desc.description || '';\n this.cssClass = (this.desc).cssClass || '';\n this.color = (this.desc).color || (this.cssClass !== '' ? null : Column.DEFAULT_COLOR);\n }\n\n get headerCssClass() {\n return this.desc.type;\n }\n\n assignNewId(idGenerator:() => string) {\n this.id = fixCSS(idGenerator());\n }\n\n init(callback:(desc:IColumnDesc) => Promise):Promise {\n return Promise.resolve(true);\n }\n\n /**\n * returns the fully qualified id i.e. path the parent\n * @returns {string}\n */\n get fqid() {\n return this.parent ? this.parent.fqid + '_' + this.id : this.id;\n }\n\n get fqpath() {\n return this.parent ? this.parent.fqpath + '@' + this.parent.indexOf(this) : '';\n }\n\n /**\n * fires:\n * * widthChanged\n * * filterChanged\n * * labelChanged\n * * metaDataChanged\n * * compressChanged\n * * addColumn, removeColumn ... for composite pattern\n * * dirty, dirtyHeader, dirtyValues\n * @returns {string[]}\n */\n createEventList() {\n return super.createEventList().concat(['widthChanged', 'filterChanged', 'labelChanged', 'metaDataChanged', 'compressChanged', 'addColumn', 'removeColumn', 'dirty', 'dirtyHeader', 'dirtyValues']);\n }\n\n getWidth() {\n return this.width;\n }\n\n isHidden() {\n return this.width <= 0;\n }\n\n setCompressed(value:boolean) {\n if (this.compressed === value) {\n return;\n }\n this.fire(['compressChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], this.compressed, this.compressed = value);\n }\n\n getCompressed() {\n return this.compressed;\n }\n\n /**\n * visitor pattern for flattening the columns\n * @param r the result array\n * @param offset left offeset\n * @param levelsToGo how many levels down\n * @param padding padding between columns\n * @returns {number} the used width by this column\n */\n flatten(r:IFlatColumn[], offset:number, levelsToGo = 0, padding = 0):number {\n const w = this.compressed ? Column.COMPRESSED_WIDTH : this.getWidth();\n r.push({col: this, offset: offset, width: w});\n return w;\n }\n\n setWidth(value:number) {\n if (this.width === value) {\n return;\n }\n this.fire(['widthChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], this.width, this.width = value);\n }\n\n setWidthImpl(value:number) {\n this.width = value;\n }\n\n setMetaData(value: IColumnMetaData) {\n if (value.label === this.label && this.color === value.color && this.description === value.description) {\n return;\n }\n var events = this.color === value.color ? ['labelChanged', 'metaDataChanged','dirtyHeader', 'dirty'] : ['labelChanged', 'metaDataChanged','dirtyHeader', 'dirtyValues', 'dirty'];\n this.fire(events, this.getMetaData(), {\n label: this.label = value.label,\n color: this.color = value.color,\n description: this.description = value.description\n });\n }\n\n getMetaData() : IColumnMetaData {\n return {\n label: this.label,\n color: this.color,\n description: this.description\n };\n }\n\n /**\n * triggers that the ranking is sorted by this column\n * @param ascending\n * @returns {any}\n */\n sortByMe(ascending = false) {\n var r = this.findMyRanker();\n if (r) {\n return r.sortBy(this, ascending);\n }\n return false;\n }\n\n /**\n * toggles the sorting order of this column in the ranking\n * @returns {any}\n */\n toggleMySorting() {\n var r = this.findMyRanker();\n if (r) {\n return r.toggleSorting(this);\n }\n return false;\n }\n\n /**\n * removes the column from the ranking\n * @returns {boolean}\n */\n removeMe() {\n if (this.parent) {\n return this.parent.remove(this);\n }\n return false;\n }\n\n /**\n * inserts the given column after itself\n * @param col\n * @returns {boolean}\n */\n insertAfterMe(col:Column) {\n if (this.parent) {\n return this.parent.insertAfter(col, this) != null;\n }\n return false;\n }\n\n /**\n * finds the underlying ranking column\n * @returns {Ranking}\n */\n findMyRanker():Ranking {\n if (this.parent) {\n return this.parent.findMyRanker();\n }\n return null;\n }\n\n /**\n * dumps this column to JSON compatible format\n * @param toDescRef\n * @returns {any}\n */\n dump(toDescRef:(desc:any) => any):any {\n var r:any = {\n id: this.id,\n desc: toDescRef(this.desc),\n width: this.width,\n compressed: this.compressed\n };\n if (this.label !== (this.desc.label || this.id)) {\n r.label = this.label;\n }\n if (this.color !== ((this.desc).color || Column.DEFAULT_COLOR) && this.color) {\n r.color = this.color;\n }\n return r;\n }\n\n /**\n * restore the column content from a dump\n * @param dump\n * @param factory\n */\n restore(dump:any, factory:(dump:any) => Column) {\n this.width = dump.width || this.width;\n this.label = dump.label || this.label;\n this.color = dump.color || this.color;\n this.compressed = dump.compressed === true;\n }\n\n /**\n * return the label of a given row for the current column\n * @param row\n * @return {string}\n */\n getLabel(row:any):string {\n return '' + this.getValue(row);\n }\n\n /**\n * return the value of a given row for the current column\n * @param row\n * @return\n */\n getValue(row:any):any {\n return ''; //no value\n }\n\n /**\n * compare function used to determine the order according to the values of the current column\n * @param a\n * @param b\n * @return {number}\n */\n compare(a:any, b:any) {\n return 0; //can't compare\n }\n\n /**\n * flag whether any filter is applied\n * @return {boolean}\n */\n isFiltered() {\n return false;\n }\n\n /**\n * predicate whether the current row should be included\n * @param row\n * @return {boolean}\n */\n filter(row:any) {\n return row !== null;\n }\n}\n/**\n * a column having an accessor to get the cell value\n */\nexport class ValueColumn extends Column {\n protected accessor:(row:any, id:string, desc:any, ranking: Ranking) => T;\n\n constructor(id:string, desc:any) {\n super(id, desc);\n //find accessor\n this.accessor = desc.accessor || (() => null);\n }\n\n getLabel(row:any) {\n return '' + this.getValue(row);\n }\n\n getValue(row:any) {\n return this.accessor(row, this.id, this.desc, this.findMyRanker());\n }\n\n compare(a:any, b:any) {\n return 0; //can't compare\n }\n}\n\n/**\n * a default column with no values\n */\nexport class DummyColumn extends Column {\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n getLabel(row:any) {\n return '';\n }\n\n getValue(row:any) {\n return '';\n }\n\n compare(a:any, b:any) {\n return 0; //can't compare\n }\n}\n\nexport interface INumberColumn {\n getNumber(row:any): number;\n}\n\nexport interface ICategoricalColumn {\n categories: string[];\n categoryLabels: string[];\n\n getCategories(row: any): string[];\n}\n\n/**\n * checks whether the given column or description is a number column, i.e. the value is a number\n * @param col\n * @returns {boolean}\n */\nexport function isNumberColumn(col:Column|IColumnDesc) {\n return (col instanceof Column && typeof (col).getNumber === 'function' || (!(col instanceof Column) && (col).type.match(/(number|stack|ordinal)/) != null));\n}\n\n/**\n * checks whether the given column or description is a categorical column, i.e. the value is a list of categories\n * @param col\n * @returns {boolean}\n */\nexport function isCategoricalColumn(col:Column|IColumnDesc) {\n return (col instanceof Column && typeof (col).getCategories === 'function' || (!(col instanceof Column) && (col).type.match(/(categorical|ordinal)/) != null));\n}\n\n/**\n * interface of a d3 scale\n */\nexport interface IScale {\n (v:number): number;\n\n domain():number[];\n domain(domain:number[]);\n\n range():number[];\n range(range:number[]);\n}\n\nexport interface IMappingFunction {\n //new(domain: number[]);\n\n apply(v: number): number;\n\n dump(): any;\n restore(dump: any);\n\n domain: number[];\n\n clone(): IMappingFunction;\n\n eq(other: IMappingFunction): boolean;\n\n}\n\nexport interface INumberFilter {\n min: number;\n max: number;\n}\n\nfunction toScale(type = 'linear'):IScale {\n switch (type) {\n case 'log':\n return d3.scale.log().clamp(true);\n case 'sqrt':\n return d3.scale.sqrt().clamp(true);\n case 'pow1.1':\n return d3.scale.pow().exponent(1.1).clamp(true);\n case 'pow2':\n return d3.scale.pow().exponent(2).clamp(true);\n case 'pow3':\n return d3.scale.pow().exponent(3).clamp(true);\n default:\n return d3.scale.linear().clamp(true);\n }\n}\n\nfunction isSame(a: number[], b: number[]) {\n if (a.length !== b.length) {\n return false;\n }\n return a.every((ai, i) => ai === b[i]);\n}\n\n\nfunction fixDomain(domain: number[], type: string) {\n if (type === 'log' && domain[0] === 0) {\n domain[0] = 0.0000001; //0 is bad\n }\n return domain;\n}\n/**\n * a mapping function based on a d3 scale (linear, sqrt, log)\n */\nexport class ScaleMappingFunction implements IMappingFunction {\n private s:IScale;\n\n constructor(domain:number[] = [0,1], private type = 'linear', range : number[] = [0,1]) {\n this.s = toScale(type).domain(fixDomain(domain,this.type)).range(range);\n }\n\n get domain() {\n return this.s.domain();\n }\n\n set domain(domain: number[]) {\n this.s.domain(fixDomain(domain,this.type));\n }\n\n get range() {\n return this.s.range();\n }\n\n set range(range: number[]) {\n this.s.range(range);\n }\n\n apply(v:number):number {\n return this.s(v);\n }\n\n get scaleType() {\n return this.type;\n }\n\n dump():any {\n return {\n type: this.type,\n domain: this.domain,\n range: this.range\n };\n }\n\n eq(other: IMappingFunction) {\n if (!(other instanceof ScaleMappingFunction)) {\n return false;\n }\n const that = other;\n return that.type === this.type && isSame(this.domain, that.domain) && isSame(this.range, that.range);\n }\n\n restore(dump:any) {\n this.type = dump.type;\n this.s = toScale(dump.type).domain(dump.domain).range(dump.range);\n }\n\n clone() {\n return new ScaleMappingFunction(this.domain, this.type, this.range);\n }\n}\n\n/**\n * a mapping function based on a custom user function using 'value' as the current value\n */\nexport class ScriptMappingFunction implements IMappingFunction {\n private f:Function;\n\n constructor(private domain_:number[] = [0,1], private code_:string = 'return this.linear(value,this.value_min,this.value_max);') {\n this.f = new Function('value', code_);\n }\n\n get domain() {\n return this.domain_;\n }\n\n set domain(domain: number[]) {\n this.domain_ = domain;\n }\n\n get code() {\n return this.code_;\n }\n\n set code(code: string) {\n if (this.code_ === code) {\n return;\n }\n this.code_ = code;\n this.f = new Function('value', code);\n }\n\n apply(v:number):number {\n const min = this.domain_[0],\n max = this.domain_[this.domain_.length-1];\n const r = this.f.call({\n value_min: min,\n value_max: max,\n value_range: max - min,\n value_domain: this.domain_.slice(),\n linear : (v, mi, ma) => (v-mi)/(ma-mi)\n }, v);\n\n if (typeof r === 'number') {\n return Math.max(Math.min(r, 1), 0);\n }\n return NaN;\n }\n\n dump():any {\n return {\n type: 'script',\n code: this.code\n };\n }\n\n eq(other: IMappingFunction) {\n if (!(other instanceof ScriptMappingFunction)) {\n return false;\n }\n const that = other;\n return that.code === this.code;\n }\n\n restore(dump:any) {\n this.code = dump.code;\n }\n\n clone() {\n return new ScriptMappingFunction(this.domain, this.code);\n }\n}\n\nexport function createMappingFunction(dump: any): IMappingFunction {\n if (dump.type === 'script') {\n let s = new ScriptMappingFunction();\n s.restore(dump);\n return s;\n } else {\n let l = new ScaleMappingFunction();\n l.restore(dump);\n return l;\n }\n}\n\n/**\n * a number column mapped from an original input scale to an output range\n */\nexport class NumberColumn extends ValueColumn implements INumberColumn {\n missingValue = 0;\n\n private mapping : IMappingFunction;\n\n private original : IMappingFunction;\n\n /**\n * currently active filter\n * @type {{min: number, max: number}}\n * @private\n */\n private currentFilter : INumberFilter = {min: -Infinity, max: Infinity};\n\n private numberFormat : (n: number) => string = d3.format('.3n');\n\n constructor(id:string, desc:any) {\n super(id, desc);\n\n if (desc.map) {\n this.mapping = createMappingFunction(desc.map);\n } else if (desc.domain) {\n this.mapping = new ScaleMappingFunction(desc.domain, 'linear', desc.range || [0,1]);\n }\n this.original = this.mapping.clone();\n\n if (desc.numberFormat) {\n this.numberFormat = d3.format(desc.numberFormat);\n }\n }\n\n init(callback:(desc:IColumnDesc) => Promise):Promise {\n\n var d = this.mapping.domain;\n //if any of the values is not given use the statistics to compute them\n if (isNaN(d[0]) || isNaN(d[1])) {\n return callback(this.desc).then((stats) => {\n this.mapping.domain = [stats.min, stats.max];\n this.original.domain = [stats.min, stats.max];\n return true;\n });\n }\n return Promise.resolve(true);\n }\n\n dump(toDescRef:(desc:any) => any) {\n var r = super.dump(toDescRef);\n r.map = this.mapping.dump();\n r.filter = this.currentFilter;\n r.missingValue = this.missingValue;\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n super.restore(dump, factory);\n if (dump.map) {\n this.mapping = createMappingFunction(dump.map);\n } else if (dump.domain) {\n this.mapping = new ScaleMappingFunction(dump.domain, 'linear', dump.range || [0,1]);\n }\n if (dump.currentFilter) {\n this.currentFilter = dump.currentFilter;\n }\n if (dump.missingValue) {\n this.missingValue = dump.missingValue;\n }\n if (dump.numberFormat) {\n this.numberFormat = d3.format(dump.numberFormat);\n }\n }\n\n createEventList() {\n return super.createEventList().concat(['mappingChanged']);\n }\n\n getLabel(row:any) {\n //if a dedicated format and a number use the formatter in any case\n if ((this.desc).numberFormat) {\n return this.numberFormat(this.getRawValue(row));\n }\n const v = super.getValue(row);\n //keep non number if it is not a number else convert using formatter\n return '' + (typeof v === 'number' ? this.numberFormat(+v) : v);\n }\n\n getRawValue(row:any) {\n var v:any = super.getValue(row);\n if (typeof(v) === 'undefined' || v == null || isNaN(v) || v === '' || v === 'NA' || (typeof(v) === 'string' && (v.toLowerCase() === 'na'))) {\n return this.missingValue;\n }\n return +v;\n }\n\n getValue(row:any) {\n var v = this.getRawValue(row);\n if (isNaN(v)) {\n return v;\n }\n return this.mapping.apply(v);\n }\n\n getNumber(row:any) {\n return this.getValue(row);\n }\n\n compare(a:any, b:any) {\n return numberCompare(this.getValue(a), this.getValue(b));\n }\n\n getOriginalMapping() {\n return this.original.clone();\n }\n\n getMapping() {\n return this.mapping.clone();\n }\n\n setMapping(mapping: IMappingFunction) {\n if (this.mapping.eq(mapping)) {\n return;\n }\n this.fire(['mappingChanged', 'dirtyValues', 'dirty'], this.mapping.clone(), this.mapping = mapping);\n }\n\n isFiltered() {\n return isFinite(this.currentFilter.min) || isFinite(this.currentFilter.max);\n }\n\n get filterMin() {\n return this.currentFilter.min;\n }\n\n get filterMax() {\n return this.currentFilter.max;\n }\n\n getFilter(): INumberFilter {\n return {\n min: this.currentFilter.min,\n max: this.currentFilter.max\n };\n }\n\n set filterMin(min:number) {\n var bak = {min: this.currentFilter.min, max: this.currentFilter.max};\n this.currentFilter.min = isNaN(min) ? -Infinity : min;\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], bak, this.currentFilter);\n }\n\n set filterMax(max:number) {\n var bak = {min: this.currentFilter.min, max: this.currentFilter.max};\n this.currentFilter.max = isNaN(max) ? Infinity : max;\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], bak, this.currentFilter);\n }\n\n setFilter(value: INumberFilter = {min: -Infinity, max: +Infinity}) {\n if (this.currentFilter.min === value.min && this.currentFilter.max === value.max) {\n return;\n }\n const bak = this.getFilter();\n this.currentFilter.min = isNaN(value.min) ? -Infinity :value. min;\n this.currentFilter.max = isNaN(value.max) ? Infinity : value.max;\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], bak, this.currentFilter);\n }\n\n /**\n * filter the current row if any filter is set\n * @param row\n * @returns {boolean}\n */\n filter(row:any) {\n if (!this.isFiltered()) {\n return true;\n }\n var v = this.getRawValue(row);\n if (isNaN(v)) {\n return true;\n }\n return !((isFinite(this.currentFilter.min) && v < this.currentFilter.min) || (isFinite(this.currentFilter.max) && v > this.currentFilter.max));\n }\n}\n\n/**\n * a string column with optional alignment\n */\nexport class StringColumn extends ValueColumn {\n //magic key for filtering missing ones\n static FILTER_MISSING = '__FILTER_MISSING';\n private currentFilter:string|RegExp = null;\n\n private _alignment:string = 'left';\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.setWidthImpl(200); //by default 200\n this._alignment = desc.alignment || 'left';\n }\n\n //readonly\n get alignment() {\n return this._alignment;\n }\n\n getValue(row:any) {\n var v:any = super.getValue(row);\n if (typeof(v) === 'undefined' || v == null) {\n return '';\n }\n return String(v);\n }\n\n dump(toDescRef:(desc:any) => any):any {\n var r = super.dump(toDescRef);\n if (this.currentFilter instanceof RegExp) {\n r.filter = 'REGEX:' + (this.currentFilter).source;\n } else {\n r.filter = this.currentFilter;\n }\n r.alignment = this.alignment;\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n super.restore(dump, factory);\n if (dump.filter && dump.filter.slice(0, 6) === 'REGEX:') {\n this.currentFilter = new RegExp(dump.filter.slice(6));\n } else {\n this.currentFilter = dump.filter || null;\n }\n this._alignment = dump.alignment || this._alignment;\n }\n\n isFiltered() {\n return this.currentFilter != null;\n }\n\n filter(row:any) {\n if (!this.isFiltered()) {\n return true;\n }\n var r = this.getLabel(row),\n filter = this.currentFilter;\n\n if (filter === StringColumn.FILTER_MISSING) { //filter empty\n return r != null && r.trim() !== '';\n }\n if (typeof filter === 'string' && filter.length > 0) {\n return r && r.toLowerCase().indexOf(filter.toLowerCase()) >= 0;\n }\n if (filter instanceof RegExp) {\n return r && filter.test(r);\n }\n return true;\n }\n\n getFilter() {\n return this.currentFilter;\n }\n\n setFilter(filter:string|RegExp) {\n if (filter === '') {\n filter = null;\n }\n if (this.currentFilter === filter) {\n return;\n }\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], this.currentFilter, this.currentFilter = filter);\n }\n\n compare(a:any, b:any) {\n var a_val: string, b_val: string;\n if((a_val = this.getValue(a)) === '') {\n return this.getValue(b) === '' ? 0 : +1; //same = 0\n } else if((b_val = this.getValue(b)) === '') {\n return -1;\n }\n return a_val.localeCompare(b_val);\n }\n}\n\n/**\n * a string column in which the label is a text but the value a link\n */\nexport class LinkColumn extends StringColumn {\n /**\n * a pattern used for generating the link, $1 is replaced with the actual value\n * @type {null}\n */\n private link = null;\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.link = desc.link;\n }\n\n get headerCssClass() {\n return this.link == null ? 'link' : 'link link_pattern';\n }\n\n createEventList() {\n return super.createEventList().concat(['linkChanged']);\n }\n\n setLink(link: string) {\n /* tslint:disable */\n if (link == this.link) { /*== on purpose*/\n return;\n }\n /* tslint:enable */\n this.fire(['linkChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], this.link, this.link = link);\n }\n\n getLink() {\n return this.link || '';\n }\n\n dump(toDescRef:(desc:any) => any):any {\n var r = super.dump(toDescRef);\n /* tslint:disable */\n if (this.link != (this.desc).link) {\n r.link = this.link;\n }\n /* tslint:enable */\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n super.restore(dump, factory);\n if (dump.link) {\n this.link = dump.link;\n }\n }\n\n getLabel(row:any) {\n var v:any = super.getValue(row);\n if (v.alt) {\n return v.alt;\n }\n return '' + v;\n }\n\n isLink(row: any) {\n if (this.link) {\n return true;\n }\n //get original value\n var v:any = super.getValue(row);\n //convert to link\n return v.href != null;\n }\n\n getValue(row:any) {\n //get original value\n var v:any = super.getValue(row);\n //convert to link\n if (v.href) {\n return v.href;\n } else if (this.link) {\n return this.link.replace(/\\$1/g, v);\n }\n return v;\n }\n}\n\n/**\n * a string column in which the values can be edited locally\n */\nexport class AnnotateColumn extends StringColumn {\n private annotations = d3.map();\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n createEventList() {\n return super.createEventList().concat(['valueChanged']);\n }\n\n getValue(row:any) {\n var index = String(row._index);\n if (this.annotations.has(index)) {\n return this.annotations.get(index);\n }\n return super.getValue(row);\n }\n\n dump(toDescRef:(desc:any) => any):any {\n var r = super.dump(toDescRef);\n r.annotations = {};\n this.annotations.forEach((k, v) => {\n r.annotations[k] = v;\n });\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n super.restore(dump, factory);\n if (dump.annotations) {\n Object.keys(dump.annotations).forEach((k) => {\n this.annotations.set(k, dump.annotations[k]);\n });\n }\n }\n\n setValue(row:any, value:string) {\n var old = this.getValue(row);\n if (old === value) {\n return true;\n }\n if (value === '' || value == null) {\n this.annotations.remove(String(row._index));\n } else {\n this.annotations.set(String(row._index), value);\n }\n this.fire(['valueChanged', 'dirtyValues', 'dirty'], row._index, old, value);\n return true;\n }\n}\n\nfunction arrayEquals(a: T[], b: T[]) {\n const al = a != null ? a.length : 0;\n const bl = b != null ? b.length : 0;\n if (al !== bl) {\n return false;\n }\n if (al === 0) {\n return true;\n }\n return a.every((ai,i) => ai === b[i]);\n}\n\n/**\n * a checkbox column for selections\n */\nexport class SelectionColumn extends ValueColumn {\n /**\n * factory for creating a description creating a rank column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'S') {\n return {type: 'selection', label: label};\n }\n\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.setCompressed(true);\n }\n\n createEventList() {\n return super.createEventList().concat(['select']);\n }\n\n setValue(row:any, value:boolean) {\n const old = this.getValue(row);\n if (old === value) {\n return true;\n }\n return this.setImpl(row, value);\n }\n\n private setImpl(row: any, value: boolean) {\n if ((this.desc).setter) {\n (this.desc).setter(row, value);\n }\n this.fire('select', row, value);\n return true;\n }\n\n toggleValue(row:any) {\n const old = this.getValue(row);\n this.setImpl(row, !old);\n return !old;\n }\n\n compare(a:any, b:any) {\n return d3.ascending(this.getValue(a), this.getValue(b));\n }\n}\n\n\n/**\n * a string column with optional alignment\n */\nexport class BooleanColumn extends ValueColumn {\n private currentFilter:boolean = null;\n private trueMarker = 'X';\n private falseMarker = '';\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.setWidthImpl(30);\n this.trueMarker = desc.trueMarker || this.trueMarker;\n this.falseMarker = desc.falseMarker || this.falseMarker;\n }\n\n getValue(row:any) {\n var v:any = super.getValue(row);\n if (typeof(v) === 'undefined' || v == null) {\n return false;\n }\n return v === true || v === 'true' || v === 'yes' || v === 'x';\n }\n\n getLabel(row: any) {\n const v = this.getValue(row);\n return v ? this.trueMarker : this.falseMarker;\n }\n\n dump(toDescRef:(desc:any) => any):any {\n var r = super.dump(toDescRef);\n if (this.currentFilter !== null) {\n r.filter = this.currentFilter;\n }\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n super.restore(dump, factory);\n if (typeof dump.filter !== 'undefined') {\n this.currentFilter = dump.filter;\n }\n }\n\n isFiltered() {\n return this.currentFilter !== null;\n }\n\n filter(row:any) {\n if (!this.isFiltered()) {\n return true;\n }\n var r = this.getValue(row);\n return r === this.currentFilter;\n }\n\n getFilter() {\n return this.currentFilter;\n }\n\n setFilter(filter:boolean) {\n if (this.currentFilter === filter) {\n return;\n }\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], this.currentFilter, this.currentFilter = filter);\n }\n\n compare(a:any[], b:any[]) {\n return d3.ascending(this.getValue(a), this.getValue(b));\n }\n}\n\n/**\n * column for categorical values\n */\nexport class CategoricalColumn extends ValueColumn implements ICategoricalColumn {\n /**\n * colors for each category\n * @type {Ordinal}\n */\n private colors = d3.scale.category10();\n\n /**\n * category labels by default the category name itself\n * @type {Array}\n */\n private catLabels = d3.map();\n\n /**\n * set of categories to show\n * @type {null}\n * @private\n */\n private currentFilter:string[] = null;\n\n /**\n * split multiple categories\n * @type {string}\n */\n private separator = ';';\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.separator = desc.separator || this.separator;\n this.initCategories(desc);\n //TODO infer categories from data\n }\n\n initCategories(desc:any) {\n if (desc.categories) {\n var cats = [],\n cols = this.colors.range(),\n labels = d3.map();\n desc.categories.forEach((cat, i) => {\n if (typeof cat === 'string') {\n //just the category value\n cats.push(cat);\n } else {\n //the name or value of the category\n cats.push(cat.name || cat.value);\n //optional label mapping\n if (cat.label) {\n labels.set(cat.name, cat.label);\n }\n //optional color\n if (cat.color) {\n cols[i] = cat.color;\n }\n }\n });\n this.catLabels = labels;\n this.colors.domain(cats).range(cols);\n }\n }\n\n get categories() {\n return this.colors.domain();\n }\n\n get categoryColors() {\n return this.colors.range();\n }\n\n get categoryLabels() {\n //no mapping\n if (this.catLabels === null || this.catLabels.empty()) {\n return this.categories;\n }\n //label or identity mapping\n return this.categories.map((c) => this.catLabels.has(c) ? this.catLabels.get(c) : c);\n }\n\n colorOf(cat: string) {\n return this.colors(cat);\n }\n\n getLabel(row:any) {\n //no mapping\n if (this.catLabels === null || this.catLabels.empty()) {\n return '' + StringColumn.prototype.getValue.call(this, row);\n }\n return this.getLabels(row).join(this.separator);\n }\n\n getFirstLabel(row:any) {\n const l = this.getLabels(row);\n return l.length > 0 ? l[0] : null;\n }\n\n\n getLabels(row:any) {\n var v = StringColumn.prototype.getValue.call(this, row);\n const r = v ? v.split(this.separator): [];\n\n const mapToLabel = (values: string[]) => {\n if (this.catLabels === null || this.catLabels.empty()) {\n return values;\n }\n return values.map((v) => this.catLabels.has(v) ? this.catLabels.get(v) : v);\n };\n return mapToLabel(r);\n }\n\n getValue(row:any) {\n const r = this.getValues(row);\n return r.length > 0 ? r[0] : null;\n }\n\n getValues(row:any) {\n var v = StringColumn.prototype.getValue.call(this, row);\n const r = v ? v.split(this.separator): [];\n return r;\n }\n\n getCategories(row: any) {\n return this.getValues(row);\n }\n\n getColor(row:any) {\n var cat = this.getValue(row);\n if (cat === null || cat === '') {\n return null;\n }\n return this.colors(cat);\n }\n\n getColors(row:any) {\n return this.getCategories(row).map(this.colors);\n }\n\n dump(toDescRef:(desc:any) => any):any {\n var r = super.dump(toDescRef);\n r.filter = this.currentFilter;\n r.colors = {\n domain: this.colors.domain(),\n range: this.colors.range(),\n separator: this.separator\n };\n if (this.catLabels !== null && !this.catLabels.empty()) {\n r.labels = this.catLabels.entries();\n }\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n super.restore(dump, factory);\n this.currentFilter = dump.filter || null;\n if (dump.colors) {\n this.colors.domain(dump.colors.domain).range(dump.colors.range);\n }\n if (dump.labels) {\n this.catLabels = d3.map();\n dump.labels.forEach((e) => this.catLabels.set(e.key, e.value));\n }\n this.separator = dump.separator || this.separator;\n }\n\n isFiltered() {\n return this.currentFilter != null;\n }\n\n filter(row:any):boolean {\n if (!this.isFiltered()) {\n return true;\n }\n var vs = this.getCategories(row),\n filter:any = this.currentFilter;\n return vs.every((v) => {\n if (Array.isArray(filter) && filter.length > 0) { //array mode\n return filter.indexOf(v) >= 0;\n } else if (typeof filter === 'string' && filter.length > 0) { //search mode\n return v && v.toLowerCase().indexOf(filter.toLowerCase()) >= 0;\n } else if (filter instanceof RegExp) { //regex match mode\n return v != null && v.match(filter).length > 0;\n }\n return true;\n });\n }\n\n getFilter() {\n return this.currentFilter;\n }\n\n setFilter(filter:string[]) {\n if (arrayEquals(this.currentFilter,filter)) {\n return;\n }\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], this.currentFilter, this.currentFilter = filter);\n }\n\n compare(a:any, b:any) {\n const va = this.getValues(a);\n const vb = this.getValues(b);\n //check all categories\n for (let i = 0; i < Math.min(va.length, vb.length); ++i) {\n let ci = d3.ascending(va[i], vb[i]);\n if (ci !== 0) {\n return ci;\n }\n }\n //smaller length wins\n return va.length - vb.length;\n }\n}\n\n/**\n * similar to a categorical column but the categories are mapped to numbers\n */\nexport class CategoricalNumberColumn extends ValueColumn implements INumberColumn, ICategoricalColumn {\n private colors = d3.scale.category10();\n\n /**\n * category labels by default the category name itself\n * @type {Array}\n */\n private catLabels = d3.map();\n\n private scale = d3.scale.ordinal().rangeRoundPoints([0, 1]);\n\n private currentFilter:string[] = null;\n /**\n * separator for multi handling\n * @type {string}\n */\n private separator = ';';\n private combiner = d3.max;\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.separator = desc.separator || this.separator;\n CategoricalColumn.prototype.initCategories.call(this, desc);\n\n this.scale.domain(this.colors.domain());\n if (desc.categories) {\n //lookup value or 0.5 by default\n let values = desc.categories.map((d) => ((typeof d !== 'string' && typeof (d.value) === 'number')) ? d.value : 0.5);\n this.scale.range(values);\n }\n }\n\n createEventList() {\n return super.createEventList().concat(['mappingChanged']);\n }\n\n get categories() {\n return this.colors.domain().slice();\n }\n\n get categoryColors() {\n return this.colors.range().slice();\n }\n\n get categoryLabels() {\n //no mapping\n if (this.catLabels === null || this.catLabels.empty()) {\n return this.categories;\n }\n //label or identity mapping\n return this.categories.map((c) => this.catLabels.has(c) ? this.catLabels.get(c) : c);\n }\n\n colorOf(cat: string) {\n return this.colors(cat);\n }\n\n getLabel(row:any) {\n return CategoricalColumn.prototype.getLabel.call(this, row);\n }\n\n getFirstLabel(row:any) {\n return CategoricalColumn.prototype.getFirstLabel.call(this, row);\n }\n\n getLabels(row:any) {\n return CategoricalColumn.prototype.getLabels.call(this, row);\n }\n\n getValue(row:any) {\n const r = this.getValues(row);\n return r.length > 0 ? this.combiner(r) : 0;\n }\n\n getValues(row:any) {\n const r = CategoricalColumn.prototype.getValues.call(this, row);\n return r.map(this.scale);\n }\n\n getCategories(row: any) {\n return CategoricalColumn.prototype.getValues.call(this, row);\n }\n\n getNumber(row:any) {\n return this.getValue(row);\n }\n\n getColor(row:any) {\n const vs = this.getValues(row);\n const cs = this.getColors(row);\n if (this.combiner === d3.max) {\n //use the max color\n return cs.slice(1).reduce((prev, act, i) => vs[i + 1] > prev.v ? {c: act, v: vs[i + 1]} : prev, {\n c: cs[0],\n v: vs[0]\n }).c;\n } else if (this.combiner === d3.min) {\n //use the max color\n return cs.slice(1).reduce((prev, act, i) => vs[i + 1] < prev.v ? {c: act, v: vs[i + 1]} : prev, {\n c: cs[0],\n v: vs[0]\n }).c;\n } else {\n //use the first\n return cs[0] || null;\n }\n }\n\n getColors(row) {\n return CategoricalColumn.prototype.getColors.call(this, row);\n }\n\n dump(toDescRef:(desc:any) => any):any {\n var r = CategoricalColumn.prototype.dump.call(this, toDescRef);\n r.scale = {\n domain: this.scale.domain(),\n range: this.scale.range(),\n separator: this.separator\n };\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n CategoricalColumn.prototype.restore.call(this, dump, factory);\n if (dump.scale) {\n this.scale.domain(dump.scale.domain).range(dump.scale.range);\n }\n this.separator = dump.separator || this.separator;\n }\n\n getScale() {\n return {\n domain: this.scale.domain(),\n range: this.scale.range()\n };\n }\n\n getMapping() {\n return this.scale.range().slice();\n }\n\n setMapping(range:number[]) {\n var bak = this.getScale();\n this.scale.range(range);\n this.fire(['mappingChanged', 'dirtyValues', 'dirty'], bak, this.getScale());\n }\n\n isFiltered() {\n return this.currentFilter != null;\n }\n\n filter(row:any):boolean {\n return CategoricalColumn.prototype.filter.call(this, row);\n }\n\n getFilter() {\n return this.currentFilter;\n }\n\n setFilter(filter:string[]) {\n if (this.currentFilter === filter) {\n return;\n }\n this.fire(['filterChanged', 'dirtyValues', 'dirty'], this.currentFilter, this.currentFilter = filter);\n }\n\n compare(a:any, b:any) {\n return NumberColumn.prototype.compare.call(this, a, b);\n }\n}\n\n\n/**\n * implementation of a combine column, standard operations how to select\n */\nexport class CompositeColumn extends Column implements IColumnParent {\n protected _children:Column[] = [];\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n assignNewId(idGenerator:() => string) {\n super.assignNewId(idGenerator);\n this._children.forEach((c) => c.assignNewId(idGenerator));\n }\n\n get children() {\n return this._children.slice();\n }\n\n get length() {\n return this._children.length;\n }\n\n flatten(r:IFlatColumn[], offset:number, levelsToGo = 0, padding = 0) {\n var self = null;\n //no more levels or just this one\n if (levelsToGo === 0 || levelsToGo <= Column.FLAT_ALL_COLUMNS) {\n var w = this.getCompressed() ? Column.COMPRESSED_WIDTH : this.getWidth();\n r.push(self = {col: this, offset: offset, width: w});\n if (levelsToGo === 0) {\n return w;\n }\n }\n //push children\n this._children.forEach((c) => {\n if (!c.isHidden() || levelsToGo <= Column.FLAT_ALL_COLUMNS) {\n c.flatten(r, offset, levelsToGo - 1, padding);\n }\n });\n return w;\n }\n\n dump(toDescRef:(desc:any) => any) {\n var r = super.dump(toDescRef);\n r.children = this._children.map((d) => d.dump(toDescRef));\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n dump.children.map((child) => {\n var c = factory(child);\n if (c) {\n this.push(c);\n }\n });\n super.restore(dump, factory);\n }\n\n /**\n * inserts a column at a the given position\n * @param col\n * @param index\n * @param weight\n * @returns {any}\n */\n insert(col:Column, index:number) {\n this._children.splice(index, 0, col);\n //listen and propagate events\n return this.insertImpl(col, index);\n }\n\n protected insertImpl(col: Column, index: number) {\n col.parent = this;\n this.forward(col, 'dirtyHeader.combine', 'dirtyValues.combine', 'dirty.combine', 'filterChanged.combine');\n this.fire(['addColumn', 'dirtyHeader', 'dirtyValues', 'dirty'], col, index);\n return col;\n }\n\n push(col:Column) {\n return this.insert(col, this._children.length);\n }\n\n at(index: number) {\n return this._children[index];\n }\n\n indexOf(col:Column) {\n return this._children.indexOf(col);\n }\n\n insertAfter(col:Column, ref:Column) {\n var i = this.indexOf(ref);\n if (i < 0) {\n return null;\n }\n return this.insert(col, i + 1);\n }\n remove(child:Column) {\n var i = this._children.indexOf(child);\n if (i < 0) {\n return false;\n }\n this._children.splice(i, 1); //remove and deregister listeners\n return this.removeImpl(child);\n }\n\n protected removeImpl(child: Column) {\n child.parent = null;\n this.unforward(child, 'dirtyHeader.combine', 'dirtyValues.combine', 'dirty.combine', 'filterChanged.combine');\n this.fire(['removeColumn', 'dirtyHeader', 'dirtyValues', 'dirty'], child);\n return true;\n }\n\n getColor(row: any) {\n return this.color;\n }\n\n isFiltered() {\n return this._children.some((d) => d.isFiltered());\n }\n\n filter(row:any) {\n return this._children.every((d) => d.filter(row));\n }\n}\n\n/**\n * implementation of a combine column, standard operations how to select\n */\nexport class CompositeNumberColumn extends CompositeColumn implements INumberColumn {\n public missingValue = 0;\n\n private numberFormat : (n: number) => string = d3.format('.3n');\n\n constructor(id:string, desc:any) {\n super(id, desc);\n\n if (desc.numberFormat) {\n this.numberFormat = d3.format(desc.numberFormat);\n }\n }\n\n\n dump(toDescRef:(desc:any) => any) {\n var r = super.dump(toDescRef);\n r.missingValue = this.missingValue;\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n if (dump.missingValue) {\n this.missingValue = dump.missingValue;\n }\n if (dump.numberFormat) {\n this.numberFormat = d3.format(dump.numberFormat);\n }\n super.restore(dump, factory);\n }\n\n /**\n * inserts a column at a the given position\n * @param col\n * @param index\n * @param weight\n * @returns {any}\n */\n insert(col:Column, index:number) {\n if (!isNumberColumn(col)) { //indicator it is a number type\n return null;\n }\n return super.insert(col, index);\n }\n\n getLabel(row: any) {\n const v = this.getValue(row);\n //keep non number if it is not a number else convert using formatter\n return '' + (typeof v === 'number' ? this.numberFormat(v) : v);\n }\n\n getValue(row:any) {\n //weighted sum\n const v = this.compute(row);\n if (typeof(v) === 'undefined' || v == null || isNaN(v)) {\n return this.missingValue;\n }\n return v;\n }\n\n protected compute(row: any) {\n return NaN;\n }\n\n getNumber(row:any) {\n return this.getValue(row);\n }\n\n compare(a:any, b:any) {\n return numberCompare(this.getValue(a), this.getValue(b));\n }\n}\n\nexport interface IMultiLevelColumn extends CompositeColumn {\n getCollapsed(): boolean;\n setCollapsed(value: boolean);\n}\n\nexport function isMultiLevelColumn(col: Column) {\n return typeof ((col).getCollapsed) === 'function';\n}\n\n/**\n * implementation of the stacked column\n */\nexport class StackColumn extends CompositeNumberColumn implements IMultiLevelColumn {\n /**\n * factory for creating a description creating a stacked column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'Combined') {\n return {type: 'stack', label: label};\n }\n\n private adaptChange;\n\n /**\n * whether this stack column is collapsed i.e. just looks like an ordinary number column\n * @type {boolean}\n * @private\n */\n private collapsed = false;\n\n constructor(id:string, desc:any) {\n super(id, desc);\n\n const that = this;\n this.adaptChange = function (old, new_) {\n that.adaptWidthChange(this.source, old, new_);\n };\n }\n\n createEventList() {\n return super.createEventList().concat(['collapseChanged', 'weightsChanged']);\n }\n\n setCollapsed(value:boolean) {\n if (this.collapsed === value) {\n return;\n }\n this.fire(['collapseChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], this.collapsed, this.collapsed = value);\n }\n\n getCollapsed() {\n return this.collapsed;\n }\n\n flatten(r:IFlatColumn[], offset:number, levelsToGo = 0, padding = 0) {\n var self = null;\n const children = levelsToGo <= Column.FLAT_ALL_COLUMNS ? this._children : this._children.filter((c) => !c.isHidden());\n //no more levels or just this one\n if (levelsToGo === 0 || levelsToGo <= Column.FLAT_ALL_COLUMNS) {\n var w = this.getCompressed() ? Column.COMPRESSED_WIDTH : this.getWidth();\n if (!this.collapsed && !this.getCompressed()) {\n w += (children.length - 1) * padding;\n }\n r.push(self = {col: this, offset: offset, width: w});\n if (levelsToGo === 0) {\n return w;\n }\n }\n //push children\n var acc = offset;\n children.forEach((c) => {\n acc += c.flatten(r, acc, levelsToGo - 1, padding) + padding;\n });\n if (self) { //nesting my even increase my width\n self.width = acc - offset - padding;\n }\n return acc - offset - padding;\n }\n\n dump(toDescRef:(desc:any) => any) {\n const r = super.dump(toDescRef);\n r.collapsed = this.collapsed;\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n this.collapsed = dump.collapsed === true;\n super.restore(dump, factory);\n }\n\n /**\n * inserts a column at a the given position\n * @param col\n * @param index\n * @param weight\n * @returns {any}\n */\n insert(col:Column, index:number, weight = NaN) {\n if (!isNaN(weight)) {\n col.setWidth((weight / (1 - weight) * this.getWidth()));\n }\n col.on('widthChanged.stack', this.adaptChange);\n //increase my width\n super.setWidth(this.length === 0 ? col.getWidth() : (this.getWidth() + col.getWidth()));\n\n return super.insert(col, index);\n }\n\n push(col:Column, weight = NaN) {\n return this.insert(col, this.length, weight);\n }\n\n insertAfter(col:Column, ref:Column, weight = NaN) {\n const i = this.indexOf(ref);\n if (i < 0) {\n return null;\n }\n return this.insert(col, i + 1, weight);\n }\n\n /**\n * adapts weights according to an own width change\n * @param col\n * @param old\n * @param new_\n */\n private adaptWidthChange(col:Column, old: number, new_: number) {\n if (old === new_) {\n return;\n }\n const bak = this.getWeights();\n const full = this.getWidth(),\n change = (new_ - old) / full;\n const oldWeight = old / full;\n const factor = (1 - oldWeight - change) / (1 - oldWeight);\n this._children.forEach((c) => {\n if (c === col) {\n //c.weight += change;\n } else {\n c.setWidthImpl(c.getWidth() * factor);\n }\n });\n this.fire(['weightsChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], bak, this.getWeights());\n }\n\n getWeights() {\n const w = this.getWidth();\n return this._children.map((d) => d.getWidth() / w);\n }\n\n setWeights(weights:number[]) {\n const bak = this.getWeights();\n var s,\n delta = weights.length - this.length;\n if (delta < 0) {\n s = d3.sum(weights);\n if (s <= 1) {\n for (var i = 0; i < -delta; ++i) {\n weights.push((1 - s) * (1 / -delta));\n }\n } else if (s <= 100) {\n for (var i = 0; i < -delta; ++i) {\n weights.push((100 - s) * (1 / -delta));\n }\n }\n }\n weights = weights.slice(0, this.length);\n s = d3.sum(weights) / this.getWidth();\n weights = weights.map(d => d / s);\n\n this._children.forEach((c, i) => {\n c.setWidthImpl(weights[i]);\n });\n this.fire(['weightsChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], bak, weights);\n\n }\n\n removeImpl(child:Column) {\n child.on('widthChanged.stack', null);\n super.setWidth(this.length === 1 ? 100 : this.getWidth() - child.getWidth());\n return super.removeImpl(child);\n }\n\n setWidth(value:number) {\n const factor = value / this.getWidth();\n this._children.forEach((child) => {\n //disable since we change it\n child.setWidthImpl(child.getWidth() * factor);\n });\n super.setWidth(value);\n }\n\n protected compute(row: any) {\n const w = this.getWidth();\n return this._children.reduce((acc, d) => acc + d.getValue(row) * (d.getWidth() / w), 0);\n }\n}\n\n/**\n * combines multiple columns by using the maximal value\n */\nexport class MaxColumn extends CompositeNumberColumn {\n /**\n * factory for creating a description creating a max column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'Max') {\n return {type: 'max', label: label};\n }\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n getColor(row: any) {\n //compute the index of the maximal one\n const c = this._children;\n if (c.length === 0) {\n return this.color;\n }\n var max_i = 0, max_v = c[0].getValue(row);\n for(let i = 1; i < c.length; ++i) {\n let v = c[i].getValue(row);\n if (v > max_v) {\n max_i = i;\n max_v = v;\n }\n }\n return c[max_i].color;\n }\n\n protected compute(row: any) {\n return d3.max(this._children, (d) => d.getValue(row));\n }\n}\n\nexport class MinColumn extends CompositeNumberColumn {\n /**\n * factory for creating a description creating a min column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'Min') {\n return {type: 'min', label: label};\n }\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n getColor(row: any) {\n //compute the index of the maximal one\n const c = this._children;\n if (c.length === 0) {\n return this.color;\n }\n var min_i = 0, min_v = c[0].getValue(row);\n for(let i = 1; i < c.length; ++i) {\n let v = c[i].getValue(row);\n if (v < min_v) {\n min_i = i;\n min_v = v;\n }\n }\n return c[min_i].color;\n }\n\n protected compute(row: any) {\n return d3.min(this._children, (d) => d.getValue(row));\n }\n}\n\nexport class MeanColumn extends CompositeNumberColumn {\n /**\n * factory for creating a description creating a mean column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'Mean') {\n return {type: 'mean', label: label};\n }\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n protected compute(row: any) {\n return d3.mean(this._children, (d) => d.getValue(row));\n }\n}\n\nexport class MultiLevelCompositeColumn extends CompositeColumn implements IMultiLevelColumn {\n private adaptChange;\n\n /**\n * whether this stack column is collapsed i.e. just looks like an ordinary number column\n * @type {boolean}\n * @private\n */\n private collapsed = false;\n\n constructor(id:string, desc:any) {\n super(id, desc);\n const that = this;\n this.adaptChange = function (old, new_) {\n that.adaptWidthChange(this.source, old, new_);\n };\n }\n\n createEventList() {\n return super.createEventList().concat(['collapseChanged']);\n }\n\n setCollapsed(value:boolean) {\n if (this.collapsed === value) {\n return;\n }\n this.fire(['collapseChanged', 'dirtyHeader', 'dirtyValues', 'dirty'], this.collapsed, this.collapsed = value);\n }\n\n getCollapsed() {\n return this.collapsed;\n }\n\n dump(toDescRef:(desc:any) => any) {\n const r = super.dump(toDescRef);\n r.collapsed = this.collapsed;\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n this.collapsed = dump.collapsed === true;\n super.restore(dump, factory);\n }\n\n flatten(r:IFlatColumn[], offset:number, levelsToGo = 0, padding = 0) {\n return StackColumn.prototype.flatten.call(this, r, offset, levelsToGo, padding);\n }\n\n /**\n * inserts a column at a the given position\n * @param col\n * @param index\n * @param weight\n * @returns {any}\n */\n insert(col:Column, index:number) {\n col.on('widthChanged.stack', this.adaptChange);\n //increase my width\n super.setWidth(this.length === 0 ? col.getWidth() : (this.getWidth() + col.getWidth()));\n\n return super.insert(col, index);\n }\n\n /**\n * adapts weights according to an own width change\n * @param col\n * @param old\n * @param new_\n */\n private adaptWidthChange(col:Column, old: number, new_: number) {\n if (old === new_) {\n return;\n }\n super.setWidth(this.getWidth()+(new_ - old));\n }\n\n removeImpl(child:Column) {\n child.on('widthChanged.stack', null);\n super.setWidth(this.length === 1 ? 100 : this.getWidth() - child.getWidth());\n return super.removeImpl(child);\n }\n\n setWidth(value:number) {\n const factor = this.length / this.getWidth();\n this._children.forEach((child) => {\n //disable since we change it\n child.setWidthImpl(child.getWidth() * factor);\n });\n super.setWidth(value);\n }\n}\n/**\n * a nested column is a composite column where the sorting order is determined by the nested ordering of the children\n * i.e., sort by the first child if equal sort by the second child,...\n */\nexport class NestedColumn extends MultiLevelCompositeColumn {\n /**\n * factory for creating a description creating a mean column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'Nested') {\n return {type: 'nested', label: label};\n }\n\n constructor(id:string, desc:any) {\n super(id, desc);\n }\n\n compare(a:any, b:any) {\n const c = this.children;\n for (let ci of c) {\n let ci_result = ci.compare(a, b);\n if (ci_result !== 0) {\n return ci_result;\n }\n }\n return 0;\n }\n\n getLabel(row: any) {\n return this.children.map((d) => d.getLabel(row)).join(';');\n }\n\n getValue(row:any) {\n return this.children.map((d) => d.getValue(row)).join(';');\n }\n}\n\nexport class ScriptColumn extends CompositeColumn {\n /**\n * factory for creating a description creating a mean column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'script') {\n return {type: 'script', label: label, script: ScriptColumn.DEFAULT_SCRIPT};\n }\n\n static DEFAULT_SCRIPT = 'return d3.max(values)';\n\n private script = ScriptColumn.DEFAULT_SCRIPT;\n private f : Function = null;\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.script = desc.script || this.script;\n }\n\n createEventList() {\n return super.createEventList().concat(['scriptChanged']);\n }\n\n setScript(script: string) {\n if (this.script === script) {\n return;\n }\n this.f = null;\n this.fire(['scriptChanged', 'dirtyValues', 'dirty'], this.script, this.script = script);\n }\n\n getScript() {\n return this.script;\n }\n\n dump(toDescRef:(desc:any) => any) {\n const r = super.dump(toDescRef);\n r.script = this.script;\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n this.script = dump.script || this.script;\n super.restore(dump, factory);\n }\n\n protected compute(row: any) {\n if (this.f == null) {\n this.f = new Function('children','values', this.script);\n }\n return this.f.call(this, this._children, this._children.map((d) => d.getValue(row)));\n }\n}\n\n/**\n * a rank column\n */\nexport class RankColumn extends ValueColumn {\n /**\n * factory for creating a description creating a rank column\n * @param label\n * @returns {{type: string, label: string}}\n */\n static desc(label:string = 'Rank') {\n return {type: 'rank', label: label};\n }\n\n constructor(id:string, desc:any) {\n super(id, desc);\n this.setWidthImpl(50);\n }\n}\n\nexport interface ISortCriteria {\n col:Column;\n asc:boolean;\n}\n\n/**\n * a ranking\n */\nexport class Ranking extends utils.AEventDispatcher implements IColumnParent {\n\n /**\n * the current sort criteria\n * @type {null}\n * @private\n */\n private sortColumn:Column = null;\n /**\n * ascending or descending order\n * @type {boolean}\n */\n private ascending = false;\n\n /**\n * columns of this ranking\n * @type {Array}\n * @private\n */\n private columns:Column[] = [];\n\n comparator = (a:any, b:any) => {\n if (this.sortColumn === null) {\n return 0;\n }\n var r = this.sortColumn.compare(a, b);\n return this.ascending ? r : -r;\n };\n\n dirtyOrder = () => {\n this.fire(['dirtyOrder', 'dirtyValues', 'dirty'], this.getSortCriteria());\n };\n\n /**\n * the current ordering as an sorted array of indices\n * @type {Array}\n */\n private order:number[] = [];\n\n constructor(public id : string) {\n super();\n this.id = fixCSS(id);\n }\n\n createEventList() {\n return super.createEventList().concat(['widthChanged', 'filterChanged', 'labelChanged', 'compressChanged', 'addColumn', 'removeColumn', 'dirty', 'dirtyHeader', 'dirtyValues', 'sortCriteriaChanged', 'dirtyOrder', 'orderChanged']);\n }\n\n assignNewId(idGenerator:() => string) {\n this.id = fixCSS(idGenerator());\n this.columns.forEach((c) => c.assignNewId(idGenerator));\n }\n\n setOrder(order:number[]) {\n this.fire(['orderChanged', 'dirtyValues', 'dirty'], this.order, this.order = order);\n }\n\n getOrder() {\n return this.order;\n }\n\n dump(toDescRef:(desc:any) => any) {\n var r : any = {};\n r.columns = this.columns.map((d) => d.dump(toDescRef));\n r.sortColumn = {\n asc: this.ascending\n };\n if (this.sortColumn) {\n r.sortColumn.sortBy = this.sortColumn.id; //store the index not the object\n }\n return r;\n }\n\n restore(dump:any, factory:(dump:any) => Column) {\n this.clear();\n dump.columns.map((child) => {\n var c = factory(child);\n if (c) {\n this.push(c);\n }\n });\n if (dump.sortColumn) {\n this.ascending = dump.sortColumn.asc;\n if (dump.sortColumn.sortBy) {\n let help = this.columns.filter((d) => d.id === dump.sortColumn.sortBy);\n this.sortBy(help.length === 0 ? null : help[0], dump.sortColumn.asc);\n }\n }\n }\n\n flatten(r:IFlatColumn[], offset:number, levelsToGo = 0, padding = 0) {\n var acc = offset; // + this.getWidth() + padding;\n if (levelsToGo > 0 || levelsToGo <= Column.FLAT_ALL_COLUMNS) {\n this.columns.forEach((c) => {\n if (!c.isHidden() || levelsToGo <= Column.FLAT_ALL_COLUMNS) {\n acc += c.flatten(r, acc, levelsToGo - 1, padding) + padding;\n }\n });\n }\n return acc - offset;\n }\n\n getSortCriteria(): ISortCriteria {\n return {\n col: this.sortColumn,\n asc: this.ascending\n };\n }\n\n toggleSorting(col:Column) {\n if (this.sortColumn === col) {\n return this.sortBy(col, !this.ascending);\n }\n return this.sortBy(col);\n }\n\n setSortCriteria(value: ISortCriteria) {\n return this.sortBy(value.col, value.asc);\n }\n\n sortBy(col:Column, ascending = false) {\n if (col !== null && col.findMyRanker() !== this) {\n return false; //not one of mine\n }\n if (this.sortColumn === col && this.ascending === ascending) {\n return true; //already in this order\n }\n if (this.sortColumn) { //disable dirty listening\n this.sortColumn.on('dirtyValues.order', null);\n }\n var bak = this.getSortCriteria();\n this.sortColumn = col;\n if (this.sortColumn) { //enable dirty listening\n this.sortColumn.on('dirtyValues.order', this.dirtyOrder);\n }\n this.ascending = ascending;\n this.fire(['sortCriteriaChanged', 'dirtyOrder', 'dirtyHeader', 'dirtyValues', 'dirty'], bak, this.getSortCriteria());\n return true;\n }\n\n get children() {\n return this.columns.slice();\n }\n\n get length() {\n return this.columns.length;\n }\n\n insert(col:Column, index:number = this.columns.length) {\n this.columns.splice(index, 0, col);\n col.parent = this;\n this.forward(col, 'dirtyValues.ranking', 'dirtyHeader.ranking', 'dirty.ranking', 'filterChanged.ranking');\n col.on('filterChanged.order', this.dirtyOrder);\n\n\n this.fire(['addColumn', 'dirtyHeader', 'dirtyValues', 'dirty'], col, index);\n\n if (this.sortColumn === null && !(col instanceof RankColumn || col instanceof SelectionColumn || col instanceof DummyColumn)) {\n this.sortBy(col, col instanceof StringColumn);\n }\n return col;\n }\n\n get fqpath() {\n return '';\n }\n\n findByPath(fqpath: string): Column {\n var p : IColumnParent|Column = this;\n const indices = fqpath.split('@').map(Number).slice(1); //ignore the first entry = ranking\n while(indices.length > 0) {\n let i = indices.shift();\n p = (p).at(i);\n }\n return p;\n }\n\n indexOf(col: Column) {\n return this.columns.indexOf(col);\n }\n\n at(index: number) {\n return this.columns[index];\n }\n\n insertAfter(col:Column, ref:Column) {\n var i = this.columns.indexOf(ref);\n if (i < 0) {\n return null;\n }\n return this.insert(col, i + 1);\n }\n\n push(col:Column) {\n return this.insert(col);\n }\n\n remove(col:Column) {\n var i = this.columns.indexOf(col);\n if (i < 0) {\n return false;\n }\n\n this.unforward(col, 'dirtyValues.ranking', 'dirtyHeader.ranking', 'dirty.ranking', 'filterChanged.ranking');\n\n if (this.sortColumn === col) { //was my sorting one\n let next = this.columns.filter((d) => d !== col && !(d instanceof SelectionColumn) && !(d instanceof RankColumn))[0];\n this.sortBy(next ? next : null);\n }\n\n col.parent = null;\n this.columns.splice(i, 1);\n\n this.fire(['removeColumn', 'dirtyHeader', 'dirtyValues', 'dirty'], col, i);\n return true;\n }\n\n clear() {\n if (this.columns.length === 0) {\n return;\n }\n this.sortColumn = null;\n this.columns.forEach((col) => {\n this.unforward(col, 'dirtyValues.ranking', 'dirtyHeader.ranking', 'dirty.ranking', 'filterChanged.ranking');\n col.parent = null;\n });\n this.columns.length = 0;\n this.fire(['removeColumn', 'dirtyHeader', 'dirtyValues', 'dirty'], null);\n }\n\n get flatColumns() {\n var r:IFlatColumn[] = [];\n this.flatten(r, 0, Column.FLAT_ALL_COLUMNS);\n return r.map((d) => d.col);\n }\n\n find(id_or_filter:(col:Column) => boolean | string) {\n var filter = typeof(id_or_filter) === 'string' ? (col) => col.id === id_or_filter : id_or_filter;\n var r = this.flatColumns;\n for (var i = 0; i < r.length; ++i) {\n if (filter(r[i])) {\n return r[i];\n }\n }\n return null;\n }\n\n /**\n * converts the sorting criteria to a json compatible notation for transferring it to the server\n * @param toId\n * @return {any}\n */\n toSortingDesc(toId:(desc:any) => string) {\n //TODO describe also all the filter settings\n var resolve = (s:Column):any => {\n if (s === null) {\n return null;\n }\n if (s instanceof StackColumn) {\n var w = (s).getWeights();\n return (s).children.map((child, i) => {\n return {\n weight: w[i],\n id: resolve(child)\n };\n });\n }\n return toId(s.desc);\n };\n var id = resolve(this.sortColumn);\n if (id === null) {\n return null;\n }\n return {\n id: id,\n asc: this.ascending\n };\n }\n\n isFiltered() {\n return this.columns.some((d) => d.isFiltered());\n }\n\n filter(row:any) {\n return this.columns.every((d) => d.filter(row));\n }\n\n findMyRanker() {\n return this;\n }\n\n get fqid() {\n return this.id;\n }\n}\n\n/**\n * defines a new column type\n * @param name\n * @param functions\n * @returns {CustomColumn}\n */\nexport function defineColumn(name: string, functions: any = {}) {\n class CustomColumn extends ValueColumn {\n constructor(id:string, desc:IColumnDesc) {\n super(id, desc);\n if (typeof (this.init) === 'function') {\n this.init.apply(this, [].slice.apply(arguments));\n }\n }\n }\n CustomColumn.prototype.toString = () => name;\n CustomColumn.prototype = utils.merge(CustomColumn.prototype, functions);\n\n return CustomColumn;\n}\n\n/**\n * utility for creating a stacked column description\n * @type {function(string=): {type: string, label: string}}\n */\nexport const createStackDesc = StackColumn.desc;\nexport const createRankDesc = RankColumn.desc;\nexport const createSelectionDesc = SelectionColumn.desc;\nexport const createMinDesc = MinColumn.desc;\nexport const createMaxDesc = MaxColumn.desc;\nexport const createMeanDesc = MeanColumn.desc;\nexport const createNestedDesc = NestedColumn.desc;\nexport const createScriptDesc = ScriptColumn.desc;\n/**\n * utility for creating an action description with optional label\n * @param label\n * @returns {{type: string, label: string}}\n */\nexport function createActionDesc(label = 'actions') {\n return {type: 'actions', label: label};\n}\n\n/**\n * a map of all known column types\n */\nexport function models() {\n return {\n number: NumberColumn,\n string: StringColumn,\n link: LinkColumn,\n stack: StackColumn,\n rank: RankColumn,\n boolean: BooleanColumn,\n categorical: CategoricalColumn,\n ordinal: CategoricalNumberColumn,\n actions: DummyColumn,\n annotate: AnnotateColumn,\n selection: SelectionColumn,\n\n max: MaxColumn,\n min: MinColumn,\n mean: MinColumn,\n script: ScriptColumn,\n nested: NestedColumn\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/model.ts\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_5__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"d3\"\n ** module id = 5\n ** module chunks = 0\n **/","/**\r\n * Created by Samuel Gratzl on 14.08.2015.\r\n */\r\n\r\n///\r\nimport d3 = require('d3');\r\n\r\n/**\r\n * create a delayed call, can be called multiple times but only the last one at most delayed by timeToDelay will be executed\r\n * @param callback the callback to call\r\n * @param timeToDelay delay the call in milliseconds\r\n * @param thisCallback this argument of the callback\r\n * @return {function(...[any]): undefined} a function that can be called with the same interface as the callback but delayed\r\n */\r\nexport function delayedCall(callback:(...args:any[]) => void, timeToDelay = 100, thisCallback = this) {\r\n var tm = -1;\r\n return function (...args:any[]) {\r\n if (tm >= 0) {\r\n clearTimeout(tm);\r\n tm = -1;\r\n }\r\n args.unshift(thisCallback === null ? this : thisCallback);\r\n tm = setTimeout(callback.bind.apply(callback, args), timeToDelay);\r\n };\r\n}\r\n\r\n/**\r\n * utility for AEventDispatcher to forward an event\r\n * @param to\r\n * @param event\r\n * @return {function(...[any]): undefined}\r\n */\r\nexport function forwardEvent(to:AEventDispatcher, event?:string) {\r\n return function (...args:any[]) {\r\n args.unshift(event || this.type);\r\n to.fire.apply(to, args);\r\n };\r\n}\r\n\r\n/**\r\n * base class for event dispatching using d3 event mechanism\r\n */\r\nexport class AEventDispatcher {\r\n private listeners:d3.Dispatch;\r\n private forwarder = forwardEvent(this);\r\n\r\n constructor() {\r\n this.listeners = d3.dispatch.apply(d3, this.createEventList());\r\n }\r\n\r\n on(type:string):(...args:any[]) => void;\r\n on(type:string|string[], listener:(...args:any[]) => any):AEventDispatcher;\r\n on(type:string|string[], listener?:(...args:any[]) => any):any {\r\n if (arguments.length > 1) {\r\n if (Array.isArray(type)) {\r\n (type).forEach((d) => this.listeners.on(d, listener));\r\n } else {\r\n this.listeners.on(type, listener);\r\n }\r\n return this;\r\n }\r\n return this.listeners.on(type);\r\n }\r\n\r\n /**\r\n * return the list of events to be able to dispatch\r\n * @return {Array}\r\n */\r\n createEventList():string[] {\r\n return [];\r\n }\r\n\r\n fire(type:string|string[], ...args:any[]) {\r\n var fireImpl = (t) => {\r\n //local context per event, set a this argument\r\n var context = {\r\n source: this, //who is sending this event\r\n type: t, //the event type\r\n args: args //the arguments to the listener\r\n };\r\n this.listeners[t].apply(context, args);\r\n };\r\n if (Array.isArray(type)) {\r\n (type).forEach(fireImpl.bind(this));\r\n } else {\r\n fireImpl(type);\r\n }\r\n }\r\n\r\n /**\r\n * forwards one or more events from a given dispatcher to the current one\r\n * i.e. when one of the given events is fired in 'from' it will be forwared to all my listeners\r\n * @param from the event dispatcher to forward from\r\n * @param types the event types to forward\r\n */\r\n forward(from:AEventDispatcher, ...types:string[]) {\r\n from.on(types, this.forwarder);\r\n }\r\n\r\n /**\r\n * removes the forwarding declarations\r\n * @param from\r\n * @param types\r\n */\r\n unforward(from:AEventDispatcher, ...types:string[]) {\r\n from.on(types, null);\r\n }\r\n}\r\n\r\nconst TYPE_OBJECT = '[object Object]';\r\nconst TYPE_ARRAY = '[object Array]';\r\n\r\n//credits to https://github.com/vladmiller/dextend/blob/master/lib/dextend.js\r\nexport function merge(...args:any[]) {\r\n var result = null;\r\n\r\n for (var i = 0; i < args.length; i++) {\r\n var toMerge = args[i],\r\n keys = Object.keys(toMerge);\r\n\r\n if (result === null) {\r\n result = toMerge;\r\n continue;\r\n }\r\n\r\n for (var j = 0; j < keys.length; j++) {\r\n var keyName = keys[j];\r\n var value = toMerge[keyName];\r\n\r\n //merge just POJOs\r\n if (Object.prototype.toString.call(value) === TYPE_OBJECT && (Object.getPrototypeOf(value) === Object.prototype)) { //pojo\r\n if (result[keyName] === undefined) {\r\n result[keyName] = {};\r\n }\r\n result[keyName] = merge(result[keyName], value);\r\n } else if (Object.prototype.toString.call(value) === TYPE_ARRAY) {\r\n if (result[keyName] === undefined) {\r\n result[keyName] = [];\r\n }\r\n result[keyName] = value.concat(result[keyName]);\r\n } else {\r\n result[keyName] = value;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * computes the absolute offset of the given element\r\n * @param element\r\n * @return {{left: number, top: number, width: number, height: number}}\r\n */\r\nexport function offset(element) {\r\n var obj = element.getBoundingClientRect();\r\n return {\r\n left: obj.left + window.pageXOffset,\r\n top: obj.top + window.pageYOffset,\r\n width: obj.width,\r\n height: obj.height\r\n };\r\n}\r\n\r\n/**\r\n * content scroller utility\r\n *\r\n * a class for efficiently selecting a range of data items that are currently visible according to the scrolled position\r\n */\r\nexport class ContentScroller extends AEventDispatcher {\r\n private options = {\r\n /**\r\n * shift that should be used for calculating the top position\r\n */\r\n topShift: () => 0,\r\n /**\r\n * backup rows, i.e .the number of rows that should also be shown for avoiding to frequent updates\r\n */\r\n backupRows: 5,\r\n /**\r\n * the height of one row in pixel\r\n */\r\n rowHeight: 10\r\n };\r\n\r\n private prevScrollTop = 0;\r\n private shift = 0;\r\n\r\n /**\r\n *\r\n * @param container the container element wrapping the content with a fixed height for enforcing scrolling\r\n * @param content the content element to scroll\r\n * @param options options see attribute\r\n */\r\n constructor(private container:Element, private content:Element, options:any = {}) {\r\n super();\r\n merge(this.options, options);\r\n d3.select(container).on('scroll.scroller', () => this.onScroll());\r\n\r\n //keep the previous state computing whether a redraw is needed\r\n this.prevScrollTop = container.scrollTop;\r\n //total shift to the top\r\n this.shift = offset(content).top - offset(container).top;\r\n }\r\n\r\n /**\r\n * two events are fired:\r\n * * scroll when the user scrolls the container\r\n * * redraw when a redraw of the content must be performed due to scrolling changes. Note due to backup rows\r\n * a scrolling operation might not include a redraw\r\n *\r\n * @returns {string[]}\r\n */\r\n createEventList() {\r\n return super.createEventList().concat(['scroll', 'redraw']);\r\n }\r\n\r\n scrollIntoView(start: number, length: number, index: number, row2y:(i:number) => number) {\r\n const range = this.select(start, length, row2y);\r\n if (range.from <= index && index <= range.to) {\r\n return; //already visible\r\n }\r\n\r\n var top = this.container.scrollTop - this.shift - this.options.topShift(),\r\n bottom = top + this.container.clientHeight,\r\n i = 0, j;\r\n if (top > 0) {\r\n i = Math.round(top / this.options.rowHeight);\r\n //count up till really even partial rows are visible\r\n while (i >= start && row2y(i + 1) > top) {\r\n i--;\r\n }\r\n i -= this.options.backupRows; //one more row as backup for scrolling\r\n }\r\n { //some parts from the bottom aren't visible\r\n j = Math.round(bottom / this.options.rowHeight);\r\n //count down till really even partial rows are visible\r\n while (j <= length && row2y(j - 1) < bottom) {\r\n j++;\r\n }\r\n j += this.options.backupRows; //one more row as backup for scrolling\r\n }\r\n }\r\n\r\n /**\r\n * selects a range identified by start and length and the row2y position callback returning the slice to show according to the current user scrolling position\r\n * @param start start of the range\r\n * @param length length of the range\r\n * @param row2y lookup for computing the y position of a given row\r\n * @returns {{from: number, to: number}} the slide to show\r\n */\r\n select(start:number, length:number, row2y:(i:number) => number) {\r\n var top = this.container.scrollTop - this.shift - this.options.topShift(),\r\n bottom = top + this.container.clientHeight,\r\n i = 0, j;\r\n /*console.log(window.matchMedia('print').matches, window.matchMedia('screen').matches, top, bottom);\r\n if (typeof window.matchMedia === 'function' && window.matchMedia('print').matches) {\r\n console.log('show all');\r\n return [0, data.length];\r\n }*/\r\n if (top > 0) {\r\n i = Math.round(top / this.options.rowHeight);\r\n //count up till really even partial rows are visible\r\n while (i >= start && row2y(i + 1) > top) {\r\n i--;\r\n }\r\n i -= this.options.backupRows; //one more row as backup for scrolling\r\n }\r\n { //some parts from the bottom aren't visible\r\n j = Math.round(bottom / this.options.rowHeight);\r\n //count down till really even partial rows are visible\r\n while (j <= length && row2y(j - 1) < bottom) {\r\n j++;\r\n }\r\n j += this.options.backupRows; //one more row as backup for scrolling\r\n }\r\n return {\r\n from: Math.max(i, start),\r\n to: Math.min(j, length)\r\n };\r\n }\r\n\r\n private onScroll() {\r\n var top = this.container.scrollTop;\r\n var left = this.container.scrollLeft;\r\n //at least one row changed\r\n //console.log(top, left);\r\n this.fire('scroll', top, left);\r\n if (Math.abs(this.prevScrollTop - top) >= this.options.rowHeight * this.options.backupRows) {\r\n //we scrolled out of our backup rows, so we have to redraw the content\r\n this.prevScrollTop = top;\r\n this.fire('redraw');\r\n }\r\n }\r\n\r\n /**\r\n * removes the listeners\r\n */\r\n destroy() {\r\n d3.select(this.container).on('scroll.scroller', null);\r\n }\r\n}\r\n\r\n/**\r\n * checks whether the given DragEvent has one of the given types\r\n */\r\nexport function hasDnDType(e:DragEvent, typesToCheck:string[]) {\r\n var types:any = e.dataTransfer.types;\r\n if (typeof types.indexOf === 'function') {\r\n return typesToCheck.some((type) => types.indexOf(type) >= 0);\r\n }\r\n if (typeof types.includes === 'function') {\r\n return typesToCheck.some((type) => types.includes(type));\r\n }\r\n if (typeof types.contains === 'function') {\r\n return typesToCheck.some((type) => types.contains(type));\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * should it be a copy dnd operation?\r\n */\r\nexport function copyDnD(e:DragEvent) {\r\n var dT = e.dataTransfer;\r\n return (e.ctrlKey && dT.effectAllowed.match(/copy/gi) != null) || (dT.effectAllowed.match(/move/gi) == null);\r\n}\r\n\r\n/**\r\n * updates the drop effect according to the currently selected meta keys\r\n * @param e\r\n */\r\nexport function updateDropEffect(e:DragEvent) {\r\n var dT = e.dataTransfer;\r\n if (copyDnD(e)) {\r\n dT.dropEffect = 'copy';\r\n } else {\r\n dT.dropEffect = 'move';\r\n }\r\n}\r\n\r\n/**\r\n * returns a d3 callable function to make an element dropable, managed the class css 'drag_over' for hovering effects\r\n * @param mimeTypes the mime types to be dropable\r\n * @param onDrop: handler when an element is dropped\r\n */\r\nexport function dropAble(mimeTypes:string[], onDrop:(data:any, d:T, copy:boolean) => boolean) {\r\n return ($node) => {\r\n $node.on('dragenter', function () {\r\n var e = (d3.event);\r\n //var xy = d3.mouse($node.node());\r\n if (hasDnDType(e, mimeTypes)) {\r\n d3.select(this).classed('drag_over', true);\r\n //sounds good\r\n return false;\r\n }\r\n //not a valid mime type\r\n d3.select(this).classed('drag_over', false);\r\n }).on('dragover', function () {\r\n var e = (d3.event);\r\n if (hasDnDType(e, mimeTypes)) {\r\n e.preventDefault();\r\n updateDropEffect(e);\r\n d3.select(this).classed('drag_over', true);\r\n return false;\r\n }\r\n }).on('dragleave', function () {\r\n //\r\n d3.select(this).classed('drag_over', false);\r\n }).on('drop', function (d:T) {\r\n var e = (d3.event);\r\n e.preventDefault();\r\n d3.select(this).classed('drag_over', false);\r\n //var xy = d3.mouse($node.node());\r\n if (hasDnDType(e, mimeTypes)) {\r\n var data:any = {};\r\n //selects the data contained in the data transfer\r\n mimeTypes.forEach((mime) => {\r\n var value = e.dataTransfer.getData(mime);\r\n if (value !== '') {\r\n data[mime] = value;\r\n }\r\n });\r\n return onDrop(data, d, copyDnD(e));\r\n }\r\n });\r\n };\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils.ts\n **/","/**\n * Created by Samuel Gratzl on 14.08.2015.\n */\n\nimport model = require('./model');\nimport utils = require('./utils');\nimport d3 = require('d3');\n\n/**\n * computes the simple statistics of an array using d3 histogram\n * @param arr the data array\n * @param acc accessor function\n * @param range the total value range\n * @returns {{min: number, max: number, count: number, hist: histogram.Bin[]}}\n */\nfunction computeStats(arr:any[], acc:(any) => number, range?:[number, number]):model.IStatistics {\n if (arr.length === 0) {\n return {\n min: NaN,\n max: NaN,\n mean: NaN,\n count: 0,\n maxBin: 0,\n hist: []\n };\n }\n const hist = d3.layout.histogram().value(acc);\n if (range) {\n hist.range(() => range);\n }\n const ex = d3.extent(arr, acc);\n const hist_data = hist(arr);\n return {\n min: ex[0],\n max: ex[1],\n mean: d3.mean(arr, acc),\n count: arr.length,\n maxBin: d3.max(hist_data, (d) => d.y),\n hist: hist_data\n };\n}\n\n/**\n * computes a categorical histogram\n * @param arr the data array\n * @param acc the accessor\n * @param categories the list of known categories\n * @returns {{hist: {cat: string, y: number}[]}}\n */\nfunction computeHist(arr:any[], acc:(any) => string[], categories: string[]):model.ICategoricalStatistics {\n const m = d3.map();\n categories.forEach((cat) => m.set(cat, 0));\n\n arr.forEach((a) => {\n const vs = acc(a);\n if (vs == null) {\n return;\n }\n vs.forEach((v) => {\n m.set(v, (m.get(v) || 0) + 1);\n });\n });\n return {\n maxBin: d3.max(m.values()),\n hist: m.entries().map((entry) => ({ cat: entry.key, y : entry.value}))\n };\n}\n\n\nfunction isSupportType(col: model.IColumnDesc) {\n return ['rank', 'selection', 'actions'].indexOf(col.type) >= 0;\n}\n\nexport interface IExportOptions {\n /**\n * export separator, default: '\\t'\n */\n separator?: string;\n /**\n * new line character, default: '\\n'\n */\n newline?: string;\n /**\n * should a header be generated, default: true\n */\n header?: boolean;\n /**\n * quote strings, default: false\n */\n quote?: boolean;\n /**\n * quote string to use, default: '\"'\n */\n quoteChar?: string;\n /**\n * filter specific column types, default: exclude all support types (selection, action, rank)\n * @param col the column description to filter\n */\n filter?: (col: model.IColumnDesc)=>boolean; //!isSupportType\n}\n\n/**\n * a basic data provider holding the data and rankings\n */\nexport class DataProvider extends utils.AEventDispatcher {\n /**\n * all rankings\n * @type {Array}\n * @private\n */\n private rankings_:model.Ranking[] = [];\n /**\n * the current selected indices\n * @type {Set}\n */\n private selection = d3.set();\n\n private uid = 0;\n\n /**\n * lookup map of a column type to its column implementation\n */\n columnTypes:any = utils.merge({}, model.models());\n\n\n constructor(options : any = {}) {\n super();\n this.columnTypes = utils.merge(model.models(), options.columnTypes || {});\n }\n\n /**\n * events:\n * * column changes: addColumn, removeColumn\n * * ranking changes: addRanking, removeRanking\n * * dirty: dirty, dirtyHeder, dirtyValues\n * * selectionChanged\n * @returns {string[]}\n */\n createEventList() {\n return super.createEventList().concat(['addColumn', 'removeColumn', 'addRanking', 'removeRanking', 'dirty', 'dirtyHeader', 'dirtyValues', 'orderChanged', 'selectionChanged']);\n }\n\n /**\n * returns a list of all known column descriptions\n * @returns {Array}\n */\n getColumns():model.IColumnDesc[] {\n return [];\n }\n\n /**\n * adds a new ranking\n * @param existing an optional existing ranking to clone\n * @return the new ranking\n */\n pushRanking(existing?:model.Ranking) : model.Ranking {\n const r = this.cloneRanking(existing);\n this.insertRanking(r);\n return r;\n }\n\n takeSnapshot(col: model.Column): model.Ranking {\n const r = this.cloneRanking();\n r.push(this.clone(col));\n this.insertRanking(r);\n return r;\n }\n\n insertRanking(r:model.Ranking, index = this.rankings_.length) {\n this.rankings_.splice(index, 0, r);\n this.forward(r, 'addColumn.provider', 'removeColumn.provider', 'dirty.provider', 'dirtyHeader.provider', 'orderChanged.provider', 'dirtyValues.provider');\n const that = this;\n //delayed reordering per ranking\n r.on('dirtyOrder.provider', utils.delayedCall(function () {\n that.triggerReorder(this.source);\n }, 100, null));\n this.fire(['addRanking', 'dirtyHeader', 'dirtyValues', 'dirty'], r, index);\n this.triggerReorder(r);\n }\n\n protected triggerReorder(ranking: model.Ranking) {\n this.sort(ranking).then((order) => ranking.setOrder(order));\n }\n\n /**\n * removes a ranking from this data provider\n * @param ranking\n * @returns {boolean}\n */\n removeRanking(ranking:model.Ranking) {\n const i = this.rankings_.indexOf(ranking);\n if (i < 0) {\n return false;\n }\n this.unforward(ranking, 'addColumn.provider', 'removeColumn.provider', 'dirty.provider', 'dirtyHeader.provider', 'orderChanged.provider', 'dirtyOrder.provider', 'dirtyValues.provider');\n this.rankings_.splice(i, 1);\n ranking.on('dirtyOrder.provider', null);\n this.cleanUpRanking(ranking);\n this.fire(['removeRanking', 'dirtyHeader', 'dirtyValues', 'dirty'], ranking, i);\n return true;\n }\n\n /**\n * removes all rankings\n */\n clearRankings() {\n this.rankings_.forEach((ranking) => {\n this.unforward(ranking, 'addColumn.provider', 'removeColumn.provider', 'dirty.provider', 'dirtyHeader.provider', 'dirtyOrder.provider', 'dirtyValues.provider');\n ranking.on('dirtyOrder.provider', null);\n this.cleanUpRanking(ranking);\n });\n this.rankings_ = [];\n this.fire(['removeRanking', 'dirtyHeader', 'dirtyValues', 'dirty'], null);\n }\n\n /**\n * returns a list of all current rankings\n * @returns {model.Ranking[]}\n */\n getRankings() {\n return this.rankings_.slice();\n }\n\n /**\n * returns the last ranking for quicker access\n * @returns {model.Ranking}\n */\n getLastRanking() {\n return this.rankings_[this.rankings_.length - 1];\n }\n\n /**\n * hook method for cleaning up a ranking\n * @param ranking\n */\n cleanUpRanking(ranking:model.Ranking) {\n //nothing to do\n }\n\n /**\n * abstract method for cloning a ranking\n * @param existing\n * @returns {null}\n */\n cloneRanking(existing?:model.Ranking): model.Ranking {\n return null; //implement me\n }\n\n /**\n * adds a column to a ranking described by its column description\n * @param ranking the ranking to add the column to\n * @param desc the description of the column\n * @return {model.Column} the newly created column or null\n */\n push(ranking:model.Ranking, desc:model.IColumnDesc):model.Column {\n const r = this.create(desc);\n if (r) {\n ranking.push(r);\n return r;\n }\n return null;\n }\n\n /**\n * adds a column to a ranking described by its column description\n * @param ranking the ranking to add the column to\n * @param index the position to insert the column\n * @param desc the description of the column\n * @return {model.Column} the newly created column or null\n */\n insert(ranking:model.Ranking, index:number, desc:model.IColumnDesc) {\n const r = this.create(desc);\n if (r) {\n ranking.insert(r, index);\n return r;\n }\n return null;\n }\n\n /**\n * creates a new unique id for a column\n * @returns {string}\n */\n private nextId() {\n return 'col' + (this.uid++);\n }\n\n protected rankAccessor(row: any, id: string, desc: model.IColumnDesc, ranking: model.Ranking) {\n return 0;\n }\n\n private fixDesc(desc: model.IColumnDesc) {\n //hacks for provider dependent descriptors\n if (desc.type === 'rank') {\n (desc).accessor = this.rankAccessor.bind(this);\n } else if (desc.type === 'selection') {\n (desc).accessor = (row: any) => this.isSelected(row._index);\n (desc).setter = (row: any, value: boolean) => value ? this.select(row._index) : this.deselect(row._index);\n }\n }\n /**\n * creates an internal column model out of the given column description\n * @param desc\n * @returns {model.Column] the new column or null if it can't be created\n */\n create(desc:model.IColumnDesc):model.Column {\n this.fixDesc(desc);\n //find by type and instantiate\n const type = this.columnTypes[desc.type];\n if (type) {\n return new type(this.nextId(), desc);\n }\n return null;\n }\n\n /**\n * clones a column by dumping and restoring\n * @param col\n * @returns {model.Column}\n */\n clone(col:model.Column) {\n const dump = this.dumpColumn(col);\n return this.restoreColumn(dump);\n }\n\n /**\n * restores a column from a dump\n * @param dump\n * @returns {model.Column}\n */\n restoreColumn(dump:any):model.Column {\n const create = (d:any) => {\n const desc = this.fromDescRef(d.desc);\n var type = this.columnTypes[desc.type];\n this.fixDesc(desc);\n var c = new type('', desc);\n c.restore(d, create);\n c.assignNewId(this.nextId.bind(this));\n return c;\n };\n return create(dump);\n }\n\n /**\n * finds a column in all rankings returning the first match\n * @param id_or_filter by id or by a filter function\n * @returns {model.Column}\n */\n find(id_or_filter:(col:model.Column) => boolean | string):model.Column {\n //convert to function\n const filter = typeof(id_or_filter) === 'string' ? (col) => col.id === id_or_filter : id_or_filter;\n\n for (let i = 0; i < this.rankings_.length; ++i) {\n let r = this.rankings_[i].find(filter);\n if (r) {\n return r;\n }\n }\n return null;\n }\n\n\n /**\n * dumps this whole provider including selection and the rankings\n * @returns {{uid: number, selection: number[], rankings: *[]}}\n */\n dump():any {\n return {\n uid: this.uid,\n selection: this.selection.values().map(Number),\n rankings: this.rankings_.map((r) => r.dump(this.toDescRef))\n };\n }\n\n /**\n * dumps a specific column\n * @param col\n * @returns {any}\n */\n dumpColumn(col:model.Column) {\n return col.dump(this.toDescRef);\n }\n\n /**\n * for better dumping describe reference, by default just return the description\n * @param desc\n * @returns {any}\n */\n toDescRef(desc:any):any {\n return desc;\n }\n\n /**\n * inverse operation of toDescRef\n * @param descRef\n * @returns {any}\n */\n fromDescRef(descRef:any):any {\n return descRef;\n }\n\n private createHelper = (d:any) => {\n //factory method for restoring a column\n const desc = this.fromDescRef(d.desc);\n var c = null;\n if (desc && desc.type) {\n this.fixDesc(d.desc);\n let type = this.columnTypes[desc.type];\n c = new type(d.id, desc);\n c.restore(d, this.createHelper);\n }\n return c;\n };\n\n restoreRanking(dump: any) {\n const ranking = this.cloneRanking();\n ranking.restore(dump, this.createHelper);\n //if no rank column add one\n if (!ranking.children.some((d) => d instanceof model.RankColumn)) {\n ranking.insert(this.create(model.RankColumn.desc()), 0);\n }\n const idGenerator = this.nextId.bind(this);\n ranking.children.forEach((c) => c.assignNewId(idGenerator));\n\n return ranking;\n }\n\n restore(dump:any) {\n\n\n //clean old\n this.clearRankings();\n\n //restore selection\n this.uid = dump.uid || 0;\n if (dump.selection) {\n dump.selection.forEach((s) => this.selection.add(String(s)));\n }\n\n\n //restore rankings\n if (dump.rankings) {\n dump.rankings.forEach((r) => {\n var ranking = this.cloneRanking();\n ranking.restore(r, this.createHelper);\n //if no rank column add one\n if (!ranking.children.some((d) => d instanceof model.RankColumn)) {\n ranking.insert(this.create(model.RankColumn.desc()), 0);\n }\n this.insertRanking(ranking);\n });\n }\n if (dump.layout) { //we have the old format try to create it\n Object.keys(dump.layout).forEach((key) => {\n this.deriveRanking(dump.layout[key]);\n });\n }\n //assign new ids\n const idGenerator = this.nextId.bind(this);\n this.rankings_.forEach((r) => {\n r.children.forEach((c) => c.assignNewId(idGenerator));\n });\n }\n\n findDesc(ref:string) {\n return null;\n }\n\n /**\n * generates a default ranking by using all column descriptions ones\n */\n deriveDefault() {\n if (this.rankings_.length > 0) {\n //no default if we have a ranking\n return;\n }\n const r = this.pushRanking();\n this.getColumns().forEach((col) => {\n if (!isSupportType(col)) {\n this.push(r, col);\n }\n });\n }\n\n /**\n * derives a ranking from an old layout bundle format\n * @param bundle\n */\n private deriveRanking(bundle:any[]) {\n const ranking = this.cloneRanking();\n ranking.clear();\n const toCol = (column) => {\n if (column.type === 'rank') {\n return this.create(model.createRankDesc());\n }\n if (column.type === 'selection') {\n return this.create(model.createSelectionDesc());\n }\n if (column.type === 'actions') {\n let r = this.create(model.createActionDesc(column.label || 'actions'));\n r.restore(column, null);\n return r;\n }\n if (column.type === 'stacked') {\n //create a stacked one\n let r = this.create(model.createStackDesc(column.label || 'Combined'));\n (column.children || []).forEach((col) => {\n let c = toCol(col);\n if (c) {\n r.push(c);\n }\n });\n return r;\n } else {\n let desc = this.findDesc(column.column);\n if (desc) {\n let r = this.create(desc);\n column.label = column.label || desc.label || desc.column;\n r.restore(column, null);\n return r;\n }\n }\n return null;\n };\n bundle.forEach((column) => {\n const col = toCol(column);\n if (col) {\n ranking.push(col);\n }\n });\n //if no rank column add one\n if (!ranking.children.some((d) => d instanceof model.RankColumn)) {\n ranking.insert(this.create(model.createRankDesc()), 0);\n }\n this.insertRanking(ranking);\n return ranking;\n }\n\n /**\n * sorts the given ranking and eventually return a ordering of the data items\n * @param ranking\n * @return {Promise}\n */\n sort(ranking:model.Ranking):Promise {\n return Promise.reject('not implemented');\n }\n\n /**\n * returns a view in the order of the given indices\n * @param indices\n * @return {Promise}\n */\n view(indices:number[]):Promise {\n return Promise.reject('not implemented');\n }\n\n /**\n * returns a data sample used for the mapping editor\n * @param col\n * @return {Promise}\n */\n mappingSample(col:model.Column):Promise {\n return Promise.reject('not implemented');\n }\n\n /**\n * helper for computing statistics\n * @param indices\n * @returns {{stats: (function(model.INumberColumn): *), hist: (function(model.ICategoricalColumn): *)}}\n */\n stats(indices:number[]) {\n return {\n stats: (col:model.INumberColumn) => Promise.reject('not implemented'),\n hist: (col:model.ICategoricalColumn) => Promise.reject('not implemented')\n };\n }\n\n /**\n * method for computing the unique key of a row\n * @param row\n * @param i\n * @return {string}\n */\n rowKey(row:any, i:number) {\n return typeof(row) === 'number' ? String(row) : String(row._index);\n }\n\n\n /**\n * is the given row selected\n * @param index\n * @return {boolean}\n */\n isSelected(index:number) {\n return this.selection.has(String(index));\n }\n\n /**\n * also select the given row\n * @param index\n */\n select(index:number) {\n this.selection.add(String(index));\n this.fire('selectionChanged', this.selection.values().map(Number));\n }\n\n /**\n * hook for selecting elements matching the given arguments\n * @param search\n * @param col\n */\n searchSelect(search:string|RegExp, col:model.Column) {\n //implemented by custom provider\n }\n\n /**\n * also select all the given rows\n * @param indices\n * @param jumpToSelection whether the first selected row should be visible\n */\n selectAll(indices:number[], jumpToSelection = false) {\n indices.forEach((index) => {\n this.selection.add(String(index));\n });\n this.fire('selectionChanged', this.selection.values().map(Number), jumpToSelection);\n }\n\n /**\n * set the selection to the given rows\n * @param indices\n * @param jumpToSelection whether the first selected row should be visible\n */\n setSelection(indices:number[], jumpToSelection = false) {\n if (this.selection.size() === indices.length && indices.every((i) => this.selection.has(String(i)))) {\n return; //no change\n }\n this.selection = d3.set();\n this.selectAll(indices, jumpToSelection);\n }\n\n /**\n * toggles the selection of the given data index\n * @param index\n * @param additional just this element or all\n * @returns {boolean} whether the index is currently selected\n */\n toggleSelection(index:number, additional = false) {\n if (this.isSelected(index)) {\n if (additional) {\n this.deselect(index);\n } else {\n this.clearSelection();\n }\n return false;\n } else {\n if (additional) {\n this.select(index);\n } else {\n this.setSelection([index]);\n }\n return true;\n }\n }\n /**\n * deselect the given row\n * @param index\n */\n deselect(index:number) {\n this.selection.remove(String(index));\n this.fire('selectionChanged', this.selection.values().map(Number));\n }\n\n /**\n * returns a promise containing the selected rows\n * @return {Promise}\n */\n selectedRows() {\n if (this.selection.empty()) {\n return Promise.resolve([]);\n }\n return this.view(this.getSelection());\n }\n\n /**\n * returns the currently selected indices\n * @returns {Array}\n */\n getSelection() {\n var indices = [];\n this.selection.forEach((s) => indices.push(+s));\n indices.sort();\n return indices;\n }\n\n /**\n * clears the selection\n */\n clearSelection() {\n this.selection = d3.set();\n this.fire('selectionChanged', [], false);\n }\n\n /**\n * utility to export a ranking to a table with the given separator\n * @param ranking\n * @param options\n * @returns {Promise}\n */\n exportTable(ranking: model.Ranking, options : IExportOptions = {}) {\n const op: IExportOptions = {\n separator : '\\t',\n newline: '\\n',\n header: true,\n quote: false,\n quoteChar: '\"',\n filter: (c) => !isSupportType(c)\n };\n options = utils.merge(op, options);\n //optionally quote not numbers\n function quote(l: string, c?: model.Column) {\n if (op.quote && (!c || !model.isNumberColumn(c))) {\n return op.quoteChar + l + op.quoteChar;\n }\n return l;\n }\n const columns = ranking.flatColumns.filter((c) => op.filter(c.desc));\n return this.view(ranking.getOrder()).then((data) => {\n var r = [];\n if (op.header) {\n r.push(columns.map((d) => quote(d.label)).join(op.separator));\n }\n data.forEach((row) => {\n r.push(columns.map((c) => quote(c.getLabel(row),c)).join(op.separator));\n });\n return r.join(op.newline);\n });\n }\n\n}\n\n/**\n * common base implementation of a DataProvider with a fixed list of column descriptions\n */\nexport class CommonDataProvider extends DataProvider {\n private rankingIndex = 0;\n //generic accessor of the data item\n private rowGetter = (row:any, id:string, desc:any) => row[desc.column];\n\n constructor(private columns:model.IColumnDesc[] = [], options :any = {}) {\n super(options);\n //generate the accessor\n columns.forEach((d:any) => {\n d.accessor = d.accessor || this.rowGetter;\n d.label = d.label || d.column;\n });\n }\n\n createEventList() {\n return super.createEventList().concat(['addDesc']);\n }\n\n /**\n * adds another column description to this data provider\n * @param column\n */\n pushDesc(column:model.IColumnDesc) {\n var d:any = column;\n d.accessor = d.accessor || this.rowGetter;\n d.label = column.label || d.column;\n this.columns.push(column);\n this.fire('addDesc', d);\n }\n\n getColumns():model.IColumnDesc[] {\n return this.columns.slice();\n }\n\n findDesc(ref:string) {\n return this.columns.filter((c) => (c).column === ref)[0];\n }\n\n /**\n * identify by the tuple type@columnname\n * @param desc\n * @returns {string}\n */\n toDescRef(desc:any):any {\n return desc.column ? desc.type + '@' + desc.column : desc;\n }\n\n fromDescRef(descRef:any):any {\n if (typeof(descRef) === 'string') {\n return this.columns.filter((d:any) => d.type + '@' + d.column === descRef) [0];\n }\n return descRef;\n }\n\n restore(dump:any) {\n super.restore(dump);\n this.rankingIndex = 1 + d3.max(this.getRankings(), (r) => +r.id.substring(4));\n }\n\n nextRankingId() {\n return 'rank' + (this.rankingIndex++);\n }\n}\n/**\n * a data provider based on an local array\n */\nexport class LocalDataProvider extends CommonDataProvider {\n private options = {\n /**\n * whether the filter should be applied to all rankings regardless where they are\n */\n filterGlobally: false,\n\n /**\n * jump to search results such that they are visible\n */\n jumpToSearchResult: true\n };\n\n private reorderall;\n\n constructor(public data:any[], columns:model.IColumnDesc[] = [], options = {}) {\n super(columns, options);\n utils.merge(this.options, options);\n //enhance with a magic attribute storing ranking information\n data.forEach((d, i) => {\n d._rankings = {};\n d._index = i;\n });\n\n const that = this;\n this.reorderall = function() {\n //fire for all other rankings a dirty order event, too\n var ranking = this.source;\n that.getRankings().forEach((r) => {\n if (r !== ranking) {\n r.dirtyOrder();\n }\n });\n };\n }\n\n /**\n * replaces the dataset rows with a new one\n * @param data\n */\n setData(data: any[]) {\n data.forEach((d, i) => {\n d._rankings = {};\n d._index = i;\n });\n\n this.data = data;\n this.reorderall();\n }\n\n clearData() {\n this.setData([]);\n }\n\n /**\n * append rows to the dataset\n * @param data\n */\n appendData(data: any[]) {\n const l = this.data.length;\n data.forEach((d, i) => {\n d._rankings = {};\n d._index = l+i;\n });\n this.data.push.apply(this.data, data);\n this.reorderall();\n }\n\n protected rankAccessor(row: any, id: string, desc: model.IColumnDesc, ranking: model.Ranking) {\n return (row._rankings[ranking.id] + 1) || 1;\n }\n\n cloneRanking(existing?:model.Ranking) {\n const id = this.nextRankingId();\n\n const new_ = new model.Ranking(id);\n\n if (existing) { //copy the ranking of the other one\n this.data.forEach((row) => {\n let r = row._rankings;\n r[id] = r[existing.id];\n });\n //TODO better cloning\n existing.children.forEach((child) => {\n this.push(new_, child.desc);\n });\n } else {\n new_.push(this.create(model.createRankDesc()));\n }\n\n if (this.options.filterGlobally) {\n new_.on('filterChanged.reorderall', this.reorderall);\n }\n\n return new_;\n }\n\n cleanUpRanking(ranking:model.Ranking) {\n if (this.options.filterGlobally) {\n ranking.on('filterChanged.reorderall', null);\n }\n //delete all stored information\n this.data.forEach((d) => delete d._rankings[ranking.id]);\n }\n\n sort(ranking:model.Ranking):Promise {\n if (this.data.length === 0) {\n return Promise.resolve([]);\n }\n //wrap in a helper and store the initial index\n var helper = this.data.map((r, i) => ({row: r, i: i, prev: r._rankings[ranking.id] || 0}));\n\n //do the optional filtering step\n if (this.options.filterGlobally) {\n let filtered = this.getRankings().filter((d) => d.isFiltered());\n if (filtered.length > 0) {\n helper = helper.filter((d) => filtered.every((f) => f.filter(d.row)));\n }\n } else if (ranking.isFiltered()) {\n helper = helper.filter((d) => ranking.filter(d.row));\n }\n\n //sort by the ranking column\n helper.sort((a, b) => ranking.comparator(a.row, b.row));\n\n //store the ranking index and create an argsort version, i.e. rank 0 -> index i\n var argsort = helper.map((r, i) => {\n r.row._rankings[ranking.id] = i;\n return r.i;\n });\n\n return Promise.resolve(argsort);\n }\n\n view(indices:number[]) {\n if (this.data.length === 0) {\n return Promise.resolve([]);\n }\n //filter invalid indices\n const l = this.data.length;\n var slice = indices.filter((i) => i>=0 && i this.data[index]);\n\n return Promise.resolve(slice);\n }\n\n /**\n * helper for computing statistics\n * @param indices\n * @returns {{stats: (function(model.INumberColumn): *), hist: (function(model.ICategoricalColumn): *)}}\n */\n stats(indices:number[]) {\n var d:Promise = null;\n const getD= () => d === null ? (d = this.view(indices)) : d;\n\n return {\n stats: (col:model.INumberColumn) => getD().then((data) => computeStats(data, col.getNumber.bind(col), [0, 1])),\n hist: (col:model.ICategoricalColumn) => getD().then((data) => computeHist(data, col.getCategories.bind(col), col.categories))\n };\n }\n\n\n mappingSample(col:model.NumberColumn):Promise {\n const MAX_SAMPLE = 500; //at most 500 sample lines\n const l = this.data.length;\n if (l <= MAX_SAMPLE) {\n return Promise.resolve(this.data.map(col.getRawValue.bind(col)));\n }\n //randomly select 500 elements\n var indices = [];\n for(let i = 0; i < MAX_SAMPLE; ++i) {\n let j = Math.floor(Math.random()*(l-1));\n while (indices.indexOf(j) >= 0) {\n j = Math.floor(Math.random()*(l-1));\n }\n indices.push(j);\n }\n return Promise.resolve(indices.map((i) => col.getRawValue(this.data[i])));\n }\n\n searchSelect(search:string|RegExp, col:model.Column) {\n //case insensitive search\n search = typeof search === 'string' ? search.toLowerCase() : search;\n const f = typeof search === 'string' ? (v:string) => v.toLowerCase().indexOf((search)) >= 0 : (search).test.bind(search);\n const indices = this.data.filter((row) => {\n return f(col.getLabel(row));\n }).map((row) => row._index);\n this.setSelection(indices, this.options.jumpToSearchResult);\n }\n\n}\n\n/**\n * interface what the server side has to provide\n */\nexport interface IServerData {\n /**\n * sort the dataset by the given description\n * @param desc\n */\n sort(desc:any) : Promise;\n /**\n * returns a slice of the data array identified by a list of indices\n * @param indices\n */\n view(indices:number[]): Promise;\n /**\n * returns a sample of the values for a given column\n * @param column\n */\n mappingSample(column:any) : Promise;\n /**\n * return the matching indices matching the given arguments\n * @param search\n * @param column\n */\n search(search:string|RegExp, column:any): Promise;\n}\n\n/**\n * a remote implementation of the data provider\n */\nexport class RemoteDataProvider extends CommonDataProvider {\n\n /**\n * the local ranking orders\n * @type {{}}\n */\n private ranks:any = {};\n\n constructor(private server:IServerData, columns:model.IColumnDesc[] = [], options :any = {}) {\n super(columns, options);\n }\n\n protected rankAccessor(row: any, id: string, desc: model.IColumnDesc, ranking: model.Ranking) {\n return this.ranks[ranking.id][row._index] || 0;\n }\n\n cloneRanking(existing?:model.Ranking) {\n var id = this.nextRankingId();\n if (existing) { //copy the ranking of the other one\n //copy the ranking\n this.ranks[id] = this.ranks[existing.id];\n }\n var r = new model.Ranking(id);\n r.push(this.create(model.createRankDesc()));\n\n return r;\n }\n\n cleanUpRanking(ranking:model.Ranking) {\n //delete all stored information\n delete this.ranks[ranking.id];\n }\n\n sort(ranking:model.Ranking):Promise {\n //generate a description of what to sort\n var desc = ranking.toSortingDesc((desc) => desc.column);\n //use the server side to sort\n return this.server.sort(desc).then((argsort) => {\n //store the result\n this.ranks[ranking.id] = argsort;\n return argsort;\n });\n }\n\n view(argsort:number[]) {\n return this.server.view(argsort).then((view) => {\n //enhance with the data index\n view.forEach((d, i) => d._index = argsort[i]);\n return view;\n });\n }\n\n mappingSample(col:model.Column):Promise {\n return this.server.mappingSample((col.desc).column);\n }\n\n searchSelect(search:string|RegExp, col:model.Column) {\n this.server.search(search, (col.desc).column).then((indices) => {\n this.setSelection(indices);\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/provider.ts\n **/","/**\n * Created by Samuel Gratzl on 14.08.2015.\n */\n\nimport model = require('./model');\n\n/**\n * context for rendering, wrapped as an object for easy extensibility\n */\nexport interface IRenderContext {\n /**\n * the y position of the cell\n * @param index\n */\n cellY(index:number):number;\n\n /**\n * the previous y position of the cell\n * @param index\n */\n cellPrevY(index:number):number;\n /**\n * the x position of the cell\n * @param index\n */\n cellX(index:number):number;\n /**\n * the height of a row\n * @param index\n */\n rowHeight(index:number):number;\n /**\n * a key function for uniquely identifying a data row\n * @param d\n * @param i\n */\n rowKey(d:any, i:number):string;\n\n /**\n * factory function for resolving the renderer for a given column\n * @param col\n */\n renderer(col:model.Column):ICellRenderer;\n\n /**\n * render a column\n * @param col\n */\n render(col:model.Column, $this:d3.Selection, data:any[], context?:IRenderContext);\n renderCanvas(col:model.Column, ctx: CanvasRenderingContext2D, data:any[], context?:IRenderContext);\n\n /**\n * internal option flags\n * @param col\n */\n showStacked(col:model.Column):boolean;\n\n /**\n * prefix used for all generated id names\n */\n idPrefix:string;\n\n /**\n * wrapper for a d3 selection making it (optinally) to an animated transition\n * @param $sel\n */\n animated($sel:d3.Selection):any;\n\n /**\n * lookup custom options by key\n * @param key key to lookup\n * @param default_ default value\n */\n option(key:string, default_:T):T;\n\n /**\n * whether to show the mean line for a given column\n * @param col\n */\n showMeanLine(col:model.Column):boolean;\n}\n\n/**\n * a cell renderer for rendering a cell of specific column\n */\nexport interface ICellRenderer {\n /**\n * render a whole column at once\n * @param $col the column container\n * @param col the column to render\n * @param rows the data rows\n * @param context render context\n */\n render($col:d3.Selection, col:model.Column, rows:any[], context:IRenderContext);\n /**\n * show the values and other information for the selected row\n * @param $col the column\n * @param $row the corresponding row container in which tooltips should be stored\n * @param col the column to render\n * @param row the row to show\n * @param index the index of the row in the column\n * @param context render context\n */\n mouseEnter($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext);\n /**\n * hide the values and other information for the selected row\n * @param $col the column\n * @param $row the corresponding row container in which tooltips should be stored\n * @param col the column to render\n * @param row the row to show\n * @param index the index of the row in the column\n * @param context render context\n */\n mouseLeave($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext);\n}\n\n/**\n * default renderer instance rendering the value as a text\n */\nexport class DefaultCellRenderer implements ICellRenderer {\n /**\n * class to append to the text elements\n * @type {string}\n */\n textClass = 'text';\n /**\n * the text alignment: left, center, right\n * @type {string}\n */\n align:string = 'left';\n\n render($col:d3.Selection, col:model.Column, rows:any[], context:IRenderContext) {\n var $rows = $col.datum(col).selectAll('text.' + this.textClass).data(rows, context.rowKey);\n\n $rows.enter().append('text').attr({\n 'class': this.textClass,\n 'clip-path': 'url(#' + context.idPrefix + 'clipCol' + col.id + ')',\n y: (d, i) => context.cellPrevY(i)\n });\n\n var alignmentShift = 2;\n if (this.align === 'right') {\n alignmentShift = col.getWidth() - 5;\n } else if (this.align === 'center') {\n alignmentShift = col.getWidth() * 0.5;\n }\n\n $rows.attr({\n x: (d, i) => context.cellX(i) + alignmentShift,\n 'data-index': (d, i) => i\n }).text((d) => col.getLabel(d));\n\n context.animated($rows).attr({\n y: (d, i) => context.cellY(i)\n });\n\n $rows.exit().remove();\n }\n\n /**\n * resolves the cell in the column for a given row\n * @param $col\n * @param index\n * @return {Selection}\n */\n findRow($col:d3.Selection, index:number) {\n return $col.selectAll('text.' + this.textClass + '[data-index=\"' + index + '\"]');\n }\n\n mouseEnter($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext) {\n var rowNode = $row.node();\n //find the right one and\n var n = this.findRow($col, index).node();\n if (n) { //idea since it is just a text move the dom element from the column to the row\n rowNode.appendChild(n);\n }\n }\n\n mouseLeave($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext) {\n var colNode = $col.node();\n var rowNode = $row.node();\n //move back\n if (rowNode.hasChildNodes()&& colNode) {\n colNode.appendChild(rowNode.firstChild);\n }\n $row.selectAll('*').remove();\n }\n\n renderCanvas(ctx:CanvasRenderingContext2D, col:model.Column, rows:any[], context:IRenderContext) {\n ctx.save();\n ctx.textAlign = this.align;\n rows.forEach((row, i) => {\n const y = context.cellY(i);\n var alignmentShift = 2;\n if (this.align === 'right') {\n alignmentShift = col.getWidth() - 5;\n } else if (this.align === 'center') {\n alignmentShift = col.getWidth() * 0.5;\n }\n const x = context.cellX(i) + alignmentShift;\n ctx.fillText(col.getLabel(row), x, y, col.getWidth());\n });\n ctx.restore();\n }\n\n mouseEnterCanvas(ctx:CanvasRenderingContext2D, col:model.Column, row:any, index:number, context:IRenderContext) {\n //TODO\n }\n}\n\n/**\n * simple derived one where individual elements can be overridden\n */\nclass DerivedCellRenderer extends DefaultCellRenderer {\n constructor(extraFuncs:any) {\n super();\n //integrate all the extra functions\n Object.keys(extraFuncs).forEach((key) => {\n this[key] = extraFuncs[key];\n });\n }\n}\n\n/**\n * a renderer rendering a bar for numerical columns\n */\nexport class BarCellRenderer extends DefaultCellRenderer {\n /**\n * flag to always render the value\n * @type {boolean}\n */\n protected renderValue = false;\n\n render($col:d3.Selection, col:model.NumberColumn, rows:any[], context:IRenderContext) {\n const renderValue = this.renderValue || context.option('renderBarValue', false);\n //map to bars\n var $rows = $col.datum(col).selectAll('.bar').data(rows, context.rowKey);\n\n const padding = context.option('rowPadding', 1);\n const renderBars = ($enter: d3.selection.Enter, clazz: string, $update: d3.selection.Update) => {\n $enter.append('rect').attr({\n 'class': clazz,\n x: (d, i) => context.cellX(i),\n y: (d, i) => context.cellPrevY(i) + padding,\n width: (d) => {\n var n = col.getWidth() * col.getValue(d);\n return isNaN(n) ? 0 : n;\n }\n }).style('fill', col.color);\n\n $update.attr({\n height: (d, i) => context.rowHeight(i) - context.option('rowPadding', 1) * 2\n });\n\n context.animated($update).attr({\n x: (d, i) => context.cellX(i),\n y: (d, i) => context.cellY(i) + context.option('rowPadding', 1),\n width: (d) => {\n var n = col.getWidth() * col.getValue(d);\n return isNaN(n) ? 0 : n;\n }\n }).style({\n fill: (d, i) => this.colorOf(d, i, col)\n });\n };\n\n if (renderValue) {\n let $rows_enter = $rows.enter().append('g').attr('class', 'bar '+this.textClass);\n renderBars($rows_enter, col.cssClass, $rows.select('rect'));\n $rows_enter.append('text').attr({\n 'class': 'number',\n 'clip-path': 'url(#' + context.idPrefix + 'clipCol' + col.id + ')'\n });\n\n context.animated($rows.select('text').text((d) => col.getLabel(d)))\n .attr('transform', (d,i) => 'translate(' + context.cellX(i) + ',' + context.cellY(i) + ')');\n } else {\n renderBars($rows.enter(), 'bar ' + col.cssClass, $rows);\n }\n\n $rows.attr({\n 'data-index': (d, i) => i,\n });\n\n $rows.exit().remove();\n }\n\n /**\n * computes the color for a given row\n * @param d the current row\n * @param i the row index\n * @param col the model column\n * @returns {string}\n */\n colorOf(d:any, i:number, col:model.Column) {\n return col.color;\n }\n\n findRow($col:d3.Selection, index:number) {\n return $col.selectAll('.bar[data-index=\"' + index + '\"]');\n }\n\n mouseEnter($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext) {\n const renderValue = this.renderValue || context.option('renderBarValue', false);\n if (renderValue) { //default behavior move everything\n return super.mouseEnter($col, $row, col, row, index, context);\n }\n var rowNode = this.findRow($col, index);\n if (!rowNode.empty()) {\n //create a text element on top\n ($row.node()).appendChild((rowNode.node()));\n $row.append('text').datum(rowNode.datum()).attr({\n 'class': 'number',\n 'clip-path': 'url(#' + context.idPrefix + 'clipCol' + col.id + ')',\n transform: 'translate(' + context.cellX(index) + ',' + context.cellY(index) + ')'\n }).text((d) => col.getLabel(d));\n }\n }\n\n renderCanvas(ctx:CanvasRenderingContext2D, col:model.NumberColumn, rows:any[], context:IRenderContext) {\n const renderValue = this.renderValue || context.option('renderBarValue', false);\n const padding =context.option('rowPadding', 1);\n ctx.save();\n rows.forEach((d, i) => {\n const x = context.cellX(i);\n const y = context.cellY(i) + padding;\n const n = col.getWidth() * col.getValue(d);\n const w = isNaN(n) ? 0 : n;\n const h = context.rowHeight(i) - padding * 2;\n ctx.fillStyle = this.colorOf(d, i, col) || col.color || model.Column.DEFAULT_COLOR;\n ctx.fillRect(x, y, w, h);\n\n if (renderValue) {\n ctx.fillText(col.getLabel(d), x, y - padding, col.getWidth());\n }\n });\n ctx.restore();\n }\n\n mouseEnterCanvas(ctx:CanvasRenderingContext2D, col:model.Column, row:any, index:number, context:IRenderContext) {\n const renderValue = this.renderValue || context.option('renderBarValue', false);\n if (renderValue) { //everything already rendered\n return;\n }\n ctx.save();\n ctx.fillText(col.getLabel(row), context.cellX(index), context.cellY(index), col.getWidth());\n ctx.restore();\n }\n}\n\n/**\n * render as a heatmap cell, e.g., encode the value in color\n */\nexport class HeatMapCellRenderer extends DefaultCellRenderer {\n\n render($col:d3.Selection, col:model.NumberColumn, rows:any[], context:IRenderContext) {\n var $rows = $col.datum(col).selectAll('rect.heatmap').data(rows, context.rowKey);\n\n $rows.enter().append('rect').attr({\n 'class': 'bar ' + col.cssClass,\n x: (d, i) => context.cellX(i),\n y: (d, i) => context.cellPrevY(i) + context.option('rowPadding', 1),\n width: (d, i) => context.rowHeight(i) - context.option('rowPadding', 1) * 2\n }).style('fill', col.color);\n\n $rows.attr({\n 'data-index': (d, i) => i,\n width: (d, i) => context.rowHeight(i) - context.option('rowPadding', 1) * 2,\n height: (d, i) => context.rowHeight(i) - context.option('rowPadding', 1) * 2\n });\n\n context.animated($rows).attr({\n x: (d, i) => context.cellX(i),\n y: (d, i) => context.cellY(i) + context.option('rowPadding', 1)\n }).style({\n fill: (d, i) => this.colorOf(d, i, col)\n });\n $rows.exit().remove();\n }\n\n /**\n * computes the color of the cell\n * @param d the row\n * @param i the data index\n * @param col the column\n * @returns {string} the computed color\n */\n colorOf(d:any, i:number, col:model.Column) {\n var v = col.getValue(d);\n if (isNaN(v)) {\n v = 0;\n }\n //hsl space encoding, encode in lightness\n var color = d3.hsl(col.color || model.Column.DEFAULT_COLOR);\n color.l = v;\n return color.toString();\n }\n\n findRow($col:d3.Selection, index:number) {\n return $col.selectAll('rect.heatmap[data-index=\"' + index + '\"]');\n }\n\n mouseEnter($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext) {\n var rowNode = this.findRow($col, index);\n if (!rowNode.empty()) {\n //append a text element on top\n ($row.node()).appendChild((rowNode.node()));\n $row.append('text').datum(rowNode.datum()).attr({\n 'class': 'number',\n 'clip-path': 'url(#' + context.idPrefix + 'clipCol' + col.id + ')',\n transform: 'translate(' + context.cellX(index) + ',' + context.cellY(index) + ')'\n }).text((d) => col.getLabel(d));\n }\n }\n\n renderCanvas(ctx:CanvasRenderingContext2D, col:model.NumberColumn, rows:any[], context:IRenderContext) {\n ctx.save();\n rows.forEach((d, i) => {\n const x = context.cellX(i);\n const y = context.cellY(i) + context.option('rowPadding', 1);\n const h = context.rowHeight(i) - context.option('rowPadding', 1) * 2;\n ctx.fillStyle = this.colorOf(d, i, col);\n ctx.fillRect(x, y, h, h);\n });\n ctx.restore();\n }\n\n mouseEnterCanvas(ctx:CanvasRenderingContext2D, col:model.Column, row:any, index:number, context:IRenderContext) {\n ctx.save();\n ctx.fillText(col.getLabel(row), context.cellX(index), context.cellY(index), col.getWidth());\n ctx.restore();\n }\n}\n\n/**\n * a bar cell renderer where individual function can be overwritten\n */\nclass DerivedBarCellRenderer extends BarCellRenderer {\n constructor(extraFuncs:any) {\n super();\n Object.keys(extraFuncs).forEach((key) => {\n this[key] = extraFuncs[key];\n });\n }\n}\n\n/**\n * an rendering for action columns, i.e., clickable column actions\n */\nexport class ActionCellRenderer implements ICellRenderer {\n render($col:d3.Selection, col:model.Column, rows:any[], context:IRenderContext) {\n //nothing to render in normal mode\n }\n\n mouseEnter($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext) {\n //render all actions at tspans\n var actions = context.option('actions', []);\n var $actions = $row.append('text').attr({\n 'class': 'actions fa',\n x: context.cellX(index),\n y: context.cellPrevY(index),\n 'data-index': index\n }).selectAll('tspan').data(actions);\n $actions.enter().append('tspan')\n .text((d) => d.icon)\n .attr('title', (d) => d.name)\n .on('click', (d) => {\n d3.event.preventDefault();\n d3.event.stopPropagation();\n d.action(row);\n });\n }\n\n mouseLeave($col:d3.Selection, $row:d3.Selection, col:model.Column, row:any, index:number, context:IRenderContext) {\n $row.selectAll('*').remove();\n }\n\n}\n\nexport class SelectionCellRenderer extends DefaultCellRenderer {\n\n constructor() {\n super();\n this.textClass = 'selection';\n }\n\n render($col:d3.Selection, col:model.SelectionColumn, rows:any[], context:IRenderContext) {\n var $rows = $col.datum(col).selectAll('text.' + this.textClass).data(rows, context.rowKey);\n\n $rows.enter().append('text').attr({\n 'class': this.textClass + ' fa',\n y: (d, i) => context.cellPrevY(i)\n }).on('click', function (d) {\n d3.event.preventDefault();\n d3.event.stopPropagation();\n const new_ = col.toggleValue(d);\n d3.select(this).text(new_ === true ? '\\uf046' : '\\uf096');\n });\n\n $rows.attr({\n x: (d, i) => context.cellX(i),\n 'data-index': (d, i) => i\n }).text((d) => col.getValue(d) === true ? '\\uf046' : '\\uf096');\n\n context.animated($rows).attr({\n y: (d, i) => context.cellY(i)\n });\n\n $rows.exit().remove();\n }\n\n renderCanvas(ctx:CanvasRenderingContext2D, col:model.SelectionColumn, rows:any[], context:IRenderContext) {\n ctx.save();\n ctx.font = 'FontAwesome';\n rows.forEach((d, i) => {\n const x = context.cellX(i);\n const y = context.cellY(i);\n ctx.fillText(col.getValue(d) === true ? '\\uf046' : '\\uf096', x, y);\n });\n ctx.restore();\n }\n}\n\n/**\n * a renderer for annotate columns\n */\nclass AnnotateCellRenderer extends DefaultCellRenderer {\n mouseEnter($col:d3.Selection, $row:d3.Selection, col:model.AnnotateColumn, row:any, index:number, context:IRenderContext) {\n //render an input field for editing\n this.findRow($col, index).attr('display', 'none');\n $row.append('foreignObject').attr({\n x: context.cellX(index) - 2,\n y: context.cellPrevY(index) - 2,\n 'data-index': index,\n width: col.getWidth(),\n height: context.rowHeight(index)\n }).append('xhtml:input').attr({\n type: 'text',\n value: col.getValue(row)\n }).style({\n width: col.getWidth() + 'px'\n }).on('change', function () {\n //update the value\n var text = this.value;\n col.setValue(row, text);\n }).on('click', () => d3.event.stopPropagation());\n }\n\n mouseLeave($col:d3.Selection, $row:d3.Selection, col:model.AnnotateColumn, row:any, index:number, context:IRenderContext) {\n this.findRow($col, index).attr('display', null);\n var node = $row.select('input').node();\n if (node) {\n //update the value before removal, the change event may not have been fired\n col.setValue(row, node.value);\n }\n $row.selectAll('*').remove();\n }\n}\n\nvar defaultRendererInstance = new DefaultCellRenderer();\nvar barRendererInstance = new BarCellRenderer();\n\n/**\n * creates a new instance with optional overridden methods\n * @param extraFuncs\n * @return {DefaultCellRenderer}\n */\nexport function defaultRenderer(extraFuncs?:any) {\n if (!extraFuncs) {\n return defaultRendererInstance;\n }\n return new DerivedCellRenderer(extraFuncs);\n}\n\n/**\n * creates a new instance with optional overridden methods\n * @param extraFuncs\n * @return {BarCellRenderer}\n */\nexport function barRenderer(extraFuncs?:any) {\n if (!extraFuncs) {\n return barRendererInstance;\n }\n return new DerivedBarCellRenderer(extraFuncs);\n}\n\n/**\n * renderer of a link column, i.e. render an intermediate *a* element\n */\nclass LinkCellRenderer extends DefaultCellRenderer {\n render($col:d3.Selection, col:model.LinkColumn, rows:any[], context:IRenderContext) {\n //wrap the text elements with an a element\n var $rows = $col.datum(col).selectAll('text.link').data(rows, context.rowKey);\n $rows.enter().append('text').attr({\n 'class': 'text link',\n 'clip-path': 'url(#' + context.idPrefix + 'clipCol' + col.id + ')',\n y: (d, i) => context.cellPrevY(i)\n });\n\n $rows.attr({\n x: (d, i) => context.cellX(i),\n 'data-index': (d, i) => i\n }).html((d) => col.isLink(d) ? `${col.getLabel(d)}` : col.getLabel(d));\n\n context.animated($rows).attr({\n y: (d, i) => context.cellY(i)\n });\n\n $rows.exit().remove();\n }\n\n findRow($col:d3.Selection, index:number) {\n return $col.selectAll('text.link[data-index=\"' + index + '\"]');\n }\n}\n\n\n/**\n * renders a string with additional alignment behavior\n */\nclass StringCellRenderer extends DefaultCellRenderer {\n render($col:d3.Selection, col:model.StringColumn, rows:any[], context:IRenderContext) {\n this.align = col.alignment;\n this.textClass = 'text' + (col.alignment === 'left' ? '' : '_' + col.alignment);\n return super.render($col, col, rows, context);\n }\n}\n\n/**\n * renders categorical columns as a colored rect with label\n */\nclass CategoricalRenderer extends DefaultCellRenderer {\n textClass = 'cat';\n\n render($col:d3.Selection, col:model.CategoricalColumn, rows:any[], context:IRenderContext) {\n var $rows = $col.datum(col).selectAll('g.' + this.textClass).data(rows, context.rowKey);\n\n var $rows_enter = $rows.enter().append('g').attr({\n 'class': this.textClass,\n 'data-index': (d, i) => i,\n transform: (d, i) => 'translate(' + context.cellX(i) + ',' + context.cellPrevY(i) + ')'\n });\n $rows_enter.append('text').attr({\n 'clip-path': 'url(#' + context.idPrefix + 'clipCol' + col.id + ')',\n x: (d, i) => context.rowHeight(i)\n });\n $rows_enter.append('rect').attr({\n y: context.option('rowPadding', 1)\n });\n $rows.attr({\n 'data-index': (d, i) => i,\n transform: (d, i) => 'translate(' + context.cellX(i) + ',' + context.cellY(i) + ')'\n });\n $rows.select('text').attr({\n x: (d, i) => context.rowHeight(i)\n }).text((d) => col.getLabel(d));\n $rows.select('rect').style({\n fill: (d) => col.getColor(d)\n }).attr({\n height: (d, i) => Math.max(context.rowHeight(i) - context.option('rowPadding', 1) * 2, 0),\n width: (d, i) => Math.max(context.rowHeight(i) - context.option('rowPadding', 1) * 2, 0)\n });\n\n context.animated($rows).attr({\n transform: (d, i) => 'translate(' + context.cellX(i) + ',' + context.cellY(i) + ')'\n });\n\n\n $rows.exit().remove();\n }\n\n findRow($col:d3.Selection, index:number) {\n return $col.selectAll('g.' + this.textClass + '[data-index=\"' + index + '\"]');\n }\n\n renderCanvas(ctx:CanvasRenderingContext2D, col:model.CategoricalColumn, rows:any[], context:IRenderContext) {\n ctx.save();\n rows.forEach((d, i) => {\n const x = context.cellX(i);\n const y = context.cellY(i);\n ctx.fillStyle = 'black';\n ctx.fillText(col.getLabel(d), x + context.rowHeight(i), y);\n ctx.fillStyle = col.getColor(d);\n ctx.fillRect(x, y+context.option('rowPadding', 1), Math.max(context.rowHeight(i) - context.option('rowPadding', 1) * 2, 0), Math.max(context.rowHeight(i) - context.option('rowPadding', 1) * 2, 0));\n });\n }\n}\n\n/**\n * renders a stacked column using composite pattern\n */\nclass StackCellRenderer extends DefaultCellRenderer {\n constructor(private nestingPossible = true) {\n super();\n }\n\n renderImpl($base:d3.Selection, col:model.StackColumn, context:IRenderContext, perChild:($child:d3.Selection, col:model.Column, i:number, context:IRenderContext) => void, rowGetter:(index:number) => any, animated = true) {\n const $group = $base.datum(col),\n children = col.children,\n stacked = this.nestingPossible && context.showStacked(col);\n var offset = 0,\n shifts = children.map((d) => {\n var r = offset;\n offset += d.getWidth();\n offset += (!stacked ? context.option('columnPadding', 0) : 0);\n return r;\n });\n const baseclass = 'component' + context.option('stackLevel', '');\n\n const ueber = context.cellX;\n const ueberOption = context.option;\n context.option = (option, default_) => {\n var r = ueberOption(option, default_);\n return option === 'stackLevel' ? r + 'N' : r;\n };\n\n //map all children to g elements\n const $children = $group.selectAll('g.' + baseclass).data(children, (d) => d.id);\n //shift children horizontally\n $children.enter().append('g').attr({\n 'class': baseclass,\n transform: (d, i) => 'translate(' + shifts[i] + ',0)'\n });\n //for each children render the column\n $children.attr({\n 'class': (d) => baseclass + ' ' + d.desc.type,\n 'data-stack': (d, i) => i\n }).each(function (d, i) {\n if (stacked) {\n const preChildren = children.slice(0, i);\n //if shown as stacked bar shift individual cells of a column to the left where they belong to\n context.cellX = (index) => {\n //shift by all the empty space left from the previous columns\n return ueber(index) - preChildren.reduce((prev, child) => prev + child.getWidth() * (1 - child.getValue(rowGetter(index))), 0);\n };\n }\n perChild(d3.select(this), d, i, context);\n });\n (animated ? context.animated($children) : $children).attr({\n transform: (d, i) => 'translate(' + shifts[i] + ',0)'\n });\n $children.exit().remove();\n\n context.cellX = ueber;\n context.option = ueberOption;\n }\n\n render($col:d3.Selection, stack:model.StackColumn, rows:any[], context:IRenderContext) {\n this.renderImpl($col, stack, context, ($child, col, i, ccontext) => {\n ccontext.render(col, $child, rows, ccontext);\n }, (index) => rows[index]);\n }\n\n mouseEnter($col:d3.Selection, $row:d3.Selection, stack:model.StackColumn, row:any, index:number, context:IRenderContext) {\n var baseclass = 'component' + context.option('stackLevel', '');\n this.renderImpl($row, stack, context, ($row_i, col, i, ccontext) => {\n var $col_i = $col.select('g.' + baseclass + '[data-stack=\"' + i + '\"]');\n if (!$col_i.empty()) {\n ccontext.renderer(col).mouseEnter($col_i, $row_i, col, row, index, ccontext);\n }\n }, (index) => row, false);\n }\n\n mouseLeave($col:d3.Selection, $row:d3.Selection, satck:model.StackColumn, row:any, index:number, context:IRenderContext) {\n var baseclass = 'component' + context.option('stackLevel', '');\n this.renderImpl($row, satck, context, ($row_i, col, i, ccontext) => {\n var $col_i = $col.select('g.' + baseclass + '[data-stack=\"' + i + '\"]');\n if (!$col_i.empty()) {\n ccontext.renderer(col).mouseLeave($col_i, $row_i, col, row, index, ccontext);\n }\n }, (index) => row, false);\n $row.selectAll('*').remove();\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D, stack:model.StackColumn, rows:any[], context:IRenderContext) {\n const children = stack.children,\n stacked = this.nestingPossible && context.showStacked(stack);\n var offset = 0,\n shifts = children.map((d) => {\n var r = offset;\n offset += d.getWidth();\n offset += (!stacked ? context.option('columnPadding', 0) : 0);\n return r;\n });\n const ueber = context.cellX;\n const ueberOption = context.option;\n context.option = (option, default_) => {\n var r = ueberOption(option, default_);\n return option === 'stackLevel' ? r + 'N' : r;\n };\n ctx.save();\n children.forEach((child, i) => {\n ctx.save();\n ctx.translate(shifts[i], 0);\n\n if (stacked) {\n const preChildren = children.slice(0, i);\n //if shown as stacked bar shift individual cells of a column to the left where they belong to\n context.cellX = (index) => {\n //shift by all the empty space left from the previous columns\n return ueber(index) - preChildren.reduce((prev, child) => prev + child.getWidth() * (1 - child.getValue(rows[index])), 0);\n };\n }\n context.renderCanvas(child, ctx, rows, context);\n\n ctx.restore();\n });\n ctx.restore();\n context.cellX = ueber;\n context.option = ueberOption;\n }\n}\n\nexport interface IRenderFunction {\n render($col:d3.Selection, col:model.Column, rows:any[], context:IRenderContext): void;\n}\n\n/**\n * defines a custom renderer object\n * @param selector d3 selector, e.g. text.my\n * @param render render function\n * @param extras additional functions\n * @returns {DerivedCellRenderer}\n */\nexport function createRenderer(selector: string, render: IRenderFunction, extras : any = {}) {\n extras.selector = selector;\n extras.render = render;\n extras.findRow = ($col:d3.Selection, index:number) => $col.selectAll(this.selector + '[data-index=\"' + index + '\"]');\n\n const r = new DerivedCellRenderer(extras);\n return r;\n}\n\nconst combineRenderer = barRenderer({\n colorOf: (d, i, col) => col.getColor(d)\n});\n\n/**\n * returns a map of all known renderers by type\n * @return\n */\nexport function renderers() {\n return {\n string: new StringCellRenderer(),\n link: new LinkCellRenderer(),\n number: barRenderer(),\n rank: defaultRenderer({\n textClass: 'rank',\n align: 'right'\n }),\n boolean: defaultRenderer({\n textClass: 'boolean',\n align: 'center'\n }),\n heatmap: new HeatMapCellRenderer(),\n stack: new StackCellRenderer(),\n categorical: new CategoricalRenderer(),\n ordinal: barRenderer({\n renderValue: true,\n colorOf: (d, i, col) => col.getColor(d)\n }),\n max: combineRenderer,\n min: combineRenderer,\n mean: combineRenderer,\n script: combineRenderer,\n actions: new ActionCellRenderer(),\n annotate: new AnnotateCellRenderer(),\n selection: new SelectionCellRenderer(),\n nested: new StackCellRenderer(false)\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/renderer.ts\n **/","/**\r\n * Created by Samuel Gratzl on 14.08.2015.\r\n */\r\n\r\n\r\n///\r\nimport d3 = require('d3');\r\nimport utils = require('./utils');\r\nimport model = require('./model');\r\nimport renderer = require('./renderer');\r\nimport provider = require('./provider');\r\nimport dialogs = require('./ui_dialogs');\r\n\r\nclass PoolEntry {\r\n used:number = 0;\r\n\r\n constructor(public desc:model.IColumnDesc) {\r\n\r\n }\r\n}\r\n\r\n/**\r\n * utility function to generate the tooltip text with description\r\n * @param col the column\r\n */\r\nfunction toFullTooltip(col: { label: string, description?: string}) {\r\n var base = col.label;\r\n if (col.description != null && col.description !== '') {\r\n base += '\\n'+col.description;\r\n }\r\n return base;\r\n}\r\n\r\nexport class PoolRenderer {\r\n private options = {\r\n layout: 'vertical',\r\n elemWidth: 100,\r\n elemHeight: 40,\r\n width: 100,\r\n height: 500,\r\n additionalDesc: [],\r\n hideUsed: true,\r\n addAtEndOnClick: false\r\n };\r\n\r\n private $node:d3.Selection;\r\n private entries:PoolEntry[];\r\n\r\n constructor(private data:provider.DataProvider, parent:Element, options:any = {}) {\r\n utils.merge(this.options, options);\r\n\r\n this.$node = d3.select(parent).append('div').classed('lu-pool', true);\r\n\r\n this.changeDataStorage(data);\r\n }\r\n\r\n changeDataStorage(data:provider.DataProvider) {\r\n if (this.data) {\r\n this.data.on(['addColumn.pool', 'removeColumn.pool', 'addRanking.pool', 'removeRanking.pool', 'addDesc.pool'], null);\r\n }\r\n this.data = data;\r\n this.entries = data.getColumns().concat(this.options.additionalDesc).map((d) => new PoolEntry(d));\r\n data.on(['addDesc.pool'], (desc) => {\r\n this.entries.push(new PoolEntry(desc));\r\n this.update();\r\n });\r\n if (this.options.hideUsed) {\r\n var that = this;\r\n data.on(['addColumn.pool', 'removeColumn.pool'], function (col) {\r\n var desc = col.desc, change = this.type === 'addColumn' ? 1 : -1;\r\n that.entries.some((entry) => {\r\n if (entry.desc !== desc) {\r\n return false;\r\n }\r\n entry.used += change;\r\n return true;\r\n });\r\n that.update();\r\n });\r\n data.on(['addRanking.pool', 'removeRanking.pool'], function (ranking) {\r\n var descs = ranking.flatColumns.map((d) => d.desc), change = this.type === 'addRanking' ? 1 : -1;\r\n that.entries.some((entry) => {\r\n if (descs.indexOf(entry.desc) < 0) {\r\n return false;\r\n }\r\n entry.used += change;\r\n return true;\r\n });\r\n that.update();\r\n });\r\n data.getRankings().forEach((ranking) => {\r\n var descs = ranking.flatColumns.map((d) => d.desc), change = +1;\r\n that.entries.some((entry) => {\r\n if (descs.indexOf(entry.desc) < 0) {\r\n return false;\r\n }\r\n entry.used += change;\r\n });\r\n });\r\n }\r\n }\r\n\r\n remove() {\r\n this.$node.remove();\r\n if (this.data) {\r\n this.data.on(['addColumn.pool', 'removeColumn.pool', 'addRanking.pool', 'removeRanking.pool', 'addDesc.pool'], null);\r\n }\r\n }\r\n\r\n update() {\r\n var data = this.data;\r\n var descToShow = this.entries.filter((e) => e.used === 0).map((d) => d.desc);\r\n var $headers = this.$node.selectAll('div.header').data(descToShow);\r\n var $headers_enter = $headers.enter().append('div').attr({\r\n 'class': 'header',\r\n 'draggable': true\r\n }).on('dragstart', (d) => {\r\n var e = (d3.event);\r\n e.dataTransfer.effectAllowed = 'copyMove'; //none, copy, copyLink, copyMove, link, linkMove, move, all\r\n e.dataTransfer.setData('text/plain', d.label);\r\n e.dataTransfer.setData('application/caleydo-lineup-column', JSON.stringify(data.toDescRef(d)));\r\n if (model.isNumberColumn(d)) {\r\n e.dataTransfer.setData('application/caleydo-lineup-column-number', JSON.stringify(data.toDescRef(d)));\r\n }\r\n }).style({\r\n width: this.options.elemWidth + 'px',\r\n height: this.options.elemHeight + 'px'\r\n });\r\n if (this.options.addAtEndOnClick) {\r\n $headers_enter.on('click', (d) => {\r\n this.data.push(this.data.getLastRanking(), d);\r\n });\r\n }\r\n $headers_enter.append('span').classed('label', true).text((d) => d.label);\r\n $headers.attr('class', (d) => `header ${((d).cssClass || '')} ${d.type}`);\r\n $headers.style({\r\n 'transform': (d, i) => {\r\n var pos = this.layout(i);\r\n return 'translate(' + pos.x + 'px,' + pos.y + 'px)';\r\n },\r\n 'background-color': (d) => {\r\n const s = (d);\r\n return s.cssClass ? null : s.color || model.Column.DEFAULT_COLOR;\r\n }\r\n });\r\n $headers.attr({\r\n title: (d) => toFullTooltip(d)\r\n });\r\n $headers.select('span').text((d) => d.label);\r\n $headers.exit().remove();\r\n\r\n //compute the size of this node\r\n switch (this.options.layout) {\r\n case 'horizontal':\r\n this.$node.style({\r\n width: (this.options.elemWidth * descToShow.length) + 'px',\r\n height: (this.options.elemHeight * 1) + 'px'\r\n });\r\n break;\r\n case 'grid':\r\n var perRow = d3.round(this.options.width / this.options.elemWidth, 0);\r\n this.$node.style({\r\n width: perRow * this.options.elemWidth + 'px',\r\n height: Math.ceil(descToShow.length / perRow) * this.options.elemHeight + 'px'\r\n });\r\n break;\r\n //case 'vertical':\r\n default:\r\n this.$node.style({\r\n width: (this.options.elemWidth * 1) + 'px',\r\n height: (this.options.elemHeight * descToShow.length) + 'px'\r\n });\r\n break;\r\n }\r\n }\r\n\r\n private layout(i:number) {\r\n switch (this.options.layout) {\r\n case 'horizontal':\r\n return {x: i * this.options.elemWidth, y: 0};\r\n case 'grid':\r\n var perRow = d3.round(this.options.width / this.options.elemWidth, 0);\r\n return {x: (i % perRow) * this.options.elemWidth, y: Math.floor(i / perRow) * this.options.elemHeight};\r\n //case 'vertical':\r\n default:\r\n return {x: 0, y: i * this.options.elemHeight};\r\n }\r\n }\r\n}\r\n\r\nexport interface IRankingHook {\r\n ($node: d3.Selection):void;\r\n}\r\n\r\nexport function dummyRankingButtonHook() {\r\n return null;\r\n}\r\n\r\nexport class HeaderRenderer {\r\n private options = {\r\n slopeWidth: 150,\r\n columnPadding: 5,\r\n headerHistogramHeight: 40,\r\n headerHeight: 20,\r\n manipulative: true,\r\n histograms: false,\r\n\r\n filterDialogs: dialogs.filterDialogs(),\r\n linkTemplates: [],\r\n searchAble: (col:model.Column) => col instanceof model.StringColumn,\r\n sortOnLabel: true,\r\n\r\n autoRotateLabels: false,\r\n rotationHeight: 50, //in px\r\n rotationDegree: -20, //in deg\r\n\r\n freezeCols: 0,\r\n\r\n rankingButtons: dummyRankingButtonHook\r\n };\r\n\r\n $node:d3.Selection;\r\n\r\n private histCache = d3.map>();\r\n\r\n private dragHandler = d3.behavior.drag()\r\n //.origin((d) => d)\r\n .on('dragstart', function () {\r\n d3.select(this).classed('dragging', true);\r\n (d3.event).sourceEvent.stopPropagation();\r\n (d3.event).sourceEvent.preventDefault();\r\n })\r\n .on('drag', function (d) {\r\n //the new width\r\n var newValue = Math.max(d3.mouse(this.parentNode)[0], 2);\r\n d.setWidth(newValue);\r\n (d3.event).sourceEvent.stopPropagation();\r\n (d3.event).sourceEvent.preventDefault();\r\n })\r\n .on('dragend', function (d) {\r\n d3.select(this).classed('dragging', false);\r\n (d3.event).sourceEvent.stopPropagation();\r\n\r\n (d3.event).sourceEvent.preventDefault();\r\n });\r\n\r\n private dropHandler = utils.dropAble(['application/caleydo-lineup-column-ref', 'application/caleydo-lineup-column'], (data, d:model.Column, copy) => {\r\n var col:model.Column = null;\r\n if ('application/caleydo-lineup-column-ref' in data) {\r\n var id = data['application/caleydo-lineup-column-ref'];\r\n col = this.data.find(id);\r\n if (copy) {\r\n col = this.data.clone(col);\r\n } else {\r\n col.removeMe();\r\n }\r\n } else {\r\n var desc = JSON.parse(data['application/caleydo-lineup-column']);\r\n col = this.data.create(this.data.fromDescRef(desc));\r\n }\r\n if (d instanceof model.Column) {\r\n return d.insertAfterMe(col) != null;\r\n } else {\r\n var r = this.data.getLastRanking();\r\n return r.push(col) !== null;\r\n }\r\n });\r\n\r\n\r\n constructor(private data:provider.DataProvider, parent:Element, options:any = {}) {\r\n utils.merge(this.options, options);\r\n\r\n this.$node = d3.select(parent).append('div').classed('lu-header', true);\r\n this.$node.append('div').classed('drop', true).call(this.dropHandler);\r\n\r\n this.changeDataStorage(data);\r\n }\r\n\r\n changeDataStorage(data:provider.DataProvider) {\r\n if (this.data) {\r\n this.data.on(['dirtyHeader.headerRenderer', 'orderChanged.headerRenderer', 'selectionChanged.headerRenderer'], null);\r\n }\r\n this.data = data;\r\n data.on('dirtyHeader.headerRenderer', utils.delayedCall(this.update.bind(this), 1));\r\n if (this.options.histograms) {\r\n data.on('orderChanged.headerRenderer', () => {\r\n this.updateHist();\r\n this.update();\r\n });\r\n data.on('selectionChanged.headerRenderer', utils.delayedCall(this.drawSelection.bind(this), 1));\r\n\r\n }\r\n }\r\n\r\n get sharedHistCache() {\r\n return this.histCache;\r\n }\r\n\r\n /**\r\n * defines the current header height in pixel\r\n * @returns {number}\r\n */\r\n currentHeight() {\r\n return parseInt(this.$node.style('height'),10);\r\n }\r\n\r\n private updateHist() {\r\n var rankings = this.data.getRankings();\r\n rankings.forEach((ranking) => {\r\n const order = ranking.getOrder();\r\n const cols = ranking.flatColumns;\r\n const histo = order == null ? null : this.data.stats(order);\r\n cols.filter((d) => d instanceof model.NumberColumn && !d.isHidden()).forEach((col:any) => {\r\n this.histCache.set(col.id,histo === null ? null : histo.stats(col));\r\n });\r\n cols.filter((d) => model.isCategoricalColumn(d) && !d.isHidden()).forEach((col:any) => {\r\n this.histCache.set(col.id,histo === null ? null : histo.hist(col));\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * update the selection in the histograms\r\n */\r\n drawSelection() {\r\n if (!this.options.histograms) {\r\n return;\r\n }\r\n //highlight the bins in the histograms\r\n const node = this.$node.node();\r\n\r\n [].slice.call(node.querySelectorAll('div.bar')).forEach((d) => d.classList.remove('selected'));\r\n var indices = this.data.getSelection();\r\n if (indices.length <= 0) {\r\n return;\r\n }\r\n this.data.view(indices).then((data) => {\r\n //get the data\r\n\r\n var rankings = this.data.getRankings();\r\n\r\n rankings.forEach((ranking) => {\r\n const cols = ranking.flatColumns;\r\n //find all number histograms\r\n cols.filter((d) => d instanceof model.NumberColumn && !d.isHidden()).forEach((col:model.NumberColumn) => {\r\n const bars = [].slice.call(node.querySelectorAll(`div.header[data-id=\"${col.id}\"] div.bar`));\r\n data.forEach((d) => {\r\n const v = col.getValue(d);\r\n //choose the right bin\r\n for (let i = 1 ; i < bars.length; ++i) {\r\n let bar = bars[i];\r\n if (bar.dataset.x > v) { //previous bin\r\n bars[i-1].classList.add('selected');\r\n break;\r\n } else if (i === bars.length - 1) { //last bin\r\n bar.classList.add('selected');\r\n break;\r\n }\r\n }\r\n });\r\n });\r\n cols.filter((d) => model.isCategoricalColumn(d) && !d.isHidden()).forEach((col:model.CategoricalColumn) => {\r\n const header = node.querySelector(`div.header[data-id=\"${col.id}\"]`);\r\n data.forEach((d) => {\r\n const cats = col.getCategories(d);\r\n (cats || []).forEach((cat) => {\r\n header.querySelector(`div.bar[data-cat=\"${cat}\"]`).classList.add('selected');\r\n });\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n private renderRankingButtons(rankings: model.Ranking[], rankingsOffsets: number[]) {\r\n const $rankingbuttons = this.$node.selectAll('div.rankingbuttons').data(rankings);\r\n $rankingbuttons.enter().append('div')\r\n .classed('rankingbuttons', true)\r\n .call(this.options.rankingButtons);\r\n $rankingbuttons.style('left', (d,i) => rankingsOffsets[i]+'px');\r\n $rankingbuttons.exit().remove();\r\n }\r\n\r\n update() {\r\n const that = this;\r\n const rankings = this.data.getRankings();\r\n\r\n var shifts = [], offset = 0, rankingOffsets = [];\r\n rankings.forEach((ranking) => {\r\n offset += ranking.flatten(shifts, offset, 1, this.options.columnPadding) + this.options.slopeWidth;\r\n rankingOffsets.push(offset - this.options.slopeWidth);\r\n });\r\n //real width\r\n offset -= this.options.slopeWidth;\r\n\r\n var columns = shifts.map((d) => d.col);\r\n\r\n //update all if needed\r\n if (this.options.histograms && this.histCache.empty() && rankings.length > 0) {\r\n this.updateHist();\r\n }\r\n\r\n this.renderColumns(columns, shifts);\r\n\r\n if (this.options.rankingButtons !== dummyRankingButtonHook) {\r\n this.renderRankingButtons(rankings, rankingOffsets);\r\n }\r\n\r\n function countMultiLevel(c:model.Column):number {\r\n if (model.isMultiLevelColumn(c) && !(c).getCollapsed() && !c.getCompressed()) {\r\n return 1 + Math.max.apply(Math, (c).children.map(countMultiLevel));\r\n }\r\n return 1;\r\n }\r\n\r\n const levels = Math.max.apply(Math, columns.map(countMultiLevel));\r\n var height = (this.options.histograms ? this.options.headerHistogramHeight : this.options.headerHeight) + (levels-1)*this.options.headerHeight;\r\n\r\n if (this.options.autoRotateLabels) {\r\n //check if we have overflows\r\n var rotatedAny = false;\r\n this.$node.selectAll('div.header')\r\n .style('height', height + 'px').select('div.lu-label').each(function (d) {\r\n const w = this.querySelector('span.lu-label').offsetWidth;\r\n const actWidth = d.getWidth();\r\n if (w > (actWidth+30)) { //rotate\r\n d3.select(this).style('transform',`rotate(${that.options.rotationDegree}deg)`);\r\n rotatedAny = true;\r\n } else {\r\n d3.select(this).style('transform',null);\r\n }\r\n });\r\n this.$node.selectAll('div.header').style('margin-top', rotatedAny ? this.options.rotationHeight + 'px' : null);\r\n height += rotatedAny ? this.options.rotationHeight : 0;\r\n }\r\n this.$node.style('height', height + 'px');\r\n }\r\n\r\n private createToolbar($node:d3.Selection) {\r\n const filterDialogs = this.options.filterDialogs,\r\n provider = this.data,\r\n that = this;\r\n var $regular = $node.filter(d=> !(d instanceof model.Ranking)),\r\n $stacked = $node.filter(d=> d instanceof model.StackColumn),\r\n $multilevel = $node.filter(d=> model.isMultiLevelColumn(d));\r\n\r\n //edit weights\r\n $stacked.append('i').attr('class', 'fa fa-tasks').attr('title', 'Edit Weights').on('click', function (d) {\r\n dialogs.openEditWeightsDialog(d, d3.select(this.parentNode.parentNode));\r\n d3.event.stopPropagation();\r\n });\r\n //rename\r\n $regular.append('i').attr('class', 'fa fa-pencil-square-o').attr('title', 'Rename').on('click', function (d) {\r\n dialogs.openRenameDialog(d, d3.select(this.parentNode.parentNode));\r\n d3.event.stopPropagation();\r\n });\r\n //clone\r\n $regular.append('i').attr('class', 'fa fa-code-fork').attr('title', 'Generate Snapshot').on('click', function (d) {\r\n provider.takeSnapshot(d);\r\n d3.event.stopPropagation();\r\n });\r\n //edit link\r\n $node.filter((d) => d instanceof model.LinkColumn).append('i').attr('class', 'fa fa-external-link').attr('title', 'Edit Link Pattern').on('click', function (d) {\r\n dialogs.openEditLinkDialog(d, d3.select(this.parentNode.parentNode), [].concat((d.desc).templates || [], that.options.linkTemplates));\r\n d3.event.stopPropagation();\r\n });\r\n //edit script\r\n $node.filter((d) => d instanceof model.ScriptColumn).append('i').attr('class', 'fa fa-gears').attr('title', 'Edit Combine Script').on('click', function (d) {\r\n dialogs.openEditScriptDialog(d, d3.select(this.parentNode.parentNode));\r\n d3.event.stopPropagation();\r\n });\r\n //filter\r\n $node.filter((d) => filterDialogs.hasOwnProperty(d.desc.type)).append('i').attr('class', 'fa fa-filter').attr('title', 'Filter').on('click', function (d) {\r\n filterDialogs[d.desc.type](d, d3.select(this.parentNode.parentNode), provider);\r\n d3.event.stopPropagation();\r\n });\r\n //search\r\n $node.filter((d) => this.options.searchAble(d)).append('i').attr('class', 'fa fa-search').attr('title', 'Search').on('click', function (d) {\r\n dialogs.openSearchDialog(d, d3.select(this.parentNode.parentNode), provider);\r\n d3.event.stopPropagation();\r\n });\r\n //collapse\r\n $regular.append('i')\r\n .attr('class', 'fa')\r\n .classed('fa-toggle-left', (d:model.Column) => !d.getCompressed())\r\n .classed('fa-toggle-right', (d:model.Column) => d.getCompressed())\r\n .attr('title', '(Un)Collapse')\r\n .on('click', function (d:model.Column) {\r\n d.setCompressed(!d.getCompressed());\r\n d3.select(this)\r\n .classed('fa-toggle-left', !d.getCompressed())\r\n .classed('fa-toggle-right', d.getCompressed());\r\n d3.event.stopPropagation();\r\n });\r\n //compress\r\n $multilevel.append('i')\r\n .attr('class', 'fa')\r\n .classed('fa-compress', (d:model.IMultiLevelColumn) => !d.getCollapsed())\r\n .classed('fa-expand', (d:model.IMultiLevelColumn) => d.getCollapsed())\r\n .attr('title', 'Compress/Expand')\r\n .on('click', function (d:model.IMultiLevelColumn) {\r\n d.setCollapsed(!d.getCollapsed());\r\n d3.select(this)\r\n .classed('fa-compress', !d.getCollapsed())\r\n .classed('fa-expand', d.getCollapsed());\r\n d3.event.stopPropagation();\r\n });\r\n //remove\r\n $node.append('i').attr('class', 'fa fa-times').attr('title', 'Hide').on('click', (d) => {\r\n if (d instanceof model.RankColumn) {\r\n provider.removeRanking(d.findMyRanker());\r\n if (provider.getRankings().length === 0) { //create at least one\r\n provider.pushRanking();\r\n }\r\n } else {\r\n d.removeMe();\r\n }\r\n d3.event.stopPropagation();\r\n });\r\n }\r\n\r\n updateFreeze(left:number) {\r\n const numColumns = this.options.freezeCols;\r\n this.$node.selectAll('div.header')\r\n .style('z-index', (d, i) => i < numColumns ? 1 : null)\r\n .style('transform', (d, i) => i < numColumns ? `translate(${left}px,0)` : null);\r\n }\r\n\r\n private renderColumns(columns:model.Column[], shifts, $base:d3.Selection = this.$node, clazz:string = 'header') {\r\n var $headers = $base.selectAll('div.' + clazz).data(columns, (d) => d.id);\r\n var $headers_enter = $headers.enter().append('div').attr({\r\n 'class': clazz\r\n })\r\n .on('click', (d) => {\r\n if (this.options.manipulative && !d3.event.defaultPrevented && d3.event.currentTarget === d3.event.target) {\r\n d.toggleMySorting();\r\n }\r\n });\r\n var $header_enter_div = $headers_enter.append('div').classed('lu-label', true)\r\n .on('click', (d) => {\r\n if (this.options.manipulative && !d3.event.defaultPrevented) {\r\n d.toggleMySorting();\r\n }\r\n })\r\n .on('dragstart', (d) => {\r\n var e = (d3.event);\r\n e.dataTransfer.effectAllowed = 'copyMove'; //none, copy, copyLink, copyMove, link, linkMove, move, all\r\n e.dataTransfer.setData('text/plain', d.label);\r\n e.dataTransfer.setData('application/caleydo-lineup-column-ref', d.id);\r\n var ref = JSON.stringify(this.data.toDescRef(d.desc));\r\n e.dataTransfer.setData('application/caleydo-lineup-column', ref);\r\n if (model.isNumberColumn(d)) {\r\n e.dataTransfer.setData('application/caleydo-lineup-column-number', ref);\r\n e.dataTransfer.setData('application/caleydo-lineup-column-number-ref', d.id);\r\n }\r\n });\r\n $header_enter_div.append('i').attr('class', 'fa fa sort_indicator');\r\n $header_enter_div.append('span').classed('lu-label', true).attr({\r\n 'draggable': this.options.manipulative\r\n });\r\n\r\n if (this.options.manipulative) {\r\n $headers_enter.append('div').classed('handle', true)\r\n .call(this.dragHandler)\r\n .style('width', this.options.columnPadding + 'px')\r\n .call(this.dropHandler);\r\n $headers_enter.append('div').classed('toolbar', true).call(this.createToolbar.bind(this));\r\n }\r\n\r\n if (this.options.histograms) {\r\n $headers_enter.append('div').classed('histogram', true);\r\n }\r\n\r\n $headers.style({\r\n width: (d, i) => (shifts[i].width + this.options.columnPadding) + 'px',\r\n left: (d, i) => shifts[i].offset + 'px',\r\n 'background-color': (d) => d.color\r\n });\r\n $headers.attr({\r\n 'class': (d) => `${clazz} ${d.cssClass||''} ${(d.getCompressed() ? 'compressed' : '')} ${d.headerCssClass} ${this.options.autoRotateLabels ? 'rotateable': ''} ${d.isFiltered() ? 'filtered' : ''}`,\r\n title: (d) => toFullTooltip(d),\r\n 'data-id': (d) => d.id,\r\n });\r\n $headers.select('i.sort_indicator').attr('class', (d) => {\r\n var r = d.findMyRanker();\r\n if (r && r.getSortCriteria().col === d) {\r\n return 'sort_indicator fa fa-sort-' + (r.getSortCriteria().asc ? 'asc' : 'desc');\r\n }\r\n return 'sort_indicator fa';\r\n });\r\n $headers.select('span.lu-label').text((d) => d.label);\r\n\r\n var that = this;\r\n $headers.filter((d) => model.isMultiLevelColumn(d)).each(function (col:model.IMultiLevelColumn) {\r\n if (col.getCollapsed() || col.getCompressed()) {\r\n d3.select(this).selectAll('div.' + clazz + '_i').remove();\r\n } else {\r\n let s_shifts = [];\r\n col.flatten(s_shifts, 0, 1, that.options.columnPadding);\r\n\r\n let s_columns = s_shifts.map((d) => d.col);\r\n that.renderColumns(s_columns, s_shifts, d3.select(this), clazz + (clazz.substr(clazz.length - 2) !== '_i' ? '_i' : ''));\r\n }\r\n }).select('div.lu-label').call(utils.dropAble(['application/caleydo-lineup-column-number-ref', 'application/caleydo-lineup-column-number'], (data, d:model.IMultiLevelColumn, copy) => {\r\n var col:model.Column = null;\r\n if ('application/caleydo-lineup-column-number-ref' in data) {\r\n var id = data['application/caleydo-lineup-column-number-ref'];\r\n col = this.data.find(id);\r\n if (copy) {\r\n col = this.data.clone(col);\r\n } else if (col) {\r\n col.removeMe();\r\n }\r\n } else {\r\n var desc = JSON.parse(data['application/caleydo-lineup-column-number']);\r\n col = this.data.create(this.data.fromDescRef(desc));\r\n }\r\n return d.push(col) != null;\r\n }));\r\n\r\n if (this.options.histograms) {\r\n\r\n $headers.filter((d) => model.isCategoricalColumn(d)).each(function (col:model.CategoricalColumn) {\r\n var $this = d3.select(this).select('div.histogram');\r\n var hist = that.histCache.get(col.id);\r\n if (hist) {\r\n hist.then((stats:model.ICategoricalStatistics) => {\r\n const $bars = $this.selectAll('div.bar').data(stats.hist);\r\n $bars.enter().append('div').classed('bar', true);\r\n const sx = d3.scale.ordinal().domain(col.categories).rangeBands([0, 100], 0.1);\r\n const sy = d3.scale.linear().domain([0, stats.maxBin]).range([0, 100]);\r\n $bars.style({\r\n left: (d) => sx(d.cat) + '%',\r\n width: (d) => sx.rangeBand() + '%',\r\n top: (d) => (100 - sy(d.y)) + '%',\r\n height: (d) => sy(d.y) + '%',\r\n 'background-color': (d) => col.colorOf(d.cat)\r\n }).attr({\r\n title: (d) => `${d.cat}: ${d.y}`,\r\n 'data-cat': (d) => d.cat\r\n });\r\n $bars.exit().remove();\r\n });\r\n }\r\n });\r\n $headers.filter((d) => d instanceof model.NumberColumn).each(function (col:model.Column) {\r\n var $this = d3.select(this).select('div.histogram');\r\n var hist = that.histCache.get(col.id);\r\n if (hist) {\r\n hist.then((stats:model.IStatistics) => {\r\n const $bars = $this.selectAll('div.bar').data(stats.hist);\r\n $bars.enter().append('div').classed('bar', true);\r\n const sx = d3.scale.ordinal().domain(d3.range(stats.hist.length).map(String)).rangeBands([0, 100], 0.1);\r\n const sy = d3.scale.linear().domain([0, stats.maxBin]).range([0, 100]);\r\n $bars.style({\r\n left: (d,i) => sx(String(i)) + '%',\r\n width: (d,i) => sx.rangeBand() + '%',\r\n top: (d) => (100 - sy(d.y)) + '%',\r\n height: (d) => sy(d.y) + '%'\r\n }).attr({\r\n title: (d,i) => `Bin ${i}: ${d.y}`,\r\n 'data-x': (d) => d.x\r\n });\r\n $bars.exit().remove();\r\n\r\n var $mean = $this.select('div.mean');\r\n if ($mean.empty()) {\r\n $mean = $this.append('div').classed('mean',true);\r\n }\r\n $mean.style('left', (stats.mean * 100) + '%');\r\n });\r\n }\r\n });\r\n }\r\n\r\n $headers.exit().remove();\r\n }\r\n}\r\n\r\n\r\nexport interface ISlicer {\r\n (start:number, length:number, row2y:(i:number) => number) : { from: number; to: number };\r\n}\r\n\r\nexport interface IBodyRenderer extends utils.AEventDispatcher {\r\n histCache : d3.Map>;\r\n\r\n node: Element;\r\n\r\n setOption(key: string, value: any);\r\n\r\n changeDataStorage(data:provider.DataProvider);\r\n\r\n select(dataIndex:number, additional?: boolean);\r\n\r\n updateFreeze(left:number);\r\n\r\n update();\r\n}\r\n\r\nexport class BodyRenderer extends utils.AEventDispatcher implements IBodyRenderer {\r\n private mouseOverItem:(dataIndex:number, hover:boolean) => void;\r\n private options = {\r\n rowHeight: 20,\r\n rowPadding: 1,\r\n rowBarPadding: 1,\r\n idPrefix: '',\r\n slopeWidth: 150,\r\n columnPadding: 5,\r\n stacked: true,\r\n animation: false, //200\r\n animationDuration: 1000,\r\n\r\n renderers: renderer.renderers(),\r\n\r\n meanLine: false,\r\n\r\n actions: [],\r\n\r\n freezeCols: 0\r\n };\r\n\r\n private $node:d3.Selection;\r\n\r\n private currentFreezeLeft = 0;\r\n\r\n histCache = d3.map>();\r\n\r\n constructor(private data:provider.DataProvider, parent:Element, private slicer:ISlicer, options = {}) {\r\n super();\r\n //merge options\r\n utils.merge(this.options, options);\r\n\r\n this.$node = d3.select(parent).append('svg').classed('lu-body', true);\r\n\r\n this.changeDataStorage(data);\r\n }\r\n\r\n createEventList() {\r\n return super.createEventList().concat(['hoverChanged', 'renderFinished']);\r\n }\r\n\r\n get node() {\r\n return this.$node.node();\r\n }\r\n\r\n setOption(key:string, value:any) {\r\n this.options[key] = value;\r\n }\r\n\r\n changeDataStorage(data:provider.DataProvider) {\r\n if (this.data) {\r\n this.data.on(['dirtyValues.bodyRenderer', 'selectionChanged.bodyRenderer'], null);\r\n }\r\n this.data = data;\r\n data.on('dirtyValues.bodyRenderer', utils.delayedCall(this.update.bind(this), 1));\r\n data.on('selectionChanged.bodyRenderer', utils.delayedCall((selection, jumpToFirst) => {\r\n if (jumpToFirst && selection.length > 0) {\r\n this.jumpToSelection();\r\n }\r\n this.drawSelection();\r\n }, 1));\r\n }\r\n\r\n createContext(index_shift:number):renderer.IRenderContext {\r\n var options = this.options;\r\n return {\r\n rowKey: this.options.animation ? this.data.rowKey : undefined,\r\n cellY(index:number) {\r\n return (index + index_shift) * (options.rowHeight);\r\n },\r\n cellPrevY(index:number) {\r\n return (index + index_shift) * (options.rowHeight);\r\n },\r\n cellX(index:number) {\r\n return 0;\r\n },\r\n rowHeight(index:number) {\r\n return options.rowHeight * (1 - options.rowPadding);\r\n },\r\n renderer(col:model.Column) {\r\n if (col.getCompressed() && model.isNumberColumn(col)) {\r\n return options.renderers.heatmap;\r\n }\r\n if (col instanceof model.StackColumn && col.getCollapsed()) {\r\n return options.renderers.number;\r\n }\r\n if (model.isMultiLevelColumn(col) && (col).getCollapsed()) {\r\n return options.renderers.string;\r\n }\r\n var l = options.renderers[col.desc.type];\r\n return l || renderer.defaultRenderer();\r\n },\r\n render(col:model.Column, $this:d3.Selection, data:any[], context:renderer.IRenderContext = this) {\r\n //if renderers change delete old stuff\r\n const tthis = ($this.node());\r\n const old_renderer = tthis.__renderer__;\r\n const act_renderer = this.renderer(col);\r\n if (old_renderer !== act_renderer) {\r\n $this.selectAll('*').remove();\r\n tthis.__renderer__ = act_renderer;\r\n }\r\n act_renderer.render($this, col, data, context);\r\n },\r\n renderCanvas(col:model.Column, ctx:CanvasRenderingContext2D, data:any[], context:renderer.IRenderContext = this) {\r\n //dummy impl\r\n },\r\n showStacked(col:model.Column) {\r\n return col instanceof model.StackColumn && options.stacked;\r\n },\r\n idPrefix: options.idPrefix,\r\n\r\n animated: ($sel:d3.Selection) => options.animation ? $sel.transition().duration(options.animationDuration) : $sel,\r\n\r\n //show mean line if option is enabled and top level\r\n showMeanLine: (col: model.Column) => options.meanLine && model.isNumberColumn(col) && !col.getCompressed() && col.parent instanceof model.Ranking,\r\n\r\n option: (key:string, default_:any) => (key in options) ? options[key] : default_\r\n };\r\n }\r\n\r\n updateClipPathsImpl(r:model.Column[], context:renderer.IRenderContext, height:number) {\r\n var $base = this.$node.select('defs.body');\r\n if ($base.empty()) {\r\n $base = this.$node.append('defs').classed('body', true);\r\n }\r\n\r\n //generate clip paths for the text columns to avoid text overflow\r\n //see http://stackoverflow.com/questions/L742812/cannot-select-svg-foreignobject-element-in-d3\r\n //there is a bug in webkit which present camelCase selectors\r\n var textClipPath = $base.selectAll(function () {\r\n return this.getElementsByTagName('clipPath');\r\n }).data(r, (d) => d.id);\r\n textClipPath.enter().append('clipPath')\r\n .attr('id', (d) => context.idPrefix + 'clipCol' + d.id)\r\n .append('rect').attr({\r\n y: 0\r\n });\r\n textClipPath.exit().remove();\r\n textClipPath.select('rect')\r\n .attr({\r\n x: 0, //(d,i) => offsets[i],\r\n width: (d) => Math.max(d.getWidth() - 5, 0),\r\n height: height\r\n });\r\n }\r\n\r\n updateClipPaths(rankings:model.Ranking[], context:renderer.IRenderContext, height:number) {\r\n var shifts = [], offset = 0;\r\n rankings.forEach((r) => {\r\n var w = r.flatten(shifts, offset, 2, this.options.columnPadding);\r\n offset += w + this.options.slopeWidth;\r\n });\r\n this.updateClipPathsImpl(shifts.map(s => s.col), context, height);\r\n\r\n var $elem = this.$node.select('clipPath#c' + context.idPrefix + 'Freeze');\r\n if ($elem.empty()) {\r\n $elem = this.$node.append('clipPath').attr('id', 'c' + context.idPrefix + 'Freeze').append('rect').attr({\r\n y: 0,\r\n width: 20000,\r\n height: height\r\n });\r\n }\r\n $elem.select('rect').attr({\r\n height: height\r\n });\r\n }\r\n\r\n renderRankings($body:d3.Selection, rankings:model.Ranking[], orders:number[][], shifts:any[], context:renderer.IRenderContext, height: number) {\r\n const that = this;\r\n const dataPromises = orders.map((r) => this.data.view(r));\r\n\r\n var $rankings = $body.selectAll('g.ranking').data(rankings, (d) => d.id);\r\n var $rankings_enter = $rankings.enter().append('g').attr({\r\n 'class': 'ranking',\r\n transform: (d, i) => 'translate(' + shifts[i].shift + ',0)'\r\n });\r\n $rankings_enter.append('g').attr('class', 'rows');\r\n $rankings_enter.append('g').attr('class', 'cols');\r\n\r\n context.animated($rankings).attr({\r\n transform: (d, i) => 'translate(' + shifts[i].shift + ',0)'\r\n });\r\n\r\n var $cols = $rankings.select('g.cols').selectAll('g.uchild').data((d) => d.children.filter((d) => !d.isHidden()), (d) => d.id);\r\n $cols.enter().append('g').attr('class', 'uchild')\r\n .append('g').attr({\r\n 'class': 'child',\r\n transform: (d, i, j?) => 'translate(' + shifts[j].shifts[i] + ',0)'\r\n });\r\n $cols.exit().remove();\r\n $cols = $cols.select('g.child');\r\n $cols.attr({\r\n 'data-index': (d, i) => i\r\n });\r\n context.animated($cols).attr({\r\n transform: (d, i, j?) => {\r\n return 'translate(' + shifts[j].shifts[i] + ',0)';\r\n }\r\n }).each(function (d, i, j?) {\r\n const $col = d3.select(this);\r\n dataPromises[j].then((data) => {\r\n context.render(d, $col, data, context);\r\n });\r\n\r\n if (context.showMeanLine(d)) {\r\n const h = that.histCache.get(d.id);\r\n if (h) {\r\n h.then((stats:model.IStatistics) => {\r\n const $mean = $col.selectAll('line.meanline').data([stats.mean]);\r\n $mean.enter().append('line').attr('class', 'meanline');\r\n $mean.exit().remove();\r\n $mean.attr('x1', d.getWidth() * stats.mean)\r\n .attr('x2', d.getWidth() * stats.mean)\r\n .attr('y2', height);\r\n });\r\n }\r\n } else {\r\n $col.selectAll('line.meanline').remove();\r\n }\r\n });\r\n\r\n // wait until all `context.render()` calls have finished\r\n Promise.all(dataPromises).then((args) => {\r\n this.fire('renderFinished');\r\n });\r\n\r\n function mouseOverRow($row:d3.Selection, $cols:d3.Selection, index:number, ranking:model.Ranking, rankingIndex:number) {\r\n $row.classed('hover', true);\r\n var $value_cols = $row.select('g.values').selectAll('g.uchild').data(ranking.children.filter((d) => !d.isHidden()), (d) => d.id);\r\n $value_cols.enter().append('g').attr({\r\n 'class': 'uchild'\r\n }).append('g').classed('child', true);\r\n\r\n $value_cols.select('g.child').attr({\r\n transform: (d, i) => {\r\n return 'translate(' + shifts[rankingIndex].shifts[i] + ',0)';\r\n }\r\n }).each(function (d:model.Column, i) {\r\n dataPromises[rankingIndex].then((data) => {\r\n context.renderer(d).mouseEnter($cols.selectAll('g.child[data-index=\"' + i + '\"]'), d3.select(this), d, data[index], index, context);\r\n\r\n\r\n });\r\n });\r\n $value_cols.exit().remove();\r\n //data.mouseOver(d, i);\r\n }\r\n\r\n function mouseLeaveRow($row:d3.Selection, $cols:d3.Selection, index:number, ranking:model.Ranking, rankingIndex:number) {\r\n $row.classed('hover', false);\r\n $row.select('g.values').selectAll('g.uchild').each(function (d:model.Column, i) {\r\n dataPromises[rankingIndex].then((data) => {\r\n context.renderer(d).mouseLeave($cols.selectAll('g.child[data-index=\"' + i + '\"]'), d3.select(this).select('g.child'), d, data[index], index, context);\r\n });\r\n }).remove();\r\n //data.mouseLeave(d, i);\r\n }\r\n\r\n this.mouseOverItem = function (data_index:number, hover = true) {\r\n $rankings.each(function (ranking, rankingIndex) {\r\n var $ranking = d3.select(this);\r\n var $row = $ranking.selectAll('g.row[data-index=\"' + data_index + '\"]');\r\n var $cols = $ranking.select('g.cols');\r\n if (!$row.empty()) {\r\n var index = $row.datum().i;\r\n if (hover) {\r\n mouseOverRow($row, $cols, index, ranking, rankingIndex);\r\n } else {\r\n mouseLeaveRow($row, $cols, index, ranking, rankingIndex);\r\n }\r\n }\r\n });\r\n\r\n //set clip path for frozen columns\r\n that.updateFrozenRows();\r\n };\r\n var $rows = $rankings.select('g.rows').selectAll('g.row').data((d, i) => orders[i].map((d, i) => ({d: d, i: i})));\r\n var $rows_enter = $rows.enter().append('g').attr({\r\n 'class': 'row'\r\n });\r\n $rows_enter.append('rect').attr({\r\n 'class': 'bg'\r\n });\r\n $rows_enter.append('g').attr({'class': 'values'});\r\n $rows_enter.on('mouseenter', (data_index) => {\r\n this.mouseOver(data_index.d, true);\r\n }).on('mouseleave', (data_index) => {\r\n this.mouseOver(data_index.d, false);\r\n }).on('click', (data_index) => {\r\n this.select(data_index.d, d3.event.ctrlKey);\r\n });\r\n $rows.attr({\r\n 'data-index': (d) => d.d\r\n }).classed('selected', (d) => this.data.isSelected(d.d));\r\n $rows.select('rect').attr({\r\n y: (d) => context.cellY(d.i),\r\n height: (d) => context.rowHeight(d.i),\r\n width: (d, i, j?) => shifts[j].width,\r\n 'class': (d, i) => 'bg ' + (i % 2 === 0 ? 'even' : 'odd')\r\n });\r\n $rows.exit().remove();\r\n\r\n $rankings.exit().remove();\r\n }\r\n\r\n private jumpToSelection() {\r\n const indices = this.data.getSelection();\r\n const rankings = this.data.getRankings();\r\n if (indices.length <= 0 || rankings.length <= 0) {\r\n return;\r\n }\r\n const order = rankings[0].getOrder();\r\n const visibleRange = this.slicer(0, order.length, (i) => i * this.options.rowHeight);\r\n const visibleOrder = order.slice(visibleRange.from, visibleRange.to);\r\n //if any of the selected indices is in the visible range - done\r\n if (indices.some((d) => visibleOrder.indexOf(d) >= 0)) {\r\n return;\r\n }\r\n //find the closest not visible one in the indices list\r\n //\r\n }\r\n\r\n select(dataIndex:number, additional = false) {\r\n var selected = this.data.toggleSelection(dataIndex, additional);\r\n this.$node.selectAll('g.row[data-index=\"' + dataIndex + '\"], line.slope[data-index=\"' + dataIndex + '\"]').classed('selected', selected);\r\n }\r\n\r\n private hasAnySelectionColumn() {\r\n return this.data.getRankings().some((r) => r.children.some((c) => c instanceof model.SelectionColumn && !c.isHidden()));\r\n }\r\n\r\n drawSelection() {\r\n if (this.hasAnySelectionColumn()) {\r\n this.update();\r\n }\r\n var indices = this.data.getSelection();\r\n if (indices.length === 0) {\r\n this.$node.selectAll('g.row.selected, line.slope.selected').classed('selected', false);\r\n } else {\r\n var s = d3.set(indices);\r\n this.$node.selectAll('g.row').classed('selected', (d) => s.has(String(d.d)));\r\n this.$node.selectAll('line.slope').classed('selected', (d) => s.has(String(d.data_index)));\r\n }\r\n }\r\n\r\n mouseOver(dataIndex:number, hover = true) {\r\n this.fire('hoverChanged', hover ? dataIndex : -1);\r\n this.mouseOverItem(dataIndex, hover);\r\n //update the slope graph\r\n this.$node.selectAll('line.slope[data-index=\"' + dataIndex + '\"]').classed('hover', hover);\r\n }\r\n\r\n renderSlopeGraphs($body:d3.Selection, rankings:model.Ranking[], orders:number[][], shifts:any[], context:renderer.IRenderContext) {\r\n var slopes = orders.slice(1).map((d, i) => ({left: orders[i], left_i: i, right: d, right_i: i + 1}));\r\n var $slopes = $body.selectAll('g.slopegraph').data(slopes);\r\n $slopes.enter().append('g').attr({\r\n 'class': 'slopegraph'\r\n });\r\n $slopes.attr({\r\n transform: (d, i) => 'translate(' + (shifts[i + 1].shift - this.options.slopeWidth) + ',0)'\r\n });\r\n var $lines = $slopes.selectAll('line.slope').data((d, i) => {\r\n var cache = {};\r\n d.right.forEach((data_index, pos) => {\r\n cache[data_index] = pos;\r\n });\r\n return d.left.map((data_index, pos) => ({\r\n data_index: data_index,\r\n lpos: pos,\r\n rpos: cache[data_index]\r\n })).filter((d) => d.rpos != null);\r\n });\r\n $lines.enter().append('line').attr({\r\n 'class': 'slope',\r\n x2: this.options.slopeWidth\r\n }).on('mouseenter', (d) => {\r\n this.mouseOver(d.data_index, true);\r\n }).on('mouseleave', (d) => {\r\n this.mouseOver(d.data_index, false);\r\n });\r\n $lines.attr({\r\n 'data-index': (d) => d.data_index\r\n });\r\n $lines.attr({\r\n y1: (d:any) => {\r\n return context.rowHeight(d.lpos) * 0.5 + context.cellY(d.lpos);\r\n },\r\n y2: (d:any) => {\r\n return context.rowHeight(d.rpos) * 0.5 + context.cellY(d.rpos);\r\n }\r\n });\r\n $lines.exit().remove();\r\n\r\n $slopes.exit().remove();\r\n }\r\n\r\n updateFreeze(left:number) {\r\n const numColumns = this.options.freezeCols;\r\n const $cols = this.$node.select('g.cols');\r\n const $n = this.$node.select('#c' + this.options.idPrefix + 'Freeze').select('rect');\r\n var $col = $cols.select(`g.child[data-index=\"${numColumns}\"]`);\r\n if ($col.empty()) {\r\n //use the last one\r\n $col = $cols.select('g.child:last-of-type');\r\n }\r\n var x = d3.transform($col.attr('transform') || '').translate[0];\r\n $n.attr('x', left + x);\r\n $cols.selectAll('g.uchild').attr({\r\n 'clip-path': (d, i) => i < numColumns ? null : 'url(#c' + this.options.idPrefix + 'Freeze)',\r\n 'transform': (d, i) => i < numColumns ? 'translate(' + left + ',0)' : null\r\n });\r\n\r\n\r\n this.currentFreezeLeft = left;\r\n //update all mouse over rows and selected rows with\r\n this.updateFrozenRows();\r\n }\r\n\r\n private updateFrozenRows() {\r\n const numColumns = this.options.freezeCols;\r\n if (numColumns <= 0) {\r\n return;\r\n }\r\n const left = this.currentFreezeLeft;\r\n const $rows = this.$node.select('g.rows');\r\n\r\n $rows.select('g.row.hover g.values').selectAll('g.uchild').attr({\r\n 'clip-path': (d, i) => i < numColumns ? null : 'url(#c' + this.options.idPrefix + 'Freeze)',\r\n 'transform': (d, i) => i < numColumns ? 'translate(' + left + ',0)' : null\r\n });\r\n }\r\n\r\n /**\r\n * render the body\r\n */\r\n update() {\r\n var rankings = this.data.getRankings();\r\n var maxElems = d3.max(rankings, (d) => d.getOrder().length) || 0;\r\n var height = this.options.rowHeight * maxElems;\r\n var visibleRange = this.slicer(0, maxElems, (i) => i * this.options.rowHeight);\r\n var orderSlicer = (order:number[]) => {\r\n if (visibleRange.from === 0 && order.length <= visibleRange.to) {\r\n return order;\r\n }\r\n return order.slice(visibleRange.from, Math.min(order.length, visibleRange.to));\r\n };\r\n var orders = rankings.map((r) => orderSlicer(r.getOrder()));\r\n var context = this.createContext(visibleRange.from);\r\n\r\n\r\n //compute offsets and shifts for individual rankings and columns inside the rankings\r\n var offset = 0,\r\n shifts = rankings.map((d, i) => {\r\n var r = offset;\r\n offset += this.options.slopeWidth;\r\n var o2 = 0,\r\n shift2 = d.children.filter((d) => !d.isHidden()).map((o) => {\r\n var r = o2;\r\n o2 += (o.getCompressed() ? model.Column.COMPRESSED_WIDTH : o.getWidth()) + this.options.columnPadding;\r\n if (model.isMultiLevelColumn(o) && !(o).getCollapsed() && !o.getCompressed()) {\r\n o2 += this.options.columnPadding * ((o).length - 1);\r\n }\r\n return r;\r\n });\r\n offset += o2;\r\n return {\r\n shift: r,\r\n shifts: shift2,\r\n width: o2\r\n };\r\n });\r\n\r\n this.$node.attr({\r\n width: Math.max(0, offset - this.options.slopeWidth), //added one to often\r\n height: height\r\n });\r\n this.updateClipPaths(rankings, context, height);\r\n\r\n\r\n\r\n var $body = this.$node.select('g.body');\r\n if ($body.empty()) {\r\n $body = this.$node.append('g').classed('body', true);\r\n }\r\n\r\n\r\n this.renderRankings($body, rankings, orders, shifts, context, height);\r\n this.renderSlopeGraphs($body, rankings, orders, shifts, context);\r\n }\r\n}\r\n\r\n\r\nexport class BodyCanvasRenderer extends utils.AEventDispatcher implements IBodyRenderer {\r\n private options = {\r\n rowHeight: 20,\r\n rowPadding: 1,\r\n rowBarPadding: 1,\r\n idPrefix: '',\r\n slopeWidth: 150,\r\n columnPadding: 5,\r\n stacked: true,\r\n\r\n renderers: renderer.renderers(),\r\n\r\n meanLine: false,\r\n\r\n freezeCols: 0\r\n };\r\n\r\n private $node:d3.Selection;\r\n\r\n histCache = d3.map>();\r\n\r\n constructor(private data:provider.DataProvider, parent:Element, private slicer:ISlicer, options = {}) {\r\n super();\r\n //merge options\r\n utils.merge(this.options, options);\r\n\r\n this.$node = d3.select(parent).append('canvas').classed('lu-canvas.body', true);\r\n\r\n this.changeDataStorage(data);\r\n }\r\n\r\n createEventList() {\r\n return super.createEventList().concat(['hoverChanged']);\r\n }\r\n\r\n get node() {\r\n return this.$node.node();\r\n }\r\n\r\n setOption(key:string, value:any) {\r\n this.options[key] = value;\r\n }\r\n\r\n updateFreeze(left: number) {\r\n //dummy impl\r\n }\r\n\r\n select(dataIndex:number, additional = false) {\r\n //dummy impl\r\n }\r\n\r\n changeDataStorage(data:provider.DataProvider) {\r\n if (this.data) {\r\n this.data.on(['dirtyValues.bodyRenderer', 'selectionChanged.bodyRenderer'], null);\r\n }\r\n this.data = data;\r\n data.on('dirtyValues.bodyRenderer', utils.delayedCall(this.update.bind(this), 1));\r\n //data.on('selectionChanged.bodyRenderer', utils.delayedCall(this.drawSelection.bind(this), 1));\r\n }\r\n\r\n createContext(index_shift:number):renderer.IRenderContext {\r\n var options = this.options;\r\n return {\r\n rowKey: undefined,\r\n cellY(index:number) {\r\n return (index + index_shift) * (options.rowHeight);\r\n },\r\n cellPrevY(index:number) {\r\n return (index + index_shift) * (options.rowHeight);\r\n },\r\n cellX(index:number) {\r\n return 0;\r\n },\r\n rowHeight(index:number) {\r\n return options.rowHeight * (1 - options.rowPadding);\r\n },\r\n renderer(col:model.Column) {\r\n if (col.getCompressed() && model.isNumberColumn(col)) {\r\n return options.renderers.heatmap;\r\n }\r\n if (col instanceof model.StackColumn && col.getCollapsed()) {\r\n return options.renderers.number;\r\n }\r\n if (model.isMultiLevelColumn(col) && (col).getCollapsed()) {\r\n return options.renderers.string;\r\n }\r\n var l = options.renderers[col.desc.type];\r\n return l || renderer.defaultRenderer();\r\n },\r\n render(col:model.Column, $this:d3.Selection, data:any[], context:renderer.IRenderContext = this) {\r\n //dummy impl\r\n },\r\n renderCanvas(col:model.Column, ctx:CanvasRenderingContext2D, data:any[], context:renderer.IRenderContext = this) {\r\n const act_renderer = this.renderer(col);\r\n act_renderer.renderCanvas(ctx, col, data, context);\r\n },\r\n showStacked(col:model.Column) {\r\n return col instanceof model.StackColumn && options.stacked;\r\n },\r\n idPrefix: options.idPrefix,\r\n\r\n animated: ($sel:d3.Selection) => $sel,\r\n\r\n //show mean line if option is enabled and top level\r\n showMeanLine: (col: model.Column) => options.meanLine && model.isNumberColumn(col) && !col.getCompressed() && col.parent instanceof model.Ranking,\r\n\r\n option: (key:string, default_:any) => (key in options) ? options[key] : default_\r\n };\r\n }\r\n\r\n\r\n renderRankings(ctx: CanvasRenderingContext2D, rankings:model.Ranking[], orders:number[][], shifts:any[], context:renderer.IRenderContext, height: number) {\r\n const dataPromises = orders.map((r) => this.data.view(r));\r\n ctx.save();\r\n\r\n\r\n rankings.forEach((ranking, j) => {\r\n\r\n dataPromises[j].then((data) => {\r\n ctx.save();\r\n ctx.translate(shifts[j].shift, 0);\r\n\r\n ctx.save();\r\n ctx.fillStyle = '#f7f7f7';\r\n orders[j].forEach((order,i) => {\r\n if (i%2 === 0) {\r\n ctx.fillRect(0, context.cellY(i), shifts[j].width, context.rowHeight(i));\r\n }\r\n });\r\n ctx.restore();\r\n\r\n ranking.children.forEach((child, i) => {\r\n ctx.save();\r\n ctx.translate(shifts[j].shifts[i], 0);\r\n context.renderCanvas(child, ctx, data, context);\r\n ctx.restore();\r\n });\r\n ctx.restore();\r\n });\r\n });\r\n ctx.restore();\r\n }\r\n\r\n renderSlopeGraphs(ctx: CanvasRenderingContext2D, rankings:model.Ranking[], orders:number[][], shifts:any[], context:renderer.IRenderContext) {\r\n var slopes = orders.slice(1).map((d, i) => ({left: orders[i], left_i: i, right: d, right_i: i + 1}));\r\n ctx.save();\r\n ctx.fillStyle = 'darkgray';\r\n slopes.forEach((slope, i) => {\r\n ctx.save();\r\n ctx.translate(shifts[i + 1].shift - this.options.slopeWidth, 0);\r\n\r\n var cache = {};\r\n slope.right.forEach((data_index, pos) => {\r\n cache[data_index] = pos;\r\n });\r\n const lines = slope.left.map((data_index, pos) => ({\r\n data_index: data_index,\r\n lpos: pos,\r\n rpos: cache[data_index]\r\n })).filter((d) => d.rpos != null);\r\n\r\n ctx.beginPath();\r\n lines.forEach((line) => {\r\n ctx.moveTo(0, context.rowHeight(line.lpos) * 0.5 + context.cellY(line.lpos));\r\n ctx.lineTo(this.options.slopeWidth, context.rowHeight(line.rpos) * 0.5 + context.cellY(line.rpos));\r\n });\r\n ctx.stroke();\r\n\r\n ctx.restore();\r\n });\r\n ctx.restore();\r\n }\r\n\r\n /**\r\n * render the body\r\n */\r\n update() {\r\n var rankings = this.data.getRankings();\r\n var maxElems = d3.max(rankings, (d) => d.getOrder().length) || 0;\r\n var height = this.options.rowHeight * maxElems;\r\n var visibleRange = this.slicer(0, maxElems, (i) => i * this.options.rowHeight);\r\n var orderSlicer = (order:number[]) => {\r\n if (visibleRange.from === 0 && order.length <= visibleRange.to) {\r\n return order;\r\n }\r\n return order.slice(visibleRange.from, Math.min(order.length, visibleRange.to));\r\n };\r\n var orders = rankings.map((r) => orderSlicer(r.getOrder()));\r\n var context = this.createContext(visibleRange.from);\r\n\r\n\r\n //compute offsets and shifts for individual rankings and columns inside the rankings\r\n var offset = 0,\r\n shifts = rankings.map((d, i) => {\r\n var r = offset;\r\n offset += this.options.slopeWidth;\r\n var o2 = 0,\r\n shift2 = d.children.filter((d) => !d.isHidden()).map((o) => {\r\n var r = o2;\r\n o2 += (o.getCompressed() ? model.Column.COMPRESSED_WIDTH : o.getWidth()) + this.options.columnPadding;\r\n if (o instanceof model.StackColumn && !o.getCollapsed() && !o.getCompressed()) {\r\n o2 += this.options.columnPadding * (o.length - 1);\r\n }\r\n return r;\r\n });\r\n offset += o2;\r\n return {\r\n shift: r,\r\n shifts: shift2,\r\n width: o2\r\n };\r\n });\r\n\r\n this.$node.attr({\r\n width: offset,\r\n height: height\r\n });\r\n\r\n const ctx = (this.$node.node()).getContext('2d');\r\n ctx.font = '10pt Times New Roman';\r\n ctx.textBaseline = 'top';\r\n ctx.clearRect(0,0,ctx.canvas.width, ctx.canvas.height);\r\n\r\n this.renderRankings(ctx, rankings, orders, shifts, context, height);\r\n this.renderSlopeGraphs(ctx, rankings, orders, shifts, context);\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/ui.ts\n **/","/**\n * a set of simple dialogs for LineUp\n *\n * Created by Samuel Gratzl on 24.08.2015.\n */\n\nimport model = require('./model');\nimport utils = require('./utils');\nimport mappingeditor = require('./mappingeditor');\nimport provider = require('./provider');\n\nexport function dialogForm(title, body, buttonsWithLabel = false) {\n return '' + title + '' +\n '
' +\n body + '' +\n '' +\n '
';\n}\n\n/**\n * creates a simple popup dialog under the given attachment\n * @param attachment\n * @param title\n * @param body\n * @returns {Selection}\n */\nexport function makePopup(attachement:d3.Selection, title:string, body:string) {\n var pos = utils.offset(attachement.node());\n var $popup = d3.select('body').append('div')\n .attr({\n 'class': 'lu-popup2'\n }).style({\n left: pos.left + 'px',\n top: pos.top + 'px'\n }).html(dialogForm(title, body));\n function movePopup() {\n //.style(\"left\", (this.parentElement.offsetLeft + (d3.event).dx) + 'px')\n //.style(\"top\", (this.parentElement.offsetTop + d3.event.dy) + 'px');\n //const mouse = d3.mouse(this.parentElement);\n $popup.style({\n left: (this.parentElement.offsetLeft + (d3.event).dx) + 'px',\n top: (this.parentElement.offsetTop + (d3.event).dy) + 'px'\n });\n }\n $popup.select('span.lu-popup-title').call(d3.behavior.drag().on('drag', movePopup));\n $popup.on('keydown', () => {\n if (d3.event.which === 27) {\n $popup.remove();\n }\n });\n var auto = $popup.select('input[autofocus]').node();\n if (auto) {\n auto.focus();\n }\n return $popup;\n\n}\n\n/**\n * opens a rename dialog for the given column\n * @param column the column to rename\n * @param $header the visual header element of this column\n */\nexport function openRenameDialog(column:model.Column, $header:d3.Selection) {\n var popup = makePopup($header, 'Rename Column', `\n
\n
\n
`);\n\n popup.select('.ok').on('click', function () {\n var newValue = popup.select('input[type=\"text\"]').property('value');\n var newColor = popup.select('input[type=\"color\"]').property('value');\n var newDescription = popup.select('textarea').property('value');\n column.setMetaData( { label: newValue, color: newColor, description: newDescription});\n popup.remove();\n });\n\n popup.select('.cancel').on('click', function () {\n popup.remove();\n });\n}\n\n\n/**\n * opens a dialog for editing the link of a column\n * @param column the column to rename\n * @param $header the visual header element of this column\n */\nexport function openEditLinkDialog(column:model.LinkColumn, $header:d3.Selection, templates: string[] = []) {\n var t = ` 0 ? 'list=\"lineupPatternList\"' : ''}>
`;\n if (templates.length > 0) {\n t += ''+templates.map((t) => `';\n }\n\n var popup = makePopup($header, 'Edit Link ($ as Placeholder)', t);\n\n popup.select('.ok').on('click', function () {\n var newValue = popup.select('input[type=\"text\"]').property('value');\n column.setLink(newValue);\n\n popup.remove();\n });\n\n popup.select('.cancel').on('click', function () {\n popup.remove();\n });\n}\n\n/**\n * opens a search dialog for the given column\n * @param column the column to rename\n * @param $header the visual header element of this column\n * @param provider the data provider for the actual search\n */\nexport function openSearchDialog(column:model.Column, $header:d3.Selection, provider:provider.DataProvider) {\n var popup = makePopup($header, 'Search', '

');\n\n popup.select('input[type=\"text\"]').on('input', function () {\n var search:any = (d3.event.target).value;\n if (search.length >= 3) {\n var isRegex = popup.select('input[type=\"checkbox\"]').property('checked');\n if (isRegex) {\n search = new RegExp(search);\n }\n provider.searchSelect(search, column);\n }\n });\n\n function updateImpl() {\n var search = popup.select('input[type=\"text\"]').property('value');\n var isRegex = popup.select('input[type=\"text\"]').property('checked');\n if (search.length > 0) {\n if (isRegex) {\n search = new RegExp(search);\n }\n provider.searchSelect(search, column);\n }\n popup.remove();\n }\n\n popup.select('input[type=\"checkbox\"]').on('change', updateImpl);\n popup.select('.ok').on('click', updateImpl);\n\n popup.select('.cancel').on('click', function () {\n popup.remove();\n });\n}\n\n/**\n * opens a dialog for editing the weights of a stack column\n * @param column the column to filter\n * @param $header the visual header element of this column\n */\nexport function openEditWeightsDialog(column:model.StackColumn, $header:d3.Selection) {\n var weights = column.getWeights(),\n children = column.children.map((d, i) => ({col: d, weight: weights[i] * 100} ));\n\n //map weights to pixels\n var scale = d3.scale.linear().domain([0, 100]).range([0, 120]);\n\n var $popup = makePopup($header, 'Edit Weights', '
');\n\n //show as a table with inputs and bars\n var $rows = $popup.select('table').selectAll('tr').data(children);\n var $rows_enter = $rows.enter().append('tr');\n $rows_enter.append('td')\n .append('input').attr({\n type: 'number',\n value: (d) => d.weight,\n min: 0,\n max: 100,\n size: 5\n }).on('input', function (d) {\n d.weight = +this.value;\n redraw();\n });\n\n $rows_enter.append('td').append('div')\n .attr('class', (d) => 'bar ' + d.col.cssClass)\n .style('background-color', (d) => d.col.color);\n\n $rows_enter.append('td').text((d) => d.col.label);\n\n function redraw() {\n $rows.select('.bar').transition().style('width', (d) => scale(d.weight) + 'px');\n }\n\n redraw();\n\n $popup.select('.cancel').on('click', function () {\n column.setWeights(weights);\n $popup.remove();\n });\n $popup.select('.reset').on('click', function () {\n children.forEach((d, i) => d.weight = weights[i] * 100);\n $rows.select('input').property('value', (d) => d.weight);\n redraw();\n });\n $popup.select('.ok').on('click', function () {\n column.setWeights(children.map((d) => d.weight));\n $popup.remove();\n });\n}\n\n/**\n * flags the header to be filtered\n * @param $header\n * @param filtered\n */\nfunction markFiltered($header: d3.Selection, filtered = false) {\n $header.classed('filtered', filtered);\n}\n\nfunction sortbyName(prop: string) {\n return function(a, b) {\n const av = a[prop],\n bv = b[prop];\n if (av.toLowerCase() < bv.toLowerCase()) {\n return -1;\n }\n if (av.toLowerCase() > bv.toLowerCase()) {\n return 1;\n }\n return 0;\n };\n}\n\n/**\n * opens a dialog for filtering a categorical column\n * @param column the column to rename\n * @param $header the visual header element of this column\n */\nfunction openCategoricalFilter(column:model.CategoricalColumn, $header:d3.Selection) {\n var bak = column.getFilter() || [];\n var popup = makePopup($header, 'Edit Filter', '
Category
');\n\n // list all data rows !\n const colors = column.categoryColors,\n labels = column.categoryLabels;\n var trData = column.categories.map(function (d, i) {\n return {cat: d, label: labels[i], isChecked: bak.length === 0 || bak.indexOf(d) >= 0, color: colors[i]};\n }).sort(sortbyName('label'));\n\n const $rows = popup.select('tbody').selectAll('tr').data(trData);\n const $rows_enter = $rows.enter().append('tr');\n $rows_enter.append('td').attr('class', 'checkmark');\n $rows_enter.append('td').attr('class', 'datalabel').text((d) => d.label);\n $rows_enter.on('click', (d) => {\n d.isChecked = !d.isChecked;\n redraw();\n });\n\n function redraw() {\n $rows.select('.checkmark').html((d) => '');\n $rows.select('.datalabel').style('opacity', (d) => d.isChecked ? '1.0' : '.8');\n }\n\n redraw();\n\n var isCheckedAll = true;\n\n function redrawSelectAll() {\n popup.select('.selectAll').html((d) => '');\n popup.select('thead').on('click', (d) => {\n isCheckedAll = !isCheckedAll;\n trData.forEach((row) => row.isChecked = isCheckedAll);\n redraw();\n redrawSelectAll();\n });\n }\n\n redrawSelectAll();\n\n function updateData(filter) {\n markFiltered($header, filter && filter.length > 0 && filter.length < trData.length);\n column.setFilter(filter);\n }\n\n popup.select('.cancel').on('click', function () {\n updateData(bak);\n popup.remove();\n });\n popup.select('.reset').on('click', function () {\n trData.forEach(d => d.isChecked = true);\n redraw();\n updateData(null);\n });\n popup.select('.ok').on('click', function () {\n var f = trData.filter((d) => d.isChecked).map(d => d.cat);\n if (f.length === trData.length) {\n f = [];\n }\n updateData(f);\n popup.remove();\n });\n}\n\n/**\n * opens a dialog for filtering a string column\n * @param column the column to filter\n * @param $header the visual header element of this column\n */\nfunction openStringFilter(column:model.StringColumn, $header:d3.Selection) {\n var bak = column.getFilter() || '', bakMissing = bak === model.StringColumn.FILTER_MISSING;\n if (bakMissing) {\n bak = '';\n }\n\n var $popup = makePopup($header, 'Filter',\n `\n

\n
`);\n\n function updateData(filter) {\n markFiltered($header, (filter && filter !== ''));\n column.setFilter(filter);\n }\n\n function updateImpl(force) {\n //get value\n var search:any = $popup.select('input[type=\"text\"]').property('value');\n var filterMissing = $popup.select('input[type=\"checkbox\"].lu_filter_missing').property('checked');\n if (filterMissing && search === '') {\n search = model.StringColumn.FILTER_MISSING;\n }\n if (search === '') { //reset\n updateData(search);\n return;\n }\n if (search.length >= 3 || force) {\n var isRegex = $popup.select('input[type=\"checkbox\"]:first-of-type').property('checked');\n if (isRegex && search !== model.StringColumn.FILTER_MISSING) {\n search = new RegExp(search);\n }\n updateData(search);\n }\n\n }\n\n $popup.selectAll('input[type=\"checkbox\"]').on('change', updateImpl);\n $popup.select('input[type=\"text\"]').on('input', updateImpl);\n\n $popup.select('.cancel').on('click', function () {\n $popup.select('input[type=\"text\"]').property('value', bak || '');\n $popup.select('input[type=\"checkbox\"]:first-of-type').property('checked', bak instanceof RegExp ? 'checked' : null);\n $popup.select('input[type=\"checkbox\"].lu_filter_missing').property('checked', bakMissing ? 'checked' : null);\n updateData(bak);\n $popup.remove();\n });\n $popup.select('.reset').on('click', function () {\n $popup.select('input[type=\"text\"]').property('value', '');\n $popup.selectAll('input[type=\"checkbox\"]').property('checked', null);\n updateData(null);\n });\n $popup.select('.ok').on('click', function () {\n updateImpl(true);\n $popup.remove();\n });\n}\n\n\n/**\n * opens a dialog for filtering a boolean column\n * @param column the column to filter\n * @param $header the visual header element of this column\n */\nfunction openBooleanFilter(column:model.BooleanColumn, $header:d3.Selection) {\n var bak = column.getFilter();\n\n var $popup = makePopup($header, 'Filter',\n `
\n
\n \n
`);\n\n function updateData(filter) {\n markFiltered($header, (filter !== null));\n column.setFilter(filter);\n }\n\n function updateImpl(force) {\n //get value\n const isTrue = $popup.select('input[type=\"radio\"][value=\"true\"]').property('checked');\n const isFalse = $popup.select('input[type=\"radio\"][value=\"false\"]').property('checked');\n updateData(isTrue ? true : (isFalse ? false: null));\n }\n\n $popup.selectAll('input[type=\"radio\"]').on('change', updateImpl);\n\n $popup.select('.cancel').on('click', function () {\n updateData(bak);\n $popup.remove();\n });\n $popup.select('.reset').on('click', function () {\n const v = bak === null ? 'null': String(bak);\n $popup.selectAll('input[type=\"radio\"]').property('checked', function() {\n return this.value === v;\n });\n updateData(null);\n });\n $popup.select('.ok').on('click', function () {\n updateImpl(true);\n $popup.remove();\n });\n}\n\n\n/**\n * opens a dialog for editing the script code\n * @param column the column to edit\n * @param $header the visual header element of this column\n */\nexport function openEditScriptDialog(column:model.ScriptColumn, $header:d3.Selection) {\n const bak = column.getScript();\n const $popup = makePopup($header, 'Edit Script',\n `Parameters: values: number[], children: Column[]
\n
`);\n\n function updateData(script) {\n column.setScript(script);\n }\n\n function updateImpl() {\n //get value\n var script = $popup.select('textarea').property('value');\n updateData(script);\n }\n\n $popup.select('.cancel').on('click', function () {\n $popup.select('textarea').property('value', bak);\n updateData(bak);\n $popup.remove();\n });\n $popup.select('.reset').on('click', function () {\n $popup.select('textarea').property('value', model.ScriptColumn.DEFAULT_SCRIPT);\n updateData(model.ScriptColumn.DEFAULT_SCRIPT);\n });\n $popup.select('.ok').on('click', function () {\n updateImpl();\n $popup.remove();\n });\n}\n\n/**\n * opens the mapping editor for a given NumberColumn\n * @param column the column to rename\n * @param $header the visual header element of this column\n * @param data the data provider for illustrating the mapping by example\n */\nfunction openMappingEditor(column:model.NumberColumn, $header:d3.Selection, data:provider.DataProvider) {\n var pos = utils.offset($header.node()),\n bak = column.getMapping(),\n original = column.getOriginalMapping(),\n bakfilter = column.getFilter(),\n act: model.IMappingFunction = bak.clone(),\n actfilter = bakfilter;\n\n var popup = d3.select('body').append('div')\n .attr({\n 'class': 'lu-popup'\n }).style({\n left: pos.left + 'px',\n top: pos.top + 'px'\n })\n .html(dialogForm('Change Mapping', '
'));\n\n function applyMapping(newscale: model.IMappingFunction, filter: {min: number, max: number }) {\n act = newscale;\n actfilter = filter;\n markFiltered($header, !newscale.eq(original) || (bakfilter.min !== filter.min || bakfilter.max !== filter.min));\n\n column.setMapping(newscale);\n column.setFilter(filter);\n }\n\n var editorOptions = {\n callback: applyMapping,\n triggerCallback: 'dragend'\n };\n var data_sample = data.mappingSample(column);\n var editor = mappingeditor.create(popup.select('.mappingArea').node(), act, original, actfilter, data_sample, editorOptions);\n\n\n popup.select('.ok').on('click', function () {\n applyMapping(editor.scale, editor.filter);\n popup.remove();\n });\n popup.select('.cancel').on('click', function () {\n column.setMapping(bak);\n markFiltered($header, !bak.eq(original));\n popup.remove();\n });\n popup.select('.reset').on('click', function () {\n bak = original;\n act = bak.clone();\n bakfilter = {min: -Infinity, max: +Infinity};\n actfilter = bakfilter;\n applyMapping(act, actfilter);\n popup.selectAll('.mappingArea *').remove();\n editor = mappingeditor.create(popup.select('.mappingArea').node(), act, original, actfilter, data_sample, editorOptions);\n });\n}\n\n\n/**\n * opens the mapping editor for a given CategoricalNumberColumn, i.e. to map categories to numbers\n * @param column the column to rename\n * @param $header the visual header element of this column\n */\nfunction openCategoricalMappingEditor(column:model.CategoricalNumberColumn, $header:d3.Selection) {\n var bak = column.getFilter() || [];\n\n var scale = d3.scale.linear().domain([0, 100]).range([0, 120]);\n\n var $popup = makePopup($header, 'Edit Categorical Mapping', '
ScaleCategory
');\n\n const range = column.getScale().range,\n colors = column.categoryColors,\n labels = column.categoryLabels;\n\n const trData = column.categories.map((d, i) => {\n return {cat: d, label: labels[i], isChecked: bak.length === 0 || bak.indexOf(d) >= 0, range: range[i] * 100, color: colors[i]};\n }).sort(sortbyName('label'));\n\n var $rows = $popup.select('tbody').selectAll('tr').data(trData);\n var $rows_enter = $rows.enter().append('tr');\n $rows_enter.append('td').attr('class', 'checkmark').on('click', (d) => {\n d.isChecked = !d.isChecked;\n redraw();\n });\n $rows_enter.append('td')\n .append('input').attr({\n type: 'number',\n value: (d) => d.range,\n min: 0,\n max: 100,\n size: 5\n }).on('input', function (d) {\n d.range = +this.value;\n redraw();\n });\n $rows_enter.append('td').append('div').attr('class', 'bar').style('background-color', (d) => d.color);\n $rows_enter.append('td').attr('class', 'datalabel').text((d) => d.label);\n\n function redraw() {\n $rows.select('.checkmark').html((d) => '');\n $rows.select('.bar').transition().style('width', (d) => scale(d.range) + 'px');\n $rows.select('.datalabel').style('opacity', (d) => d.isChecked ? '1.0' : '.8');\n }\n\n redraw();\n\n var isCheckedAll = true;\n\n function redrawSelectAll() {\n $popup.select('.selectAll').html((d) => '');\n $popup.select('thead').on('click', (d) => {\n isCheckedAll = !isCheckedAll;\n trData.forEach((row) => row.isChecked = isCheckedAll);\n redraw();\n redrawSelectAll();\n });\n }\n\n redrawSelectAll();\n\n function updateData(filter) {\n markFiltered($header, filter && filter.length > 0 && filter.length < trData.length);\n column.setFilter(filter);\n }\n\n $popup.select('.cancel').on('click', function () {\n updateData(bak);\n column.setMapping(range);\n $popup.remove();\n });\n $popup.select('.reset').on('click', function () {\n trData.forEach(d => {\n d.isChecked = true;\n d.range = 50;\n });\n redraw();\n updateData(null);\n column.setMapping(trData.map(() => 1));\n });\n $popup.select('.ok').on('click', function () {\n var f = trData.filter((d) => d.isChecked).map(d => d.cat);\n if (f.length === trData.length) {\n f = [];\n }\n updateData(f);\n column.setMapping(trData.map((d) => d.range / 100));\n $popup.remove();\n });\n}\n\n/**\n * returns all known filter dialogs mappings by type\n * @return\n */\nexport function filterDialogs() {\n return {\n string: openStringFilter,\n categorical: openCategoricalFilter,\n number: openMappingEditor,\n ordinal: openCategoricalMappingEditor,\n boolean: openBooleanFilter\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/ui_dialogs.ts\n **/","/**\n * Created by Samuel Gratzl on 14.08.2015.\n */\n\n///\nimport d3 = require('d3');\nimport utils = require('./utils');\nimport model = require('./model');\n\n\nfunction clamp(v: number, min: number, max: number) {\n return Math.max(Math.min(v, max), min);\n}\n\nexport class MappingEditor {\n private options = {\n width: 370,\n height: 225,\n padding_hor: 7,\n padding_ver: 7,\n filter_height: 20,\n radius: 5,\n callback: (d)=>d,\n callbackThisArg: null,\n triggerCallback: 'change' //change, dragend\n };\n\n private computeFilter: ()=>model.INumberFilter;\n\n constructor(private parent: HTMLElement, private scale_: model.IMappingFunction, private original: model.IMappingFunction, private old_filter: model.INumberFilter, private dataPromise: Promise, options: any = {}) {\n utils.merge(this.options, options);\n //work on a local copy\n this.scale_ = scale_.clone();\n\n this.build(d3.select(parent));\n }\n\n get scale() {\n return this.scale_;\n }\n\n get filter(): model.INumberFilter {\n return this.computeFilter();\n }\n\n private build($root: d3.Selection) {\n const options = this.options,\n that = this;\n $root = $root.append('div').classed('lugui-me', true);\n\n\n const width = options.width - options.padding_hor * 2;\n const height = options.height - options.padding_ver * 2 - options.filter_height;\n\n ($root.node()).innerHTML = `
\n
\n
\n
\n 0\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n > 0\n \n \n \n \n < 1\n \n \n \n \n
\n 1\n \n
\n
\n
\n \n \n
\n
`;\n\n\n const raw2pixel = d3.scale.linear().domain([Math.min(this.scale.domain[0], this.original.domain[0]), Math.max(this.scale.domain[this.scale.domain.length - 1], this.original.domain[this.original.domain.length - 1])])\n .range([0, width]);\n const normal2pixel = d3.scale.linear().domain([0, 1])\n .range([0, width]);\n\n $root.select('input.raw_min')\n .property('value', raw2pixel.domain()[0])\n .on('blur', function () {\n var d = raw2pixel.domain();\n d[0] = parseFloat(this.value);\n raw2pixel.domain(d);\n var old = that.scale_.domain;\n old[0] = d[0];\n that.scale_.domain = old;\n updateRaw();\n triggerUpdate();\n });\n $root.select('input.raw_max')\n .property('value', raw2pixel.domain()[1])\n .on('blur', function () {\n var d = raw2pixel.domain();\n d[1] = parseFloat(this.value);\n raw2pixel.domain(d);\n var old = that.scale_.domain;\n old[old.length - 1] = d[1];\n that.scale_.domain = old;\n updateRaw();\n triggerUpdate();\n });\n\n //lines that show mapping of individual data items\n var datalines = $root.select('g.samples').selectAll('line').data([]);\n this.dataPromise.then((data) => {\n //to unique values\n data = d3.set(data.map(String)).values().map(parseFloat);\n\n datalines = datalines.data(data);\n datalines.enter()\n .append('line')\n .attr({\n x1: (d) => normal2pixel(that.scale.apply(d)),\n y1: 0,\n x2: raw2pixel,\n y2: height\n }).style('visibility', function (d) {\n const domain = that.scale.domain;\n return (d < domain[0] || d > domain[domain.length - 1]) ? 'hidden' : null;\n });\n });\n\n function updateDataLines() {\n datalines.attr({\n x1: (d) => normal2pixel(that.scale.apply(d)),\n x2: raw2pixel\n }).style('visibility', function (d) {\n const domain = that.scale.domain;\n return (d < domain[0] || d > domain[domain.length - 1]) ? 'hidden' : null;\n });\n }\n\n function createDrag(move) {\n return d3.behavior.drag()\n .on('dragstart', function () {\n d3.select(this)\n .classed('dragging', true)\n .attr('r', options.radius * 1.1);\n })\n .on('drag', move)\n .on('dragend', function () {\n d3.select(this)\n .classed('dragging', false)\n .attr('r', options.radius);\n triggerUpdate(true);\n });\n }\n\n var mapping_lines = [];\n\n function renderMappingLines() {\n if (!(that.scale instanceof model.ScaleMappingFunction)) {\n return;\n }\n\n {\n let sscale = that.scale;\n let domain = sscale.domain;\n let range = sscale.range;\n\n mapping_lines = domain.map((d, i) => ({r: d, n: range[i]}));\n }\n\n function updateScale() {\n //sort by raw value\n mapping_lines.sort((a, b) => a.r - b.r);\n //update the scale\n let scale = that.scale;\n scale.domain = mapping_lines.map((d) => d.r);\n scale.range = mapping_lines.map((d) => d.n);\n\n //console.log(sscale.domain, sscale.range);\n updateDataLines();\n }\n\n function removePoint(i) {\n if (mapping_lines.length <= 2) {\n return; //can't remove have to have at least two\n }\n mapping_lines.splice(i, 1);\n updateScale();\n renderMappingLines();\n }\n\n function addPoint(x) {\n x = clamp(x, 0, width);\n mapping_lines.push({\n n: normal2pixel.invert(x),\n r: raw2pixel.invert(x)\n });\n updateScale();\n renderMappingLines();\n }\n\n $root.selectAll('rect.adder').on('click', () => {\n addPoint(d3.mouse($root.select('svg > g').node())[0]);\n });\n\n const $mapping = $root.select('g.mappings').selectAll('g.mapping').data(mapping_lines);\n const $mapping_enter = $mapping.enter().append('g').classed('mapping', true).on('contextmenu', (d, i) => {\n d3.event.preventDefault();\n d3.event.stopPropagation();\n removePoint(i);\n });\n $mapping_enter.append('line').attr({\n y1: 0,\n y2: height\n }).call(createDrag(function (d) {\n //drag the line shifts both point in parallel\n const dx = (d3.event).dx;\n const nx = clamp(normal2pixel(d.n) + dx, 0, width);\n const rx = clamp(raw2pixel(d.r) + dx, 0, width);\n d.n = normal2pixel.invert(nx);\n d.r = raw2pixel.invert(rx);\n d3.select(this).attr('x1', nx).attr('x2', rx);\n d3.select(this.parentElement).select('circle.normalized').attr('cx', nx);\n d3.select(this.parentElement).select('circle.raw').attr('cx', rx);\n\n updateScale();\n }));\n $mapping_enter.append('circle').classed('normalized', true).attr('r', options.radius).call(createDrag(function (d) {\n //drag normalized\n const x = clamp(d3.event.x, 0, width);\n d.n = normal2pixel.invert(x);\n d3.select(this).attr('cx', x);\n d3.select(this.parentElement).select('line').attr('x1', x);\n\n updateScale();\n }));\n $mapping_enter.append('circle').classed('raw', true).attr('r', options.radius).attr('cy', height).call(createDrag(function (d) {\n //drag raw\n const x = clamp(d3.event.x, 0, width);\n d.r = raw2pixel.invert(x);\n d3.select(this).attr('cx', x);\n d3.select(this.parentElement).select('line').attr('x2', x);\n\n updateScale();\n }));\n\n $mapping.select('line').attr({\n x1: (d) => normal2pixel(d.n),\n x2: (d) => raw2pixel(d.r)\n });\n $mapping.select('circle.normalized').attr('cx', (d) => normal2pixel(d.n));\n $mapping.select('circle.raw').attr('cx', (d) => raw2pixel(d.r));\n $mapping.exit().remove();\n }\n\n function renderScript() {\n if (!(that.scale instanceof model.ScriptMappingFunction)) {\n $root.select('div.script').style('display', 'none');\n return;\n }\n $root.select('div.script').style('display', null);\n\n let sscale = that.scale;\n const $text = $root.select('textarea').text(sscale.code);\n\n $root.select('div.script').select('button').on('click', () => {\n sscale.code = $text.property('value');\n updateDataLines();\n triggerUpdate();\n });\n }\n\n renderMappingLines();\n renderScript();\n\n function triggerUpdate(isDragEnd = false) {\n if (isDragEnd && (options.triggerCallback !== 'dragend')) {\n return;\n }\n options.callback.call(options.callbackThisArg, that.scale.clone(), that.filter);\n }\n\n {\n let min_filter = (isFinite(this.old_filter.min) ? raw2pixel(this.old_filter.min) : 0);\n let max_filter = (isFinite(this.old_filter.max) ? raw2pixel(this.old_filter.max) : width);\n let toFilterString = (d: number, i: number) => isFinite(d) ? ((i===0?'>':'<')+d.toFixed(1)) : 'any';\n $root.selectAll('g.left_filter, g.right_filter')\n .data([this.old_filter.min, this.old_filter.max])\n .attr('transform', (d,i) => `translate(${i===0?min_filter:max_filter},0)`).call(createDrag(function (d,i) {\n\n //drag normalized\n const x = clamp(d3.event.x, 0, width);\n const v = raw2pixel.invert(x);\n const filter = (x <= 0 && i === 0 ? -Infinity : (x>=width && i===1 ? Infinity : v));\n d3.select(this).datum(filter)\n .attr('transform',`translate(${x},0)`)\n .select('text').text(toFilterString(filter,i));\n }))\n .select('text').text(toFilterString);\n }\n\n this.computeFilter = function () {\n return {\n min: parseFloat($root.select('g.left_filter').datum()),\n max: parseFloat($root.select('g.right_filter').datum())\n };\n };\n\n function updateRaw() {\n const d = raw2pixel.domain();\n $root.select('input.raw_min').property('value', d[0]);\n $root.select('input.raw_max').property('value', d[1]);\n\n updateDataLines();\n renderMappingLines();\n }\n\n updateRaw();\n\n $root.select('select').on('change', function () {\n const v = this.value;\n if (v === 'linear_invert') {\n that.scale_ = new model.ScaleMappingFunction(raw2pixel.domain(), 'linear', [1, 0]);\n } else if (v === 'linear_abs') {\n let d = raw2pixel.domain();\n that.scale_ = new model.ScaleMappingFunction([d[0], (d[1] - d[0]) / 2, d[1]], 'linear', [1, 0, 1]);\n } else if (v === 'script') {\n that.scale_ = new model.ScriptMappingFunction(raw2pixel.domain());\n } else {\n that.scale_ = new model.ScaleMappingFunction(raw2pixel.domain(), v);\n }\n updateDataLines();\n renderMappingLines();\n renderScript();\n triggerUpdate();\n }).property('selectedIndex', function () {\n var name = 'script';\n if (that.scale_ instanceof model.ScaleMappingFunction) {\n name = (that.scale).scaleType;\n }\n const types = ['linear', 'linear_invert', 'linear_abs', 'log', 'pow1.1', 'pow2', 'pow3', 'sqrt', 'script'];\n return types.indexOf(name);\n });\n }\n}\n\nexport function create(parent: HTMLElement, scale: model.IMappingFunction, original: model.IMappingFunction, filter: model.INumberFilter, dataPromise: Promise, options: any = {}) {\n return new MappingEditor(parent, scale, original, filter, dataPromise, options);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/mappingeditor.ts\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/LineUpJS.min.js b/dist/LineUpJS.min.js index 039273688..84a87d6cc 100644 --- a/dist/LineUpJS.min.js +++ b/dist/LineUpJS.min.js @@ -1,8 +1,8 @@ /*! lineupjs - v0.5.3 - 2016 * https://github.com/Caleydo/lineup.js * Copyright (c) 2016 Caleydo Team; Licensed BSD-3-Clause*/ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("d3")):"function"==typeof define&&define.amd?define(["d3"],e):"object"==typeof exports?exports.LineUpJS=e(require("d3")):t.LineUpJS=e(t.d3)}(this,function(t){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){n(1),t.exports=n(3)},function(t,e){},,function(t,e,n){"use strict";function r(t){var e=h.scale.category10().range().slice();return t.forEach(function(t){switch(t.type){case"number":t.color=e.shift()}}),t}function i(t,e,n){return void 0===n&&(n={}),new l.LocalDataProvider(t,e,n)}function o(t,e,n){return void 0===n&&(n={}),new f(e,t,n)}var a=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},s=n(4),l=n(7),c=n(8),u=n(9),p=n(6),d=n(10),h=n(5);e.model=s,e.provider=l,e.renderer=c,e.ui=u,e.utils=p,e.ui_dialogs=d;var f=function(t){function n(r,i,o){var a=this;void 0===o&&(o={}),t.call(this),this.data=i,this.config={idPrefix:Math.random().toString(36).slice(-8).substr(0,3),header:{headerHeight:20,headerHistogramHeight:40,autoRotateLabels:!1,rotationHeight:50,rotationDegree:-20,rankingButtons:u.dummyRankingButtonHook,linkTemplates:[]},htmlLayout:{},renderingOptions:{stacked:!0,animation:!0,histograms:!1,meanLine:!1},body:{renderer:"svg",rowHeight:17,rowPadding:.2,rowBarPadding:1,visibleRowsOnly:!0,backupScrollRows:4,animationDuration:1e3,freezeCols:0,rowActions:[]},svgLayout:{},manipulative:!0,pool:!1,renderers:c.renderers()},this.body=null,this.header=null,this.pools=[],this.contentScroller=null,this.isUpdateInitialized=!1,this.$container=r instanceof h.selection?r:h.select(r),this.$container=this.$container.append("div").classed("lu",!0),this.config.svgLayout=this.config.body,this.config.htmlLayout=this.config.header,e.utils.merge(this.config,o),this.data.on("selectionChanged.main",this.triggerSelection.bind(this)),this.header=new u.HeaderRenderer(i,this.node,{manipulative:this.config.manipulative,headerHeight:this.config.header.headerHeight,headerHistogramHeight:this.config.header.headerHistogramHeight,histograms:this.config.renderingOptions.histograms,autoRotateLabels:this.config.header.autoRotateLabels,rotationHeight:this.config.header.rotationHeight,rotationDegree:this.config.header.rotationDegree,freezeCols:this.config.body.freezeCols,rankingButtons:this.config.header.rankingButtons,linkTemplates:this.config.header.linkTemplates}),this.body=new("svg"===this.config.body.renderer?u.BodyRenderer:u.BodyCanvasRenderer)(i,this.node,this.slice.bind(this),{rowHeight:this.config.body.rowHeight,rowPadding:this.config.body.rowPadding,rowBarPadding:this.config.body.rowBarPadding,animationDuration:this.config.body.animationDuration,meanLine:this.config.renderingOptions.meanLine,animation:this.config.renderingOptions.animation,stacked:this.config.renderingOptions.stacked,actions:this.config.body.rowActions,idPrefix:this.config.idPrefix,freezeCols:this.config.body.freezeCols,renderers:this.config.renderers}),this.body.histCache=this.header.sharedHistCache,this.forward(this.body,n.EVENT_HOVER_CHANGED),this.config.pool&&this.config.manipulative&&this.addPool(new u.PoolRenderer(i,this.node,this.config)),this.config.body.visibleRowsOnly&&(this.contentScroller=new p.ContentScroller(this.$container.node(),this.body.node,{backupRows:this.config.body.backupScrollRows,rowHeight:this.config.body.rowHeight,topShift:function(){return a.header.currentHeight()}}),this.contentScroller.on("scroll",function(t,e){a.header.$node.style("transform","translate(0px,"+t+"px)"),a.config.body.freezeCols>0&&(a.header.updateFreeze(e),a.body.updateFreeze(e))}),this.contentScroller.on("redraw",this.body.update.bind(this.body)))}return a(n,t),n.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat([n.EVENT_HOVER_CHANGED,n.EVENT_SELECTION_CHANGED,n.EVENT_MULTISELECTION_CHANGED,n.EVENT_UPDATE_START,n.EVENT_UPDATE_FINISHED])},n.prototype.addPool=function(t,e){return void 0===e&&(e=this.config),t instanceof u.PoolRenderer?this.pools.push(t):this.pools.push(new u.PoolRenderer(this.data,t,e)),this.pools[this.pools.length-1]},Object.defineProperty(n.prototype,"node",{get:function(){return this.$container.node()},enumerable:!0,configurable:!0}),n.prototype.slice=function(t,e,n){return this.contentScroller?this.contentScroller.select(t,e,n):{from:t,to:e}},n.prototype.destroy=function(){this.pools.forEach(function(t){return t.remove()}),this.$container.remove(),this.contentScroller&&this.contentScroller.destroy()},n.prototype.sortBy=function(t,e){void 0===e&&(e=!1);var n=this.data.find(t);return n&&n.sortByMe(e),null!==n},n.prototype.dump=function(){return this.data.dump()},n.prototype.changeDataStorage=function(t,e){this.data&&this.data.on("selectionChanged.main",null),this.data=t,e&&this.data.restore(e),this.data.on("selectionChanged.main",this.triggerSelection.bind(this)),this.header.changeDataStorage(t),this.body.changeDataStorage(t),this.pools.forEach(function(e){return e.changeDataStorage(t)}),this.update()},n.prototype.triggerSelection=function(t){this.fire(n.EVENT_SELECTION_CHANGED,t.length>0?t[0]:-1),this.fire(n.EVENT_MULTISELECTION_CHANGED,t)},n.prototype.restore=function(t){this.changeDataStorage(this.data,t)},n.prototype.update=function(){var t=this,e=this.isUpdateInitialized?1:3;this.isUpdateInitialized=!0,this.fire(n.EVENT_UPDATE_START),this.header.update(),this.body.update(),this.pools.forEach(function(t){return t.update()}),this.body.on("renderFinished",function(){e-=1,0===e&&t.fire(n.EVENT_UPDATE_FINISHED)})},n.prototype.changeRenderingOption=function(t,e){this.config.renderingOptions[t]=e,"animation"!==t&&"stacked"!==t||(this.body.setOption(t,e),this.body.update())},n.EVENT_HOVER_CHANGED="hoverChanged",n.EVENT_SELECTION_CHANGED="selectionChanged",n.EVENT_MULTISELECTION_CHANGED="multiSelectionChanged",n.EVENT_UPDATE_START="updateStart",n.EVENT_UPDATE_FINISHED="updateFinished",n}(p.AEventDispatcher);e.LineUp=f,e.deriveColors=r,e.createLocalStorage=i,e.create=o},function(t,e,n){"use strict";function r(t){return t.replace(/[\s!#$%&'\(\)\*\+,\.\/:;<=>\?@\[\\\]\^`\{\|}~]/g,"_")}function i(t,e){return t===e||isNaN(t)&&isNaN(e)?0:t-e}function o(t){return t instanceof b&&"function"==typeof t.getNumber||!(t instanceof b)&&null!=t.type.match(/(number|stack|ordinal)/)}function a(t){return t instanceof b&&"function"==typeof t.getCategories||!(t instanceof b)&&null!=t.type.match(/(categorical|ordinal)/)}function s(t){switch(void 0===t&&(t="linear"),t){case"log":return y.scale.log().clamp(!0);case"sqrt":return y.scale.sqrt().clamp(!0);case"pow1.1":return y.scale.pow().exponent(1.1).clamp(!0);case"pow2":return y.scale.pow().exponent(2).clamp(!0);case"pow3":return y.scale.pow().exponent(3).clamp(!0);default:return y.scale.linear().clamp(!0)}}function l(t,e){return t.length===e.length&&t.every(function(t,n){return t===e[n]})}function c(t,e){return"log"===e&&0===t[0]&&(t[0]=1e-7),t}function u(t){if("script"===t.type){var e=new w;return e.restore(t),e}var n=new k;return n.restore(t),n}function p(t,e){var n=null!=t?t.length:0,r=null!=e?e.length:0;return n===r&&(0===n||t.every(function(t,n){return t===e[n]}))}function d(t){return"function"==typeof t.getCollapsed}function h(t,e){void 0===e&&(e={});var n=function(t){function e(e,n){t.call(this,e,n),"function"==typeof this.init&&this.init.apply(this,[].slice.apply(arguments))}return m(e,t),e}(C);return n.prototype.toString=function(){return t},n.prototype=v.merge(n.prototype,e),n}function f(t){return void 0===t&&(t="actions"),{type:"actions",label:t}}function g(){return{number:_,string:E,link:S,stack:A,rank:j,"boolean":F,categorical:P,ordinal:O,actions:x,annotate:L,selection:R,max:H,min:N,mean:N,script:I,nested:W}}var m=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},y=n(5),v=n(6),b=function(t){function e(n,i){t.call(this),this.desc=i,this.width=100,this.parent=null,this.compressed=!1,this.id=r(n),this.label=this.desc.label||this.id,this.description=this.desc.description||"",this.cssClass=this.desc.cssClass||"",this.color=this.desc.color||(""!==this.cssClass?null:e.DEFAULT_COLOR)}return m(e,t),Object.defineProperty(e.prototype,"headerCssClass",{get:function(){return this.desc.type},enumerable:!0,configurable:!0}),e.prototype.assignNewId=function(t){this.id=r(t())},e.prototype.init=function(t){return Promise.resolve(!0)},Object.defineProperty(e.prototype,"fqid",{get:function(){return this.parent?this.parent.fqid+"_"+this.id:this.id},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fqpath",{get:function(){return this.parent?this.parent.fqpath+"@"+this.parent.indexOf(this):""},enumerable:!0,configurable:!0}),e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["widthChanged","filterChanged","labelChanged","metaDataChanged","compressChanged","addColumn","removeColumn","dirty","dirtyHeader","dirtyValues"])},e.prototype.getWidth=function(){return this.width},e.prototype.isHidden=function(){return this.width<=0},e.prototype.setCompressed=function(t){this.compressed!==t&&this.fire(["compressChanged","dirtyHeader","dirtyValues","dirty"],this.compressed,this.compressed=t)},e.prototype.getCompressed=function(){return this.compressed},e.prototype.flatten=function(t,n,r,i){void 0===r&&(r=0),void 0===i&&(i=0);var o=this.compressed?e.COMPRESSED_WIDTH:this.getWidth();return t.push({col:this,offset:n,width:o}),o},e.prototype.setWidth=function(t){this.width!==t&&this.fire(["widthChanged","dirtyHeader","dirtyValues","dirty"],this.width,this.width=t)},e.prototype.setWidthImpl=function(t){this.width=t},e.prototype.setMetaData=function(t){if(t.label!==this.label||this.color!==t.color||this.description!==t.description){var e=this.color===t.color?["labelChanged","metaDataChanged","dirtyHeader","dirty"]:["labelChanged","metaDataChanged","dirtyHeader","dirtyValues","dirty"];this.fire(e,this.getMetaData(),{label:this.label=t.label,color:this.color=t.color,description:this.description=t.description})}},e.prototype.getMetaData=function(){return{label:this.label,color:this.color,description:this.description}},e.prototype.sortByMe=function(t){void 0===t&&(t=!1);var e=this.findMyRanker();return!!e&&e.sortBy(this,t)},e.prototype.toggleMySorting=function(){var t=this.findMyRanker();return!!t&&t.toggleSorting(this)},e.prototype.removeMe=function(){return!!this.parent&&this.parent.remove(this)},e.prototype.insertAfterMe=function(t){return!!this.parent&&null!=this.parent.insertAfter(t,this)},e.prototype.findMyRanker=function(){return this.parent?this.parent.findMyRanker():null},e.prototype.dump=function(t){var n={id:this.id,desc:t(this.desc),width:this.width,compressed:this.compressed};return this.label!==(this.desc.label||this.id)&&(n.label=this.label),this.color!==(this.desc.color||e.DEFAULT_COLOR)&&this.color&&(n.color=this.color),n},e.prototype.restore=function(t,e){this.width=t.width||this.width,this.label=t.label||this.label,this.color=t.color||this.color,this.compressed=t.compressed===!0},e.prototype.getLabel=function(t){return""+this.getValue(t)},e.prototype.getValue=function(t){return""},e.prototype.compare=function(t,e){return 0},e.prototype.isFiltered=function(){return!1},e.prototype.filter=function(t){return null!==t},e.DEFAULT_COLOR="#C1C1C1",e.FLAT_ALL_COLUMNS=-1,e.COMPRESSED_WIDTH=16,e}(v.AEventDispatcher);e.Column=b;var C=function(t){function e(e,n){t.call(this,e,n),this.accessor=n.accessor||function(){return null}}return m(e,t),e.prototype.getLabel=function(t){return""+this.getValue(t)},e.prototype.getValue=function(t){return this.accessor(t,this.id,this.desc,this.findMyRanker())},e.prototype.compare=function(t,e){return 0},e}(b);e.ValueColumn=C;var x=function(t){function e(e,n){t.call(this,e,n)}return m(e,t),e.prototype.getLabel=function(t){return""},e.prototype.getValue=function(t){return""},e.prototype.compare=function(t,e){return 0},e}(b);e.DummyColumn=x,e.isNumberColumn=o,e.isCategoricalColumn=a;var k=function(){function t(t,e,n){void 0===t&&(t=[0,1]),void 0===e&&(e="linear"),void 0===n&&(n=[0,1]),this.type=e,this.s=s(e).domain(c(t,this.type)).range(n)}return Object.defineProperty(t.prototype,"domain",{get:function(){return this.s.domain()},set:function(t){this.s.domain(c(t,this.type))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"range",{get:function(){return this.s.range()},set:function(t){this.s.range(t)},enumerable:!0,configurable:!0}),t.prototype.apply=function(t){return this.s(t)},Object.defineProperty(t.prototype,"scaleType",{get:function(){return this.type},enumerable:!0,configurable:!0}),t.prototype.dump=function(){return{type:this.type,domain:this.domain,range:this.range}},t.prototype.eq=function(e){if(!(e instanceof t))return!1;var n=e;return n.type===this.type&&l(this.domain,n.domain)&&l(this.range,n.range)},t.prototype.restore=function(t){this.type=t.type,this.s=s(t.type).domain(t.domain).range(t.range)},t.prototype.clone=function(){return new t(this.domain,this.type,this.range)},t}();e.ScaleMappingFunction=k;var w=function(){function t(t,e){void 0===t&&(t=[0,1]),void 0===e&&(e="return this.linear(value,this.value_min,this.value_max);"),this.domain_=t,this.code_=e,this.f=new Function("value",e)}return Object.defineProperty(t.prototype,"domain",{get:function(){return this.domain_},set:function(t){this.domain_=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"code",{get:function(){return this.code_},set:function(t){this.code_!==t&&(this.code_=t,this.f=new Function("value",t))},enumerable:!0,configurable:!0}),t.prototype.apply=function(t){var e=this.domain_[0],n=this.domain_[this.domain_.length-1],r=this.f.call({value_min:e,value_max:n,value_range:n-e,value_domain:this.domain_.slice(),linear:function(t,e,n){return(t-e)/(n-e)}},t);return"number"==typeof r?Math.max(Math.min(r,1),0):NaN},t.prototype.dump=function(){return{type:"script",code:this.code}},t.prototype.eq=function(e){if(!(e instanceof t))return!1;var n=e;return n.code===this.code},t.prototype.restore=function(t){this.code=t.code},t.prototype.clone=function(){return new t(this.domain,this.code)},t}();e.ScriptMappingFunction=w,e.createMappingFunction=u;var _=function(t){function e(e,n){t.call(this,e,n),this.missingValue=0,this.currentFilter={min:-(1/0),max:1/0},this.numberFormat=y.format(".3n"),n.map?this.mapping=u(n.map):n.domain&&(this.mapping=new k(n.domain,"linear",n.range||[0,1])),this.original=this.mapping.clone(),n.numberFormat&&(this.numberFormat=y.format(n.numberFormat))}return m(e,t),e.prototype.init=function(t){var e=this,n=this.mapping.domain;return isNaN(n[0])||isNaN(n[1])?t(this.desc).then(function(t){return e.mapping.domain=[t.min,t.max],e.original.domain=[t.min,t.max],!0}):Promise.resolve(!0)},e.prototype.dump=function(e){var n=t.prototype.dump.call(this,e);return n.map=this.mapping.dump(),n.filter=this.currentFilter,n.missingValue=this.missingValue,n},e.prototype.restore=function(e,n){t.prototype.restore.call(this,e,n),e.map?this.mapping=u(e.map):e.domain&&(this.mapping=new k(e.domain,"linear",e.range||[0,1])),e.currentFilter&&(this.currentFilter=e.currentFilter),e.missingValue&&(this.missingValue=e.missingValue),e.numberFormat&&(this.numberFormat=y.format(e.numberFormat))},e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["mappingChanged"])},e.prototype.getLabel=function(e){if(this.desc.numberFormat)return this.numberFormat(this.getRawValue(e));var n=t.prototype.getValue.call(this,e);return""+("number"==typeof n?this.numberFormat(+n):n)},e.prototype.getRawValue=function(e){var n=t.prototype.getValue.call(this,e);return"undefined"==typeof n||null==n||isNaN(n)||""===n||"NA"===n||"string"==typeof n&&"na"===n.toLowerCase()?this.missingValue:+n},e.prototype.getValue=function(t){var e=this.getRawValue(t);return isNaN(e)?e:this.mapping.apply(e)},e.prototype.getNumber=function(t){return this.getValue(t)},e.prototype.compare=function(t,e){return i(this.getValue(t),this.getValue(e))},e.prototype.getOriginalMapping=function(){return this.original.clone()},e.prototype.getMapping=function(){return this.mapping.clone()},e.prototype.setMapping=function(t){this.mapping.eq(t)||this.fire(["mappingChanged","dirtyValues","dirty"],this.mapping.clone(),this.mapping=t)},e.prototype.isFiltered=function(){return isFinite(this.currentFilter.min)||isFinite(this.currentFilter.max)},Object.defineProperty(e.prototype,"filterMin",{get:function(){return this.currentFilter.min},set:function(t){var e={min:this.currentFilter.min,max:this.currentFilter.max};this.currentFilter.min=isNaN(t)?-(1/0):t,this.fire(["filterChanged","dirtyValues","dirty"],e,this.currentFilter)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"filterMax",{get:function(){return this.currentFilter.max},set:function(t){var e={min:this.currentFilter.min,max:this.currentFilter.max};this.currentFilter.max=isNaN(t)?1/0:t,this.fire(["filterChanged","dirtyValues","dirty"],e,this.currentFilter)},enumerable:!0,configurable:!0}),e.prototype.getFilter=function(){return{min:this.currentFilter.min,max:this.currentFilter.max}},e.prototype.setFilter=function(t){if(void 0===t&&(t={min:-(1/0),max:+(1/0)}),this.currentFilter.min!==t.min||this.currentFilter.max!==t.max){var e=this.getFilter();this.currentFilter.min=isNaN(t.min)?-(1/0):t.min,this.currentFilter.max=isNaN(t.max)?1/0:t.max,this.fire(["filterChanged","dirtyValues","dirty"],e,this.currentFilter)}},e.prototype.filter=function(t){if(!this.isFiltered())return!0;var e=this.getRawValue(t);return!!isNaN(e)||!(isFinite(this.currentFilter.min)&&ethis.currentFilter.max)},e}(C);e.NumberColumn=_;var E=function(t){function e(e,n){t.call(this,e,n),this.currentFilter=null,this._alignment="left",this.setWidthImpl(200),this._alignment=n.alignment||"left"}return m(e,t),Object.defineProperty(e.prototype,"alignment",{get:function(){return this._alignment},enumerable:!0,configurable:!0}),e.prototype.getValue=function(e){var n=t.prototype.getValue.call(this,e);return"undefined"==typeof n||null==n?"":String(n)},e.prototype.dump=function(e){var n=t.prototype.dump.call(this,e);return this.currentFilter instanceof RegExp?n.filter="REGEX:"+this.currentFilter.source:n.filter=this.currentFilter,n.alignment=this.alignment,n},e.prototype.restore=function(e,n){t.prototype.restore.call(this,e,n),e.filter&&"REGEX:"===e.filter.slice(0,6)?this.currentFilter=new RegExp(e.filter.slice(6)):this.currentFilter=e.filter||null,this._alignment=e.alignment||this._alignment},e.prototype.isFiltered=function(){return null!=this.currentFilter},e.prototype.filter=function(t){if(!this.isFiltered())return!0;var n=this.getLabel(t),r=this.currentFilter;return r===e.FILTER_MISSING?null!=n&&""!==n.trim():"string"==typeof r&&r.length>0?n&&n.toLowerCase().indexOf(r.toLowerCase())>=0:!(r instanceof RegExp)||n&&r.test(n)},e.prototype.getFilter=function(){return this.currentFilter},e.prototype.setFilter=function(t){""===t&&(t=null),this.currentFilter!==t&&this.fire(["filterChanged","dirtyValues","dirty"],this.currentFilter,this.currentFilter=t)},e.prototype.compare=function(t,e){var n,r;return""===(n=this.getValue(t))?""===this.getValue(e)?0:1:""===(r=this.getValue(e))?-1:n.localeCompare(r)},e.FILTER_MISSING="__FILTER_MISSING",e}(C);e.StringColumn=E;var S=function(t){function e(e,n){t.call(this,e,n),this.link=null,this.link=n.link}return m(e,t),Object.defineProperty(e.prototype,"headerCssClass",{get:function(){return null==this.link?"link":"link link_pattern"},enumerable:!0,configurable:!0}),e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["linkChanged"])},e.prototype.setLink=function(t){t!=this.link&&this.fire(["linkChanged","dirtyHeader","dirtyValues","dirty"],this.link,this.link=t)},e.prototype.getLink=function(){return this.link||""},e.prototype.dump=function(e){var n=t.prototype.dump.call(this,e);return this.link!=this.desc.link&&(n.link=this.link),n},e.prototype.restore=function(e,n){t.prototype.restore.call(this,e,n),e.link&&(this.link=e.link)},e.prototype.getLabel=function(e){var n=t.prototype.getValue.call(this,e);return n.alt?n.alt:""+n},e.prototype.isLink=function(e){if(this.link)return!0;var n=t.prototype.getValue.call(this,e);return null!=n.href},e.prototype.getValue=function(e){var n=t.prototype.getValue.call(this,e);return n.href?n.href:this.link?this.link.replace(/\$1/g,n):n},e}(E);e.LinkColumn=S;var L=function(t){function e(e,n){t.call(this,e,n),this.annotations=y.map()}return m(e,t),e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["valueChanged"])},e.prototype.getValue=function(e){var n=String(e._index);return this.annotations.has(n)?this.annotations.get(n):t.prototype.getValue.call(this,e)},e.prototype.dump=function(e){var n=t.prototype.dump.call(this,e);return n.annotations={},this.annotations.forEach(function(t,e){n.annotations[t]=e}),n},e.prototype.restore=function(e,n){var r=this;t.prototype.restore.call(this,e,n),e.annotations&&Object.keys(e.annotations).forEach(function(t){r.annotations.set(t,e.annotations[t])})},e.prototype.setValue=function(t,e){var n=this.getValue(t);return n===e||(""===e||null==e?this.annotations.remove(String(t._index)):this.annotations.set(String(t._index),e),this.fire(["valueChanged","dirtyValues","dirty"],t._index,n,e),!0)},e}(E);e.AnnotateColumn=L;var R=function(t){function e(e,n){t.call(this,e,n),this.setCompressed(!0)}return m(e,t),e.desc=function(t){return void 0===t&&(t="S"),{type:"selection",label:t}},e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["select"])},e.prototype.setValue=function(t,e){var n=this.getValue(t);return n===e||this.setImpl(t,e)},e.prototype.setImpl=function(t,e){return this.desc.setter&&this.desc.setter(t,e),this.fire("select",t,e),!0},e.prototype.toggleValue=function(t){var e=this.getValue(t);return this.setImpl(t,!e),!e},e.prototype.compare=function(t,e){return y.ascending(this.getValue(t),this.getValue(e))},e}(C);e.SelectionColumn=R;var F=function(t){function e(e,n){t.call(this,e,n),this.currentFilter=null,this.trueMarker="X",this.falseMarker="",this.setWidthImpl(30),this.trueMarker=n.trueMarker||this.trueMarker,this.falseMarker=n.falseMarker||this.falseMarker}return m(e,t),e.prototype.getValue=function(e){var n=t.prototype.getValue.call(this,e);return"undefined"!=typeof n&&null!=n&&(n===!0||"true"===n||"yes"===n||"x"===n)},e.prototype.getLabel=function(t){var e=this.getValue(t);return e?this.trueMarker:this.falseMarker},e.prototype.dump=function(e){var n=t.prototype.dump.call(this,e);return null!==this.currentFilter&&(n.filter=this.currentFilter),n},e.prototype.restore=function(e,n){t.prototype.restore.call(this,e,n),"undefined"!=typeof e.filter&&(this.currentFilter=e.filter)},e.prototype.isFiltered=function(){return null!==this.currentFilter},e.prototype.filter=function(t){if(!this.isFiltered())return!0;var e=this.getValue(t);return e===this.currentFilter},e.prototype.getFilter=function(){return this.currentFilter},e.prototype.setFilter=function(t){this.currentFilter!==t&&this.fire(["filterChanged","dirtyValues","dirty"],this.currentFilter,this.currentFilter=t)},e.prototype.compare=function(t,e){return y.ascending(this.getValue(t),this.getValue(e))},e}(C);e.BooleanColumn=F;var P=function(t){function e(e,n){t.call(this,e,n),this.colors=y.scale.category10(),this.catLabels=y.map(),this.currentFilter=null,this.separator=";",this.separator=n.separator||this.separator,this.initCategories(n)}return m(e,t),e.prototype.initCategories=function(t){if(t.categories){var e=[],n=this.colors.range(),r=y.map();t.categories.forEach(function(t,i){"string"==typeof t?e.push(t):(e.push(t.name),t.label&&r.set(t.name,t.label),n[i]=t.color)}),this.catLabels=r,this.colors.domain(e).range(n)}},Object.defineProperty(e.prototype,"categories",{get:function(){return this.colors.domain()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"categoryColors",{get:function(){return this.colors.range()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"categoryLabels",{get:function(){var t=this;return null===this.catLabels||this.catLabels.empty()?this.categories:this.categories.map(function(e){return t.catLabels.has(e)?t.catLabels.get(e):e})},enumerable:!0,configurable:!0}),e.prototype.colorOf=function(t){return this.colors(t)},e.prototype.getLabel=function(t){return null===this.catLabels||this.catLabels.empty()?""+E.prototype.getValue.call(this,t):this.getLabels(t).join(this.separator)},e.prototype.getFirstLabel=function(t){var e=this.getLabels(t);return e.length>0?e[0]:null},e.prototype.getLabels=function(t){var e=this,n=E.prototype.getValue.call(this,t),r=n?n.split(this.separator):[],i=function(t){return null===e.catLabels||e.catLabels.empty()?t:t.map(function(t){return e.catLabels.has(t)?e.catLabels.get(t):t})};return i(r)},e.prototype.getValue=function(t){var e=this.getValues(t);return e.length>0?e[0]:null},e.prototype.getValues=function(t){var e=E.prototype.getValue.call(this,t),n=e?e.split(this.separator):[];return n},e.prototype.getCategories=function(t){return this.getValues(t)},e.prototype.getColor=function(t){var e=this.getValue(t);return null===e||""===e?null:this.colors(e)},e.prototype.getColors=function(t){return this.getCategories(t).map(this.colors)},e.prototype.dump=function(e){var n=t.prototype.dump.call(this,e);return n.filter=this.currentFilter,n.colors={domain:this.colors.domain(),range:this.colors.range(),separator:this.separator},n},e.prototype.restore=function(e,n){t.prototype.restore.call(this,e,n),this.currentFilter=e.filter||null,e.colors&&this.colors.domain(e.colors.domain).range(e.colors.range),this.separator=e.separator||this.separator},e.prototype.isFiltered=function(){return null!=this.currentFilter},e.prototype.filter=function(t){if(!this.isFiltered())return!0;var e=this.getCategories(t),n=this.currentFilter;return e.every(function(t){return Array.isArray(n)&&n.length>0?n.indexOf(t)>=0:"string"==typeof n&&n.length>0?t&&t.toLowerCase().indexOf(n.toLowerCase())>=0:!(n instanceof RegExp)||null!=t&&t.match(n).length>0})},e.prototype.getFilter=function(){return this.currentFilter},e.prototype.setFilter=function(t){p(this.currentFilter,t)||this.fire(["filterChanged","dirtyValues","dirty"],this.currentFilter,this.currentFilter=t)},e.prototype.compare=function(t,e){for(var n=this.getValues(t),r=this.getValues(e),i=0;i0?this.combiner(e):0},e.prototype.getValues=function(t){var e=P.prototype.getValues.call(this,t);return e.map(this.scale)},e.prototype.getCategories=function(t){return P.prototype.getValues.call(this,t)},e.prototype.getNumber=function(t){return this.getValue(t)},e.prototype.getColor=function(t){var e=this.getValues(t),n=this.getColors(t);return this.combiner===y.max?n.slice(1).reduce(function(t,n,r){return e[r+1]>t.v?{c:n,v:e[r+1]}:t},{c:n[0],v:e[0]}).c:this.combiner===y.min?n.slice(1).reduce(function(t,n,r){return e[r+1]r&&(n=i,r=o)}return e[n].color},e.prototype.compute=function(t){return y.max(this._children,function(e){return e.getValue(t)})},e}(D);e.MaxColumn=H;var N=function(t){function e(e,n){t.call(this,e,n)}return m(e,t),e.desc=function(t){return void 0===t&&(t="Min"),{type:"min",label:t}},e.prototype.getColor=function(t){var e=this._children;if(0===e.length)return this.color;for(var n=0,r=e[0].getValue(t),i=1;i0||n<=b.FLAT_ALL_COLUMNS)&&this.columns.forEach(function(e){(!e.isHidden()||n<=b.FLAT_ALL_COLUMNS)&&(i+=e.flatten(t,i,n-1,r)+r)}),i-e},e.prototype.getSortCriteria=function(){return{col:this.sortColumn,asc:this.ascending}},e.prototype.toggleSorting=function(t){return this.sortColumn===t?this.sortBy(t,!this.ascending):this.sortBy(t)},e.prototype.setSortCriteria=function(t){return this.sortBy(t.col,t.asc)},e.prototype.sortBy=function(t,e){if(void 0===e&&(e=!1),null!==t&&t.findMyRanker()!==this)return!1;if(this.sortColumn===t&&this.ascending===e)return!0;this.sortColumn&&this.sortColumn.on("dirtyValues.order",null);var n=this.getSortCriteria();return this.sortColumn=t,this.sortColumn&&this.sortColumn.on("dirtyValues.order",this.dirtyOrder),this.ascending=e,this.fire(["sortCriteriaChanged","dirtyOrder","dirtyHeader","dirtyValues","dirty"],n,this.getSortCriteria()),!0},Object.defineProperty(e.prototype,"children",{get:function(){return this.columns.slice()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"length",{get:function(){return this.columns.length},enumerable:!0,configurable:!0}),e.prototype.insert=function(t,e){return void 0===e&&(e=this.columns.length),this.columns.splice(e,0,t),t.parent=this,this.forward(t,"dirtyValues.ranking","dirtyHeader.ranking","dirty.ranking","filterChanged.ranking"),t.on("filterChanged.order",this.dirtyOrder),this.fire(["addColumn","dirtyHeader","dirtyValues","dirty"],t,e),null!==this.sortColumn||t instanceof j||t instanceof R||t instanceof x||this.sortBy(t,t instanceof E),t},Object.defineProperty(e.prototype,"fqpath",{get:function(){return""},enumerable:!0,configurable:!0}),e.prototype.findByPath=function(t){for(var e=this,n=t.split("@").map(Number).slice(1);n.length>0;){var r=n.shift();e=e.at(r)}return e},e.prototype.indexOf=function(t){return this.columns.indexOf(t)},e.prototype.at=function(t){return this.columns[t]},e.prototype.insertAfter=function(t,e){var n=this.columns.indexOf(e);return n<0?null:this.insert(t,n+1)},e.prototype.push=function(t){return this.insert(t)},e.prototype.remove=function(t){var e=this.columns.indexOf(t);if(e<0)return!1;if(this.unforward(t,"dirtyValues.ranking","dirtyHeader.ranking","dirty.ranking","filterChanged.ranking"),this.sortColumn===t){var n=this.columns.filter(function(e){return!(e===t||e instanceof R||e instanceof j)})[0];this.sortBy(n?n:null)}return t.parent=null,this.columns.splice(e,1),this.fire(["removeColumn","dirtyHeader","dirtyValues","dirty"],t,e),!0},e.prototype.clear=function(){var t=this;0!==this.columns.length&&(this.sortColumn=null,this.columns.forEach(function(e){t.unforward(e,"dirtyValues.ranking","dirtyHeader.ranking","dirty.ranking","filterChanged.ranking"),e.parent=null}),this.columns.length=0,this.fire(["removeColumn","dirtyHeader","dirtyValues","dirty"],null))},Object.defineProperty(e.prototype,"flatColumns",{get:function(){var t=[];return this.flatten(t,0,b.FLAT_ALL_COLUMNS),t.map(function(t){return t.col})},enumerable:!0,configurable:!0}),e.prototype.find=function(t){for(var e="string"==typeof t?function(e){return e.id===t}:t,n=this.flatColumns,r=0;r=0&&(clearTimeout(r),r=-1),i.unshift(null===n?this:n),r=setTimeout(t.bind.apply(t,i),e)}}function i(t,e){return function(){for(var n=[],r=0;r=0}):"function"==typeof n.includes?e.some(function(t){return n.includes(t)}):"function"==typeof n.contains&&e.some(function(t){return n.contains(t)})}function l(t){var e=t.dataTransfer;return t.ctrlKey&&null!=e.effectAllowed.match(/copy/gi)||null==e.effectAllowed.match(/move/gi)}function c(t){var e=t.dataTransfer;l(t)?e.dropEffect="copy":e.dropEffect="move"}function u(t,e){return function(n){n.on("dragenter",function(){var e=d.event;return s(e,t)?(d.select(this).classed("drag_over",!0),!1):void d.select(this).classed("drag_over",!1)}).on("dragover",function(){var e=d.event;if(s(e,t))return e.preventDefault(),c(e),d.select(this).classed("drag_over",!0),!1}).on("dragleave",function(){d.select(this).classed("drag_over",!1)}).on("drop",function(n){var r=d.event;if(r.preventDefault(),d.select(this).classed("drag_over",!1),s(r,t)){var i={};return t.forEach(function(t){var e=r.dataTransfer.getData(t);""!==e&&(i[t]=e)}),e(i,n,l(r))}})}}var p=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},d=n(5);e.delayedCall=r,e.forwardEvent=i;var h=function(){function t(){this.forwarder=i(this),this.listeners=d.dispatch.apply(d,this.createEventList())}return t.prototype.on=function(t,e){var n=this;return arguments.length>1?(Array.isArray(t)?t.forEach(function(t){return n.listeners.on(t,e)}):this.listeners.on(t,e),this):this.listeners.on(t)},t.prototype.createEventList=function(){return[]},t.prototype.fire=function(t){for(var e=this,n=[],r=1;r0){for(l=Math.round(a/this.options.rowHeight);l>=t&&r(l+1)>a;)l--;l-=this.options.backupRows}for(o=Math.round(s/this.options.rowHeight);o<=e&&r(o-1)0){for(a=Math.round(i/this.options.rowHeight);a>=t&&n(a+1)>i;)a--;a-=this.options.backupRows}for(r=Math.round(o/this.options.rowHeight);r<=e&&n(r-1)=this.options.rowHeight*this.options.backupRows&&(this.prevScrollTop=t,this.fire("redraw"))},e.prototype.destroy=function(){d.select(this.container).on("scroll.scroller",null)},e}(h);e.ContentScroller=m,e.hasDnDType=s,e.copyDnD=l,e.updateDropEffect=c,e.dropAble=u},function(t,e,n){"use strict";function r(t,e,n){if(0===t.length)return{min:NaN,max:NaN,mean:NaN,count:0,maxBin:0,hist:[]};var r=c.layout.histogram().value(e);n&&r.range(function(){return n});var i=c.extent(t,e),o=r(t);return{min:i[0],max:i[1],mean:c.mean(t,e),count:t.length,maxBin:c.max(o,function(t){return t.y}),hist:o}}function i(t,e,n){var r=c.map();return n.forEach(function(t){return r.set(t,0)}),t.forEach(function(t){var n=e(t);null!=n&&n.forEach(function(t){r.set(t,(r.get(t)||0)+1)})}),{maxBin:c.max(r.values()),hist:r.entries().map(function(t){return{cat:t.key,y:t.value}})}}function o(t){return["rank","selection","actions"].indexOf(t.type)>=0}var a=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},s=n(4),l=n(6),c=n(5),u=function(t){function e(e){var n=this;void 0===e&&(e={}),t.call(this),this.rankings_=[],this.selection=c.set(),this.uid=0,this.columnTypes=l.merge({},s.models()),this.createHelper=function(t){var e=n.fromDescRef(t.desc),r=null;if(e&&e.type){n.fixDesc(t.desc);var i=n.columnTypes[e.type];r=new i(t.id,e),r.restore(t,n.createHelper)}return r},this.columnTypes=l.merge(s.models(),e.columnTypes||{})}return a(e,t),e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["addColumn","removeColumn","addRanking","removeRanking","dirty","dirtyHeader","dirtyValues","orderChanged","selectionChanged"])},e.prototype.getColumns=function(){return[]},e.prototype.pushRanking=function(t){var e=this.cloneRanking(t);return this.insertRanking(e),e},e.prototype.takeSnapshot=function(t){var e=this.cloneRanking();return e.push(this.clone(t)),this.insertRanking(e),e},e.prototype.insertRanking=function(t,e){void 0===e&&(e=this.rankings_.length),this.rankings_.splice(e,0,t),this.forward(t,"addColumn.provider","removeColumn.provider","dirty.provider","dirtyHeader.provider","orderChanged.provider","dirtyValues.provider");var n=this;t.on("dirtyOrder.provider",l.delayedCall(function(){n.triggerReorder(this.source)},100,null)),this.fire(["addRanking","dirtyHeader","dirtyValues","dirty"],t,e),this.triggerReorder(t)},e.prototype.triggerReorder=function(t){this.sort(t).then(function(e){return t.setOrder(e)})},e.prototype.removeRanking=function(t){var e=this.rankings_.indexOf(t);return!(e<0)&&(this.unforward(t,"addColumn.provider","removeColumn.provider","dirty.provider","dirtyHeader.provider","orderChanged.provider","dirtyOrder.provider","dirtyValues.provider"),this.rankings_.splice(e,1),t.on("dirtyOrder.provider",null),this.cleanUpRanking(t),this.fire(["removeRanking","dirtyHeader","dirtyValues","dirty"],t,e),!0)},e.prototype.clearRankings=function(){var t=this;this.rankings_.forEach(function(e){t.unforward(e,"addColumn.provider","removeColumn.provider","dirty.provider","dirtyHeader.provider","dirtyOrder.provider","dirtyValues.provider"),e.on("dirtyOrder.provider",null),t.cleanUpRanking(e)}),this.rankings_=[],this.fire(["removeRanking","dirtyHeader","dirtyValues","dirty"],null)},e.prototype.getRankings=function(){return this.rankings_.slice()},e.prototype.getLastRanking=function(){return this.rankings_[this.rankings_.length-1]},e.prototype.cleanUpRanking=function(t){},e.prototype.cloneRanking=function(t){return null},e.prototype.push=function(t,e){var n=this.create(e);return n?(t.push(n),n):null},e.prototype.insert=function(t,e,n){var r=this.create(n);return r?(t.insert(r,e),r):null},e.prototype.nextId=function(){return"col"+this.uid++},e.prototype.rankAccessor=function(t,e,n,r){return 0},e.prototype.fixDesc=function(t){var e=this;"rank"===t.type?t.accessor=this.rankAccessor.bind(this):"selection"===t.type&&(t.accessor=function(t){return e.isSelected(t._index)},t.setter=function(t,n){return n?e.select(t._index):e.deselect(t._index)})},e.prototype.create=function(t){this.fixDesc(t);var e=this.columnTypes[t.type];return e?new e(this.nextId(),t):null},e.prototype.clone=function(t){var e=this.dumpColumn(t);return this.restoreColumn(e)},e.prototype.restoreColumn=function(t){var e=this,n=function(t){var r=e.fromDescRef(t.desc),i=e.columnTypes[r.type];e.fixDesc(r);var o=new i("",r);return o.restore(t,n),o.assignNewId(e.nextId.bind(e)),o};return n(t)},e.prototype.find=function(t){for(var e="string"==typeof t?function(e){return e.id===t}:t,n=0;n0)){var e=this.pushRanking();this.getColumns().forEach(function(n){o(n)||t.push(e,n)})}},e.prototype.deriveRanking=function(t){var e=this,n=this.cloneRanking();n.clear();var r=function(t){if("rank"===t.type)return e.create(s.createRankDesc());if("selection"===t.type)return e.create(s.createSelectionDesc());if("actions"===t.type){var n=e.create(s.createActionDesc(t.label||"actions"));return n.restore(t,null),n}if("stacked"===t.type){var i=e.create(s.createStackDesc(t.label||"Combined"));return(t.children||[]).forEach(function(t){var e=r(t);e&&i.push(e)}),i}var o=e.findDesc(t.column);if(o){var n=e.create(o);return t.label=t.label||o.label||o.column,n.restore(t,null),n}return null};return t.forEach(function(t){var e=r(t);e&&n.push(e)}),n.children.some(function(t){return t instanceof s.RankColumn})||n.insert(this.create(s.createRankDesc()),0),this.insertRanking(n),n},e.prototype.sort=function(t){return Promise.reject("not implemented")},e.prototype.view=function(t){return Promise.reject("not implemented")},e.prototype.mappingSample=function(t){return Promise.reject("not implemented")},e.prototype.stats=function(t){return{stats:function(t){return Promise.reject("not implemented")},hist:function(t){return Promise.reject("not implemented")}}},e.prototype.rowKey=function(t,e){return"number"==typeof t?String(t):String(t._index)},e.prototype.isSelected=function(t){return this.selection.has(String(t))},e.prototype.select=function(t){this.selection.add(String(t)),this.fire("selectionChanged",this.selection.values().map(Number))},e.prototype.searchSelect=function(t,e){},e.prototype.selectAll=function(t,e){var n=this;void 0===e&&(e=!1),t.forEach(function(t){n.selection.add(String(t))}),this.fire("selectionChanged",this.selection.values().map(Number),e)},e.prototype.setSelection=function(t,e){var n=this;void 0===e&&(e=!1),this.selection.size()===t.length&&t.every(function(t){return n.selection.has(String(t))})||(this.selection=c.set(),this.selectAll(t,e))},e.prototype.toggleSelection=function(t,e){return void 0===e&&(e=!1),this.isSelected(t)?(e?this.deselect(t):this.clearSelection(),!1):(e?this.select(t):this.setSelection([t]),!0)},e.prototype.deselect=function(t){this.selection.remove(String(t)),this.fire("selectionChanged",this.selection.values().map(Number))},e.prototype.selectedRows=function(){return this.selection.empty()?Promise.resolve([]):this.view(this.getSelection())},e.prototype.getSelection=function(){var t=[];return this.selection.forEach(function(e){return t.push(+e)}),t.sort(),t},e.prototype.clearSelection=function(){this.selection=c.set(),this.fire("selectionChanged",[],!1)},e.prototype.exportTable=function(t,e){function n(t,e){return!r.quote||e&&s.isNumberColumn(e)?t:r.quoteChar+t+r.quoteChar}void 0===e&&(e={});var r={separator:"\t",newline:"\n",header:!0,quote:!1,quoteChar:'"',filter:function(t){return!o(t)}};e=l.merge(r,e);var i=t.flatColumns.filter(function(t){return r.filter(t.desc)});return this.view(t.getOrder()).then(function(t){var e=[];return r.header&&e.push(i.map(function(t){return n(t.label)}).join(r.separator)),t.forEach(function(t){e.push(i.map(function(e){return n(e.getLabel(t),e)}).join(r.separator))}),e.join(r.newline)})},e}(l.AEventDispatcher);e.DataProvider=u;var p=function(t){function e(e,n){var r=this;void 0===e&&(e=[]),void 0===n&&(n={}),t.call(this,n),this.columns=e,this.rankingIndex=0,this.rowGetter=function(t,e,n){return t[n.column]},e.forEach(function(t){t.accessor=t.accessor||r.rowGetter,t.label=t.label||t.column})}return a(e,t),e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["addDesc"])},e.prototype.pushDesc=function(t){var e=t;e.accessor=e.accessor||this.rowGetter,e.label=t.label||e.column,this.columns.push(t),this.fire("addDesc",e)},e.prototype.getColumns=function(){return this.columns.slice()},e.prototype.findDesc=function(t){return this.columns.filter(function(e){return e.column===t})[0]},e.prototype.toDescRef=function(t){return t.column?t.type+"@"+t.column:t},e.prototype.fromDescRef=function(t){return"string"==typeof t?this.columns.filter(function(e){return e.type+"@"+e.column===t})[0]:t},e.prototype.restore=function(e){t.prototype.restore.call(this,e),this.rankingIndex=1+c.max(this.getRankings(),function(t){return+t.id.substring(4)})},e.prototype.nextRankingId=function(){return"rank"+this.rankingIndex++},e}(u);e.CommonDataProvider=p;var d=function(t){function e(e,n,r){void 0===n&&(n=[]),void 0===r&&(r={}),t.call(this,n,r),this.data=e,this.options={filterGlobally:!1,jumpToSearchResult:!0},l.merge(this.options,r),e.forEach(function(t,e){t._rankings={},t._index=e});var i=this;this.reorderall=function(){var t=this.source;i.getRankings().forEach(function(e){e!==t&&e.dirtyOrder()})}}return a(e,t),e.prototype.setData=function(t){t.forEach(function(t,e){t._rankings={},t._index=e}),this.data=t,this.reorderall()},e.prototype.clearData=function(){this.setData([])},e.prototype.appendData=function(t){var e=this.data.length;t.forEach(function(t,n){t._rankings={},t._index=e+n}),this.data.push.apply(this.data,t),this.reorderall()},e.prototype.rankAccessor=function(t,e,n,r){return t._rankings[r.id]+1||1},e.prototype.cloneRanking=function(t){var e=this,n=this.nextRankingId(),r=new s.Ranking(n);return t?(this.data.forEach(function(e){var r=e._rankings;r[n]=r[t.id]}),t.children.forEach(function(t){e.push(r,t.desc)})):r.push(this.create(s.createRankDesc())),this.options.filterGlobally&&r.on("filterChanged.reorderall",this.reorderall),r},e.prototype.cleanUpRanking=function(t){this.options.filterGlobally&&t.on("filterChanged.reorderall",null),this.data.forEach(function(e){return delete e._rankings[t.id]})},e.prototype.sort=function(t){if(0===this.data.length)return Promise.resolve([]);var e=this.data.map(function(e,n){return{row:e,i:n,prev:e._rankings[t.id]||0}});if(this.options.filterGlobally){var n=this.getRankings().filter(function(t){return t.isFiltered()});n.length>0&&(e=e.filter(function(t){return n.every(function(e){return e.filter(t.row)})}))}else t.isFiltered()&&(e=e.filter(function(e){return t.filter(e.row)}));e.sort(function(e,n){return t.comparator(e.row,n.row)});var r=e.map(function(e,n){return e.row._rankings[t.id]=n,e.i});return Promise.resolve(r)},e.prototype.view=function(t){var e=this;if(0===this.data.length)return Promise.resolve([]);var n=this.data.length,r=t.filter(function(t){return t>=0&&t=0;)a=Math.floor(Math.random()*(r-1));i.push(a)}return Promise.resolve(i.map(function(n){return t.getRawValue(e.data[n])}))},e.prototype.searchSelect=function(t,e){t="string"==typeof t?t.toLowerCase():t;var n="string"==typeof t?function(e){return e.toLowerCase().indexOf(t)>=0}:t.test.bind(t),r=this.data.filter(function(t){return n(e.getLabel(t))}).map(function(t){return t._index});this.setSelection(r,this.options.jumpToSearchResult)},e}(p);e.LocalDataProvider=d;var h=function(t){function e(e,n,r){void 0===n&&(n=[]),void 0===r&&(r={}),t.call(this,n,r),this.server=e,this.ranks={}}return a(e,t),e.prototype.rankAccessor=function(t,e,n,r){return this.ranks[r.id][t._index]||0},e.prototype.cloneRanking=function(t){var e=this.nextRankingId();t&&(this.ranks[e]=this.ranks[t.id]);var n=new s.Ranking(e);return n.push(this.create(s.createRankDesc())),n},e.prototype.cleanUpRanking=function(t){delete this.ranks[t.id]},e.prototype.sort=function(t){var e=this,n=t.toSortingDesc(function(t){return t.column});return this.server.sort(n).then(function(n){return e.ranks[t.id]=n,n})},e.prototype.view=function(t){return this.server.view(t).then(function(e){return e.forEach(function(e,n){return e._index=t[n]}),e})},e.prototype.mappingSample=function(t){return this.server.mappingSample(t.desc.column)},e.prototype.searchSelect=function(t,e){var n=this;this.server.search(t,e.desc.column).then(function(t){n.setSelection(t)})},e}(p);e.RemoteDataProvider=h},function(t,e,n){"use strict";function r(t){return t?new u(t):y}function i(t){return t?new h(t):v}function o(t,e,n){var r=this;void 0===n&&(n={}),n.selector=t,n.render=e,n.findRow=function(t,e){return t.selectAll(r.selector+'[data-index="'+e+'"]')};var i=new u(n);return i}function a(){return{string:new C,link:new b,number:i(),rank:r({textClass:"rank",align:"right"}),"boolean":r({textClass:"boolean",align:"center"}),heatmap:new d,stack:new k,categorical:new x,ordinal:i({renderValue:!0,colorOf:function(t,e,n){return n.getColor(t)}}),max:w,min:w,mean:w,script:w,actions:new f,annotate:new m,selection:new g,nested:new k((!1))}}var s=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},l=n(4),c=function(){function t(){this.textClass="text",this.align="left"}return t.prototype.render=function(t,e,n,r){var i=t.datum(e).selectAll("text."+this.textClass).data(n,r.rowKey);i.enter().append("text").attr({"class":this.textClass,"clip-path":"url(#"+r.idPrefix+"clipCol"+e.id+")",y:function(t,e){return r.cellPrevY(e)}});var o=2;"right"===this.align?o=e.getWidth()-5:"center"===this.align&&(o=.5*e.getWidth()),i.attr({x:function(t,e){return r.cellX(e)+o},"data-index":function(t,e){return e}}).text(function(t){return e.getLabel(t)}),r.animated(i).attr({y:function(t,e){return r.cellY(e)}}),i.exit().remove()},t.prototype.findRow=function(t,e){return t.selectAll("text."+this.textClass+'[data-index="'+e+'"]')},t.prototype.mouseEnter=function(t,e,n,r,i,o){var a=e.node(),s=this.findRow(t,i).node();s&&a.appendChild(s)},t.prototype.mouseLeave=function(t,e,n,r,i,o){var a=t.node(),s=e.node();s.hasChildNodes()&&a&&a.appendChild(s.firstChild),e.selectAll("*").remove()},t.prototype.renderCanvas=function(t,e,n,r){var i=this;t.save(),t.textAlign=this.align,n.forEach(function(n,o){var a=r.cellY(o),s=2;"right"===i.align?s=e.getWidth()-5:"center"===i.align&&(s=.5*e.getWidth());var l=r.cellX(o)+s;t.fillText(e.getLabel(n),l,a,e.getWidth())}),t.restore()},t.prototype.mouseEnterCanvas=function(t,e,n,r,i){},t}();e.DefaultCellRenderer=c;var u=function(t){function e(e){var n=this;t.call(this),Object.keys(e).forEach(function(t){n[t]=e[t]})}return s(e,t),e}(c),p=function(t){function e(){t.apply(this,arguments),this.renderValue=!1}return s(e,t),e.prototype.render=function(t,e,n,r){var i=this,o=this.renderValue||r.option("renderBarValue",!1),a=t.datum(e).selectAll(".bar").data(n,r.rowKey),s=r.option("rowPadding",1),l=function(t,n,o){t.append("rect").attr({"class":n,x:function(t,e){return r.cellX(e)},y:function(t,e){return r.cellPrevY(e)+s},width:function(t){var n=e.getWidth()*e.getValue(t);return isNaN(n)?0:n}}).style("fill",e.color),o.attr({height:function(t,e){return r.rowHeight(e)-2*r.option("rowPadding",1)}}),r.animated(o).attr({x:function(t,e){return r.cellX(e)},y:function(t,e){return r.cellY(e)+r.option("rowPadding",1)},width:function(t){var n=e.getWidth()*e.getValue(t);return isNaN(n)?0:n}}).style({fill:function(t,n){return i.colorOf(t,n,e)}})};if(o){var c=a.enter().append("g").attr("class","bar "+this.textClass);l(c,e.cssClass,a.select("rect")),c.append("text").attr({"class":"number","clip-path":"url(#"+r.idPrefix+"clipCol"+e.id+")"}),r.animated(a.select("text").text(function(t){return e.getLabel(t)})).attr("transform",function(t,e){return"translate("+r.cellX(e)+","+r.cellY(e)+")"})}else l(a.enter(),"bar "+e.cssClass,a);a.attr({"data-index":function(t,e){return e}}),a.exit().remove()},e.prototype.colorOf=function(t,e,n){return n.color},e.prototype.findRow=function(t,e){return t.selectAll('.bar[data-index="'+e+'"]')},e.prototype.mouseEnter=function(e,n,r,i,o,a){var s=this.renderValue||a.option("renderBarValue",!1);if(s)return t.prototype.mouseEnter.call(this,e,n,r,i,o,a);var l=this.findRow(e,o);l.empty()||(n.node().appendChild(l.node()),n.append("text").datum(l.datum()).attr({"class":"number","clip-path":"url(#"+a.idPrefix+"clipCol"+r.id+")",transform:"translate("+a.cellX(o)+","+a.cellY(o)+")"}).text(function(t){return r.getLabel(t)}))},e.prototype.renderCanvas=function(t,e,n,r){var i=this,o=this.renderValue||r.option("renderBarValue",!1),a=r.option("rowPadding",1);t.save(),n.forEach(function(n,s){var c=r.cellX(s),u=r.cellY(s)+a,p=e.getWidth()*e.getValue(n),d=isNaN(p)?0:p,h=r.rowHeight(s)-2*a;t.fillStyle=i.colorOf(n,s,e)||e.color||l.Column.DEFAULT_COLOR,t.fillRect(c,u,d,h),o&&t.fillText(e.getLabel(n),c,u-a,e.getWidth())}),t.restore()},e.prototype.mouseEnterCanvas=function(t,e,n,r,i){var o=this.renderValue||i.option("renderBarValue",!1);o||(t.save(),t.fillText(e.getLabel(n),i.cellX(r),i.cellY(r),e.getWidth()),t.restore())},e}(c);e.BarCellRenderer=p;var d=function(t){function e(){t.apply(this,arguments)}return s(e,t),e.prototype.render=function(t,e,n,r){var i=this,o=t.datum(e).selectAll("rect.heatmap").data(n,r.rowKey);o.enter().append("rect").attr({"class":"bar "+e.cssClass,x:function(t,e){return r.cellX(e)},y:function(t,e){return r.cellPrevY(e)+r.option("rowPadding",1)},width:function(t,e){return r.rowHeight(e)-2*r.option("rowPadding",1)}}).style("fill",e.color),o.attr({"data-index":function(t,e){return e},width:function(t,e){return r.rowHeight(e)-2*r.option("rowPadding",1)},height:function(t,e){return r.rowHeight(e)-2*r.option("rowPadding",1)}}),r.animated(o).attr({x:function(t,e){return r.cellX(e)},y:function(t,e){return r.cellY(e)+r.option("rowPadding",1)}}).style({fill:function(t,n){return i.colorOf(t,n,e)}}),o.exit().remove()},e.prototype.colorOf=function(t,e,n){var r=n.getValue(t);isNaN(r)&&(r=0);var i=d3.hsl(n.color||l.Column.DEFAULT_COLOR);return i.l=r,i.toString()},e.prototype.findRow=function(t,e){return t.selectAll('rect.heatmap[data-index="'+e+'"]')},e.prototype.mouseEnter=function(t,e,n,r,i,o){var a=this.findRow(t,i);a.empty()||(e.node().appendChild(a.node()),e.append("text").datum(a.datum()).attr({"class":"number","clip-path":"url(#"+o.idPrefix+"clipCol"+n.id+")",transform:"translate("+o.cellX(i)+","+o.cellY(i)+")"}).text(function(t){return n.getLabel(t)}))},e.prototype.renderCanvas=function(t,e,n,r){var i=this;t.save(),n.forEach(function(n,o){var a=r.cellX(o),s=r.cellY(o)+r.option("rowPadding",1),l=r.rowHeight(o)-2*r.option("rowPadding",1);t.fillStyle=i.colorOf(n,o,e),t.fillRect(a,s,l,l)}),t.restore()},e.prototype.mouseEnterCanvas=function(t,e,n,r,i){t.save(),t.fillText(e.getLabel(n),i.cellX(r),i.cellY(r),e.getWidth()),t.restore()},e}(c);e.HeatMapCellRenderer=d;var h=function(t){function e(e){var n=this;t.call(this),Object.keys(e).forEach(function(t){n[t]=e[t]})}return s(e,t),e}(p),f=function(){function t(){}return t.prototype.render=function(t,e,n,r){},t.prototype.mouseEnter=function(t,e,n,r,i,o){var a=o.option("actions",[]),s=e.append("text").attr({"class":"actions fa",x:o.cellX(i),y:o.cellPrevY(i),"data-index":i}).selectAll("tspan").data(a);s.enter().append("tspan").text(function(t){return t.icon}).attr("title",function(t){return t.name}).on("click",function(t){d3.event.preventDefault(),d3.event.stopPropagation(),t.action(r)})},t.prototype.mouseLeave=function(t,e,n,r,i,o){e.selectAll("*").remove()},t}();e.ActionCellRenderer=f;var g=function(t){function e(){t.call(this),this.textClass="selection"}return s(e,t),e.prototype.render=function(t,e,n,r){var i=t.datum(e).selectAll("text."+this.textClass).data(n,r.rowKey);i.enter().append("text").attr({"class":this.textClass+" fa",y:function(t,e){return r.cellPrevY(e)}}).on("click",function(t){d3.event.preventDefault(),d3.event.stopPropagation();var n=e.toggleValue(t);d3.select(this).text(n===!0?"":"")}),i.attr({x:function(t,e){return r.cellX(e)},"data-index":function(t,e){return e}}).text(function(t){return e.getValue(t)===!0?"":""}),r.animated(i).attr({y:function(t,e){return r.cellY(e)}}),i.exit().remove()},e.prototype.renderCanvas=function(t,e,n,r){t.save(),t.font="FontAwesome",n.forEach(function(n,i){var o=r.cellX(i),a=r.cellY(i);t.fillText(e.getValue(n)===!0?"":"",o,a)}),t.restore()},e}(c);e.SelectionCellRenderer=g;var m=function(t){function e(){t.apply(this,arguments)}return s(e,t),e.prototype.mouseEnter=function(t,e,n,r,i,o){this.findRow(t,i).attr("display","none"),e.append("foreignObject").attr({x:o.cellX(i)-2,y:o.cellPrevY(i)-2,"data-index":i,width:n.getWidth(),height:o.rowHeight(i)}).append("xhtml:input").attr({type:"text",value:n.getValue(r)}).style({width:n.getWidth()+"px"}).on("change",function(){var t=this.value;n.setValue(r,t)}).on("click",function(){return d3.event.stopPropagation()})},e.prototype.mouseLeave=function(t,e,n,r,i,o){this.findRow(t,i).attr("display",null);var a=e.select("input").node();a&&n.setValue(r,a.value),e.selectAll("*").remove()},e}(c),y=new c,v=new p;e.defaultRenderer=r,e.barRenderer=i;var b=function(t){function e(){t.apply(this,arguments)}return s(e,t),e.prototype.render=function(t,e,n,r){var i=t.datum(e).selectAll("text.link").data(n,r.rowKey);i.enter().append("text").attr({"class":"text link","clip-path":"url(#"+r.idPrefix+"clipCol"+e.id+")",y:function(t,e){return r.cellPrevY(e)}}),i.attr({x:function(t,e){return r.cellX(e)},"data-index":function(t,e){return e}}).html(function(t){return e.isLink(t)?''+e.getLabel(t)+"":e.getLabel(t)}),r.animated(i).attr({y:function(t,e){return r.cellY(e)}}),i.exit().remove()},e.prototype.findRow=function(t,e){return t.selectAll('text.link[data-index="'+e+'"]')},e}(c),C=function(t){function e(){t.apply(this,arguments)}return s(e,t),e.prototype.render=function(e,n,r,i){return this.align=n.alignment,this.textClass="text"+("left"===n.alignment?"":"_"+n.alignment),t.prototype.render.call(this,e,n,r,i)},e}(c),x=function(t){function e(){t.apply(this,arguments),this.textClass="cat"}return s(e,t),e.prototype.render=function(t,e,n,r){var i=t.datum(e).selectAll("g."+this.textClass).data(n,r.rowKey),o=i.enter().append("g").attr({"class":this.textClass,"data-index":function(t,e){return e},transform:function(t,e){return"translate("+r.cellX(e)+","+r.cellPrevY(e)+")"}});o.append("text").attr({"clip-path":"url(#"+r.idPrefix+"clipCol"+e.id+")",x:function(t,e){return r.rowHeight(e)}}),o.append("rect").attr({y:r.option("rowPadding",1)}),i.attr({"data-index":function(t,e){return e},transform:function(t,e){return"translate("+r.cellX(e)+","+r.cellY(e)+")"}}),i.select("text").attr({x:function(t,e){return r.rowHeight(e)}}).text(function(t){return e.getLabel(t)}),i.select("rect").style({fill:function(t){return e.getColor(t)}}).attr({height:function(t,e){return Math.max(r.rowHeight(e)-2*r.option("rowPadding",1),0)},width:function(t,e){return Math.max(r.rowHeight(e)-2*r.option("rowPadding",1),0)}}),r.animated(i).attr({transform:function(t,e){return"translate("+r.cellX(e)+","+r.cellY(e)+")"}}),i.exit().remove()},e.prototype.findRow=function(t,e){return t.selectAll("g."+this.textClass+'[data-index="'+e+'"]')},e.prototype.renderCanvas=function(t,e,n,r){t.save(),n.forEach(function(n,i){var o=r.cellX(i),a=r.cellY(i);t.fillStyle="black",t.fillText(e.getLabel(n),o+r.rowHeight(i),a),t.fillStyle=e.getColor(n),t.fillRect(o,a+r.option("rowPadding",1),Math.max(r.rowHeight(i)-2*r.option("rowPadding",1),0),Math.max(r.rowHeight(i)-2*r.option("rowPadding",1),0))})},e}(c),k=function(t){function e(e){void 0===e&&(e=!0),t.call(this),this.nestingPossible=e}return s(e,t),e.prototype.renderImpl=function(t,e,n,r,i,o){void 0===o&&(o=!0);var a=t.datum(e),s=e.children,l=this.nestingPossible&&n.showStacked(e),c=0,u=s.map(function(t){var e=c;return c+=t.getWidth(),c+=l?0:n.option("columnPadding",0),e}),p="component"+n.option("stackLevel",""),d=n.cellX,h=n.option;n.option=function(t,e){var n=h(t,e);return"stackLevel"===t?n+"N":n};var f=a.selectAll("g."+p).data(s,function(t){return t.id});f.enter().append("g").attr({"class":p,transform:function(t,e){return"translate("+u[e]+",0)"}}),f.attr({"class":function(t){return p+" "+t.desc.type},"data-stack":function(t,e){return e}}).each(function(t,e){if(l){var o=s.slice(0,e);n.cellX=function(t){return d(t)-o.reduce(function(e,n){return e+n.getWidth()*(1-n.getValue(i(t)))},0)}}r(d3.select(this),t,e,n)}),(o?n.animated(f):f).attr({transform:function(t,e){return"translate("+u[e]+",0)"}}),f.exit().remove(),n.cellX=d,n.option=h},e.prototype.render=function(t,e,n,r){this.renderImpl(t,e,r,function(t,e,r,i){i.render(e,t,n,i)},function(t){return n[t]})},e.prototype.mouseEnter=function(t,e,n,r,i,o){var a="component"+o.option("stackLevel","");this.renderImpl(e,n,o,function(e,n,o,s){var l=t.select("g."+a+'[data-stack="'+o+'"]');l.empty()||s.renderer(n).mouseEnter(l,e,n,r,i,s)},function(t){return r},!1)},e.prototype.mouseLeave=function(t,e,n,r,i,o){var a="component"+o.option("stackLevel","");this.renderImpl(e,n,o,function(e,n,o,s){var l=t.select("g."+a+'[data-stack="'+o+'"]');l.empty()||s.renderer(n).mouseLeave(l,e,n,r,i,s)},function(t){return r},!1),e.selectAll("*").remove()},e.prototype.renderCanvas=function(t,e,n,r){var i=e.children,o=this.nestingPossible&&r.showStacked(e),a=0,s=i.map(function(t){var e=a;return a+=t.getWidth(),a+=o?0:r.option("columnPadding",0),e}),l=r.cellX,c=r.option;r.option=function(t,e){var n=c(t,e);return"stackLevel"===t?n+"N":n},t.save(),i.forEach(function(e,a){if(t.save(),t.translate(s[a],0),o){var c=i.slice(0,a);r.cellX=function(t){return l(t)-c.reduce(function(e,r){return e+r.getWidth()*(1-r.getValue(n[t]))},0)}}r.renderCanvas(e,t,n,r),t.restore()}),t.restore(),r.cellX=l,r.option=c},e}(c);e.createRenderer=o;var w=i({colorOf:function(t,e,n){return n.getColor(t)}});e.renderers=a},function(t,e,n){"use strict";function r(t){var e=t.label;return null!=t.description&&""!==t.description&&(e+="\n"+t.description),e}function i(){return null}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},a=n(5),s=n(6),l=n(4),c=n(8),u=n(10),p=function(){function t(t){this.desc=t,this.used=0}return t}(),d=function(){function t(t,e,n){void 0===n&&(n={}),this.data=t,this.options={layout:"vertical",elemWidth:100,elemHeight:40,width:100,height:500,additionalDesc:[],hideUsed:!0,addAtEndOnClick:!1},s.merge(this.options,n),this.$node=a.select(e).append("div").classed("lu-pool",!0),this.changeDataStorage(t)}return t.prototype.changeDataStorage=function(t){var e=this;if(this.data&&this.data.on(["addColumn.pool","removeColumn.pool","addRanking.pool","removeRanking.pool","addDesc.pool"],null),this.data=t,this.entries=t.getColumns().concat(this.options.additionalDesc).map(function(t){return new p(t)}),t.on(["addDesc.pool"],function(t){e.entries.push(new p(t)),e.update()}),this.options.hideUsed){var n=this;t.on(["addColumn.pool","removeColumn.pool"],function(t){var e=t.desc,r="addColumn"===this.type?1:-1;n.entries.some(function(t){return t.desc===e&&(t.used+=r,!0)}),n.update()}),t.on(["addRanking.pool","removeRanking.pool"],function(t){var e=t.flatColumns.map(function(t){return t.desc}),r="addRanking"===this.type?1:-1;n.entries.some(function(t){return!(e.indexOf(t.desc)<0)&&(t.used+=r,!0)}),n.update()}),t.getRankings().forEach(function(t){var e=t.flatColumns.map(function(t){return t.desc}),r=1;n.entries.some(function(t){return!(e.indexOf(t.desc)<0)&&void(t.used+=r)})})}},t.prototype.remove=function(){this.$node.remove(),this.data&&this.data.on(["addColumn.pool","removeColumn.pool","addRanking.pool","removeRanking.pool","addDesc.pool"],null)},t.prototype.update=function(){var t=this,e=this.data,n=this.entries.filter(function(t){return 0===t.used}).map(function(t){return t.desc}),i=this.$node.selectAll("div.header").data(n),o=i.enter().append("div").attr({"class":"header",draggable:!0}).on("dragstart",function(t){var n=a.event;n.dataTransfer.effectAllowed="copyMove",n.dataTransfer.setData("text/plain",t.label),n.dataTransfer.setData("application/caleydo-lineup-column",JSON.stringify(e.toDescRef(t))),l.isNumberColumn(t)&&n.dataTransfer.setData("application/caleydo-lineup-column-number",JSON.stringify(e.toDescRef(t)))}).style({width:this.options.elemWidth+"px",height:this.options.elemHeight+"px"});switch(this.options.addAtEndOnClick&&o.on("click",function(e){t.data.push(t.data.getLastRanking(),e)}),o.append("span").classed("label",!0).text(function(t){return t.label}),i.attr("class",function(t){return"header "+(t.cssClass||"")+" "+t.type}),i.style({transform:function(e,n){var r=t.layout(n);return"translate("+r.x+"px,"+r.y+"px)"},"background-color":function(t){var e=t;return e.cssClass?null:e.color||l.Column.DEFAULT_COLOR}}),i.attr({title:function(t){return r(t)}}),i.select("span").text(function(t){return t.label}),i.exit().remove(),this.options.layout){case"horizontal":this.$node.style({width:this.options.elemWidth*n.length+"px",height:1*this.options.elemHeight+"px"});break;case"grid":var s=a.round(this.options.width/this.options.elemWidth,0);this.$node.style({width:s*this.options.elemWidth+"px",height:Math.ceil(n.length/s)*this.options.elemHeight+"px"});break;default:this.$node.style({width:1*this.options.elemWidth+"px",height:this.options.elemHeight*n.length+"px"})}},t.prototype.layout=function(t){switch(this.options.layout){case"horizontal":return{x:t*this.options.elemWidth,y:0};case"grid":var e=a.round(this.options.width/this.options.elemWidth,0);return{x:t%e*this.options.elemWidth,y:Math.floor(t/e)*this.options.elemHeight};default:return{x:0,y:t*this.options.elemHeight}}},t}();e.PoolRenderer=d,e.dummyRankingButtonHook=i;var h=function(){function t(t,e,n){var r=this;void 0===n&&(n={}),this.data=t,this.options={slopeWidth:150,columnPadding:5,headerHistogramHeight:40,headerHeight:20,manipulative:!0,histograms:!1,filterDialogs:u.filterDialogs(),linkTemplates:[],searchAble:function(t){return t instanceof l.StringColumn},sortOnLabel:!0,autoRotateLabels:!1,rotationHeight:50,rotationDegree:-20,freezeCols:0,rankingButtons:i},this.histCache=a.map(),this.dragHandler=a.behavior.drag().on("dragstart",function(){a.select(this).classed("dragging",!0),a.event.sourceEvent.stopPropagation(),a.event.sourceEvent.preventDefault()}).on("drag",function(t){var e=Math.max(a.mouse(this.parentNode)[0],2);t.setWidth(e),a.event.sourceEvent.stopPropagation(),a.event.sourceEvent.preventDefault()}).on("dragend",function(t){a.select(this).classed("dragging",!1),a.event.sourceEvent.stopPropagation(),a.event.sourceEvent.preventDefault()}),this.dropHandler=s.dropAble(["application/caleydo-lineup-column-ref","application/caleydo-lineup-column"],function(t,e,n){var i=null;if("application/caleydo-lineup-column-ref"in t){var o=t["application/caleydo-lineup-column-ref"];i=r.data.find(o),n?i=r.data.clone(i):i.removeMe()}else{var a=JSON.parse(t["application/caleydo-lineup-column"]);i=r.data.create(r.data.fromDescRef(a))}if(e instanceof l.Column)return null!=e.insertAfterMe(i);var s=r.data.getLastRanking();return null!==s.push(i)}),s.merge(this.options,n),this.$node=a.select(e).append("div").classed("lu-header",!0),this.$node.append("div").classed("drop",!0).call(this.dropHandler),this.changeDataStorage(t)}return t.prototype.changeDataStorage=function(t){var e=this;this.data&&this.data.on(["dirtyHeader.headerRenderer","orderChanged.headerRenderer","selectionChanged.headerRenderer"],null),this.data=t,t.on("dirtyHeader.headerRenderer",s.delayedCall(this.update.bind(this),1)),this.options.histograms&&(t.on("orderChanged.headerRenderer",function(){e.updateHist(),e.update()}),t.on("selectionChanged.headerRenderer",s.delayedCall(this.drawSelection.bind(this),1)))},Object.defineProperty(t.prototype,"sharedHistCache",{get:function(){return this.histCache},enumerable:!0,configurable:!0}),t.prototype.currentHeight=function(){return parseInt(this.$node.style("height"),10)},t.prototype.updateHist=function(){var t=this,e=this.data.getRankings();e.forEach(function(e){var n=e.getOrder(),r=e.flatColumns,i=null==n?null:t.data.stats(n);r.filter(function(t){return t instanceof l.NumberColumn&&!t.isHidden()}).forEach(function(e){t.histCache.set(e.id,null===i?null:i.stats(e))}),r.filter(function(t){return l.isCategoricalColumn(t)&&!t.isHidden()}).forEach(function(e){t.histCache.set(e.id,null===i?null:i.hist(e))})})},t.prototype.drawSelection=function(){var t=this;if(this.options.histograms){var e=this.$node.node();[].slice.call(e.querySelectorAll("div.bar")).forEach(function(t){return t.classList.remove("selected")});var n=this.data.getSelection();n.length<=0||this.data.view(n).then(function(n){var r=t.data.getRankings();r.forEach(function(t){var r=t.flatColumns;r.filter(function(t){return t instanceof l.NumberColumn&&!t.isHidden()}).forEach(function(t){var r=[].slice.call(e.querySelectorAll('div.header[data-id="'+t.id+'"] div.bar'));n.forEach(function(e){for(var n=t.getValue(e),i=1;in){r[i-1].classList.add("selected");break}if(i===r.length-1){o.classList.add("selected");break}}})}),r.filter(function(t){return l.isCategoricalColumn(t)&&!t.isHidden()}).forEach(function(t){var r=e.querySelector('div.header[data-id="'+t.id+'"]');n.forEach(function(e){var n=t.getCategories(e);(n||[]).forEach(function(t){r.querySelector('div.bar[data-cat="'+t+'"]').classList.add("selected")})})})})})}},t.prototype.renderRankingButtons=function(t,e){var n=this.$node.selectAll("div.rankingbuttons").data(t);n.enter().append("div").classed("rankingbuttons",!0).call(this.options.rankingButtons),n.style("left",function(t,n){return e[n]+"px"}),n.exit().remove()},t.prototype.update=function(){function t(e){return!l.isMultiLevelColumn(e)||e.getCollapsed()||e.getCompressed()?1:1+Math.max.apply(Math,e.children.map(t))}var e=this,n=this,r=this.data.getRankings(),o=[],s=0,c=[];r.forEach(function(t){s+=t.flatten(o,s,1,e.options.columnPadding)+e.options.slopeWidth,c.push(s-e.options.slopeWidth)}),s-=this.options.slopeWidth;var u=o.map(function(t){return t.col});this.options.histograms&&this.histCache.empty()&&r.length>0&&this.updateHist(),this.renderColumns(u,o),this.options.rankingButtons!==i&&this.renderRankingButtons(r,c);var p=Math.max.apply(Math,u.map(t)),d=(this.options.histograms?this.options.headerHistogramHeight:this.options.headerHeight)+(p-1)*this.options.headerHeight;if(this.options.autoRotateLabels){var h=!1;this.$node.selectAll("div.header").style("height",d+"px").select("div.lu-label").each(function(t){var e=this.querySelector("span.lu-label").offsetWidth,r=t.getWidth();e>r+30?(a.select(this).style("transform","rotate("+n.options.rotationDegree+"deg)"),h=!0):a.select(this).style("transform",null)}),this.$node.selectAll("div.header").style("margin-top",h?this.options.rotationHeight+"px":null),d+=h?this.options.rotationHeight:0}this.$node.style("height",d+"px")},t.prototype.createToolbar=function(t){var e=this,n=this.options.filterDialogs,r=this.data,i=this,o=t.filter(function(t){return!(t instanceof l.Ranking)}),s=t.filter(function(t){return t instanceof l.StackColumn}),c=t.filter(function(t){return l.isMultiLevelColumn(t)});s.append("i").attr("class","fa fa-tasks").attr("title","Edit Weights").on("click",function(t){u.openEditWeightsDialog(t,a.select(this.parentNode.parentNode)),a.event.stopPropagation()}),o.append("i").attr("class","fa fa-pencil-square-o").attr("title","Rename").on("click",function(t){u.openRenameDialog(t,a.select(this.parentNode.parentNode)),a.event.stopPropagation()}),o.append("i").attr("class","fa fa-code-fork").attr("title","Generate Snapshot").on("click",function(t){r.takeSnapshot(t),a.event.stopPropagation()}),t.filter(function(t){return t instanceof l.LinkColumn}).append("i").attr("class","fa fa-external-link").attr("title","Edit Link Pattern").on("click",function(t){u.openEditLinkDialog(t,a.select(this.parentNode.parentNode),[].concat(t.desc.templates||[],i.options.linkTemplates)),a.event.stopPropagation()}),t.filter(function(t){return t instanceof l.ScriptColumn}).append("i").attr("class","fa fa-gears").attr("title","Edit Combine Script").on("click",function(t){u.openEditScriptDialog(t,a.select(this.parentNode.parentNode)),a.event.stopPropagation()}),t.filter(function(t){return n.hasOwnProperty(t.desc.type)}).append("i").attr("class","fa fa-filter").attr("title","Filter").on("click",function(t){n[t.desc.type](t,a.select(this.parentNode.parentNode),r),a.event.stopPropagation()}),t.filter(function(t){return e.options.searchAble(t)}).append("i").attr("class","fa fa-search").attr("title","Search").on("click",function(t){u.openSearchDialog(t,a.select(this.parentNode.parentNode),r),a.event.stopPropagation()}),o.append("i").attr("class","fa").classed("fa-toggle-left",function(t){return!t.getCompressed()}).classed("fa-toggle-right",function(t){return t.getCompressed()}).attr("title","(Un)Collapse").on("click",function(t){t.setCompressed(!t.getCompressed()),a.select(this).classed("fa-toggle-left",!t.getCompressed()).classed("fa-toggle-right",t.getCompressed()),a.event.stopPropagation()}),c.append("i").attr("class","fa").classed("fa-compress",function(t){return!t.getCollapsed()}).classed("fa-expand",function(t){return t.getCollapsed()}).attr("title","Compress/Expand").on("click",function(t){t.setCollapsed(!t.getCollapsed()),a.select(this).classed("fa-compress",!t.getCollapsed()).classed("fa-expand",t.getCollapsed()),a.event.stopPropagation()}),t.append("i").attr("class","fa fa-times").attr("title","Hide").on("click",function(t){t instanceof l.RankColumn?(r.removeRanking(t.findMyRanker()),0===r.getRankings().length&&r.pushRanking()):t.removeMe(),a.event.stopPropagation()})},t.prototype.updateFreeze=function(t){var e=this.options.freezeCols;this.$node.selectAll("div.header").style("z-index",function(t,n){return n0&&e.jumpToSelection(),e.drawSelection()},1))},e.prototype.createContext=function(t){var e=this.options;return{rowKey:this.options.animation?this.data.rowKey:void 0,cellY:function(n){return(n+t)*e.rowHeight},cellPrevY:function(n){return(n+t)*e.rowHeight},cellX:function(t){return 0},rowHeight:function(t){return e.rowHeight*(1-e.rowPadding)},renderer:function(t){if(t.getCompressed()&&l.isNumberColumn(t))return e.renderers.heatmap;if(t instanceof l.StackColumn&&t.getCollapsed())return e.renderers.number;if(l.isMultiLevelColumn(t)&&t.getCollapsed())return e.renderers.string;var n=e.renderers[t.desc.type];return n||c.defaultRenderer()},render:function(t,e,n,r){void 0===r&&(r=this);var i=e.node(),o=i.__renderer__,a=this.renderer(t);o!==a&&(e.selectAll("*").remove(),i.__renderer__=a),a.render(e,t,n,r)},renderCanvas:function(t,e,n,r){void 0===r&&(r=this)},showStacked:function(t){return t instanceof l.StackColumn&&e.stacked},idPrefix:e.idPrefix,animated:function(t){return e.animation?t.transition().duration(e.animationDuration):t},showMeanLine:function(t){return e.meanLine&&l.isNumberColumn(t)&&!t.getCompressed()&&t.parent instanceof l.Ranking},option:function(t,n){return t in e?e[t]:n}}},e.prototype.updateClipPathsImpl=function(t,e,n){var r=this.$node.select("defs.body");r.empty()&&(r=this.$node.append("defs").classed("body",!0));var i=r.selectAll(function(){return this.getElementsByTagName("clipPath")}).data(t,function(t){return t.id});i.enter().append("clipPath").attr("id",function(t){return e.idPrefix+"clipCol"+t.id}).append("rect").attr({y:0}),i.exit().remove(),i.select("rect").attr({x:0,width:function(t){return Math.max(t.getWidth()-5,0)},height:n})},e.prototype.updateClipPaths=function(t,e,n){var r=this,i=[],o=0;t.forEach(function(t){var e=t.flatten(i,o,2,r.options.columnPadding);o+=e+r.options.slopeWidth}),this.updateClipPathsImpl(i.map(function(t){return t.col}),e,n);var a=this.$node.select("clipPath#c"+e.idPrefix+"Freeze");a.empty()&&(a=this.$node.append("clipPath").attr("id","c"+e.idPrefix+"Freeze").append("rect").attr({y:0,width:2e4,height:n})),a.select("rect").attr({height:n})},e.prototype.renderRankings=function(t,e,n,r,i,o){function s(t,e,n,o,s){t.classed("hover",!0);var l=t.select("g.values").selectAll("g.uchild").data(o.children.filter(function(t){return!t.isHidden()}),function(t){return t.id});l.enter().append("g").attr({"class":"uchild"}).append("g").classed("child",!0),l.select("g.child").attr({transform:function(t,e){return"translate("+r[s].shifts[e]+",0)"}}).each(function(t,r){var o=this;p[s].then(function(s){i.renderer(t).mouseEnter(e.selectAll('g.child[data-index="'+r+'"]'),a.select(o),t,s[n],n,i)})}),l.exit().remove()}function l(t,e,n,r,o){t.classed("hover",!1),t.select("g.values").selectAll("g.uchild").each(function(t,r){var s=this;p[o].then(function(o){i.renderer(t).mouseLeave(e.selectAll('g.child[data-index="'+r+'"]'),a.select(s).select("g.child"),t,o[n],n,i)})}).remove()}var c=this,u=this,p=n.map(function(t){return c.data.view(t)}),d=t.selectAll("g.ranking").data(e,function(t){return t.id}),h=d.enter().append("g").attr({"class":"ranking",transform:function(t,e){return"translate("+r[e].shift+",0)"}});h.append("g").attr("class","rows"),h.append("g").attr("class","cols"),i.animated(d).attr({transform:function(t,e){return"translate("+r[e].shift+",0)"}});var f=d.select("g.cols").selectAll("g.uchild").data(function(t){return t.children.filter(function(t){return!t.isHidden()})},function(t){return t.id});f.enter().append("g").attr("class","uchild").append("g").attr({"class":"child",transform:function(t,e,n){return"translate("+r[n].shifts[e]+",0)"}}),f.exit().remove(),f=f.select("g.child"),f.attr({"data-index":function(t,e){return e}}),i.animated(f).attr({transform:function(t,e,n){return"translate("+r[n].shifts[e]+",0)"}}).each(function(t,e,n){var r=a.select(this);if(p[n].then(function(e){i.render(t,r,e,i)}),i.showMeanLine(t)){var s=u.histCache.get(t.id);s&&s.then(function(e){var n=r.selectAll("line.meanline").data([e.mean]);n.enter().append("line").attr("class","meanline"),n.exit().remove(),n.attr("x1",t.getWidth()*e.mean).attr("x2",t.getWidth()*e.mean).attr("y2",o)})}else r.selectAll("line.meanline").remove()}),Promise.all(p).then(function(t){c.fire("renderFinished")}),this.mouseOverItem=function(t,e){void 0===e&&(e=!0),d.each(function(n,r){var i=a.select(this),o=i.selectAll('g.row[data-index="'+t+'"]'),c=i.select("g.cols");if(!o.empty()){var u=o.datum().i;e?s(o,c,u,n,r):l(o,c,u,n,r)}}),u.updateFrozenRows()};var g=d.select("g.rows").selectAll("g.row").data(function(t,e){return n[e].map(function(t,e){return{d:t,i:e}})}),m=g.enter().append("g").attr({"class":"row"});m.append("rect").attr({"class":"bg"}),m.append("g").attr({"class":"values"}),m.on("mouseenter",function(t){c.mouseOver(t.d,!0)}).on("mouseleave",function(t){c.mouseOver(t.d,!1)}).on("click",function(t){c.select(t.d,a.event.ctrlKey)}),g.attr({"data-index":function(t){return t.d}}).classed("selected",function(t){return c.data.isSelected(t.d)}),g.select("rect").attr({y:function(t){return i.cellY(t.i)},height:function(t){return i.rowHeight(t.i)},width:function(t,e,n){return r[n].width},"class":function(t,e){return"bg "+(e%2===0?"even":"odd")}}),g.exit().remove(),d.exit().remove()},e.prototype.jumpToSelection=function(){var t=this,e=this.data.getSelection(),n=this.data.getRankings();if(!(e.length<=0||n.length<=0)){var r=n[0].getOrder(),i=this.slicer(0,r.length,function(e){return e*t.options.rowHeight}),o=r.slice(i.from,i.to);e.some(function(t){return o.indexOf(t)>=0})}},e.prototype.select=function(t,e){void 0===e&&(e=!1);var n=this.data.toggleSelection(t,e);this.$node.selectAll('g.row[data-index="'+t+'"], line.slope[data-index="'+t+'"]').classed("selected",n)},e.prototype.hasAnySelectionColumn=function(){return this.data.getRankings().some(function(t){return t.children.some(function(t){return t instanceof l.SelectionColumn&&!t.isHidden()})})},e.prototype.drawSelection=function(){this.hasAnySelectionColumn()&&this.update();var t=this.data.getSelection();if(0===t.length)this.$node.selectAll("g.row.selected, line.slope.selected").classed("selected",!1);else{var e=a.set(t);this.$node.selectAll("g.row").classed("selected",function(t){return e.has(String(t.d))}),this.$node.selectAll("line.slope").classed("selected",function(t){return e.has(String(t.data_index))})}},e.prototype.mouseOver=function(t,e){void 0===e&&(e=!0),this.fire("hoverChanged",e?t:-1),this.mouseOverItem(t,e),this.$node.selectAll('line.slope[data-index="'+t+'"]').classed("hover",e)},e.prototype.renderSlopeGraphs=function(t,e,n,r,i){var o=this,a=n.slice(1).map(function(t,e){return{left:n[e],left_i:e,right:t,right_i:e+1}}),s=t.selectAll("g.slopegraph").data(a);s.enter().append("g").attr({"class":"slopegraph"}),s.attr({transform:function(t,e){return"translate("+(r[e+1].shift-o.options.slopeWidth)+",0)"}});var l=s.selectAll("line.slope").data(function(t,e){var n={};return t.right.forEach(function(t,e){n[t]=e}),t.left.map(function(t,e){return{data_index:t,lpos:e,rpos:n[t]}}).filter(function(t){return null!=t.rpos})});l.enter().append("line").attr({"class":"slope",x2:this.options.slopeWidth}).on("mouseenter",function(t){o.mouseOver(t.data_index,!0)}).on("mouseleave",function(t){o.mouseOver(t.data_index,!1)}),l.attr({"data-index":function(t){return t.data_index}}),l.attr({y1:function(t){return.5*i.rowHeight(t.lpos)+i.cellY(t.lpos)},y2:function(t){return.5*i.rowHeight(t.rpos)+i.cellY(t.rpos)}}),l.exit().remove(),s.exit().remove()},e.prototype.updateFreeze=function(t){var e=this,n=this.options.freezeCols,r=this.$node.select("g.cols"),i=this.$node.select("#c"+this.options.idPrefix+"Freeze").select("rect"),o=r.select('g.child[data-index="'+n+'"]');o.empty()&&(o=r.select("g.child:last-of-type"));var s=a.transform(o.attr("transform")||"").translate[0];i.attr("x",t+s),r.selectAll("g.uchild").attr({"clip-path":function(t,r){return r'+t+'
'+e+'
'}function i(t,e,n){function i(){a.style({left:this.parentElement.offsetLeft+d3.event.dx+"px",top:this.parentElement.offsetTop+d3.event.dy+"px"})}var o=b.offset(t.node()),a=d3.select("body").append("div").attr({"class":"lu-popup2"}).style({left:o.left+"px",top:o.top+"px"}).html(r(e,n));a.select("span.lu-popup-title").call(d3.behavior.drag().on("drag",i)),a.on("keydown",function(){27===d3.event.which&&a.remove()});var s=a.select("input[autofocus]").node();return s&&s.focus(),a}function o(t,e){var n=i(e,"Rename Column",'\n
\n
\n
");n.select(".ok").on("click",function(){var e=n.select('input[type="text"]').property("value"),r=n.select('input[type="color"]').property("value"),i=n.select("textarea").property("value");t.setMetaData({label:e,color:r,description:i}),n.remove()}),n.select(".cancel").on("click",function(){n.remove()})}function a(t,e,n){void 0===n&&(n=[]);var r='0?'list="lineupPatternList"':"")+">
";n.length>0&&(r+=''+n.map(function(t){return'");var o=i(e,"Edit Link ($ as Placeholder)",r);o.select(".ok").on("click",function(){var e=o.select('input[type="text"]').property("value");t.setLink(e),o.remove()}),o.select(".cancel").on("click",function(){o.remove()})}function s(t,e,n){function r(){var e=o.select('input[type="text"]').property("value"),r=o.select('input[type="text"]').property("checked");e.length>0&&(r&&(e=new RegExp(e)),n.searchSelect(e,t)),o.remove()}var o=i(e,"Search",'

');o.select('input[type="text"]').on("input",function(){var e=d3.event.target.value;if(e.length>=3){var r=o.select('input[type="checkbox"]').property("checked");r&&(e=new RegExp(e)),n.searchSelect(e,t)}}),o.select('input[type="checkbox"]').on("change",r),o.select(".ok").on("click",r),o.select(".cancel").on("click",function(){o.remove()})}function l(t,e){function n(){l.select(".bar").transition().style("width",function(t){return a(t.weight)+"px"})}var r=t.getWeights(),o=t.children.map(function(t,e){return{col:t,weight:100*r[e]}}),a=d3.scale.linear().domain([0,100]).range([0,120]),s=i(e,"Edit Weights","
"),l=s.select("table").selectAll("tr").data(o),c=l.enter().append("tr");c.append("td").append("input").attr({type:"number",value:function(t){return t.weight},min:0,max:100,size:5}).on("input",function(t){t.weight=+this.value,n()}),c.append("td").append("div").attr("class",function(t){return"bar "+t.col.cssClass}).style("background-color",function(t){return t.col.color}),c.append("td").text(function(t){return t.col.label}),n(),s.select(".cancel").on("click",function(){t.setWeights(r),s.remove()}),s.select(".reset").on("click",function(){o.forEach(function(t,e){return t.weight=100*r[e]}),l.select("input").property("value",function(t){return t.weight}),n()}),s.select(".ok").on("click",function(){t.setWeights(o.map(function(t){return t.weight})),s.remove()})}function c(t,e){void 0===e&&(e=!1),t.classed("filtered",e)}function u(t){return function(e,n){var r=e[t],i=n[t];return r.toLowerCase()i.toLowerCase()?1:0}}function p(t,e){function n(){h.select(".checkmark").html(function(t){return''}),h.select(".datalabel").style("opacity",function(t){return t.isChecked?"1.0":".8"})}function r(){s.select(".selectAll").html(function(t){return''}),s.select("thead").on("click",function(t){g=!g,d.forEach(function(t){return t.isChecked=g}),n(),r()})}function o(n){c(e,n&&n.length>0&&n.length
Category
'),l=t.categoryColors,p=t.categoryLabels,d=t.categories.map(function(t,e){return{cat:t,label:p[e],isChecked:0===a.length||a.indexOf(t)>=0,color:l[e]}}).sort(u("label")),h=s.select("tbody").selectAll("tr").data(d),f=h.enter().append("tr");f.append("td").attr("class","checkmark"),f.append("td").attr("class","datalabel").text(function(t){return t.label}),f.on("click",function(t){t.isChecked=!t.isChecked,n()}),n();var g=!0;r(),s.select(".cancel").on("click",function(){o(a),s.remove()}),s.select(".reset").on("click",function(){d.forEach(function(t){return t.isChecked=!0}),n(),o(null)}),s.select(".ok").on("click",function(){var t=d.filter(function(t){return t.isChecked}).map(function(t){return t.cat});t.length===d.length&&(t=[]),o(t),s.remove()})}function d(t,e){function n(n){c(e,n&&""!==n),t.setFilter(n)}function r(t){var e=s.select('input[type="text"]').property("value"),r=s.select('input[type="checkbox"].lu_filter_missing').property("checked");if(r&&""===e&&(e=v.StringColumn.FILTER_MISSING),""===e)return void n(e);if(e.length>=3||t){var i=s.select('input[type="checkbox"]:first-of-type').property("checked");i&&e!==v.StringColumn.FILTER_MISSING&&(e=new RegExp(e)),n(e)}}var o=t.getFilter()||"",a=o===v.StringColumn.FILTER_MISSING;a&&(o="");var s=i(e,"Filter",'\n

\n
");s.selectAll('input[type="checkbox"]').on("change",r),s.select('input[type="text"]').on("input",r),s.select(".cancel").on("click",function(){s.select('input[type="text"]').property("value",o||""),s.select('input[type="checkbox"]:first-of-type').property("checked",o instanceof RegExp?"checked":null),s.select('input[type="checkbox"].lu_filter_missing').property("checked",a?"checked":null),n(o),s.remove()}),s.select(".reset").on("click",function(){s.select('input[type="text"]').property("value",""),s.selectAll('input[type="checkbox"]').property("checked",null),n(null)}),s.select(".ok").on("click",function(){r(!0),s.remove()})}function h(t,e){function n(n){c(e,null!==n),t.setFilter(n)}function r(t){var e=a.select('input[type="radio"][value="true"]').property("checked"),r=a.select('input[type="radio"][value="false"]').property("checked");n(!!e||!r&&null)}var o=t.getFilter(),a=i(e,"Filter",'
\n
\n \n
");a.selectAll('input[type="radio"]').on("change",r),a.select(".cancel").on("click",function(){n(o),a.remove()}),a.select(".reset").on("click",function(){var t=null===o?"null":String(o);a.selectAll('input[type="radio"]').property("checked",function(){return this.value===t}),n(null)}),a.select(".ok").on("click",function(){r(!0),a.remove()})}function f(t,e){function n(e){t.setScript(e)}function r(){var t=a.select("textarea").property("value");n(t)}var o=t.getScript(),a=i(e,"Edit Script",'Parameters: values: number[], children: Column[]
\n
");a.select(".cancel").on("click",function(){a.select("textarea").property("value",o),n(o),a.remove()}),a.select(".reset").on("click",function(){a.select("textarea").property("value",v.ScriptColumn.DEFAULT_SCRIPT),n(v.ScriptColumn.DEFAULT_SCRIPT)}),a.select(".ok").on("click",function(){r(),a.remove()})}function g(t,e,n){function i(n,r){u=n,p=r,c(e,!n.eq(s)||l.min!==r.min||l.max!==r.min),t.setMapping(n),t.setFilter(r)}var o=b.offset(e.node()),a=t.getMapping(),s=t.getOriginalMapping(),l=t.getFilter(),u=a.clone(),p=l,d=d3.select("body").append("div").attr({"class":"lu-popup"}).style({left:o.left+"px",top:o.top+"px"}).html(r("Change Mapping",'
')),h={callback:i,triggerCallback:"dragend"},f=n.mappingSample(t),g=C.create(d.select(".mappingArea").node(),u,s,p,f,h);d.select(".ok").on("click",function(){i(g.scale,g.filter),d.remove()}),d.select(".cancel").on("click",function(){t.setMapping(a),c(e,!a.eq(s)),d.remove()}),d.select(".reset").on("click",function(){a=s,u=a.clone(),l={min:-(1/0),max:+(1/0)},p=l,i(u,p),d.selectAll(".mappingArea *").remove(),g=C.create(d.select(".mappingArea").node(),u,s,p,f,h)})}function m(t,e){function n(){g.select(".checkmark").html(function(t){return''}),g.select(".bar").transition().style("width",function(t){return s(t.range)+"px"}),g.select(".datalabel").style("opacity",function(t){return t.isChecked?"1.0":".8"})}function r(){l.select(".selectAll").html(function(t){return''}),l.select("thead").on("click",function(t){y=!y,f.forEach(function(t){return t.isChecked=y}),n(),r()})}function o(n){c(e,n&&n.length>0&&n.length
ScaleCategory
'),p=t.getScale().range,d=t.categoryColors,h=t.categoryLabels,f=t.categories.map(function(t,e){return{cat:t,label:h[e],isChecked:0===a.length||a.indexOf(t)>=0,range:100*p[e],color:d[e]}}).sort(u("label")),g=l.select("tbody").selectAll("tr").data(f),m=g.enter().append("tr");m.append("td").attr("class","checkmark").on("click",function(t){t.isChecked=!t.isChecked,n()}),m.append("td").append("input").attr({type:"number",value:function(t){return t.range},min:0,max:100,size:5}).on("input",function(t){t.range=+this.value,n()}),m.append("td").append("div").attr("class","bar").style("background-color",function(t){return t.color}),m.append("td").attr("class","datalabel").text(function(t){return t.label}),n();var y=!0;r(),l.select(".cancel").on("click",function(){o(a),t.setMapping(p),l.remove()}),l.select(".reset").on("click",function(){f.forEach(function(t){t.isChecked=!0,t.range=50}),n(),o(null),t.setMapping(f.map(function(){return 1}))}),l.select(".ok").on("click",function(){var e=f.filter(function(t){return t.isChecked}).map(function(t){return t.cat});e.length===f.length&&(e=[]),o(e),t.setMapping(f.map(function(t){return t.range/100})),l.remove()})}function y(){return{string:d,categorical:p,number:g,ordinal:m,"boolean":h}}var v=n(4),b=n(6),C=n(11);e.dialogForm=r,e.makePopup=i,e.openRenameDialog=o,e.openEditLinkDialog=a,e.openSearchDialog=s,e.openEditWeightsDialog=l,e.openEditScriptDialog=f,e.filterDialogs=y},function(t,e,n){"use strict";function r(t,e,n){return Math.max(Math.min(t,n),e)}function i(t,e,n,r,i,o){return void 0===o&&(o={}),new l(t,e,n,r,i,o)}var o=n(5),a=n(6),s=n(4),l=function(){function t(t,e,n,r,i,s){void 0===s&&(s={}),this.parent=t,this.scale_=e,this.original=n,this.old_filter=r,this.dataPromise=i,this.options={width:370,height:225,padding_hor:7,padding_ver:7,filter_height:20,radius:5,callback:function(t){return t},callbackThisArg:null,triggerCallback:"change"},a.merge(this.options,s),this.scale_=e.clone(),this.build(o.select(t))}return Object.defineProperty(t.prototype,"scale",{get:function(){return this.scale_},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"filter",{get:function(){return this.computeFilter()},enumerable:!0,configurable:!0}),t.prototype.build=function(t){function e(){m.attr({x1:function(t){return g(p.scale.apply(t))},x2:f}).style("visibility",function(t){var e=p.scale.domain;return te[e.length-1]?"hidden":null})}function n(t){return o.behavior.drag().on("dragstart",function(){o.select(this).classed("dragging",!0).attr("r",1.1*u.radius)}).on("drag",t).on("dragend",function(){o.select(this).classed("dragging",!1).attr("r",u.radius),l(!0)})}function i(){function a(){y.sort(function(t,e){return t.r-e.r});var t=p.scale;t.domain=y.map(function(t){return t.r}),t.range=y.map(function(t){return t.n}),e()}function l(t){y.length<=2||(y.splice(t,1),a(),i())}function c(t){t=r(t,0,d),y.push({n:g.invert(t),r:f.invert(t)}),a(),i()}if(p.scale instanceof s.ScaleMappingFunction){var m=p.scale,v=m.domain,b=m.range;y=v.map(function(t,e){return{r:t,n:b[e]}}),t.selectAll("rect.adder").on("click",function(){c(o.mouse(t.select("svg > g").node())[0])});var C=t.select("g.mappings").selectAll("g.mapping").data(y),x=C.enter().append("g").classed("mapping",!0).on("contextmenu",function(t,e){o.event.preventDefault(),o.event.stopPropagation(),l(e)});x.append("line").attr({y1:0,y2:h}).call(n(function(t){var e=o.event.dx,n=r(g(t.n)+e,0,d),i=r(f(t.r)+e,0,d);t.n=g.invert(n),t.r=f.invert(i),o.select(this).attr("x1",n).attr("x2",i),o.select(this.parentElement).select("circle.normalized").attr("cx",n),o.select(this.parentElement).select("circle.raw").attr("cx",i),a()})),x.append("circle").classed("normalized",!0).attr("r",u.radius).call(n(function(t){var e=r(o.event.x,0,d);t.n=g.invert(e),o.select(this).attr("cx",e),o.select(this.parentElement).select("line").attr("x1",e),a()})),x.append("circle").classed("raw",!0).attr("r",u.radius).attr("cy",h).call(n(function(t){var e=r(o.event.x,0,d);t.r=f.invert(e),o.select(this).attr("cx",e),o.select(this.parentElement).select("line").attr("x2",e),a()})),C.select("line").attr({x1:function(t){return g(t.n)},x2:function(t){return f(t.r)}}),C.select("circle.normalized").attr("cx",function(t){return g(t.n)}),C.select("circle.raw").attr("cx",function(t){return f(t.r)}),C.exit().remove()}}function a(){if(!(p.scale instanceof s.ScriptMappingFunction))return void t.select("div.script").style("display","none");t.select("div.script").style("display",null);var n=p.scale,r=t.select("textarea").text(n.code);t.select("div.script").select("button").on("click",function(){n.code=r.property("value"),e(),l()})}function l(t){void 0===t&&(t=!1),t&&"dragend"!==u.triggerCallback||u.callback.call(u.callbackThisArg,p.scale.clone(),p.filter)}function c(){var n=f.domain();t.select("input.raw_min").property("value",n[0]),t.select("input.raw_max").property("value",n[1]),e(),i()}var u=this.options,p=this;t=t.append("div").classed("lugui-me",!0);var d=u.width-2*u.padding_hor,h=u.height-2*u.padding_ver-u.filter_height;t.node().innerHTML='
\n
\n
\n
\n 0\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n > 0\n \n \n \n \n < 1\n \n \n \n \n
\n 1\n \n
\n
\n
\n \n \n
\n
'; +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("d3")):"function"==typeof define&&define.amd?define(["d3"],e):"object"==typeof exports?exports.LineUpJS=e(require("d3")):t.LineUpJS=e(t.d3)}(this,function(t){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){n(1),t.exports=n(3)},function(t,e){},,function(t,e,n){"use strict";function r(t){var e=h.scale.category10().range().slice();return t.forEach(function(t){switch(t.type){case"number":t.color=e.shift()}}),t}function i(t,e,n){return void 0===n&&(n={}),new l.LocalDataProvider(t,e,n)}function o(t,e,n){return void 0===n&&(n={}),new f(e,t,n)}var a=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},s=n(4),l=n(7),c=n(8),u=n(9),p=n(6),d=n(10),h=n(5);e.model=s,e.provider=l,e.renderer=c,e.ui=u,e.utils=p,e.ui_dialogs=d;var f=function(t){function n(r,i,o){var a=this;void 0===o&&(o={}),t.call(this),this.data=i,this.config={idPrefix:Math.random().toString(36).slice(-8).substr(0,3),header:{headerHeight:20,headerHistogramHeight:40,autoRotateLabels:!1,rotationHeight:50,rotationDegree:-20,rankingButtons:u.dummyRankingButtonHook,linkTemplates:[]},htmlLayout:{},renderingOptions:{stacked:!0,animation:!0,histograms:!1,meanLine:!1},body:{renderer:"svg",rowHeight:17,rowPadding:.2,rowBarPadding:1,visibleRowsOnly:!0,backupScrollRows:4,animationDuration:1e3,freezeCols:0,rowActions:[]},svgLayout:{},manipulative:!0,pool:!1,renderers:c.renderers()},this.body=null,this.header=null,this.pools=[],this.contentScroller=null,this.isUpdateInitialized=!1,this.$container=r instanceof h.selection?r:h.select(r),this.$container=this.$container.append("div").classed("lu",!0),this.config.svgLayout=this.config.body,this.config.htmlLayout=this.config.header,e.utils.merge(this.config,o),this.data.on("selectionChanged.main",this.triggerSelection.bind(this)),this.header=new u.HeaderRenderer(i,this.node,{manipulative:this.config.manipulative,headerHeight:this.config.header.headerHeight,headerHistogramHeight:this.config.header.headerHistogramHeight,histograms:this.config.renderingOptions.histograms,autoRotateLabels:this.config.header.autoRotateLabels,rotationHeight:this.config.header.rotationHeight,rotationDegree:this.config.header.rotationDegree,freezeCols:this.config.body.freezeCols,rankingButtons:this.config.header.rankingButtons,linkTemplates:this.config.header.linkTemplates}),this.body=new("svg"===this.config.body.renderer?u.BodyRenderer:u.BodyCanvasRenderer)(i,this.node,this.slice.bind(this),{rowHeight:this.config.body.rowHeight,rowPadding:this.config.body.rowPadding,rowBarPadding:this.config.body.rowBarPadding,animationDuration:this.config.body.animationDuration,meanLine:this.config.renderingOptions.meanLine,animation:this.config.renderingOptions.animation,stacked:this.config.renderingOptions.stacked,actions:this.config.body.rowActions,idPrefix:this.config.idPrefix,freezeCols:this.config.body.freezeCols,renderers:this.config.renderers}),this.body.histCache=this.header.sharedHistCache,this.forward(this.body,n.EVENT_HOVER_CHANGED),this.config.pool&&this.config.manipulative&&this.addPool(new u.PoolRenderer(i,this.node,this.config)),this.config.body.visibleRowsOnly&&(this.contentScroller=new p.ContentScroller(this.$container.node(),this.body.node,{backupRows:this.config.body.backupScrollRows,rowHeight:this.config.body.rowHeight,topShift:function(){return a.header.currentHeight()}}),this.contentScroller.on("scroll",function(t,e){a.header.$node.style("transform","translate(0px,"+t+"px)"),a.config.body.freezeCols>0&&(a.header.updateFreeze(e),a.body.updateFreeze(e))}),this.contentScroller.on("redraw",this.body.update.bind(this.body)))}return a(n,t),n.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat([n.EVENT_HOVER_CHANGED,n.EVENT_SELECTION_CHANGED,n.EVENT_MULTISELECTION_CHANGED,n.EVENT_UPDATE_START,n.EVENT_UPDATE_FINISHED])},n.prototype.addPool=function(t,e){return void 0===e&&(e=this.config),t instanceof u.PoolRenderer?this.pools.push(t):this.pools.push(new u.PoolRenderer(this.data,t,e)),this.pools[this.pools.length-1]},Object.defineProperty(n.prototype,"node",{get:function(){return this.$container.node()},enumerable:!0,configurable:!0}),n.prototype.slice=function(t,e,n){return this.contentScroller?this.contentScroller.select(t,e,n):{from:t,to:e}},n.prototype.destroy=function(){this.pools.forEach(function(t){return t.remove()}),this.$container.remove(),this.contentScroller&&this.contentScroller.destroy()},n.prototype.sortBy=function(t,e){void 0===e&&(e=!1);var n=this.data.find(t);return n&&n.sortByMe(e),null!==n},n.prototype.dump=function(){return this.data.dump()},n.prototype.changeDataStorage=function(t,e){this.data&&this.data.on("selectionChanged.main",null),this.data=t,e&&this.data.restore(e),this.data.on("selectionChanged.main",this.triggerSelection.bind(this)),this.header.changeDataStorage(t),this.body.changeDataStorage(t),this.pools.forEach(function(e){return e.changeDataStorage(t)}),this.update()},n.prototype.triggerSelection=function(t){this.fire(n.EVENT_SELECTION_CHANGED,t.length>0?t[0]:-1),this.fire(n.EVENT_MULTISELECTION_CHANGED,t)},n.prototype.restore=function(t){this.changeDataStorage(this.data,t)},n.prototype.update=function(){var t=this,e=this.isUpdateInitialized?1:3;this.isUpdateInitialized=!0,this.fire(n.EVENT_UPDATE_START),this.header.update(),this.body.update(),this.pools.forEach(function(t){return t.update()}),this.body.on("renderFinished",function(){e-=1,0===e&&t.fire(n.EVENT_UPDATE_FINISHED)})},n.prototype.changeRenderingOption=function(t,e){this.config.renderingOptions[t]=e,"animation"!==t&&"stacked"!==t||(this.body.setOption(t,e),this.body.update())},n.EVENT_HOVER_CHANGED="hoverChanged",n.EVENT_SELECTION_CHANGED="selectionChanged",n.EVENT_MULTISELECTION_CHANGED="multiSelectionChanged",n.EVENT_UPDATE_START="updateStart",n.EVENT_UPDATE_FINISHED="updateFinished",n}(p.AEventDispatcher);e.LineUp=f,e.deriveColors=r,e.createLocalStorage=i,e.create=o},function(t,e,n){"use strict";function r(t){return t.replace(/[\s!#$%&'\(\)\*\+,\.\/:;<=>\?@\[\\\]\^`\{\|}~]/g,"_")}function i(t,e){return t===e||isNaN(t)&&isNaN(e)?0:t-e}function o(t){return t instanceof b&&"function"==typeof t.getNumber||!(t instanceof b)&&null!=t.type.match(/(number|stack|ordinal)/)}function a(t){return t instanceof b&&"function"==typeof t.getCategories||!(t instanceof b)&&null!=t.type.match(/(categorical|ordinal)/)}function s(t){switch(void 0===t&&(t="linear"),t){case"log":return y.scale.log().clamp(!0);case"sqrt":return y.scale.sqrt().clamp(!0);case"pow1.1":return y.scale.pow().exponent(1.1).clamp(!0);case"pow2":return y.scale.pow().exponent(2).clamp(!0);case"pow3":return y.scale.pow().exponent(3).clamp(!0);default:return y.scale.linear().clamp(!0)}}function l(t,e){return t.length===e.length&&t.every(function(t,n){return t===e[n]})}function c(t,e){return"log"===e&&0===t[0]&&(t[0]=1e-7),t}function u(t){if("script"===t.type){var e=new w;return e.restore(t),e}var n=new k;return n.restore(t),n}function p(t,e){var n=null!=t?t.length:0,r=null!=e?e.length:0;return n===r&&(0===n||t.every(function(t,n){return t===e[n]}))}function d(t){return"function"==typeof t.getCollapsed}function h(t,e){void 0===e&&(e={});var n=function(t){function e(e,n){t.call(this,e,n),"function"==typeof this.init&&this.init.apply(this,[].slice.apply(arguments))}return m(e,t),e}(C);return n.prototype.toString=function(){return t},n.prototype=v.merge(n.prototype,e),n}function f(t){return void 0===t&&(t="actions"),{type:"actions",label:t}}function g(){return{number:_,string:E,link:L,stack:A,rank:j,"boolean":F,categorical:P,ordinal:O,actions:x,annotate:S,selection:R,max:H,min:N,mean:N,script:I,nested:W}}var m=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},y=n(5),v=n(6),b=function(t){function e(n,i){t.call(this),this.desc=i,this.width=100,this.parent=null,this.compressed=!1,this.id=r(n),this.label=this.desc.label||this.id,this.description=this.desc.description||"",this.cssClass=this.desc.cssClass||"",this.color=this.desc.color||(""!==this.cssClass?null:e.DEFAULT_COLOR)}return m(e,t),Object.defineProperty(e.prototype,"headerCssClass",{get:function(){return this.desc.type},enumerable:!0,configurable:!0}),e.prototype.assignNewId=function(t){this.id=r(t())},e.prototype.init=function(t){return Promise.resolve(!0)},Object.defineProperty(e.prototype,"fqid",{get:function(){return this.parent?this.parent.fqid+"_"+this.id:this.id},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fqpath",{get:function(){return this.parent?this.parent.fqpath+"@"+this.parent.indexOf(this):""},enumerable:!0,configurable:!0}),e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["widthChanged","filterChanged","labelChanged","metaDataChanged","compressChanged","addColumn","removeColumn","dirty","dirtyHeader","dirtyValues"])},e.prototype.getWidth=function(){return this.width},e.prototype.isHidden=function(){return this.width<=0},e.prototype.setCompressed=function(t){this.compressed!==t&&this.fire(["compressChanged","dirtyHeader","dirtyValues","dirty"],this.compressed,this.compressed=t)},e.prototype.getCompressed=function(){return this.compressed},e.prototype.flatten=function(t,n,r,i){void 0===r&&(r=0),void 0===i&&(i=0);var o=this.compressed?e.COMPRESSED_WIDTH:this.getWidth();return t.push({col:this,offset:n,width:o}),o},e.prototype.setWidth=function(t){this.width!==t&&this.fire(["widthChanged","dirtyHeader","dirtyValues","dirty"],this.width,this.width=t)},e.prototype.setWidthImpl=function(t){this.width=t},e.prototype.setMetaData=function(t){if(t.label!==this.label||this.color!==t.color||this.description!==t.description){var e=this.color===t.color?["labelChanged","metaDataChanged","dirtyHeader","dirty"]:["labelChanged","metaDataChanged","dirtyHeader","dirtyValues","dirty"];this.fire(e,this.getMetaData(),{label:this.label=t.label,color:this.color=t.color,description:this.description=t.description})}},e.prototype.getMetaData=function(){return{label:this.label,color:this.color,description:this.description}},e.prototype.sortByMe=function(t){void 0===t&&(t=!1);var e=this.findMyRanker();return!!e&&e.sortBy(this,t)},e.prototype.toggleMySorting=function(){var t=this.findMyRanker();return!!t&&t.toggleSorting(this)},e.prototype.removeMe=function(){return!!this.parent&&this.parent.remove(this)},e.prototype.insertAfterMe=function(t){return!!this.parent&&null!=this.parent.insertAfter(t,this)},e.prototype.findMyRanker=function(){return this.parent?this.parent.findMyRanker():null},e.prototype.dump=function(t){var n={id:this.id,desc:t(this.desc),width:this.width,compressed:this.compressed};return this.label!==(this.desc.label||this.id)&&(n.label=this.label),this.color!==(this.desc.color||e.DEFAULT_COLOR)&&this.color&&(n.color=this.color),n},e.prototype.restore=function(t,e){this.width=t.width||this.width,this.label=t.label||this.label,this.color=t.color||this.color,this.compressed=t.compressed===!0},e.prototype.getLabel=function(t){return""+this.getValue(t)},e.prototype.getValue=function(t){return""},e.prototype.compare=function(t,e){return 0},e.prototype.isFiltered=function(){return!1},e.prototype.filter=function(t){return null!==t},e.DEFAULT_COLOR="#C1C1C1",e.FLAT_ALL_COLUMNS=-1,e.COMPRESSED_WIDTH=16,e}(v.AEventDispatcher);e.Column=b;var C=function(t){function e(e,n){t.call(this,e,n),this.accessor=n.accessor||function(){return null}}return m(e,t),e.prototype.getLabel=function(t){return""+this.getValue(t)},e.prototype.getValue=function(t){return this.accessor(t,this.id,this.desc,this.findMyRanker())},e.prototype.compare=function(t,e){return 0},e}(b);e.ValueColumn=C;var x=function(t){function e(e,n){t.call(this,e,n)}return m(e,t),e.prototype.getLabel=function(t){return""},e.prototype.getValue=function(t){return""},e.prototype.compare=function(t,e){return 0},e}(b);e.DummyColumn=x,e.isNumberColumn=o,e.isCategoricalColumn=a;var k=function(){function t(t,e,n){void 0===t&&(t=[0,1]),void 0===e&&(e="linear"),void 0===n&&(n=[0,1]),this.type=e,this.s=s(e).domain(c(t,this.type)).range(n)}return Object.defineProperty(t.prototype,"domain",{get:function(){return this.s.domain()},set:function(t){this.s.domain(c(t,this.type))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"range",{get:function(){return this.s.range()},set:function(t){this.s.range(t)},enumerable:!0,configurable:!0}),t.prototype.apply=function(t){return this.s(t)},Object.defineProperty(t.prototype,"scaleType",{get:function(){return this.type},enumerable:!0,configurable:!0}),t.prototype.dump=function(){return{type:this.type,domain:this.domain,range:this.range}},t.prototype.eq=function(e){if(!(e instanceof t))return!1;var n=e;return n.type===this.type&&l(this.domain,n.domain)&&l(this.range,n.range)},t.prototype.restore=function(t){this.type=t.type,this.s=s(t.type).domain(t.domain).range(t.range)},t.prototype.clone=function(){return new t(this.domain,this.type,this.range)},t}();e.ScaleMappingFunction=k;var w=function(){function t(t,e){void 0===t&&(t=[0,1]),void 0===e&&(e="return this.linear(value,this.value_min,this.value_max);"),this.domain_=t,this.code_=e,this.f=new Function("value",e)}return Object.defineProperty(t.prototype,"domain",{get:function(){return this.domain_},set:function(t){this.domain_=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"code",{get:function(){return this.code_},set:function(t){this.code_!==t&&(this.code_=t,this.f=new Function("value",t))},enumerable:!0,configurable:!0}),t.prototype.apply=function(t){var e=this.domain_[0],n=this.domain_[this.domain_.length-1],r=this.f.call({value_min:e,value_max:n,value_range:n-e,value_domain:this.domain_.slice(),linear:function(t,e,n){return(t-e)/(n-e)}},t);return"number"==typeof r?Math.max(Math.min(r,1),0):NaN},t.prototype.dump=function(){return{type:"script",code:this.code}},t.prototype.eq=function(e){if(!(e instanceof t))return!1;var n=e;return n.code===this.code},t.prototype.restore=function(t){this.code=t.code},t.prototype.clone=function(){return new t(this.domain,this.code)},t}();e.ScriptMappingFunction=w,e.createMappingFunction=u;var _=function(t){function e(e,n){t.call(this,e,n),this.missingValue=0,this.currentFilter={min:-(1/0),max:1/0},this.numberFormat=y.format(".3n"),n.map?this.mapping=u(n.map):n.domain&&(this.mapping=new k(n.domain,"linear",n.range||[0,1])),this.original=this.mapping.clone(),n.numberFormat&&(this.numberFormat=y.format(n.numberFormat))}return m(e,t),e.prototype.init=function(t){var e=this,n=this.mapping.domain;return isNaN(n[0])||isNaN(n[1])?t(this.desc).then(function(t){return e.mapping.domain=[t.min,t.max],e.original.domain=[t.min,t.max],!0}):Promise.resolve(!0)},e.prototype.dump=function(e){var n=t.prototype.dump.call(this,e);return n.map=this.mapping.dump(),n.filter=this.currentFilter,n.missingValue=this.missingValue,n},e.prototype.restore=function(e,n){t.prototype.restore.call(this,e,n),e.map?this.mapping=u(e.map):e.domain&&(this.mapping=new k(e.domain,"linear",e.range||[0,1])),e.currentFilter&&(this.currentFilter=e.currentFilter),e.missingValue&&(this.missingValue=e.missingValue),e.numberFormat&&(this.numberFormat=y.format(e.numberFormat))},e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["mappingChanged"])},e.prototype.getLabel=function(e){if(this.desc.numberFormat)return this.numberFormat(this.getRawValue(e));var n=t.prototype.getValue.call(this,e);return""+("number"==typeof n?this.numberFormat(+n):n)},e.prototype.getRawValue=function(e){var n=t.prototype.getValue.call(this,e);return"undefined"==typeof n||null==n||isNaN(n)||""===n||"NA"===n||"string"==typeof n&&"na"===n.toLowerCase()?this.missingValue:+n},e.prototype.getValue=function(t){var e=this.getRawValue(t);return isNaN(e)?e:this.mapping.apply(e)},e.prototype.getNumber=function(t){return this.getValue(t)},e.prototype.compare=function(t,e){return i(this.getValue(t),this.getValue(e))},e.prototype.getOriginalMapping=function(){return this.original.clone()},e.prototype.getMapping=function(){return this.mapping.clone()},e.prototype.setMapping=function(t){this.mapping.eq(t)||this.fire(["mappingChanged","dirtyValues","dirty"],this.mapping.clone(),this.mapping=t)},e.prototype.isFiltered=function(){return isFinite(this.currentFilter.min)||isFinite(this.currentFilter.max)},Object.defineProperty(e.prototype,"filterMin",{get:function(){return this.currentFilter.min},set:function(t){var e={min:this.currentFilter.min,max:this.currentFilter.max};this.currentFilter.min=isNaN(t)?-(1/0):t,this.fire(["filterChanged","dirtyValues","dirty"],e,this.currentFilter)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"filterMax",{get:function(){return this.currentFilter.max},set:function(t){var e={min:this.currentFilter.min,max:this.currentFilter.max};this.currentFilter.max=isNaN(t)?1/0:t,this.fire(["filterChanged","dirtyValues","dirty"],e,this.currentFilter)},enumerable:!0,configurable:!0}),e.prototype.getFilter=function(){return{min:this.currentFilter.min,max:this.currentFilter.max}},e.prototype.setFilter=function(t){if(void 0===t&&(t={min:-(1/0),max:+(1/0)}),this.currentFilter.min!==t.min||this.currentFilter.max!==t.max){var e=this.getFilter();this.currentFilter.min=isNaN(t.min)?-(1/0):t.min,this.currentFilter.max=isNaN(t.max)?1/0:t.max,this.fire(["filterChanged","dirtyValues","dirty"],e,this.currentFilter)}},e.prototype.filter=function(t){if(!this.isFiltered())return!0;var e=this.getRawValue(t);return!!isNaN(e)||!(isFinite(this.currentFilter.min)&&ethis.currentFilter.max)},e}(C);e.NumberColumn=_;var E=function(t){function e(e,n){t.call(this,e,n),this.currentFilter=null,this._alignment="left",this.setWidthImpl(200),this._alignment=n.alignment||"left"}return m(e,t),Object.defineProperty(e.prototype,"alignment",{get:function(){return this._alignment},enumerable:!0,configurable:!0}),e.prototype.getValue=function(e){var n=t.prototype.getValue.call(this,e);return"undefined"==typeof n||null==n?"":String(n)},e.prototype.dump=function(e){var n=t.prototype.dump.call(this,e);return this.currentFilter instanceof RegExp?n.filter="REGEX:"+this.currentFilter.source:n.filter=this.currentFilter,n.alignment=this.alignment,n},e.prototype.restore=function(e,n){t.prototype.restore.call(this,e,n),e.filter&&"REGEX:"===e.filter.slice(0,6)?this.currentFilter=new RegExp(e.filter.slice(6)):this.currentFilter=e.filter||null,this._alignment=e.alignment||this._alignment},e.prototype.isFiltered=function(){return null!=this.currentFilter},e.prototype.filter=function(t){if(!this.isFiltered())return!0;var n=this.getLabel(t),r=this.currentFilter;return r===e.FILTER_MISSING?null!=n&&""!==n.trim():"string"==typeof r&&r.length>0?n&&n.toLowerCase().indexOf(r.toLowerCase())>=0:!(r instanceof RegExp)||n&&r.test(n)},e.prototype.getFilter=function(){return this.currentFilter},e.prototype.setFilter=function(t){""===t&&(t=null),this.currentFilter!==t&&this.fire(["filterChanged","dirtyValues","dirty"],this.currentFilter,this.currentFilter=t)},e.prototype.compare=function(t,e){var n,r;return""===(n=this.getValue(t))?""===this.getValue(e)?0:1:""===(r=this.getValue(e))?-1:n.localeCompare(r)},e.FILTER_MISSING="__FILTER_MISSING",e}(C);e.StringColumn=E;var L=function(t){function e(e,n){t.call(this,e,n),this.link=null,this.link=n.link}return m(e,t),Object.defineProperty(e.prototype,"headerCssClass",{get:function(){return null==this.link?"link":"link link_pattern"},enumerable:!0,configurable:!0}),e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["linkChanged"])},e.prototype.setLink=function(t){t!=this.link&&this.fire(["linkChanged","dirtyHeader","dirtyValues","dirty"],this.link,this.link=t)},e.prototype.getLink=function(){return this.link||""},e.prototype.dump=function(e){var n=t.prototype.dump.call(this,e);return this.link!=this.desc.link&&(n.link=this.link),n},e.prototype.restore=function(e,n){t.prototype.restore.call(this,e,n),e.link&&(this.link=e.link)},e.prototype.getLabel=function(e){var n=t.prototype.getValue.call(this,e);return n.alt?n.alt:""+n},e.prototype.isLink=function(e){if(this.link)return!0;var n=t.prototype.getValue.call(this,e);return null!=n.href},e.prototype.getValue=function(e){var n=t.prototype.getValue.call(this,e);return n.href?n.href:this.link?this.link.replace(/\$1/g,n):n},e}(E);e.LinkColumn=L;var S=function(t){function e(e,n){t.call(this,e,n),this.annotations=y.map()}return m(e,t),e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["valueChanged"])},e.prototype.getValue=function(e){var n=String(e._index);return this.annotations.has(n)?this.annotations.get(n):t.prototype.getValue.call(this,e)},e.prototype.dump=function(e){var n=t.prototype.dump.call(this,e);return n.annotations={},this.annotations.forEach(function(t,e){n.annotations[t]=e}),n},e.prototype.restore=function(e,n){var r=this;t.prototype.restore.call(this,e,n),e.annotations&&Object.keys(e.annotations).forEach(function(t){r.annotations.set(t,e.annotations[t])})},e.prototype.setValue=function(t,e){var n=this.getValue(t);return n===e||(""===e||null==e?this.annotations.remove(String(t._index)):this.annotations.set(String(t._index),e),this.fire(["valueChanged","dirtyValues","dirty"],t._index,n,e),!0)},e}(E);e.AnnotateColumn=S;var R=function(t){function e(e,n){t.call(this,e,n),this.setCompressed(!0)}return m(e,t),e.desc=function(t){return void 0===t&&(t="S"),{type:"selection",label:t}},e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["select"])},e.prototype.setValue=function(t,e){var n=this.getValue(t);return n===e||this.setImpl(t,e)},e.prototype.setImpl=function(t,e){return this.desc.setter&&this.desc.setter(t,e),this.fire("select",t,e),!0},e.prototype.toggleValue=function(t){var e=this.getValue(t);return this.setImpl(t,!e),!e},e.prototype.compare=function(t,e){return y.ascending(this.getValue(t),this.getValue(e))},e}(C);e.SelectionColumn=R;var F=function(t){function e(e,n){t.call(this,e,n),this.currentFilter=null,this.trueMarker="X",this.falseMarker="",this.setWidthImpl(30),this.trueMarker=n.trueMarker||this.trueMarker,this.falseMarker=n.falseMarker||this.falseMarker}return m(e,t),e.prototype.getValue=function(e){var n=t.prototype.getValue.call(this,e);return"undefined"!=typeof n&&null!=n&&(n===!0||"true"===n||"yes"===n||"x"===n)},e.prototype.getLabel=function(t){var e=this.getValue(t);return e?this.trueMarker:this.falseMarker},e.prototype.dump=function(e){var n=t.prototype.dump.call(this,e);return null!==this.currentFilter&&(n.filter=this.currentFilter),n},e.prototype.restore=function(e,n){t.prototype.restore.call(this,e,n),"undefined"!=typeof e.filter&&(this.currentFilter=e.filter)},e.prototype.isFiltered=function(){return null!==this.currentFilter},e.prototype.filter=function(t){if(!this.isFiltered())return!0;var e=this.getValue(t);return e===this.currentFilter},e.prototype.getFilter=function(){return this.currentFilter},e.prototype.setFilter=function(t){this.currentFilter!==t&&this.fire(["filterChanged","dirtyValues","dirty"],this.currentFilter,this.currentFilter=t)},e.prototype.compare=function(t,e){return y.ascending(this.getValue(t),this.getValue(e))},e}(C);e.BooleanColumn=F;var P=function(t){function e(e,n){t.call(this,e,n),this.colors=y.scale.category10(),this.catLabels=y.map(),this.currentFilter=null,this.separator=";",this.separator=n.separator||this.separator,this.initCategories(n)}return m(e,t),e.prototype.initCategories=function(t){if(t.categories){var e=[],n=this.colors.range(),r=y.map();t.categories.forEach(function(t,i){"string"==typeof t?e.push(t):(e.push(t.name||t.value),t.label&&r.set(t.name,t.label),t.color&&(n[i]=t.color))}),this.catLabels=r,this.colors.domain(e).range(n)}},Object.defineProperty(e.prototype,"categories",{get:function(){return this.colors.domain()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"categoryColors",{get:function(){return this.colors.range()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"categoryLabels",{get:function(){var t=this;return null===this.catLabels||this.catLabels.empty()?this.categories:this.categories.map(function(e){return t.catLabels.has(e)?t.catLabels.get(e):e})},enumerable:!0,configurable:!0}),e.prototype.colorOf=function(t){return this.colors(t)},e.prototype.getLabel=function(t){return null===this.catLabels||this.catLabels.empty()?""+E.prototype.getValue.call(this,t):this.getLabels(t).join(this.separator)},e.prototype.getFirstLabel=function(t){var e=this.getLabels(t);return e.length>0?e[0]:null},e.prototype.getLabels=function(t){var e=this,n=E.prototype.getValue.call(this,t),r=n?n.split(this.separator):[],i=function(t){return null===e.catLabels||e.catLabels.empty()?t:t.map(function(t){return e.catLabels.has(t)?e.catLabels.get(t):t})};return i(r)},e.prototype.getValue=function(t){var e=this.getValues(t);return e.length>0?e[0]:null},e.prototype.getValues=function(t){var e=E.prototype.getValue.call(this,t),n=e?e.split(this.separator):[];return n},e.prototype.getCategories=function(t){return this.getValues(t)},e.prototype.getColor=function(t){var e=this.getValue(t);return null===e||""===e?null:this.colors(e)},e.prototype.getColors=function(t){return this.getCategories(t).map(this.colors)},e.prototype.dump=function(e){var n=t.prototype.dump.call(this,e);return n.filter=this.currentFilter,n.colors={domain:this.colors.domain(),range:this.colors.range(),separator:this.separator},null===this.catLabels||this.catLabels.empty()||(n.labels=this.catLabels.entries()),n},e.prototype.restore=function(e,n){var r=this;t.prototype.restore.call(this,e,n),this.currentFilter=e.filter||null,e.colors&&this.colors.domain(e.colors.domain).range(e.colors.range),e.labels&&(this.catLabels=y.map(),e.labels.forEach(function(t){return r.catLabels.set(t.key,t.value)})),this.separator=e.separator||this.separator},e.prototype.isFiltered=function(){return null!=this.currentFilter},e.prototype.filter=function(t){if(!this.isFiltered())return!0;var e=this.getCategories(t),n=this.currentFilter;return e.every(function(t){return Array.isArray(n)&&n.length>0?n.indexOf(t)>=0:"string"==typeof n&&n.length>0?t&&t.toLowerCase().indexOf(n.toLowerCase())>=0:!(n instanceof RegExp)||null!=t&&t.match(n).length>0})},e.prototype.getFilter=function(){return this.currentFilter},e.prototype.setFilter=function(t){p(this.currentFilter,t)||this.fire(["filterChanged","dirtyValues","dirty"],this.currentFilter,this.currentFilter=t)},e.prototype.compare=function(t,e){for(var n=this.getValues(t),r=this.getValues(e),i=0;i0?this.combiner(e):0},e.prototype.getValues=function(t){var e=P.prototype.getValues.call(this,t);return e.map(this.scale)},e.prototype.getCategories=function(t){return P.prototype.getValues.call(this,t)},e.prototype.getNumber=function(t){return this.getValue(t)},e.prototype.getColor=function(t){var e=this.getValues(t),n=this.getColors(t);return this.combiner===y.max?n.slice(1).reduce(function(t,n,r){return e[r+1]>t.v?{c:n,v:e[r+1]}:t},{c:n[0],v:e[0]}).c:this.combiner===y.min?n.slice(1).reduce(function(t,n,r){return e[r+1]r&&(n=i,r=o)}return e[n].color},e.prototype.compute=function(t){return y.max(this._children,function(e){return e.getValue(t)})},e}(D);e.MaxColumn=H;var N=function(t){function e(e,n){t.call(this,e,n)}return m(e,t),e.desc=function(t){return void 0===t&&(t="Min"),{type:"min",label:t}},e.prototype.getColor=function(t){var e=this._children;if(0===e.length)return this.color;for(var n=0,r=e[0].getValue(t),i=1;i0||n<=b.FLAT_ALL_COLUMNS)&&this.columns.forEach(function(e){(!e.isHidden()||n<=b.FLAT_ALL_COLUMNS)&&(i+=e.flatten(t,i,n-1,r)+r)}),i-e},e.prototype.getSortCriteria=function(){return{col:this.sortColumn,asc:this.ascending}},e.prototype.toggleSorting=function(t){return this.sortColumn===t?this.sortBy(t,!this.ascending):this.sortBy(t)},e.prototype.setSortCriteria=function(t){return this.sortBy(t.col,t.asc)},e.prototype.sortBy=function(t,e){if(void 0===e&&(e=!1),null!==t&&t.findMyRanker()!==this)return!1;if(this.sortColumn===t&&this.ascending===e)return!0;this.sortColumn&&this.sortColumn.on("dirtyValues.order",null);var n=this.getSortCriteria();return this.sortColumn=t,this.sortColumn&&this.sortColumn.on("dirtyValues.order",this.dirtyOrder),this.ascending=e,this.fire(["sortCriteriaChanged","dirtyOrder","dirtyHeader","dirtyValues","dirty"],n,this.getSortCriteria()),!0},Object.defineProperty(e.prototype,"children",{get:function(){return this.columns.slice()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"length",{get:function(){return this.columns.length},enumerable:!0,configurable:!0}),e.prototype.insert=function(t,e){return void 0===e&&(e=this.columns.length),this.columns.splice(e,0,t),t.parent=this,this.forward(t,"dirtyValues.ranking","dirtyHeader.ranking","dirty.ranking","filterChanged.ranking"),t.on("filterChanged.order",this.dirtyOrder),this.fire(["addColumn","dirtyHeader","dirtyValues","dirty"],t,e),null!==this.sortColumn||t instanceof j||t instanceof R||t instanceof x||this.sortBy(t,t instanceof E),t},Object.defineProperty(e.prototype,"fqpath",{get:function(){return""},enumerable:!0,configurable:!0}),e.prototype.findByPath=function(t){for(var e=this,n=t.split("@").map(Number).slice(1);n.length>0;){var r=n.shift();e=e.at(r)}return e},e.prototype.indexOf=function(t){return this.columns.indexOf(t)},e.prototype.at=function(t){return this.columns[t]},e.prototype.insertAfter=function(t,e){var n=this.columns.indexOf(e);return n<0?null:this.insert(t,n+1)},e.prototype.push=function(t){return this.insert(t)},e.prototype.remove=function(t){var e=this.columns.indexOf(t);if(e<0)return!1;if(this.unforward(t,"dirtyValues.ranking","dirtyHeader.ranking","dirty.ranking","filterChanged.ranking"),this.sortColumn===t){var n=this.columns.filter(function(e){return!(e===t||e instanceof R||e instanceof j)})[0];this.sortBy(n?n:null)}return t.parent=null,this.columns.splice(e,1),this.fire(["removeColumn","dirtyHeader","dirtyValues","dirty"],t,e),!0},e.prototype.clear=function(){var t=this;0!==this.columns.length&&(this.sortColumn=null,this.columns.forEach(function(e){t.unforward(e,"dirtyValues.ranking","dirtyHeader.ranking","dirty.ranking","filterChanged.ranking"),e.parent=null}),this.columns.length=0,this.fire(["removeColumn","dirtyHeader","dirtyValues","dirty"],null))},Object.defineProperty(e.prototype,"flatColumns",{get:function(){var t=[];return this.flatten(t,0,b.FLAT_ALL_COLUMNS),t.map(function(t){return t.col})},enumerable:!0,configurable:!0}),e.prototype.find=function(t){for(var e="string"==typeof t?function(e){return e.id===t}:t,n=this.flatColumns,r=0;r=0&&(clearTimeout(r),r=-1),i.unshift(null===n?this:n),r=setTimeout(t.bind.apply(t,i),e)}}function i(t,e){return function(){for(var n=[],r=0;r=0}):"function"==typeof n.includes?e.some(function(t){return n.includes(t)}):"function"==typeof n.contains&&e.some(function(t){return n.contains(t)})}function l(t){var e=t.dataTransfer;return t.ctrlKey&&null!=e.effectAllowed.match(/copy/gi)||null==e.effectAllowed.match(/move/gi)}function c(t){var e=t.dataTransfer;l(t)?e.dropEffect="copy":e.dropEffect="move"}function u(t,e){return function(n){n.on("dragenter",function(){var e=d.event;return s(e,t)?(d.select(this).classed("drag_over",!0),!1):void d.select(this).classed("drag_over",!1)}).on("dragover",function(){var e=d.event;if(s(e,t))return e.preventDefault(),c(e),d.select(this).classed("drag_over",!0),!1}).on("dragleave",function(){d.select(this).classed("drag_over",!1)}).on("drop",function(n){var r=d.event;if(r.preventDefault(),d.select(this).classed("drag_over",!1),s(r,t)){var i={};return t.forEach(function(t){var e=r.dataTransfer.getData(t);""!==e&&(i[t]=e)}),e(i,n,l(r))}})}}var p=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},d=n(5);e.delayedCall=r,e.forwardEvent=i;var h=function(){function t(){this.forwarder=i(this),this.listeners=d.dispatch.apply(d,this.createEventList())}return t.prototype.on=function(t,e){var n=this;return arguments.length>1?(Array.isArray(t)?t.forEach(function(t){return n.listeners.on(t,e)}):this.listeners.on(t,e),this):this.listeners.on(t)},t.prototype.createEventList=function(){return[]},t.prototype.fire=function(t){for(var e=this,n=[],r=1;r0){for(l=Math.round(a/this.options.rowHeight);l>=t&&r(l+1)>a;)l--;l-=this.options.backupRows}for(o=Math.round(s/this.options.rowHeight);o<=e&&r(o-1)0){for(a=Math.round(i/this.options.rowHeight);a>=t&&n(a+1)>i;)a--;a-=this.options.backupRows}for(r=Math.round(o/this.options.rowHeight);r<=e&&n(r-1)=this.options.rowHeight*this.options.backupRows&&(this.prevScrollTop=t,this.fire("redraw"))},e.prototype.destroy=function(){d.select(this.container).on("scroll.scroller",null)},e}(h);e.ContentScroller=m,e.hasDnDType=s,e.copyDnD=l,e.updateDropEffect=c,e.dropAble=u},function(t,e,n){"use strict";function r(t,e,n){if(0===t.length)return{min:NaN,max:NaN,mean:NaN,count:0,maxBin:0,hist:[]};var r=c.layout.histogram().value(e);n&&r.range(function(){return n});var i=c.extent(t,e),o=r(t);return{min:i[0],max:i[1],mean:c.mean(t,e),count:t.length,maxBin:c.max(o,function(t){return t.y}),hist:o}}function i(t,e,n){var r=c.map();return n.forEach(function(t){return r.set(t,0)}),t.forEach(function(t){var n=e(t);null!=n&&n.forEach(function(t){r.set(t,(r.get(t)||0)+1)})}),{maxBin:c.max(r.values()),hist:r.entries().map(function(t){return{cat:t.key,y:t.value}})}}function o(t){return["rank","selection","actions"].indexOf(t.type)>=0}var a=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},s=n(4),l=n(6),c=n(5),u=function(t){function e(e){var n=this;void 0===e&&(e={}),t.call(this),this.rankings_=[],this.selection=c.set(),this.uid=0,this.columnTypes=l.merge({},s.models()),this.createHelper=function(t){var e=n.fromDescRef(t.desc),r=null;if(e&&e.type){n.fixDesc(t.desc);var i=n.columnTypes[e.type];r=new i(t.id,e),r.restore(t,n.createHelper)}return r},this.columnTypes=l.merge(s.models(),e.columnTypes||{})}return a(e,t),e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["addColumn","removeColumn","addRanking","removeRanking","dirty","dirtyHeader","dirtyValues","orderChanged","selectionChanged"])},e.prototype.getColumns=function(){return[]},e.prototype.pushRanking=function(t){var e=this.cloneRanking(t);return this.insertRanking(e),e},e.prototype.takeSnapshot=function(t){var e=this.cloneRanking();return e.push(this.clone(t)),this.insertRanking(e),e},e.prototype.insertRanking=function(t,e){void 0===e&&(e=this.rankings_.length),this.rankings_.splice(e,0,t),this.forward(t,"addColumn.provider","removeColumn.provider","dirty.provider","dirtyHeader.provider","orderChanged.provider","dirtyValues.provider");var n=this;t.on("dirtyOrder.provider",l.delayedCall(function(){n.triggerReorder(this.source)},100,null)),this.fire(["addRanking","dirtyHeader","dirtyValues","dirty"],t,e),this.triggerReorder(t)},e.prototype.triggerReorder=function(t){this.sort(t).then(function(e){return t.setOrder(e)})},e.prototype.removeRanking=function(t){var e=this.rankings_.indexOf(t);return!(e<0)&&(this.unforward(t,"addColumn.provider","removeColumn.provider","dirty.provider","dirtyHeader.provider","orderChanged.provider","dirtyOrder.provider","dirtyValues.provider"),this.rankings_.splice(e,1),t.on("dirtyOrder.provider",null),this.cleanUpRanking(t),this.fire(["removeRanking","dirtyHeader","dirtyValues","dirty"],t,e),!0)},e.prototype.clearRankings=function(){var t=this;this.rankings_.forEach(function(e){t.unforward(e,"addColumn.provider","removeColumn.provider","dirty.provider","dirtyHeader.provider","dirtyOrder.provider","dirtyValues.provider"),e.on("dirtyOrder.provider",null),t.cleanUpRanking(e)}),this.rankings_=[],this.fire(["removeRanking","dirtyHeader","dirtyValues","dirty"],null)},e.prototype.getRankings=function(){return this.rankings_.slice()},e.prototype.getLastRanking=function(){return this.rankings_[this.rankings_.length-1]},e.prototype.cleanUpRanking=function(t){},e.prototype.cloneRanking=function(t){return null},e.prototype.push=function(t,e){var n=this.create(e);return n?(t.push(n),n):null},e.prototype.insert=function(t,e,n){var r=this.create(n);return r?(t.insert(r,e),r):null},e.prototype.nextId=function(){return"col"+this.uid++},e.prototype.rankAccessor=function(t,e,n,r){return 0},e.prototype.fixDesc=function(t){var e=this;"rank"===t.type?t.accessor=this.rankAccessor.bind(this):"selection"===t.type&&(t.accessor=function(t){return e.isSelected(t._index)},t.setter=function(t,n){return n?e.select(t._index):e.deselect(t._index)})},e.prototype.create=function(t){this.fixDesc(t);var e=this.columnTypes[t.type];return e?new e(this.nextId(),t):null},e.prototype.clone=function(t){var e=this.dumpColumn(t);return this.restoreColumn(e)},e.prototype.restoreColumn=function(t){var e=this,n=function(t){var r=e.fromDescRef(t.desc),i=e.columnTypes[r.type];e.fixDesc(r);var o=new i("",r);return o.restore(t,n),o.assignNewId(e.nextId.bind(e)),o};return n(t)},e.prototype.find=function(t){for(var e="string"==typeof t?function(e){return e.id===t}:t,n=0;n0)){var e=this.pushRanking();this.getColumns().forEach(function(n){o(n)||t.push(e,n)})}},e.prototype.deriveRanking=function(t){var e=this,n=this.cloneRanking();n.clear();var r=function(t){if("rank"===t.type)return e.create(s.createRankDesc());if("selection"===t.type)return e.create(s.createSelectionDesc());if("actions"===t.type){var n=e.create(s.createActionDesc(t.label||"actions"));return n.restore(t,null),n}if("stacked"===t.type){var i=e.create(s.createStackDesc(t.label||"Combined"));return(t.children||[]).forEach(function(t){var e=r(t);e&&i.push(e)}),i}var o=e.findDesc(t.column);if(o){var n=e.create(o);return t.label=t.label||o.label||o.column,n.restore(t,null),n}return null};return t.forEach(function(t){var e=r(t);e&&n.push(e)}),n.children.some(function(t){return t instanceof s.RankColumn})||n.insert(this.create(s.createRankDesc()),0),this.insertRanking(n),n},e.prototype.sort=function(t){return Promise.reject("not implemented")},e.prototype.view=function(t){return Promise.reject("not implemented")},e.prototype.mappingSample=function(t){return Promise.reject("not implemented")},e.prototype.stats=function(t){return{stats:function(t){return Promise.reject("not implemented")},hist:function(t){return Promise.reject("not implemented")}}},e.prototype.rowKey=function(t,e){return"number"==typeof t?String(t):String(t._index)},e.prototype.isSelected=function(t){return this.selection.has(String(t))},e.prototype.select=function(t){this.selection.add(String(t)),this.fire("selectionChanged",this.selection.values().map(Number))},e.prototype.searchSelect=function(t,e){},e.prototype.selectAll=function(t,e){var n=this;void 0===e&&(e=!1),t.forEach(function(t){n.selection.add(String(t))}),this.fire("selectionChanged",this.selection.values().map(Number),e)},e.prototype.setSelection=function(t,e){var n=this;void 0===e&&(e=!1),this.selection.size()===t.length&&t.every(function(t){return n.selection.has(String(t))})||(this.selection=c.set(),this.selectAll(t,e))},e.prototype.toggleSelection=function(t,e){return void 0===e&&(e=!1),this.isSelected(t)?(e?this.deselect(t):this.clearSelection(),!1):(e?this.select(t):this.setSelection([t]),!0)},e.prototype.deselect=function(t){this.selection.remove(String(t)),this.fire("selectionChanged",this.selection.values().map(Number))},e.prototype.selectedRows=function(){return this.selection.empty()?Promise.resolve([]):this.view(this.getSelection())},e.prototype.getSelection=function(){var t=[];return this.selection.forEach(function(e){return t.push(+e)}),t.sort(),t},e.prototype.clearSelection=function(){this.selection=c.set(),this.fire("selectionChanged",[],!1)},e.prototype.exportTable=function(t,e){function n(t,e){return!r.quote||e&&s.isNumberColumn(e)?t:r.quoteChar+t+r.quoteChar}void 0===e&&(e={});var r={separator:"\t",newline:"\n",header:!0,quote:!1,quoteChar:'"',filter:function(t){return!o(t)}};e=l.merge(r,e);var i=t.flatColumns.filter(function(t){return r.filter(t.desc)});return this.view(t.getOrder()).then(function(t){var e=[];return r.header&&e.push(i.map(function(t){return n(t.label)}).join(r.separator)),t.forEach(function(t){e.push(i.map(function(e){return n(e.getLabel(t),e)}).join(r.separator))}),e.join(r.newline)})},e}(l.AEventDispatcher);e.DataProvider=u;var p=function(t){function e(e,n){var r=this;void 0===e&&(e=[]),void 0===n&&(n={}),t.call(this,n),this.columns=e,this.rankingIndex=0,this.rowGetter=function(t,e,n){return t[n.column]},e.forEach(function(t){t.accessor=t.accessor||r.rowGetter,t.label=t.label||t.column})}return a(e,t),e.prototype.createEventList=function(){return t.prototype.createEventList.call(this).concat(["addDesc"])},e.prototype.pushDesc=function(t){var e=t;e.accessor=e.accessor||this.rowGetter,e.label=t.label||e.column,this.columns.push(t),this.fire("addDesc",e)},e.prototype.getColumns=function(){return this.columns.slice()},e.prototype.findDesc=function(t){return this.columns.filter(function(e){return e.column===t})[0]},e.prototype.toDescRef=function(t){return t.column?t.type+"@"+t.column:t},e.prototype.fromDescRef=function(t){return"string"==typeof t?this.columns.filter(function(e){return e.type+"@"+e.column===t})[0]:t},e.prototype.restore=function(e){t.prototype.restore.call(this,e),this.rankingIndex=1+c.max(this.getRankings(),function(t){return+t.id.substring(4)})},e.prototype.nextRankingId=function(){return"rank"+this.rankingIndex++},e}(u);e.CommonDataProvider=p;var d=function(t){function e(e,n,r){void 0===n&&(n=[]),void 0===r&&(r={}),t.call(this,n,r),this.data=e,this.options={filterGlobally:!1,jumpToSearchResult:!0},l.merge(this.options,r),e.forEach(function(t,e){t._rankings={},t._index=e});var i=this;this.reorderall=function(){var t=this.source;i.getRankings().forEach(function(e){e!==t&&e.dirtyOrder()})}}return a(e,t),e.prototype.setData=function(t){t.forEach(function(t,e){t._rankings={},t._index=e}),this.data=t,this.reorderall()},e.prototype.clearData=function(){this.setData([])},e.prototype.appendData=function(t){var e=this.data.length;t.forEach(function(t,n){t._rankings={},t._index=e+n}),this.data.push.apply(this.data,t),this.reorderall()},e.prototype.rankAccessor=function(t,e,n,r){return t._rankings[r.id]+1||1},e.prototype.cloneRanking=function(t){var e=this,n=this.nextRankingId(),r=new s.Ranking(n);return t?(this.data.forEach(function(e){var r=e._rankings;r[n]=r[t.id]}),t.children.forEach(function(t){e.push(r,t.desc)})):r.push(this.create(s.createRankDesc())),this.options.filterGlobally&&r.on("filterChanged.reorderall",this.reorderall),r},e.prototype.cleanUpRanking=function(t){this.options.filterGlobally&&t.on("filterChanged.reorderall",null),this.data.forEach(function(e){return delete e._rankings[t.id]})},e.prototype.sort=function(t){if(0===this.data.length)return Promise.resolve([]);var e=this.data.map(function(e,n){return{row:e,i:n,prev:e._rankings[t.id]||0}});if(this.options.filterGlobally){var n=this.getRankings().filter(function(t){return t.isFiltered()});n.length>0&&(e=e.filter(function(t){return n.every(function(e){return e.filter(t.row)})}))}else t.isFiltered()&&(e=e.filter(function(e){return t.filter(e.row)}));e.sort(function(e,n){return t.comparator(e.row,n.row)});var r=e.map(function(e,n){return e.row._rankings[t.id]=n,e.i});return Promise.resolve(r)},e.prototype.view=function(t){var e=this;if(0===this.data.length)return Promise.resolve([]);var n=this.data.length,r=t.filter(function(t){return t>=0&&t=0;)a=Math.floor(Math.random()*(r-1));i.push(a)}return Promise.resolve(i.map(function(n){return t.getRawValue(e.data[n])}))},e.prototype.searchSelect=function(t,e){t="string"==typeof t?t.toLowerCase():t;var n="string"==typeof t?function(e){return e.toLowerCase().indexOf(t)>=0}:t.test.bind(t),r=this.data.filter(function(t){return n(e.getLabel(t))}).map(function(t){return t._index});this.setSelection(r,this.options.jumpToSearchResult)},e}(p);e.LocalDataProvider=d;var h=function(t){function e(e,n,r){void 0===n&&(n=[]),void 0===r&&(r={}),t.call(this,n,r),this.server=e,this.ranks={}}return a(e,t),e.prototype.rankAccessor=function(t,e,n,r){return this.ranks[r.id][t._index]||0},e.prototype.cloneRanking=function(t){var e=this.nextRankingId();t&&(this.ranks[e]=this.ranks[t.id]);var n=new s.Ranking(e);return n.push(this.create(s.createRankDesc())),n},e.prototype.cleanUpRanking=function(t){delete this.ranks[t.id]},e.prototype.sort=function(t){var e=this,n=t.toSortingDesc(function(t){return t.column});return this.server.sort(n).then(function(n){return e.ranks[t.id]=n,n})},e.prototype.view=function(t){return this.server.view(t).then(function(e){return e.forEach(function(e,n){return e._index=t[n]}),e})},e.prototype.mappingSample=function(t){return this.server.mappingSample(t.desc.column)},e.prototype.searchSelect=function(t,e){var n=this;this.server.search(t,e.desc.column).then(function(t){n.setSelection(t)})},e}(p);e.RemoteDataProvider=h},function(t,e,n){"use strict";function r(t){return t?new u(t):y}function i(t){return t?new h(t):v}function o(t,e,n){var r=this;void 0===n&&(n={}),n.selector=t,n.render=e,n.findRow=function(t,e){return t.selectAll(r.selector+'[data-index="'+e+'"]')};var i=new u(n);return i}function a(){return{string:new C,link:new b,number:i(),rank:r({textClass:"rank",align:"right"}),"boolean":r({textClass:"boolean",align:"center"}),heatmap:new d,stack:new k,categorical:new x,ordinal:i({renderValue:!0,colorOf:function(t,e,n){return n.getColor(t)}}),max:w,min:w,mean:w,script:w,actions:new f,annotate:new m,selection:new g,nested:new k((!1))}}var s=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},l=n(4),c=function(){function t(){this.textClass="text",this.align="left"}return t.prototype.render=function(t,e,n,r){var i=t.datum(e).selectAll("text."+this.textClass).data(n,r.rowKey);i.enter().append("text").attr({"class":this.textClass,"clip-path":"url(#"+r.idPrefix+"clipCol"+e.id+")",y:function(t,e){return r.cellPrevY(e)}});var o=2;"right"===this.align?o=e.getWidth()-5:"center"===this.align&&(o=.5*e.getWidth()),i.attr({x:function(t,e){return r.cellX(e)+o},"data-index":function(t,e){return e}}).text(function(t){return e.getLabel(t)}),r.animated(i).attr({y:function(t,e){return r.cellY(e)}}),i.exit().remove()},t.prototype.findRow=function(t,e){return t.selectAll("text."+this.textClass+'[data-index="'+e+'"]')},t.prototype.mouseEnter=function(t,e,n,r,i,o){var a=e.node(),s=this.findRow(t,i).node();s&&a.appendChild(s)},t.prototype.mouseLeave=function(t,e,n,r,i,o){var a=t.node(),s=e.node();s.hasChildNodes()&&a&&a.appendChild(s.firstChild),e.selectAll("*").remove()},t.prototype.renderCanvas=function(t,e,n,r){var i=this;t.save(),t.textAlign=this.align,n.forEach(function(n,o){var a=r.cellY(o),s=2;"right"===i.align?s=e.getWidth()-5:"center"===i.align&&(s=.5*e.getWidth());var l=r.cellX(o)+s;t.fillText(e.getLabel(n),l,a,e.getWidth())}),t.restore()},t.prototype.mouseEnterCanvas=function(t,e,n,r,i){},t}();e.DefaultCellRenderer=c;var u=function(t){function e(e){var n=this;t.call(this),Object.keys(e).forEach(function(t){n[t]=e[t]})}return s(e,t),e}(c),p=function(t){function e(){t.apply(this,arguments),this.renderValue=!1}return s(e,t),e.prototype.render=function(t,e,n,r){var i=this,o=this.renderValue||r.option("renderBarValue",!1),a=t.datum(e).selectAll(".bar").data(n,r.rowKey),s=r.option("rowPadding",1),l=function(t,n,o){t.append("rect").attr({"class":n,x:function(t,e){return r.cellX(e)},y:function(t,e){return r.cellPrevY(e)+s},width:function(t){var n=e.getWidth()*e.getValue(t);return isNaN(n)?0:n}}).style("fill",e.color),o.attr({height:function(t,e){return r.rowHeight(e)-2*r.option("rowPadding",1)}}),r.animated(o).attr({x:function(t,e){return r.cellX(e)},y:function(t,e){return r.cellY(e)+r.option("rowPadding",1)},width:function(t){var n=e.getWidth()*e.getValue(t);return isNaN(n)?0:n}}).style({fill:function(t,n){return i.colorOf(t,n,e)}})};if(o){var c=a.enter().append("g").attr("class","bar "+this.textClass);l(c,e.cssClass,a.select("rect")),c.append("text").attr({"class":"number","clip-path":"url(#"+r.idPrefix+"clipCol"+e.id+")"}),r.animated(a.select("text").text(function(t){return e.getLabel(t)})).attr("transform",function(t,e){return"translate("+r.cellX(e)+","+r.cellY(e)+")"})}else l(a.enter(),"bar "+e.cssClass,a);a.attr({"data-index":function(t,e){return e}}),a.exit().remove()},e.prototype.colorOf=function(t,e,n){return n.color},e.prototype.findRow=function(t,e){return t.selectAll('.bar[data-index="'+e+'"]')},e.prototype.mouseEnter=function(e,n,r,i,o,a){var s=this.renderValue||a.option("renderBarValue",!1);if(s)return t.prototype.mouseEnter.call(this,e,n,r,i,o,a);var l=this.findRow(e,o);l.empty()||(n.node().appendChild(l.node()),n.append("text").datum(l.datum()).attr({"class":"number","clip-path":"url(#"+a.idPrefix+"clipCol"+r.id+")",transform:"translate("+a.cellX(o)+","+a.cellY(o)+")"}).text(function(t){return r.getLabel(t)}))},e.prototype.renderCanvas=function(t,e,n,r){var i=this,o=this.renderValue||r.option("renderBarValue",!1),a=r.option("rowPadding",1);t.save(),n.forEach(function(n,s){var c=r.cellX(s),u=r.cellY(s)+a,p=e.getWidth()*e.getValue(n),d=isNaN(p)?0:p,h=r.rowHeight(s)-2*a;t.fillStyle=i.colorOf(n,s,e)||e.color||l.Column.DEFAULT_COLOR,t.fillRect(c,u,d,h),o&&t.fillText(e.getLabel(n),c,u-a,e.getWidth())}),t.restore()},e.prototype.mouseEnterCanvas=function(t,e,n,r,i){var o=this.renderValue||i.option("renderBarValue",!1);o||(t.save(),t.fillText(e.getLabel(n),i.cellX(r),i.cellY(r),e.getWidth()),t.restore())},e}(c);e.BarCellRenderer=p;var d=function(t){function e(){t.apply(this,arguments)}return s(e,t),e.prototype.render=function(t,e,n,r){var i=this,o=t.datum(e).selectAll("rect.heatmap").data(n,r.rowKey);o.enter().append("rect").attr({"class":"bar "+e.cssClass,x:function(t,e){return r.cellX(e)},y:function(t,e){return r.cellPrevY(e)+r.option("rowPadding",1)},width:function(t,e){return r.rowHeight(e)-2*r.option("rowPadding",1)}}).style("fill",e.color),o.attr({"data-index":function(t,e){return e},width:function(t,e){return r.rowHeight(e)-2*r.option("rowPadding",1)},height:function(t,e){return r.rowHeight(e)-2*r.option("rowPadding",1)}}),r.animated(o).attr({x:function(t,e){return r.cellX(e)},y:function(t,e){return r.cellY(e)+r.option("rowPadding",1)}}).style({fill:function(t,n){return i.colorOf(t,n,e)}}),o.exit().remove()},e.prototype.colorOf=function(t,e,n){var r=n.getValue(t);isNaN(r)&&(r=0);var i=d3.hsl(n.color||l.Column.DEFAULT_COLOR);return i.l=r,i.toString()},e.prototype.findRow=function(t,e){return t.selectAll('rect.heatmap[data-index="'+e+'"]')},e.prototype.mouseEnter=function(t,e,n,r,i,o){var a=this.findRow(t,i);a.empty()||(e.node().appendChild(a.node()),e.append("text").datum(a.datum()).attr({"class":"number","clip-path":"url(#"+o.idPrefix+"clipCol"+n.id+")",transform:"translate("+o.cellX(i)+","+o.cellY(i)+")"}).text(function(t){return n.getLabel(t)}))},e.prototype.renderCanvas=function(t,e,n,r){var i=this;t.save(),n.forEach(function(n,o){var a=r.cellX(o),s=r.cellY(o)+r.option("rowPadding",1),l=r.rowHeight(o)-2*r.option("rowPadding",1);t.fillStyle=i.colorOf(n,o,e),t.fillRect(a,s,l,l)}),t.restore()},e.prototype.mouseEnterCanvas=function(t,e,n,r,i){t.save(),t.fillText(e.getLabel(n),i.cellX(r),i.cellY(r),e.getWidth()),t.restore()},e}(c);e.HeatMapCellRenderer=d;var h=function(t){function e(e){var n=this;t.call(this),Object.keys(e).forEach(function(t){n[t]=e[t]})}return s(e,t),e}(p),f=function(){function t(){}return t.prototype.render=function(t,e,n,r){},t.prototype.mouseEnter=function(t,e,n,r,i,o){var a=o.option("actions",[]),s=e.append("text").attr({"class":"actions fa",x:o.cellX(i),y:o.cellPrevY(i),"data-index":i}).selectAll("tspan").data(a);s.enter().append("tspan").text(function(t){return t.icon}).attr("title",function(t){return t.name}).on("click",function(t){d3.event.preventDefault(),d3.event.stopPropagation(),t.action(r)})},t.prototype.mouseLeave=function(t,e,n,r,i,o){e.selectAll("*").remove()},t}();e.ActionCellRenderer=f;var g=function(t){function e(){t.call(this),this.textClass="selection"}return s(e,t),e.prototype.render=function(t,e,n,r){var i=t.datum(e).selectAll("text."+this.textClass).data(n,r.rowKey);i.enter().append("text").attr({"class":this.textClass+" fa",y:function(t,e){return r.cellPrevY(e)}}).on("click",function(t){d3.event.preventDefault(),d3.event.stopPropagation();var n=e.toggleValue(t);d3.select(this).text(n===!0?"":"")}),i.attr({x:function(t,e){return r.cellX(e)},"data-index":function(t,e){return e}}).text(function(t){return e.getValue(t)===!0?"":""}),r.animated(i).attr({y:function(t,e){return r.cellY(e)}}),i.exit().remove()},e.prototype.renderCanvas=function(t,e,n,r){t.save(),t.font="FontAwesome",n.forEach(function(n,i){var o=r.cellX(i),a=r.cellY(i);t.fillText(e.getValue(n)===!0?"":"",o,a)}),t.restore()},e}(c);e.SelectionCellRenderer=g;var m=function(t){function e(){t.apply(this,arguments)}return s(e,t),e.prototype.mouseEnter=function(t,e,n,r,i,o){this.findRow(t,i).attr("display","none"),e.append("foreignObject").attr({x:o.cellX(i)-2,y:o.cellPrevY(i)-2,"data-index":i,width:n.getWidth(),height:o.rowHeight(i)}).append("xhtml:input").attr({type:"text",value:n.getValue(r)}).style({width:n.getWidth()+"px"}).on("change",function(){var t=this.value;n.setValue(r,t)}).on("click",function(){return d3.event.stopPropagation()})},e.prototype.mouseLeave=function(t,e,n,r,i,o){this.findRow(t,i).attr("display",null);var a=e.select("input").node();a&&n.setValue(r,a.value),e.selectAll("*").remove()},e}(c),y=new c,v=new p;e.defaultRenderer=r,e.barRenderer=i;var b=function(t){function e(){t.apply(this,arguments)}return s(e,t),e.prototype.render=function(t,e,n,r){var i=t.datum(e).selectAll("text.link").data(n,r.rowKey);i.enter().append("text").attr({"class":"text link","clip-path":"url(#"+r.idPrefix+"clipCol"+e.id+")",y:function(t,e){return r.cellPrevY(e)}}),i.attr({x:function(t,e){return r.cellX(e)},"data-index":function(t,e){return e}}).html(function(t){return e.isLink(t)?''+e.getLabel(t)+"":e.getLabel(t)}),r.animated(i).attr({y:function(t,e){return r.cellY(e)}}),i.exit().remove()},e.prototype.findRow=function(t,e){return t.selectAll('text.link[data-index="'+e+'"]')},e}(c),C=function(t){function e(){t.apply(this,arguments)}return s(e,t),e.prototype.render=function(e,n,r,i){return this.align=n.alignment,this.textClass="text"+("left"===n.alignment?"":"_"+n.alignment),t.prototype.render.call(this,e,n,r,i)},e}(c),x=function(t){function e(){t.apply(this,arguments),this.textClass="cat"}return s(e,t),e.prototype.render=function(t,e,n,r){var i=t.datum(e).selectAll("g."+this.textClass).data(n,r.rowKey),o=i.enter().append("g").attr({"class":this.textClass,"data-index":function(t,e){return e},transform:function(t,e){return"translate("+r.cellX(e)+","+r.cellPrevY(e)+")"}});o.append("text").attr({"clip-path":"url(#"+r.idPrefix+"clipCol"+e.id+")",x:function(t,e){return r.rowHeight(e)}}),o.append("rect").attr({y:r.option("rowPadding",1)}),i.attr({"data-index":function(t,e){return e},transform:function(t,e){return"translate("+r.cellX(e)+","+r.cellY(e)+")"}}),i.select("text").attr({x:function(t,e){return r.rowHeight(e)}}).text(function(t){return e.getLabel(t)}),i.select("rect").style({fill:function(t){return e.getColor(t)}}).attr({height:function(t,e){return Math.max(r.rowHeight(e)-2*r.option("rowPadding",1),0)},width:function(t,e){return Math.max(r.rowHeight(e)-2*r.option("rowPadding",1),0)}}),r.animated(i).attr({transform:function(t,e){return"translate("+r.cellX(e)+","+r.cellY(e)+")"}}),i.exit().remove()},e.prototype.findRow=function(t,e){return t.selectAll("g."+this.textClass+'[data-index="'+e+'"]')},e.prototype.renderCanvas=function(t,e,n,r){t.save(),n.forEach(function(n,i){var o=r.cellX(i),a=r.cellY(i);t.fillStyle="black",t.fillText(e.getLabel(n),o+r.rowHeight(i),a),t.fillStyle=e.getColor(n),t.fillRect(o,a+r.option("rowPadding",1),Math.max(r.rowHeight(i)-2*r.option("rowPadding",1),0),Math.max(r.rowHeight(i)-2*r.option("rowPadding",1),0))})},e}(c),k=function(t){function e(e){void 0===e&&(e=!0),t.call(this),this.nestingPossible=e}return s(e,t),e.prototype.renderImpl=function(t,e,n,r,i,o){void 0===o&&(o=!0);var a=t.datum(e),s=e.children,l=this.nestingPossible&&n.showStacked(e),c=0,u=s.map(function(t){var e=c;return c+=t.getWidth(),c+=l?0:n.option("columnPadding",0),e}),p="component"+n.option("stackLevel",""),d=n.cellX,h=n.option;n.option=function(t,e){var n=h(t,e);return"stackLevel"===t?n+"N":n};var f=a.selectAll("g."+p).data(s,function(t){return t.id});f.enter().append("g").attr({"class":p,transform:function(t,e){return"translate("+u[e]+",0)"}}),f.attr({"class":function(t){return p+" "+t.desc.type},"data-stack":function(t,e){return e}}).each(function(t,e){if(l){var o=s.slice(0,e);n.cellX=function(t){return d(t)-o.reduce(function(e,n){return e+n.getWidth()*(1-n.getValue(i(t)))},0)}}r(d3.select(this),t,e,n)}),(o?n.animated(f):f).attr({transform:function(t,e){return"translate("+u[e]+",0)"}}),f.exit().remove(),n.cellX=d,n.option=h},e.prototype.render=function(t,e,n,r){this.renderImpl(t,e,r,function(t,e,r,i){i.render(e,t,n,i)},function(t){return n[t]})},e.prototype.mouseEnter=function(t,e,n,r,i,o){var a="component"+o.option("stackLevel","");this.renderImpl(e,n,o,function(e,n,o,s){var l=t.select("g."+a+'[data-stack="'+o+'"]');l.empty()||s.renderer(n).mouseEnter(l,e,n,r,i,s)},function(t){return r},!1)},e.prototype.mouseLeave=function(t,e,n,r,i,o){var a="component"+o.option("stackLevel","");this.renderImpl(e,n,o,function(e,n,o,s){var l=t.select("g."+a+'[data-stack="'+o+'"]');l.empty()||s.renderer(n).mouseLeave(l,e,n,r,i,s)},function(t){return r},!1),e.selectAll("*").remove()},e.prototype.renderCanvas=function(t,e,n,r){var i=e.children,o=this.nestingPossible&&r.showStacked(e),a=0,s=i.map(function(t){var e=a;return a+=t.getWidth(),a+=o?0:r.option("columnPadding",0),e}),l=r.cellX,c=r.option;r.option=function(t,e){var n=c(t,e);return"stackLevel"===t?n+"N":n},t.save(),i.forEach(function(e,a){if(t.save(),t.translate(s[a],0),o){var c=i.slice(0,a);r.cellX=function(t){return l(t)-c.reduce(function(e,r){return e+r.getWidth()*(1-r.getValue(n[t]))},0)}}r.renderCanvas(e,t,n,r),t.restore()}),t.restore(),r.cellX=l,r.option=c},e}(c);e.createRenderer=o;var w=i({colorOf:function(t,e,n){return n.getColor(t)}});e.renderers=a},function(t,e,n){"use strict";function r(t){var e=t.label;return null!=t.description&&""!==t.description&&(e+="\n"+t.description),e}function i(){return null}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},a=n(5),s=n(6),l=n(4),c=n(8),u=n(10),p=function(){function t(t){this.desc=t,this.used=0}return t}(),d=function(){function t(t,e,n){void 0===n&&(n={}),this.data=t,this.options={layout:"vertical",elemWidth:100,elemHeight:40,width:100,height:500,additionalDesc:[],hideUsed:!0,addAtEndOnClick:!1},s.merge(this.options,n),this.$node=a.select(e).append("div").classed("lu-pool",!0),this.changeDataStorage(t)}return t.prototype.changeDataStorage=function(t){var e=this;if(this.data&&this.data.on(["addColumn.pool","removeColumn.pool","addRanking.pool","removeRanking.pool","addDesc.pool"],null),this.data=t,this.entries=t.getColumns().concat(this.options.additionalDesc).map(function(t){return new p(t)}),t.on(["addDesc.pool"],function(t){e.entries.push(new p(t)),e.update()}),this.options.hideUsed){var n=this;t.on(["addColumn.pool","removeColumn.pool"],function(t){var e=t.desc,r="addColumn"===this.type?1:-1;n.entries.some(function(t){return t.desc===e&&(t.used+=r,!0)}),n.update()}),t.on(["addRanking.pool","removeRanking.pool"],function(t){var e=t.flatColumns.map(function(t){return t.desc}),r="addRanking"===this.type?1:-1;n.entries.some(function(t){return!(e.indexOf(t.desc)<0)&&(t.used+=r,!0)}),n.update()}),t.getRankings().forEach(function(t){var e=t.flatColumns.map(function(t){return t.desc}),r=1;n.entries.some(function(t){return!(e.indexOf(t.desc)<0)&&void(t.used+=r)})})}},t.prototype.remove=function(){this.$node.remove(),this.data&&this.data.on(["addColumn.pool","removeColumn.pool","addRanking.pool","removeRanking.pool","addDesc.pool"],null)},t.prototype.update=function(){var t=this,e=this.data,n=this.entries.filter(function(t){return 0===t.used}).map(function(t){return t.desc}),i=this.$node.selectAll("div.header").data(n),o=i.enter().append("div").attr({"class":"header",draggable:!0}).on("dragstart",function(t){var n=a.event;n.dataTransfer.effectAllowed="copyMove",n.dataTransfer.setData("text/plain",t.label),n.dataTransfer.setData("application/caleydo-lineup-column",JSON.stringify(e.toDescRef(t))),l.isNumberColumn(t)&&n.dataTransfer.setData("application/caleydo-lineup-column-number",JSON.stringify(e.toDescRef(t)))}).style({width:this.options.elemWidth+"px",height:this.options.elemHeight+"px"});switch(this.options.addAtEndOnClick&&o.on("click",function(e){t.data.push(t.data.getLastRanking(),e)}),o.append("span").classed("label",!0).text(function(t){return t.label}),i.attr("class",function(t){return"header "+(t.cssClass||"")+" "+t.type}),i.style({transform:function(e,n){var r=t.layout(n);return"translate("+r.x+"px,"+r.y+"px)"},"background-color":function(t){var e=t;return e.cssClass?null:e.color||l.Column.DEFAULT_COLOR}}),i.attr({title:function(t){return r(t)}}),i.select("span").text(function(t){return t.label}),i.exit().remove(),this.options.layout){case"horizontal":this.$node.style({width:this.options.elemWidth*n.length+"px",height:1*this.options.elemHeight+"px"});break;case"grid":var s=a.round(this.options.width/this.options.elemWidth,0);this.$node.style({width:s*this.options.elemWidth+"px",height:Math.ceil(n.length/s)*this.options.elemHeight+"px"});break;default:this.$node.style({width:1*this.options.elemWidth+"px",height:this.options.elemHeight*n.length+"px"})}},t.prototype.layout=function(t){switch(this.options.layout){case"horizontal":return{x:t*this.options.elemWidth,y:0};case"grid":var e=a.round(this.options.width/this.options.elemWidth,0);return{x:t%e*this.options.elemWidth,y:Math.floor(t/e)*this.options.elemHeight};default:return{x:0,y:t*this.options.elemHeight}}},t}();e.PoolRenderer=d,e.dummyRankingButtonHook=i;var h=function(){function t(t,e,n){var r=this;void 0===n&&(n={}),this.data=t,this.options={slopeWidth:150,columnPadding:5,headerHistogramHeight:40,headerHeight:20,manipulative:!0,histograms:!1,filterDialogs:u.filterDialogs(),linkTemplates:[],searchAble:function(t){return t instanceof l.StringColumn},sortOnLabel:!0,autoRotateLabels:!1,rotationHeight:50,rotationDegree:-20,freezeCols:0,rankingButtons:i},this.histCache=a.map(),this.dragHandler=a.behavior.drag().on("dragstart",function(){a.select(this).classed("dragging",!0),a.event.sourceEvent.stopPropagation(),a.event.sourceEvent.preventDefault()}).on("drag",function(t){var e=Math.max(a.mouse(this.parentNode)[0],2);t.setWidth(e),a.event.sourceEvent.stopPropagation(),a.event.sourceEvent.preventDefault()}).on("dragend",function(t){a.select(this).classed("dragging",!1),a.event.sourceEvent.stopPropagation(),a.event.sourceEvent.preventDefault()}),this.dropHandler=s.dropAble(["application/caleydo-lineup-column-ref","application/caleydo-lineup-column"],function(t,e,n){var i=null;if("application/caleydo-lineup-column-ref"in t){var o=t["application/caleydo-lineup-column-ref"];i=r.data.find(o),n?i=r.data.clone(i):i.removeMe()}else{var a=JSON.parse(t["application/caleydo-lineup-column"]);i=r.data.create(r.data.fromDescRef(a))}if(e instanceof l.Column)return null!=e.insertAfterMe(i);var s=r.data.getLastRanking();return null!==s.push(i)}),s.merge(this.options,n),this.$node=a.select(e).append("div").classed("lu-header",!0),this.$node.append("div").classed("drop",!0).call(this.dropHandler),this.changeDataStorage(t)}return t.prototype.changeDataStorage=function(t){var e=this;this.data&&this.data.on(["dirtyHeader.headerRenderer","orderChanged.headerRenderer","selectionChanged.headerRenderer"],null),this.data=t,t.on("dirtyHeader.headerRenderer",s.delayedCall(this.update.bind(this),1)),this.options.histograms&&(t.on("orderChanged.headerRenderer",function(){e.updateHist(),e.update()}),t.on("selectionChanged.headerRenderer",s.delayedCall(this.drawSelection.bind(this),1)))},Object.defineProperty(t.prototype,"sharedHistCache",{get:function(){return this.histCache},enumerable:!0,configurable:!0}),t.prototype.currentHeight=function(){return parseInt(this.$node.style("height"),10)},t.prototype.updateHist=function(){var t=this,e=this.data.getRankings();e.forEach(function(e){var n=e.getOrder(),r=e.flatColumns,i=null==n?null:t.data.stats(n);r.filter(function(t){return t instanceof l.NumberColumn&&!t.isHidden()}).forEach(function(e){t.histCache.set(e.id,null===i?null:i.stats(e))}),r.filter(function(t){return l.isCategoricalColumn(t)&&!t.isHidden()}).forEach(function(e){t.histCache.set(e.id,null===i?null:i.hist(e))})})},t.prototype.drawSelection=function(){var t=this;if(this.options.histograms){var e=this.$node.node();[].slice.call(e.querySelectorAll("div.bar")).forEach(function(t){return t.classList.remove("selected")});var n=this.data.getSelection();n.length<=0||this.data.view(n).then(function(n){var r=t.data.getRankings();r.forEach(function(t){var r=t.flatColumns;r.filter(function(t){return t instanceof l.NumberColumn&&!t.isHidden()}).forEach(function(t){var r=[].slice.call(e.querySelectorAll('div.header[data-id="'+t.id+'"] div.bar'));n.forEach(function(e){for(var n=t.getValue(e),i=1;in){r[i-1].classList.add("selected");break}if(i===r.length-1){o.classList.add("selected");break}}})}),r.filter(function(t){return l.isCategoricalColumn(t)&&!t.isHidden()}).forEach(function(t){var r=e.querySelector('div.header[data-id="'+t.id+'"]');n.forEach(function(e){var n=t.getCategories(e);(n||[]).forEach(function(t){r.querySelector('div.bar[data-cat="'+t+'"]').classList.add("selected")})})})})})}},t.prototype.renderRankingButtons=function(t,e){var n=this.$node.selectAll("div.rankingbuttons").data(t);n.enter().append("div").classed("rankingbuttons",!0).call(this.options.rankingButtons),n.style("left",function(t,n){return e[n]+"px"}),n.exit().remove()},t.prototype.update=function(){function t(e){return!l.isMultiLevelColumn(e)||e.getCollapsed()||e.getCompressed()?1:1+Math.max.apply(Math,e.children.map(t))}var e=this,n=this,r=this.data.getRankings(),o=[],s=0,c=[];r.forEach(function(t){s+=t.flatten(o,s,1,e.options.columnPadding)+e.options.slopeWidth,c.push(s-e.options.slopeWidth)}),s-=this.options.slopeWidth;var u=o.map(function(t){return t.col});this.options.histograms&&this.histCache.empty()&&r.length>0&&this.updateHist(),this.renderColumns(u,o),this.options.rankingButtons!==i&&this.renderRankingButtons(r,c);var p=Math.max.apply(Math,u.map(t)),d=(this.options.histograms?this.options.headerHistogramHeight:this.options.headerHeight)+(p-1)*this.options.headerHeight;if(this.options.autoRotateLabels){var h=!1;this.$node.selectAll("div.header").style("height",d+"px").select("div.lu-label").each(function(t){var e=this.querySelector("span.lu-label").offsetWidth,r=t.getWidth();e>r+30?(a.select(this).style("transform","rotate("+n.options.rotationDegree+"deg)"),h=!0):a.select(this).style("transform",null)}),this.$node.selectAll("div.header").style("margin-top",h?this.options.rotationHeight+"px":null),d+=h?this.options.rotationHeight:0}this.$node.style("height",d+"px")},t.prototype.createToolbar=function(t){var e=this,n=this.options.filterDialogs,r=this.data,i=this,o=t.filter(function(t){return!(t instanceof l.Ranking)}),s=t.filter(function(t){return t instanceof l.StackColumn}),c=t.filter(function(t){return l.isMultiLevelColumn(t)});s.append("i").attr("class","fa fa-tasks").attr("title","Edit Weights").on("click",function(t){u.openEditWeightsDialog(t,a.select(this.parentNode.parentNode)),a.event.stopPropagation()}),o.append("i").attr("class","fa fa-pencil-square-o").attr("title","Rename").on("click",function(t){u.openRenameDialog(t,a.select(this.parentNode.parentNode)),a.event.stopPropagation()}),o.append("i").attr("class","fa fa-code-fork").attr("title","Generate Snapshot").on("click",function(t){r.takeSnapshot(t),a.event.stopPropagation()}),t.filter(function(t){return t instanceof l.LinkColumn}).append("i").attr("class","fa fa-external-link").attr("title","Edit Link Pattern").on("click",function(t){u.openEditLinkDialog(t,a.select(this.parentNode.parentNode),[].concat(t.desc.templates||[],i.options.linkTemplates)),a.event.stopPropagation()}),t.filter(function(t){return t instanceof l.ScriptColumn}).append("i").attr("class","fa fa-gears").attr("title","Edit Combine Script").on("click",function(t){u.openEditScriptDialog(t,a.select(this.parentNode.parentNode)),a.event.stopPropagation()}),t.filter(function(t){return n.hasOwnProperty(t.desc.type)}).append("i").attr("class","fa fa-filter").attr("title","Filter").on("click",function(t){n[t.desc.type](t,a.select(this.parentNode.parentNode),r),a.event.stopPropagation()}),t.filter(function(t){return e.options.searchAble(t)}).append("i").attr("class","fa fa-search").attr("title","Search").on("click",function(t){u.openSearchDialog(t,a.select(this.parentNode.parentNode),r),a.event.stopPropagation()}),o.append("i").attr("class","fa").classed("fa-toggle-left",function(t){return!t.getCompressed()}).classed("fa-toggle-right",function(t){return t.getCompressed()}).attr("title","(Un)Collapse").on("click",function(t){t.setCompressed(!t.getCompressed()),a.select(this).classed("fa-toggle-left",!t.getCompressed()).classed("fa-toggle-right",t.getCompressed()),a.event.stopPropagation()}),c.append("i").attr("class","fa").classed("fa-compress",function(t){return!t.getCollapsed()}).classed("fa-expand",function(t){return t.getCollapsed()}).attr("title","Compress/Expand").on("click",function(t){t.setCollapsed(!t.getCollapsed()),a.select(this).classed("fa-compress",!t.getCollapsed()).classed("fa-expand",t.getCollapsed()),a.event.stopPropagation()}),t.append("i").attr("class","fa fa-times").attr("title","Hide").on("click",function(t){t instanceof l.RankColumn?(r.removeRanking(t.findMyRanker()),0===r.getRankings().length&&r.pushRanking()):t.removeMe(),a.event.stopPropagation()})},t.prototype.updateFreeze=function(t){var e=this.options.freezeCols;this.$node.selectAll("div.header").style("z-index",function(t,n){return n0&&e.jumpToSelection(),e.drawSelection()},1))},e.prototype.createContext=function(t){var e=this.options;return{rowKey:this.options.animation?this.data.rowKey:void 0,cellY:function(n){return(n+t)*e.rowHeight},cellPrevY:function(n){return(n+t)*e.rowHeight},cellX:function(t){return 0},rowHeight:function(t){return e.rowHeight*(1-e.rowPadding)},renderer:function(t){if(t.getCompressed()&&l.isNumberColumn(t))return e.renderers.heatmap;if(t instanceof l.StackColumn&&t.getCollapsed())return e.renderers.number;if(l.isMultiLevelColumn(t)&&t.getCollapsed())return e.renderers.string;var n=e.renderers[t.desc.type];return n||c.defaultRenderer()},render:function(t,e,n,r){void 0===r&&(r=this);var i=e.node(),o=i.__renderer__,a=this.renderer(t);o!==a&&(e.selectAll("*").remove(),i.__renderer__=a),a.render(e,t,n,r)},renderCanvas:function(t,e,n,r){void 0===r&&(r=this)},showStacked:function(t){return t instanceof l.StackColumn&&e.stacked},idPrefix:e.idPrefix,animated:function(t){return e.animation?t.transition().duration(e.animationDuration):t},showMeanLine:function(t){return e.meanLine&&l.isNumberColumn(t)&&!t.getCompressed()&&t.parent instanceof l.Ranking},option:function(t,n){return t in e?e[t]:n}}},e.prototype.updateClipPathsImpl=function(t,e,n){var r=this.$node.select("defs.body");r.empty()&&(r=this.$node.append("defs").classed("body",!0));var i=r.selectAll(function(){return this.getElementsByTagName("clipPath")}).data(t,function(t){return t.id});i.enter().append("clipPath").attr("id",function(t){return e.idPrefix+"clipCol"+t.id}).append("rect").attr({y:0}),i.exit().remove(),i.select("rect").attr({x:0,width:function(t){return Math.max(t.getWidth()-5,0)},height:n})},e.prototype.updateClipPaths=function(t,e,n){var r=this,i=[],o=0;t.forEach(function(t){var e=t.flatten(i,o,2,r.options.columnPadding);o+=e+r.options.slopeWidth}),this.updateClipPathsImpl(i.map(function(t){return t.col}),e,n);var a=this.$node.select("clipPath#c"+e.idPrefix+"Freeze");a.empty()&&(a=this.$node.append("clipPath").attr("id","c"+e.idPrefix+"Freeze").append("rect").attr({y:0,width:2e4,height:n})),a.select("rect").attr({height:n})},e.prototype.renderRankings=function(t,e,n,r,i,o){function s(t,e,n,o,s){t.classed("hover",!0);var l=t.select("g.values").selectAll("g.uchild").data(o.children.filter(function(t){return!t.isHidden()}),function(t){return t.id});l.enter().append("g").attr({"class":"uchild"}).append("g").classed("child",!0),l.select("g.child").attr({transform:function(t,e){return"translate("+r[s].shifts[e]+",0)"}}).each(function(t,r){var o=this;p[s].then(function(s){i.renderer(t).mouseEnter(e.selectAll('g.child[data-index="'+r+'"]'),a.select(o),t,s[n],n,i)})}),l.exit().remove()}function l(t,e,n,r,o){t.classed("hover",!1),t.select("g.values").selectAll("g.uchild").each(function(t,r){var s=this;p[o].then(function(o){i.renderer(t).mouseLeave(e.selectAll('g.child[data-index="'+r+'"]'),a.select(s).select("g.child"),t,o[n],n,i)})}).remove()}var c=this,u=this,p=n.map(function(t){return c.data.view(t)}),d=t.selectAll("g.ranking").data(e,function(t){return t.id}),h=d.enter().append("g").attr({"class":"ranking",transform:function(t,e){return"translate("+r[e].shift+",0)"}});h.append("g").attr("class","rows"),h.append("g").attr("class","cols"),i.animated(d).attr({transform:function(t,e){return"translate("+r[e].shift+",0)"}});var f=d.select("g.cols").selectAll("g.uchild").data(function(t){return t.children.filter(function(t){return!t.isHidden()})},function(t){return t.id});f.enter().append("g").attr("class","uchild").append("g").attr({"class":"child",transform:function(t,e,n){return"translate("+r[n].shifts[e]+",0)"}}),f.exit().remove(),f=f.select("g.child"),f.attr({"data-index":function(t,e){return e}}),i.animated(f).attr({transform:function(t,e,n){return"translate("+r[n].shifts[e]+",0)"}}).each(function(t,e,n){var r=a.select(this);if(p[n].then(function(e){i.render(t,r,e,i)}),i.showMeanLine(t)){var s=u.histCache.get(t.id);s&&s.then(function(e){var n=r.selectAll("line.meanline").data([e.mean]);n.enter().append("line").attr("class","meanline"),n.exit().remove(),n.attr("x1",t.getWidth()*e.mean).attr("x2",t.getWidth()*e.mean).attr("y2",o)})}else r.selectAll("line.meanline").remove()}),Promise.all(p).then(function(t){c.fire("renderFinished")}),this.mouseOverItem=function(t,e){void 0===e&&(e=!0),d.each(function(n,r){var i=a.select(this),o=i.selectAll('g.row[data-index="'+t+'"]'),c=i.select("g.cols");if(!o.empty()){var u=o.datum().i;e?s(o,c,u,n,r):l(o,c,u,n,r)}}),u.updateFrozenRows()};var g=d.select("g.rows").selectAll("g.row").data(function(t,e){return n[e].map(function(t,e){return{d:t,i:e}})}),m=g.enter().append("g").attr({"class":"row"});m.append("rect").attr({"class":"bg"}),m.append("g").attr({"class":"values"}),m.on("mouseenter",function(t){c.mouseOver(t.d,!0)}).on("mouseleave",function(t){c.mouseOver(t.d,!1)}).on("click",function(t){c.select(t.d,a.event.ctrlKey)}),g.attr({"data-index":function(t){return t.d}}).classed("selected",function(t){return c.data.isSelected(t.d)}),g.select("rect").attr({y:function(t){return i.cellY(t.i)},height:function(t){return i.rowHeight(t.i)},width:function(t,e,n){return r[n].width},"class":function(t,e){return"bg "+(e%2===0?"even":"odd")}}),g.exit().remove(),d.exit().remove()},e.prototype.jumpToSelection=function(){var t=this,e=this.data.getSelection(),n=this.data.getRankings();if(!(e.length<=0||n.length<=0)){var r=n[0].getOrder(),i=this.slicer(0,r.length,function(e){return e*t.options.rowHeight}),o=r.slice(i.from,i.to);e.some(function(t){return o.indexOf(t)>=0})}},e.prototype.select=function(t,e){void 0===e&&(e=!1);var n=this.data.toggleSelection(t,e);this.$node.selectAll('g.row[data-index="'+t+'"], line.slope[data-index="'+t+'"]').classed("selected",n)},e.prototype.hasAnySelectionColumn=function(){return this.data.getRankings().some(function(t){return t.children.some(function(t){return t instanceof l.SelectionColumn&&!t.isHidden()})})},e.prototype.drawSelection=function(){this.hasAnySelectionColumn()&&this.update();var t=this.data.getSelection();if(0===t.length)this.$node.selectAll("g.row.selected, line.slope.selected").classed("selected",!1);else{var e=a.set(t);this.$node.selectAll("g.row").classed("selected",function(t){return e.has(String(t.d))}),this.$node.selectAll("line.slope").classed("selected",function(t){return e.has(String(t.data_index))})}},e.prototype.mouseOver=function(t,e){void 0===e&&(e=!0),this.fire("hoverChanged",e?t:-1),this.mouseOverItem(t,e),this.$node.selectAll('line.slope[data-index="'+t+'"]').classed("hover",e)},e.prototype.renderSlopeGraphs=function(t,e,n,r,i){var o=this,a=n.slice(1).map(function(t,e){return{left:n[e],left_i:e,right:t,right_i:e+1}}),s=t.selectAll("g.slopegraph").data(a);s.enter().append("g").attr({"class":"slopegraph"}),s.attr({transform:function(t,e){return"translate("+(r[e+1].shift-o.options.slopeWidth)+",0)"}});var l=s.selectAll("line.slope").data(function(t,e){var n={};return t.right.forEach(function(t,e){n[t]=e}),t.left.map(function(t,e){return{data_index:t,lpos:e,rpos:n[t]}}).filter(function(t){return null!=t.rpos})});l.enter().append("line").attr({"class":"slope",x2:this.options.slopeWidth}).on("mouseenter",function(t){o.mouseOver(t.data_index,!0)}).on("mouseleave",function(t){o.mouseOver(t.data_index,!1)}),l.attr({"data-index":function(t){return t.data_index}}),l.attr({y1:function(t){return.5*i.rowHeight(t.lpos)+i.cellY(t.lpos)},y2:function(t){return.5*i.rowHeight(t.rpos)+i.cellY(t.rpos)}}),l.exit().remove(),s.exit().remove()},e.prototype.updateFreeze=function(t){var e=this,n=this.options.freezeCols,r=this.$node.select("g.cols"),i=this.$node.select("#c"+this.options.idPrefix+"Freeze").select("rect"),o=r.select('g.child[data-index="'+n+'"]');o.empty()&&(o=r.select("g.child:last-of-type"));var s=a.transform(o.attr("transform")||"").translate[0];i.attr("x",t+s),r.selectAll("g.uchild").attr({"clip-path":function(t,r){return r'+t+'
'+e+'
'}function i(t,e,n){function i(){a.style({left:this.parentElement.offsetLeft+d3.event.dx+"px",top:this.parentElement.offsetTop+d3.event.dy+"px"})}var o=b.offset(t.node()),a=d3.select("body").append("div").attr({"class":"lu-popup2"}).style({left:o.left+"px",top:o.top+"px"}).html(r(e,n));a.select("span.lu-popup-title").call(d3.behavior.drag().on("drag",i)),a.on("keydown",function(){27===d3.event.which&&a.remove()});var s=a.select("input[autofocus]").node();return s&&s.focus(),a}function o(t,e){var n=i(e,"Rename Column",'\n
\n
\n
");n.select(".ok").on("click",function(){var e=n.select('input[type="text"]').property("value"),r=n.select('input[type="color"]').property("value"),i=n.select("textarea").property("value");t.setMetaData({label:e,color:r,description:i}),n.remove()}),n.select(".cancel").on("click",function(){n.remove()})}function a(t,e,n){void 0===n&&(n=[]);var r='0?'list="lineupPatternList"':"")+">
";n.length>0&&(r+=''+n.map(function(t){return'");var o=i(e,"Edit Link ($ as Placeholder)",r);o.select(".ok").on("click",function(){var e=o.select('input[type="text"]').property("value");t.setLink(e),o.remove()}),o.select(".cancel").on("click",function(){o.remove()})}function s(t,e,n){function r(){var e=o.select('input[type="text"]').property("value"),r=o.select('input[type="text"]').property("checked");e.length>0&&(r&&(e=new RegExp(e)),n.searchSelect(e,t)),o.remove()}var o=i(e,"Search",'

');o.select('input[type="text"]').on("input",function(){var e=d3.event.target.value;if(e.length>=3){var r=o.select('input[type="checkbox"]').property("checked");r&&(e=new RegExp(e)),n.searchSelect(e,t)}}),o.select('input[type="checkbox"]').on("change",r),o.select(".ok").on("click",r),o.select(".cancel").on("click",function(){o.remove()})}function l(t,e){function n(){l.select(".bar").transition().style("width",function(t){return a(t.weight)+"px"})}var r=t.getWeights(),o=t.children.map(function(t,e){return{col:t,weight:100*r[e]}}),a=d3.scale.linear().domain([0,100]).range([0,120]),s=i(e,"Edit Weights","
"),l=s.select("table").selectAll("tr").data(o),c=l.enter().append("tr");c.append("td").append("input").attr({type:"number",value:function(t){return t.weight},min:0,max:100,size:5}).on("input",function(t){t.weight=+this.value,n()}),c.append("td").append("div").attr("class",function(t){return"bar "+t.col.cssClass}).style("background-color",function(t){return t.col.color}),c.append("td").text(function(t){return t.col.label}),n(),s.select(".cancel").on("click",function(){t.setWeights(r),s.remove()}),s.select(".reset").on("click",function(){o.forEach(function(t,e){return t.weight=100*r[e]}),l.select("input").property("value",function(t){return t.weight}),n()}),s.select(".ok").on("click",function(){t.setWeights(o.map(function(t){return t.weight})),s.remove()})}function c(t,e){void 0===e&&(e=!1),t.classed("filtered",e)}function u(t){return function(e,n){var r=e[t],i=n[t];return r.toLowerCase()i.toLowerCase()?1:0}}function p(t,e){function n(){h.select(".checkmark").html(function(t){return''}),h.select(".datalabel").style("opacity",function(t){return t.isChecked?"1.0":".8"})}function r(){s.select(".selectAll").html(function(t){return''}),s.select("thead").on("click",function(t){g=!g,d.forEach(function(t){return t.isChecked=g}),n(),r()})}function o(n){c(e,n&&n.length>0&&n.length
Category
'),l=t.categoryColors,p=t.categoryLabels,d=t.categories.map(function(t,e){return{cat:t,label:p[e],isChecked:0===a.length||a.indexOf(t)>=0,color:l[e]}}).sort(u("label")),h=s.select("tbody").selectAll("tr").data(d),f=h.enter().append("tr");f.append("td").attr("class","checkmark"),f.append("td").attr("class","datalabel").text(function(t){return t.label}),f.on("click",function(t){t.isChecked=!t.isChecked,n()}),n();var g=!0;r(),s.select(".cancel").on("click",function(){o(a),s.remove()}),s.select(".reset").on("click",function(){d.forEach(function(t){return t.isChecked=!0}),n(),o(null)}),s.select(".ok").on("click",function(){var t=d.filter(function(t){return t.isChecked}).map(function(t){return t.cat});t.length===d.length&&(t=[]),o(t),s.remove()})}function d(t,e){function n(n){c(e,n&&""!==n),t.setFilter(n)}function r(t){var e=s.select('input[type="text"]').property("value"),r=s.select('input[type="checkbox"].lu_filter_missing').property("checked");if(r&&""===e&&(e=v.StringColumn.FILTER_MISSING),""===e)return void n(e);if(e.length>=3||t){var i=s.select('input[type="checkbox"]:first-of-type').property("checked");i&&e!==v.StringColumn.FILTER_MISSING&&(e=new RegExp(e)),n(e)}}var o=t.getFilter()||"",a=o===v.StringColumn.FILTER_MISSING;a&&(o="");var s=i(e,"Filter",'\n

\n
");s.selectAll('input[type="checkbox"]').on("change",r),s.select('input[type="text"]').on("input",r),s.select(".cancel").on("click",function(){s.select('input[type="text"]').property("value",o||""),s.select('input[type="checkbox"]:first-of-type').property("checked",o instanceof RegExp?"checked":null),s.select('input[type="checkbox"].lu_filter_missing').property("checked",a?"checked":null),n(o),s.remove()}),s.select(".reset").on("click",function(){s.select('input[type="text"]').property("value",""),s.selectAll('input[type="checkbox"]').property("checked",null),n(null)}),s.select(".ok").on("click",function(){r(!0),s.remove()})}function h(t,e){function n(n){c(e,null!==n),t.setFilter(n)}function r(t){var e=a.select('input[type="radio"][value="true"]').property("checked"),r=a.select('input[type="radio"][value="false"]').property("checked");n(!!e||!r&&null)}var o=t.getFilter(),a=i(e,"Filter",'
\n
\n \n
");a.selectAll('input[type="radio"]').on("change",r),a.select(".cancel").on("click",function(){n(o),a.remove()}),a.select(".reset").on("click",function(){var t=null===o?"null":String(o);a.selectAll('input[type="radio"]').property("checked",function(){return this.value===t}),n(null)}),a.select(".ok").on("click",function(){r(!0),a.remove()})}function f(t,e){function n(e){t.setScript(e)}function r(){var t=a.select("textarea").property("value");n(t)}var o=t.getScript(),a=i(e,"Edit Script",'Parameters: values: number[], children: Column[]
\n
");a.select(".cancel").on("click",function(){a.select("textarea").property("value",o),n(o),a.remove()}),a.select(".reset").on("click",function(){a.select("textarea").property("value",v.ScriptColumn.DEFAULT_SCRIPT),n(v.ScriptColumn.DEFAULT_SCRIPT)}),a.select(".ok").on("click",function(){r(),a.remove()})}function g(t,e,n){function i(n,r){u=n,p=r,c(e,!n.eq(s)||l.min!==r.min||l.max!==r.min),t.setMapping(n),t.setFilter(r)}var o=b.offset(e.node()),a=t.getMapping(),s=t.getOriginalMapping(),l=t.getFilter(),u=a.clone(),p=l,d=d3.select("body").append("div").attr({"class":"lu-popup"}).style({left:o.left+"px",top:o.top+"px"}).html(r("Change Mapping",'
')),h={callback:i,triggerCallback:"dragend"},f=n.mappingSample(t),g=C.create(d.select(".mappingArea").node(),u,s,p,f,h);d.select(".ok").on("click",function(){i(g.scale,g.filter),d.remove()}),d.select(".cancel").on("click",function(){t.setMapping(a),c(e,!a.eq(s)),d.remove()}),d.select(".reset").on("click",function(){a=s,u=a.clone(),l={min:-(1/0),max:+(1/0)},p=l,i(u,p),d.selectAll(".mappingArea *").remove(),g=C.create(d.select(".mappingArea").node(),u,s,p,f,h)})}function m(t,e){function n(){g.select(".checkmark").html(function(t){return''}),g.select(".bar").transition().style("width",function(t){return s(t.range)+"px"}),g.select(".datalabel").style("opacity",function(t){return t.isChecked?"1.0":".8"})}function r(){l.select(".selectAll").html(function(t){return''}),l.select("thead").on("click",function(t){y=!y,f.forEach(function(t){return t.isChecked=y}),n(),r()})}function o(n){c(e,n&&n.length>0&&n.length
ScaleCategory
'),p=t.getScale().range,d=t.categoryColors,h=t.categoryLabels,f=t.categories.map(function(t,e){return{cat:t,label:h[e],isChecked:0===a.length||a.indexOf(t)>=0,range:100*p[e],color:d[e]}}).sort(u("label")),g=l.select("tbody").selectAll("tr").data(f),m=g.enter().append("tr");m.append("td").attr("class","checkmark").on("click",function(t){t.isChecked=!t.isChecked,n()}),m.append("td").append("input").attr({type:"number",value:function(t){return t.range},min:0,max:100,size:5}).on("input",function(t){t.range=+this.value,n()}),m.append("td").append("div").attr("class","bar").style("background-color",function(t){return t.color}),m.append("td").attr("class","datalabel").text(function(t){return t.label}),n();var y=!0;r(),l.select(".cancel").on("click",function(){o(a),t.setMapping(p),l.remove()}),l.select(".reset").on("click",function(){f.forEach(function(t){t.isChecked=!0,t.range=50}),n(),o(null),t.setMapping(f.map(function(){return 1}))}),l.select(".ok").on("click",function(){var e=f.filter(function(t){return t.isChecked}).map(function(t){return t.cat});e.length===f.length&&(e=[]),o(e),t.setMapping(f.map(function(t){return t.range/100})),l.remove()})}function y(){return{string:d,categorical:p,number:g,ordinal:m,"boolean":h}}var v=n(4),b=n(6),C=n(11);e.dialogForm=r,e.makePopup=i,e.openRenameDialog=o,e.openEditLinkDialog=a,e.openSearchDialog=s,e.openEditWeightsDialog=l,e.openEditScriptDialog=f,e.filterDialogs=y},function(t,e,n){"use strict";function r(t,e,n){return Math.max(Math.min(t,n),e)}function i(t,e,n,r,i,o){return void 0===o&&(o={}),new l(t,e,n,r,i,o)}var o=n(5),a=n(6),s=n(4),l=function(){function t(t,e,n,r,i,s){void 0===s&&(s={}),this.parent=t,this.scale_=e,this.original=n,this.old_filter=r,this.dataPromise=i,this.options={width:370,height:225,padding_hor:7,padding_ver:7,filter_height:20,radius:5,callback:function(t){return t},callbackThisArg:null,triggerCallback:"change"},a.merge(this.options,s),this.scale_=e.clone(),this.build(o.select(t))}return Object.defineProperty(t.prototype,"scale",{get:function(){return this.scale_},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"filter",{get:function(){return this.computeFilter()},enumerable:!0,configurable:!0}),t.prototype.build=function(t){function e(){m.attr({x1:function(t){return g(p.scale.apply(t))},x2:f}).style("visibility",function(t){var e=p.scale.domain;return te[e.length-1]?"hidden":null})}function n(t){return o.behavior.drag().on("dragstart",function(){o.select(this).classed("dragging",!0).attr("r",1.1*u.radius)}).on("drag",t).on("dragend",function(){o.select(this).classed("dragging",!1).attr("r",u.radius),l(!0)})}function i(){function a(){y.sort(function(t,e){return t.r-e.r});var t=p.scale;t.domain=y.map(function(t){return t.r}),t.range=y.map(function(t){return t.n}),e()}function l(t){y.length<=2||(y.splice(t,1),a(),i())}function c(t){t=r(t,0,d),y.push({n:g.invert(t),r:f.invert(t)}),a(),i()}if(p.scale instanceof s.ScaleMappingFunction){var m=p.scale,v=m.domain,b=m.range;y=v.map(function(t,e){return{r:t,n:b[e]}}),t.selectAll("rect.adder").on("click",function(){c(o.mouse(t.select("svg > g").node())[0])});var C=t.select("g.mappings").selectAll("g.mapping").data(y),x=C.enter().append("g").classed("mapping",!0).on("contextmenu",function(t,e){o.event.preventDefault(),o.event.stopPropagation(),l(e)});x.append("line").attr({y1:0,y2:h}).call(n(function(t){var e=o.event.dx,n=r(g(t.n)+e,0,d),i=r(f(t.r)+e,0,d);t.n=g.invert(n),t.r=f.invert(i),o.select(this).attr("x1",n).attr("x2",i),o.select(this.parentElement).select("circle.normalized").attr("cx",n),o.select(this.parentElement).select("circle.raw").attr("cx",i),a()})),x.append("circle").classed("normalized",!0).attr("r",u.radius).call(n(function(t){var e=r(o.event.x,0,d);t.n=g.invert(e),o.select(this).attr("cx",e),o.select(this.parentElement).select("line").attr("x1",e),a()})),x.append("circle").classed("raw",!0).attr("r",u.radius).attr("cy",h).call(n(function(t){var e=r(o.event.x,0,d);t.r=f.invert(e),o.select(this).attr("cx",e),o.select(this.parentElement).select("line").attr("x2",e),a()})),C.select("line").attr({x1:function(t){return g(t.n)},x2:function(t){return f(t.r)}}),C.select("circle.normalized").attr("cx",function(t){return g(t.n)}),C.select("circle.raw").attr("cx",function(t){return f(t.r)}),C.exit().remove()}}function a(){if(!(p.scale instanceof s.ScriptMappingFunction))return void t.select("div.script").style("display","none");t.select("div.script").style("display",null);var n=p.scale,r=t.select("textarea").text(n.code);t.select("div.script").select("button").on("click",function(){n.code=r.property("value"),e(),l()})}function l(t){void 0===t&&(t=!1),t&&"dragend"!==u.triggerCallback||u.callback.call(u.callbackThisArg,p.scale.clone(),p.filter)}function c(){var n=f.domain();t.select("input.raw_min").property("value",n[0]),t.select("input.raw_max").property("value",n[1]),e(),i()}var u=this.options,p=this;t=t.append("div").classed("lugui-me",!0);var d=u.width-2*u.padding_hor,h=u.height-2*u.padding_ver-u.filter_height;t.node().innerHTML='
\n
\n
\n
\n 0\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n > 0\n \n \n \n \n < 1\n \n \n \n \n
\n 1\n \n
\n
\n
\n \n \n
\n
'; var f=o.scale.linear().domain([Math.min(this.scale.domain[0],this.original.domain[0]),Math.max(this.scale.domain[this.scale.domain.length-1],this.original.domain[this.original.domain.length-1])]).range([0,d]),g=o.scale.linear().domain([0,1]).range([0,d]);t.select("input.raw_min").property("value",f.domain()[0]).on("blur",function(){var t=f.domain();t[0]=parseFloat(this.value),f.domain(t);var e=p.scale_.domain;e[0]=t[0],p.scale_.domain=e,c(),l()}),t.select("input.raw_max").property("value",f.domain()[1]).on("blur",function(){var t=f.domain();t[1]=parseFloat(this.value),f.domain(t);var e=p.scale_.domain;e[e.length-1]=t[1],p.scale_.domain=e,c(),l()});var m=t.select("g.samples").selectAll("line").data([]);this.dataPromise.then(function(t){t=o.set(t.map(String)).values().map(parseFloat),m=m.data(t),m.enter().append("line").attr({x1:function(t){return g(p.scale.apply(t))},y1:0,x2:f,y2:h}).style("visibility",function(t){var e=p.scale.domain;return te[e.length-1]?"hidden":null})});var y=[];i(),a();var v=isFinite(this.old_filter.min)?f(this.old_filter.min):0,b=isFinite(this.old_filter.max)?f(this.old_filter.max):d,C=function(t,e){return isFinite(t)?(0===e?">":"<")+t.toFixed(1):"any"};t.selectAll("g.left_filter, g.right_filter").data([this.old_filter.min,this.old_filter.max]).attr("transform",function(t,e){return"translate("+(0===e?v:b)+",0)"}).call(n(function(t,e){var n=r(o.event.x,0,d),i=f.invert(n),a=n<=0&&0===e?-(1/0):n>=d&&1===e?1/0:i;o.select(this).datum(a).attr("transform","translate("+n+",0)").select("text").text(C(a,e))})).select("text").text(C),this.computeFilter=function(){return{min:parseFloat(t.select("g.left_filter").datum()),max:parseFloat(t.select("g.right_filter").datum())}},c(),t.select("select").on("change",function(){var t=this.value;if("linear_invert"===t)p.scale_=new s.ScaleMappingFunction(f.domain(),"linear",[1,0]);else if("linear_abs"===t){var n=f.domain();p.scale_=new s.ScaleMappingFunction([n[0],(n[1]-n[0])/2,n[1]],"linear",[1,0,1])}else"script"===t?p.scale_=new s.ScriptMappingFunction(f.domain()):p.scale_=new s.ScaleMappingFunction(f.domain(),t);e(),i(),a(),l()}).property("selectedIndex",function(){var t="script";p.scale_ instanceof s.ScaleMappingFunction&&(t=p.scale.scaleType);var e=["linear","linear_invert","linear_abs","log","pow1.1","pow2","pow3","sqrt","script"];return e.indexOf(t)})},t}();e.MappingEditor=l,e.create=i}])}); \ No newline at end of file diff --git a/dist/LineUpJS_bundle.js b/dist/LineUpJS_bundle.js index e1e91d20f..90c969e0f 100644 --- a/dist/LineUpJS_bundle.js +++ b/dist/LineUpJS_bundle.js @@ -1911,14 +1911,20 @@ return /******/ (function(modules) { // webpackBootstrap var cats = [], cols = this.colors.range(), labels = d3.map(); desc.categories.forEach(function (cat, i) { if (typeof cat === 'string') { + //just the category value cats.push(cat); } else { - cats.push(cat.name); + //the name or value of the category + cats.push(cat.name || cat.value); + //optional label mapping if (cat.label) { labels.set(cat.name, cat.label); } - cols[i] = cat.color; + //optional color + if (cat.color) { + cols[i] = cat.color; + } } }); this.catLabels = labels; @@ -2008,14 +2014,22 @@ return /******/ (function(modules) { // webpackBootstrap range: this.colors.range(), separator: this.separator }; + if (this.catLabels !== null && !this.catLabels.empty()) { + r.labels = this.catLabels.entries(); + } return r; }; CategoricalColumn.prototype.restore = function (dump, factory) { + var _this = this; _super.prototype.restore.call(this, dump, factory); this.currentFilter = dump.filter || null; if (dump.colors) { this.colors.domain(dump.colors.domain).range(dump.colors.range); } + if (dump.labels) { + this.catLabels = d3.map(); + dump.labels.forEach(function (e) { return _this.catLabels.set(e.key, e.value); }); + } this.separator = dump.separator || this.separator; }; CategoricalColumn.prototype.isFiltered = function () { diff --git a/dist/LineUpJS_bundle.js.map b/dist/LineUpJS_bundle.js.map index d40def797..88b1247d9 100644 --- a/dist/LineUpJS_bundle.js.map +++ b/dist/LineUpJS_bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap bc778b4743a25a87a513","webpack:///./src/bundle.js","webpack:///./src/style.scss?47f5","webpack:///./src/style.scss","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/style-loader/addStyles.js","webpack:///./src/main.ts","webpack:///./src/model.ts","webpack:///./bower_components/d3/d3.js","webpack:///./src/utils.ts","webpack:///./src/provider.ts","webpack:///./src/renderer.ts","webpack:///./src/ui.ts","webpack:///./src/ui_dialogs.ts","webpack:///./src/mappingeditor.ts"],"names":[],"mappings":"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C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA,kBAAiB,2BAA2B;AAC5C;AACA;AACA,SAAQ,uBAAuB;AAC/B;AACA;AACA,IAAG;AACH;AACA,kBAAiB,uBAAuB;AACxC;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA,iCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA,GAAE;AACF;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wDAAuD;AACvD;;AAEA,8BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;AACA;;;;;;;ACrPA;;;IAGG;;;;;;;AAEH,4CAA2C;AAC3C,KAAO,MAAM,uBAAW,CAAS,CAAC,CAAC;AACnC,KAAO,SAAS,uBAAW,CAAY,CAAC,CAAC;AACzC,KAAO,SAAS,uBAAW,EAAY,CAAC,CAAC;AACzC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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAsE;AACtE,MAAK;AACL,yFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAmD;AACnD;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAsF,SAAS;AAC/F,6DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA,yEAAwE;AACxE,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD,EAAE;AACpD,uBAAsB;AACtB;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,SAAS;AAC9C;AACA;AACA,yCAAwC,SAAS;AACjD;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,SAAS;AAC9C,0DAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAgD;AAChD;AACA;AACA;AACA,qEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,SAAS;AAC7B;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,qBAAoB,SAAS;AAC7B;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA,qBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA,QAAO;AACP,qBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,eAAc,MAAM;AACpB;AACA;AACA,eAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAoC,OAAO;AAC3C;AACA;AACA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,SAAS;AAC9C,6EAA4E,UAAU;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,uCAAsC,OAAO;AAC7C,iEAAgE,OAAO;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAoC,OAAO;AAC3C,yDAAwD,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,SAAS;AAC9C;AACA;AACA;AACA,yCAAwC,SAAS;AACjD;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA,mEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA,YAAW;AACX;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAAyD;AACzD;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAsD,wCAAwC;AAC9F;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB,iFAAiF;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C;AAC3C;AACA,UAAS,gBAAgB;AACzB;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA,mBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC;AACnC;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iDAAgD;AAChD,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,6BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,qDAAoD;AACpD;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,EAAE;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C;AAC3C,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,uEAAsE,6BAA6B;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAAyD,OAAO;AAChE;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA,iEAAgE,QAAQ;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,8DAA6D,OAAO;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA8C,OAAO;AACrD,YAAW;AACX;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,4CAA2C,QAAQ;AACnD,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA4B;AAC5B,6BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,OAAO;AAC9B,qEAAoE,OAAO;AAC3E;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,6CAA4C;AAC5C;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,gCAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA;AACA,iCAAgC,QAAQ;AACxC,0BAAyB,8BAA8B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,YAAW;AACX;AACA;AACA,YAAW;AACX;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC;AAClC;AACA;AACA;AACA,QAAO;AACP,mCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,+BAA8B,8BAA8B;AAC5D;AACA,gDAA+C;AAC/C,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wCAAuC;AACvC,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAuC;AACvC,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,gCAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS,iBAAiB,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA2B;AAC3B,4BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAiD,OAAO;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc,QAAQ;AACtB;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA,8BAA6B;AAC7B,QAAO;AACP;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL,yBAAwB,OAAO;AAC/B;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,gBAAe,QAAQ;AACvB,WAAU,OAAO;AACjB,WAAU,OAAO;AACjB;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAqD,8BAA8B;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAqD,8BAA8B;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,oCAAmC;AACnC;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB;AAClB;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,YAAW;AACX;AACA,QAAO;AACP;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAAyD,OAAO,2DAA2D,iBAAiB,OAAO;AACnJ;AACA,0DAAyD,OAAO,2DAA2D,iBAAiB,OAAO;AACnJ;AACA,oDAAmD,OAAO,mDAAmD,iBAAiB,OAAO;AACrI;AACA;AACA;AACA,sBAAqB,OAAO;AAC5B;AACA;AACA,sBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA,oBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,kBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA;AACA,kBAAiB,OAAO;AACxB,2BAA0B,OAAO;AACjC;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,kBAAiB,OAAO;AACxB,4BAA2B,OAAO;AAClC,wDAAuD,OAAO;AAC9D,2EAA0E,OAAO;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA,MAAK;AACL;AACA;AACA,kBAAiB,OAAO;AACxB,2BAA0B,OAAO;AACjC,2BAA0B,OAAO,yBAAyB,iBAAiB,OAAO;AAClF;AACA,kBAAiB,OAAO;AACxB;AACA,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU,MAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,OAAO;AAC1B;AACA;AACA,iCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,kFAAiF;AACjF;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,+EAA8E,OAAO;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,+BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B,gCAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB,MAAM,qBAAqB,OAAO;AAClD;AACA,UAAS;AACT;AACA,iBAAgB,QAAQ,sBAAsB,OAAO;AACrD;AACA,oBAAmB,cAAc;AACjC,+BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,6DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,SAAS;AAC9C;AACA,0DAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,SAAS;AAC9C;AACA,0DAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,SAAS;AAC9C,0DAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA,gDAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAoC,OAAO;AAC3C;AACA,yDAAwD,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,qCAAoC,OAAO;AAC3C;AACA,yDAAwD,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb,YAAW;AACX,UAAS;AACT;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,YAAW;AACX;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA,uCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAmD,0BAA0B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,qXAA2E,4EAA4E;AACvJ,EAAC,G;;;;;;ACj1SD;;IAEG;;;;;;;AAEH,4CAA2C;AAC3C,KAAO,EAAE,uBAAW,CAAI,CAAC,CAAC;AAE1B;;;;;;IAMG;AACH,sBAA4B,QAAgC,EAAE,WAAiB,EAAE,YAAmB;KAAtC,2BAAiB,GAAjB,iBAAiB;KAAE,4BAAmB,GAAnB,mBAAmB;KAClG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;KACZ,MAAM,CAAC;SAAU,cAAa;cAAb,WAAa,CAAb,sBAAa,CAAb,IAAa;aAAb,6BAAa;;SAC5B,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;aACZ,YAAY,CAAC,EAAE,CAAC,CAAC;aACjB,EAAE,GAAG,CAAC,CAAC,CAAC;SACV,CAAC;SACD,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC,CAAC;SAC1D,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;KACpE,CAAC,CAAC;AACJ,EAAC;AAVe,oBAAW,cAU1B;AAED;;;;;IAKG;AACH,uBAA6B,EAAmB,EAAE,KAAa;KAC7D,MAAM,CAAC;SAAU,cAAa;cAAb,WAAa,CAAb,sBAAa,CAAb,IAAa;aAAb,6BAAa;;SAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;SACjC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KAC1B,CAAC,CAAC;AACJ,EAAC;AALe,qBAAY,eAK3B;AAED;;IAEG;AACH;KAIE;SAFQ,cAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;SAGrC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;KACjE,CAAC;KAID,6BAAE,GAAF,UAAG,IAAoB,EAAE,QAAgC;SAAzD,iBAUC;SATC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;aACzB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACb,IAAK,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,EAA9B,CAA8B,CAAC,CAAC;aAClE,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,CAAC,SAAS,CAAC,EAAE,CAAS,IAAI,EAAE,QAAQ,CAAC,CAAC;aAC5C,CAAC;aACD,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAS,IAAI,CAAC,CAAC;KACzC,CAAC;KAED;;;QAGG;KACH,0CAAe,GAAf;SACE,MAAM,CAAC,EAAE,CAAC;KACZ,CAAC;KAED,+BAAI,GAAJ,UAAK,IAAoB;SAAzB,iBAeC;SAf0B,cAAa;cAAb,WAAa,CAAb,sBAAa,CAAb,IAAa;aAAb,6BAAa;;SACtC,IAAI,QAAQ,GAAG,UAAC,CAAC;aACf,8CAA8C;aAC9C,IAAI,OAAO,GAAG;iBACZ,MAAM,EAAE,KAAI;iBACZ,IAAI,EAAE,CAAC;iBACP,IAAI,EAAE,IAAI,CAAC,+BAA+B;cAC3C,CAAC;aACF,KAAI,CAAC,SAAS,CAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SACjD,CAAC,CAAC;SACF,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,IAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAChD,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,QAAQ,CAAS,IAAI,CAAC,CAAC;SACzB,CAAC;KACH,CAAC;KAED;;;;;QAKG;KACH,kCAAO,GAAP,UAAQ,IAAqB;SAAE,eAAiB;cAAjB,WAAiB,CAAjB,sBAAiB,CAAjB,IAAiB;aAAjB,8BAAiB;;SAC9C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KACjC,CAAC;KAED;;;;QAIG;KACH,oCAAS,GAAT,UAAU,IAAqB;SAAE,eAAiB;cAAjB,WAAiB,CAAjB,sBAAiB,CAAjB,IAAiB;aAAjB,8BAAiB;;SAChD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KACvB,CAAC;KACH,uBAAC;AAAD,EAAC;AAjEY,yBAAgB,mBAiE5B;AAED,KAAM,WAAW,GAAG,iBAAiB,CAAC;AACtC,KAAM,UAAU,GAAG,gBAAgB,CAAC;AAEpC,8EAA6E;AAC7E;KAAsB,cAAa;UAAb,WAAa,CAAb,sBAAa,CAAb,IAAa;SAAb,6BAAa;;KACjC,IAAI,MAAM,GAAG,IAAI,CAAC;KAElB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;SACrC,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EACnB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAE9B,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC;aACpB,MAAM,GAAG,OAAO,CAAC;aACjB,QAAQ,CAAC;SACX,CAAC;SAED,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;aACrC,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aACtB,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;aAE7B,kBAAkB;aAClB,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBACjH,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;qBAClC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;iBACvB,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;aAClD,CAAC;aAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC;iBAChE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;qBAClC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;iBACvB,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;aAClD,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;aAC1B,CAAC;SACH,CAAC;KACH,CAAC;KAED,MAAM,CAAC,MAAM,CAAC;AAChB,EAAC;AAlCe,cAAK,QAkCpB;AAED;;;;IAIG;AACH,iBAAuB,OAAO;KAC5B,IAAI,GAAG,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;KAC1C,MAAM,CAAC;SACL,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW;SACnC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,WAAW;SACjC,KAAK,EAAE,GAAG,CAAC,KAAK;SAChB,MAAM,EAAE,GAAG,CAAC,MAAM;MACnB,CAAC;AACJ,EAAC;AARe,eAAM,SAQrB;AAED;;;;IAIG;AACH;KAAqC,mCAAgB;KAmBnD;;;;;QAKG;KACH,yBAAoB,SAAiB,EAAU,OAAe,EAAE,OAAgB;SAzBlF,iBAoIC;SA3GiE,uBAAgB,GAAhB,YAAgB;SAC9E,iBAAO,CAAC;SADU,cAAS,GAAT,SAAS,CAAQ;SAAU,YAAO,GAAP,OAAO,CAAQ;SAxBtD,YAAO,GAAG;aAChB;;gBAEG;aACH,QAAQ,EAAE,cAAM,QAAC,EAAD,CAAC;aACjB;;gBAEG;aACH,UAAU,EAAE,CAAC;aACb;;gBAEG;aACH,SAAS,EAAE,EAAE;UACd,CAAC;SAEM,kBAAa,GAAG,CAAC,CAAC;SAClB,UAAK,GAAG,CAAC,CAAC;SAUhB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7B,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,cAAM,YAAI,CAAC,QAAQ,EAAE,EAAf,CAAe,CAAC,CAAC;SAElE,8DAA8D;SAC9D,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC;SACzC,wBAAwB;SACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;KAC3D,CAAC;KAED;;;;;;;QAOG;KACH,yCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;KAC9D,CAAC;KAED,wCAAc,GAAd,UAAe,KAAa,EAAE,MAAc,EAAE,KAAa,EAAE,KAA0B;SACrF,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;SAChD,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;aAC7C,MAAM,CAAC,CAAC,iBAAiB;SAC3B,CAAC;SAED,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EACvE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAC1C,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACX,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;aACZ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAC7C,oDAAoD;aACpD,OAAO,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;iBACxC,CAAC,EAAE,CAAC;aACN,CAAC;aACD,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,sCAAsC;SACtE,CAAC;SACD,CAAC;aACC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAChD,sDAAsD;aACtD,OAAO,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;iBAC5C,CAAC,EAAE,CAAC;aACN,CAAC;aACD,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,sCAAsC;SACtE,CAAC;KACH,CAAC;KAED;;;;;;QAMG;KACH,gCAAM,GAAN,UAAO,KAAY,EAAE,MAAa,EAAE,KAA0B;SAC5D,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EACvE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAC1C,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACX;;;;aAII;SACJ,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;aACZ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAC7C,oDAAoD;aACpD,OAAO,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;iBACxC,CAAC,EAAE,CAAC;aACN,CAAC;aACD,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,sCAAsC;SACtE,CAAC;SACD,CAAC;aACC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAChD,sDAAsD;aACtD,OAAO,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;iBAC5C,CAAC,EAAE,CAAC;aACN,CAAC;aACD,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,sCAAsC;SACtE,CAAC;SACD,MAAM,CAAC;aACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;aACxB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC;UACxB,CAAC;KACJ,CAAC;KAEO,kCAAQ,GAAhB;SACE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;SACnC,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;SACrC,0BAA0B;SAC1B,yBAAyB;SACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SAC/B,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;aAC3F,sEAAsE;aACtE,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;aACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACtB,CAAC;KACH,CAAC;KAED;;QAEG;KACH,iCAAO,GAAP;SACE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;KACxD,CAAC;KACH,sBAAC;AAAD,EAAC,CApIoC,gBAAgB,GAoIpD;AApIY,wBAAe,kBAoI3B;AAED;;IAEG;AACH,qBAA2B,CAAW,EAAE,YAAqB;KAC3D,IAAI,KAAK,GAAO,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC;KACrC,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC;SACxC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,YAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAxB,CAAwB,CAAC,CAAC;KAC/D,CAAC;KACD,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC;SACzC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,YAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAApB,CAAoB,CAAC,CAAC;KAC3D,CAAC;KACD,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC;SACzC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,YAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAApB,CAAoB,CAAC,CAAC;KAC3D,CAAC;KACD,MAAM,CAAC,KAAK,CAAC;AACf,EAAC;AAZe,mBAAU,aAYzB;AAED;;IAEG;AACH,kBAAwB,CAAW;KACjC,IAAI,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;KACxB,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;AAC/G,EAAC;AAHe,gBAAO,UAGtB;AAED;;;IAGG;AACH,2BAAiC,CAAW;KAC1C,IAAI,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;KACxB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACf,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC;KACzB,CAAC;KAAC,IAAI,CAAC,CAAC;SACN,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC;KACzB,CAAC;AACH,EAAC;AAPe,yBAAgB,mBAO/B;AAED;;;;IAIG;AACH,mBAA4B,SAAkB,EAAE,MAA+C;KAC7F,MAAM,CAAC,UAAC,KAAK;SACX,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE;aACpB,IAAI,CAAC,GAAoB,EAAE,CAAC,KAAM,CAAC;aACnC,kCAAkC;aAClC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC7B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;iBAC3C,aAAa;iBACb,MAAM,CAAC,KAAK,CAAC;aACf,CAAC;aACD,uBAAuB;aACvB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;SAC9C,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE;aAChB,IAAI,CAAC,GAAoB,EAAE,CAAC,KAAM,CAAC;aACnC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC7B,CAAC,CAAC,cAAc,EAAE,CAAC;iBACnB,gBAAgB,CAAC,CAAC,CAAC,CAAC;iBACpB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;iBAC3C,MAAM,CAAC,KAAK,CAAC;aACf,CAAC;SACH,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE;aACjB,EAAE;aACF,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;SAC9C,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAG;aACzB,IAAI,CAAC,GAAoB,EAAE,CAAC,KAAM,CAAC;aACnC,CAAC,CAAC,cAAc,EAAE,CAAC;aACnB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aAC5C,kCAAkC;aAClC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC7B,IAAI,IAAI,GAAO,EAAE,CAAC;iBAClB,iDAAiD;iBACjD,SAAS,CAAC,OAAO,CAAC,UAAC,IAAI;qBACrB,IAAI,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;qBACzC,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;yBACjB,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;qBACrB,CAAC;iBACH,CAAC,CAAC,CAAC;iBACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aACrC,CAAC;SACH,CAAC,CAAC,CAAC;KACL,CAAC,CAAC;AACJ,EAAC;AAzCe,iBAAQ,WAyCvB;;;;;;;ACnYD;;IAEG;;;;;;;AAEH,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,EAAE,uBAAW,CAAI,CAAC,CAAC;AAE1B;;;;;;IAMG;AACH,uBAAsB,GAAS,EAAE,GAAmB,EAAE,KAAuB;KAC3E,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;SACrB,MAAM,CAAC;aACL,GAAG,EAAE,GAAG;aACR,GAAG,EAAE,GAAG;aACR,IAAI,EAAE,GAAG;aACT,KAAK,EAAE,CAAC;aACR,MAAM,EAAE,CAAC;aACT,IAAI,EAAE,EAAE;UACT,CAAC;KACJ,CAAC;KACD,IAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC9C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;SACV,IAAI,CAAC,KAAK,CAAC,cAAM,YAAK,EAAL,CAAK,CAAC,CAAC;KAC1B,CAAC;KACD,IAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KAC/B,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5B,MAAM,CAAC;SACL,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;SACV,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;SACV,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;SACvB,KAAK,EAAE,GAAG,CAAC,MAAM;SACjB,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,EAAH,CAAG,CAAC;SACrC,IAAI,EAAE,SAAS;MAChB,CAAC;AACJ,EAAC;AAED;;;;;;IAMG;AACH,sBAAqB,GAAS,EAAE,GAAqB,EAAE,UAAoB;KACzE,IAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAU,CAAC;KAC3B,UAAU,CAAC,OAAO,CAAC,UAAC,GAAG,IAAK,QAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAb,CAAa,CAAC,CAAC;KAE3C,GAAG,CAAC,OAAO,CAAC,UAAC,CAAC;SACZ,IAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;SAClB,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;aACf,MAAM,CAAC;SACT,CAAC;SACD,EAAE,CAAC,OAAO,CAAC,UAAC,CAAC;aACX,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAChC,CAAC,CAAC,CAAC;KACL,CAAC,CAAC,CAAC;KACH,MAAM,CAAC;SACL,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC1B,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,QAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAG,KAAK,CAAC,KAAK,EAAC,CAAC,EAApC,CAAoC,CAAC;MACvE,CAAC;AACJ,EAAC;AAGD,wBAAuB,GAAsB;KAC3C,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjE,EAAC;AA8BD;;IAEG;AACH;KAAkC,gCAAsB;KAqBtD,sBAAY,OAAkB;SArBhC,iBA0nBC;SArmBa,uBAAkB,GAAlB,YAAkB;SAC5B,iBAAO,CAAC;SArBV;;;;YAIG;SACK,cAAS,GAAmB,EAAE,CAAC;SACvC;;;YAGG;SACK,cAAS,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;SAErB,QAAG,GAAG,CAAC,CAAC;SAEhB;;YAEG;SACH,gBAAW,GAAO,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;SAuR1C,iBAAY,GAAG,UAAC,CAAK;aAC3B,uCAAuC;aACvC,IAAM,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACtC,IAAI,CAAC,GAAG,IAAI,CAAC;aACb,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;iBACtB,KAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACrB,IAAI,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACvC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;iBACzB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI,CAAC,YAAY,CAAC,CAAC;aAClC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC;SACX,CAAC,CAAC;SA7RA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;KAC5E,CAAC;KAED;;;;;;;QAOG;KACH,sCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC;KACjL,CAAC;KAED;;;QAGG;KACH,iCAAU,GAAV;SACE,MAAM,CAAC,EAAE,CAAC;KACZ,CAAC;KAED;;;;QAIG;KACH,kCAAW,GAAX,UAAY,QAAuB;SACjC,IAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACtC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACtB,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,mCAAY,GAAZ,UAAa,GAAiB;SAC5B,IAAM,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;SACxB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACtB,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,oCAAa,GAAb,UAAc,CAAe,EAAE,KAA6B;SAA7B,qBAA6B,GAA7B,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;SAC1D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACnC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,sBAAsB,CAAC,CAAC;SAC1J,IAAM,IAAI,GAAG,IAAI,CAAC;SAClB,gCAAgC;SAChC,CAAC,CAAC,EAAE,CAAC,qBAAqB,EAAE,KAAK,CAAC,WAAW,CAAC;aAC1C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACnC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;SACjB,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;SAC3E,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;KACzB,CAAC;KAES,qCAAc,GAAxB,UAAyB,OAAsB;SAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,cAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC;KAC9D,CAAC;KAED;;;;QAIG;KACH,oCAAa,GAAb,UAAc,OAAqB;SACjC,IAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC1C,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACV,MAAM,CAAC,KAAK,CAAC;SACf,CAAC;SACD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;SACzL,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC5B,OAAO,CAAC,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;SACxC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAC7B,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;SAChF,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;QAEG;KACH,oCAAa,GAAb;SAAA,iBAQC;SAPC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,OAAO;aAC7B,KAAI,CAAC,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;aAChK,OAAO,CAAC,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;aACxC,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAC/B,CAAC,CAAC,CAAC;SACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACpB,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;KAC5E,CAAC;KAED;;;QAGG;KACH,kCAAW,GAAX;SACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAChC,CAAC;KAED;;;QAGG;KACH,qCAAc,GAAd;SACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACnD,CAAC;KAED;;;QAGG;KACH,qCAAc,GAAd,UAAe,OAAqB;SAClC,eAAe;KACjB,CAAC;KAED;;;;QAIG;KACH,mCAAY,GAAZ,UAAa,QAAuB;SAClC,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc;KAC7B,CAAC;KAED;;;;;QAKG;KACH,2BAAI,GAAJ,UAAK,OAAqB,EAAE,IAAsB;SAChD,IAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC5B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,CAAC,CAAC;SACX,CAAC;SACD,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;;;;;QAMG;KACH,6BAAM,GAAN,UAAO,OAAqB,EAAE,KAAY,EAAE,IAAsB;SAChE,IAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC5B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC;SACX,CAAC;SACD,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;;QAGG;KACK,6BAAM,GAAd;SACE,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;KAC9B,CAAC;KAES,mCAAY,GAAtB,UAAuB,GAAQ,EAAE,EAAU,EAAE,IAAuB,EAAE,OAAsB;SAC1F,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAEO,8BAAO,GAAf,UAAgB,IAAuB;SAAvC,iBAQC;SAPC,0CAA0C;SAC1C,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;aACnB,IAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtD,CAAC;SAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC;aAC/B,IAAK,CAAC,QAAQ,GAAG,UAAC,GAAQ,IAAK,YAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAA3B,CAA2B,CAAC;aAC3D,IAAK,CAAC,MAAM,GAAG,UAAC,GAAQ,EAAE,KAAc,IAAK,YAAK,GAAG,KAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAA3D,CAA2D,CAAC;SACjH,CAAC;KACH,CAAC;KACD;;;;QAIG;KACH,6BAAM,GAAN,UAAO,IAAsB;SAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACnB,8BAA8B;SAC9B,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACT,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;SACvC,CAAC;SACD,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;;;QAIG;KACH,4BAAK,GAAL,UAAM,GAAgB;SACpB,IAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAClC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAClC,CAAC;KAED;;;;QAIG;KACH,oCAAa,GAAb,UAAc,IAAQ;SAAtB,iBAWC;SAVC,IAAM,MAAM,GAAG,UAAC,CAAK;aACnB,IAAM,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACtC,IAAI,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACnB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;aAC3B,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;aACrB,CAAC,CAAC,WAAW,CAAC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC,CAAC;aACtC,MAAM,CAAC,CAAC,CAAC;SACX,CAAC,CAAC;SACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACtB,CAAC;KAED;;;;QAIG;KACH,2BAAI,GAAJ,UAAK,YAAmD;SACtD,qBAAqB;SACrB,IAAM,MAAM,GAAG,OAAM,CAAC,YAAY,CAAC,KAAK,QAAQ,GAAG,UAAC,GAAG,IAAK,UAAG,CAAC,EAAE,KAAK,YAAY,EAAvB,CAAuB,GAAG,YAAY,CAAC;SAEnG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;aAC/C,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACvC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACN,MAAM,CAAC,CAAC,CAAC;aACX,CAAC;SACH,CAAC;SACD,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAGD;;;QAGG;KACH,2BAAI,GAAJ;SAAA,iBAMC;SALC,MAAM,CAAC;aACL,GAAG,EAAE,IAAI,CAAC,GAAG;aACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;aAC9C,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,EAAtB,CAAsB,CAAC;UAC5D,CAAC;KACJ,CAAC;KAED;;;;QAIG;KACH,iCAAU,GAAV,UAAW,GAAgB;SACzB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAClC,CAAC;KAED;;;;QAIG;KACH,gCAAS,GAAT,UAAU,IAAQ;SAChB,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;;;QAIG;KACH,kCAAW,GAAX,UAAY,OAAW;SACrB,MAAM,CAAC,OAAO,CAAC;KACjB,CAAC;KAeD,qCAAc,GAAd,UAAe,IAAS;SACtB,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SACpC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SACzC,2BAA2B;SAC3B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,UAAU,EAA7B,CAA6B,CAAC,CAAC,CAAC,CAAC;aACjE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC1D,CAAC;SACD,IAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAA1B,CAA0B,CAAC,CAAC;SAE5D,MAAM,CAAC,OAAO,CAAC;KACjB,CAAC;KAED,8BAAO,GAAP,UAAQ,IAAQ;SAAhB,iBAmCC;SAhCC,WAAW;SACX,IAAI,CAAC,aAAa,EAAE,CAAC;SAErB,mBAAmB;SACnB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;SACzB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;aACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAA7B,CAA6B,CAAC,CAAC;SAC/D,CAAC;SAGD,kBAAkB;SAClB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;aAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,CAAC;iBACtB,IAAI,OAAO,GAAG,KAAI,CAAC,YAAY,EAAE,CAAC;iBAClC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI,CAAC,YAAY,CAAC,CAAC;iBACtC,2BAA2B;iBAC3B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,UAAU,EAA7B,CAA6B,CAAC,CAAC,CAAC,CAAC;qBACjE,OAAO,CAAC,MAAM,CAAC,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC1D,CAAC;iBACD,KAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;aAC9B,CAAC,CAAC,CAAC;SACL,CAAC;SACD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;iBACnC,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;aACvC,CAAC,CAAC,CAAC;SACL,CAAC;SACD,gBAAgB;SAChB,IAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,CAAC;aACvB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAA1B,CAA0B,CAAC,CAAC;SACxD,CAAC,CAAC,CAAC;KACL,CAAC;KAED,+BAAQ,GAAR,UAAS,GAAU;SACjB,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED;;QAEG;KACH,oCAAa,GAAb;SAAA,iBAWC;SAVC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;aAC9B,iCAAiC;aACjC,MAAM,CAAC;SACT,CAAC;SACD,IAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;SAC7B,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,UAAC,GAAG;aAC5B,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBACxB,KAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACpB,CAAC;SACH,CAAC,CAAC,CAAC;KACL,CAAC;KAED;;;QAGG;KACK,oCAAa,GAArB,UAAsB,MAAY;SAAlC,iBAgDC;SA/CC,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SACpC,OAAO,CAAC,KAAK,EAAE,CAAC;SAChB,IAAM,KAAK,GAAG,UAAC,MAAM;aACnB,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;iBAC3B,MAAM,CAAC,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;aAC7C,CAAC;aACD,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC;iBAChC,MAAM,CAAC,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;aAClD,CAAC;aACD,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;iBAC9B,IAAI,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;iBACvE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;iBACxB,MAAM,CAAC,CAAC,CAAC;aACX,CAAC;aACD,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;iBAC9B,sBAAsB;iBACtB,IAAI,GAAC,GAAsB,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC;iBAC1F,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;qBAClC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;qBACnB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yBACN,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACZ,CAAC;iBACH,CAAC,CAAC,CAAC;iBACH,MAAM,CAAC,GAAC,CAAC;aACX,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,IAAI,GAAG,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;iBACxC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACT,IAAI,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;qBAC1B,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;qBACzD,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;qBACxB,MAAM,CAAC,CAAC,CAAC;iBACX,CAAC;aACH,CAAC;aACD,MAAM,CAAC,IAAI,CAAC;SACd,CAAC,CAAC;SACF,MAAM,CAAC,OAAO,CAAC,UAAC,MAAM;aACpB,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;aAC1B,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iBACR,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACpB,CAAC;SACH,CAAC,CAAC,CAAC;SACH,2BAA2B;SAC3B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,UAAU,EAA7B,CAA6B,CAAC,CAAC,CAAC,CAAC;aACjE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACzD,CAAC;SACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC5B,MAAM,CAAC,OAAO,CAAC;KACjB,CAAC;KAED;;;;QAIG;KACH,2BAAI,GAAJ,UAAK,OAAqB;SACxB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC3C,CAAC;KAED;;;;QAIG;KACH,2BAAI,GAAJ,UAAK,OAAgB;SACnB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC3C,CAAC;KAED;;;;QAIG;KACH,oCAAa,GAAb,UAAc,GAAgB;SAC5B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC3C,CAAC;KAED;;;;QAIG;KACH,4BAAK,GAAL,UAAM,OAAgB;SACpB,MAAM,CAAC;aACL,KAAK,EAAE,UAAC,GAAuB,IAAK,cAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAjC,CAAiC;aACrE,IAAI,EAAE,UAAC,GAA4B,IAAK,cAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAjC,CAAiC;UAC1E,CAAC;KACJ,CAAC;KAED;;;;;QAKG;KACH,6BAAM,GAAN,UAAO,GAAO,EAAE,CAAQ;SACtB,MAAM,CAAC,OAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACrE,CAAC;KAGD;;;;QAIG;KACH,iCAAU,GAAV,UAAW,KAAY;SACrB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3C,CAAC;KAED;;;QAGG;KACH,6BAAM,GAAN,UAAO,KAAY;SACjB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SAClC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;KACrE,CAAC;KAED;;;;QAIG;KACH,mCAAY,GAAZ,UAAa,MAAoB,EAAE,GAAgB;SACjD,gCAAgC;KAClC,CAAC;KAED;;;;QAIG;KACH,gCAAS,GAAT,UAAU,OAAgB,EAAE,eAAuB;SAAnD,iBAKC;SAL2B,+BAAuB,GAAvB,uBAAuB;SACjD,OAAO,CAAC,OAAO,CAAC,UAAC,KAAK;aACpB,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACpC,CAAC,CAAC,CAAC;SACH,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC;KACtF,CAAC;KAED;;;;QAIG;KACH,mCAAY,GAAZ,UAAa,OAAgB,EAAE,eAAuB;SAAtD,iBAMC;SAN8B,+BAAuB,GAAvB,uBAAuB;SACpD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAA7B,CAA6B,CAAC,CAAC,CAAC,CAAC;aACpG,MAAM,CAAC,CAAC,WAAW;SACrB,CAAC;SACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;SAC1B,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;KAC3C,CAAC;KAED;;;;;QAKG;KACH,sCAAe,GAAf,UAAgB,KAAY,EAAE,UAAkB;SAAlB,0BAAkB,GAAlB,kBAAkB;SAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;iBACf,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACvB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,CAAC,cAAc,EAAE,CAAC;aACxB,CAAC;aACD,MAAM,CAAC,KAAK,CAAC;SACf,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;iBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACrB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7B,CAAC;aACD,MAAM,CAAC,IAAI,CAAC;SACd,CAAC;KACH,CAAC;KACD;;;QAGG;KACH,+BAAQ,GAAR,UAAS,KAAY;SACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACrC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;KACrE,CAAC;KAED;;;QAGG;KACH,mCAAY,GAAZ;SACE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC7B,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;KACxC,CAAC;KAED;;;QAGG;KACH,mCAAY,GAAZ;SACE,IAAI,OAAO,GAAG,EAAE,CAAC;SACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,cAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,CAAC;SAChD,OAAO,CAAC,IAAI,EAAE,CAAC;SACf,MAAM,CAAC,OAAO,CAAC;KACjB,CAAC;KAED;;QAEG;KACH,qCAAc,GAAd;SACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;KAC3C,CAAC;KAED;;;;;QAKG;KACH,kCAAW,GAAX,UAAY,OAAsB,EAAE,OAA6B;SAA7B,uBAA6B,GAA7B,YAA6B;SAC/D,IAAM,EAAE,GAAmB;aACzB,SAAS,EAAG,IAAI;aAChB,OAAO,EAAE,IAAI;aACb,MAAM,EAAE,IAAI;aACZ,KAAK,EAAE,KAAK;aACZ,SAAS,EAAE,GAAG;aACd,MAAM,EAAE,UAAC,CAAC,IAAK,QAAC,aAAa,CAAC,CAAC,CAAC,EAAjB,CAAiB;UACjC,CAAC;SACF,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;SACnC,8BAA8B;SAC9B,eAAe,CAAS,EAAE,CAAgB;aACxC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACjD,MAAM,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;aACzC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC;SACX,CAAC;SACD,IAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,SAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAjB,CAAiB,CAAC,CAAC;SACrE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;aAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;aACX,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;iBACd,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,YAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAd,CAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;aAChE,CAAC;aACD,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG;iBACf,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,YAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAxB,CAAwB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;aAC1E,CAAC,CAAC,CAAC;aACH,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;SAC5B,CAAC,CAAC,CAAC;KACL,CAAC;KAEH,mBAAC;AAAD,EAAC,CA1nBiC,KAAK,CAAC,gBAAgB,GA0nBvD;AA1nBY,qBAAY,eA0nBxB;AAED;;IAEG;AACH;KAAwC,sCAAY;KAKlD,4BAAoB,OAAgC,EAAE,OAAiB;SALzE,iBA8DC;SAzDa,uBAAwC,GAAxC,YAAwC;SAAE,uBAAiB,GAAjB,YAAiB;SACrE,kBAAM,OAAO,CAAC,CAAC;SADG,YAAO,GAAP,OAAO,CAAyB;SAJ5C,iBAAY,GAAG,CAAC,CAAC;SACzB,mCAAmC;SAC3B,cAAS,GAAG,UAAC,GAAO,EAAE,EAAS,EAAE,IAAQ,IAAK,UAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAhB,CAAgB,CAAC;SAIrE,uBAAuB;SACvB,OAAO,CAAC,OAAO,CAAC,UAAC,CAAK;aACpB,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,KAAI,CAAC,SAAS,CAAC;aAC1C,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;SAChC,CAAC,CAAC,CAAC;KACL,CAAC;KAED,4CAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;KACrD,CAAC;KAED;;;QAGG;KACH,qCAAQ,GAAR,UAAS,MAAwB;SAC/B,IAAI,CAAC,GAAO,MAAM,CAAC;SACnB,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;SAC1C,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;SACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;KAC1B,CAAC;KAED,uCAAU,GAAV;SACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KAC9B,CAAC;KAED,qCAAQ,GAAR,UAAS,GAAU;SACjB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAM,CAAE,CAAC,MAAM,KAAK,GAAG,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;KAChE,CAAC;KAED;;;;QAIG;KACH,sCAAS,GAAT,UAAU,IAAQ;SAChB,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;KAC5D,CAAC;KAED,wCAAW,GAAX,UAAY,OAAW;SACrB,EAAE,CAAC,CAAC,OAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;aACjC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAC,CAAK,IAAK,QAAC,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,OAAO,EAAnC,CAAmC,CAAC,CAAE,CAAC,CAAC,CAAC;SACjF,CAAC;SACD,MAAM,CAAC,OAAO,CAAC;KACjB,CAAC;KAED,oCAAO,GAAP,UAAQ,IAAQ;SACd,gBAAK,CAAC,OAAO,YAAC,IAAI,CAAC,CAAC;SACpB,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAlB,CAAkB,CAAC,CAAC;KAChF,CAAC;KAED,0CAAa,GAAb;SACE,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;KACxC,CAAC;KACH,yBAAC;AAAD,EAAC,CA9DuC,YAAY,GA8DnD;AA9DY,2BAAkB,qBA8D9B;AACD;;IAEG;AACH;KAAuC,qCAAkB;KAevD,2BAAmB,IAAU,EAAE,OAAgC,EAAE,OAAY;SAA9C,uBAAgC,GAAhC,YAAgC;SAAE,uBAAY,GAAZ,YAAY;SAC3E,kBAAM,OAAO,EAAE,OAAO,CAAC,CAAC;SADP,SAAI,GAAJ,IAAI,CAAM;SAdrB,YAAO,GAAG;aAChB;;gBAEG;aACH,cAAc,EAAE,KAAK;aAErB;;gBAEG;aACH,kBAAkB,EAAE,IAAI;UACzB,CAAC;SAMA,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACnC,4DAA4D;SAC5D,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;aACjB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SACf,CAAC,CAAC,CAAC;SAEH,IAAM,IAAI,GAAG,IAAI,CAAC;SAClB,IAAI,CAAC,UAAU,GAAG;aAChB,sDAAsD;aACtD,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;aAC1B,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAC,CAAC;iBAC3B,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;qBAClB,CAAC,CAAC,UAAU,EAAE,CAAC;iBACjB,CAAC;aACH,CAAC,CAAC,CAAC;SACL,CAAC,CAAC;KACJ,CAAC;KAED;;;QAGG;KACH,mCAAO,GAAP,UAAQ,IAAW;SACjB,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;aACjB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SACf,CAAC,CAAC,CAAC;SAEH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB,IAAI,CAAC,UAAU,EAAE,CAAC;KACpB,CAAC;KAED,qCAAS,GAAT;SACE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KACnB,CAAC;KAED;;;QAGG;KACH,sCAAU,GAAV,UAAW,IAAW;SACpB,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;aACjB,CAAC,CAAC,MAAM,GAAG,CAAC,GAAC,CAAC,CAAC;SACjB,CAAC,CAAC,CAAC;SACH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACtC,IAAI,CAAC,UAAU,EAAE,CAAC;KACpB,CAAC;KAES,wCAAY,GAAtB,UAAuB,GAAQ,EAAE,EAAU,EAAE,IAAuB,EAAE,OAAsB;SAC1F,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;KAC9C,CAAC;KAED,wCAAY,GAAZ,UAAa,QAAuB;SAApC,iBAuBC;SAtBC,IAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;SAEhC,IAAM,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAEnC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;aACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG;iBACpB,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC;iBACtB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACzB,CAAC,CAAC,CAAC;aACH,qBAAqB;aACrB,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK;iBAC9B,KAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;aAC9B,CAAC,CAAC,CAAC;SACL,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;SACjD,CAAC;SAED,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;aAChC,IAAI,CAAC,EAAE,CAAC,0BAA0B,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SACvD,CAAC;SAED,MAAM,CAAC,IAAI,CAAC;KACd,CAAC;KAED,0CAAc,GAAd,UAAe,OAAqB;SAClC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;aAChC,OAAO,CAAC,EAAE,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;SAC/C,CAAC;SACD,+BAA+B;SAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,cAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAA9B,CAA8B,CAAC,CAAC;KAC3D,CAAC;KAED,gCAAI,GAAJ,UAAK,OAAqB;SACxB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC7B,CAAC;SACD,8CAA8C;SAC9C,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,CAAC,EAApD,CAAoD,CAAC,CAAC;SAE3F,gCAAgC;SAChC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;aAChC,IAAI,UAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,UAAU,EAAE,EAAd,CAAc,CAAC,CAAC;aAChE,EAAE,CAAC,CAAC,UAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;iBACxB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,iBAAQ,CAAC,KAAK,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAf,CAAe,CAAC,EAAtC,CAAsC,CAAC,CAAC;aACxE,CAAC;SACH,CAAC;SAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aAChC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,cAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC;SACvD,CAAC;SAED,4BAA4B;SAC5B,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAhC,CAAgC,CAAC,CAAC;SAExD,+EAA+E;SAC/E,IAAI,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACb,CAAC,CAAC,CAAC;SAEH,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KAClC,CAAC;KAED,gCAAI,GAAJ,UAAK,OAAgB;SAArB,iBASC;SARC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC7B,CAAC;SACD,wBAAwB;SACxB,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,IAAE,CAAC,IAAI,CAAC,GAAC,CAAC,EAAX,CAAW,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,YAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAhB,CAAgB,CAAC,CAAC;SAEhF,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAChC,CAAC;KAED;;;;QAIG;KACH,iCAAK,GAAL,UAAM,OAAgB;SAAtB,iBAQC;SAPC,IAAI,CAAC,GAAkB,IAAI,CAAC;SAC5B,IAAM,IAAI,GAAE,cAAM,QAAC,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAzC,CAAyC,CAAC;SAE5D,MAAM,CAAC;aACL,KAAK,EAAE,UAAC,GAAuB,IAAK,WAAI,EAAE,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,mBAAY,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAnD,CAAmD,CAAC,EAA1E,CAA0E;aAC9G,IAAI,EAAE,UAAC,GAA4B,IAAK,WAAI,EAAE,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,kBAAW,CAAC,IAAI,EAAE,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,EAA9D,CAA8D,CAAC,EAArF,CAAqF;UAC9H,CAAC;KACJ,CAAC;KAGD,yCAAa,GAAb,UAAc,GAAsB;SAApC,iBAgBC;SAfC,IAAM,UAAU,GAAG,GAAG,CAAC,CAAC,0BAA0B;SAClD,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACnE,CAAC;SACD,8BAA8B;SAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;SACjB,GAAG,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;aACnC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;aACxC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;iBAC/B,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;aACtC,CAAC;aACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAClB,CAAC;SACD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,WAAW,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAA7B,CAA6B,CAAC,CAAC,CAAC;KAC5E,CAAC;KAED,wCAAY,GAAZ,UAAa,MAAoB,EAAE,GAAgB;SACjD,yBAAyB;SACzB,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC;SACpE,IAAM,CAAC,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,UAAC,CAAQ,IAAK,QAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAU,MAAO,CAAC,IAAI,CAAC,EAA9C,CAA8C,GAAY,MAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACzI,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAC,GAAG;aACnC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;SAC9B,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,UAAG,CAAC,MAAM,EAAV,CAAU,CAAC,CAAC;SAC5B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;KAC9D,CAAC;KAEH,wBAAC;AAAD,EAAC,CA7LsC,kBAAkB,GA6LxD;AA7LY,0BAAiB,oBA6L7B;AA6BD;;IAEG;AACH;KAAwC,sCAAkB;KAQxD,4BAAoB,MAAkB,EAAE,OAAgC,EAAE,OAAiB;SAAnD,uBAAgC,GAAhC,YAAgC;SAAE,uBAAiB,GAAjB,YAAiB;SACzF,kBAAM,OAAO,EAAE,OAAO,CAAC,CAAC;SADN,WAAM,GAAN,MAAM,CAAY;SANtC;;;YAGG;SACK,UAAK,GAAO,EAAE,CAAC;KAIvB,CAAC;KAES,yCAAY,GAAtB,UAAuB,GAAQ,EAAE,EAAU,EAAE,IAAuB,EAAE,OAAsB;SAC1F,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACjD,CAAC;KAED,yCAAY,GAAZ,UAAa,QAAuB;SAClC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;SAC9B,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;aACb,kBAAkB;aAClB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC3C,CAAC;SACD,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;SAE5C,MAAM,CAAC,CAAC,CAAC;KACX,CAAC;KAED,2CAAc,GAAd,UAAe,OAAqB;SAClC,+BAA+B;SAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KAChC,CAAC;KAED,iCAAI,GAAJ,UAAK,OAAqB;SAA1B,iBASC;SARC,wCAAwC;SACxC,IAAI,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,UAAC,IAAI,IAAK,WAAI,CAAC,MAAM,EAAX,CAAW,CAAC,CAAC;SACxD,6BAA6B;SAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,OAAO;aACzC,kBAAkB;aAClB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;aACjC,MAAM,CAAC,OAAO,CAAC;SACjB,CAAC,CAAC,CAAC;KACL,CAAC;KAED,iCAAI,GAAJ,UAAK,OAAgB;SACnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;aACzC,6BAA6B;aAC7B,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAArB,CAAqB,CAAC,CAAC;aAC9C,MAAM,CAAC,IAAI,CAAC;SACd,CAAC,CAAC,CAAC;KACL,CAAC;KAED,0CAAa,GAAb,UAAc,GAAgB;SAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAO,GAAG,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC;KAC3D,CAAC;KAED,yCAAY,GAAZ,UAAa,MAAoB,EAAE,GAAgB;SAAnD,iBAIC;SAHC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAQ,GAAG,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,OAAO;aAC9D,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;SAC7B,CAAC,CAAC,CAAC;KACL,CAAC;KACH,yBAAC;AAAD,EAAC,CA7DuC,kBAAkB,GA6DzD;AA7DY,2BAAkB,qBA6D9B;;;;;;;ACnkCD;;IAEG;;;;;;;AAEH,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAgHlC;;IAEG;AACH;KAAA;SACE;;;YAGG;SACH,cAAS,GAAG,MAAM,CAAC;SACnB;;;YAGG;SACH,UAAK,GAAU,MAAM,CAAC;KA+ExB,CAAC;KA7EC,oCAAM,GAAN,UAAO,IAAsB,EAAE,GAAgB,EAAE,IAAU,EAAE,OAAsB;SACjF,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAE3F,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAChC,OAAO,EAAE,IAAI,CAAC,SAAS;aACvB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG;aAClE,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAApB,CAAoB;UAClC,CAAC,CAAC;SAEH,IAAI,cAAc,GAAG,CAAC,CAAC;SACvB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC;aAC3B,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;SACtC,CAAC;SAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;aACnC,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC;SACxC,CAAC;SAED,KAAK,CAAC,IAAI,CAAC;aACT,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,EAAjC,CAAiC;aAC9C,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;UAC1B,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;SAEhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aAC3B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;UAC9B,CAAC,CAAC;SAEH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KACxB,CAAC;KAED;;;;;QAKG;KACH,qCAAO,GAAP,UAAQ,IAAsB,EAAE,KAAY;SAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,eAAe,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;KACnF,CAAC;KAED,wCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SACxH,IAAI,OAAO,GAAS,IAAI,CAAC,IAAI,EAAE,CAAC;SAChC,wBAAwB;SACxB,IAAI,CAAC,GAAS,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;SAC/C,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SACzB,CAAC;KACH,CAAC;KAED,wCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SACxH,IAAI,OAAO,GAAS,IAAI,CAAC,IAAI,EAAE,CAAC;SAChC,IAAI,OAAO,GAAS,IAAI,CAAC,IAAI,EAAE,CAAC;SAChC,WAAW;SACX,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,IAAG,OAAO,CAAC,CAAC,CAAC;aACtC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SAC1C,CAAC;SACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;KAC/B,CAAC;KAED,0CAAY,GAAZ,UAAa,GAA4B,EAAE,GAAgB,EAAE,IAAU,EAAE,OAAsB;SAA/F,iBAeC;SAdC,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;SAC3B,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG,EAAE,CAAC;aAClB,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,IAAI,cAAc,GAAG,CAAC,CAAC;aACvB,EAAE,CAAC,CAAC,KAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC;iBAC3B,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;aACtC,CAAC;aAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;iBACnC,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC;aACxC,CAAC;aACD,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;aAC5C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxD,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KAED,8CAAgB,GAAhB,UAAiB,GAA4B,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAC5G,MAAM;KACR,CAAC;KACH,0BAAC;AAAD,EAAC;AAzFY,4BAAmB,sBAyF/B;AAED;;IAEG;AACH;KAAkC,uCAAmB;KACnD,6BAAY,UAAc;SAD5B,iBAQC;SANG,iBAAO,CAAC;SACR,mCAAmC;SACnC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;aAClC,KAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9B,CAAC,CAAC,CAAC;KACL,CAAC;KACH,0BAAC;AAAD,EAAC,CARiC,mBAAmB,GAQpD;AAED;;IAEG;AACH;KAAqC,mCAAmB;KAAxD;SAAqC,8BAAmB;SACtD;;;YAGG;SACO,gBAAW,GAAG,KAAK,CAAC;KAqHhC,CAAC;KAnHC,gCAAM,GAAN,UAAO,IAAsB,EAAE,GAAsB,EAAE,IAAU,EAAE,OAAsB;SAAzF,iBAoDC;SAnDC,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;SAChF,aAAa;SACb,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAEzE,IAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;SAChD,IAAM,UAAU,GAAG,UAAC,MAA+B,EAAE,KAAa,EAAE,OAAiC;aAClG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;iBAC1B,OAAO,EAAE,KAAK;iBACd,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;iBAC7B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,EAA9B,CAA8B;iBAC3C,KAAK,EAAE,UAAC,CAAC;qBACP,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;qBACzC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAC1B,CAAC;cACF,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;aAE5B,OAAO,CAAC,IAAI,CAAC;iBACX,MAAM,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAA1D,CAA0D;cAC7E,CAAC,CAAC;aAEH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;iBAC7B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;iBAC7B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,EAAlD,CAAkD;iBAC/D,KAAK,EAAE,UAAC,CAAC;qBACP,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;qBACzC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAC1B,CAAC;cACF,CAAC,CAAC,KAAK,CAAC;iBACP,IAAI,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,YAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAvB,CAAuB;cACxC,CAAC,CAAC;SACL,CAAC,CAAC;SAEF,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;aAChB,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACjF,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;aAC5D,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;iBAC9B,OAAO,EAAE,QAAQ;iBACjB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG;cACnE,CAAC,CAAC;aAEH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;kBAC9D,IAAI,CAAC,WAAW,EAAE,UAAC,CAAC,EAAC,CAAC,IAAK,mBAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAA9D,CAA8D,CAAC,CAAC;SAClG,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC1D,CAAC;SAED,KAAK,CAAC,IAAI,CAAC;aACT,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;UAC1B,CAAC,CAAC;SAEH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KACxB,CAAC;KAED;;;;;;QAMG;KACH,iCAAO,GAAP,UAAQ,CAAK,EAAE,CAAQ,EAAE,GAAgB;SACvC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;KACnB,CAAC;KAED,iCAAO,GAAP,UAAQ,IAAsB,EAAE,KAAY;SAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;KAC5D,CAAC;KAED,oCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SACxH,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;SAChF,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,gBAAK,CAAC,UAAU,YAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;SAChE,CAAC;SACD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACxC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACrB,8BAA8B;aACvB,IAAI,CAAC,IAAI,EAAG,CAAC,WAAW,CAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACxD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;iBAC9C,OAAO,EAAE,QAAQ;iBACjB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG;iBAClE,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG;cAClF,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;SAClC,CAAC;KACH,CAAC;KAED,sCAAY,GAAZ,UAAa,GAA4B,EAAE,GAAsB,EAAE,IAAU,EAAE,OAAsB;SAArG,iBAkBC;SAjBC,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;SAChF,IAAM,OAAO,GAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;SAC/C,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;aACrC,IAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC3C,IAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAC3B,IAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;aAC7C,GAAG,CAAC,SAAS,GAAG,KAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;aACnF,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aAEzB,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;iBAChB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;aAChE,CAAC;SACH,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KAED,0CAAgB,GAAhB,UAAiB,GAA4B,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAC5G,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;SAChF,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC;SACT,CAAC;SACD,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5F,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KACH,sBAAC;AAAD,EAAC,CA1HoC,mBAAmB,GA0HvD;AA1HY,wBAAe,kBA0H3B;AAED;;IAEG;AACH;KAAyC,uCAAmB;KAA5D;SAAyC,8BAAmB;KA+E5D,CAAC;KA7EC,oCAAM,GAAN,UAAO,IAAsB,EAAE,GAAsB,EAAE,IAAU,EAAE,OAAsB;SAAzF,iBAuBC;SAtBC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAEjF,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAChC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,QAAQ;aAC9B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;aAC7B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,EAAtD,CAAsD;aACnE,KAAK,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAA1D,CAA0D;UAC5E,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;SAE5B,KAAK,CAAC,IAAI,CAAC;aACT,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;aACzB,KAAK,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAA1D,CAA0D;aAC3E,MAAM,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAA1D,CAA0D;UAC7E,CAAC,CAAC;SAEH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aAC3B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;aAC7B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,EAAlD,CAAkD;UAChE,CAAC,CAAC,KAAK,CAAC;aACP,IAAI,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,YAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAvB,CAAuB;UACxC,CAAC,CAAC;SACH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KACxB,CAAC;KAED;;;;;;QAMG;KACH,qCAAO,GAAP,UAAQ,CAAK,EAAE,CAAQ,EAAE,GAAgB;SACvC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACxB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACb,CAAC,GAAG,CAAC,CAAC;SACR,CAAC;SACD,yCAAyC;SACzC,IAAI,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SAC5D,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;SACZ,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;KAC1B,CAAC;KAED,qCAAO,GAAP,UAAQ,IAAsB,EAAE,KAAY;SAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;KACpE,CAAC;KAED,wCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SACxH,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACxC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACrB,8BAA8B;aACvB,IAAI,CAAC,IAAI,EAAG,CAAC,WAAW,CAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACxD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;iBAC9C,OAAO,EAAE,QAAQ;iBACjB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG;iBAClE,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG;cAClF,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;SAClC,CAAC;KACH,CAAC;KAED,0CAAY,GAAZ,UAAa,GAA4B,EAAE,GAAsB,EAAE,IAAU,EAAE,OAAsB;SAArG,iBAUC;SATC,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;aAC7D,IAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;aACrE,GAAG,CAAC,SAAS,GAAG,KAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;aACxC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC3B,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KAED,8CAAgB,GAAhB,UAAiB,GAA4B,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAC5G,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5F,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KACH,0BAAC;AAAD,EAAC,CA/EwC,mBAAmB,GA+E3D;AA/EY,4BAAmB,sBA+E/B;AAED;;IAEG;AACH;KAAqC,0CAAe;KAClD,gCAAY,UAAc;SAD5B,iBAOC;SALG,iBAAO,CAAC;SACR,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;aAClC,KAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9B,CAAC,CAAC,CAAC;KACL,CAAC;KACH,6BAAC;AAAD,EAAC,CAPoC,eAAe,GAOnD;AAED;;IAEG;AACH;KAAA;KA4BA,CAAC;KA3BC,mCAAM,GAAN,UAAO,IAAsB,EAAE,GAAgB,EAAE,IAAU,EAAE,OAAsB;SACjF,kCAAkC;KACpC,CAAC;KAED,uCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SACxH,8BAA8B;SAC9B,IAAI,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAC5C,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aACtC,OAAO,EAAE,YAAY;aACrB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;aACvB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;aAC3B,YAAY,EAAE,KAAK;UACpB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;cAC7B,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC;cACnB,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC;cAC5B,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;aACb,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;aAC1B,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;aAC3B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAChB,CAAC,CAAC,CAAC;KACP,CAAC;KAED,uCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAgB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SACxH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;KAC/B,CAAC;KAEH,yBAAC;AAAD,EAAC;AA5BY,2BAAkB,qBA4B9B;AAED;KAA2C,yCAAmB;KAE5D;SACE,iBAAO,CAAC;SACR,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;KAC/B,CAAC;KAED,sCAAM,GAAN,UAAO,IAAsB,EAAE,GAAyB,EAAE,IAAU,EAAE,OAAsB;SAC1F,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAE3F,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAChC,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK;aAC/B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAApB,CAAoB;UAClC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aACxB,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;aAC1B,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;aAC3B,IAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aAChC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;SAC5D,CAAC,CAAC,CAAC;SAEH,KAAK,CAAC,IAAI,CAAC;aACT,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;aAC7B,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;UAC1B,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,QAAQ,GAAG,QAAQ,EAA9C,CAA8C,CAAC,CAAC;SAE/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aAC3B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;UAC9B,CAAC,CAAC;SAEH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KACxB,CAAC;KAED,4CAAY,GAAZ,UAAa,GAA4B,EAAE,GAAyB,EAAE,IAAU,EAAE,OAAsB;SACtG,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC;SACzB,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACrE,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KACH,4BAAC;AAAD,EAAC,CA1C0C,mBAAmB,GA0C7D;AA1CY,8BAAqB,wBA0CjC;AAED;;IAEG;AACH;KAAmC,wCAAmB;KAAtD;SAAmC,8BAAmB;KA+BtD,CAAC;KA9BC,yCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAwB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAChI,mCAAmC;SACnC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;SAClD,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;aAChC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;aAC3B,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;aAC/B,YAAY,EAAE,KAAK;aACnB,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE;aACrB,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;UACjC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;aAC5B,IAAI,EAAE,MAAM;aACZ,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;UACzB,CAAC,CAAC,KAAK,CAAC;aACP,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI;UAC7B,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE;aACd,kBAAkB;aAClB,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;aACtB,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAC1B,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,cAAM,SAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAA1B,CAA0B,CAAC,CAAC;KACnD,CAAC;KAED,yCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,GAAwB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAChI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SAChD,IAAI,IAAI,GAAqB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;SACzD,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACT,2EAA2E;aAC3E,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC,CAAC;SACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;KAC/B,CAAC;KACH,2BAAC;AAAD,EAAC,CA/BkC,mBAAmB,GA+BrD;AAED,KAAI,uBAAuB,GAAG,IAAI,mBAAmB,EAAE,CAAC;AACxD,KAAI,mBAAmB,GAAG,IAAI,eAAe,EAAE,CAAC;AAEhD;;;;IAIG;AACH,0BAAgC,UAAe;KAC7C,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;SAChB,MAAM,CAAC,uBAAuB,CAAC;KACjC,CAAC;KACD,MAAM,CAAC,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAC7C,EAAC;AALe,wBAAe,kBAK9B;AAED;;;;IAIG;AACH,sBAA4B,UAAe;KACzC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;SAChB,MAAM,CAAC,mBAAmB,CAAC;KAC7B,CAAC;KACD,MAAM,CAAC,IAAI,sBAAsB,CAAC,UAAU,CAAC,CAAC;AAChD,EAAC;AALe,oBAAW,cAK1B;AAED;;IAEG;AACH;KAA+B,oCAAmB;KAAlD;SAA+B,8BAAmB;KAyBlD,CAAC;KAxBC,iCAAM,GAAN,UAAO,IAAsB,EAAE,GAAoB,EAAE,IAAU,EAAE,OAAsB;SACrF,0CAA0C;SAC1C,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAC9E,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAChC,OAAO,EAAE,WAAW;aACpB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG;aAClE,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAApB,CAAoB;UAClC,CAAC,CAAC;SAEH,KAAK,CAAC,IAAI,CAAC;aACT,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;aAC7B,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;UAC1B,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,oCAA+B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,6BAAqB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAA1H,CAA0H,CAAC,CAAC;SAE3I,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aAC3B,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhB,CAAgB;UAC9B,CAAC,CAAC;SAEH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KACxB,CAAC;KAED,kCAAO,GAAP,UAAQ,IAAsB,EAAE,KAAY;SAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;KACjE,CAAC;KACH,uBAAC;AAAD,EAAC,CAzB8B,mBAAmB,GAyBjD;AAGD;;IAEG;AACH;KAAiC,sCAAmB;KAApD;SAAiC,8BAAmB;KAMpD,CAAC;KALC,mCAAM,GAAN,UAAO,IAAsB,EAAE,GAAsB,EAAE,IAAU,EAAE,OAAsB;SACvF,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC;SAC3B,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;SAChF,MAAM,CAAC,gBAAK,CAAC,MAAM,YAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;KAChD,CAAC;KACH,yBAAC;AAAD,EAAC,CANgC,mBAAmB,GAMnD;AAED;;IAEG;AACH;KAAkC,uCAAmB;KAArD;SAAkC,8BAAmB;SACnD,cAAS,GAAG,KAAK,CAAC;KAsDpB,CAAC;KApDC,oCAAM,GAAN,UAAO,IAAsB,EAAE,GAA2B,EAAE,IAAU,EAAE,OAAsB;SAC5F,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAExF,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;aAC/C,OAAO,EAAE,IAAI,CAAC,SAAS;aACvB,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;aACzB,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,EAAlE,CAAkE;UACxF,CAAC,CAAC;SACH,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAC9B,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG;aAClE,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAApB,CAAoB;UAClC,CAAC,CAAC;SACH,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAC9B,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;UACnC,CAAC,CAAC;SACH,KAAK,CAAC,IAAI,CAAC;aACT,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;aACzB,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAA9D,CAA8D;UACpF,CAAC,CAAC;SACH,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aACxB,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAApB,CAAoB;UAClC,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;SAChC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;aACzB,IAAI,EAAE,UAAC,CAAC,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe;UAC7B,CAAC,CAAC,IAAI,CAAC;aACN,MAAM,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,WAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAvE,CAAuE;aACzF,KAAK,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,WAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAvE,CAAuE;UACzF,CAAC,CAAC;SAEH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aAC3B,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAA9D,CAA8D;UACpF,CAAC,CAAC;SAGH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KACxB,CAAC;KAED,qCAAO,GAAP,UAAQ,IAAsB,EAAE,KAAY;SAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,eAAe,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;KAChF,CAAC;KAED,0CAAY,GAAZ,UAAa,GAA4B,EAAE,GAA2B,EAAE,IAAU,EAAE,OAAsB;SACxG,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;aAChB,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,IAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;aACxB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC3D,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAChC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACvM,CAAC,CAAC,CAAC;KACL,CAAC;KACH,0BAAC;AAAD,EAAC,CAvDiC,mBAAmB,GAuDpD;AAED;;IAEG;AACH;KAAgC,qCAAmB;KACjD,2BAAoB,eAAsB;SAA9B,+BAA8B,GAA9B,sBAA8B;SACxC,iBAAO,CAAC;SADU,oBAAe,GAAf,eAAe,CAAO;KAE1C,CAAC;KAED,sCAAU,GAAV,UAAW,KAAuB,EAAE,GAAqB,EAAE,OAAsB,EAAE,QAAwG,EAAE,SAA+B,EAAE,QAAe;SAAf,wBAAe,GAAf,eAAe;SAC3O,IAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAC7B,QAAQ,GAAG,GAAG,CAAC,QAAQ,EACvB,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SAC7D,IAAI,MAAM,GAAG,CAAC,EACZ,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC;aACtB,IAAI,CAAC,GAAG,MAAM,CAAC;aACf,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;aACvB,MAAM,IAAI,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aAC9D,MAAM,CAAC,CAAC,CAAC;SACX,CAAC,CAAC,CAAC;SACL,IAAM,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;SAEjE,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;SAC5B,IAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;SACnC,OAAO,CAAC,MAAM,GAAG,UAAC,MAAM,EAAE,QAAQ;aAChC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aACtC,MAAM,CAAC,MAAM,KAAK,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;SAC/C,CAAC,CAAC;SAEF,gCAAgC;SAChC,IAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;SACjF,6BAA6B;SAC7B,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;aACjC,OAAO,EAAE,SAAS;aAClB,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,EAAhC,CAAgC;UACtD,CAAC,CAAC;SACH,qCAAqC;SACrC,SAAS,CAAC,IAAI,CAAC;aACb,OAAO,EAAE,UAAC,CAAC,IAAK,gBAAS,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAA7B,CAA6B;aAC7C,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;UAC1B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;aACpB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBACZ,IAAM,aAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACzC,6FAA6F;iBAC7F,OAAO,CAAC,KAAK,GAAG,UAAC,KAAK;qBACpB,6DAA6D;qBAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,aAAW,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,WAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAhE,CAAgE,EAAE,CAAC,CAAC,CAAC;iBACjI,CAAC,CAAC;aACJ,CAAC;aACD,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;SAC3C,CAAC,CAAC,CAAC;SACH,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC;aACxD,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,EAAhC,CAAgC;UACtD,CAAC,CAAC;SACH,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SAE1B,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;KAC/B,CAAC;KAED,kCAAM,GAAN,UAAO,IAAsB,EAAE,KAAuB,EAAE,IAAU,EAAE,OAAsB;SACxF,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,UAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ;aAC7D,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;SAC/C,CAAC,EAAE,UAAC,KAAK,IAAK,WAAI,CAAC,KAAK,CAAC,EAAX,CAAW,CAAC,CAAC;KAC7B,CAAC;KAED,sCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,KAAuB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAC/H,IAAI,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;SAC/D,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,UAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ;aAC7D,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,GAAG,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;aACxE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACpB,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC/E,CAAC;SACH,CAAC,EAAE,UAAC,KAAK,IAAK,UAAG,EAAH,CAAG,EAAE,KAAK,CAAC,CAAC;KAC5B,CAAC;KAED,sCAAU,GAAV,UAAW,IAAsB,EAAE,IAAsB,EAAE,KAAuB,EAAE,GAAO,EAAE,KAAY,EAAE,OAAsB;SAC/H,IAAI,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;SAC/D,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,UAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ;aAC7D,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,GAAG,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;aACxE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACpB,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC/E,CAAC;SACH,CAAC,EAAE,UAAC,KAAK,IAAK,UAAG,EAAH,CAAG,EAAE,KAAK,CAAC,CAAC;SAC1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;KAC/B,CAAC;KAED,wCAAY,GAAZ,UAAa,GAA6B,EAAE,KAAuB,EAAE,IAAU,EAAE,OAAsB;SACrG,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAC7B,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC/D,IAAI,MAAM,GAAG,CAAC,EACZ,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC;aACtB,IAAI,CAAC,GAAG,MAAM,CAAC;aACf,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;aACvB,MAAM,IAAI,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aAC9D,MAAM,CAAC,CAAC,CAAC;SACX,CAAC,CAAC,CAAC;SACL,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;SAC5B,IAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;SACnC,OAAO,CAAC,MAAM,GAAG,UAAC,MAAM,EAAE,QAAQ;aAChC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aACtC,MAAM,CAAC,MAAM,KAAK,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;SAC/C,CAAC,CAAC;SACF,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC;aACxB,GAAG,CAAC,IAAI,EAAE,CAAC;aACX,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAE5B,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBACZ,IAAM,aAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACzC,6FAA6F;iBAC7F,OAAO,CAAC,KAAK,GAAG,UAAC,KAAK;qBACpB,6DAA6D;qBAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,aAAW,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,WAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAA3D,CAA2D,EAAE,CAAC,CAAC,CAAC;iBAC5H,CAAC,CAAC;aACJ,CAAC;aACD,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aAEhD,GAAG,CAAC,OAAO,EAAE,CAAC;SAChB,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;SACd,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;KAC/B,CAAC;KACH,wBAAC;AAAD,EAAC,CAxH+B,mBAAmB,GAwHlD;AAMD;;;;;;IAMG;AACH,yBAA+B,QAAgB,EAAE,MAAuB,EAAE,MAAiB;KAA3F,iBAOC;KAPyE,sBAAiB,GAAjB,WAAiB;KACzF,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC3B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;KACvB,MAAM,CAAC,OAAO,GAAG,UAAC,IAAsB,EAAE,KAAY,IAAK,WAAI,CAAC,SAAS,CAAC,KAAI,CAAC,QAAQ,GAAG,eAAe,GAAG,KAAK,GAAG,IAAI,CAAC,EAA9D,CAA8D,CAAC;KAE1H,IAAM,CAAC,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;KAC1C,MAAM,CAAC,CAAC,CAAC;AACX,EAAC;AAPe,uBAAc,iBAO7B;AAED,KAAM,eAAe,GAAG,WAAW,CAAC;KAClC,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe;EACxC,CAAC,CAAC;AAEH;;;IAGG;AACH;KACE,MAAM,CAAC;SACL,MAAM,EAAE,IAAI,kBAAkB,EAAE;SAChC,IAAI,EAAE,IAAI,gBAAgB,EAAE;SAC5B,MAAM,EAAE,WAAW,EAAE;SACrB,IAAI,EAAE,eAAe,CAAC;aACpB,SAAS,EAAE,MAAM;aACjB,KAAK,EAAE,OAAO;UACf,CAAC;SACF,OAAO,EAAE,eAAe,CAAC;aACvB,SAAS,EAAE,SAAS;aACpB,KAAK,EAAE,QAAQ;UAChB,CAAC;SACF,OAAO,EAAE,IAAI,mBAAmB,EAAE;SAClC,KAAK,EAAE,IAAI,iBAAiB,EAAE;SAC9B,WAAW,EAAE,IAAI,mBAAmB,EAAE;SACtC,OAAO,EAAE,WAAW,CAAC;aACnB,WAAW,EAAE,IAAI;aACjB,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAK,UAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAf,CAAe;UACxC,CAAC;SACF,GAAG,EAAE,eAAe;SACpB,GAAG,EAAE,eAAe;SACpB,IAAI,EAAE,eAAe;SACrB,MAAM,EAAE,eAAe;SACvB,OAAO,EAAE,IAAI,kBAAkB,EAAE;SACjC,QAAQ,EAAE,IAAI,oBAAoB,EAAE;SACpC,SAAS,EAAE,IAAI,qBAAqB,EAAE;SACtC,MAAM,EAAE,IAAI,iBAAiB,CAAC,KAAK,CAAC;MACrC,CAAC;AACJ,EAAC;AA7Be,kBAAS,YA6BxB;;;;;;;ACt2BD;;IAEG;;;;;;;AAGH,4CAA2C;AAC3C,KAAO,EAAE,uBAAW,CAAI,CAAC,CAAC;AAC1B,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,QAAQ,uBAAW,EAAY,CAAC,CAAC;AAExC,KAAO,OAAO,uBAAW,EAAc,CAAC,CAAC;AAEzC;KAGE,mBAAmB,IAAsB;SAAtB,SAAI,GAAJ,IAAI,CAAkB;SAFzC,SAAI,GAAU,CAAC,CAAC;KAIhB,CAAC;KACH,gBAAC;AAAD,EAAC;AAED;;;IAGG;AACH,wBAAuB,GAA2C;KAChE,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;KACrB,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC;SACtD,IAAI,IAAI,IAAI,GAAC,GAAG,CAAC,WAAW,CAAC;KAC/B,CAAC;KACD,MAAM,CAAC,IAAI,CAAC;AACd,EAAC;AAED;KAeE,sBAAoB,IAA0B,EAAE,MAAc,EAAE,OAAgB;SAAhB,uBAAgB,GAAhB,YAAgB;SAA5D,SAAI,GAAJ,IAAI,CAAsB;SAdtC,YAAO,GAAG;aAChB,MAAM,EAAE,UAAU;aAClB,SAAS,EAAE,GAAG;aACd,UAAU,EAAE,EAAE;aACd,KAAK,EAAE,GAAG;aACV,MAAM,EAAE,GAAG;aACX,cAAc,EAAE,EAAE;aAClB,QAAQ,EAAE,IAAI;aACd,eAAe,EAAE,KAAK;UACvB,CAAC;SAMA,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAEnC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SAEtE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC/B,CAAC;KAED,wCAAiB,GAAjB,UAAkB,IAA0B;SAA5C,iBA4CC;SA3CC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;SACvH,CAAC;SACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,WAAI,SAAS,CAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,CAAC;SAClG,IAAI,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,UAAC,IAAI;aAC7B,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;aACvC,KAAI,CAAC,MAAM,EAAE,CAAC;SAChB,CAAC,CAAC,CAAC;SACH,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC1B,IAAI,IAAI,GAAG,IAAI,CAAC;aAChB,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,UAAU,GAAG;iBAC5D,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;iBACjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,KAAK;qBACtB,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;yBACxB,MAAM,CAAC,KAAK,CAAC;qBACf,CAAC;qBACD,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC;qBACrB,MAAM,CAAC,IAAI,CAAC;iBACd,CAAC,CAAC,CAAC;iBACH,IAAI,CAAC,MAAM,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC;aACH,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,EAAE,UAAU,OAAO;iBAClE,IAAI,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;iBACjG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,KAAK;qBACtB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;yBAClC,MAAM,CAAC,KAAK,CAAC;qBACf,CAAC;qBACD,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC;qBACrB,MAAM,CAAC,IAAI,CAAC;iBACd,CAAC,CAAC,CAAC;iBACH,IAAI,CAAC,MAAM,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC;aACH,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAC,OAAO;iBACjC,IAAI,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;iBAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,KAAK;qBACtB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;yBAClC,MAAM,CAAC,KAAK,CAAC;qBACf,CAAC;qBACD,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC;iBACvB,CAAC,CAAC,CAAC;aACL,CAAC,CAAC,CAAC;SACL,CAAC;KACH,CAAC;KAED,6BAAM,GAAN;SACE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;SACvH,CAAC;KACH,CAAC;KAED,6BAAM,GAAN;SAAA,iBAiEC;SAhEC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACrB,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,KAAK,CAAC,EAAZ,CAAY,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;SAC7E,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACnE,IAAI,cAAc,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aACvD,OAAO,EAAE,QAAQ;aACjB,WAAW,EAAE,IAAI;UAClB,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,UAAC,CAAC;aACnB,IAAI,CAAC,GAAoB,EAAE,CAAC,KAAM,CAAC;aACnC,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,2DAA2D;aACtG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;aAC9C,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,mCAAmC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/F,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5B,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,0CAA0C,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACxG,CAAC;SACH,CAAC,CAAC,CAAC,KAAK,CAAC;aACP,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI;aACpC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI;UACvC,CAAC,CAAC;SACH,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;aACjC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;iBAC3B,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;aAChD,CAAC,CAAC,CAAC;SACL,CAAC;SACD,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;SAC1E,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,oBAAU,CAAO,CAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,SAAI,CAAC,CAAC,IAAI,CAAE,EAA/C,CAA+C,CAAC,CAAC;SAC/E,QAAQ,CAAC,KAAK,CAAC;aACb,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC;iBAChB,IAAI,GAAG,GAAG,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBACzB,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;aACtD,CAAC;aACD,kBAAkB,EAAE,UAAC,CAAC;iBACpB,IAAM,CAAC,GAAS,CAAE,CAAC;iBACnB,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;aACnE,CAAC;UACF,CAAC,CAAC;SACH,QAAQ,CAAC,IAAI,CAAC;aACZ,KAAK,EAAE,UAAC,CAAC,IAAK,oBAAa,CAAC,CAAC,CAAC,EAAhB,CAAgB;UAC/B,CAAC,CAAC;SACH,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;SAC7C,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SAEzB,+BAA+B;SAC/B,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;aAC5B,KAAK,YAAY;iBACf,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;qBACf,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI;qBAC1D,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI;kBAC7C,CAAC,CAAC;iBACH,KAAK,CAAC;aACR,KAAK,MAAM;iBACT,IAAI,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;iBACtE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;qBACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI;qBAC7C,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI;kBAC/E,CAAC,CAAC;iBACH,KAAK,CAAC;aACR,kBAAkB;aAClB;iBACE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;qBACf,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI;qBAC1C,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI;kBAC7D,CAAC,CAAC;iBACH,KAAK,CAAC;SACV,CAAC;KACH,CAAC;KAEO,6BAAM,GAAd,UAAe,CAAQ;SACrB,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;aAC5B,KAAK,YAAY;iBACf,MAAM,CAAC,EAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;aAC/C,KAAK,MAAM;iBACT,IAAI,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;iBACtE,MAAM,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAC,CAAC;aACzG,kBAAkB;aAClB;iBACE,MAAM,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAC,CAAC;SAClD,CAAC;KACH,CAAC;KACH,mBAAC;AAAD,EAAC;AA3JY,qBAAY,eA2JxB;AAMD;KACE,MAAM,CAAC,IAAI,CAAC;AACd,EAAC;AAFe,+BAAsB,yBAErC;AAED;KAuEE,wBAAoB,IAA0B,EAAE,MAAc,EAAE,OAAgB;SAvElF,iBA+dC;SAxZiE,uBAAgB,GAAhB,YAAgB;SAA5D,SAAI,GAAJ,IAAI,CAAsB;SAtEtC,YAAO,GAAG;aAChB,UAAU,EAAE,GAAG;aACf,aAAa,EAAE,CAAC;aAChB,qBAAqB,EAAE,EAAE;aACzB,YAAY,EAAE,EAAE;aAChB,YAAY,EAAE,IAAI;aAClB,UAAU,EAAE,KAAK;aAEjB,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE;aACtC,aAAa,EAAE,EAAE;aACjB,UAAU,EAAE,UAAC,GAAgB,IAAK,UAAG,YAAY,KAAK,CAAC,YAAY,EAAjC,CAAiC;aACnE,WAAW,EAAE,IAAI;aAEjB,gBAAgB,EAAE,KAAK;aACvB,cAAc,EAAE,EAAE;aAClB,cAAc,EAAE,CAAC,EAAE;aAEnB,UAAU,EAAE,CAAC;aAEb,cAAc,EAAgB,sBAAsB;UACrD,CAAC;SAIM,cAAS,GAAG,EAAE,CAAC,GAAG,EAAgB,CAAC;SAEnC,gBAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAgB;cAEnD,EAAE,CAAC,WAAW,EAAE;aACf,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;aACpC,EAAE,CAAC,KAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;aACxC,EAAE,CAAC,KAAM,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;SAC/C,CAAC,CAAC;cACD,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;aACrB,eAAe;aACf,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACzD,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aACf,EAAE,CAAC,KAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;aACxC,EAAE,CAAC,KAAM,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;SAC/C,CAAC,CAAC;cACD,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;aACxB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;aACrC,EAAE,CAAC,KAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;aAExC,EAAE,CAAC,KAAM,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;SAC/C,CAAC,CAAC,CAAC;SAEG,gBAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,uCAAuC,EAAE,mCAAmC,CAAC,EAAE,UAAC,IAAI,EAAE,CAAc,EAAE,IAAI;aAC9I,IAAI,GAAG,GAAgB,IAAI,CAAC;aAC5B,EAAE,CAAC,CAAC,uCAAuC,IAAI,IAAI,CAAC,CAAC,CAAC;iBACpD,IAAI,EAAE,GAAG,IAAI,CAAC,uCAAuC,CAAC,CAAC;iBACvD,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACT,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBAC7B,CAAC;iBAAC,IAAI,CAAC,CAAC;qBACN,GAAG,CAAC,QAAQ,EAAE,CAAC;iBACjB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;iBACjE,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;aACtD,CAAC;aACD,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;iBAC9B,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;aACtC,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,CAAC,GAAG,KAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;iBACnC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;aAC9B,CAAC;SACH,CAAC,CAAC,CAAC;SAID,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAEnC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SACxE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAEtE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC/B,CAAC;KAED,0CAAiB,GAAjB,UAAkB,IAA0B;SAA5C,iBAcC;SAbC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,4BAA4B,EAAE,6BAA6B,EAAE,iCAAiC,CAAC,EAAE,IAAI,CAAC,CAAC;SACvH,CAAC;SACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB,IAAI,CAAC,EAAE,CAAC,4BAA4B,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACpF,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;aAC5B,IAAI,CAAC,EAAE,CAAC,6BAA6B,EAAE;iBACrC,KAAI,CAAC,UAAU,EAAE,CAAC;iBAClB,KAAI,CAAC,MAAM,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC;aACH,IAAI,CAAC,EAAE,CAAC,iCAAiC,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAElG,CAAC;KACH,CAAC;KAED,sBAAI,2CAAe;cAAnB;aACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SACxB,CAAC;;;QAAA;KAED;;;QAGG;KACH,sCAAa,GAAb;SACE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAC,EAAE,CAAC,CAAC;KACjD,CAAC;KAEO,mCAAU,GAAlB;SAAA,iBAaC;SAZC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACvC,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;aACvB,IAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;aACjC,IAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;aACjC,IAAM,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC5D,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAhD,CAAgD,CAAC,CAAC,OAAO,CAAC,UAAC,GAAO;iBACnF,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAC,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;aACtE,CAAC,CAAC,CAAC;aACH,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,YAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAA7C,CAA6C,CAAC,CAAC,OAAO,CAAC,UAAC,GAAO;iBAChF,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAC,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACrE,CAAC,CAAC,CAAC;SACL,CAAC,CAAC,CAAC;KACL,CAAC;KAED;;QAEG;KACH,sCAAa,GAAb;SAAA,iBAgDC;SA/CC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;aAC7B,MAAM,CAAC;SACT,CAAC;SACD,sCAAsC;SACtC,IAAM,IAAI,GAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAE5C,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAA9B,CAA8B,CAAC,CAAC;SAC/F,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;SACvC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;aACxB,MAAM,CAAC;SACT,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;aAChC,cAAc;aAEd,IAAI,QAAQ,GAAG,KAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;aAEvC,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;iBACvB,IAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;iBACjC,4BAA4B;iBAC5B,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAhD,CAAgD,CAAC,CAAC,OAAO,CAAC,UAAC,GAAsB;qBAClG,IAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,0BAAuB,GAAG,CAAC,EAAE,gBAAY,CAAC,CAAC,CAAC;qBAC7F,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC;yBACb,IAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;yBAC1B,sBAAsB;yBACtB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;6BACtC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;6BAClB,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iCACtB,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;iCACpC,KAAK,CAAC;6BACR,CAAC;6BAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;iCACjC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;iCAC9B,KAAK,CAAC;6BACR,CAAC;yBACH,CAAC;qBACH,CAAC,CAAC,CAAC;iBACL,CAAC,CAAC,CAAC;iBACH,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,YAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAA7C,CAA6C,CAAC,CAAC,OAAO,CAAC,UAAC,GAA2B;qBACpG,IAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,0BAAuB,GAAG,CAAC,EAAE,QAAI,CAAC,CAAC;qBACrE,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC;yBACb,IAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;yBAClC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;6BACvB,MAAM,CAAC,aAAa,CAAC,wBAAqB,GAAG,QAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;yBAC/E,CAAC,CAAC,CAAC;qBACL,CAAC,CAAC,CAAC;iBACL,CAAC,CAAC,CAAC;aACL,CAAC,CAAC,CAAC;SACL,CAAC,CAAC,CAAC;KACL,CAAC;KAEO,6CAAoB,GAA5B,UAA6B,QAAyB,EAAE,eAAyB;SAC/E,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAClF,eAAe,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;cAClC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;cAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SACrC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,UAAC,CAAC,EAAC,CAAC,IAAK,sBAAe,CAAC,CAAC,CAAC,GAAC,IAAI,EAAvB,CAAuB,CAAC,CAAC;SAChE,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KAClC,CAAC;KAED,+BAAM,GAAN;SAAA,iBAqDC;SApDC,IAAM,IAAI,GAAG,IAAI,CAAC;SAClB,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SAEzC,IAAI,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,cAAc,GAAG,EAAE,CAAC;SACjD,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;aACvB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC;aACnG,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACxD,CAAC,CAAC,CAAC;SACH,YAAY;SACZ,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;SAElC,IAAI,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC;SAEvC,sBAAsB;SACtB,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;aAC7E,IAAI,CAAC,UAAU,EAAE,CAAC;SACpB,CAAC;SAED,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAEpC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,sBAAsB,CAAC,CAAC,CAAC;aAC3D,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;SACtD,CAAC;SAED,yBAAyB,CAAc;aACrC,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAA2B,CAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;iBACtG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAA4B,CAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;aAC9F,CAAC;aACD,MAAM,CAAC,CAAC,CAAC;SACX,CAAC;SAED,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;SAClE,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,GAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;SAE/I,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;aAClC,4BAA4B;aAC5B,IAAI,UAAU,GAAG,KAAK,CAAC;aACvB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC;kBAC/B,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;iBACvE,IAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC;iBAC1D,IAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;iBAC9B,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC;qBACtB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAC,YAAU,IAAI,CAAC,OAAO,CAAC,cAAc,SAAM,CAAC,CAAC;qBAC/E,UAAU,GAAG,IAAI,CAAC;iBACpB,CAAC;iBAAC,IAAI,CAAC,CAAC;qBACN,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAC,IAAI,CAAC,CAAC;iBAC1C,CAAC;aACH,CAAC,CAAC,CAAC;aACH,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;aAC/G,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;SACzD,CAAC;SACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;KAC5C,CAAC;KAEO,sCAAa,GAArB,UAAsB,KAAgC;SAAtD,iBAiFC;SAhFC,IAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAC9C,QAAQ,GAAG,IAAI,CAAC,IAAI,EACpB,IAAI,GAAG,IAAI,CAAC;SACd,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,WAAC,IAAG,QAAC,CAAC,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,EAA7B,CAA6B,CAAC,EAC5D,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,WAAC,IAAG,QAAC,YAAY,KAAK,CAAC,WAAW,EAA9B,CAA8B,CAAC,EAC3D,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAC,IAAG,YAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAA3B,CAA2B,CAAC,CAAC;SAE9D,cAAc;SACd,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aACrG,OAAO,CAAC,qBAAqB,CAAoB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;aAC3F,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,QAAQ;SACR,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aACzG,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;aACnE,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,OAAO;SACP,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aAC9G,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aACzB,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,WAAW;SACX,KAAK,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,UAAU,EAA7B,CAA6B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aAC5J,OAAO,CAAC,kBAAkB,CAAmB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,MAAM,CAAO,CAAC,CAAC,IAAK,CAAC,SAAS,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;aAC7J,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,aAAa;SACb,KAAK,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,YAAY,EAA/B,CAA+B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aACxJ,OAAO,CAAC,oBAAoB,CAAqB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;aAC3F,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,QAAQ;SACR,KAAK,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,oBAAa,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAzC,CAAyC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aACtJ,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC/E,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,QAAQ;SACR,KAAK,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAA1B,CAA0B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aACvI,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC7E,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,UAAU;SACV,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;cACjB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;cACnB,OAAO,CAAC,gBAAgB,EAAE,UAAC,CAAc,IAAK,QAAC,CAAC,CAAC,aAAa,EAAE,EAAlB,CAAkB,CAAC;cACjE,OAAO,CAAC,iBAAiB,EAAE,UAAC,CAAc,IAAK,QAAC,CAAC,aAAa,EAAE,EAAjB,CAAiB,CAAC;cACjE,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;cAC7B,EAAE,CAAC,OAAO,EAAE,UAAU,CAAc;aACnC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;aACpC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;kBACZ,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;kBAC7C,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;aACjD,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACL,UAAU;SACV,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;cACpB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;cACnB,OAAO,CAAC,aAAa,EAAE,UAAC,CAAyB,IAAK,QAAC,CAAC,CAAC,YAAY,EAAE,EAAjB,CAAiB,CAAC;cACxE,OAAO,CAAC,WAAW,EAAE,UAAC,CAAyB,IAAK,QAAC,CAAC,YAAY,EAAE,EAAhB,CAAgB,CAAC;cACrE,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;cAChC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAyB;aAC9C,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;aAClC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;kBACZ,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;kBACzC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;aAC1C,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;SACL,QAAQ;SACR,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;aACjF,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;iBAClC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;iBACzC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;qBACxC,QAAQ,CAAC,WAAW,EAAE,CAAC;iBACzB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,CAAC,CAAC,QAAQ,EAAE,CAAC;aACf,CAAC;aACD,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B,CAAC,CAAC,CAAC;KACL,CAAC;KAED,qCAAY,GAAZ,UAAa,IAAW;SACtB,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;SAC3C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC;cAC/B,KAAK,CAAC,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,UAAU,GAAG,CAAC,GAAG,IAAI,EAAzB,CAAyB,CAAC;cACrD,KAAK,CAAC,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,UAAU,GAAG,eAAa,IAAI,UAAO,GAAG,IAAI,EAAhD,CAAgD,CAAC,CAAC;KACpF,CAAC;KAEO,sCAAa,GAArB,UAAsB,OAAsB,EAAE,MAAM,EAAE,KAAoC,EAAE,KAAuB;SAAnH,iBAoJC;SApJqD,qBAAoC,GAApC,QAA0B,IAAI,CAAC,KAAK;SAAE,qBAAuB,GAAvB,gBAAuB;SACjH,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;SAC1E,IAAI,cAAc,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aACvD,OAAO,EAAE,KAAK;UACf,CAAC;cACD,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;aACb,EAAE,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;iBAC1G,CAAC,CAAC,eAAe,EAAE,CAAC;aACtB,CAAC;SACH,CAAC,CAAC,CAAC;SACH,IAAI,iBAAiB,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;cAC3E,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;aACb,EAAE,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;iBAC5D,CAAC,CAAC,eAAe,EAAE,CAAC;aACtB,CAAC;SACH,CAAC,CAAC;cACD,EAAE,CAAC,WAAW,EAAE,UAAC,CAAC;aACjB,IAAI,CAAC,GAAoB,EAAE,CAAC,KAAM,CAAC;aACnC,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,2DAA2D;aACtG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;aAC9C,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,uCAAuC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aACtE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACtD,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;aACjE,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5B,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;iBACxE,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,8CAA8C,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aAC/E,CAAC;SACH,CAAC,CAAC,CAAC;SACL,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;SACpE,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;aAC9D,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;UACvC,CAAC,CAAC;SAEH,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;aAC9B,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;kBACjD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;kBACtB,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;kBACjD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC1B,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5F,CAAC;SAED,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;aAC5B,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAC1D,CAAC;SAED,QAAQ,CAAC,KAAK,CAAC;aACb,KAAK,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,EAArD,CAAqD;aACtE,IAAI,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,aAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,EAAvB,CAAuB;aACvC,kBAAkB,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO;UACnC,CAAC,CAAC;SACH,QAAQ,CAAC,IAAI,CAAC;aACZ,OAAO,EAAE,UAAC,CAAC,IAAK,QAAG,KAAK,UAAI,CAAC,CAAC,QAAQ,IAAE,EAAE,UAAI,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,YAAY,GAAG,EAAE,CAAC,SAAI,CAAC,CAAC,cAAc,UAAI,KAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,YAAY,GAAE,EAAE,WAAI,CAAC,CAAC,UAAU,EAAE,GAAG,UAAU,GAAG,EAAE,EAAE,EAAnL,CAAmL;aACnM,KAAK,EAAE,UAAC,CAAC,IAAK,oBAAa,CAAC,CAAC,CAAC,EAAhB,CAAgB;aAC9B,SAAS,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI;UACvB,CAAC,CAAC;SACH,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC;aAClD,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;aACzB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;iBACvC,MAAM,CAAC,4BAA4B,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC;aACnF,CAAC;aACD,MAAM,CAAC,mBAAmB,CAAC;SAC7B,CAAC,CAAC,CAAC;SACH,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;SAEtD,IAAI,IAAI,GAAG,IAAI,CAAC;SAChB,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,YAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAA3B,CAA2B,CAAC,CAAC,IAAI,CAAC,UAAU,GAA2B;aAC5F,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;iBAC9C,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;aAC5D,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,QAAQ,GAAG,EAAE,CAAC;iBAClB,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;iBAExD,IAAI,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC;iBAC3C,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;aAC1H,CAAC;SACH,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,8CAA8C,EAAE,0CAA0C,CAAC,EAAE,UAAC,IAAI,EAAE,CAAyB,EAAE,IAAI;aAChL,IAAI,GAAG,GAAgB,IAAI,CAAC;aAC5B,EAAE,CAAC,CAAC,8CAA8C,IAAI,IAAI,CAAC,CAAC,CAAC;iBAC3D,IAAI,EAAE,GAAG,IAAI,CAAC,8CAA8C,CAAC,CAAC;iBAC9D,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACT,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBAC7B,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;qBACf,GAAG,CAAC,QAAQ,EAAE,CAAC;iBACjB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;iBACxE,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;aACtD,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;SAC7B,CAAC,CAAC,CAAC,CAAC;SAEJ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;aAE5B,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,YAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAA5B,CAA4B,CAAC,CAAC,IAAI,CAAC,UAAU,GAA2B;iBAC7F,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;iBACpD,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACtC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACT,IAAI,CAAC,IAAI,CAAC,UAAC,KAAkC;yBAC3C,IAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;yBAC1D,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;yBACjD,IAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;yBAC/E,IAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;yBACvE,KAAK,CAAC,KAAK,CAAC;6BACV,IAAI,EAAE,UAAC,CAAC,IAAK,SAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,EAAf,CAAe;6BAC5B,KAAK,EAAE,UAAC,CAAC,IAAK,SAAE,CAAC,SAAS,EAAE,GAAG,GAAG,EAApB,CAAoB;6BAClC,GAAG,EAAE,UAAC,CAAC,IAAK,QAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAArB,CAAqB;6BACjC,MAAM,EAAE,UAAC,CAAC,IAAK,SAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAb,CAAa;6BAC5B,kBAAkB,EAAE,UAAC,CAAC,IAAK,UAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAlB,CAAkB;0BAC9C,CAAC,CAAC,IAAI,CAAC;6BACN,KAAK,EAAE,UAAC,CAAC,IAAK,QAAG,CAAC,CAAC,GAAG,UAAK,CAAC,CAAC,CAAC,CAAE,EAAlB,CAAkB;6BAChC,UAAU,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,EAAL,CAAK;0BACzB,CAAC,CAAC;yBACH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;qBACxB,CAAC,CAAC,CAAC;iBACL,CAAC;aACH,CAAC,CAAC,CAAC;aACH,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,YAAY,EAA/B,CAA+B,CAAC,CAAC,IAAI,CAAC,UAAU,GAAgB;iBACrF,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;iBACpD,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACtC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACT,IAAI,CAAC,IAAI,CAAC,UAAC,KAAuB;yBAChC,IAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;yBAC1D,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;yBACjD,IAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;yBACxG,IAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;yBACvE,KAAK,CAAC,KAAK,CAAC;6BACV,IAAI,EAAE,UAAC,CAAC,EAAC,CAAC,IAAK,SAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAnB,CAAmB;6BAClC,KAAK,EAAE,UAAC,CAAC,EAAC,CAAC,IAAK,SAAE,CAAC,SAAS,EAAE,GAAG,GAAG,EAApB,CAAoB;6BACpC,GAAG,EAAE,UAAC,CAAC,IAAK,QAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAArB,CAAqB;6BACjC,MAAM,EAAE,UAAC,CAAC,IAAK,SAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAb,CAAa;0BAC7B,CAAC,CAAC,IAAI,CAAC;6BACN,KAAK,EAAE,UAAC,CAAC,EAAC,CAAC,IAAK,iBAAO,CAAC,UAAK,CAAC,CAAC,CAAC,CAAE,EAAlB,CAAkB;6BAClC,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,EAAH,CAAG;0BACrB,CAAC,CAAC;yBACH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;yBAEtB,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;yBACrC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;6BAClB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAC,IAAI,CAAC,CAAC;yBACnD,CAAC;yBACD,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;qBAChD,CAAC,CAAC,CAAC;iBACL,CAAC;aACH,CAAC,CAAC,CAAC;SACL,CAAC;SAED,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KAC3B,CAAC;KACH,qBAAC;AAAD,EAAC;AA/dY,uBAAc,iBA+d1B;AAuBD;KAAkC,gCAAsB;KA4BtD,sBAAoB,IAA0B,EAAE,MAAc,EAAU,MAAc,EAAE,OAAY;SAAZ,uBAAY,GAAZ,YAAY;SAClG,iBAAO,CAAC;SADU,SAAI,GAAJ,IAAI,CAAsB;SAA0B,WAAM,GAAN,MAAM,CAAQ;SA1B9E,YAAO,GAAG;aAChB,SAAS,EAAE,EAAE;aACb,UAAU,EAAE,CAAC;aACb,aAAa,EAAE,CAAC;aAChB,QAAQ,EAAE,EAAE;aACZ,UAAU,EAAE,GAAG;aACf,aAAa,EAAE,CAAC;aAChB,OAAO,EAAE,IAAI;aACb,SAAS,EAAE,KAAK;aAChB,iBAAiB,EAAE,IAAI;aAEvB,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE;aAE/B,QAAQ,EAAE,KAAK;aAEf,OAAO,EAAE,EAAE;aAEX,UAAU,EAAE,CAAC;UACd,CAAC;SAIM,sBAAiB,GAAG,CAAC,CAAC;SAE9B,cAAS,GAAG,EAAE,CAAC,GAAG,EAA8B,CAAC;SAI/C,eAAe;SACf,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAEnC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SAEtE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC/B,CAAC;KAED,sCAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;KAC5E,CAAC;KAED,sBAAI,8BAAI;cAAR;aACE,MAAM,CAAU,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACpC,CAAC;;;QAAA;KAED,gCAAS,GAAT,UAAU,GAAU,EAAE,KAAS;SAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KAC5B,CAAC;KAED,wCAAiB,GAAjB,UAAkB,IAA0B;SAA5C,iBAYC;SAXC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,0BAA0B,EAAE,+BAA+B,CAAC,EAAE,IAAI,CAAC,CAAC;SACpF,CAAC;SACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB,IAAI,CAAC,EAAE,CAAC,0BAA0B,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAClF,IAAI,CAAC,EAAE,CAAC,+BAA+B,EAAE,KAAK,CAAC,WAAW,CAAC,UAAC,SAAS,EAAE,WAAW;aAChF,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;iBACxC,KAAI,CAAC,eAAe,EAAE,CAAC;aACzB,CAAC;aACD,KAAI,CAAC,aAAa,EAAE,CAAC;SACvB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACT,CAAC;KAED,oCAAa,GAAb,UAAc,WAAkB;SAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;SAC3B,MAAM,CAAC;aACL,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS;aAC7D,KAAK,YAAC,KAAY;iBAChB,MAAM,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACrD,CAAC;aACD,SAAS,YAAC,KAAY;iBACpB,MAAM,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACrD,CAAC;aACD,KAAK,YAAC,KAAY;iBAChB,MAAM,CAAC,CAAC,CAAC;aACX,CAAC;aACD,SAAS,YAAC,KAAY;iBACpB,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;aACtD,CAAC;aACD,QAAQ,YAAC,GAAgB;iBACvB,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACrD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;iBACnC,CAAC;iBACD,EAAE,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;qBAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;iBAClC,CAAC;iBACD,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAA8B,GAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;qBACnF,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;iBAClC,CAAC;iBACD,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACzC,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;aACzC,CAAC;aACD,MAAM,YAAC,GAAgB,EAAE,KAAgC,EAAE,IAAU,EAAE,OAAsC;iBAAtC,uBAAsC,GAAtC,cAAsC;iBAC3G,sCAAsC;iBACtC,IAAM,KAAK,GAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;iBAClC,IAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;iBACxC,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;iBACxC,EAAE,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC,CAAC;qBAClC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;qBAC9B,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;iBACpC,CAAC;iBACD,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aACjD,CAAC;aACD,YAAY,YAAC,GAAgB,EAAE,GAA4B,EAAE,IAAU,EAAE,OAAsC;iBAAtC,uBAAsC,GAAtC,cAAsC;iBAC7G,YAAY;aACd,CAAC;aACD,WAAW,YAAC,GAAgB;iBAC1B,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;aAC7D,CAAC;aACD,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAE1B,QAAQ,EAAE,UAAC,IAAsB,IAAK,cAAO,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,EAAhF,CAAgF;aAEtH,mDAAmD;aACnD,YAAY,EAAE,UAAC,GAAiB,IAAK,cAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,GAAG,CAAC,MAAM,YAAY,KAAK,CAAC,OAAO,EAA5G,CAA4G;aAEjJ,MAAM,EAAE,UAAC,GAAU,EAAE,QAAY,IAAK,QAAC,GAAG,IAAI,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,EAA1C,CAA0C;UACjF,CAAC;KACJ,CAAC;KAED,0CAAmB,GAAnB,UAAoB,CAAgB,EAAE,OAA+B,EAAE,MAAa;SAClF,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SAC3C,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAClB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SAC1D,CAAC;SAED,iEAAiE;SACjE,8FAA8F;SAC9F,4DAA4D;SAC5D,IAAI,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC;aACjC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;SAC/C,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;SACxB,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;cACpC,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,cAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,EAAE,EAAnC,CAAmC,CAAC;cACtD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aACrB,CAAC,EAAE,CAAC;UACL,CAAC,CAAC;SACH,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SAC7B,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;cACxB,IAAI,CAAC;aACJ,CAAC,EAAE,CAAC;aACJ,KAAK,EAAE,UAAC,CAAC,IAAK,WAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAA7B,CAA6B;aAC3C,MAAM,EAAE,MAAM;UACf,CAAC,CAAC;KACP,CAAC;KAED,sCAAe,GAAf,UAAgB,QAAwB,EAAE,OAA+B,EAAE,MAAa;SAAxF,iBAmBC;SAlBC,IAAI,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC;SAC5B,QAAQ,CAAC,OAAO,CAAC,UAAC,CAAC;aACjB,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;aACjE,MAAM,IAAI,CAAC,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC;SACxC,CAAC,CAAC,CAAC;SACH,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SAElE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;SAC1E,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAClB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;iBACtG,CAAC,EAAE,CAAC;iBACJ,KAAK,EAAE,KAAK;iBACZ,MAAM,EAAE,MAAM;cACf,CAAC,CAAC;SACL,CAAC;SACD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aACxB,MAAM,EAAE,MAAM;UACf,CAAC,CAAC;KACL,CAAC;KAED,qCAAc,GAAd,UAAe,KAAuB,EAAE,QAAwB,EAAE,MAAiB,EAAE,MAAY,EAAE,OAA+B,EAAE,MAAc;SAAlJ,iBAwIC;SAvIC,IAAM,IAAI,GAAG,IAAI,CAAC;SAClB,IAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;SAE1D,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;SACzE,IAAI,eAAe,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;aACvD,OAAO,EAAE,SAAS;aAClB,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,EAAtC,CAAsC;UAC5D,CAAC,CAAC;SACH,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAClD,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAElD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;aAC/B,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,EAAtC,CAAsC;UAC5D,CAAC,CAAC;SAEH,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,QAAQ,EAAE,EAAb,CAAa,CAAC,EAAvC,CAAuC,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;SAC/H,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;cAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;aAClB,OAAO,EAAE,OAAO;aAChB,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,CAAE,IAAK,mBAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,EAA1C,CAA0C;UACpE,CAAC,CAAC;SACH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SACtB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAChC,KAAK,CAAC,IAAI,CAAC;aACT,YAAY,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAD,CAAC;UAC1B,CAAC,CAAC;SACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;aAC3B,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,CAAE;iBAClB,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aACpD,CAAC;UACF,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAE;aACxB,IAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC7B,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;iBACxB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aACzC,CAAC,CAAC,CAAC;aAEH,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5B,IAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACnC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACN,CAAC,CAAC,IAAI,CAAC,UAAC,KAAuB;yBAC7B,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;yBACjE,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;yBACvD,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;yBACtB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;8BACxC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;8BACrC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;qBACxB,CAAC,CAAC,CAAC;iBACL,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC;aAC3C,CAAC;SACH,CAAC,CAAC,CAAC;SAEH,wDAAwD;SACxD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;aAClC,KAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC9B,CAAC,CAAC,CAAC;SAEH,sBAAsB,IAAyB,EAAE,KAAiC,EAAE,KAAY,EAAE,OAAqB,EAAE,YAAmB;aAC1I,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aAC5B,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,QAAQ,EAAE,EAAb,CAAa,CAAC,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;aACjI,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;iBACnC,OAAO,EAAE,QAAQ;cAClB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aAEtC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;iBACjC,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC;qBACd,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;iBAC/D,CAAC;cACF,CAAC,CAAC,IAAI,CAAC,UAAU,CAAc,EAAE,CAAC;iBAA3B,iBAMP;iBALC,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;qBACnC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,sBAAsB,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;iBAGtI,CAAC,CAAC,CAAC;aACL,CAAC,CAAC,CAAC;aACH,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;aAC5B,uBAAuB;SACzB,CAAC;SAED,uBAAuB,IAAyB,EAAE,KAAiC,EAAE,KAAY,EAAE,OAAqB,EAAE,YAAmB;aAC3I,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAc,EAAE,CAAC;iBAA3B,iBAIlD;iBAHC,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;qBACnC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,sBAAsB,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;iBACxJ,CAAC,CAAC,CAAC;aACL,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACZ,wBAAwB;SAC1B,CAAC;SAED,IAAI,CAAC,aAAa,GAAG,UAAU,UAAiB,EAAE,KAAY;aAAZ,qBAAY,GAAZ,YAAY;aAC5D,SAAS,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,YAAY;iBAC5C,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAC/B,IAAI,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;iBACxE,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBACtC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;qBAClB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;qBAC3B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;yBACV,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;qBAC1D,CAAC;qBAAC,IAAI,CAAC,CAAC;yBACN,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;qBAC3D,CAAC;iBACH,CAAC;aACH,CAAC,CAAC,CAAC;aAEH,kCAAkC;aAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC1B,CAAC,CAAC;SACF,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,aAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,EAAd,CAAc,CAAC,EAAvC,CAAuC,CAAC,CAAC;SAClH,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;aAC/C,OAAO,EAAE,KAAK;UACf,CAAC,CAAC;SACH,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aAC9B,OAAO,EAAE,IAAI;UACd,CAAC,CAAC;SACH,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAC,CAAC,CAAC;SAClD,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,UAAC,UAAU;aACtC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;SACrC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,UAAC,UAAU;aAC7B,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SACtC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,UAAU;aACxB,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC9C,CAAC,CAAC,CAAC;SACH,KAAK,CAAC,IAAI,CAAC;aACT,YAAY,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,EAAH,CAAG;UACzB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,UAAC,CAAC,IAAK,YAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAzB,CAAyB,CAAC,CAAC;SACzD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aACxB,CAAC,EAAE,UAAC,CAAC,IAAK,cAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAlB,CAAkB;aAC5B,MAAM,EAAE,UAAC,CAAC,IAAK,cAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAtB,CAAsB;aACrC,KAAK,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,CAAE,IAAK,aAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAf,CAAe;aACpC,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,YAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,EAAtC,CAAsC;UAC1D,CAAC,CAAC;SACH,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SAEtB,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KAC5B,CAAC;KAEO,sCAAe,GAAvB;SAAA,iBAeC;SAdC,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;SACzC,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACzC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;aAChD,MAAM,CAAC;SACT,CAAC;SACD,IAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SACrC,IAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,UAAC,CAAC,IAAK,QAAC,GAAG,KAAI,CAAC,OAAO,CAAC,SAAS,EAA1B,CAA0B,CAAC,CAAC;SACrF,IAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;SACrE,+DAA+D;SAC/D,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,mBAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAA5B,CAA4B,CAAC,CAAC,CAAC,CAAC;aACtD,MAAM,CAAC;SACT,CAAC;SACD,sDAAsD;SACtD,EAAE;KACJ,CAAC;KAED,6BAAM,GAAN,UAAO,SAAgB,EAAE,UAAkB;SAAlB,0BAAkB,GAAlB,kBAAkB;SACzC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;SAChE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,GAAG,SAAS,GAAG,6BAA6B,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;KAC1I,CAAC;KAEO,4CAAqB,GAA7B;SACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,YAAY,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAnD,CAAmD,CAAC,EAA3E,CAA2E,CAAC,CAAC;KAC1H,CAAC;KAED,oCAAa,GAAb;SACE,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;aACjC,IAAI,CAAC,MAAM,EAAE,CAAC;SAChB,CAAC;SACD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;SACvC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;aACzB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;SACzF,CAAC;SAAC,IAAI,CAAC,CAAC;aACN,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;aACxB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAlB,CAAkB,CAAC,CAAC;aAC7E,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAA3B,CAA2B,CAAC,CAAC;SAC7F,CAAC;KACH,CAAC;KAED,gCAAS,GAAT,UAAU,SAAgB,EAAE,KAAY;SAAZ,qBAAY,GAAZ,YAAY;SACtC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;SAClD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;SACrC,wBAAwB;SACxB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,yBAAyB,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KAC7F,CAAC;KAED,wCAAiB,GAAjB,UAAkB,KAAuB,EAAE,QAAwB,EAAE,MAAiB,EAAE,MAAY,EAAE,OAA+B;SAArI,iBA0CC;SAzCC,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAC,CAAC,EAAxD,CAAwD,CAAC,CAAC;SACrG,IAAI,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3D,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;aAC/B,OAAO,EAAE,YAAY;UACtB,CAAC,CAAC;SACH,OAAO,CAAC,IAAI,CAAC;aACX,SAAS,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,mBAAY,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,EAAtE,CAAsE;UAC5F,CAAC,CAAC;SACH,IAAI,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;aACrD,IAAI,KAAK,GAAG,EAAE,CAAC;aACf,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,UAAU,EAAE,GAAG;iBAC9B,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;aAC1B,CAAC,CAAC,CAAC;aACH,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,UAAU,EAAE,GAAG,IAAK,QAAC;iBACtC,UAAU,EAAE,UAAU;iBACtB,IAAI,EAAE,GAAG;iBACT,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC;cACxB,CAAC,EAJqC,CAIrC,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,IAAI,IAAI,EAAd,CAAc,CAAC,CAAC;SACpC,CAAC,CAAC,CAAC;SACH,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;aACjC,OAAO,EAAE,OAAO;aAChB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;UAC5B,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,UAAC,CAAC;aACpB,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SACrC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,UAAC,CAAC;aACpB,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;SACtC,CAAC,CAAC,CAAC;SACH,MAAM,CAAC,IAAI,CAAC;aACV,YAAY,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,UAAU,EAAZ,CAAY;UAClC,CAAC,CAAC;SACH,MAAM,CAAC,IAAI,CAAC;aACV,EAAE,EAAE,UAAC,CAAK;iBACR,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjE,CAAC;aACD,EAAE,EAAE,UAAC,CAAK;iBACR,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjE,CAAC;UACF,CAAC,CAAC;SACH,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SAEvB,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;KAC1B,CAAC;KAED,mCAAY,GAAZ,UAAa,IAAW;SAAxB,iBAoBC;SAnBC,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;SAC3C,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAC1C,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACrF,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,0BAAuB,UAAU,QAAI,CAAC,CAAC;SAC/D,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACjB,kBAAkB;aAClB,IAAI,GAAI,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;SAC/C,CAAC;SACD,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAChE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;SACvB,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;aAC/B,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,UAAU,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,SAAS,EAApE,CAAoE;aAC3F,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,UAAU,GAAG,YAAY,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,EAAnD,CAAmD;UAC3E,CAAC,CAAC;SAGH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAC9B,mDAAmD;SACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC1B,CAAC;KAEO,uCAAgB,GAAxB;SAAA,iBAYC;SAXC,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;SAC3C,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;aACpB,MAAM,CAAC;SACT,CAAC;SACD,IAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;SACpC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAE1C,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;aAC9D,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,UAAU,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,SAAS,EAApE,CAAoE;aAC3F,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,UAAU,GAAG,YAAY,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,EAAnD,CAAmD;UAC3E,CAAC,CAAC;KACL,CAAC;KAED;;QAEG;KACH,6BAAM,GAAN;SAAA,iBAqDC;SApDC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACvC,IAAI,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAnB,CAAmB,CAAC,IAAI,CAAC,CAAC;SACjE,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;SAC/C,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,GAAG,KAAI,CAAC,OAAO,CAAC,SAAS,EAA1B,CAA0B,CAAC,CAAC;SAC/E,IAAI,WAAW,GAAG,UAAC,KAAc;aAC/B,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC/D,MAAM,CAAC,KAAK,CAAC;aACf,CAAC;aACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;SACjF,CAAC,CAAC;SACF,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,kBAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAzB,CAAyB,CAAC,CAAC;SAC5D,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAGpD,oFAAoF;SACpF,IAAI,MAAM,GAAG,CAAC,EACZ,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;aACzB,IAAI,CAAC,GAAG,MAAM,CAAC;aACf,MAAM,IAAI,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC;aAClC,IAAI,EAAE,GAAG,CAAC,EACR,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,QAAQ,EAAE,EAAb,CAAa,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC;iBACrD,IAAI,CAAC,GAAG,EAAE,CAAC;iBACX,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC;iBACtG,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAA2B,CAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;qBACtG,EAAE,IAAI,KAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAA2B,CAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBAC/E,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC;aACX,CAAC,CAAC,CAAC;aACL,MAAM,IAAI,EAAE,CAAC;aACb,MAAM,CAAC;iBACL,KAAK,EAAE,CAAC;iBACR,MAAM,EAAE,MAAM;iBACd,KAAK,EAAE,EAAE;cACV,CAAC;SACJ,CAAC,CAAC,CAAC;SAEL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aACd,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;aACpD,MAAM,EAAE,MAAM;UACf,CAAC,CAAC;SACH,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SAIhD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACxC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAClB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACvD,CAAC;SAGD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SACtE,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;KACnE,CAAC;KACH,mBAAC;AAAD,EAAC,CA1eiC,KAAK,CAAC,gBAAgB,GA0evD;AA1eY,qBAAY,eA0exB;AAGD;KAAwC,sCAAsB;KAqB5D,4BAAoB,IAA0B,EAAE,MAAc,EAAU,MAAc,EAAE,OAAY;SAAZ,uBAAY,GAAZ,YAAY;SAClG,iBAAO,CAAC;SADU,SAAI,GAAJ,IAAI,CAAsB;SAA0B,WAAM,GAAN,MAAM,CAAQ;SApB9E,YAAO,GAAG;aAChB,SAAS,EAAE,EAAE;aACb,UAAU,EAAE,CAAC;aACb,aAAa,EAAE,CAAC;aAChB,QAAQ,EAAE,EAAE;aACZ,UAAU,EAAE,GAAG;aACf,aAAa,EAAE,CAAC;aAChB,OAAO,EAAE,IAAI;aAEb,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE;aAE/B,QAAQ,EAAE,KAAK;aAEf,UAAU,EAAE,CAAC;UACd,CAAC;SAIF,cAAS,GAAG,EAAE,CAAC,GAAG,EAA8B,CAAC;SAI/C,eAAe;SACf,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAEnC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SAEhF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC/B,CAAC;KAED,4CAAe,GAAf;SACE,MAAM,CAAC,gBAAK,CAAC,eAAe,WAAE,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;KAC1D,CAAC;KAED,sBAAI,oCAAI;cAAR;aACE,MAAM,CAAU,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACpC,CAAC;;;QAAA;KAED,sCAAS,GAAT,UAAU,GAAU,EAAE,KAAS;SAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KAC5B,CAAC;KAED,yCAAY,GAAZ,UAAa,IAAY;SACvB,YAAY;KACd,CAAC;KAED,mCAAM,GAAN,UAAO,SAAgB,EAAE,UAAkB;SAAlB,0BAAkB,GAAlB,kBAAkB;SACzC,YAAY;KACd,CAAC;KAED,8CAAiB,GAAjB,UAAkB,IAA0B;SAC1C,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,0BAA0B,EAAE,+BAA+B,CAAC,EAAE,IAAI,CAAC,CAAC;SACpF,CAAC;SACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB,IAAI,CAAC,EAAE,CAAC,0BAA0B,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAClF,gGAAgG;KAClG,CAAC;KAED,0CAAa,GAAb,UAAc,WAAkB;SAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;SAC3B,MAAM,CAAC;aACL,MAAM,EAAE,SAAS;aACjB,KAAK,YAAC,KAAY;iBAChB,MAAM,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACrD,CAAC;aACD,SAAS,YAAC,KAAY;iBACpB,MAAM,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACrD,CAAC;aACD,KAAK,YAAC,KAAY;iBAChB,MAAM,CAAC,CAAC,CAAC;aACX,CAAC;aACD,SAAS,YAAC,KAAY;iBACpB,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;aACtD,CAAC;aACD,QAAQ,YAAC,GAAgB;iBACvB,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACrD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;iBACnC,CAAC;iBACD,EAAE,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;qBAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;iBAClC,CAAC;iBACD,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAA8B,GAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;qBACnF,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;iBAClC,CAAC;iBACD,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACzC,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;aACzC,CAAC;aACD,MAAM,YAAC,GAAgB,EAAE,KAAgC,EAAE,IAAU,EAAE,OAAsC;iBAAtC,uBAAsC,GAAtC,cAAsC;iBAC3G,YAAY;aACd,CAAC;aACD,YAAY,YAAC,GAAgB,EAAE,GAA4B,EAAE,IAAU,EAAE,OAAsC;iBAAtC,uBAAsC,GAAtC,cAAsC;iBAC7G,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;iBACxC,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aACrD,CAAC;aACD,WAAW,YAAC,GAAgB;iBAC1B,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;aAC7D,CAAC;aACD,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAE1B,QAAQ,EAAE,UAAC,IAAsB,IAAK,WAAI,EAAJ,CAAI;aAE1C,mDAAmD;aACnD,YAAY,EAAE,UAAC,GAAiB,IAAK,cAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,GAAG,CAAC,MAAM,YAAY,KAAK,CAAC,OAAO,EAA5G,CAA4G;aAEjJ,MAAM,EAAE,UAAC,GAAU,EAAE,QAAY,IAAK,QAAC,GAAG,IAAI,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,EAA1C,CAA0C;UACjF,CAAC;KACJ,CAAC;KAGD,2CAAc,GAAd,UAAe,GAA6B,EAAE,QAAwB,EAAE,MAAiB,EAAE,MAAY,EAAE,OAA+B,EAAE,MAAc;SAAxJ,iBA8BC;SA7BC,IAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,YAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;SAC1D,GAAG,CAAC,IAAI,EAAE,CAAC;SAGX,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO,EAAE,CAAC;aAE1B,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;iBACxB,GAAG,CAAC,IAAI,EAAE,CAAC;iBACX,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBAElC,GAAG,CAAC,IAAI,EAAE,CAAC;iBACX,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;iBAC1B,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAC,KAAK,EAAC,CAAC;qBACxB,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;yBACd,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC3E,CAAC;iBACH,CAAC,CAAC,CAAC;iBACH,GAAG,CAAC,OAAO,EAAE,CAAC;iBAEd,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC;qBAChC,GAAG,CAAC,IAAI,EAAE,CAAC;qBACX,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACtC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;qBAChD,GAAG,CAAC,OAAO,EAAE,CAAC;iBAChB,CAAC,CAAC,CAAC;iBACH,GAAG,CAAC,OAAO,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC;SACL,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KAED,8CAAiB,GAAjB,UAAkB,GAA6B,EAAE,QAAwB,EAAE,MAAiB,EAAE,MAAY,EAAE,OAA+B;SAA3I,iBA4BC;SA3BC,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAC,CAAC,EAAxD,CAAwD,CAAC,CAAC;SACrG,GAAG,CAAC,IAAI,EAAE,CAAC;SACX,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC;SAC3B,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC;aACtB,GAAG,CAAC,IAAI,EAAE,CAAC;aACX,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aAEhE,IAAI,KAAK,GAAG,EAAE,CAAC;aACf,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,UAAU,EAAE,GAAG;iBAClC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;aAC1B,CAAC,CAAC,CAAC;aACH,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,UAAU,EAAE,GAAG,IAAK,QAAC;iBACjD,UAAU,EAAE,UAAU;iBACtB,IAAI,EAAE,GAAG;iBACT,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC;cACxB,CAAC,EAJgD,CAIhD,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,IAAI,IAAI,EAAd,CAAc,CAAC,CAAC;aAElC,GAAG,CAAC,SAAS,EAAE,CAAC;aAChB,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;iBACjB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;iBAC7E,GAAG,CAAC,MAAM,CAAC,KAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACrG,CAAC,CAAC,CAAC;aACH,GAAG,CAAC,MAAM,EAAE,CAAC;aAEb,GAAG,CAAC,OAAO,EAAE,CAAC;SAChB,CAAC,CAAC,CAAC;SACH,GAAG,CAAC,OAAO,EAAE,CAAC;KAChB,CAAC;KAED;;QAEG;KACH,mCAAM,GAAN;SAAA,iBAiDC;SAhDC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACvC,IAAI,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAnB,CAAmB,CAAC,IAAI,CAAC,CAAC;SACjE,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;SAC/C,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAC,CAAC,IAAK,QAAC,GAAG,KAAI,CAAC,OAAO,CAAC,SAAS,EAA1B,CAA0B,CAAC,CAAC;SAC/E,IAAI,WAAW,GAAG,UAAC,KAAc;aAC/B,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC/D,MAAM,CAAC,KAAK,CAAC;aACf,CAAC;aACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;SACjF,CAAC,CAAC;SACF,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,kBAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAzB,CAAyB,CAAC,CAAC;SAC5D,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAGpD,oFAAoF;SACpF,IAAI,MAAM,GAAG,CAAC,EACZ,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;aACzB,IAAI,CAAC,GAAG,MAAM,CAAC;aACf,MAAM,IAAI,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC;aAClC,IAAI,EAAE,GAAG,CAAC,EACR,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,QAAQ,EAAE,EAAb,CAAa,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC;iBACrD,IAAI,CAAC,GAAG,EAAE,CAAC;iBACX,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC;iBACtG,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;qBAC9E,EAAE,IAAI,KAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBACpD,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC;aACX,CAAC,CAAC,CAAC;aACL,MAAM,IAAI,EAAE,CAAC;aACb,MAAM,CAAC;iBACL,KAAK,EAAE,CAAC;iBACR,MAAM,EAAE,MAAM;iBACd,KAAK,EAAE,EAAE;cACV,CAAC;SACJ,CAAC,CAAC,CAAC;SAEL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aACd,KAAK,EAAE,MAAM;aACb,MAAM,EAAE,MAAM;UACf,CAAC,CAAC;SAEH,IAAM,GAAG,GAAuB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACpE,GAAG,CAAC,IAAI,GAAG,sBAAsB,CAAC;SAClC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;SACzB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,EAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAEvD,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SACpE,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;KACjE,CAAC;KACH,yBAAC;AAAD,EAAC,CAlOuC,KAAK,CAAC,gBAAgB,GAkO7D;AAlOY,2BAAkB,qBAkO9B;;;;;;;AC34CD;;;;IAIG;;AAEH,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,aAAa,uBAAW,EAAiB,CAAC,CAAC;AAGlD,qBAA2B,KAAK,EAAE,IAAI,EAAE,gBAAwB;KAAxB,gCAAwB,GAAxB,wBAAwB;KAC9D,MAAM,CAAC,yDAAyD,GAAG,KAAK,GAAG,SAAS;SAClF,gCAAgC;SAChC,IAAI,GAAG,qEAAqE;SAC5E,4EAA4E;SAC5E,iFAAiF,CAAC;AACtF,EAAC;AANe,mBAAU,aAMzB;AAED;;;;;;IAMG;AACH,oBAA0B,WAA6B,EAAE,KAAY,EAAE,IAAW;KAChF,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAU,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;KACpD,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;UACzC,IAAI,CAAC;SACJ,OAAO,EAAE,WAAW;MACrB,CAAC,CAAC,KAAK,CAAC;SACP,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI;SACrB,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI;MACpB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;KACnC;SACE,6EAA6E;SAC7E,qEAAqE;SACrE,6CAA6C;SAC7C,MAAM,CAAC,KAAK,CAAC;aACX,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,GAAS,EAAE,CAAC,KAAM,CAAC,EAAE,CAAC,GAAG,IAAI;aACjE,GAAG,EAAG,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAS,EAAE,CAAC,KAAM,CAAC,EAAE,CAAC,GAAG,IAAI;UACjE,CAAC,CAAC;KACL,CAAC;KACD,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;KACpF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE;SACnB,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;aAC1B,MAAM,CAAC,MAAM,EAAE,CAAC;SAClB,CAAC;KACH,CAAC,CAAC,CAAC;KACH,IAAI,IAAI,GAAqB,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;KACtE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SACT,IAAI,CAAC,KAAK,EAAE,CAAC;KACf,CAAC;KACD,MAAM,CAAC,MAAM,CAAC;AAEhB,EAAC;AA9Be,kBAAS,YA8BxB;AAED;;;;IAIG;AACH,2BAAiC,MAAmB,EAAE,OAAkC;KACtF,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,oDACR,MAAM,CAAC,KAAK,6GACX,MAAM,CAAC,KAAK,gEAC9B,MAAM,CAAC,WAAW,oBAAiB,CAAC,CAAC;KAE5D,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACpE,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACrE,IAAI,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SAChE,MAAM,CAAC,WAAW,CAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAC,CAAC,CAAC;SACtF,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;KAEH,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;AACL,EAAC;AAjBe,yBAAgB,mBAiB/B;AAGD;;;;IAIG;AACH,6BAAmC,MAAuB,EAAE,OAAkC,EAAE,SAAwB;KAAxB,yBAAwB,GAAxB,cAAwB;KACtH,IAAI,CAAC,GAAG,8CAAuC,MAAM,CAAC,OAAO,EAAE,0DAA+C,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,0BAA0B,GAAG,EAAE,WAAO,CAAC;KAC5K,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;SACzB,CAAC,IAAI,mCAAmC,GAAC,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,6BAAkB,CAAC,SAAI,EAAvB,CAAuB,CAAC,GAAC,aAAa,CAAC;KACvG,CAAC;KAED,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAAC;KAElE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACpE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAEzB,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;KAEH,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;AACL,EAAC;AAlBe,2BAAkB,qBAkBjC;AAED;;;;;IAKG;AACH,2BAAiC,MAAmB,EAAE,OAAkC,EAAE,QAA8B;KACtH,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,sIAAsI,CAAC,CAAC;KAEjL,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC7C,IAAI,MAAM,GAA0B,EAAE,CAAC,KAAK,CAAC,MAAO,CAAC,KAAK,CAAC;SAC3D,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;aACvB,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aACzE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBACZ,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;aAC9B,CAAC;aACD,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACxC,CAAC;KACH,CAAC,CAAC,CAAC;KAEH;SACE,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SAClE,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACrE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;aACtB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBACZ,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;aAC9B,CAAC;aACD,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACxC,CAAC;SACD,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC;KAED,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KAChE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;KAE5C,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;AACL,EAAC;AAhCe,yBAAgB,mBAgC/B;AAED;;;;IAIG;AACH,gCAAsC,MAAwB,EAAE,OAAkC;KAChG,IAAI,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,EAC/B,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAAC,CAAE,EAArC,CAAqC,CAAC,CAAC;KAElF,uBAAuB;KACvB,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;KAE/D,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;KAEnE,sCAAsC;KACtC,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAClE,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC7C,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;UACrB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;SACtB,IAAI,EAAE,QAAQ;SACd,KAAK,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,MAAM,EAAR,CAAQ;SACtB,GAAG,EAAE,CAAC;SACN,GAAG,EAAE,GAAG;SACR,IAAI,EAAE,CAAC;MACR,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;SACxB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;SACvB,MAAM,EAAE,CAAC;KACX,CAAC,CAAC,CAAC;KAEH,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;UACnC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,aAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAvB,CAAuB,CAAC;UAC7C,KAAK,CAAC,kBAAkB,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,CAAC,KAAK,EAAX,CAAW,CAAC,CAAC;KAEjD,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,GAAG,CAAC,KAAK,EAAX,CAAW,CAAC,CAAC;KAElD;SACE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,YAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,EAAtB,CAAsB,CAAC,CAAC;KAClF,CAAC;KAED,MAAM,EAAE,CAAC;KAET,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACnC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAC3B,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,QAAQ,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAA3B,CAA2B,CAAC,CAAC;SACxD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,MAAM,EAAR,CAAQ,CAAC,CAAC;SACzD,MAAM,EAAE,CAAC;KACV,CAAC,CAAC,CAAC;KACJ,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC/B,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,MAAM,EAAR,CAAQ,CAAC,CAAC,CAAC;SACjD,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;AACL,EAAC;AAjDe,8BAAqB,wBAiDpC;AAED;;;;IAIG;AACH,uBAAsB,OAAmC,EAAE,QAAgB;KAAhB,wBAAgB,GAAhB,gBAAgB;KACzE,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACxC,EAAC;AAED,qBAAoB,IAAY;KAC9B,MAAM,CAAC,UAAS,CAAC,EAAE,CAAC;SAClB,IAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAChB,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;SACf,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,CAAC;SACZ,CAAC;SACD,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC;SACX,CAAC;SACD,MAAM,CAAC,CAAC,CAAC;KACX,CAAC,CAAC;AACJ,EAAC;AAED;;;;IAIG;AACH,gCAA+B,MAA8B,EAAE,OAAkC;KAC/F,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;KACnC,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,6HAA6H,CAAC,CAAC;KAE7K,uBAAuB;KACvB,IAAM,MAAM,GAAG,MAAM,CAAC,cAAc,EAClC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;KACjC,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;SAC/C,MAAM,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC;KAC1G,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;KAE7B,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACjE,IAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC/C,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;KACpD,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;KACzE,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;SACtB,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3B,MAAM,EAAE,CAAC;KACb,CAAC,CAAC,CAAC;KAEH;SACE,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,yBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,GAAG,gBAAgB,EAAvE,CAAuE,CAAC,CAAC;SAChH,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,EAA1B,CAA0B,CAAC,CAAC;KACjF,CAAC;KAED,MAAM,EAAE,CAAC;KAET,IAAI,YAAY,GAAG,IAAI,CAAC;KAExB;SACE,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,yBAAkB,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,GAAG,gBAAgB,EAAxE,CAAwE,CAAC,CAAC;SACjH,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;aAClC,YAAY,GAAG,CAAC,YAAY,CAAC;aAC7B,MAAM,CAAC,OAAO,CAAC,UAAC,GAAG,IAAK,UAAG,CAAC,SAAS,GAAG,YAAY,EAA5B,CAA4B,CAAC,CAAC;aACtD,MAAM,EAAE,CAAC;aACT,eAAe,EAAE,CAAC;SACpB,CAAC,CAAC,CAAC;KACL,CAAC;KAED,eAAe,EAAE,CAAC;KAElB,oBAAoB,MAAM;SACxB,YAAY,CAAC,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;SACpF,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC3B,CAAC;KAED,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,UAAU,CAAC,GAAG,CAAC,CAAC;SAChB,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;KACH,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACjC,MAAM,CAAC,OAAO,CAAC,WAAC,IAAI,QAAC,CAAC,SAAS,GAAG,IAAI,EAAlB,CAAkB,CAAC,CAAC;SACxC,MAAM,EAAE,CAAC;SACT,UAAU,CAAC,IAAI,CAAC,CAAC;KACnB,CAAC,CAAC,CAAC;KACH,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC9B,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,SAAS,EAAX,CAAW,CAAC,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC;SAC1D,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;aAC/B,CAAC,GAAG,EAAE,CAAC;SACT,CAAC;SACD,UAAU,CAAC,CAAC,CAAC,CAAC;SACd,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;AACL,EAAC;AAED;;;;IAIG;AACH,2BAA0B,MAAyB,EAAE,OAAkC;KACrF,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,UAAU,GAAG,GAAG,KAAK,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;KAC3F,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;SACf,GAAG,GAAG,EAAE,CAAC;KACX,CAAC;KAED,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,EACtC,gGAAoF,CAAC,GAAG,YAAY,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,+EAC1F,CAAC,GAAG,YAAY,MAAM,CAAC,GAAG,mBAAmB,GAAG,EAAE,yFAA8E,UAAU,GAAG,mBAAmB,GAAG,EAAE,uCACpM,CAAC,CAAC;KAET,oBAAoB,MAAM;SACxB,YAAY,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC;SACjD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC3B,CAAC;KAED,oBAAoB,KAAK;SACvB,WAAW;SACX,IAAI,MAAM,GAAO,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACvE,IAAI,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAClG,EAAE,CAAC,CAAC,aAAa,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC;aACnC,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;SAC7C,CAAC;SACD,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC;aAClB,UAAU,CAAC,MAAM,CAAC,CAAC;aACnB,MAAM,CAAC;SACT,CAAC;SACD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;aAChC,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aACxF,EAAE,CAAC,CAAC,OAAO,IAAI,MAAM,KAAK,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;iBAC5D,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;aAC9B,CAAC;aACD,UAAU,CAAC,MAAM,CAAC,CAAC;SACrB,CAAC;KAEH,CAAC;KAED,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KACpE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;KAE5D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACnC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;SACjE,MAAM,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,YAAY,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;SACpH,MAAM,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;SAC7G,UAAU,CAAC,GAAG,CAAC,CAAC;SAChB,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SAC1D,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SACrE,UAAU,CAAC,IAAI,CAAC,CAAC;KACnB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC/B,UAAU,CAAC,IAAI,CAAC,CAAC;SACjB,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;AACL,EAAC;AAGD;;;;IAIG;AACH,4BAA2B,MAA0B,EAAE,OAAkC;KACvF,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;KAE7B,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,EACtC,yEAAgE,GAAG,KAAK,IAAI,GAAG,mBAAmB,GAAE,EAAE,0GACtC,GAAG,KAAK,IAAI,GAAG,mBAAmB,GAAE,EAAE,sGACrC,GAAG,KAAK,KAAK,GAAG,mBAAmB,GAAE,EAAE,8BACnG,CAAC,CAAC;KAET,oBAAoB,MAAM;SACxB,YAAY,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC;SACzC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC3B,CAAC;KAED,oBAAoB,KAAK;SACvB,WAAW;SACX,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACtF,IAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACxF,UAAU,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,GAAG,KAAK,GAAE,IAAI,CAAC,CAAC,CAAC;KACtD,CAAC;KAED,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KAEjE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACnC,UAAU,CAAC,GAAG,CAAC,CAAC;SAChB,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,IAAM,CAAC,GAAG,GAAG,KAAK,IAAI,GAAG,MAAM,GAAE,MAAM,CAAC,GAAG,CAAC,CAAC;SAC7C,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE;aAC1D,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;SAC1B,CAAC,CAAC,CAAC;SACH,UAAU,CAAC,IAAI,CAAC,CAAC;KACnB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC/B,UAAU,CAAC,IAAI,CAAC,CAAC;SACjB,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;AACL,EAAC;AAGD;;;;IAIG;AACH,+BAAqC,MAAyB,EAAE,OAAkC;KAChG,IAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;KAC/B,IAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,aAAa,EAC7C,oKACkF,MAAM,CAAC,SAAS,EAAE,oBAAiB,CAAC,CAAC;KAEzH,oBAAoB,MAAM;SACxB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC3B,CAAC;KAED;SACE,WAAW;SACX,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACzD,UAAU,CAAC,MAAM,CAAC,CAAC;KACrB,CAAC;KAED,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACnC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;SACjD,UAAU,CAAC,GAAG,CAAC,CAAC;SAChB,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;SAC/E,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;KAChD,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC/B,UAAU,EAAE,CAAC;SACb,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;AACL,EAAC;AA7Be,6BAAoB,uBA6BnC;AAED;;;;;IAKG;AACH,4BAA2B,MAAyB,EAAE,OAAyB,EAAE,IAA0B;KACzG,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EACpC,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,EACzB,QAAQ,GAAG,MAAM,CAAC,kBAAkB,EAAE,EACtC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAC9B,GAAG,GAA2B,GAAG,CAAC,KAAK,EAAE,EACzC,SAAS,GAAG,SAAS,CAAC;KAExB,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;UACxC,IAAI,CAAC;SACJ,OAAO,EAAE,UAAU;MACpB,CAAC,CAAC,KAAK,CAAC;SACP,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI;SACrB,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI;MACpB,CAAC;UACD,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,iCAAiC,CAAC,CAAC,CAAC;KAEzE,sBAAsB,QAAgC,EAAE,MAAmC;SACzF,GAAG,GAAG,QAAQ,CAAC;SACf,SAAS,GAAG,MAAM,CAAC;SACnB,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SAEhH,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC5B,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC3B,CAAC;KAED,IAAI,aAAa,GAAG;SAClB,QAAQ,EAAE,YAAY;SACtB,eAAe,EAAE,SAAS;MAC3B,CAAC;KACF,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;KAC7C,IAAI,MAAM,GAAG,aAAa,CAAC,MAAM,CAAc,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;KAG1I,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC9B,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SAC1C,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;KACH,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACvB,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;SACzC,KAAK,CAAC,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;KACH,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACjC,GAAG,GAAG,QAAQ,CAAC;SACf,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;SAClB,SAAS,GAAG,EAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAC,CAAC;SAC7C,SAAS,GAAG,SAAS,CAAC;SACtB,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SAC7B,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC;SAC3C,MAAM,GAAG,aAAa,CAAC,MAAM,CAAc,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;KACxI,CAAC,CAAC,CAAC;AACL,EAAC;AAGD;;;;IAIG;AACH,uCAAsC,MAAoC,EAAE,OAAyB;KACnG,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;KAEnC,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;KAE/D,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,0BAA0B,EAAE,uJAAuJ,CAAC,CAAC;KAErN,IAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EACnC,MAAM,GAAG,MAAM,CAAC,cAAc,EAC9B,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;KAEjC,IAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;SACxC,MAAM,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC;KACjI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;KAE7B,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAChE,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC7C,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;SAChE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3B,MAAM,EAAE,CAAC;KACX,CAAC,CAAC,CAAC;KACH,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;UACrB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;SACtB,IAAI,EAAE,QAAQ;SACd,KAAK,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO;SACrB,GAAG,EAAE,CAAC;SACN,GAAG,EAAE,GAAG;SACR,IAAI,EAAE,CAAC;MACR,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;SACxB,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;SACtB,MAAM,EAAE,CAAC;KACX,CAAC,CAAC,CAAC;KACH,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;KACtG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC;KAEzE;SACE,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,yBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,GAAG,gBAAgB,EAAvE,CAAuE,CAAC,CAAC;SAChH,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,YAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,EAArB,CAAqB,CAAC,CAAC;SAC/E,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,EAA1B,CAA0B,CAAC,CAAC;KACjF,CAAC;KAED,MAAM,EAAE,CAAC;KAET,IAAI,YAAY,GAAG,IAAI,CAAC;KAExB;SACE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,yBAAkB,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,GAAG,gBAAgB,EAAxE,CAAwE,CAAC,CAAC;SAClH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;aACnC,YAAY,GAAG,CAAC,YAAY,CAAC;aAC7B,MAAM,CAAC,OAAO,CAAC,UAAC,GAAG,IAAK,UAAG,CAAC,SAAS,GAAG,YAAY,EAA5B,CAA4B,CAAC,CAAC;aACtD,MAAM,EAAE,CAAC;aACT,eAAe,EAAE,CAAC;SACpB,CAAC,CAAC,CAAC;KACL,CAAC;KAED,eAAe,EAAE,CAAC;KAElB,oBAAoB,MAAM;SACxB,YAAY,CAAC,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;SACpF,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC3B,CAAC;KAED,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SACnC,UAAU,CAAC,GAAG,CAAC,CAAC;SAChB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACzB,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAClC,MAAM,CAAC,OAAO,CAAC,WAAC;aACd,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;aACnB,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;SACf,CAAC,CAAC,CAAC;SACH,MAAM,EAAE,CAAC;SACT,UAAU,CAAC,IAAI,CAAC,CAAC;SACjB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,cAAM,QAAC,EAAD,CAAC,CAAC,CAAC,CAAC;KACzC,CAAC,CAAC,CAAC;KACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;SAC/B,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,SAAS,EAAX,CAAW,CAAC,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC;SAC1D,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;aAC/B,CAAC,GAAG,EAAE,CAAC;SACT,CAAC;SACD,UAAU,CAAC,CAAC,CAAC,CAAC;SACd,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,KAAK,GAAG,GAAG,EAAb,CAAa,CAAC,CAAC,CAAC;SACpD,MAAM,CAAC,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC,CAAC;AACL,EAAC;AAED;;;IAGG;AACH;KACE,MAAM,CAAC;SACL,MAAM,EAAE,gBAAgB;SACxB,WAAW,EAAE,qBAAqB;SAClC,MAAM,EAAE,iBAAiB;SACzB,OAAO,EAAE,4BAA4B;SACrC,OAAO,EAAE,iBAAiB;MAC3B,CAAC;AACJ,EAAC;AARe,sBAAa,gBAQ5B;;;;;;;AChmBD;;IAEG;;AAEH,4CAA2C;AAC3C,KAAO,EAAE,uBAAW,CAAI,CAAC,CAAC;AAC1B,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAClC,KAAO,KAAK,uBAAW,CAAS,CAAC,CAAC;AAGlC,gBAAe,CAAS,EAAE,GAAW,EAAE,GAAW;KAChD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACzC,EAAC;AAED;KAeE,uBAAoB,MAAmB,EAAU,MAA8B,EAAU,QAAgC,EAAU,UAA+B,EAAU,WAA8B,EAAE,OAAiB;SAAjB,uBAAiB,GAAjB,YAAiB;SAAzM,WAAM,GAAN,MAAM,CAAa;SAAU,WAAM,GAAN,MAAM,CAAwB;SAAU,aAAQ,GAAR,QAAQ,CAAwB;SAAU,eAAU,GAAV,UAAU,CAAqB;SAAU,gBAAW,GAAX,WAAW,CAAmB;SAdlM,YAAO,GAAG;aAChB,KAAK,EAAE,GAAG;aACV,MAAM,EAAE,GAAG;aACX,WAAW,EAAE,CAAC;aACd,WAAW,EAAE,CAAC;aACd,aAAa,EAAE,EAAE;aACjB,MAAM,EAAE,CAAC;aACT,QAAQ,EAAE,UAAC,CAAC,IAAG,QAAC,EAAD,CAAC;aAChB,eAAe,EAAE,IAAI;aACrB,eAAe,EAAE,QAAQ,CAAC,iBAAiB;UAC5C,CAAC;SAKA,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACnC,sBAAsB;SACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;SAE7B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KAChC,CAAC;KAED,sBAAI,gCAAK;cAAT;aACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACrB,CAAC;;;QAAA;KAED,sBAAI,iCAAM;cAAV;aACE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;SAC9B,CAAC;;;QAAA;KAEO,6BAAK,GAAb,UAAc,KAAwB;SACpC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAC1B,IAAI,GAAG,IAAI,CAAC;SACd,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SAGtD,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;SACtD,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;SAElE,KAAK,CAAC,IAAI,EAAG,CAAC,SAAS,GAAG,u2BAkBtB,OAAO,CAAC,KAAK,oBAAa,OAAO,CAAC,MAAM,kCACxC,OAAO,CAAC,WAAW,gBAAS,OAAO,CAAC,WAAW,gBAAS,OAAO,CAAC,WAAW,iBAAS,KAAK,GAAC,OAAO,CAAC,WAAW,0EAChG,OAAO,CAAC,WAAW,mBAAY,KAAK,wDACjD,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,CAAC,kBAAS,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,CAAC,iBAAS,OAAO,CAAC,WAAW,iBAAS,KAAK,GAAC,OAAO,CAAC,WAAW,0EAC9I,OAAO,CAAC,WAAW,mBAAY,KAAK,8BAAoB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,EAAE,wDAClG,OAAO,CAAC,WAAW,SAAI,OAAO,CAAC,WAAW,kMAOvB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,EAAE,2YAMrC,KAAK,8sBAkBtD,CAAC;SAGT,IAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;cACpN,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;SACrB,IAAM,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;cAClD,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;SAErB,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;cAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;cACxC,EAAE,CAAC,MAAM,EAAE;aACV,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;aAC3B,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC9B,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACpB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;aAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;aACzB,SAAS,EAAE,CAAC;aACZ,aAAa,EAAE,CAAC;SAClB,CAAC,CAAC,CAAC;SACL,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;cAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;cACxC,EAAE,CAAC,MAAM,EAAE;aACV,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;aAC3B,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC9B,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACpB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;aAC7B,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;aACzB,SAAS,EAAE,CAAC;aACZ,aAAa,EAAE,CAAC;SAClB,CAAC,CAAC,CAAC;SAEL,kDAAkD;SAClD,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACrE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAC,IAAI;aACzB,kBAAkB;aAClB,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aAEzD,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjC,SAAS,CAAC,KAAK,EAAE;kBACd,MAAM,CAAC,MAAM,CAAC;kBACd,IAAI,CAAC;iBACJ,EAAE,EAAE,UAAC,CAAC,IAAK,mBAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAjC,CAAiC;iBAC5C,EAAE,EAAE,CAAC;iBACL,EAAE,EAAE,SAAS;iBACb,EAAE,EAAE,MAAM;cACX,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC;iBAClC,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;iBACjC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;aAC5E,CAAC,CAAC,CAAC;SACL,CAAC,CAAC,CAAC;SAEH;aACE,SAAS,CAAC,IAAI,CAAC;iBACb,EAAE,EAAE,UAAC,CAAC,IAAK,mBAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAjC,CAAiC;iBAC5C,EAAE,EAAE,SAAS;cACd,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC;iBAChC,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;iBACjC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;aAC5E,CAAC,CAAC,CAAC;SACL,CAAC;SAED,oBAAoB,IAAI;aACtB,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE;kBACtB,EAAE,CAAC,WAAW,EAAE;iBACf,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;sBACZ,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;sBACzB,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;aACrC,CAAC,CAAC;kBACD,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;kBAChB,EAAE,CAAC,SAAS,EAAE;iBACb,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;sBACZ,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;sBAC1B,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;iBAC7B,aAAa,CAAC,IAAI,CAAC,CAAC;aACtB,CAAC,CAAC,CAAC;SACP,CAAC;SAED,IAAI,aAAa,GAAG,EAAE,CAAC;SAEvB;aACE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;iBACxD,MAAM,CAAC;aACT,CAAC;aAED,CAAC;iBACC,IAAI,MAAM,GAA+B,IAAI,CAAC,KAAK,CAAC;iBACpD,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;iBAC3B,IAAI,OAAK,GAAG,MAAM,CAAC,KAAK,CAAC;iBAEzB,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAK,CAAC,CAAC,CAAC,EAAC,CAAC,EAArB,CAAqB,CAAC,CAAC;aAC9D,CAAC;aAED;iBACE,mBAAmB;iBACnB,aAAa,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAT,CAAS,CAAC,CAAC;iBACxC,kBAAkB;iBAClB,IAAI,KAAK,GAA+B,IAAI,CAAC,KAAK,CAAC;iBACnD,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC;iBAC7C,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,QAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC;iBAE5C,2CAA2C;iBAC3C,eAAe,EAAE,CAAC;aACpB,CAAC;aAED,qBAAqB,CAAC;iBACpB,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;qBAC9B,MAAM,CAAC,CAAC,wCAAwC;iBAClD,CAAC;iBACD,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC3B,WAAW,EAAE,CAAC;iBACd,kBAAkB,EAAE,CAAC;aACvB,CAAC;aAED,kBAAkB,CAAC;iBACjB,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBACvB,aAAa,CAAC,IAAI,CAAC;qBACjB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;qBACzB,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;kBACvB,CAAC,CAAC;iBACH,WAAW,EAAE,CAAC;iBACd,kBAAkB,EAAE,CAAC;aACvB,CAAC;aAED,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;iBACxC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACxD,CAAC,CAAC,CAAC;aAEH,IAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACvF,IAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,UAAC,CAAC,EAAE,CAAC;iBAClG,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;iBAC1B,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;iBAC3B,WAAW,CAAC,CAAC,CAAC,CAAC;aACjB,CAAC,CAAC,CAAC;aACH,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;iBACjC,EAAE,EAAE,CAAC;iBACL,EAAE,EAAE,MAAM;cACX,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;iBAC5B,6CAA6C;iBAC7C,IAAM,EAAE,GAAS,EAAE,CAAC,KAAM,CAAC,EAAE,CAAC;iBAC9B,IAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBACnD,IAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBAChD,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;iBAC9B,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;iBAC3B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;iBAC9C,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;iBACzE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;iBAElE,WAAW,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC,CAAC;aACJ,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;iBAC/G,iBAAiB;iBACjB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBACtC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC7B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAC9B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAE3D,WAAW,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC,CAAC;aACJ,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;iBAC3H,UAAU;iBACV,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBACtC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC1B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAC9B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAE3D,WAAW,EAAE,CAAC;aAChB,CAAC,CAAC,CAAC,CAAC;aAEJ,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;iBAC3B,EAAE,EAAE,UAAC,CAAC,IAAK,mBAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAjB,CAAiB;iBAC5B,EAAE,EAAE,UAAC,CAAC,IAAK,gBAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAd,CAAc;cAC1B,CAAC,CAAC;aACH,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,mBAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;aAC1E,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,gBAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAd,CAAc,CAAC,CAAC;aAChE,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;SAC3B,CAAC;SAED;aACE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;iBACzD,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;iBACpD,MAAM,CAAC;aACT,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;aAElD,IAAI,MAAM,GAAgC,IAAI,CAAC,KAAK,CAAC;aACrD,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAEzD,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;iBACtD,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBACtC,eAAe,EAAE,CAAC;iBAClB,aAAa,EAAE,CAAC;aAClB,CAAC,CAAC,CAAC;SACL,CAAC;SAED,kBAAkB,EAAE,CAAC;SACrB,YAAY,EAAE,CAAC;SAEf,uBAAuB,SAAiB;aAAjB,yBAAiB,GAAjB,iBAAiB;aACtC,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;iBACzD,MAAM,CAAC;aACT,CAAC;aACD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAClF,CAAC;SAED,CAAC;aACC,IAAI,YAAU,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aACtF,IAAI,YAAU,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;aAC1F,IAAI,gBAAc,GAAG,UAAC,CAAS,EAAE,CAAS,IAAK,eAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAG,CAAC,GAAC,GAAG,GAAC,GAAG,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAApD,CAAoD,CAAC;aACpG,KAAK,CAAC,SAAS,CAAC,+BAA+B,CAAC;kBAC7C,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;kBAChD,IAAI,CAAC,WAAW,EAAE,UAAC,CAAC,EAAC,CAAC,IAAK,wBAAa,CAAC,KAAG,CAAC,GAAC,YAAU,GAAC,YAAU,UAAK,EAA7C,CAA6C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAC,CAAC;iBAEtG,iBAAiB;iBACjB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBACtC,IAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC9B,IAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAE,KAAK,IAAI,CAAC,KAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;iBACpF,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;sBAC1B,IAAI,CAAC,WAAW,EAAC,eAAa,CAAC,QAAK,CAAC;sBACrC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAc,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC,CAAC;aACnD,CAAC,CAAC,CAAC;kBACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAc,CAAC,CAAC;SACzC,CAAC;SAED,IAAI,CAAC,aAAa,GAAG;aACnB,MAAM,CAAC;iBACL,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;iBACtD,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;cACxD,CAAC;SACJ,CAAC,CAAC;SAEF;aACE,IAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;aAC7B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACtD,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAEtD,eAAe,EAAE,CAAC;aAClB,kBAAkB,EAAE,CAAC;SACvB,CAAC;SAED,SAAS,EAAE,CAAC;SAEZ,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE;aAClC,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;aACrB,EAAE,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC;iBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACrF,CAAC;aAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC;iBAC9B,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;iBAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACrG,CAAC;aAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;iBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;aACpE,CAAC;aAAC,IAAI,CAAC,CAAC;iBACN,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;aACtE,CAAC;aACD,eAAe,EAAE,CAAC;aAClB,kBAAkB,EAAE,CAAC;aACrB,YAAY,EAAE,CAAC;aACf,aAAa,EAAE,CAAC;SAClB,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE;aAC3B,IAAI,IAAI,GAAG,QAAQ,CAAC;aACpB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,YAAY,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;iBACtD,IAAI,GAAgC,IAAI,CAAC,KAAM,CAAC,SAAS,CAAC;aAC5D,CAAC;aACD,IAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;aAC3G,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC7B,CAAC,CAAC,CAAC;KACL,CAAC;KACH,oBAAC;AAAD,EAAC;AA1WY,sBAAa,gBA0WzB;AAED,iBAAuB,MAAmB,EAAE,KAA6B,EAAE,QAAgC,EAAE,MAA2B,EAAE,WAA8B,EAAE,OAAiB;KAAjB,uBAAiB,GAAjB,YAAiB;KACzL,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAClF,EAAC;AAFe,eAAM,SAErB","file":"LineUpJS_bundle.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"LineUpJS\"] = factory();\n\telse\n\t\troot[\"LineUpJS\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap bc778b4743a25a87a513\n **/","/**\r\n * Created by Samuel Gratzl on 26.09.2016.\r\n */\r\nrequire('./style.scss');\r\nmodule.exports = require('./main.ts');\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/bundle.js\n ** module id = 0\n ** module chunks = 0\n **/","// style-loader: Adds some css to the DOM by adding a