@openremote/or-rules 1.3.3 → 1.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,111 +0,0 @@
1
- var OrRuleList_1,__decorate=this&&this.__decorate||function(e,t,s,i){var l,r=arguments.length,o=r<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,s):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,s,i);else for(var n=e.length-1;n>=0;n--)(l=e[n])&&(o=(r<3?l(o):r>3?l(t,s,o):l(t,s))||o);return r>3&&o&&Object.defineProperty(t,s,o),o},__awaiter=this&&this.__awaiter||function(e,t,s,i){return new(s||(s=Promise))((function(l,r){function o(e){try{a(i.next(e))}catch(e){r(e)}}function n(e){try{a(i.throw(e))}catch(e){r(e)}}function a(e){var t;e.done?l(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(o,n)}a((i=i.apply(e,t||[])).next())}))};import{css,html,LitElement}from"lit";import{customElement,property}from"lit/decorators.js";import"@openremote/or-translate";import manager,{Util}from"@openremote/core";import"@openremote/or-mwc-components/or-mwc-input";import{InputType}from"@openremote/or-mwc-components/or-mwc-input";import{style as OrAssetTreeStyle}from"@openremote/or-asset-tree";import{OrRules,OrRulesAddEvent,OrRulesRequestAddEvent,OrRulesRequestDeleteEvent,OrRulesRequestSelectionEvent,OrRulesSelectionEvent,RuleViewInfoMap}from"./index";import"@openremote/or-mwc-components/or-mwc-menu";import{getContentWithMenuTemplate}from"@openremote/or-mwc-components/or-mwc-menu";import{translate}from"@openremote/or-translate";import i18next from"i18next";import{showErrorDialog,showOkCancelDialog}from"@openremote/or-mwc-components/or-mwc-dialog";const style=css`
2
- :host {
3
- flex-grow: 1;
4
- font-size: var(--internal-or-rules-list-text-size);
5
-
6
- /*Override asset tree styles*/
7
- --internal-or-asset-tree-header-height: var(--internal-or-rules-list-header-height);
8
- }
9
-
10
- #wrapper {
11
- display: flex;
12
- flex-direction: column;
13
- height: 100%;
14
- width: 100%;
15
- }
16
-
17
- #wrapper[data-disabled] {
18
- opacity: 0.3;
19
- pointer-events: none;
20
- }
21
-
22
- .node-container {
23
- align-items: center;
24
- padding-left: 10px;
25
- }
26
-
27
- .header-ruleset-type {
28
- display: flex;
29
- align-items: center;
30
- height: var(--internal-or-asset-tree-header-height);
31
- line-height: var(--internal-or-asset-tree-header-height);
32
- color: var(--internal-or-rules-panel-color);
33
- background-color: var(--internal-or-rules-header-background-color);
34
- }
35
-
36
- #header-btns {
37
- --or-mwc-input-color: var(--internal-or-rules-text-color);
38
- }
39
-
40
- .header-ruleset-type p {
41
- margin: 0 15px;
42
- }
43
-
44
- .node-status {
45
- --or-icon-width: 18px;
46
- margin-right: 8px;
47
- }
48
-
49
- .node-language{
50
- padding-left: 10px;
51
- opacity: 50%;
52
- }
53
-
54
- .iconfill-gray {
55
- --or-icon-fill: var(--internal-or-rules-list-icon-color-ok);
56
- }
57
-
58
- .iconfill-red {
59
- --or-icon-fill: var(--internal-or-rules-list-icon-color-error);
60
- }
61
- `;let OrRuleList=OrRuleList_1=class extends(translate(i18next)(LitElement)){constructor(){super(...arguments),this.readonly=!1,this.disabled=!1,this.multiSelect=!0,this._showLoading=!0,this._globalRulesets=!1,this._selectedNodes=[],this._rulesetPromises=new Map,this._ready=!1}static get styles(){return[OrAssetTreeStyle,style]}refresh(){return __awaiter(this,void 0,void 0,(function*(){this._nodes=void 0}))}get _allowedLanguages(){const e=this.config&&this.config.controls&&this.config.controls.allowedLanguages?[...this.config.controls.allowedLanguages]:OrRuleList_1.DEFAULT_ALLOWED_LANGUAGES,t=e.indexOf("GROOVY"),s=e.indexOf("FLOW");return manager.isSuperUser()?t<0&&e.push("GROOVY"):t>0&&e.splice(t,1),this._globalRulesets&&s>0&&e.splice(s,1),e}_updateLanguage(){const e=this._allowedLanguages;e&&0!==e.length?(!this.language||e.indexOf(this.language)<0)&&(this.language=e[0]):this.language=void 0}_onReady(){this._ready=!0,this._loadRulesets()}firstUpdated(e){super.firstUpdated(e),manager.ready&&this._onReady()}shouldUpdate(e){const t=super.shouldUpdate(e);if(this.sortBy||(this.sortBy="name"),e.has("language")&&this._updateLanguage(),e.has("_globalRulesets")&&(this._updateLanguage(),this.refresh()),manager.ready){if(!this._nodes)return this._loadRulesets(),!0;if(e.has("selectedIds")){let t=!0;const s=e.get("selectedIds");this.selectedIds&&s&&this.selectedIds.length===s.length&&(t=!!this.selectedIds.find((e=>s.indexOf(e)<0))),t&&this._updateSelectedNodes()}e.has("sortBy")&&OrRuleList_1._updateSort(this._nodes,this._getSortFunction())}return t}render(){this.language||this._updateLanguage();const e=this._allowedLanguages,t=["name","createdOn","status"];e&&e.length>1&&t.push("lang");let s="";return this._isReadonly()||(s=e&&e.length>1?getContentWithMenuTemplate(html`<or-mwc-input type="${InputType.BUTTON}" icon="plus"></or-mwc-input>`,e.map((e=>({value:e,text:i18next.t("rulesLanguages."+e)}))),this.language,(e=>this._onAddClicked(e))):html`<or-mwc-input type="${InputType.BUTTON}" icon="plus" @or-mwc-input-changed="${()=>this._onAddClicked(this.language)}"></or-mwc-input>`),html`
62
- <div id="wrapper" ?data-disabled="${this.disabled}">
63
- ${manager.isSuperUser()?html`
64
- <div class="header-ruleset-type">
65
- <p>${i18next.t("realmRules")}</p>
66
-
67
- <div style="flex: 1 1 0; display: flex;">
68
- <or-mwc-input style="margin: auto;" type="${InputType.SWITCH}" @or-mwc-input-changed="${e=>this._globalRulesets=e.detail.value}"></or-mwc-input>
69
- </div>
70
-
71
- <p>${i18next.t("globalRules")}</p>
72
- </div>
73
- `:""}
74
-
75
- <div id="header">
76
- <div id="title-container">
77
- <or-translate id="title" value="rule_plural"></or-translate>
78
- </div>
79
-
80
- <div id="header-btns">
81
- <or-mwc-input ?hidden="${this._isReadonly()||!this.selectedIds||0===this.selectedIds.length}" type="${InputType.BUTTON}" icon="content-copy" @or-mwc-input-changed="${()=>this._onCopyClicked()}"></or-mwc-input>
82
- <or-mwc-input ?hidden="${this._isReadonly()||!this.selectedIds||0===this.selectedIds.length}" type="${InputType.BUTTON}" icon="delete" @or-mwc-input-changed="${()=>this._onDeleteClicked()}"></or-mwc-input>
83
- ${s}
84
- <or-mwc-input hidden type="${InputType.BUTTON}" icon="magnify" @or-mwc-input-changed="${()=>this._onSearchClicked()}"></or-mwc-input>
85
-
86
- ${getContentWithMenuTemplate(html`<or-mwc-input type="${InputType.BUTTON}" icon="sort-variant" ></or-mwc-input>`,t.map((e=>({value:e,text:i18next.t(e)}))),this.sortBy,(e=>this._onSortClicked(e)))}
87
- </div>
88
- </div>
89
-
90
- ${!this._nodes||this._showLoading?html`
91
- <span id="loading"><or-translate value="loading"></or-translate></span>`:html`
92
- <div id="list-container">
93
- <ol id="list">
94
- ${this._nodes.map((e=>this._nodeTemplate(e)))}
95
- </ol>
96
- </div>
97
- `}
98
-
99
- <div id="footer">
100
-
101
- </div>
102
- </div>
103
- `}_isReadonly(){return this.readonly||!manager.hasRole("write:rules")}_nodeTemplate(e){let t="help",s="iconfill-gray",i="mdi-state-machine",l="Unknown language";switch(e.ruleset.status){case"DEPLOYED":t="",s="iconfill-gray";break;case"READY":t="check",s="iconfill-gray";break;case"COMPILATION_ERROR":case"LOOP_ERROR":case"EXECUTION_ERROR":t="alert-octagon",s="iconfill-red";break;case"DISABLED":t="minus-circle",s="iconfill-gray";break;case"PAUSED":t="calendar-arrow-right",s="iconfill-gray";break;case"EXPIRED":t="calendar-remove",s="iconfill-gray";break;case"REMOVED":t="close",s="iconfill-gray";break;default:t="stop",s="iconfill-gray"}switch(e.ruleset.lang){case"JSON":i="ray-start-arrow",l="rulesLanguages.JSON";break;case"FLOW":i="transit-connection-variant",l="rulesLanguages.FLOW";break;case"GROOVY":i="alpha-g-box-outline",l="rulesLanguages.GROOVY";break;case"JAVASCRIPT":i="language-javascript",l="rulesLanguages.JAVASCRIPT";break;default:i="mdi-state-machine",l="Unknown language"}return html`
104
- <li ?data-selected="${e.selected}" @click="${t=>this._onNodeClicked(t,e)}">
105
- <div class="node-container">
106
- <or-icon style="--or-icon-width: 18px; margin-right: 8px;" icon="${i}" title="${i18next.t(l)}"></or-icon>
107
- <span class="node-name">${e.ruleset.name}</span>
108
- <or-icon class="node-status ${s}" title="${i18next.t("rulesetStatus."+(e.ruleset.status?e.ruleset.status:"NOSTATUS"))}" icon="${t}"></or-icon>
109
- </div>
110
- </li>
111
- `}static _getNodeStatusClasses(e){let t=e.enabled?"bg-green":"bg-red";if(e.enabled&&e.meta&&e.meta.validity){const s=e.meta.validity,i=(new Date).getTime();s.start&&(i<s.start?t="bg-blue":s.end&&i>s.end?t="bg-grey":s.recurrence)}return t}_updateSelectedNodes(){const e=[],t=[];this._nodes&&this._nodes.forEach((s=>{this.selectedIds&&this.selectedIds.indexOf(s.ruleset.id)>=0?(e.push(s.ruleset.id),t.push(s),s.selected=!0):s.selected=!1})),this.selectedIds=e;const s=this._selectedNodes;this._selectedNodes=t,this.dispatchEvent(new OrRulesSelectionEvent({oldNodes:s,newNodes:t}))}static _updateSort(e,t){e&&e.sort(t)}_onNodeClicked(e,t){if(e.defaultPrevented)return;e.preventDefault();let s=[];const i=this._selectedNodes.indexOf(t);let l=!0,r=!0;!this._isReadonly()&&this.multiSelect&&(!this.config||!this.config.controls||!this.config.controls.multiSelect)&&(e.ctrlKey||e.metaKey)&&(r=!1,i>=0&&this._selectedNodes&&this._selectedNodes.length>1&&(l=!1)),r?s=[t]:l?i<0&&(s=[...this._selectedNodes],s.push(t)):i>=0&&(s=[...this._selectedNodes],s.splice(i,1)),Util.dispatchCancellableEvent(this,new OrRulesRequestSelectionEvent({oldNodes:this._selectedNodes,newNodes:s})).then((e=>{e.allow&&(this.selectedIds=e.detail.newNodes.map((e=>e.ruleset.id)))}))}_onCopyClicked(){if(1!==this._selectedNodes.length)return;const e=this._selectedNodes[0],t=JSON.parse(JSON.stringify(e.ruleset));delete t.lastModified,delete t.createdOn,delete t.status,delete t.error,delete t.id,t.name=t.name+" copy",this.config&&this.config.rulesetCopyHandler&&!this.config.rulesetCopyHandler(t)||Util.dispatchCancellableEvent(this,new OrRulesRequestAddEvent({ruleset:t,sourceRuleset:e.ruleset})).then((e=>{e.allow&&this.dispatchEvent(new OrRulesAddEvent(e.detail))}))}_onAddClicked(e){const t=this._globalRulesets?"global":"realm",s=manager.isSuperUser()?manager.displayRealm:manager.config.realm,i={id:0,type:t,name:OrRules.DEFAULT_RULESET_NAME,lang:e,realm:s,rules:void 0};if(this.config&&this.config.rulesetAddHandler&&!this.config.rulesetAddHandler(i))return;this.config&&this.config.rulesetTemplates&&this.config.rulesetTemplates[e]?i.rules=this.config.rulesetTemplates[e]:i.rules=RuleViewInfoMap[e].viewRulesetTemplate,"realm"===t&&(i.realm=s);const l={ruleset:i,isCopy:!1};Util.dispatchCancellableEvent(this,new OrRulesRequestAddEvent(l)).then((e=>{e.allow&&this.dispatchEvent(new OrRulesAddEvent(e.detail))}))}_onDeleteClicked(){this._selectedNodes.length>0&&Util.dispatchCancellableEvent(this,new OrRulesRequestDeleteEvent(this._selectedNodes)).then((e=>{e.allow&&this._doDelete()}))}_doDelete(){if(!this._selectedNodes||0===this._selectedNodes.length)return;const e=this._selectedNodes.map((e=>e.ruleset)),t=e.map((e=>"\n- "+e.name)),s=()=>__awaiter(this,void 0,void 0,(function*(){this.disabled=!0;let t=!1;for(const s of e)if(!this.config||!this.config.rulesetDeleteHandler||this.config.rulesetDeleteHandler(s))try{let e;switch(s.type){case"asset":e=yield manager.rest.api.RulesResource.deleteAssetRuleset(s.id);break;case"realm":e=yield manager.rest.api.RulesResource.deleteRealmRuleset(s.id);break;case"global":e=yield manager.rest.api.RulesResource.deleteGlobalRuleset(s.id)}204!==e.status&&(console.error("Delete ruleset returned unexpected status '"+e.status+"': "+JSON.stringify(s,null,2)),t=!0)}catch(e){console.error("Failed to delete ruleset: "+JSON.stringify(s,null,2),e),t=!0}t&&showErrorDialog(i18next.t("deleteAssetsFailed")),this.disabled=!1,this.refresh()}));showOkCancelDialog(i18next.t("deleteRulesets"),i18next.t("deleteRulesetsConfirm",{ruleNames:t}),i18next.t("delete")).then((e=>{e&&s()}))}_onSearchClicked(){}_onSortClicked(e){this.sortBy=e}_getSortFunction(){return"createdOn"===this.sortBy?Util.sortByNumber((e=>e.ruleset[this.sortBy])):Util.sortByString((e=>e.ruleset[this.sortBy]))}_getRealm(){return manager.isSuperUser()?manager.displayRealm:manager.getRealm()}_loadRulesets(){return __awaiter(this,void 0,void 0,(function*(){const e=this._getSortFunction();let t;if(this._globalRulesets)0!=this._rulesetPromises.size||this._rulesetPromises.has("global")||this._rulesetPromises.set("global",new Promise((e=>__awaiter(this,void 0,void 0,(function*(){const t=yield manager.rest.api.RulesResource.getGlobalRulesets({fullyPopulate:!0});e(t.data)}))))),t=yield this._rulesetPromises.get("global"),this._rulesetPromises.delete("global");else{const e=this._getRealm()||manager.displayRealm;0!=this._rulesetPromises.size||this._rulesetPromises.has(e)||this._rulesetPromises.set(e,new Promise((t=>__awaiter(this,void 0,void 0,(function*(){const s={fullyPopulate:!0,language:this._allowedLanguages},i=yield manager.rest.api.RulesResource.getRealmRulesets(e,s);t(i.data)}))))),t=yield this._rulesetPromises.get(e),this._rulesetPromises.delete(e)}t&&this._buildTreeNodes(t,e)}))}_buildTreeNodes(e,t){if(e&&0!==e.length){const s=e.map((e=>({ruleset:e})));s.sort(t),this._nodes=s}else this._nodes=[];this.selectedIds&&this.selectedIds.length>0&&this._updateSelectedNodes(),this._showLoading=!1}};OrRuleList.DEFAULT_ALLOWED_LANGUAGES=["JSON","GROOVY","JAVASCRIPT","FLOW"],__decorate([property({type:Object})],OrRuleList.prototype,"config",void 0),__decorate([property({type:Boolean})],OrRuleList.prototype,"readonly",void 0),__decorate([property({type:Boolean})],OrRuleList.prototype,"disabled",void 0),__decorate([property({type:Boolean})],OrRuleList.prototype,"multiSelect",void 0),__decorate([property({type:Array})],OrRuleList.prototype,"selectedIds",void 0),__decorate([property({type:String})],OrRuleList.prototype,"sortBy",void 0),__decorate([property({type:String})],OrRuleList.prototype,"language",void 0),__decorate([property({attribute:!1})],OrRuleList.prototype,"_nodes",void 0),__decorate([property({attribute:!1})],OrRuleList.prototype,"_showLoading",void 0),__decorate([property({type:Boolean})],OrRuleList.prototype,"_globalRulesets",void 0),OrRuleList=OrRuleList_1=__decorate([customElement("or-rule-list")],OrRuleList);export{OrRuleList};
@@ -1 +0,0 @@
1
- {"version":3,"file":"or-rule-list.js","sourceRoot":"","sources":["../src/or-rule-list.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAiC,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE1D,OAAO,0BAA0B,CAAC;AAClC,OAAO,OAAO,EAAE,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,4CAA4C,CAAC;AACpD,OAAO,EAAC,SAAS,EAAsB,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAAC,KAAK,IAAI,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,EACH,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EAER,eAAe,EAC/B,MAAM,SAAS,CAAC;AACjB,OAAO,2CAA2C,CAAC;AACnD,OAAO,EAAC,0BAA0B,EAAC,MAAM,2CAA2C,CAAC;AAErF,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AACnD,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,6CAA6C,CAAC;AAGhG,eAAe;AACf,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DhB,CAAC;AAGK,IAAM,UAAU,kBAAhB,MAAM,UAAW,SAAQ,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;IAAvD;;QAQI,aAAQ,GAAY,KAAK,CAAC;QAG1B,aAAQ,GAAY,KAAK,CAAC;QAG1B,gBAAW,GAAY,IAAI,CAAC;QAezB,iBAAY,GAAY,IAAI,CAAC;QAG7B,oBAAe,GAAY,KAAK,CAAC;QAEjC,mBAAc,GAAkB,EAAE,CAAC;QACnC,qBAAgB,GAAgC,IAAI,GAAG,EAA0B,CAAC;QAClF,WAAM,GAAG,KAAK,CAAC;IAyjB7B,CAAC;IAvjBG,MAAM,KAAK,MAAM;QACb,OAAO;YACH,gBAAgB;YAChB,KAAK;SACR,CAAC;IACN,CAAC;IAEY,OAAO;;YAChB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,6DAA6D;QACjE,CAAC;KAAA;IAED,IAAc,iBAAiB;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAU,CAAC,yBAAyB,CAAC;QACnL,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,mCAAoB,CAAC;QAC1D,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,+BAAkB,CAAC;QACtD,IAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAG,WAAW,GAAG,CAAC;gBAAE,SAAS,CAAC,MAAM,CAAC,WAAW,EAAC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,IAAI,mCAAoB,CAAC;QACvC,CAAC;QACD,IAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,IAAG,SAAS,GAAG,CAAC;gBAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,eAAe;QACrB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC5C,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC9B,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAES,QAAQ;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAES,YAAY,CAAC,kBAAkC;QACrD,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC;IACL,CAAC;IAEM,YAAY,CAAC,kBAAkC;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAEtD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;QAED,IAAI,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACf,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;gBACxC,IAAI,OAAO,GAAG,IAAI,CAAC;gBACnB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAa,CAAC;gBACnE,IAAI,IAAI,CAAC,WAAW,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC9E,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1F,CAAC;gBACD,IAAI,OAAO,EAAE,CAAC;oBACV,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAChC,CAAC;YACL,CAAC;YAED,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,YAAU,CAAC,WAAW,CAAC,IAAI,CAAC,MAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAClE,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,MAAM;QACZ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChD,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;QACnD,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE7E,IAAI,WAAW,GAA4B,EAAE,CAAC;QAE9C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACtB,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,WAAW,GAAG,0BAA0B,CACpC,IAAI,CAAA,uBAAuB,SAAS,CAAC,MAAM,+BAA+B,EAC1E,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACvB,OAAO,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,EAAa,CAAC;gBAC1E,CAAC,CAAC,EACF,IAAI,CAAC,QAAQ,EACb,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAgB,CAAC,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACJ,WAAW,GAAG,IAAI,CAAA,uBAAuB,SAAS,CAAC,MAAM,wCAAwC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAS,CAAC,mBAAmB,CAAC;YACjK,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAA;gDAC6B,IAAI,CAAC,QAAQ;kBAC3C,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;;6BAEjB,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;;;wEAGoB,SAAS,CAAC,MAAM,4BAA4B,CAAC,GAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK;;;6BAG5J,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;;iBAEpC,CAAC,CAAC,CAAC,EAAE;;;;;;;;iDAQ2B,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,WAAW,SAAS,CAAC,MAAM,gDAAgD,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;iDAC9K,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,WAAW,SAAS,CAAC,MAAM,0CAA0C,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;0BACjM,WAAW;qDACgB,SAAS,CAAC,MAAM,2CAA2C,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;;0BAEnH,0BAA0B,CACxC,IAAI,CAAA,uBAAuB,SAAS,CAAC,MAAM,wCAAwC,EACnF,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAc,CAAC,CAAC,CAAC,CAAC,EACzF,IAAI,CAAC,MAAM,EACX,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAW,CAAC,CAAC;;;;kBAIlC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY;YACnC,CAAC,CAAC,IAAI,CAAA;gGAC0E;YAChF,CAAC,CAAC,IAAI,CAAA;;;kCAGY,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;;;qBAIjF;;;;;;SAMH,CAAC;IACN,CAAC;IAES,WAAW;QACjB,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,4CAAwB,CAAC;IACrE,CAAC;IAES,aAAa,CAAC,IAAiB;QAErC,IAAI,UAAU,GAAW,MAAM,CAAC;QAChC,IAAI,WAAW,GAAW,eAAe,CAAC;QAC1C,IAAI,QAAQ,GAAW,mBAAmB,CAAC;QAC3C,IAAI,SAAS,GAAW,kBAAkB,CAAC;QAC3C,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAC,CAAC;YACzB,KAAK,UAAU;gBACX,UAAU,GAAG,EAAE,CAAC;gBAChB,WAAW,GAAG,eAAe,CAAC;gBAC9B,MAAM;YACV,KAAK,OAAO;gBACR,UAAU,GAAG,OAAO,CAAC;gBACrB,WAAW,GAAG,eAAe,CAAC;gBAC9B,MAAM;YACV,KAAK,mBAAmB,CAAC;YACzB,KAAK,YAAY,CAAC;YAClB,KAAK,iBAAiB;gBAClB,UAAU,GAAG,eAAe,CAAC;gBAC7B,WAAW,GAAG,cAAc,CAAC;gBAC7B,MAAM;YACV,KAAK,UAAU;gBACX,UAAU,GAAG,cAAc,CAAC;gBAC5B,WAAW,GAAG,eAAe,CAAC;gBAC9B,MAAM;YACV,KAAK,QAAQ;gBACT,UAAU,GAAG,sBAAsB,CAAC;gBACpC,WAAW,GAAG,eAAe,CAAC;gBAC9B,MAAM;YACV,KAAK,SAAS;gBACV,UAAU,GAAG,iBAAiB,CAAC;gBAC/B,WAAW,GAAG,eAAe,CAAC;gBAC9B,MAAM;YACV,KAAK,SAAS;gBACV,UAAU,GAAG,OAAO,CAAC;gBACrB,WAAW,GAAG,eAAe,CAAC;gBAC9B,MAAM;YACV;gBACI,UAAU,GAAG,MAAM,CAAC;gBACpB,WAAW,GAAG,eAAe,CAAC;QACtC,CAAC;QAED,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACxB,KAAK,+BAAkB;gBACnB,QAAQ,GAAG,iBAAiB,CAAC;gBAC7B,SAAS,GAAG,qBAAqB,CAAC;gBAClC,MAAM;YACV,KAAK,+BAAkB;gBACnB,QAAQ,GAAG,4BAA4B,CAAC;gBACxC,SAAS,GAAG,qBAAqB,CAAC;gBAClC,MAAM;YACV,KAAK,mCAAoB;gBACrB,QAAQ,GAAG,qBAAqB,CAAC;gBACjC,SAAS,GAAG,uBAAuB,CAAC;gBACpC,MAAM;YACV,KAAK,2CAAwB;gBACzB,QAAQ,GAAG,qBAAqB,CAAC;gBACjC,SAAS,GAAG,2BAA2B,CAAC;gBACxC,MAAM;YACV;gBACI,QAAQ,GAAG,mBAAmB,CAAC;gBAC/B,SAAS,GAAG,kBAAkB,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAA;kCACe,IAAI,CAAC,QAAQ,aAAa,CAAC,GAAe,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;;uFAExB,QAAQ,YAAY,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;8CACjF,IAAI,CAAC,OAAO,CAAC,IAAI;kDACb,WAAW,YAAY,OAAO,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,UAAU;;;SAG3K,CAAC;IACN,CAAC;IAES,MAAM,CAAC,qBAAqB,CAAC,OAAqB;QACxD,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;QAErD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAElB,wBAAwB;YACxB,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAkB,CAAC;gBAChE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBAEjC,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;oBACtB,IAAI,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;wBAC5B,8BAA8B;wBAC9B,MAAM,GAAG,SAAS,CAAC;oBACvB,CAAC;yBAAM,IAAI,aAAa,CAAC,GAAG,IAAI,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;wBACtD,2BAA2B;wBAC3B,MAAM,GAAG,SAAS,CAAC;oBACvB,CAAC;yBAAM,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;wBAClC,gCAAgC;oBACpC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,oBAAoB;QAC1B,MAAM,mBAAmB,GAAa,EAAE,CAAC;QACzC,MAAM,aAAa,GAAkB,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAQ,CAAC,EAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,EAAG,CAAC,CAAC;oBAC5C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC1B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC;YACzC,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,aAAa;SAC1B,CAAC,CAAC,CAAC;IACR,CAAC;IAES,MAAM,CAAC,WAAW,CAAC,KAAoB,EAAE,YAAwD;QACvG,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO;QACX,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAES,cAAc,CAAC,GAAe,EAAE,IAAiB;QACvD,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvB,OAAO;QACX,CAAC;QAED,GAAG,CAAC,cAAc,EAAE,CAAC;QAErB,IAAI,aAAa,GAAkB,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,cAAc,GAAG,IAAI,CAAC;QAC1B,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,IAAK,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE7I,IAAI,WAAW,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,cAAc,GAAG,KAAK,CAAC;YACvB,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtE,MAAM,GAAG,KAAK,CAAC;YACnB,CAAC;QACL,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACjB,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAChB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;gBACzC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACpB,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;YACzC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,4BAA4B,CAAC;YACjE,QAAQ,EAAE,IAAI,CAAC,cAAc;YAC7B,QAAQ,EAAE,aAAa;SAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAChB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAG,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAES,cAAc;QACpB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAiB,CAAC;QACzE,OAAO,OAAO,CAAC,YAAY,CAAC;QAC5B,OAAO,OAAO,CAAC,SAAS,CAAC;QACzB,OAAO,OAAO,CAAC,MAAM,CAAC;QACtB,OAAO,OAAO,CAAC,KAAK,CAAC;QACrB,OAAO,OAAO,CAAC,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;QAEtC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5F,OAAO;QACX,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,sBAAsB,CAAC;YAC3D,OAAO,EAAE,OAAO;YAChB,aAAa,EAAE,IAAI,CAAC,OAAO;SAC9B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACZ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC,CAAC,CAAC;IACX,CAAC;IAES,aAAa,CAAC,IAAiB;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAA,CAAC,CAAC,OAAO,CAAC;QACtD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAClF,MAAM,OAAO,GAAiB;YAC1B,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,OAAO,CAAC,oBAAoB;YAClC,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,SAAS;SACnB,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1F,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACpF,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC;QAC9D,CAAC;QAED,kDAAkD;QAClD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAClB,OAAwB,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG;YACX,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,KAAK;SAChB,CAAC;QAEF,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;aAClE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACb,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC,CAAC,CAAC;IACX,CAAC;IAES,gBAAgB;QACtB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBAClF,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACb,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrB,CAAC;YACL,CAAC,CAAC,CAAC;QACX,CAAC;IACL,CAAC;IAES,SAAS;QAEf,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvF,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAEpF,MAAM,QAAQ,GAAG,GAAS,EAAE;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,IAAI,GAAG,KAAK,CAAC;YAEjB,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;gBAErC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChG,SAAS;gBACb,CAAC;gBAED,IAAI,CAAC;oBACD,IAAI,QAAoC,CAAC;oBAEzC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;wBACnB,KAAK,OAAO;4BACR,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAG,CAAC,CAAC;4BAChF,MAAM;wBACV,KAAK,OAAO;4BACR,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAG,CAAC,CAAC;4BAChF,MAAM;wBACV,KAAK,QAAQ;4BACT,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAG,CAAC,CAAC;4BACjF,MAAM;oBACd,CAAC;oBAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;wBAC1B,OAAO,CAAC,KAAK,CAAC,6CAA6C,GAAG,QAAQ,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC1H,IAAI,GAAG,IAAI,CAAC;oBAChB,CAAC;gBACL,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAClF,IAAI,GAAG,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;YAED,IAAI,IAAI,EAAE,CAAC;gBACP,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACrD,CAAC;YAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAA,CAAC;QAEF,2BAA2B;QAC3B,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aACvI,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YACT,IAAI,EAAE,EAAE,CAAC;gBACL,QAAQ,EAAE,CAAC;YACf,CAAC;QACL,CAAC,CAAC,CAAC;IACX,CAAC;IAES,gBAAgB;IAE1B,CAAC;IAES,cAAc,CAAC,MAAc;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAES,gBAAgB;QACtB,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,KAAK,WAAW;gBACZ,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,IAAiB,EAAE,EAAE,CAAE,IAAI,CAAC,OAAgB,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC,CAAC;YAC1F,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,IAAiB,EAAE,EAAE,CAAE,IAAI,CAAC,OAAgB,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC,CAAC;YAC1F;gBACI,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,IAAiB,EAAE,EAAE,CAAE,IAAI,CAAC,OAAgB,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IAES,SAAS;QACf,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,YAAY,CAAC;QAChC,CAAC;QAED,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAEe,aAAa;;YACzB,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC;YAET,kBAAkB;YAClB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC1E,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAkB,CAAO,OAAO,EAAE,EAAE;wBAC/E,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;wBAC/F,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC,CAAA,CAAC,CAAC,CAAC;gBACR,CAAC;gBACD,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACjD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;YAED,iBAAiB;iBACZ,CAAC;gBACF,MAAM,SAAS,GAAW,IAAI,CAAC,SAAS,EAAE,IAAI,OAAO,CAAC,YAAY,CAAC;gBACnE,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3E,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,OAAO,CAAiB,CAAO,OAAO,EAAE,EAAE;wBAC/E,MAAM,MAAM,GAAG,EAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAC,CAAA;wBACtE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;wBAC1F,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC,CAAA,CAAC,CAAC,CAAC;gBACR,CAAC;gBACD,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAClD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;YAED,yBAAyB;YACzB,IAAI,IAAI,EAAE,CAAC;gBACP,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;KAAA;IAES,eAAe,CAAC,QAAwB,EAAE,YAAwD;QACxG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;aAAM,CAAC;YAEJ,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACnC,OAAO;oBACH,OAAO,EAAE,OAAO;iBACJ,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;;AA1lBa,oCAAyB,GAAG,4IAAgF,AAAnF,CAAoF;AAGpH;IADN,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;0CACG;AAGrB;IADN,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;4CACO;AAG1B;IADN,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;4CACO;AAG1B;IADN,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;+CACS;AAG5B;IADN,QAAQ,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC;+CACM;AAGvB;IADN,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;0CACF;AAGhB;IADN,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;4CACK;AAGpB;IADT,QAAQ,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;0CACI;AAGvB;IADT,QAAQ,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;gDACU;AAG7B;IADT,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;mDACiB;AAhClC,UAAU;IADtB,aAAa,CAAC,cAAc,CAAC;GACjB,UAAU,CA6lBtB"}